寂寞高手

网络通信

  安装了木马的服务器终于在公元2004年8月4日22时24分时被攻破,一位黑客营的兄弟思考了整整三天之后获得了密码,有幸成为了我们的中奖用户。随后又有几位读者攻破了留香客栈,并找到了雪柔的照片……

  为了满足黑客营大多数人的愿望,我们准备了20张雪柔亲笔签名的照片,将发放给挑战本期黑客营战书的兄弟。具体的活动细则,请各位读者前往电脑报读者论坛了解(http://bbs.cpcw.com)。

  本期中奖读者:武林(河南)

  特别感谢:

  重庆市龙九科技发展有限公司

  网址:http://www.cq110.com

  严正声明 由于本文高度危险,因此编辑和作者对本文进行了大量的文学处理,希望大家仅仅当作一个知识点来阅读,切勿模仿!

  凝视着雪柔的照片,我的爱人。就在一天之前我还甜蜜地畅想这场虽然有些草率但却有我梦想的爱情……而今整个留香客栈却遭受到黑客营最猛烈和最凶残的攻击。

  “果壳”中的木马

  听雨放下雪柔的电话,大脑中一片空白,他知道留香客栈和黑客营间将爆发一场前所未有的江湖仇杀。不过他没有想到的是,小妹鹿采薇竟然在此时此刻连续三次破坏了雪柔的计算机系统。手机突然在桌子上像跳舞一样地震动了起来,听雨麻木的大脑神经跳了一下,拿起手机接通后,传来听雨最熟悉的声音。

  “你在干什么?”

  “攻牧马寨的服务器。”

  “给我一个QQ聊天记录查看器!”

  “你要那个干什么?”

  “看一个人的聊天记录。”

  “谁的?”

  “雪柔!”

  电话挂断后,听雨有些麻木的大脑似乎让他陷入了一种幻觉,他回忆着刚才的电话,脑海中思索着什么……

  两年前,黑客营中。

  大姐对着还略显稚嫩的听雨和鹿采薇说:“你们现在都会用木马了,但是为什么让你们去攻击别人的时候都无法成功,想知道原因吗?你们用的木马会被杀毒软件查杀,这样的木马太容易被人家发现,成功率自然就很低了。提高成功率的方法只有一个,躲过杀毒软件的追杀。”

  鹿采薇似乎对这一招很感兴趣,“大姐,快教教我们这一招吧!我植入木马的时候总失败,现在都没有信心了。”大姐就是在那一次讲起了木马加壳技术。

  如今很多黑客营的人都会给木马加壳,甚至有个别新手跟我说,加了壳就能够成功地躲过江湖中任何杀毒软件。他只说对了一半,因为没有脱壳之前,的确很少有哪一款杀毒软件能够发现木马,但是一旦加壳的木马被执行之后,就完成了脱壳过程,那么监视内存的杀毒软件会很快地发现木马。

  按照黑客营多数人的说法,大姐当时的加壳技术对很多已经成为高手的人来说已经没有任何意义了,但是鹿采薇却不这样认为。

  木马加壳的原理很简单,在黑客营提供的多数木马中,都是经过处理的,而这些处理就是所谓的加壳。大姐说,当一个EXE程序生成好后,很轻松地就可以利用资源工具和反汇编工具对它进行修改,但如果程序员给EXE程序加一个壳的话,那么这个加了壳的EXE程序就不是那么好修改了,如果想修改就必须先脱壳。

  听雨恍恍惚惚记得鹿采薇曾经跟他演示过给灰鸽子加壳躲过杀毒软件的过程。鹿采薇先用Pe-scan进行外壳查看,发现这一款灰鸽子是用UPXShell进行加壳的(图1)。这个时候可采用UPX附带的UPXUnpack程序对灰鸽子程序进行脱壳。脱壳后的灰鸽子猛然间由300多KB增大到900多KB,这时听雨知道她已经脱壳成功了。鹿采薇接着向听雨展示了用eXeScope对脱了壳后的灰鸽子客户端木马程序的图标进行修改(图2)。

  鹿采薇告诉听雨,她自己摸索出来的方法是对脱壳并修改完图标的木马程序进行再加壳,不过再用UPXShell进行压缩加壳时不同以往。她不是像大姐告诉她的那样直接进行加壳,而是在UPXShell的高级选项中先进行Scrambler加密,再用ASPack对这个已经加过壳的EXE文件再加一次壳(图3)。

  听雨很清楚,鹿采薇这个加壳方法只是一个思路,其实运作起来很灵活,就是用两种不同的加壳工具对木马进行双重加壳,这样就等于将木马程序进行了两次压缩计算,自然就会逃脱杀毒软件防火墙的第一层过滤。不过加了再多的壳,压了再多次的程序,最终还是要被脱离出来的。如何让解压缩后的木马躲过杀毒软件才是关键的步骤。

  改头换面的木马

  听雨很了解杀毒软件是如何跟踪木马和病毒的,多数杀毒软件都会在木马与病毒程序中挑选几段特征码,然后当这些程序在系统中运行的时候,杀毒软件会检查这些加载进内存的程序。

  他相信自己的直觉,鹿采薇一定学会了如何修改木马特征码这项关键的技术。如果鹿采薇真的掌握这个方法,那么鹿采薇的木马想要绕过雪柔那几个零零散散的杀毒软件根本不在话下。

  鹿采薇坐在电脑前,这已经是她进行的第20多次修改木马特征码的试验了,前十几次的结果,不是修改后程序无法运行就是仍然会被杀毒软件杀掉。修改特征码对她来说太难了,这需要掌握高超的汇编语言,而鹿采薇对此一窍不通。她所拥有的全部,只不过是大姐给她打印的一本薄的只有5张A4纸的教程。教程一开头就直入话题──如何追踪木马程序中的程序入口。可是鹿采薇用OllyDbg怎么也无法找到程序木马的程序入口,直到试验了三次之后她才明白过来,这个木马必须先脱壳后才能够进行程序分析。脱壳对于鹿采薇来说不在话下,因为她太熟悉Pe-Scan和Wollf之类的工具了。在简单的分析并脱壳木马之后,鹿采薇终于可以用OllyDbg对木马源程序进行调试了。

  按照大姐的教程上说,使用OllyDbg对程序进行分析调试时,打开分析界面的第一行就应该是程序的入口,004BDF68这段内存的虚拟地址符号就是程序的入口(图4)。鹿采薇按照大姐标注的说明,使用LordPE Deluxe这款工具打开已经脱壳的木马,再用“PE编辑器”项中的文件地址计算器计算出程序文件的相对偏移地址“000BDF68”(图5)。

  计算出程序的相对偏移地址后,下一步就是使用Hex Workshop打开脱壳的木马,鹿采薇看到了大串的字符,此时她已经一头雾水了,不过她能够感觉到自己要成功了。点击右键,查找十六位的偏移地址头,这里是关键了,鹿采薇一字一行地看着大姐写下的批注。

  批注中说,由头至尾大概150个文字块中肯定包含着杀毒软件进行查杀的特征码,你需要做的仅仅是一步一步地淘汰这些代码,可以先选择第150或者第100块字段(图6),然后将这些字段归零,另存。选择的段数越大,能够查杀到的几率也就越小。不过最终要把程序的字段确定到最精确的位置,这就要反复地测试,缩小字块的范围。

  30分钟过去了,鹿采薇按照大姐的批注将字段范围缩小到了DB367块,这应该就是杀毒软件所分析到地那段特征码。鹿采薇将这段代码牢牢地记住,按照下一步打开反汇编工具W32Dasm对木马进行反汇编操作。鹿采薇在W32Dasm反汇编的文件中看到了相应的代码字段:

  mov dword ptr [ebp-18],eax

  mov dword ptr [ebp-14],eax

  这时鹿采薇遇到了最头疼的事情,她必须明白这段反汇编程序的意思才能对程序进行修改,否则错误地修改很可能导致程序不能够正常运行。教程中并没有解释这些反汇编字段的意思。还好,在互联网发达的今天,没有什么找不到的,搜索!

  鹿采薇开始一段一段地搜索每一个代码的意思,并翻阅相关的教程。在明白了程序大概是在这里清零之后,她开始尝试性地修改、变换程序代码的先后顺序,替换完毕之后,并没有像预想的那样成功,程序已经无法打开。

  的确,这里才是最关键的地方,前面的一切不过是找寻到了宝藏的地图,但是要看懂地图并找到宝藏的埋藏位置才是关键中的关键。

  何去何从?对照着反汇编的手册,鹿采薇开始一步一步地尝试……

  尾 声

  二十二日,夜。

  听雨感到异常的悲伤与恐惧,他一直将鹿采薇当作妹妹一样看待,然而没有想到……他不知道雪柔和鹿采薇之间谁流淌着更多善良的血液,难道黑客真的要不断地征服才能免遭被淘汰的厄运吗?听雨迷惘地看着前方……

  本期黑客营战书:

  这一次鹿采薇申请了一个邮箱,邮箱的密码就隐藏在图形之中,看大家能否猜出正确的密码。邮箱将于周一晚在论坛中公布,第一个得到密码的读者将获得大奖,其他猜对的读者将有幸获得雪柔亲笔签名的照片(限20张)。

  兵器库

  eXeScope

  eXeScope是用来修改软件的常用工具,它可以让大家在没有资源文件的情况下分析并显示不同的文件信息与内容,而且它还可以对可执行的文件进行重写。

  Resource Hacker

  与eXeScope很相似的工具,但初级用户使用它会更加方便,它修改软件资源的方式要更加的傻瓜化一些。

  Pe-scan

  用于对外壳程序的查看,对有些外壳还能进行脱壳。

  UPXShell

  UPXShell是一款EXE压缩软件,它有非常出色的压缩比率,跨平台性能也很优秀。而且它会给要压缩的软件加一层壳,更好地迷惑受害者。

  ASPack

  ASPack与UPX很相似,也是压缩软件。软件通过ASPack压缩后,我们可以相应地使用UnASPack来进行解压缩。

  W32Dasm

  鼎鼎大名的W32Dasm可以对程序进行反汇编操作,而且对WinAPI有良好的支持,反汇编出的代码可读性非常强。它还可以记录下程序的静态代码,是SoftICE的最好补充。

  OllyDbg

  OllyDbg是一个32位汇编级的程序分析调试器,它在不能获得源代码或者你用编译器遇到问题的时候,特别有用。

  Hex Workshop

  一款非常专业的十六进制编辑器, 可以很方便地进行十六进制编辑、插入等操作。