《Metasploit渗透测试魔鬼训练营》笔记 客户端渗透攻击

文章目录

  • 客户端渗透攻击
      • 安全防护机制
    • 针对浏览器的渗透攻击
      • 堆喷射 Heap Spraying
      • MSF自动化浏览器攻击
      • 内存攻击技术ROP实现
        • IE8
          • MS11-050

客户端渗透攻击

客户端渗透攻击 攻击者构造畸形数据发送给目标主机,用户在使用含有漏洞缺陷的客户端应用程序处理这些数据时,发生程序内部处理流程的错误,执行了内嵌于数据中的恶意代码,从而导致被渗透入侵。

安全防护机制

  1. DEP
    DEP(数据执行保护)基本原理是操作系统通过设置内存页的属性,指明数据所在的内存页为不可执行。如果在这种页面执行指令,CPU会抛出异常。AMD:No-Execute Page-Protection(NX),Intel: Execute Disable Bit (XD)。
  2. ASLR
    ASLR(地址空间布局随机化)指的是系统在运行程序时,不用固定的基地址加载进程及相关的库文件。主要包括:堆地址的随机化,栈基址的随机化,PE文件映像基址的随机化,PEB,TEB地址的随机化。

针对浏览器的渗透攻击

  1. 浏览器本身
  2. 浏览器内嵌第三方插件

堆喷射 Heap Spraying

在溢出漏洞之前,在堆区申请大量充满空指令的内存块,每个内存块都尾随Shellcode。然后,在溢出时,根据内存块总体的大小,修改溢出之后的返回地址到这个堆空间。由于,空指令在这个空间中占据了绝大多数,所以,大部分情况况下,这个修改之后的返回地址应该在空指令区,而不是Shellcode所在的地址空间。当跳转到这段空间时,程序将会先执行空指令,进而滑行到Shellcode。

MSF自动化浏览器攻击

server/browser_autopwn自动化获取目标浏览器信息

内存攻击技术ROP实现

用于绕过DEP保护机制

  • 将包含Shellcode的内存页面设置为可执行状态,比如利用VirtulProtect修改含有Shellcode内存页面的属性。
  • 先利用VirtualAlloc函数开辟一段具有执行权限的内存空间,然后将Shellcode复制到这段代码中。
  • 通过一些函数直接关掉DEP机制,常用的有ZwSetInformation函数。

IE8

利用IE8自身加载JRE中的msvcr71.dll空间代码,去调用VirtulProtect函数修改堆页面的属性,使其可以执行

MS11-050

ROP技术的精髓,就在于利用retn指令配合栈中数据定制程序流程,从目标程序已装载代码中搜索一些代码片段进行组装,从而帮助攻击者绕过DEP堆栈不可执行的保护机制。

你可能感兴趣的:(《Metasploit渗透测试魔鬼训练营》笔记 客户端渗透攻击)