# pWnOS 1.0

## Détails de la machine

**Nom :** pWnOS 1.0\
**Date de sortie :** 27 Juin 2008\
**Lien de téléchargement :** <http://pwnos.com/files/pWnOS_v1.0.zip>\
**Niveau :** Facile\
**Objectif(s) :** obtenir un accès "root"\
**Description :** \
`Some of you may have noticed this new pWnOS forum section. I created pWnOS as a virtual machine and Grendel was nice enough to let me post about it here. Here's a bit of information on pWnOS.`\
`It's a linux virtual machine intentionally configured with exploitable services to provide you with a path to r00t. :) Currently, the virtual machine NIC is configured in bridged networking, so it will obtain a normal IP address on the network you are connected to. You can easily change this to NAT or Host Only if you desire. A quick ping sweep will show the IP address of the virtual machine.`\
`Sorry...no scenario/storyline with this one. I wasn't really planning to release it like this, so maybe for version 2.0 I'll be more creative. :) I'm anxious to get feedback so let me know how it goes or if you have questions. Thanks and good luck!`

## Reconnaissance

Je commence par identifier la cible grâce à l'outil `netdiscover` :&#x20;

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXACn365RYaj2QiB1H9%2F-LXAJ0rA5apfB1Q-92ju%2Ff6a1dbcdd88ab149949cae9ffe6bfd89.png?alt=media\&token=629bd0b8-a6ce-4f29-8089-9ac47e24bed4)

L'outil `nmap` va permettre de connaitre les services disponibles s'exécutant sur la machine :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAKdfTmlxnoIbImL4B%2F9dc25fa2442de4044eb45751e7cd17fb.png?alt=media\&token=dc7bf9a4-450f-4b4d-acad-6dc41ca68418)

Il y a donc un service SSH (port 22), un serveur HTTP (port 80), des services NetBIOS/SMB (port 139 et 445) ainsi qu'un Webmin (port 10000).

### Service SSH

Le service SSH est un OpenSSH en version 4.6p1, `searchsploit` donne un exploit compatible qui pourrait m'aider pour la suite :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAY5yaO2_qccaM-2a0%2F442d8a3758d7a05dc868fb15ef5cbdce.png?alt=media\&token=83a1f043-4324-447a-beac-072829098604)

En effet, il est possible d'effectuer une énumération de comptes grâce à la vulnérabilité CVE-2018-15473 et à l'exploit "OpenSSH < 7.7 - User Enumeration (2)".

### Serveur HTTP

Je m'intéresse ensuite au serveur HTTP disponible sur le port 80 dont voici la page d'accueil :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXANByZoJNWZnDVSOz2%2F7d015eef878d9b201f7d23a633491d90.png?alt=media\&token=38a4c53d-a4a7-45ee-a0c0-3cf88fda8590)

Rien d'intéressant sur la première page, je continue l'exploration par le bouton "Next" :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXANXmRUsUAFsiWJ_fh%2F10dd09b23dc6cd72ae9f89eb8b3cdb44.png?alt=media\&token=bfa211f1-ec32-4a8d-a1c2-5d42dc686509)

Deux paramètres sont ici présents, "help" et "connect" qui ont pour valeur "true"*.* Je commence par les modifier afin de voir le comportement du serveur. Ce qui me permet d'identifier une possible LFI/RFI :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAOfTqdVy1HD8tCK3i%2F5e27b1cfd9ee11f85304a96eadf7c628.png?alt=media\&token=7480f2df-21fe-4092-bb22-5248f712797e)

Je prends note de cela dans un coin et continue l'exploration du site web :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAP5UDH_TI24kHjvIu%2F664faf4b57f285ddfde6d20b73cd8a71.png?alt=media\&token=eacb4606-c3fb-4189-9143-e27dfd399ace)

Même si cela ne m'aide pas, je remarque ici que les deux paramètres de l'URL "name" et "leve&#x6C;*"* sont vulnérables à une faille XSS. Etant donné qu'il s'agit d'une XSS réfléchie, Chrome va bloquer son exploitation, il faudra donc utiliser Firefox à la place :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAQeGfdI5tXS3EZNUq%2F47328ddf30811e23f179916c334b59e8.png?alt=media\&token=1587ee47-1e84-4f81-8376-d8044d00a6ef)

