在這篇文章中,我們將討論如何在攻擊的后滲透利用階段使用WMIC(Windows Management InstrumentationCommand Line)。當(dāng)攻擊者在遠(yuǎn)程PC上拿到meterpreter會(huì)話之后,他們就可以枚舉大量的系統(tǒng)信息,并利用WMI命令行工具來(lái)進(jìn)行更深程度的操作。首先,我們會(huì)介紹如何拿到遠(yuǎn)程PC的meterpreter會(huì)話。拿到會(huì)話之后,我們還會(huì)告訴大家如何提權(quán)至管理員權(quán)限。 WMIC命令行可以通過(guò)Windows CMD來(lái)訪問(wèn),直接在meterpreter shell中輸入“shell“即可。接下來(lái),我們一起看一看WMIC命令以及相應(yīng)的工作機(jī)制。 WMIC下面這個(gè)命令可以查看WMIC命令的全局選項(xiàng),WMIC全局選項(xiàng)可以用來(lái)設(shè)置WMIC環(huán)境的各種屬性,通過(guò)結(jié)合各種全局選項(xiàng)以及參數(shù),我們就可以通過(guò)WMIC環(huán)境來(lái)管理整個(gè)系統(tǒng)了。 wmic /?

獲取系統(tǒng)角色、用戶名和制造商銅鼓WMIC命令的操作系統(tǒng)指令,我們可以枚舉出大量關(guān)于目標(biāo)系統(tǒng)的信息,包括主機(jī)名、域名、制造商以及設(shè)備型號(hào)等等。 我們還可以添加下列過(guò)濾器來(lái)獲取更精準(zhǔn)的掃描結(jié)果: Roles:它可以給我們提供目標(biāo)設(shè)備在整個(gè)網(wǎng)絡(luò)系統(tǒng)中所扮演的角色,例如工作站、服務(wù)器或個(gè)人PC等等。 Manufacturer:它可以給我們提供目標(biāo)系統(tǒng)的制造商和設(shè)備型號(hào),因?yàn)槟承┨囟ㄖ圃焐趟a(chǎn)的特定型號(hào)設(shè)備會(huì)存在特定的漏洞,因此我們可以利用這部分信息來(lái)尋找存在漏洞的設(shè)備。 UserName:它可以給我們返回系統(tǒng)的用戶名,我們可以利用這部分信息來(lái)區(qū)分誰(shuí)是管理員誰(shuí)是普通用戶。 [/format:list]:以列表格式輸出數(shù)據(jù)并排列。 wmic computersystem get Name, Domain, Manufacturer, Model, Username, Roles/format:list

獲取SID為了枚舉出SID,我們需要用到WMIC的group選項(xiàng): wmic group get Caption, InstallDate, LocalAccount, Domain, SID, Status
如下圖所示,我們已經(jīng)查找到了賬戶名、域名、本地組成員狀態(tài)、SID以及相應(yīng)的狀態(tài): 
創(chuàng)建一個(gè)進(jìn)程WMIC命令的process選項(xiàng)可以幫助我們?cè)谀繕?biāo)用戶的系統(tǒng)中創(chuàng)建各種進(jìn)程。這種功能可以幫助我們創(chuàng)建后門(mén),或占用大量目標(biāo)系統(tǒng)的內(nèi)存: wmic process call create “[Process Name]”
wmic process call create “taskmgr.exe”
你可以從下圖中看到,這個(gè)命令不僅會(huì)創(chuàng)建一個(gè)進(jìn)程,而且還會(huì)賦予相應(yīng)的進(jìn)程ID,所以我們就可以根據(jù)我們的需要來(lái)修改進(jìn)程信息了。 
注意:如果進(jìn)程創(chuàng)建了一個(gè)類似任務(wù)管理器和CMD這樣的窗口,那么這條命令將會(huì)在目標(biāo)系統(tǒng)中打開(kāi)這個(gè)窗口,這樣會(huì)引起目標(biāo)用戶的懷疑。 修改進(jìn)程優(yōu)先級(jí)WMIC命令的process選項(xiàng)還可以幫我們修改目標(biāo)系統(tǒng)中運(yùn)行進(jìn)程的優(yōu)先級(jí),這是一個(gè)非常有用的功能。降低某個(gè)進(jìn)程的優(yōu)先級(jí)可能會(huì)導(dǎo)致特定的應(yīng)用程序發(fā)生崩潰,而提升某個(gè)進(jìn)程的優(yōu)先級(jí)甚至還會(huì)導(dǎo)致整個(gè)系統(tǒng)發(fā)生崩潰。 wmic process where name=”explorer.exe” call set priority 64

終止進(jìn)程WMIC命令還可以幫我們終止目標(biāo)系統(tǒng)正在運(yùn)行的進(jìn)程: wmic process where name=”explorer.exe” call terminate

