La máquina "SENSE" se retiró hace tiempo así que podemos hablar con total libertad sobre la forma de conseguir sus flags.
Como ya sabes, Hackthebox es un sitio donde hay todo tipo de máquinas virtuales vulnerables para practicar pentesting sin tener que hacer informes como lo haría un pentester en la vida real.
Estaba intrigado por el nombre de la máquina y por el sistema operativo. Me preguntaba si podría ser un firewall. Pensé que podía ser PFSENSE (OpenSource Firewall) y en realidad las letras "PF" fueron retiradas ;)
La dirección de la máquina destino es la 10.10.10.60.
Enumeración
Escaneo de puertos
En esta parte vamos a encontrar los puertos y servicios de nuestro objetivo.
nmap 10.10.10.60
Escaneo de versiones
nmap -sV 10.10.10.60
También comprobé la versión del servidor web con el comando curl:
curl -I 10.10.10.60
Luego usé Metasploit para tener organizados mis escaneos. Es muy útil para manejar las máquinas, así que lo importé todo y trabajé con ello:
Después, verifiqué mis hallazgos abriendo mi navegador para ver cómo era.
El siguiente paso en este punto es intentar entrar a la interfaz de administración. Busqué credenciales predeterminadas para probar (admin/password), pero no funcionó. Entonces, ¿qué es lo que hay que hacer?
¿Buscar posibles vulnerabilidades? OK, vamos a ello. Podría ayudarnos;) no estoy seguro.
nmap -sV --script_vuln 10.10.10.60
Nada interesante grrr. Simplemente nos dice las debilidades de la implementación de SSL.
Posteriormente, estuve dándole vueltas durante mucho tiempo y al principio traté de encontrar el "Username" y la "Password". Para hacer eso, hice fuerza bruta en la URL. Pero, esta acción también me mostró
muchos archivos, y finalmente, seguí al conejo blanco hasta la madriguera...
¡Tomé una taza de café y finalmente encontré la respuesta! Y si pudiera ser solo un puto archivo de texto ...
Enumeración adicional
Solo quería buscar archivos de texto ... Así que lo hice con DirBuster.
Después de un largo tiempo escaneando, se encontró el archivo mágico. Es "system-users.txt". El otro no importa en absoluto. Así que ponemos la ruta y encontramos lo que buscamos.
Entonces, tenemos nuestro nombre de usuario que es "Rohit" y la contraseña que debe ser "Pfsense".
Recapitulando
Eso es genial, ¿no? Estamos dentro.
Ok, por ahora, estamos conectados al firewall de Pfsense con la cuenta de usuario. ¿Qué hacer a continuación?.
Debilidades del sistema
Tenemos acceso en el panel de administración, eso es genial. Entonces, vamos a buscar una vulnerabilidad para lograr una intrusión en el sistema.
Después de algunas investigaciones en Internet, la versión de PFSENSE muestra algunas vulnerabilidades. Uno de ellos es muy interesante, ejecuta código remoto.
Para obtener más detalles, consulta el CVE 2014-4688:
CVE-2014-4688 : pfSense before 2.1.4 allows remote authenticated users to execute arbitrary...
CVE-2014-4688 : pfSense before 2.1.4 allows remote authenticated users to execute arbitrary commands via (1) the...
www.cvedetails.com
Al leer los detalles para explotar esta vulnerabilidad, sabemos que debemos tener credenciales de pfsesce. Tenemos algunos exploit en Internet y en el framework de metasploit.
En este POC, usamos metasploit para obtener una shell remota.
Explotación
Vamos a configurar nuestro exploit!
Entonces, entramos en el sistema y obtenemos una sesión de meterpreter. Genial, ¿no?
El próximo y último paso es escalar nuestros privilegios para conseguir las flags. Tenemos 2 flags para encontrar. La de usuario y la de root.
La flag de usuario:
La flag de root:
GAME OVER ;)
Como ya sabes, Hackthebox es un sitio donde hay todo tipo de máquinas virtuales vulnerables para practicar pentesting sin tener que hacer informes como lo haría un pentester en la vida real.
Estaba intrigado por el nombre de la máquina y por el sistema operativo. Me preguntaba si podría ser un firewall. Pensé que podía ser PFSENSE (OpenSource Firewall) y en realidad las letras "PF" fueron retiradas ;)
El LOGO de la máquina |
Enumeración
Escaneo de puertos
En esta parte vamos a encontrar los puertos y servicios de nuestro objetivo.
nmap 10.10.10.60
Starting Nmap 7.40 ( https://nmap.org ) at 2018–03–08 16:17 CET
Nmap scan report for 10.10.10.60
Host is up (0.079s latency).
Not shown: 998 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
Escaneo de versiones
nmap -sV 10.10.10.60
Starting Nmap 7.40 ( https://nmap.org ) at 2018–03–08 16:22 CET
Nmap scan report for 10.10.10.60
Host is up (0.053s latency).Not shown: 998 filtered ports
PORT STATE SERVICE VERSION
80/tcp open http lighttpd 1.4.35
443/tcp open ssl/http lighttpd 1.4.35
También comprobé la versión del servidor web con el comando curl:
curl -I 10.10.10.60
HTTP/1.1 301 Moved Permanently
Location: https://10.10.10.60/
Date: Thu, 08 Mar 2018 15:52:44 GMT
Server: lighttpd/1.4.35
Luego usé Metasploit para tener organizados mis escaneos. Es muy útil para manejar las máquinas, así que lo importé todo y trabajé con ello:
db_nmap -O 10.10.10.60
[*] Nmap: Starting Nmap 7.01 ( https://nmap.org ) at 2018–03–14 16:32 CET
[*] Nmap: Nmap scan report for 10.10.10.60
[*] Nmap: Host is up (0.031s latency).
[*] Nmap: Not shown: 998 filtered ports
[*] Nmap: PORT STATE SERVICE
[*] Nmap: 80/tcp open http
[*] Nmap: 443/tcp open https
[*] Nmap: Warning: OSScan results may be unreliable because we could not find at
least 1 open and 1 closed port
[*] Nmap: Device type: general purpose|specialized
[*] Nmap: Running (JUST GUESSING): OpenBSD 4.X (93%), Comau embedded
(92%), FreeBSD 6.X (89%), Linux 2.6.X (89%)
[*] Nmap: OS CPE: cpe:/o:openbsd:openbsd:4.0 cpe:/o:freebsd:freebsd:6.3
cpe:/o:linux:linux_kernel:2.6.29
[*] Nmap: Aggressive OS guesses: OpenBSD 4.0 (93%), Comau C4G robot control unit
(92%), FreeBSD 6.3-RELEASE (89%), Linux 2.6.29 (89%), OpenBSD 4.3 (85%)
[*] Nmap: No exact OS matches for host (test conditions non-ideal).
[*] Nmap: OS detection performed. Please report any incorrect results at
https://nmap.org/submit/ .
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 14.27 seconds
Después, verifiqué mis hallazgos abriendo mi navegador para ver cómo era.
Captura del acceso a pfsense |
¿Buscar posibles vulnerabilidades? OK, vamos a ello. Podría ayudarnos;) no estoy seguro.
nmap -sV --script_vuln 10.10.10.60
|_http-server-header: lighttpd/1.4.35
| ssl-ccs-injection:
| VULNERABLE:
| SSL/TLS MITM vulnerability (CCS Injection)
| State: VULNERABLE
| Risk factor: High
| OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h
| does not properly restrict processing of ChangeCipherSpec messages,
| which allows man-in-the-middle attackers to trigger use of a zero
| length master key in certain OpenSSL-to-OpenSSL communications, and
| consequently hijack sessions or obtain sensitive information, via
| a crafted TLS handshake, aka the “CCS Injection” vulnerability.
|
| References:
| http://www.openssl.org/news/secadv_20140605.txt
| http://www.cvedetails.com/cve/2014-0224
|_ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0224
| ssl-dh-params:
| VULNERABLE:
| Diffie-Hellman Key Exchange Insufficient Group Strength
| State: VULNERABLE
| Transport Layer Security (TLS) services that use Diffie-Hellman groups
| of insufficient strength, especially those using one of a few commonly
| shared groups, may be susceptible to passive eavesdropping attacks.
| Check results:
| WEAK DH GROUP 1
| Cipher Suite: TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
| Modulus Type: Non-safe prime
| Modulus Source: RFC5114/1024-bit DSA group with 160-bit prime order subgroup
| Modulus Length: 1024| Modulus Length: 1024
| Generator Length: 1024
| Public Key Length: 1024
| References:
|_ https://weakdh.org
| ssl-poodle:
| VULNERABLE:
| SSL POODLE information leak
| State: VULNERABLE
| IDs: CVE:CVE-2014-3566 OSVDB:113251
| The SSL protocol 3.0, as used in OpenSSL through 1.0.1i and other
| products, uses nondeterministic CBC padding, which makes it easier
| for man-in-the-middle attackers to obtain cleartext data via a
| padding-oracle attack, aka the “POODLE” issue.
| Disclosure date: 2014–10–14
| Check results:
| TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014–3566
| http://osvdb.org/113251
| https://www.openssl.org/~bodo/ssl-poodle.pdf
|_ https://www.imperialviolet.org/2014/10/14/poodle.html
|_sslv2-drown:
Nada interesante grrr. Simplemente nos dice las debilidades de la implementación de SSL.
Posteriormente, estuve dándole vueltas durante mucho tiempo y al principio traté de encontrar el "Username" y la "Password". Para hacer eso, hice fuerza bruta en la URL. Pero, esta acción también me mostró
muchos archivos, y finalmente, seguí al conejo blanco hasta la madriguera...
¡Tomé una taza de café y finalmente encontré la respuesta! Y si pudiera ser solo un puto archivo de texto ...
Enumeración adicional
Solo quería buscar archivos de texto ... Así que lo hice con DirBuster.
Fuerza bruta en progreso |
La meta |
Credenciales |
Recapitulando
- nombre de usuario: Rohit
- contraseña: pfsense
Acceso a la administración del firewall |
Eso es genial, ¿no? Estamos dentro.
Ok, por ahora, estamos conectados al firewall de Pfsense con la cuenta de usuario. ¿Qué hacer a continuación?.
Debilidades del sistema
Tenemos acceso en el panel de administración, eso es genial. Entonces, vamos a buscar una vulnerabilidad para lograr una intrusión en el sistema.
Después de algunas investigaciones en Internet, la versión de PFSENSE muestra algunas vulnerabilidades. Uno de ellos es muy interesante, ejecuta código remoto.
Para obtener más detalles, consulta el CVE 2014-4688:
CVE-2014-4688 : pfSense before 2.1.4 allows remote authenticated users to execute arbitrary...
CVE-2014-4688 : pfSense before 2.1.4 allows remote authenticated users to execute arbitrary commands via (1) the...
www.cvedetails.com
Al leer los detalles para explotar esta vulnerabilidad, sabemos que debemos tener credenciales de pfsesce. Tenemos algunos exploit en Internet y en el framework de metasploit.
En este POC, usamos metasploit para obtener una shell remota.
Explotación
Vamos a configurar nuestro exploit!
La config del exploit en Metasploit |
El exploit funcionando bien |
El próximo y último paso es escalar nuestros privilegios para conseguir las flags. Tenemos 2 flags para encontrar. La de usuario y la de root.
La flag de usuario:
La flag de usuario |
La flag de root |
Contribución gracias a drx51
Más writeups en https://github.com/Hackplayers/hackthebox-writeups/
¡Gran walkthrough! Yo me quedé como el gato, dándome cabezazos contra el login de pfSense.
ResponderEliminarCuando leo estas cosas me siento tonto, porque desde luego enumerar algunas extensions lo debería haber hecho de motu propio. Pero lo que no es un gran éxito es una valiosa lección.
Este comentario ha sido eliminado por el autor.
ResponderEliminar