域滲透 Kerberoasting攻擊

2022-05-05 13:24:10 字數 1991 閱讀 9298

一、spn介紹:

服務主體名稱(spn: service principal names)是服務例項,可以將其理解為乙個服務(比如 http、mssql)的唯一識別符號,服務在加入域中時是自動註冊的。

如果在整個林或域中的計算機上安裝多個服務例項,則每個例項都必須具有自己的 spn。如果客戶端可能使用多個名稱進行身份驗證,則給定服務例項可以具有多個 spn。spn 始終包含執行服務例項的主機的名稱,因此服務例項可以為其主機名稱或別名註冊 spn。

如果想使用 kerberos 協議來認證服務,那麼必須正確配置 spn。

註冊在域內機器賬戶(computers)上

註冊在域內使用者賬戶(users)下

二、spn 標準格式

在 spn 語法中存在 4 種元素,兩個必須元素和兩個格外元素。其中 和 為必需元素。

/:服務型別/對應機器名:服務埠[預設埠可不寫]

三、使用 setspn 為機器(域使用者)建立 spn

-s 引數:驗證不存在重複項後,新增隨意 spn。注意: -s 從 windows server 2008 開始系統預設提供。

檢視test域內所有的spn

setspn.exe -t test -q */*

四、原理說明

在 spn 掃瞄時我們可以直接通過指令碼,或者命令去獲悉內網已經註冊的 spn 內容,ldap 協議全稱是 lightweight directory access protocol,一般翻譯都是翻譯成 輕量目錄訪問協議。通俗點可以把 ldap 協議理解為乙個關係型資料庫,其中儲存了域內主機的各種配置資訊。

在域控中預設安裝有 adsi 編輯器,它是 ldap 的編輯器,可以通過在域控中執行 adsiedit.msc 來開啟。

我們的 spn 查詢,實際上就是就是查詢 ldap 中儲存的內容。

一、介紹kerberoasting

當域內某個使用者去請求同域內的某個服務資源時,請求會首先被送達 kds 的 as 中進行身份認證,認證通過後 as 會返回乙個用使用者密碼 hash 加密的 tgt 給使用者,然後使用者再拿著 這個 tgt 向 tgs 去請求,tgs 會返回乙個用對應服務賬號的密碼 hash加密過(rc4_hmac_md5)的專門用於訪問特定服務的服務票據回來,最後,使用者只需拿這張服務票據去訪問對應的服務資源即可,而問題就出在 tgs 返回服務票據,目標服務此時用的乙個域賬號來執行的,那麼 tgs 在向使用者返回服務票據時,使用者就可以拿到這張服務票據中 hash,由於 tgs 服務票據加密演算法已知,嘗試窮舉口令,模擬加密過程,生成tgs進行比較。如果tgs相同,代表口令正確,就能獲得目標服務例項的明文口令

二、利用kerberoasting

請求所有spn:cscript getuserspns.vbs

利用mimikaz匯出所有票據:mimikatz.exe "standard::base64""kerberos::list /export"

在tgs_rep訊息中提取加密的服務票證部分:python extractserviceticketparts.py 1-40a00000-yiwang@mssqlsvc~yiwang.com~1433-yiwang.com.kirbi>hash.txt

破解:tgscrack.exe -hashfile hash1.txt -wordlist top1w.txt

域滲透之ldap協議

ldap light directory access protocal 是乙個基於x.500標準的輕量級目錄訪問協議,ldap是支援跨平台的internet協議,只需要通過ldap做簡單的配置就可以與伺服器做認證互動。可以大大降低開發的成本。windows active diretcory就是乙個...

CTF 域滲透 私鑰洩漏

1.檢視本機ip和網段 2.掃瞄本機網段,出現pcs 3.確定是否與靶場連通 1.資訊探測 nmap sv 192.168.31.217 2.通過瀏覽器檢視此ip開放的埠號為31337的http服務 3.檢視此網頁的源 4.對這個服務的隱藏檔案進行探測 5.開啟robots.txt檔案網頁 6.開啟...

域滲透的金之鑰匙

mickey 2015 10 13 11 33 最近幾年很少搞內網滲透了,這幾年發展的快啊,看了a牛翻譯的 發現趨勢都是powershell指令碼化了。想當年遇到的域控都是windows 2003的,找朋友要些vbscript指令碼自動化,然後那啥那啥的。現在搞域除了前段時間出的ms14068,還有...