- Rajouté la partie pour faire le venv.
- Ameilloré le script nmap pour qu'il detecte les machine windows avec pare-feu ON
- Ajouté les nouvelles librairies python nécessaires à Installer
Ce projet a pour objectif de réaliser un audit automatisé d'entreprises afin de se rapprocher des pratiques actuelles du marché en matière de cybersécurité.
Le but est d’automatiser les scans et de générer des rapports d’audit exploitables sans intervention manuelle.
-
Scan réseau automatisé
- Analyse des IP d’un réseau donné en excluant certaines plages ou adresses IP spécifiques.
- Scan des ports ouverts avec Nmap, et rescan détaillé (versions, OS) sur les ports détectés.
- Scans complémentaires avec des outils comme enum4linux (Samba), WhatWeb (HTTP) et Nikto (vulnérabilités web).
- Recherche d'exploits connus à partir des résultats Nmap via
searchsploit.
-
Gestion des exclusions
- Supporte l’exclusion d’IPs individuelles ou de plages d’IPs (format
192.168.0.1-150ou listes séparées par virgules). - Ces exclusions sont configurables via un fichier YAML.
- Supporte l’exclusion d’IPs individuelles ou de plages d’IPs (format
-
Audit Lynis sur machines Linux distantes via SSH
- Transfert automatisé du dossier
lynissur la machine distante. - Exécution d’un audit Lynis avec des droits sudo, en mode forensics (configurable).
- Récupération des logs et rapports Lynis produits, puis nettoyage du dossier temporaire distant.
- Gestion des connexions SSH avec authentification via fichier de credentials.
- Transfert automatisé du dossier
Scanner.py: Script principal de scan réseau et audit local (Nmap, enum4linux, WhatWeb, Nikto, searchsploit).audit_ssh_lynis.py: Script pour audit Lynis automatisé sur machines Linux distantes via SSH.config.yaml: Fichier de configuration pour définir le réseau à scanner, les exclusions, les options des outils, etc.ssh_credentials.txt: Fichier (non versionné) contenant les accès SSH pour les machines distantes à auditer (format :host;username;password).
- Python 3.x
- Modules Python :
paramiko,PyYAML,Networkx - Outils en ligne de commande installés :
nmapenum4linuxwhatwebniktosearchsploit
- Dossier
lyniscontenant l’outil Lynis dans le même répertoire queaudit_ssh_lynis.py.
- Cloner le dépôt :
git clone https://gricad-gitlab.univ-grenoble-alpes.fr/mclement/projet-tutore.git
cd projet-tutore- Installer les dépendances Python :
pip install paramiko pyyaml networkx- Installer les outils système requis (exemple Debian/Ubuntu) :
sudo apt-get install nmap enum4linux whatweb nikto exploitdb- Préparer les fichiers de configuration :
- Modifier
config.yamlselon ton réseau et besoins. - Créer
ssh_credentials.txtavec la liste des machines distantes à auditer (format :host;username;passwordpar ligne).
Lancer le script principal :
python3 Scanner.pyLes rapports seront générés dans le dossier reports/.
Lancer le script Lynis :
python3 audit_ssh_lynis.py-
Exclusions IP Le fichier
config.yamlpermet de définir des plages ou listes d’IPs à exclure du scan. -
Scan Nmap Le script effectue un scan complet des ports ouverts (
-p- --open), puis un rescan plus précis avec détection de versions, scripts, et OS. -
Recherche d’exploits Les résultats Nmap XML sont analysés par
searchsploitpour détecter des vulnérabilités connues. -
Audit Lynis Le script
audit_ssh_lynis.pyutilise Paramiko pour transférer et exécuter Lynis en SSH, récupérer les logs et nettoyer la machine distante.
- Génération d’un rapport global consolidé.
- Analyse automatique des risques à partir des logs.
- Interface web ou console interactive.
- Gestion sécurisée des credentials (clés SSH, vault).
- Support d’autres OS pour l’audit distant.
La licence reste à définir pour l'équipe PANOPTIS
Pour toute question ou contribution, contacter l’équipe projet.
Matthias Devouassoud
Nils Jaillette
Clement Martin
Dylan Drevot
Arthur Grossi