> For the complete documentation index, see [llms.txt](https://sharpforce.gitbook.io/cybersecurity/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sharpforce.gitbook.io/cybersecurity/walkthroughs/deliberately-vulnerable/vulnhub/pwnos-1.0.md).

# 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;

![](/files/-LXAJ0rA5apfB1Q-92ju)

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

![](/files/-LXAKdfTmlxnoIbImL4B)

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 :

![](/files/-LXAY5yaO2_qccaM-2a0)

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 :

![](/files/-LXANByZoJNWZnDVSOz2)

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

![](/files/-LXANXmRUsUAFsiWJ_fh)

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 :

![](/files/-LXAOfTqdVy1HD8tCK3i)

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

![](/files/-LXAP5UDH_TI24kHjvIu)

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 :

![](/files/-LXAQeGfdI5tXS3EZNUq)

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

![](/files/-LXASzxnV8CoPXsEJ_Db)

`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` :

![](/files/-LXATe9TzQ5llhyPNFUa)

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

![](/files/-LXAUE1CVvbP51R8KwXl)

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 :

![](/files/-LXAV8qCeEnrOyt-c7rK)

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 :

![](/files/-LXA_GqERxa5Q3tV3Qle)

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 :

![](/files/-LXAagnTq1DsF84FzA9m)

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

![](/files/-LXAhaI5jg-XobJqgNfw)

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

![](/files/-LXAiLbf5KstWmfqLhj6)

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 :

![](/files/-LXAkzZCgVZxpwek6u_0)

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

![](/files/-LXAlieOiykMBhWu4djL)

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 :

![](/files/-LXAr68am8PoaVAEWb35)

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" :

![](/files/-LXArTtti93HcOX-04J8)

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) :

![](/files/-LXB7nK14imBdUm0HkMN)

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" :

![](/files/-LXAz6o_wEe-x8ITT5ym)

## Élévation de privilèges

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

![](/files/-LXAzZJFjI1HblIrNvoQ)

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

![](/files/-LXB-z4tce8DZiurNEKn)

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` :

![](/files/-LXB56Unjcx8HexLs1mN)

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

![](/files/-LXB1U5nKht0JhmJ5t5m)

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" :

![](/files/-LXB2x4fAR1Zr9JKOK6e)

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.
