Share
## https://sploitus.com/exploit?id=245FA742-CE15-5534-A7D2-7BB448024AE3
# Pentest Framework — Kali Linux / VirtualBox

Framework Python interactif pour automatiser les phases d'un pentest en environnement de lab.
Conçu pour Kali Linux sur VirtualBox avec cartes réseau en **Accès par pont**.

---

## Prérequis

### Système
- Kali Linux (VM VirtualBox, interface réseau en "Accès par pont")
- Python 3.10+
- Droits **root** obligatoires

### Outils système
```bash
apt install nmap hydra hashcat bettercap john apache2 openssl -y
pip3 install cupp          # ou : apt install cupp
pip3 install rich          # interface graphique terminal
pip3 install shodan        # optionnel, pour le module Shodan
```

### Zphisher (optionnel — module Phishing)
```bash
git clone https://github.com/htr-tech/zphisher /opt/zphisher
chmod +x /opt/zphisher/zphisher.sh
```

---

## Lancement

```bash
# Depuis le dossier partagé VirtualBox
cd /media/sf_NOM_DU_DOSSIER/

# Lancer le framework (root obligatoire)
sudo python3 pentest.py
```

---

## Arborescence du projet

```
projet pentest/
│
├── pentest.py              # Point d'entrée — main() uniquement
├── README.md               # Ce fichier
│
└── modules/
    ├── __init__.py
    ├── utils.py            # Utilitaires : spinner, panel commande, nmap parser, réseau
    ├── ui.py               # Dashboard : THEME, banner ASCII, menu, helpers visuels
    ├── recon.py            # Module 1 : Reconnaissance
    ├── exploit.py          # Module 2 : Exploitation
    ├── post_exploit.py     # Module 3 : Post-Exploitation
    ├── mitm_phishing.py    # Module 4 : MITM & Phishing
    ├── guide.py            # Module 5 : Guide opérationnel pas à pas
    ├── pki.py              # Module 6 : PKI OpenSSL + Apache HTTPS
    ├── logs.py             # Module 6 : Dashboard logs.php + affichage terminal
    └── cleanup.py          # Module 6 : Cleanup artefacts (trap SIGINT/SIGTERM)
```

---

## Modules

### Module 1 — Reconnaissance
| Option | Action | Commande générée |
|--------|--------|-----------------|
| 1 | Ping sweep ICMP | `nmap -sn ` |
| 2 | Scan personnalisé (4 profils) | `nmap -sV/-sC/--script=vuln/-p-` |
| 3 | Scan VMs lab (DEBIAN + WIN2019) | `nmap -sV -sC -T4 ` |
| 4 | OSINT Shodan | API Shodan |
| 5 | ARP Discovery (contourne firewall ICMP) | `nmap -sn -PR ` |
| 6 | Scan furtif SYN (évasion pare-feu) | `nmap -sS -f -g 53 ` |

> Chaque scan nmap produit automatiquement un **tableau des ports ouverts** (parsé depuis XML).

---

### Module 2 — Exploitation
| Option | Action | Commande |
|--------|--------|----------|
| 1 | Wordlist OSINT | `cupp -i` |
| 2 | Brute-force SSH | `hydra -l user -P wordlist target ssh` |
| 3 | Brute-force FTP | `hydra -l user -P wordlist target ftp` |
| 4 | Brute-force HTTP-POST | `hydra ... http-post-form` |

---

### Module 3 — Post-Exploitation
| Option | Action | Commande |
|--------|--------|----------|
| 1 | Localiser .kdbx | `find / -name '*.kdbx'` |
| 2 | Extraire hash KeePass | `keepass2john fichier.kdbx > hash` |
| 3 | Cracker hash KeePass | `hashcat -m 13400 hash wordlist` |
| 4 | Cracker hash générique | `hashcat -m  hash wordlist` |

---

### Module 4 — MITM & Phishing
| Option | Action | Outil |
|--------|--------|-------|
| 1 | ARP Spoofing | bettercap caplet |
| 2 | DNS Spoofing + redirection domaine | bettercap caplet |
| 3 | Serveur HTTP phishing local | `python3 -m http.server 80` |
| 4 | Session MITM complète (ARP + DNS + Sniff) | bettercap caplet |
| 5 | Phishing automatisé (bannière pédagogique) | zphisher |

