Windows域橫向滲透

環境拓撲

我們的目的是獲取redhook.DA域的一個可用的賬戶,當前攻擊者已在公司網絡內,但並未在同一個子網。

1

Compromising Client 1

假設我們已經獲取到了Client1的登陸憑據,如果網絡足夠大,你可以發現存儲在某處網絡共享上面的其他憑據(通過批量的腳本:vbs,ps1,.net等等)。關於怎麼訪問網絡,你可以使用Cobalt Strike框架。

我們可以這樣做:

2

我們可以通過批量的腳本快速的獲得NETBIOS的信息。

3

在win上,可以用命令nbtstat -A IP獲得相同的信息,可以看到機器名是WIN7-ENT-CLI1,屬於REDHOOK域。

PsExec:

使用msf的psexec可以很容易的獲取到一個shell。BOB是一個本地用戶,不用指定SMBDomain參數。

4

我們也可以使用Impacket’s PsExec,但psexec的好處是可以傳遞hash。

5

不要忘了微軟自己的PSEXEC有額外的好處,添加一個-s參數會給你一個system的shell。

6

WMI

一些WMI的選項也可以讓你遠程系統上執行命令。最值得注意的是WMIC,不僅可以在遠程系統上執行命令,還可以通過內置的命令獲取系統的敏感信息和配置操作系統。

7

最好使用cmd.exe /c或powershell -exec bypass -command。

我們使用Impacket WmiExec可以獲取到一個半交互式的shell,執行命令並獲取輸出。

8

最後使用PowerSploit的Invoke-WmiCommand命令。

9

Pass-The-Hash, WCE & Mimikatz:

有時候你只能獲取到NTLM的hash值,可以使用msf的psexec或WCE或Mimikatz。

10

缺點是WCE可能會被發現,而mimikatz是直接加載內存。

11

Smash-And-Grab

Metasploit (Mimikatz & hashdump):

dom-10

Secretsdump & Invoke-Mimikatz:

也可以使用Impacket’s SecretsDump和Powersploit’s Invoke-Mimikatz來獲取。mimikatz的腳本託管在攻擊者的服務器上。

dom-11

可能還有其他技術,但是以上是最經典的。

Impersonation:

現在我們有了redhook域裏的一臺機器並且能連接到不同的子網中,現在開始做一個信息收集。

要查詢域的信息,需要有一個域用戶,當前的bob用戶並不是域用戶或system權限,但是我們可以通過

NtQuerySystemInformation來發現其他用戶的token,進而模擬他們登陸。

meterpreter有這個插件,使這個過程非常簡單。

dom-14

也可以使用incognito(下載地址:https://labs.mwrinfosecurity.com/blog/2012/07/18/incognito-v2-0-released/)

dom-15

Reconnaissance

域偵察:

現在我們有了一個域用戶,我們需要儘快擴大戰果。

16

以上命令分別是:

  1. 獲取當前用戶
  2. 獲取當前機器名
  3. 獲取IP信息
  4. 獲取域內共享資源列表
  5. 返回驗證當前登錄會話的域控制器的名稱
  6. 獲取域控地址
  7. 查看本機所有用戶
  8. 查看域用戶
  9. 查看所有本地管理員組的用戶
  10. 列出域內活躍的機器和會話
  11. 獲取從域控上的連接源
  12. 獲取本地管理員的信息
  13. 獲取域管理員的信息

通過簡單的信息收集,我們能瞭解到讓我們自己成爲域管理員的途徑。

  1. TemplateAdmin 是client1和client2的管理員
  2. 雖然我們沒有明文,但是我們有TemplateAdmi的hash來訪問client2
  3. REDHOOK\ Administrator認證在client2,如果搞定client2,即可獲得域控

Socks Proxy:

最後一個事就是添加路由,讓我們通過代理能訪問系統,如果使用msf或cobalt strike那麼就非常簡單。

dom-16

使用session1 通過socks4a來進行進一步的掃描。

dom-17

使用proxychains。

dom-18

Compromising Client 2

Metasploit (PortProxy & PsExec):

共享的本地管理員賬戶,客戶端1和客戶端2的TemplateAdmin是通用的賬號,密碼也一樣。
我們可以使用portproxy從client1進行端口轉發。

dom-19

client1監聽10.1.1.2:9988向10.0.0.128:9988發送流量。再配置psexec。

dom-20

Impacket (PsExec) & netsh:

在client1上使用netsh手動設置轉發規則。

dom-21

現在有個規則是把流量從10.0.0.129:5678轉發到10.1.1.3:445,Impacket’s PsExec需要一個自定義端口,編輯源碼來實現。

dom-22

dom-23

當完成轉發之後,記得清理規則。

如果我們獲取不到明文密碼,我們仍然可以冒充域管理員的令牌。

Smash-And-Grab ²

Metasploit Easy-Mode (Mimikatz & hashdump & incognito):

dom-24

dom-25

Impacket (PsExec) & incognito:

我們使用incognito來執行遠程命令。

dom-26

dom-27

文件傳輸

接下來我們就很容易來拖拽文件了。

28

Compromising Redrum-DC

Socks Proxy & Impacket (WmiExec):

我們要麼獲取域管理員的密碼,要麼我們自己新建一個域管理員。

還記得之前用戶socks代理麼,我們可以使用它來訪問域內幾乎所有東西。

dom-28

Sysinternals (PsExec) & Invoke-Mimikatz:

dom-29

win2k12增強了hash的保護性,所以我們這樣來獲取hash值。

dom-30

提取NTDS

很多時候提取了NTDS 說明滲透要結束了,下面我介紹一下訪問本地shell或通過wmi來執行命令的方法。

Volume Shadow Copy (Classic-Mode):

31

把文件拖到攻擊者的機器裏面有很多方法,我介紹一種,可以簡單的使用Impacket’s SecretsDump本地解壓傳輸內容。

dom-31

注意下NTDS可能會包含很多用戶,甚至上千,是非常大的,導出的時候要小心。

Socks Proxy & Impacket (SecretsDump) (Easy-Mode):

如果我們有socks代理,則很容易的使用明文密碼來執行SecretsDump 。

dom-32

資源

 

*原文:fuzzysecurity  Mottoin翻譯發佈

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