Defcon Shitsco程序分析–信息泄露下载

这是今年defcon上的一道200分的pwn题目,是一个linux 32位的elf程序,程序见附件 shitsco。

一、静态分析

首先运行程序,看大致程序的功能。如下图所示,这个程序提供了一个internet操作系统,支持一定的命令(enable,ping等)。

111f

用ida分析程序,main函数:

2

main函数中主要有3个子函数。对这3个子函数依次分析。

第一个函数sub_80489d0:

3

很容易看出是读取了/home/shitsco/password中的内容,存入到804c3a0地址处。

第二个函数sub_8048c30:

4

这个函数主要是读取一行用户的输入。

第三个函数sub_8048a50:这个函数较为复杂,主要是对用户的输入进行解析。

5

首先观察ebp不是和平常程序一样作为栈帧使用,这里用了指向一块内存。而这块内存正好为系统支持的命令(enable)。

通过后面分析,发现此块内存为一个结构体数组,存储命令信息。

6

该结构体如下:

01 struct CommandInfo
02  
03 {
04  
05 char *command;//命令名称,如enable
06  
07 int unknown;//未见使用
08  
09 int Privilege;
10  
11 int argc;//参数个数,如命令ping需要另一个参数
12  
13 pvoid handler;
14  
15 }

其中privilege是权限,如果为1表示命令需要enable成功后才能执行。内存804c3c0初始化为0,只有enable后,内存804c3c0才会变成1。

7

Handler表示该命令对应的处理函数。

最后以一个表统计了一下命令的信息:

Command

Privilege Argc Handler
enable 0 1 sub_8049230
ping 0 1 sub_80493E0
tracert 0 1 sub_8049330
? 0 1 sub_80490C0
flag 1 0 sub_8048D40
shell 0 0 sub_8048CF0
set 0 2 sub_80494A0
show 0 1 sub_8048E50
credits 0 0 sub_8048CA0
quit 0 0 sub_8048CD0
disable 0 0

sub_8048CB0

当前位置:站长啦网站目录 » 站长资讯 » 站长新闻 » 漏洞预警 » 文章详细