# LAMPSecurity: CTF5

## Détails de la machine

**Nom :** LAMPSecurity: CTF5\
**Date de sortie :** 10 Mai 2009\
**Lien de téléchargement :** [http://sourceforge.net/projects/lampsecurity/files/CaptureTheFlag/CTF5/ctf5.zip/download](http://sourceforge.net/projects/lampsecurity/files/CaptureTheFlag/CTF5/ctf5.zip/download)\
**Niveau :** Facile\
**Objectif(s) :** obtenir un accès "root"\
**Description :**`This is the fifth capture the flag exercise. It includes the target virtual virutal machine image as well as a PDF of instructions. The username and password for the targer are deliberately not provided! The idea of the exercise is to compromise the target WITHOUT knowing the username and password. Note that there are other capture the flag exercises. If you like this one, download and try out the others. If you have any questions e-mail me at justin AT madirish DOT net.`\
`The LAMPSecurity project is an effort to produce training and benchmarking tools that can be used to educate information security professionals and test products. Please note there are other capture the flag exercises (not just the latest one). Check the SourceForge site to find other exercises available (http://sourceforge.net/projects/lampsecurity/files/CaptureTheFlag/).`\
`These exercises can be used for training purposes by following this documentation. Alternatively you may wish to test new tools, using the CTF virtual machines as targets. This is especially helpful in evaluating the effectiveness of vulnerability discovery or penetration testing tools.`

## Reconnaissance

Je détermine l'adresse IP de la cible :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LX_LwU8tIFIzuT9Y-2p%2F-LX_MOL8fAUypn9rpn9M%2Fb1ccdc3cf6e39d0e1f5457325fbde479.png?alt=media\&token=3b5a019b-0581-4693-a1fb-0443811f16e6)

Je découvre les services offerts grâce à `nmap` :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LX_LwU8tIFIzuT9Y-2p%2F-LX_MYzvn-rsXd7gK20n%2F7d8fae9a9ed7013ca4db05ddbf66dd7e.png?alt=media\&token=a723ac12-8042-4674-b4be-8b7a4dbeb8e5)

Un nombre intéressant de services sont en écoute sur cette machine. Un serveur Web sur le port 80 mais également une interface d'administration sur le port 901. Je trouve également du POP, RPC, IMAP ou encore du SMB.

### Samba

Un `rpcclient` en anonyme nous permet d'énumérer les utilisateurs présents sur la machine :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LX_LwU8tIFIzuT9Y-2p%2F-LX_OJiid7WWkxxgzB9N%2Fb3d9ba977de6d37791d6a2c0581b9775.png?alt=media\&token=5b6d2430-fb08-4c9b-ac8f-eb775842a446)

Je n'ai rien trouvé d'intéressant autre que cette énumération, il y avait bien des répertoires partagés mais aucun droit en lecteur/écriture ne semble permettre son exploitation par un utilisateur anonyme.

### Server HTTP

Je m'attaque ici logiquement à la plus grosse partie des machines de type "LAMPSecurity", le serveur web. Je ne vais pas ajouter une impression écran pour chaque page/service disponible, car il y en a pas mal, mais voici la liste :

* La racine du site qui amène vers la page d'accueil de la "Phake Organization"
* Un blog est disponible à l'adresse "\~andy"
* Un premier webmail "SquirrelMail" en version 1.4.11 sur "/mail"
* Un gestionnaire d’événements sur "/event"
* Une page d'enregistrement sur "/list"
* Un phpMyAdmin sur "/phpmyadmin"
* Une seconde URL "/squirrelmail" menant vers le webmail "SquirrelMail"

#### Phake Organization

Un seul paramètre de disponible sur cette page et c'est déjà une première faille, le paramètre "page" est vulnérable à une LFI/RFI :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LX_LwU8tIFIzuT9Y-2p%2F-LX_RxdDZ9OtxVecP17G%2F11109b259d54c8ff03d2f8db1648b55a.png?alt=media\&token=172a6772-2bc8-48d1-a8e1-dfd77000682c)

#### Andy Carp's Blog

Il s'agit ici d'un blog qui se base sur un CMS du nom de "NanoCMS". Pour continuer ma reconnaissance, je récupère la version de ce CMS afin d'identifier de possibles vulnérabilités. Un petit tour sur Google m'apprends que la version (et bien plus encore) est disponible à la page "/data/pagesdata.txt" :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LX_LwU8tIFIzuT9Y-2p%2F-LX_TU11yP1gUbSkhD0J%2Fc548766dfbc5858b2fbc1872bc8e0684.png?alt=media\&token=4409c410-1e5f-4f85-b16d-e9c55aed3f14)

En effet, ce fichier contient le numéro de version du CMS (le dernier champ) mais aussi tout simplement le nom de l'administrateur ainsi que le condensat de son mot de passe.

#### phpMyAdmin

En ce qui concerne la version du phpMyAdmin il suffit d'accéder au fichier "README" pour connaitre sa version :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LX_LwU8tIFIzuT9Y-2p%2F-LX_V8tXQbXGsizHcqV6%2Fd84e90c1465c4606fb0254216d560f35.png?alt=media\&token=730ff28a-85ac-43ce-9061-4e6e00fd5659)

Rien de très intéressant avec cette version de phpMyAdmin selon `searchsploit`.

#### Page info.php

