《电子书中暗藏杀机》补遗

黑客·安全

在本报第11期的《电子书中暗藏杀机》一文中,笔者为大家介绍了如何制作夹带木马的CHM电子书,不知大家是否将它“发扬光大”。近日,笔者又发现了一个能使暗藏其中的木马经反编译后也能“隐形”的办法。如此一来,即使碰到安全意识较高的人,他也照样会中招。

技术实现的原理很简单,我们知道,在IE的URL解析中,“#”号后面的东西被作为参数在调用,正是因为“#”号在网址中的特殊作用,才能使IE在解析带“#”号的地址时会出现错误(#号后面的东西IE是不会把它当成地址信息的一部分的)。

所以,我们在制作CHM电子书时,如果在暗藏其中的木马的文件名中加入“#”号,那么这个CHM文件在被类似“HTML Help Workshop”这样的软件反编译时是不会被逆生成出来的,甚至连大名鼎鼎的“Quick CHM”也不能将暗藏其中的木马程序反编译出来。

由于时间有限,笔者并未尝试用更多的CHM制作软件来进行反编译试验,不过网上比较流行的一些CHM制作软件,基本上都是直接调用微软的“HTML Help Workshop”这个程序中的“hhc.exe”命令来制作的,其中的反编译功能则是调用Windows目录下的hh.exe这个用于查看CHM文件的程序来执行操作的。

hh.exe命令的具体使用格式为“hh.exe -decompile <反编译后保存的目录> <需反编译的文件名.chm>”。例如“hh.exe -decompile cpcw cytkk.chm”就是把cytkk.chm反编译后保存在“cpcw”目录中。

提示:需要反编译的文件名必须加上扩展名“.chm”。

如果我们自己要调用或连接编译完成后的木马程序,只需要将有“#”号的文件名中的“#”替换为URL解析码“%23”就可以了。

其实,在日常应用中,经常可以利用IE的URL解析代码的特殊性来达到隐藏某些信息的目的。只要是采用IE核心的地方,这些字符就会是通用的,甚至我们可以利用这个特性来防止网站的数据库被别人下载。

只需要在数据库文件名前加上“#”,然后修改数据库连接文件中的数据库地址。现在,下载的时候浏览器只能识别“#”前面的部分,对于后面的则会自动去掉。例如你要下载“http://www.***.com/cpcw/#123.mdb”,但无论采用什么方法下载到的只能是“http://www.***.com/cpcw/index.htm”(首页文件)。

另外在数据库文件名中保留一些空格也可起到类似的作用,由于HTTP协议对地址解析的特殊性,空格会被编码为“%”。如“http://www.***.com/cpcw/123 456.mdb”,下载时会变为“http://www.***.com/cpcw/123%456.mdb”,而“123%456.mdb”根本不存在。这样设置之后,即使你不小心暴露了数据库地址,别人也无法进行下载。