文章前言
目前有各种C2C工具,其中一些使用ICMP和DNS等协议以及其他一些合法网站,如DropBox和Gmail,在DerbyCon 3.0期间, Matt Graeber和Chris Campbell介绍了一种使用网站关键字的技术,以便在系统中触发shellcode。
Powershell-C2
Matt Nelson制作了一个PowerShell 脚本(https://github.com/enigma0x3/Powershell-C2 ),该脚本使用相同的技术来获得Meterpreter会话并使用其作为命令和控制工具的所有功能,这种技术的主要好处是shellcode直接从内存执行,噪声较小,并通过注册表项实现持久性。
在这里我们使用Empire的Invoke-Shellcode.ps1来作为powershell木马文件:
之后我们在攻击主机上使用Python启动一个web服务来提供Invoke-Shellcode.ps1的下载:
之后我们需要再攻击主机上启动MSF框架并设置监听:
之后修改当PowerShell-C2脚本中的Word以及DownloadString地址:
之后在目标主机上执行C2Code.ps1(中间可能需要设置set-executionpolicy remotesigned,大多数情况会涉及到提权):
之后再攻击主机上可以看到HTTP请求记录,也就是Invoke-Shellcode的下载记录:
同时会在MSF框架中收到返回的会话:
到这里可能有人会说这有啥高科技的呢?不就是一个在powershell下隐藏执行powershell程序之后反弹shell的吗?哪里有什么隐匿的呢?当然,到这里还没有结束,我们继续往下面看!
Matt Nelson还创建了一个Office 宏,它执行相同的技术,但另外创建了一个注册表项,每次用户登录时都会执行C2Code PowerShell脚本以保持持久性:
下面我们演示一下流程,首先使用Word新建一个Word文档,选择视图->宏->查看宏:
输入任意宏名称,之后点击“创建”
之后清除编辑器内的所有宏代码,之后复制“Macro”宏代码到粘贴板,之后粘贴宏:
之后关闭宏编辑器,同时将文档另存为宏文档:
之后发送恶意文档给目标用户,当目标用户使用Word打开恶意文档并点击"启用宏"时恶意代码将成功执行:
之后在Python提供的Web服务端将会收到两次请求:
同时Meterpreter会话将打开,这里就很迷,一下可以一下不可以,暂且过:
注册表被修改
相关链接
https://github.com/enigma0x3/Powershell-C2
https://pentestlab.blog/2017/09/14/command-and-control-website-keyword/
https://enigma0x3.net/2014/01/17/command-and-control-using-powershell-and-your-favorite-website/