Outil professionnel d'audit de sécurité Windows
Développé par Ayoub Aguezar
- ✨ Fonctionnalités
- 🖥️ Prérequis
- 🚀 Installation Rapide
- 📁 Structure du Projet
- 🎯 Utilisation
- 🔍 Détails des Modules
- 📊 Format des Résultats
- 🔧 Personnalisation
- 🤝 Contribution
- 📄 Licence
- 👤 Auteur
- Système : OS, mises à jour, matériel, uptime
- Comptes : Administrateurs, invité, politiques mot de passe
- Réseau : Ports ouverts, connexions, adaptateurs
- Défense : Windows Defender, protection temps réel
- Score par catégorie (0-100)
- Score global calculé automatiquement
- Détection des problèmes critiques
- Recommandations spécifiques
- Format console détaillé avec couleurs
- Rapports texte structurés
- Rapports HTML avec design professionnel
- Historique avec timestamps
- Deux modes : Menu interactif (
main-audit.ps1) ou audit direct (audit-complet.ps1) - Indicateurs visuels (✅
⚠️ ❌) - Code couleur pour sévérité
- Pauses visuelles pour lisibilité
| Composant | Version minimale | Version recommandée |
|---|---|---|
| Système | Windows 10 / 11 | Windows 10 (build 19041+) |
| PowerShell | 5.1 | PowerShell 5.1 ou supérieur |
| Permissions | Utilisateur standard | Administrateur (audit complet) |
| Espace disque | 10 Mo | 100 Mo (rapports et logs) |
# 1. Démarrer PowerShell en tant qu'administrateur
# Clic droit → Exécuter en tant qu'administrateur
# 2. Autoriser l'exécution des scripts
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# 3. Lancer l'outil avec menu complet
.main-audit.ps1# Pour un audit rapide sans navigation
.audit-complet.ps1# Charger et exécuter un module spécifique
. .modulesSystemAudit.ps1
Get-SystemInformationWindows-Security-Audit-Tool/
├── main-audit.ps1 # Script principal avec menu interactif (v3.0)
├── audit-complet.ps1 # Script d'audit complet automatique
├── modules/ # Modules d'audit spécialisés
│ ├── SystemAudit.ps1 # Audit système et matériel
│ ├── AccountAudit.ps1 # Audit comptes et politiques
│ ├── NetworkAudit.ps1 # Audit ports et réseau
│ ├── Reporting.ps1 # Module de génération de rapports
│ └── DefenderAudit.ps1 # Audit Windows Defender
├── reports/ # Rapports générés (auto-créé)
│ ├── security-audit-YYYYMMDD-HHMMSS.txt
│ └── security-audit-YYYYMMDD-HHMMSS.html
├── logs/ # Logs d'exécution (auto-créé)
└── doc/ # Documentation
└── screenshots/ # Captures d'écran
========================================================
WINDOWS SECURITY AUDIT TOOL v3.0
========================================================
========================================================
MAIN MENU
========================================================
1. Complete Security Audit
2. System Audit Only
3. Accounts Audit Only
4. Network Audit Only
5. Defender Audit Only
6. Generate HTML Report
7. View Existing Reports
8. Help and Information
9. Exit
========================================================
Your choice (1-9):
Exécute les 4 audits séquentiellement avec :
- Barres de progression
- Scores intermédiaires
- Génération automatique de rapports (TXT + HTML)
- Résumé final détaillé
Vérifications incluses :
- Version et build Windows
- Dernières mises à jour installées
- Informations matériel (RAM, fabricant)
- Uptime du système
- Vérification des privilèges admin
Vérifications incluses :
- Nombre d'administrateurs locaux
- État du compte "Administrator" intégré
- État du compte "Guest"
- Politiques d'expiration des mots de passe
Vérifications incluses :
- Ports TCP en écoute
- Détection des ports risqués (21, 23, 135, 139, 445, 3389)
- Connexions réseau établies
- Adaptateurs réseau actifs
Vérifications incluses :
- Disponibilité de Windows Defender
- État de l'antivirus
- Protection en temps réel
Note : Les rapports sont générés automatiquement avec l'audit complet
Liste et affiche les 10 derniers rapports générés avec :
- Nom et date
- Âge du rapport
- Option pour visualiser
Documentation complète sur :
- Description de l'outil
- Fonctionnalités
- Méthodologie recommandée
- Conseils pour le portfolio
.audit-complet.ps1Avantages :
- Pas de navigation manuelle
- Rapport généré automatiquement
- Interface visuelle simplifiée
- Idéal pour automatisation
function Get-SystemInformation {
# Retourne : @{OSName, OSVersion, BuildNumber, SecurityScore, Issues, ...}
}Vérifications :
- Informations OS : Version, build, édition
- Mises à jour : Dernier hotfix installé
- Matériel : Fabricant, modèle, RAM
- Privilèges : Vérification admin
- Uptime : Temps depuis dernier démarrage
Scoring :
- -20 pts : Version OS obsolète (< build 19041)
- -15 pts : Mises à jour > 30 jours
- -10 pts : Exécution sans admin
function Get-AccountSecurityAudit {
# Retourne : @{Score, Issues, Recommendations}
}Vérifications :
- Administrateurs locaux : Nombre > 3 = problème
- Compte "Administrator" : Désactivation recommandée
- Compte "Guest" : Désactivation obligatoire
- Mot de passe : Expiration activée pour tous les comptes
Scoring :
- -20 pts : Plus de 3 administrateurs
- -30 pts : Compte Administrator activé
- -25 pts : Compte Guest activé
- -15 pts : Mots de passe sans expiration
function Get-NetworkSecurityAudit {
# Retourne : @{Score, Issues, Recommendations}
}Vérifications :
- Ports en écoute : Liste complète TCP
- Ports risqués : Détection automatique (21, 23, 135, 139, 445, 3389)
- Connexions établies : 10 dernières connexions
- Adaptateurs réseau : État et description
Scoring :
- -5 pts par port risqué détecté
function Get-DefenderSecurityAudit {
# Retourne : @{Score, Issues, Recommendations, IsAvailable}
}Vérifications :
- Disponibilité : Module Defender accessible
- Antivirus : État activé/désactivé
- Protection temps réel : État activé/désactivé
Scoring :
- Score 90 : Mode test (défaut)
- Score 40 : Antivirus ou protection désactivé
- Score 10 : Defender non accessible
=== AUDIT DES COMPTES ===
1. Vérification des administrateurs locaux...
[INFO] 2 administrateur(s) trouvé(s)
[OK] Nombre d'admins approprié
2. Vérification du compte Administrateur intégré...
[OK] Compte Administrateur désactivé
=== RÉSUMÉ COMPTES ===
Score sécurité comptes: 85/100
Problèmes détectés:
• 3 comptes avec mots de passe sans expiration
Recommandations:
• Activer l'expiration des mots de passe
===========================================
WINDOWS SECURITY AUDIT REPORT
===========================================
Generated: 2023-12-15 14:30:25
Computer: DESKTOP-ABC123
Audit Tool Version: 1.0
===========================================
OVERALL SECURITY SCORE: 78/100
STATUS: FAIR - Some improvements needed
DETAILED FINDINGS:
==================
1. SYSTEM INFORMATION
OS: Microsoft Windows 10 Professionnel
Version: 10.0.19045
Build: 19045
Security Score: 85/100
Rapport HTML avec :
- Header professionnel avec nom de la machine
- Score global avec couleur (vert/jaune/rouge)
- Sections détaillées pour chaque catégorie
- Liste des problèmes et recommandations
- Design responsive et moderne
- Dans un module existant :
# Ajouter dans SystemAudit.ps1 par exemple
function Get-SystemInformation {
# ... code existant ...
# Nouvelle vérification
Write-Host "6. Vérification de BitLocker..." -ForegroundColor Yellow
$bitlocker = Get-BitLockerVolume -ErrorAction SilentlyContinue
if ($bitlocker.ProtectionStatus -ne "On") {
$issues += "BitLocker non activé"
$score -= 10
}
# ... retour final ...
}- Créer un nouveau module :
# Créer FirewallAudit.ps1 dans modules/
function Get-FirewallSecurityAudit {
# Votre logique ici
return @{Score=95; Issues=@(); Recommendations=@()}
}# Dans AccountAudit.ps1, ajuster les pénalités
if ($adminCount -gt 3) {
$accountFindings.Score -= 15 # Au lieu de 20
}
# Dans SystemAudit.ps1, ajuster les seuils
if ($daysSinceUpdate -gt 45) { # Au lieu de 30
$score -= 15
}Modifier Reporting.ps1 ou la fonction Generate-Report dans main-audit.ps1 :
- Changer les couleurs CSS
- Ajouter des sections supplémentaires
- Modifier la structure des tables
- Ajouter un logo ou en-tête personnalisé
"File cannot be loaded because running scripts is disabled"
# Exécuter en PowerShell administrateur
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser"Get-LocalGroupMember : Access is denied"
# Relancer PowerShell en tant qu'administrateur
# Clic droit → Exécuter en tant qu'administrateurModule non chargé
# Vérifier le chemin des modules
Test-Path .modulesSystemAudit.ps1
# Charger manuellement
. .modulesSystemAudit.ps1
Get-SystemInformation- Pour des résultats complets : Toujours exécuter en admin
- Pour les rapports : Vérifier le dossier
reports - Pour le débogage : Consulter les messages en jaune/rouge
- Pour la persistance : Sauvegarder les rapports HTML
- Bug fixes : Corrections d'erreurs dans les modules existants
- Nouvelles vérifications : Ajout de contrôles de sécurité
- Améliorations UI : Interface plus intuitive
- Documentation : Amélioration du README ou guides
- Langue : Français pour l'interface, anglais pour le code
- Formatage : 4 espaces, pas de tabulations
- Commentaires : Expliquer la logique complexe
- Noms de fonctions : Verbe-Nom en anglais (Get-, Test-, Invoke-)
Tester sur :
- Windows 10 (différents builds)
- Windows 11
- Avec et sans droits administrateur
- Différentes configurations réseau
Ce projet est sous licence MIT.
Permissions :
- ✅ Utilisation commerciale
- ✅ Modification
- ✅ Distribution
- ✅ Utilisation privée
- ✅ Inclusion dans un portfolio
Limitations :
- ❌ Responsabilité
- ❌ Garantie
- ❌ Utilisation malveillante
Conservation des droits d'auteur :
- L'attribution à Ayoub Aguezar doit être conservée
- Les modifications doivent être documentées
Ayoub Aguezar Software Engineer | Data Engineer | Cybersecurity Analyst ( Student )
- Démontrer l'expertise PowerShell : Scripting avancé, gestion système
- Montrer une méthodologie d'audit : Approche structurée, reproductible
- Créer un outil professionnel : Interface propre, rapports de qualité
- Documenter un processus complet : Code, tests, documentation
- PowerShell Avancé : Modules, fonctions, gestion d'erreurs
- Sécurité Windows : Audit système, comptes, réseau, antivirus
- Génération de rapports : Formats texte et HTML
- Interface utilisateur : Menus interactifs, code couleur
- Gestion de projet : Structure modulaire, documentation
- GitHub : github.com/Ayoub-glitsh
- Portfolio : Ayoub Aguezar
- Email : ayoubaguezzar1@gmail.com
⭐ Si ce projet vous est utile, n'hésitez pas à le star sur GitHub !
Dernière mise à jour : Décembre 2023 | Version : 3.0


