我只是将metasploit作为一种爱好玩过,但我想知道实际的渗透测试者和/或黑客是否真的使用metasploit进入系统,或者他们是完全编写自己的后期利用模块还是自己的程序?
我问的原因是因为 metasploit 似乎无法有选择地清除 Windows 事件日志等,或者我只是找不到它。(我能找到的最近的是 clearev 但这只会清除所有不是很偷偷摸摸)此外,即使它能够有选择地清除事件日志,也会有像 ring 0 中的预取队列这样的地方,取证将能够从系统映像中找到我所做的事情......
我只是将metasploit作为一种爱好玩过,但我想知道实际的渗透测试者和/或黑客是否真的使用metasploit进入系统,或者他们是完全编写自己的后期利用模块还是自己的程序?
我问的原因是因为 metasploit 似乎无法有选择地清除 Windows 事件日志等,或者我只是找不到它。(我能找到的最近的是 clearev 但这只会清除所有不是很偷偷摸摸)此外,即使它能够有选择地清除事件日志,也会有像 ring 0 中的预取队列这样的地方,取证将能够从系统映像中找到我所做的事情......
就取证而言,Metasploit 具有专门设计用于使取证分析工作更加困难的有效负载。例如,许多漏洞利用模块默认选择的最著名的有效负载是meterpreter有效负载。它完全在内存中运行,并且不接触磁盘进行任何操作(除非用户特别要求)。这意味着预取文件夹或磁盘上的任何其他位置都没有证据。
您不必清除所有事件日志。您可以通过meterpreter 脚本event_manager选择性地清除任何您想要的事件日志。
Meterpreter 有一个名为timestomp的工具,它可以将硬盘上任何文件的修改、访问、创建和执行时间更改为任意值。您可以使用sdel (安全删除)模块安全地擦除任何文件,该模块不仅可以安全地擦除文件内容,而且在删除之前将文件重命名为长随机字符串,这不仅可以取证恢复内容,还可以恢复文件元数据也很困难。
现在进入您在现实世界攻击中实际恶意攻击者使用 Metasploit 的第二部分。有报道称,Metasploit 被用于对伊朗核设施的一次袭击。您不经常看到 Metasploit 的原因是该产品的开源性质。由于每个人都可以使用漏洞利用和有效负载,因此默认情况下,每个安全产品(例如防病毒、IDS/IPS 等)都将这些文件视为恶意文件。国防工业已经发展到一个程度,即使使用 Metasploit 创建一个完全良性的文件,几乎所有的 AV 解决方案都会检测到它。生成一个空的有效载荷,如:
echo -n | msfencode -e generic/none -t exe > myn.exe
将其上传到 VirusTotal,您会看到超过一半的 AV 解决方案将其检测为恶意软件。更多详细信息可在此处的 Matt Weeks 博客上找到。
有了这种行为,由于检测率非常高,攻击者不会冒险使用 Metasploit 进行实际攻击。这些模块可以轻松定制,并且通过 Metasploit 绕过 AV 和其他安全控制也很容易。但是,此时很难确定有效负载是从头开始编写的,还是 Metasploit 模块已被修改。因此,很难确定有多少攻击者在其操作中使用或继续使用 Metasploit。
我不了解恶意攻击者/黑客,但我知道有几个渗透测试者(包括我自己)在他们的工具箱中包含了 Metasploit。到目前为止,它不是唯一使用的工具,但它肯定有它的用途。话虽如此,您的问题似乎是关于“掩盖您的踪迹”,这自然对恶意攻击者更有用。在我的渗透测试中,我们很少篡改日志,除非检测日志篡改是“蓝队”的目标之一。(然后我们这样做是为了看看它是否被检测到。)
是的,渗透测试者确实使用 Metasploit。使用自定义 exe 模板和 shikata_ga_nai,您可以欺骗几乎所有的 AV 解决方案(Google for AV evasion 以了解更多信息),meterpreter 有效负载对于提升 Windows 域中的权限非常方便。
话虽如此,Metasploit 只是众多工具中的一种,一个好的渗透测试者应该知道并使用正确的工具来完成正确的任务。
当目标是不被发现并欺骗 SIEM 系统时,从事件日志中清除特定条目可能会派上用场。但是,仅仅因为 Metasploit 中缺少此功能(截至目前)并不意味着您不能使用已经存在的所有有用模块。
关于自定义工具包,我认为分叉 Metasploit 或简单地编写自己的开发后模块(如选择性事件日志删除)会更有效。
这就是开源软件的美妙之处。
与 Rapid7 相比,使用 Immunity Security 或 CoreSec 产品具有优势(无论是商业 Metasploit 产品还是 FOSS MetaSploit Framework aka MSF)。您必须自己测试它们,但这主要与能够运行罐装漏洞利用和组织计划/结果有关。据我了解,所有 MSF 漏洞利用都可以从 Core IMPACT 运行。不过,Metasploit 不会很快消失,它可以与任何其他工具一起使用。让我看看我是否可以先解决它的一些弱点。
在有效载荷方面,包括meterpreter 在内的MSF 功能还有很多不足之处。大多数 MSF 有效载荷很容易被多种 AV 和 HIPS 发现。默认的有效负载可执行文件实现了许多我不喜欢使用的常见 Windows 机制,例如标准 W32 库调用和依赖项。ImmSec 的 INNUENDO(和更早的 MOSDEF)更好,但最近 MOSDEF 也看到了一些指纹。应用程序白名单是任何植入后门技术的另一个问题,但这里有一个利用 MSF 部分的绕过方法。这是另一个利用 Powershell 的方法。许多专业人士避免使用默认可执行文件并使用generate -t
标志(或通过 msfvenom)来删除 psh(Powershell)、dll(用于 AppInit 注册表注入)或其他不常见的格式。
虽然 MSF 部分嵌入在 Cobalt Strike 的 Beacon 中,但这些功能远远超出了 Meterpreter 可以单独完成的功能。强烈推荐!
此外,我听说其他人使用Throwback等工具来简化它。有替代品很好。我发现的另一个是ClickOnce。
在通过带有web_delivery的 Powershell 攻击现代 Windows(Win7 及更高版本、Win Server 2k8r2 或更高版本)时,MSF 本身甚至似乎正在走一条新路线。攻击者可以在此框架的基础上为利用后的任务注入更多的 Powershell 操作,例如:
MSF 模块web_delivery也可以传递 Python 或 PHP 有效负载,并且可能经过修改以支持其他解释器,例如 Ruby。如果您想将所有内容放在一起以更深入地了解“为什么使用 Powershell 而不是 MSF”,请参阅此博客文章 -- http://www.labofapenetrationtester.com/2015/04/pillage-the-village-powershell-version。 html
Powershell 的一个额外担忧是在 Windows 10 中运行Device Guard时。
[更新] 根据以下评论之一,Metasploit Pro 可以利用更强大的有效负载,这些有效负载也被集成到 MSF 的开源版本中。如果您有 Metasploit Pro,请检查辅助/专业模块改进,例如 generate_dynamic_stager。如果没有,请阅读无阶段仪表预载有效载荷。
使用 TCP(连同 DNS)的工具可以使用msfconsole route 命令、proxychains和socks4a服务器模块轻松地通过 Meterpreter 代理。创建会话后,通过其会话 ID 设置到其网络(甚至是 localhost,如本段中的第一个链接所示)的路由。然后,运行 socks4a 模块并将其配置传递给 proxychains.conf 文件。甚至 DNS 也应该适当地通过。通过 Metasploit 运行外部工具的方法可能不止一种。与 Ruby(以及之前的 Perl)一样,Metasploit 是一个“有不止一种方法可以做到”的框架。作为开发人员,您可以整合自己的想法。利用开源软件的力量,贡献您的更改并加入社区。