Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 

在Win2000中提升权限的实例及心得

来源:linuxdby.com 作者:Webmaster 时间:2007-04-12 点击: [收藏] [投稿]


V:0x00000000a800000002000100a80000001a00000000000000c40000000000000000000000c400
00006c00000000000000300100000000000000000000300100000000000000000000300100000000
00000000000030010000000000000000000030010000000000000000000030010000000000000000
00003001000000000000000000003001000000000000000000003001000008000000010000003801
000014000000000000004c0100001400000000000000600100000400000000000000640100000400
000000000000010014808800000098000000140000003000000002001c000100000002c014004400
05010101000000000001000000000200580003000000000014005b03020001010000000000010000
000000001800ff070f00010200000000000520000000200200000000240044000200010500000000
000515000000dde8e41c32621f2a8aa7323ff4010000010200000000000520000000200200000102
0000000000052000000020020000410064006d0069006e006900730074007200610074006f007200
00004200750069006c0074002d0069006e0020006100630063006f0075006e007400200066006f00
72002000610064006d0069006e006900730074006500720069006e00670020007400680065002000
63006f006d00700075007400650072002f0064006f006d00610069006e0001020000070000000100
01001913f29278bf71eaff44492fb2f9ed05010001002a730d35666e44ffa4f37b29011d882f0100
010001000100

D:\MyJob\securitylab\PipeUp\Debug>


大家看了上面两个例子有什么想法呢?肯定有人会觉得这些Exploit有“做弊”的嫌疑:一方面,在radix1112200101(或PipeUp)运行之前,RunAs(或ClipBook)服务进程都必须先终止运行,这样黑客进程才有可能伪造Named Pipe,才有机会窃取Administrator(或Local System)的账号信息;而另一方面,黑客必须先取得至少Administrator的权限才能终止RunAs(或ClipBook)进程。这两个方面看起来是互为前提条件的,是个无解的“Deadlock”。实际上,我在SecurityFocus网站上看到Microsoft针对Exploit程序radix1112200101的回复,它指出这个Exploit是两难的,现实中不太可能发生。

要实现这个Exploit确实有些难度,但是这并不等于不会发生!假如某个服务进程有Bugs,象缓冲区溢出呀、Signal不当reentrant呀等等,那么在运行中这个服务进程就有可能被黑客故意整垮掉(Crash),然后黑客就可以伪造它的Named Pipe,再利用上面的Exploit程序提升其权限。

而且有时候我们并不需要先终止服务进程,我在Microsoft的Security Bulletins网站上找到一个例子----编号为MS01-031的一篇文章 “Predictable Name Pipes Could Enable Privilege Elevation Via Telnet”。中文大意是说:当你通过Telnet远程联线到Windows 2000系统中的Telnetd服务进程时,Telnetd会创建一个新的Named Pipe,同时运行这个Named Pipe携带的初始化程序。由于这个Named Pipe的名字是可以猜到的(Predictable),所以黑客可以抢先用猜到的名字创建这个Named Pipe,同时让这个Named Pipe携带黑客码作为初始化程序;当Telnetd服务进程发现这个Named Pipe已经存在时,它既不重新创建一个新的Named Pipe,也不核实一下这个Named Pipe的创建者是否可以信赖(Trustable),相反,它直接使用这个Named Pipe,并且把其携带的黑客码当成初始化程序运行。由于在缺省设置的情况下,Telnetd服务进程具有Local System的权限,所以黑客码也把以这个最高的权限横冲直撞。

Microsoft的文章并没有告诉我们这个可以猜得到的Named Pipe名字是什么----这是可以理解的,毕竟谁也不会开门掬盗。不过我在dallas上作了个试验:分别联结两个Telnet Session到Dallas上,然后用Pipelist程序观察在Telnet后Named Pipe的变化情况:

D:\MyJob\tool\pipelist\Debug>pipelist

PipeList v1.01
by Mark Russinovich
http://www.sysinternals.com

Pipe Name Instances Max Instances
--------- --------- -------------
InitShutdown 2 -1
lsass 5 -1
ntsvcs 52 -1
scerpc 2 -1
net\NtControlPipe1 1 1
。。。。。。。。。。
tapsrv 2 -1
ROUTER 2 -1
WMIEP_644 2 -1
WMIEP_2c8 2 -1
net\NtControlPipe28 1 1
telnetd\000001fc.00000000 1 1
telnetd\000001fc.00000001 1 1
telnetd\000001fc.00000002 1 1
telnetd\000001fc.00000003 1 1

上面用黑体字标出来的Named Pipe:net\NtControlPipe28属于Telnetd服务进程,而telnetd\000001fc.00000000与telnetd\000001fc.00000001属于第一个Telnet Session,telnetd\000001fc.00000002与telnetd\000001fc.00000003属于第二个Telnet Session。如果这时有第三个用户Telnet进来的话,Telnetd要用到的Named Pipe名字把会是telnetd\000001fc.00000004与telnetd\000001fc.00000005,我敢赌100块钱!!!

你们看到,这个例子并不需要终止任何服务进程,理论上说你只需要具有一般用户账号就可以提升你的权限到Local System级别:先以一般用户账号伪造Named Pipe并让它附带黑客码作为初始化程序,然后以同一账号远程联线到象dallas这样的机器上,Telnetd服务进程会主动运行你附带在Named Pipe上的黑客码,而且你的黑客码是以Local System权限运行。


利用Windows 2000中的Dynamic Data Exchange来提升权限:


我是在www.atstake.com网站的Security Advisory栏目(2001年2月版)看到这篇文章:“NetDDE Message Vulnerability”,作者是DilDog。搞这一行有些日子的人大概都看过他的另一篇非常有名、非常经典的文章:“The Tao of Windows Buffer Overflow”;这篇文章被其他人引用的次数很多,如果拿这篇文章的引用率来评职称,肯定是非常的Solid----就是很硬的意思!

在那一篇文章中,他详细地介绍了在Windows NT系统中怎么样发现NetMeeting的缓冲区溢出,怎么样一步一步编写黑客码去Exploit这个缺口(Vulnerability)。实际上,在前面两章的Exploit试验中我所用到的罗马大道“Jmp esp”,以及函数指令表都直接或间接地借鉴了他的思路。有兴趣的朋友可以到下面的网页去拜读一下这篇大作:

http://www.cultdeadcow.com/cDc_files/cDc-351/index.html

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇: 自动安装Windows2000系统   下一篇: 怎么样让Win2000系统达到最佳性能

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号