Cybersecurity
  • Mon Blog
    • 🏠Home
    • 📦Archives
      • 2024
      • 2023
      • 2022
    • 📂Catégories
    • 📧A propos de moi
  • Mes projets
    • Livres / publications
      • Sécurité des applications web - Stratégies offensives et défensives
    • MyExpense
    • XSS Exploitation Tool
  • Mes Articles
    • 2025
      • Mars
        • Comment les requêtes préparées (prepared statement) protègent-elles contre les injections SQL ?
      • Janvier
        • XSS Exploitation Tool v0.7.0
    • 2024
      • Décembre
        • XSS Exploitation Tool v0.6.0
      • Septembre
        • MyExpense v1.4
      • Aout
        • XSS Exploitation Tool v0.5.0
        • Exploitation des injections SQL au sein de la clause ORDER BY
      • Juin
        • Parution de mon livre, Sécurité des applications web - Stratégies offensives et défensives
      • Mai
        • Dompurify 3.0.10 bypass - Confusion nodeName and CDATA
        • Dompurify 3.0.9 bypass - Node type confusion
      • Avril
        • Bypass de validation d'URL et embedded credentials côté front
      • Mars
        • MyExpense v1.3
    • 2023
      • Mai
        • MyExpense v1.2
      • Mars
        • MyExpense v1.1
        • Fonctionnement de l'entête X-Content-Type-Options - Contournement de CSP
      • Février
        • Fonctionnement de l'entête HTTP Strict Transport Security Header (HSTS)
    • 2022
      • Décembre
        • Les injections CSS - Règle @import
        • Les injections CSS - Scroll-to-Text Fragment
      • Novembre
        • Les injections CSS - Attribute Selector
        • Les injections CSS - Règle @font-face et descripteur unicode
      • Octobre
        • XSS Exploitation Tool v0.4.0
      • Septembre
        • Cross-Site Scripting (XSS) et schéma d'URI javascript
      • Juillet
        • SAST - PHP CodeSniffer orienté sécurité dans Visual Studio (sous Windows)
        • SAST - PHP CodeSniffer orienté sécurité dans Visual Studio (sous Debian)
        • Est-il possible de contourner la fonction PHP htmlspecialchars() ?
  • Common Vulnerabilities and Exposures (CVE)
    • 2024
      • CVE-2024-29415
    • 2023
      • CVE-2023-42282
    • 2022
      • CVE-2022-33910
      • CVE-2022-32444
      • CVE-2022-32442
    • 2020
      • CVE-2020-26311
  • Livres
    • 2023
      • Attacking and Exploiting Modern Web Applications
      • DevSecOps - Développez et administrez vos services en toute sécurité
    • 2022
      • Hacking APIs - Breaking Web Application Programming Interfaces
    • 2018
      • Practical Web Penetration Testing
      • Web Hacking 101: How to Make Money Hacking Ethically
  • Walkthroughs
    • Capture The Flag
      • Hack.lu CTF 2019
        • Nucular Power Plant
      • TAMUctf 2019
        • 1337 Secur1ty
        • Bird Box Challenge
        • Science!
    • Deliberately Vulnerable
      • CORS vulnerable Lab
        • Application Trust Arbritrary Origin
        • Application has bad "regex" Implementation to check Trusted Origin
        • Application Trust "null" Origin
      • Damn Vulnerable Web Application (DVWA)
        • Brute Force
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • Command Injection
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • CSRF
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • File Inclusion
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • File Upload
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • Insecure CAPTCHA
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • SQL Injection
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • SQL Injection (Blind)
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • Weak Session IDs
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • XSS (DOM)
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • XSS (Reflected)
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • XSS (Stored)
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • CSP Bypass
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • Javascript
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
      • Unescape() room
        • Level 1 (practice)
        • Level 2 (practice)
        • Level 3 (practice)
        • Level 4 (practice)
        • Level 5 (practice)
        • Level 6 (practice)
        • Level 7 (practice)
        • Level 8 (practice)
        • Level 9 (practice)
        • Level 10 (practice)
      • VulnHub
        • GoatseLinux: 1
        • Hackademic: RTB1
        • Hackademic: RTB2
        • Holynix: v1
        • Holynix: v2
        • Kioptrix: Level 1 (#1)
        • Kioptrix: Level 1.1 (#2)
        • Kioptrix: Level 1.2 (#3)
        • Kioptrix: Level 1.3 (#4)
        • LAMPSecurity: CTF4
        • LAMPSecurity: CTF5
        • LAMPSecurity: CTF6
        • Metasploitable: 1
        • pWnOS 1.0
        • pWnOS 2.0 (Pre-Release)
      • XSS Vulnerability Challenges
        • xss1
        • xss2
        • xss3
        • xss4
        • xss5
        • xxs6
        • xss7
        • xss8
Propulsé par GitBook
Sur cette page
  • Détails de la machine
  • Reconnaissance
  • Service SSH
  • Service Web
  • Exploitation
  • Élévation de privilèges
  • Conclusion
  1. Walkthroughs
  2. Deliberately Vulnerable
  3. VulnHub

pWnOS 2.0 (Pre-Release)

PrécédentpWnOS 1.0SuivantXSS Vulnerability Challenges

Dernière mise à jour il y a 2 ans

Détails de la machine

Nom : pWnOS 2.0 (Pre-Release) Date de sortie : 4 Juillet 2011 Lien de téléchargement : Niveau : Facile Objectif(s) : obtenir un accès "root" Description : pWnOS v2.0 is a Virutal Machine Image which hosts a server to pratice penetration testing. It will test your ability to exploit the server and contains multiple entry points to reach the goal (root). It was design to be used with WMWare Workstation 7.0, but can also be used with most other virtual machine software. Server's Network Settings: IP: 10.10.10.100 Netmask: 255.255.255.0 Gateway: 10.10.10.15

Reconnaissance

L'adresse IP de la machine étant statique pas besoin de scan du réseau :

Je commence directement par le scan de services via nmap :

Un service SSH (port 22) et un service Web (port 80). On ne peut pas faire plus simple.

Service SSH

Quelques vulnérabilités sur la version 5.8p1 d'OpenSSH, mais les CVE ont été découvertes après 2011, leurs exploitations n'est donc pas requises pour compromettre la machine :

Service Web

Je me retrouve donc en face d'un serveur Web Apache 2.2.17 utilisant PHP. Je lance un dirb :

Suivi d'un nikto :

Ces deux scans m'apprenne la présence d'une page info.php qui effectue un appel à la fonction phpinfo() :

Cela étant fait, je vais faire un tour sur le site proposé. La page d'accueil affiche un message de bienvenue et propose 3 liens (à droite, dont le lien Home qui est la page courante) :

Je tente de m'inscrire via le lien Register, cela va peut-être me permettre de m'authentifier et ainsi avoir accès à d'autres informations :

Après une activation du compte via un lien forgé par l'application :

Je suis maintenant authentifié, mais aucun lien supplémentaire n'est présent :

Aucun lien du site ne l'affiche (même en étant authentifié), mais le scan dirb remonte également une entrée vers un blog via /blog :

Après avoir fait le tour de tout ce qui est proposé, je commence à tester quelques injections. Au bout de quelques minutes : "Bingo !". Le champs login de la page principale est vulnérable aux injections SQL :

Exploitation

J'exploite donc l'injection SQL afin de me connecter avec un compte existant et voir ce que je peux en tirer :

Je suis maintenant connecté avec le premier compte que remonte la requête SQL effectuée par l'application :

Un compte admin, pas mal. En fait, l'accès au compte admin ne donne pas d'information supplémentaire.

Je ne l'ai vu seulement après coup mais l'adresse email de l'admin est présente sur la page d'accueil afin de le contacter en cas de questions.

Je tente de récupérer les informations de la base de données en exploitant l'injection. Pour cela direction sqlmap. Je récupère les mots de passe disponibles :

Le mot de passe est hashé en SHA1 (40 caractères), je tente de le cracker :

Etant déjà connecté en tant qu'admin, ce mot de passe ne va pas me servir directement, mais je tente de l'utiliser afin de me connecter au blog et également en SSH. Pour cela, j'essaie plusieurs login tels que admin, dan, privett, danprivett, dan.privett mais sans succès.

Etant donné que la seule faille à ma disposition est l'injection SQL, je tente d'obtenir un shell par ce biais. Pour ce faire il est possible d'utiliser sqlmap. Il faut pour cela que le compte gérant la base de données possède le droit d'écriture sur le système de fichiers.

Dans un premier temps, je génère le shell avec msfvenom :

J'upload le shell sur le serveur web via sqlmap :

Le répertoire cible est indiqué dans la page info affichant le phpinfo(). Dans le cas contraire il faut tenter les valeurs habituelles voir brute forcer le nom du chemin.

Je lance un handler en écoute sur le port adéquat, je visite la page contenant le webshell et je suis dans la place :

Élévation de privilèges

J'effectue un peu de reconnaissance :

Fichier /etc/passwd :

Contenu du seul utilisateur de la machine, dan :

Je vais chercher le mot de passe qu'utilise l'application afin de se connecter à la base de données qui se trouve dans le fichier /var/www/mysqli_connect.php :

Malheureusement, le mot de passe "goodday" ne fonctionne pour aucun compte SSH (dan ou root).

Un cd .. (plutôt chanceux sur le coup) plus tard on retrouve une copie du fichier mysqli_connect.php. Sans doute un backup ou une version antérieure/de test :

Ce mot de passe (indiquant bien qu'il s'agit du mot de passe root) me permet de me connecter en root à la machine :

Conclusion

Aucune grosse difficulté pour cette machine. J'ai apprécié le fait que l'utilisateur de la base de données mysql possède le droit d'écriture en fichier afin d'uploader le webshell via sqlmap.

Concernant l'élévation j'ai eu un coup de chance de voir le fichier à un niveau plus haut. Mais dans le cas contraire une recherche de mots de passe avec les habituels find et grep auraient fini par faire le travail.

http://pwnos.com/files/pWnOS_v2.0.7z