獲取可執(zhí)行文件列表下面的命令可以枚舉出整個(gè)系統(tǒng)中所有可執(zhí)行文件的路徑地址: wmic process where “NOT ExecutablePath LIKE ‘%Windows%’” GET ExecutablePath

獲取目錄屬性WMIC命令的fsdir選項(xiàng)可以提取目標(biāo)系統(tǒng)中文件目錄的基本信息,其中包括壓縮方法、創(chuàng)建日期、文件大小、是否可讀寫(xiě)、是否為系統(tǒng)文件、加密狀態(tài)以及加密類型等等: wmic fsdir where=”drive=’c:’ and filename=’test’” get /format:list’

獲取文件屬性WMIC命令的datafile選項(xiàng)可以獲取目標(biāo)系統(tǒng)中文件的基本信息,其中包括壓縮方法、創(chuàng)建日期、文件大小、是否可讀寫(xiě)、是否為系統(tǒng)文件、加密狀態(tài)以及加密類型等等: wmic datafile where=’[Path of File]’ get /format:list
wmic datafile where name=’c:\\windows\\system32\\demo\\demo.txt’ get /format:list

定位系統(tǒng)文件WMIC可以提取出所有重要系統(tǒng)文件的路徑,例如temp目錄和win目錄等等: wmic environment get Description, VariableValue

獲取已安裝的應(yīng)用程序列表wmic product get name

獲取正在運(yùn)行的服務(wù)列表獲取到正在運(yùn)行的服務(wù)列表之后,WMIC還可以提供服務(wù)的啟動(dòng)模式,例如“自動(dòng)”、“手動(dòng)”和“運(yùn)行中”: wmic service where (state=”running”) get caption, name, startmode

獲取系統(tǒng)驅(qū)動(dòng)詳情sysdrive選項(xiàng)可以枚舉出驅(qū)動(dòng)的名稱、路徑和服務(wù)類型等數(shù)據(jù): wmic sysdriver get Caption, Name, PathName, ServiceType, State, Status /format:list

獲取操作系統(tǒng)詳情os選項(xiàng)可以列舉出目標(biāo)系統(tǒng)的上一次啟動(dòng)時(shí)間、注冊(cè)的用戶數(shù)量、處理器數(shù)量、物理/虛擬內(nèi)存信息和安裝的操作系統(tǒng)類型等等: wmic os get CurrentTimeZone, FreePhysicalMemory, FreeVirtualMemory, LastBootUpdate,NumberofProcesses, NumberofUsers, Organization, RegisteredUsers, Status/format:list

獲取主板信息和BIOS序列號(hào)wmic baseboard, get Manufacturer, Product, SerialNumber, Version

wmic bios, get serialNumber

獲取內(nèi)存緩存數(shù)據(jù)memcache選項(xiàng)可以獲取到內(nèi)存緩存名和塊大小等信息: wmic memcache get Name, BlockSize, Purpose, MaxCacheSize, Status

獲取內(nèi)存芯片信息memorychip選項(xiàng)可以獲取到RAM的相關(guān)信息,例如序列號(hào)等等: wmic memorychip get PartNumber, SerialNumber

判斷目標(biāo)系統(tǒng)是否為虛擬機(jī)我們可以根據(jù)onboarddevice選項(xiàng)返回的信息來(lái)判斷目標(biāo)系統(tǒng)到底是真實(shí)的主機(jī)操作系統(tǒng),還是一臺(tái)虛擬機(jī)(VMware或Virtual Box): wmic onboarddevice get Desciption, DeviceType, Enabled, Status /format:list

用戶賬號(hào)管理鎖定用戶賬號(hào)我們可以使用useraccount選項(xiàng)來(lái)鎖定本地用戶賬號(hào): wmic useraccount where name=’demo’ set disabled=false

用戶賬號(hào)重命名wmic useraccount where name=’demo’ rename hacker

限制用戶修改密碼我們還可以限制本地用戶的密碼修改操作: wmic useraccount where name=’hacker’ set passwordchangeable=false

獲取反病毒產(chǎn)品詳情我們可以枚舉出目標(biāo)系統(tǒng)安裝的反病毒產(chǎn)品信息,包括安裝位置和版本: wmic /namespace:\\root\securitycenter2 path antivirusproduct GET displayName,productState, pathToSignedProductExe

清理系統(tǒng)日志WMIC命令的nteventlog選項(xiàng)還可以清除系統(tǒng)的日志記錄,當(dāng)你入侵了某個(gè)系統(tǒng)之后,這個(gè)命令可以幫助你掩蓋攻擊痕跡: wmic nteventlog where filename='[logfilename]’ cleareventlog
wmic nteventlog where filename=’system’ cleareventlog

|