转载

PowerShell利用工具:扩展你的Empire

这是Empire系列的起始篇,其中涵盖了对 Empire 各方面的用法和功能的讲解,这些文章将以作者名分类发布出来。我已经发布了各版本 Empire (后续版本见链接),但是还未曾展示出该系列的强大(尽管@enigma0x3在八月发布了一篇《 Empire技巧讲解 》和《 Empire如何用于SCCM 》)。本文将会展示Empire如何进行横向扩展,其中会涵盖 提权 权限保持 数据挖掘 态势感知 以及 TrollSploit 等等。

Invoke-PsExec

PsExec已经陪伴了我们逾十年,效果有目共睹。某些黑客喜欢使用网络管理员的工具,以彼之道还施彼身,PsExec自然也不例外。当然我们并不是必须要使用PsExec进行横向扩展( 有些团队已经研究出更好的黑科技 ),但是它在特定的情况下仍然是一个不错的选择。

我们自定义实现的PsExec也就是 Invoke-PsExec ,其很大程度上基于Metasploit来实现。它利用exploit-monday.com上的 法子 ,实现了对底层的win32 API函数的访问,其操作如下:

1、 OpenSCManagerA 用来打开受害者机器上服务控制管理器的句柄,此处它使用了SC_MANAGER_ALL_ACCESS ( 0xF003F )权限。

2、 CreateServiceA 用来让服务控制管理器,创建一个指定的新服务,运行一个特定的命令。

3、接着用 OpenServiceA 启动该服务,以 StartServiceA 启用,在服务启动和执行指定的命令时进行短暂停顿。

4、使用 DeleteService 删除该服务。

很明显,这工具动静很大,稍微强点的防火墙就能检测到。但是它的优点在于,能直接给我们提供目标的system权限。上述的功能放在lateral_movement/invoke_psexec模块里,你需要设置Listener、ComputerName,并且配置好其它的内容。

PowerShell利用工具:扩展你的Empire

Invoke-WMI

我们更喜欢的横向扩展无疑是WMI,虽然使用WMI作为横向扩展有些需要注意的要点(参见 kerbero的double hop问题 )。它比PsExec的动静要小很多。在这里,我们可以用 lateral_movement/invoke_wmi ,使用 Invoke-WmiMethod -Path Win32_process -Name create … 来辅助Empire进行命令执行。因为double hop问题,你需要记住在大多数情况下,除非主机 没做约束 ,这个新的agent是无法访问额外的远程网络资源的。你需要使用runas/pth或者窃取token,以更新你现在运行的agent的身份认证凭据。

PowerShell利用工具:扩展你的Empire

Invoke-PsRemoting

如果目标上启用了WinRM(windows远程),你就能轻松用PowerShelly方式启用一个Empire agent。在远程系统上执行 Invoke-Command ,ScriptBlock参数后面跟上staging代码,横向扩展是非常容易的。如Invoke-PsExec和Invoke-WMI一样,我们的实现可以通过 lateral_movement/invoke_psremoting 模块,接收一个Listener和ComputerName以及一些可选的选项,最后在远程主机上启动stager。

Invoke-WMIDebugger

这里讲一个稍新奇的横向扩展法子,是使用WMI去设置五个Windows Accessibility可执行文件中任意一个的调试器。这些可执行文件包括臭名昭著的 sethc.exe (粘滞键,五下shift可触发),n arrator.exe (文本转语音,Utilman接口激活)、 Utilman.exe (windows辅助管理器,Win+U启用), Osk.exe (虚拟键盘,Utilman接口启用)、 Magnify.exe (放大镜,Utilman接口启用)。这些可执行文件是非常有用的,因为它们可以在身份验证之前就在RDP会话上触发。我们可以使用镜像劫持而不是替换掉这些可执行文件,当然清理起来也加容易。

有了 lateral_movement/invoke_wmi_debugger ,你可以设置这些可执行文件,关联到你指定的Empire staging代码,从而控制服务器。如果指定了listener,staging脚本会存储在RegPath指定的注册表位置,由指定的可执行文件启用。如果listener没有指定可执行文件,程序可能会启用默认的cmd.exe来替代:

PowerShell利用工具:扩展你的Empire

PowerShell利用工具:扩展你的Empire

这里给出一个提醒,如果你用这种方法触发agent,你可能会需要保持RDP窗口不关闭,直到它注入了其他进程。一旦RDP认证会话关闭,你的原始agent也会关闭。你需要至少30秒不活动的时间,直到你的RDP会话关闭。

当你做完这一切,指定Cleanup选项,所有的东西都会回原。这种后门适用于 在互联网中实现过的情况

传递hash

你可能会问,什么叫传递hash。我们并没有完整的hash传递的工具。这里,Benjamin Delphy (the @ gentilkiwi )帮助了我们。使用了 Joseph Bialek 的 Invoke-Mimikatz ,我们可以执行Mimikatz的 sekurlsa::pth 模块。它会让生成一个新的进程,然后将NTLM hash注入指定的进程空间,实现 over-pass-the-hash 攻击,从而有效地把认证信息转为Kerberos票据。你可以传递hash或者 credentials/mimikatz/pth 模块,或者在agent菜单里选择pth <CredID>(利用 Empire身份认证凭据存储 ):

PowerShell利用工具:扩展你的Empire

注意,在这里你首先需要管理员权限。第二,它会产生一个新的进程,所以Empire的Invoke-Mimikatz实现会让它不产生新窗口。在该进程运行后,使用steal_token模块(等同于 credentials/tokens 模块,Joe的 Invoke-TokenManipulation 的别名),窃取新启动进程的token。

PowerShell利用工具:扩展你的Empire

结语

横向扩展是每个渗透测试团队的重要工作步骤,PsExec、WMI、“Debuggers”、WinRM和PTH都有各自的地位和存在意义,Empire尽力让黑客们使用最好的方式来应付特定的情况。

*参考来源: harmj0y ,FB小编dawner编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

原文  http://www.freebuf.com/tools/94275.html
正文到此结束
Loading...