Defcon Shitsco程序分析–信息泄露下载
-
来源:黑吧安全网 浏览:879次 时间:2014-06-12
这是今年defcon上的一道200分的pwn题目,是一个linux 32位的elf程序,程序见附件 shitsco。
一、静态分析
首先运行程序,看大致程序的功能。如下图所示,这个程序提供了一个internet操作系统,支持一定的命令(enable,ping等)。

用ida分析程序,main函数:

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

很容易看出是读取了/home/shitsco/password中的内容,存入到804c3a0地址处。
第二个函数sub_8048c30:

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

首先观察ebp不是和平常程序一样作为栈帧使用,这里用了指向一块内存。而这块内存正好为系统支持的命令(enable)。
通过后面分析,发现此块内存为一个结构体数组,存储命令信息。

该结构体如下:
| 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。

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 |
上一篇: 迅雷白金会员账号6月4号下载
下一篇: [公开漏洞]乐视网存储式XSS指哪打哪