Metasploit Exploit(漏洞利用)目标

在您的Metasploit模块中编写漏洞利用目标

Exploits定义一个包含名称,编号和选项的目标列表。目标在启动时由数字指定。

针对漏洞模块的示例目标代码:

'Targets' =>
          [
                 # Windows 2000 – TARGET = 0
                 [
                      'Windows 2000 English',
                      {
                           'Rets' => [ 0x773242e0 ],                                           
                      },
                 ],
                 # Windows XP - TARGET = 1
                 [
                      'Windows XP English',
                      {
                           'Rets' => [ 0x7449bf1a ],
                      },
                 ],              
          ],
'DefaultTarget' => 0))

 

目标选项块

虽然有一些特殊的选项名称,但目标部分内的选项块几乎是自由形式的。

  • 'Ret'被缩短为target.ret()
  • 'Payload'重载了漏洞信息块

 

选项是您存储目标数据的位置。例如:

  • Windows 2000目标的返回地址
  • 需要为Windows XP目标添加500字节的填充
  • Windows Vista NX旁路地址

 

访问目标信息

漏洞内的“target”对象是用户选择的目标,并在漏洞利用中作为散列进行访问。

  • target[‘padcount’]
  • target[‘Rets’][0]
  • target[‘Payload’][‘BadChars’]
  • target[‘opnum’]

 

添加和修复漏洞攻击目标

有时您需要新的目标,因为特定的语言包会更改地址,软件的不同版本可用,或者由于挂钩而导致地址发生移位。添加新目标只需要3个步骤。

  1. 确定您需要的返回地址的类型。这可能是一个简单的'jmp esp',跳转到特定的寄存器,或'pop / pop / ret'。利用代码中的注释可以帮助您确定需要什么。
  2. 获取目标二进制文件的副本。
  3. 使用msfpescan来找到合适的返回地址。

 

msfpescan

 

使用msfpescan获取返回地址

如果漏洞利用代码没有明确告诉你需要什么类型的返回地址,但足以告诉你现有利用漏洞的dll名称,你可以找出你正在寻找什么类型的返回地址。考虑下面的例子,它提供了Windows 2000 SP0-SP4目标的返回地址。

'Windows 2000 SP0-SP4',
{
          'Ret'          => 0x767a38f6,  # umpnpmgr.dll
}

 

要找出漏洞利用目前使用的返回地址类型,我们只需要从Windows 2000计算机上找到umpnpmgr.dll的副本,并使用提供的地址运行msfpescan以确定返回类型。在下面的例子中,我们可以看到这个漏洞需要pop / pop / ret。

root@kali:~# msfpescan -D -a 0x767a38f6 umpnpmgr.dll
[umpnpmgr.dll]
0x767a38f6 5f5ec3558bec6aff68003c7a7668e427
00000000 5F                pop edi
00000001 5E                pop esi
00000002 C3                ret
00000003 55                push ebp
00000004 8BEC              mov ebp,esp
00000006 6AFF              push byte -0x1
00000008 68003C7A76        push 0x767a3c00
0000000D 68                db 0x68
0000000E E427              in al,0x27

 

现在,我们只需要抓取目标dll的副本并使用msfpescan为我们找到可用的pop/pop/ret地址。

root@kali:~# msfpescan -p umpnpmgr.dll
[targetos.umpnpmgr.dll]
0x79001567 pop eax; pop esi; ret
0x79011e0b pop eax; pop esi; retn 0x0008
0x79012749 pop esi; pop ebp; retn 0x0010
0x7901285c pop edi; pop esi; retn 0x0004

 

现在我们找到了合适的返回地址,我们将新的目标添加到漏洞利用中。

'Windows 2000 SP0-SP4 Russian Language',
{
          'Ret'          => 0x7901285c,  # umpnpmgr.dll
}
    A+
发布日期:2018年05月16日 23:40:21  所属分类:Metasploit
最后更新时间:2018-05-28 19:38:56
付杰
  • ¥ 39.0元
  • 市场价:39.0元
  • ¥ 69.0元
  • 市场价:69.0元
  • ¥ 69.0元
  • 市场价:69.0元
  • ¥ 99.0元
  • 市场价:129.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  0   博主  0

  1. 付杰 付杰

    kali linux2.0中 msfpescan位置在:/usr/share/framework2/msfpescan,启动这个路径命令就可以运行了!

    root @ kali:〜#/usr/share/framework2/msfpescan
       用法:/usr /share/framework2/msfpescan <input> <mode> <options>
    
    input(输入):
              -f <file>      在PE文件中读取
              -d <dir>       处理memdump输出
    mode(模式):
              -j <reg>       搜索跳转等效指令
              -s             搜索pop + pop + ret组合
              -x <regex>     搜索正则表达式匹配
              -a <地址>      在指定的虚拟地址显示代码
              -D             显示详细的PE信息
              -S             尝试识别打包器/编译器
    options(选项):
              -A <count>     匹配后显示的字节数
              -B <count>     匹配前显示的字节数
              -I address     指定一个备用ImageBase
              -n             打印匹配数据的反汇编
  2. 头像 hack520 1

    厉害,网站已经收藏!