Tag: 无文件攻击

NTLM 降级攻击技巧

本文介绍一种方法,通过 NTLM 降级获取 NetNTLMv1 哈希,再通过破解 NetNTLMv1 到更为通用的 NTLM 哈希。

NTLM / NetNTLMv1 / NetNTLMv2

NTLM(New Technology LAN Manager)是微软提供的一组安全协议,用于认证用户身份。它是一个基于质询响应的协议,在验证用户的过程中不需要传输用户的明文密码。

在质询和响应阶段,客户端会收到来自服务器的质询(Challenge),然后使用用户的密码哈希对质询进行加密,生成响应(Response),这个响应就是 NetNTLM 响应。NetNTLMv2 是 NetNTLM 响应的一个较新的版本,早期版本为 NetNTLMv1。

NetNTLMv2 与 NetNTLMv1 都用于相同的认证过程,但 NetNTLMv2 相对于 NetNTLMv1 提供了更强的安全性,v2 使用了更复杂的加密方法和更长的质询,这使得破解密码变得更加困难。

因此,红队会尝试降级 NTLM 协商过程,转而获得更容易破解的 NetNTLMv1。

NTLM 降级

我们准备一个 Windows Server 2019 测试系统,将登录的账户密码修改为难以破解的超长密码,如下图所示:

编译并以管理员模式运行 Internal-Monologue,这个程序会将 NTLM 降级,并自动获取 NetNTLMv1 哈希:

获取到的 NetNTLMv1 哈希为:480c165778cfecf2a48f9e6f0191369994e8d011e8dc44d5

NetNTLMv1 -> NTLM

接下来,我们使用 ntlmv1.com 网站破解 NetNTLMv1,如下图所示:

破解成功后得到的结果即为常用的 NTLM 哈希:73b636dd3af905cda7c6bcd84a09a278

通过设置的密码生成 NTLM 哈希来校验一下解密结果是否正确:

NTLM 降级的优点

  • 获取 NTLM 哈希无需接触 Lsass 进程
  • 永久削弱目标系统的密码安全级别(在不恢复 NTLM 协商等级之前)

虽然还有其他潜在行为特征可以检出降级攻击,但如果你已经意识到了这一点,那绕过这些也应当非常简单 🙂

参考链接

https://book.hacktricks.xyz/windows-hardening/ntlm
https://github.com/eladshamir/Internal-Monologue
https://www.hackingarticles.in/ntlm-downgrade-attack-internal-monologue/
https://www.freebuf.com/articles/web/350726.html
https://zhuanlan.zhihu.com/p/637258145

如何检测并阻止基于 Impacket 工具集的 Wmiexec 横向移动

背景

网络攻击者在获取到一个主机系统权限后,往往会尝试渗透并控制网络中的其他主机系统,以获得更多的访问权限和更多的网络活动范围,这被称为横向移动,绝大部分攻击者尝试过使用 Impacket 中的 Wmiexec 进行横向移动。

我们发现,近期有很多基于 Impacket 的图形化网络渗透工具的发布,这说明,这款流行了 8 年之久的工具集终于被脚本小子们关注到,并将更广泛的应用于各种意图的网络攻击中。

Impacket 与 Wmiexec

Impacket 是一个用于操作网络协议的 Python 开源工具集,包含多个用于远程服务执行、Windows 凭据转储、数据包嗅探和 Kerberos 操作的工具。其中,wmiexec.py 经常被应用在各种网络攻击活动中,它可以通过远程系统开放的 Windows Management Instrumentation (WMI) 合法服务,在远程系统上执行任意 cmd 命令。

虽然 WMI 是合法服务,但这不表示所有使用 WMI 的行为者都没有恶意,尤其是使用 wmiexec.py 的行为者,所以我们将重点关注 wmiexec.py 的行为特征,下面我们将通过模拟攻击来重现这些行为。

模拟攻击

我们准备了两台 Windows Server 2019 x64 虚拟机,其中一台用于模拟攻击者(A),在 A 主机中下载并安装脚本小子喜欢使用的 Impacket 图形化操作工具:

另一台模拟被横向移动的目标远程主机(B),部署复杂之眼客户端,并确保 WMI 服务与 DCOM 135 端口和 SMB 445 端口处于可用状态,如下图所示:

在 WMIEXEC 操作页中填写 B 的 IP、管理员用户名、密码(或 NTLM) 和将要执行的 cmd 命令,点击执行,如下图所示:

命令结果框中返回了 wmiexec.py 的运行结果,我们继续通过这种方式执行 ipconfig 与 net user 命令,全部成功。

分析与检测

接下来,在复杂之眼端点检测与响应系统中寻找上述 cmd 命令执行痕迹,如下图所示:

打开这些行为日志,我们发现了有趣的命令行细节:

当我们执行命令时,wmiexec.py 会通过执行附带 /Q 和 /c 参数的 cmd.exe,间接运行我们的命令,如 whoami,然后将全部命令结果通过管道符写入 ADMIN$ 共享目录的随机文件中,我们在 wmiexec.py 源码中可以找到对应部分实现:

接下来我们寻找这些 cmd.exe 的父进程,这样有助于我们了解 wmiexec 横向移动的目标作用主体,如下图所示:

所以,wmiexec.py 在目标主机上进程行为关系链为:wmiprvse.exe->cmd.exe,我们可以结合该进程关系与上述的特殊 cmd.exe 命令行特征制定针对 wmiexec.py 的检测规则。