`nikto` remonte également la présence d'un fichier "/info.php" qui exécute en fait la méthode PHP `phpinfo()` :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LX_LwU8tIFIzuT9Y-2p%2F-LX_Zzh0qrSuiLA1PB7C%2F7ccfbb5b186f2db54f44f2bf9c84e01e.png?alt=media\&token=a2601d35-3484-48a2-8472-9b9d0b28d8bb)

Ce fichier peut contenir des informations intéressantes, par exemple il est ainsi possible de connaitre les "streams" disponibles afin d'exploiter une potentiel LFI/RFI.

### Samba SWAT administration server

Ce service est protégé par une authentification de type HTTP Basic. Pas de chance, les quelques couples de login/mdp testés ne donnent rien :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LX_LwU8tIFIzuT9Y-2p%2F-LX_WCkPro_JiVhL5QlD%2F3258fa60d9917d7b93a725f0a2434b63.png?alt=media\&token=1837143f-cf4c-49f9-ba9a-07e811989300)

### Service MySQL

Il semblerait que la version 5.0.45 du service MySQL soit vulnérable à un buffer overflow avec la CVE-2008-0226 et un module de metasploit semble disponible :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LX_LwU8tIFIzuT9Y-2p%2F-LX__vOKvEEiAmRm67I1%2F1980fccf044b04a930f840b7d1f3fdfb.png?alt=media\&token=2d0f8c43-15dc-4174-aec8-34bff3862cc0)

## Exploitation

### Local File Inclusion

Je commence par la LFI disponible sur la page d'accueil du site de la "Phake Organization". Il n'est pas possible ici d'effectuer une RFI, car il y a une concaténation avec le dossier "/inc" en préfix du nom du fichier. Il est toutefois possible de récupérer des fichiers locaux comme le "/etc/passwd", je possède déjà la liste des utilisateurs grâce au Samba, mais pourquoi pas :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LX_LwU8tIFIzuT9Y-2p%2F-LX_kjLsLehlmXC9nYuj%2F178e6aeca043b49acb41c3d10102cf77.png?alt=media\&token=c137a02b-c2e3-42e6-a283-b88b1092ee97)

Je tente également de cracker le condensat du mot de passe présent dans le fichier "pagesdata.txt" de NanoCMS :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LX_LwU8tIFIzuT9Y-2p%2F-LX_mPssHSkT7p4D4L0a%2Fa2327a9d57e315eee80ef20e26b10680.png?alt=media\&token=3e69d801-cb0b-4c73-8919-6f24ba07f801)

### Code injection

NanoCMS est vulnérable à une injection de code, il suffit de créer une nouvelle page avec la payload PHP désirée. En ce qui concerne les différentes vulnérabilités de NanoCMS, je suis tombé sur ce très bon site (en tout cas il y figure tout ce dont j'ai besoin) : [http://www.madirish.net/304](http://www.madirish.net/304)

J'utilise `msfvenom` afin de générer le reverse shell en PHP :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LX_LwU8tIFIzuT9Y-2p%2F-LX_pczIZSCtDwgULnCw%2F309aeef011df9311b20a8fc1eb14b7de.png?alt=media\&token=003423e9-4ee5-4485-8bbc-76462bd8d31c)

Puis grâce à une "nouvelle page" du blog j'exécute la payload :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LX_LwU8tIFIzuT9Y-2p%2F-LX_qRWk12oVs2eUqXdc%2F046dc4a98dd751b316066743c2556523.png?alt=media\&token=33ddb75d-bd64-4b11-9d29-60d46178d0da)

Je récupère ainsi un shell `meterpreter` avec metasploit :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LX_LwU8tIFIzuT9Y-2p%2F-LX_rcCukXhxJ9D7wKRb%2F161c5b804d376c96b5d1f685805c7f3e.png?alt=media\&token=775a707f-be2a-4814-b48a-8212508dee62)

Une recherche de l'occurrence "password" remonte la présence d'un "root password" au sein de fichiers Tomboy.

Tomboy, que je connaissais pas (non je ne parle pas du film :slight\_smile: ) est un outil de prise de notes sur Linux. Il semblerait que l'utilisateur "Patrick" possède un post-it avec peut être le mot de passe "root" :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXo30dl15X0tJhMBFfW%2F-LXo8NDImcy2RNBCvA1X%2F3bb3ff40e43e4bb00d67c2b77c59c703.png?alt=media\&token=c3f8f322-7a23-4275-a064-09a86497b6f6)

Je tente d'afficher le contenu de cette note :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXo30dl15X0tJhMBFfW%2F-LXo8rnujtpJ9xGfehY9%2F6aa78237000ce17e576200439cfd7a21.png?alt=media\&token=ba04fa72-12f5-49ca-ae96-306b1e6fd00c)

Le mot de passe "root" est "50$cent" (un fan de rap ?)

## Élévation de privilèges

L'élévation est ici facile puisque je suis en possession du mot de passe "root" :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXo30dl15X0tJhMBFfW%2F-LXo9H_fblDyvkib_V8u%2Ff51d0a93e0237a2cc2c9c0ad03f97f65.png?alt=media\&token=0ab61a01-b24f-44c9-ab1b-5c2b010f4b0e)

Travail terminé

## Conclusion

Machine plutôt facile. Bien que je ne connaissais pas Tomboy une recherche de mot de passe suffit pour trouver ce qui permettra l'élévation. A force de faire des machines, je commence à avoir mes routines une fois que je possède un point d'entrée sur le système : vérification des binaires suid, analyse des droits spécifiques sur certains fichiers, mot de passe faibles, listing des processus en exécution, etc. Rien de mieux que des petites cheat sheet faites par ses propres soins.