> **Prérequis MITM :** `echo 1 > /proc/sys/net/ipv4/ip_forward`

---

### Module 5 — Guide opérationnel
Guide interactif des 6 phases du pentest complet, navigables phase par phase ou en intégralité.

---

### Module 6 — Infrastructure

#### Option 1 — Génération PKI + HTTPS Apache
```bash
# Ce que le script fait automatiquement :
openssl genrsa -out myCA.key 4096
openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.crt
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -in server.csr -CA myCA.crt -CAkey myCA.key -out server.crt
# + activation Apache SSL + VirtualHost 443
```
Fichiers générés dans `/etc/ssl/pentest-lab/`.

#### Option 2 — Dashboard logs.php
Génère `/var/www/html/logs.php` — interface Bootstrap 5 dark mode affichant `passwords.txt` en tableau.
Accès : `http:///logs.php`

#### Option 3 — Affichage terminal
Lit `passwords.txt` et affiche les credentials capturés dans un tableau Rich directement dans la Kali.

#### Option 4 — Cleanup
Supprime tous les artefacts :
- Répertoire PKI `/etc/ssl/pentest-lab/`
- Caplets bettercap (`/tmp/*.cap`)
- `logs.php`
- Résultats nmap XML
- Désactive le VirtualHost Apache HTTPS

> Le cleanup se déclenche aussi **automatiquement** sur `Ctrl+C` (trap SIGINT/SIGTERM).

---

## Importer la CA racine sur Windows 10/11

Pour que la VM Windows accepte le certificat phishing sans alerte :

1. Copier `myCA.crt` depuis la Kali vers la VM Windows (dossier partagé ou SCP)
2. Double-cliquer sur `myCA.crt` → **Installer le certificat**
3. Choisir **Ordinateur local** → **Suivant**
4. Sélectionner **Placer tous les certificats dans le magasin suivant**
5. Parcourir → **Autorités de certification racines de confiance**
6. **Terminer** → Confirmer l'avertissement de sécurité

Ou via PowerShell (admin) :
```powershell
Import-Certificate -FilePath "C:\chemin\myCA.crt" `
  -CertStoreLocation Cert:\LocalMachine\Root
```

---

## Comportement à l'exécution

Pour chaque option lancée, le framework affiche :
1. **Panel EXECUTION** — commande exacte qui s'exécute
2. **Barre de chargement animée** — confirmation visuelle du lancement
3. **Sortie de l'outil** — en temps réel dans le terminal
4. **Tableau de résultats** — ports ouverts pour nmap, credentials pour les logs

---

## Flux d'un pentest complet

```
[1. Reconnaissance] ──────► IPs + ports ouverts (nmap ARP/SYN/service)
         │
         ▼
[2. Wordlist CUPP] ────────► /root/cupp_output.txt
         │
         ▼
[3. Brute-force Hydra] ────► login + mot de passe valide
         │
         ▼
[4. Post-exploitation] ────► .kdbx → hash → hashcat → mot de passe KeePass
         │
         ▼
[6. PKI + Apache HTTPS] ───► Certificat signé par CA + VirtualHost 443
         │
         ▼
[4. MITM Bettercap] ───────► ARP spoof + DNS spoof (domaine → Kali)
         │
         ▼
[4. Phishing] ─────────────► Page clonée servie en HTTPS port 443
         │
         ▼
[6. Logs dashboard] ───────► http:///logs.php → tableau credentials
         │
         ▼
[6. Cleanup] ──────────────► Suppression de tous les artefacts (ou Ctrl+C)
```

---

## Personnalisation du thème

Tout passe par le dict `THEME` dans `modules/ui.py` — une valeur modifiée est répercutée partout.

## Ajouter un module

1. Créer `modules/mon_module.py` avec `def module_mon_module(): ...`
2. L'importer dans `pentest.py`
3. Ajouter une ligne dans `show_menu()` de `modules/ui.py`
4. Ajouter un `elif choice == "X"` dans `main()` de `pentest.py`

---

## Avertissement légal

Ce framework est destiné **exclusivement** à un usage pédagogique en environnement
de laboratoire isolé (VirtualBox, réseau interne).

Toute utilisation sur des systèmes sans autorisation explicite est illégale.