Pathfinder Walkthrough Video! ??
博客原文地址
我在 0x00
開篇中有說過,在慢慢學習,和記錄的過程當中,一個滲透測試學習者應該形成自己的學習思路,和測試工作流程。
這是第五篇博文,我個人的學習思路初步已經(jīng)形成,那就是
-
nmap
一下HackTheBox
的目標機器,查看開放端口 - 對照 Ports and Services,查詢不熟悉的服務類型
- 大致上明白這個機器是用來做什么練習的,比如這個
Pathfinder
,是關于Kerberos
和ActiveDirectory
的 - 如果這個主題自己還不是很熟悉,那么就先找很多的資料看一下, 比如搜一下
pentest kerberos exploits
- 如果這個主題比較熟悉,那么直接切入,嘗試獲取控制權(quán)
大多數(shù)情況下,都是不熟悉的主題,因為我是個菜鳥??!
我盡可能晚地去尋求 Walkthrough
的幫助,因為第一,這就像看電影,而 Walkthrough
就像是劇透,很掃興;第二,形成了這樣的習慣,之后不免會淪為工具黨,對往后的發(fā)展也不好。因此,不到萬不得已,我不會去看 Walkthrough
(前篇那個 Rotten Potato
的漏洞那真是沒辦法,怎么也找不到解決方案)。給自己定個大原則,總有好處的 ??
至于工作流程,現(xiàn)在說還太早。
Help Desk
對于 Kerberos
我一無所知,所以一下是我在嘗試 Pathfinder
之前閱讀的資料。
How does Kerberos Work?
Kerberos Exploits
Kerberos Exploitation Cheetsheet
Get to Know Kerberos Video
AD Series-part-I
AD Series-part-II
AD Pentest Methodology
如果大家和我一樣對于 Kerberos
不太熟悉,那就請一定看完這些資料,很有幫助。我找的資料一定是英文的,畢竟這些都是別人的技術。有人說我讀著累不累,不好意思我是英語系畢業(yè),專八,所以哈哈哈哈,小小驕傲一下?? 除此之外就像我說的,我是個菜鳥,也永遠是菜鳥的心態(tài)。
好了,現(xiàn)在準備接手 Pathfinder
。
Recon
Nmap
# Nmap 7.80 scan initiated Wed Apr 22 07:55:30 2020 as: nmap -sC -sV -p53,88,135,139,445,593,47001,49668,49673,49698 -oN nmap/nmap.txt 10.10.10.30
Nmap scan report for 10.10.10.30
Host is up (0.64s latency).
PORT STATE SERVICE VERSION
53/tcp open domain?
| fingerprint-strings:
| DNSVersionBindReqTCP:
| version
|_ bind
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2020-04-22 18:58:35Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
49668/tcp open msrpc Microsoft Windows RPC
49673/tcp open msrpc Microsoft Windows RPC
49698/tcp open msrpc Microsoft Windows RPC
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port53-TCP:V=7.80%I=7%D=4/22%Time=5EA030C0%P=x86_64-pc-linux-gnu%r(DNSV
SF:ersionBindReqTCP,20,"\0\x1e\0\x06\x81\x04\0\x01\0\0\0\0\0\0\x07version\
SF:x04bind\0\0\x10\0\x03");
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: 7h02m51s
| smb2-security-mode:
| 2.02:
|_ Message signing enabled and required
| smb2-time:
| date: 2020-04-22T18:59:39
|_ start_date: N/A
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Wed Apr 22 07:57:13 2020 -- 1 IP address (1 host up) scanned in 102.11 seconds
smb
,kerberos
,可以確定這是一個 active directory
相關的問題。
在上述閱讀資料中,就有解決這個問題的方法。
Enumeration
Bloodhound-python
搜一下 bloodhound-python site:github.com
,按照提示安裝。
筆者用
python3.8
安裝之后,運行時會報digestmod
相關的錯誤,建議用python2
。或者也可以嘗試3.7
等其他版本。
因為我們有一個登錄信息了,sandra
:Password1234!
(移步 0x03
篇文章或者視頻查看),所以可以直接跳到這一步。Bloodhound
可以把整個 DC (Domain Controller)
的信息,包括用戶,組,內(nèi)網(wǎng)的設備,以 json
的方式保存。
關于 Kerberos 和 Active Directory,可以單獨開一篇文章記錄一下整個原理,期待一下。
neo4j and bloodhound
apt install neo4j bloodhound
安裝完之后先運行 neo4j
- neo4j start console
。
如果看到
no such file or directory
的錯誤,就手動創(chuàng)建一下run
和log
目錄 -mkdir -p /usr/share/neo4j/run; mkdir -p /usr/share/neo4j/run
根據(jù)提示到瀏覽器訪問 http://localhost:7474
,默認密碼是 neo4j
,連接服務器之后會提示更改初始謎面。
現(xiàn)在可以直接在命令行運行 bloodhound
,輸入用戶名密碼登錄。
將之前 bloodhound-python
拉取的幾個 json
文件,逐一拖入 bloodhound
進行分析。
選擇 Queries
。
這里我并不知道該如何選擇,我挨個點了一遍,有一些請求會顯示一個
Administrator
,點擊之后看 Node Info
,看到了一連串的 False
,感覺沒有什么能利用的空間。點到
Find Principals with DCSync Rights
的時候,出現(xiàn)了另一個登錄的用戶(綠色標識登錄到 DC
的用戶)- svc_bes
。點開這個用戶查看一下
Node Info
。發(fā)現(xiàn) ASREP Roastable
是 True
。附上 Node Info Guide,解釋了每一項的意思
- 線索:有一個用戶的
ASREP Roastable
是True
- 思路:在閱讀過程中,諸如
kerberoasting
是一個很常見的攻擊方式 - 搜索一下
asrep roasting
確認這是一個可以利用的賬戶。
該如何利用呢?答案大家可以到 之前提到過的這篇文章中找。
Impacket GetNPUsers.py
TGT hash
包含用戶密碼,獲取到之后直接用 JTR
或者 hashcat
破解即可。
獲得了
svc_bes
的登錄密碼。
- 線索:有兩個登錄信息
- 思路:能不能直接登錄到目標機器上
- 操作:回看
nmap
結(jié)果,沒有發(fā)現(xiàn)有什么可登錄的端口。
Foothold
More Enumeration
重新 nmap
一下全部端口,查找登錄服務。
結(jié)果一直報錯,換成
unicornscan
試一下。還是不行。再用
masscan
。rate
不能太高,不然連之前的 88
端口都掃不到。做了一些搜索,發(fā)現(xiàn) 5985
這個端口是用來遠程管理的。
搜一下 pentest winrm
第一個出現(xiàn)的是 evil-winrm
。
先登錄到
sandra
的賬號看一下。這個用戶的幾個目錄都是空的。
我用 services
命令獲取到 sandra
對于哪些服務有操作權(quán)限。
最后一個服務是
WinDefend
,好像是防火墻。查看一下防火墻的運行狀態(tài)。
權(quán)限不足。看一下進程。
這是剛才那個
sandra
有權(quán)限的進程。嘗試殺掉。權(quán)限不足。
擴展
不清楚用戶信息讓我很惱火,這篇文章又讓事情進了一步。
可以得到指定用戶的相關信息。但是還是沒有權(quán)限的相關信息。
列出緩存的
ticket
,ticket
信息是相當重要的,也是信息泄露的一種。
最后我再回到 bloodhound
,仔細看了一下視圖,原來視圖上就會顯示用戶對于 DC
的權(quán)限 ??
好,找到了就好。
登錄到 svc_bes
之后,可以在他的桌面找到該用戶的 flag
。
Privilege Escalation
擴展閱讀
當然先要看一下這個GetChangesAll
權(quán)限的意義
AD Related Vulnerable Permissions
Abusing AD Permissions
簡單說這個權(quán)限和 DCSync
相關,搜索一下 pentest dcsync attack
,這篇文章里面就有我要的下一步操作。
Impacket secretsdump.py
擴展
在這里插入圖片描述
這里補充一點,NTDS.dit
文件在C:\Windows\NTDS\
目錄,該文件包含password hash
。
這是
secretsdump
的用法,還得加上一個 -dc-ip
。原來
secretsdump.py
就是獲取的 NTDS.dit
文件的內(nèi)容。
至此,admin
的 hash
已經(jīng)拿到了。
Lateral Movement
搜索 pentest login to windows with admin hash
,都是 PTH pass the hash
。這篇文章有我要找的答案。
Impacket psexec.py
原來這里導出的是
NTLM hash
。
這就是上面所說的包含
password hash
的文件。
在桌面上,可以找到 admin
的 flag
。
I'm in...
整個過程,詳見頂部視頻 ??
More
crackmapexec
找到了服務器上的 smb
目錄,因為有 sandra
的密碼,除了 ADMIN$
和 C$
,其余每個都可以登錄查看。
有一個
GPP
相關的信息泄露,在之前閱讀的 這篇文章中 可以找到。當 DC
管理員進行工作組權(quán)限相關操作的時候,敏感信息會被保存到 SYSVOL
當中,而 SYSVOL
是任何人都可以訪問的。sandra
就訪問到了 SYSVOL
中的內(nèi)容,如果有敏感信息,就泄露了。可惜這里并沒有有用的信息。