En parallèle de la navigation, j'ai également lancé un `nikto` ainsi qu'un `dirb` dont voici les résultats :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXASzxnV8CoPXsEJ_Db%2Fcb4eed5e344919d4081177a3a59c4d46.png?alt=media\&token=0c1fae25-93c9-4f1e-840c-5a5e70b0a15c)

`nikto` indique des versions d'Apache et de PHP obsolètes, la présence d'un répertoire "/php" ainsi que l'éventuel présence d'une LFI/RFI.

Quand à `dirb` :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXATe9TzQ5llhyPNFUa%2F86a7db8a6178b48873aea57f45b95f95.png?alt=media\&token=beee4e61-3384-4624-ab0a-3b3303444f55)

Il indique également la présence de répertoire "/php" et m'avertis que le listing directory y est possible :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAUE1CVvbP51R8KwXl%2F5c61da7887b99d38cc38b627ed85a923.png?alt=media\&token=ef9f135d-bfca-461f-8a0d-9d998c7351c8)

Il s'agit d'un PhpMyAdmin protégé par une authentification HTTP Basi&#x63;*.* Le test d'un premier couple de login/mot de passe me conduis à une erreur mais j'obtiens ainsi sa version :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAV8qCeEnrOyt-c7rK%2F87c0c42a614b4a18306e24ace3f28117.png?alt=media\&token=3cb3fe46-d2c9-4b7a-9fa4-f5798a0bbaf0)

C'en est fini de la reconnaissance du service web, je passe aux autres services disponibles.

### Samba

Je commence par un `nbtscan` afin de connaître un peu mieux ma cible :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXA_GqERxa5Q3tV3Qle%2Faf17bbd9117f3421930bf6e7cf19d9b4.png?alt=media\&token=9eac0a8f-e033-4a3a-b668-89f3d239a1a1)

La troisième colonne indique que la machine partage (ou est en mesure de le faire) certains dossiers. Je tente de me connecter grâce à `rpcclient` en tant qu'utilisateur anonyme :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAagnTq1DsF84FzA9m%2F58cbc1523720809d72788c48cbeba39c.png?alt=media\&token=a2c30baa-af20-4237-8782-89df5e5d7bf8)

Ce qui amène à l'énumération des utilisateurs Samba et des répertoires partagés :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAhaI5jg-XobJqgNfw%2Ffec6fe5bb71c5807d914c1221641f43c.png?alt=media\&token=40ff641f-7859-4d71-98b8-b7bcfaffe618)

Je tente ensuite d'accéder à ces répertoires partagés :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAiLbf5KstWmfqLhj6%2F9ebbeb981e705b0490e5dff087c91a10.png?alt=media\&token=4a276705-73f1-4425-9ac5-6d18d15e77e9)

Aucun droit qui me permet d'aller plus loin, mais l'énumération m'a donné le nom d'un utilisateur de la machine : "vmware".

### Webmin

La navigation sur le port 10000 de la machine me conduis à une page web demandent un login / mot de passe pour pouvoir accéder au service Webmin :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAkzZCgVZxpwek6u_0%2Fd387cbf387aa3cf0679fdf5db2cb46b5.png?alt=media\&token=1e33cc91-34d4-4b19-ae70-572c2c410837)

Un `searchsploit` m'indique une vulnérabilité qui peut être intéressante (Arbitrary File Disclosure) :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAlieOiykMBhWu4djL%2F5af2cf2fd5bd367333f7025aac42ea6d.png?alt=media\&token=0712a3cb-467c-410d-a381-2ea9cada6d6f)

La phase de reconnaissance est maintenant terminée, je passe à l'exploitation.

## Exploitation

### Webmin (CVE-2006-3392)

Je commence par exploiter la vulnérabilité la plus simple qui est celle de Webmin, en effet un module Metasploit existe pour me faciliter la vie :p, mais elle est tellement simple que je l'exploite manuellement. Afin d'accéder à un fichier présent sur le serveur il suffit d’accéder à cette URL (le pattern est une répétition de "..%01") :

`http://target:port/unauthenticated/pattern/filename`