此时,复杂之眼端点检测与响应系统中已经完成了全部的相关威胁检测与自动关联:

攻击无效化

完全确认当前网络环境中不存在此类行为后,我们可以对 wmiexec.py 进行自动拦截,再次通过 Impacket 图形化工具执行 whoami 命令,已无法获取命令执行结果:

目标主机中弹出复杂之眼端点安全警报,指示了一个被阻止的恶意进程启动:

再次刷新威胁细节页面,可以观察到被阻止的进程与相关警报:

总结

随着 Impacket 图形化工具的流传,从不了解 wmiexec 实现原理的脚本小子也可以快速的进行危险的横向移动操作,通过对实际操作的过程复现与行为分析,我们总结了一个针对 wmiexec 的策略,并通过复杂之眼端点检测与响应系统帮助您预防 wmiexec 横向移动。

您可以在您的网络中自行通过 Impacket 图形化工具,验证您已经部署的其他终端安全软件是否可以抵御这个古老且有效的横向移动操作 :)


复杂之眼 EDR 是新一代 EDR/DLP/XDR 融合解决方案,点击下方链接,申请 14 天免费试用:

https://www.mistiny.com/index.php/trial-submit/

什么是无文件攻击

背景

无文件攻击是一种通过滥用操作系统内置工具,完全在进程内存中执行恶意代码的技术,攻击者不会向文件系统中写入任何文件。

由于文件系统中没有任何可供检测的文件数据,所以,这种攻击方式在原理上可以完全绕过基于病毒文件特征库、沙箱和使用云查杀的网络安全产品。

无文件攻击场景

1.初始访问

在最初,攻击者可能会使用我们其他文章中介绍过的任何漏洞对目标系统进行攻击,获取系统的初始入口点。漏洞类型包括但不限于文件包含、代码执行和反序列化漏洞。
攻击者在这个阶段可能没有进行任何文件的写入。

2.执行

随后,攻击者会通过入口点进行恶意代码执行,例如:使用 PowerShell 或 Cmd 执行恶意代码、植入无文件内存 WebShell、使用 whoami 或 ipconfig 等命令收集系统信息等。
这些操作同样不会有任何的文件写入行为。

3.持久化

攻击者可能会使用镜像劫持、创建系统启动项、创建系统服务等方式,使得自己的恶意代码可以长期保留在目标系统中,并伺机执行。
大部分持久化技术都不需要写入任何可疑文件,而且他们是正常的系统功能,杀毒软件也无法进行检测。

4.特权提升

当攻击者已经可以在系统中执行恶意代码后,在权限不足的情况下,攻击者也有可能会通过在内存 ShellCode 或内存模块执行特权提升程序,例如 GodPotato 和其他提权技术。
ShellCode 和其他内存模块执行的方式本身就是无文件攻击技术。

5.防御绕过

通过在内存中执行系统功能,破坏或禁用反病毒程序,使其无法正常检测恶意文件。
这样可以更加肆无忌惮的通过无文件攻击在目标系统上活动。

6.凭据窃取

随着攻击技术的普及,在内存中执行 Mimikatz 和其他密码转储程序对攻击者而言,早已成为家常便饭。
在这个过程中,老练的攻击者通常没有任何文件写入操作。

7.横向移动

使用偷来的账号和密码,攻击者通常会使用 SmbExec、WmiExec 和 PsExec 等工具,通过滥用其他系统上运行在 445 或 135 端口上的正常服务,控制更多系统,实现内网横向移动。
这些远程执行方式是 Windows 自带的管理工具接口,不需要向目标系统写入任何文件也可以完全的控制目标系统。

8.重复 1-7

循环上面的这些步骤,
攻击者可以通过无文件攻击技术完全控制内部网络,且不会被反病毒程序发现。

如何检测无文件攻击

对于无文件攻击而言,使用任何反病毒软件都是毫无意义的,我们应该抛弃过时的基于病毒特征库的检测技术,从攻击指标(IOA)中寻找有效方案。

IOA 是一种可以主动对无文件攻击进行防御的方法,IOA 可以通过行为分析,关联行为序列,寻找可疑的无文件攻击行为;IOA 也更加侧重于找出那些 刻意隐藏自己攻击意图 的人,例如添加不必要的代码混淆、执行看似花哨而实则无用的命令。

程序是否有害,是否使用了某种特定的技术甚至是零日漏洞利用,这些都不重要。最重要的是识别出攻击者正在做的事情是什么,意欲何为,只要识别出了有害意图,无论怎样躲避都是徒劳的。

复杂之眼如何防御无文件攻击

通过对超万亿级别的行为分析,复杂之眼建立了针对各种终端场景下的 行为基线,可以识别到与正常操作有细微差别的可疑行为,这也被称为 行为偏差检测

在实战场景中,复杂之眼对于攻击者常用的 WmiExec、SmbExec 和 PsExec 等操作均可以进行灵敏检测,对于这些攻击可能延伸出的异常行为,复杂之眼均可以进行自动阻断,抵御基于无文件攻击的横向移动和内存执行操作。


复杂之眼 EDR 是新一代 EDR/DLP/XDR 融合解决方案,点击下方链接,申请 14 天免费试用:

https://www.mistiny.com/index.php/trial-submit/