首页
社区
课程
招聘
[转帖][推荐]Microsoft RES 协议详解与安全 - RES 协议浅析
发表于: 2013-5-23 11:51 1622

[转帖][推荐]Microsoft RES 协议详解与安全 - RES 协议浅析

2013-5-23 11:51
1622
资源:

    特指Win32里的PE格式文件的资源,嵌入到PE文件中,可以是Microsoft规定的标准资源(如图标,指针,对话框),也可以是一段多媒体文件,甚至用户可以将任何二进制文件作为资源通过资源工具(设计期的各种快速开发工具,准执行期的Resource Hacker等等)

RES协议:

    简而言之,Microsoft推出的一种能使web浏览器访问PE文件的协议,既不属于Internet协议也不是HTML的一部分.其使用格式为:

res://<Windows文件路径>/<资源名称>

    如:res://d:\WINDOWS\system32\shdoclc.dll/dnserror.htm

    可以利用RES协议检测杀毒软件是否存在,现在的网马基本上必备。

    Microsoft RES 协议生效浏览器范围:IE 4.0 --> IE 6.0。

1.RES的应用测试

    在IE里输入以下url,看看出来了什么?

res://shell32.dll/2/131
res://C:\WINDOWS\system32\drivers\aes.sys/16/1
res://cmd.exe/16/1
res://shell32.dll/16/1
    是不是可以用来分析 exe dll sys 的版本呢?只要符合 Win32 PE 格式的文件都可以用 res:// 协议来分析。其中第二个数字是资源类型,在 VC++ 的 winuser.h 里有定义:

#define
RT_CURSOR
MAKEINTRESOURCE(1)

#define
RT_BITMAP
MAKEINTRESOURCE(2)

#define
RT_ICON
MAKEINTRESOURCE(3)

#define
RT_MENU
MAKEINTRESOURCE(4)

#define
RT_DIALOG
MAKEINTRESOURCE(5)

#define
RT_STRING
MAKEINTRESOURCE(6)

#define
RT_FONTDIR
MAKEINTRESOURCE(7)

#define
RT_FONT
MAKEINTRESOURCE(8)

#define
RT_ACCELERATOR
MAKEINTRESOURCE(9)

#define
RT_RCDATA
MAKEINTRESOURCE(10)

#define
RT_MESSAGETABLE
MAKEINTRESOURCE(11)

#define
RT_VERSION
MAKEINTRESOURCE(16)

#define
RT_DLGINCLUDE
MAKEINTRESOURCE(17)

#define
RT_PLUGPLAY
MAKEINTRESOURCE(19)

#define
RT_VXD
MAKEINTRESOURCE(20)

#define
RT_ANICURSOR
MAKEINTRESOURCE(21)

#define
RT_ANIICON
MAKEINTRESOURCE(22)

#define
RT_HTML
MAKEINTRESOURCE(23)

    res协议,可以用来提取图片、AVI、光标、图标等。

2.IE中RES协议的详细用法

    "RES://"协议是IE 4.0预定义的一个协议,它的具体语法为:

RES://resource file[/resourcetype]/resource id

    resource file:含有资源的模块的文件名,请注意这里的路径分隔符只能使用“\”,而不能使用“/”。

    Resourcetype:资源类型,它是一个字符串或数字。常用的资源类型都对应着一个数,比如BITMAP对应着RT_BITMAP=2,这些常数定义在VC++的WINUSER.H可以找到,如果资源类型是数字,要在数字前面加上“#”号。Resourcetype可以省略,默认为RT_HTML=23,即HTML文件。RT_HTML在VC++ 5.0中没有定义,但现在已经广泛使用。

    Resource id:资源的ID号。在这里要注意一个问题:在VC++中定义资源的时候,通常是使用数字常量,比如ID_BITMAP1,它代表的数字可能是101。而在使用res://协议时,不能使用ID_BITMAP1(在DLL中并没有这个符号),而必须使用#101来代表资源。例如要显示一个位图资源,其ID号为101,应为RES://mydll.dll/#2/#101。

3.RES资源探测工具

    有个叫ResHacker的小工具(或者:eXeScope),可以探测dll、exe和sys文件里的资源。