Je récupère donc le fichier "/etc/passwd" afin de connaitre la liste complète des utilisateurs :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAr68am8PoaVAEWb35%2F089db0fbd89c2207ae41acc3561a05d4.png?alt=media\&token=a4678ea9-7bb7-4a85-a528-223cdd6efeec)

Il y a donc bien l'utilisateur "vmware" ainsi que "obama", "osama" et "yomama". Je tente avec un fichier un peu plus sensible, le fichier "/etc/shadow" :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXArTtti93HcOX-04J8%2Fac2b9ea53eb6d6341ecdc4fe13461f34.png?alt=media\&token=140d0054-d62c-4326-965e-1664cbe14388)

Bingo ! Le service Webmin doit sans doute tourner avec les droits root pour pouvoir accéder en lecture à ce fichier. Je casse ces mots de passe avec `john` (ne pas oublier de faire un `unshadow` avant) :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXB7nK14imBdUm0HkMN%2Fac997be395e5d51b7d408c5d5fe2add6.png?alt=media\&token=9a8be25c-ce7a-4c3f-9271-9b65967295cd)

Un seul mot de passe est cassé, celui de "vmware". Je peux donc maintenant me connecter en SSH en utilisant le nom d'utilisateur "vmware" et le mot de passe "h4ckm3" :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAz6o_wEe-x8ITT5ym%2Fec4d68b09a2ccf2dfc8bdc85db197e72.png?alt=media\&token=56decfb9-57e2-41fd-aba8-54f6e8fc65cc)

## Élévation de privilèges

Un `uname -a` donne rapidement le numéro de version du noyau du système :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXAzZJFjI1HblIrNvoQ%2F0261b62fab03bd903b13759676e2a2f9.png?alt=media\&token=58b12206-aaba-403a-845d-d5ccd2b78a2c)

Le script `Linux_Exploit_Suggester` permet de connaitre les potentiels exploits d'élévation de privilèges :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXB-z4tce8DZiurNEKn%2Ff9144b5d0faaed3200da27ab1ede8368.png?alt=media\&token=5769eefc-3b66-47b5-b608-96a65329fe8f)

Un exploit qui a fonctionné est le "vmsplice1", soit la CVE-2008-0600. La machine n'ayant pas accès à internet dans mon cas, je copie l'exploit grâce à `scp` :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXB56Unjcx8HexLs1mN%2F0fc680479f0129f33f14c4172c12e706.png?alt=media\&token=7d747067-f78c-4eda-b515-a03bbf07d049)

Sur la cible, je compile puis exécute l'exploit :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXB1U5nKht0JhmJ5t5m%2F8dfd3d4087b9d6c9a0a2480d1b7456a9.png?alt=media\&token=4980b274-fc97-4494-9fac-2422818212d9)

Congratz ! Je deviens "root" (qui n'a d'ailleurs en fait pas de nom ;) )!

## Conclusion

Machine plutôt facile grâce à l'accès à n'importe quel fichier via la vulnérabilité sur le Webmin qui tourne en "root" et qui permet de récupérer le fichier "/etc/shadow" :

![](https://1502624390-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LXA-aPG-dBFXBTzP1DC%2F-LXAJF4bVVkEvc0nlzgF%2F-LXB2x4fAR1Zr9JKOK6e%2F86b7c88a10dbc3a7240a03da6c9c6c68.png?alt=media\&token=d34641e5-9372-49fc-a7b3-7e4815b2261b)

L'élévation de privilèges à partir du compte "vmware" n'a pas posée de problème, l'exploit utilisé fonctionnant du premier coup.&#x20;

Je me demande si en passant un peu plus de temps sur le service smb il n'y a pas moyen d'obtenir plus d'information. De mémoire il n'y a pas de vulnérabilité intéressante concernant le phpmyadmin mais j'avoue ne pas avoir creuser beaucoup cette piste. A noter qu'il y a également une vulnérabilité d'OpenSSL (voir <https://en.wikipedia.org/wiki/OpenSSL#Predictable_private_keys_(Debian-specific)>) qui permet de se connecter en SSH en retrouvant certaines clés privées, mais je suis passé à côté de celle-ci.
