返回列表 发帖

木马马逆向分析

我们的目标是Sub7。你认为你在Sub7的服务端设置了一个密码,那么其他人就无法连接它了吗?你犯了一个大错误!这儿我就向你展示,我是怎样在这木马服务端找到安全漏洞的。
     
     你需要的工具:
     
     (x) SoftICE (+ SymbolLoader.)可以从crack迷们要到,许多crack网站也可以找到!
     (x) Hiew 6.16,一个编辑器。
     (x) 目标, Sub7, 可在这里找到: subseven.slak.org
     (x) SoftICE's 命令和汇编语言的基础知识.
     
     
     让我们开始吧:
     
     我对连接客户端的时候,让密码进行比较的过程比较感兴趣。所以,我使用SoftICE's的symbol
     loader输入一些winsock的端口 :)
     
     运行loader,点击“FILE--LOAD EXPORTS”菜单,指向你的windows系统目录,选择"wsock32.dll"
     打开。SymbolLoader应该显示:
     
     "Exports for Z:\WINDBLOWZ\SYSTEM\Wsock32.dll loaded sucessfully"
     
     现在去使用 EditServer.exe文件设置Sub7的服务端(请看其它文档,我在这儿不提了)我设置端口为666,密码为“abuse”.运行服务端的木马,你不久就可以被安装好服务端,但千万别在网上。(关于这个程序我不对你负任何责任,它不是我编的)执行SubSeven.exe连接到服务端(IP地址为127.0.0.1, 就是你本机了),密码框会弹出来,任意输入一个密码。服务端是用WSOCK32!recv接收客户端的信息的。
     Windows的Sockets recv 接收数据功能使用一个Socket.结构如下:
     
     int recv (
     
     SOCKET s,
     char FAR* buf,
     int len,
     int flags
     );
     第二行(char FAR* buf)非常重要。信息就储藏在那里。现在,在softice中在recv上设置断点 (输入 "d esp->8")点击OK送出密码。SoftICE回弹出,按F11(g @ss:esp)。跳到密码部分时会在SoftICE的信息栏中显示'PWD'。现在在密码的地址中设置一个断点。(如: bpr 405000 405010 RW)
     Now set a bpr on the password's address (e.g.: bpr 405000 405010 RW) and on the copy
     it will make at 004029c5.
     
     下一次你将会停在004040dd:
     
     0167:004040dd 8b0e mov ecx,[esi]
     0167:004040df 8b1f mov ebx,[edi]
     0167:004040e1 39d9 cmp ecx,ebx
     0167:004040e3 7558 jnz 0040413d
     0167:004040e5 4a dec edx
     0167:004040e6 7415 jz 004040fd
     0167:004040e8 8b4e04 mov ecx,[esi+04]
     0167:004040eb 8b5f04 mov ebx,[edi+04]
     0167:004040ee 39d9 cmp ecx,ebx
     
     它停在了4040dd这一行,我们在我们的密码上设置了一个断点。那么它在本地将保存在esi中。前四个字母
     移到ecx中。另外四个字母存在ebx中后进行比较...你现在认为,你发现了密码比较的地方了吗?不,不,
     没门!其实Sub7的作者更愚蠢!!!在softice中输入“d edi”看看:
     
     016F:012A3DD4 31 34 34 33 38 31 33 36-37 38 32 37 31 35 31 30 1443813678271510
     016F:012A3DE4 31 39 38 30 00 69 6F 00-28 00 00 00 22 00 00 00 1980.io.(..."...
     016F:012A3DF4 01 00 00 00 13 00 00 00-53 75 62 73 65 76 65 6E ........Subseven
     016F:012A3E04 5F 5F 5F 3C 20 70 69 63-6B 20 3E 00 10 3E 2A 01 ___< pick >..>*.
     016F:012A3E14 10 3E 2A 01 38 00 00 00-53 75 62 73 65 76 65 6E .>*.8...Subseven
     
     奇怪,那不是我设置的“abuse”密码。那么让我们在连接一次试试...SubSeven显示:connected.啊,那怎么可能?SubSeven留一个系统密码吗?呵呵,你可以在自己的电脑上再试几次。啊,是的,那是系统密码。
     
     好的就到这儿了,我只是想有人会对这感兴趣的。我对这遍文章不负任何责任

木马马逆向分析

  

TOP

返回列表 回复 发帖