首页
社区
课程
招聘
[转贴] 用SoftICE进行reverse engineering的一个例子
发表于: 2004-8-13 02:35 4810

[转贴] 用SoftICE进行reverse engineering的一个例子

2004-8-13 02:35
4810
转自http://dgdown.myetang.com/text/text24.htm,译者和原作者未知。

Sub7中的公用密码的发现

我们的目标是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留一个系统密码吗?呵呵,你可以在自己的电脑上再试几次。啊,是的,
那是系统密码。

好的就到这儿了,我只是想有人会对这感兴趣的。我对这遍文章不负任何责任!

祝好运!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
2
我不清楚Sub7是什么,但是罗云彬站点上有关于盗取Sqlserver密码的方法.比这个讲的好得多.我以前写的盗取QQ补丁也采用了这种技术.
从某种意义上来说,比木马更难查杀
2004-8-13 03:54
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
sub7=subseven 以前很流行的一个木马, 有很多功能 :p
要是受害者安装了你送去的EXE, 你还能看见他在荧屏上的所有举动.
2004-8-13 04:16
0
游客
登录 | 注册 方可回帖
返回
//