4.RES的安全问题

    res 可以读取本地程序的资源文件,存在泄漏信息的安全隐患,出于这个安全方面的考虑,目前只有IE和利用IE内核的浏览器还在默认持这个协议,其他浏览器已经把这个协议废了。

    安全方面的PoC,见:js利用res协议探测客户端软件(e1eK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3S2A6i4K6u0W2j5X3q4A6k6s2g2Q4x3X3g2U0L8$3#2Q4x3V1k6Q4x3U0g2p5x3#2)9J5y4f1j5H3i4K6t1#2c8e0W2Q4x3U0g2q4y4q4)9J5y4f1x3^5i4K6t1#2b7@1q4Q4x3V1k6T1L8r3!0Y4i4K6u0r3K9i4c8W2L8g2)9J5c8U0l9&6x3o6j5&6x3e0R3J5z5o6g2U0z5o6l9$3j5h3p5H3j5$3j5@1k6o6u0V1k6W2)9J5k6h3S2@1L8h3I4Q4c8f1k6Q4b7V1y4Q4z5o6W2Q4c8e0y4Q4z5o6m8Q4z5o6t1`.

5.RES巧用,篡改改about:blank显示的网页

    有些朋友经常抱怨,自己把IE的主页设置为了 about:blank 还是进入别的站点。我们应该怎样面对这种烦人的现象呢?

    首先我们要先看一下设置为 about:blank 后打开IE系统是怎样工作的。

    IE会进入一个空白页面,其实这个页面其实是指向了一个地址,默认是 res://mshtml.dll/blank.htm。

    这个地址是可以修改的,其修改地址就在注册表中相应注册键是:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AboutURLs

    进去看看吧,把他修改回默认的值或者你喜欢的网页都可以。

    这种情况下往往是由于RES协议造成的。说到RES就不得不提一下RES病毒。最近网上在流传杀不干净得木马吧。

    这些也就是一些杀毒软件杀不完全病毒造成的,用杀毒软件杀毒后,过不了多久就会继续中标。此类木马利用了RES协议的漏洞,手段很隐蔽。

    下面我们看一下RES木马的原理。

    我们在用IE浏览网页的时候,系统会调用shdoclc.dll中的资源,windows系统规定在载入dll文件的时候,如果dll文件含有dllmain函数就对它进行初始化,但是正常的shdoclc.dll文件是没有dllmain函数的,他只是包含了各种资源而已。RES木马包含的dllmain函数,利用这一点,我们就会在浏览网页的时候自动中招。

    我们了解了RES木马原理后,我们便可以把系统的RES给找出来了。原shdoclc.dll文件没有任何执行代码,其函数输出表应该为空,但是木马就会调用系统的API函数。我们根据这点来查出系统的RES内鬼。

    我们要使用的工具是 Dependency Walker (或:eXeScope、LordPE、超级巡警病毒分析工具v1.4,等其他同类软件)来查看其API输出表即可。

    运行解压后的文件,使用"FLIE-OPEN"打开shdoclc.dll文件。

    默认地址在:c:\windows\sysytm32\shdoclc.dll。

    查看左面的函数输出表如果为空表明你没有中这种毒。

    如果已经中标了,重启到安全模式,用sfc命令恢复即可,或者从别人机器拷贝一个也可以。

参考资料:

52eK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3#2K6k6r3&6Q4x3X3g2E0K9h3y4J5L8%4y4G2k6Y4c8Q4x3X3g2U0L8$3#2Q4x3V1k6W2L8W2)9J5k6s2g2K6i4K6u0r3L8r3W2T1M7X3q4J5P5g2)9J5c8X3q4S2y4K6j5%4y4K6b7H3i4K6t1^5g2W2y4Q4x3X3f1^5y4g2)9J5z5g2)9J5k6h3q4K6M7s2R3`.
816K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3c8G2M7X3#2X3L8%4u0U0k6g2)9J5k6h3&6W2N6q4)9J5c8V1u0D9L8$3N6Q4x3V1k6W2L8r3g2U0N6s2u0G2L8X3W2^5N6r3q4J5i4K6u0r3j5i4u0U0K9r3W2$3k6g2)9J5c8U0t1H3x3o6k6Q4x3V1j5I4x3g2)9J5c8U0p5@1i4K6u0r3x3e0p5$3x3e0c8Q4x3X3g2S2M7%4m8^5
84aK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2U0M7$3c8F1i4K6u0W2L8X3g2@1i4K6u0r3k6Y4u0W2k6i4S2H3L8r3!0A6N6q4)9J5c8X3q4J5j5$3S2A6N6X3g2Q4x3V1j5J5x3o6l9#2i4K6u0r3x3o6N6Q4x3V1j5H3x3W2)9J5c8U0b7I4x3o6M7^5y4q4)9J5k6h3q4K6M7s2R3`.
本文“Microsoft RES 协议详解与安全 - RES 协议浅析”,来自:Nuclear'Atk 网络安全研究中心,本文地址:c1aK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3I4U0P5q4)9J5k6h3y4U0i4K6u0r3i4K6y4r3K9g2)9K6c8o6p5%4y4U0W2Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0S2Q4b7V1c8Q4b7f1y4Q4c8e0S2Q4b7V1c8Q4b7V1c8Q4c8e0S2Q4b7f1k6Q4b7U0N6Q4c8e0k6Q4b7U0y4Q4b7e0S2Q4c8e0k6Q4z5e0S2Q4z5p5g2Q4c8e0c8Q4b7V1c8Q4z5f1y4Q4c8e0S2Q4z5o6m8Q4z5o6g2Q4c8e0g2Q4z5p5k6Q4z5p5q4Q4c8e0g2Q4z5o6N6Q4b7V1q4Q4c8e0g2Q4b7e0c8Q4z5o6c8Q4c8f1k6Q4b7V1y4Q4z5o6p5`.

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 75
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我很怀疑楼主的ID会不会被跨省,会不会被查水表
切 鄙视 藐视
2013-5-25 20:24
0
游客
登录 | 注册 方可回帖
返回