Introduction
Dans ce laboratoire, vous apprendrez à automatiser des tâches sous Kali Linux à l'aide de scripts Bash et Python. L'accent est mis sur la rationalisation des tâches d'audit de sécurité répétitives telles que l'analyse réseau avec Nmap et l'analyse des journaux. Vous créerez des scripts, définirez les permissions, planifierez des tâches automatisées avec des jobs Cron et testerez leur exécution. Ce laboratoire fournit des instructions détaillées, étape par étape, pour acquérir des compétences fondamentales en automatisation dans un conteneur Kali Linux. Lorsque vous ouvrirez le terminal, vous serez automatiquement connecté au shell du conteneur Kali Linux, prêt à commencer.
Préparation de l'Environnement et Installation des Outils
Dans cette première étape, vous préparerez votre environnement de travail à l'intérieur du conteneur Kali Linux en installant les outils nécessaires. C'est une étape fondamentale pour garantir que vous disposez de tous les logiciels requis pour les tâches d'automatisation à venir.
Lorsque vous ouvrez le terminal, vous êtes automatiquement connecté au shell du conteneur Kali Linux. Vous pouvez commencer à travailler immédiatement.
Tout d'abord, mettez à jour la liste des paquets pour vous assurer de pouvoir récupérer les dernières versions des logiciels.
apt update
Ensuite, installez nmap pour l'analyse réseau et python3 pour le scripting. Ces outils sont essentiels pour les tâches de ce laboratoire.
apt install -y nmap python3 nano
L'installation peut prendre quelques instants. Une fois terminée, vérifiez que nmap est installé en consultant sa version.
nmap --version
Le résultat devrait être similaire à ce qui suit, confirmant que nmap est prêt à être utilisé.
Nmap version 7.x ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.4.6 openssl-3.0.11 libpcre-8.39 libpcap-1.10.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available NSE scripts: 655
Vérifiez ensuite l'installation de python3.
python3 --version
Le résultat affichera la version de Python installée, similaire à ceci :
Python 3.x.x
Avec ces outils installés, votre environnement Kali Linux est prêt pour les tâches d'automatisation des étapes suivantes.
Création d'un Script Bash pour les Analyses Nmap
Maintenant que votre environnement est configuré, vous allez créer un script Bash pour automatiser les analyses Nmap. Le scripting Bash est un moyen puissant d'automatiser les tâches en ligne de commande sous Linux. Dans cette étape, vous écrirez un script simple pour exécuter une analyse Nmap sur localhost.
Tout d'abord, utilisez l'éditeur de texte nano pour créer un nouveau fichier nommé nmap_scan.sh dans le répertoire /root.
nano /root/nmap_scan.sh
Cette commande ouvre un fichier vierge dans l'éditeur nano. Tapez ou collez le contenu suivant dans l'éditeur :
#!/bin/bash
echo "Starting Nmap scan on localhost..."
nmap localhost
echo "Scan completed."
Ce script contient trois parties principales :
#!/bin/bash: Cette ligne, connue sous le nom de shebang, spécifie que le script doit être exécuté avec l'interpréteur Bash.echo "...": Ces commandes affichent des messages d'état dans le terminal.nmap localhost: Cette commande exécute une analyse Nmap de base sur votre machine locale, qui est une cible sûre pour la pratique.
Pour enregistrer le fichier dans nano, appuyez sur Ctrl+O, puis appuyez sur Entrée pour confirmer le nom du fichier. Pour quitter l'éditeur, appuyez sur Ctrl+X.
Après être revenu au terminal, vérifiez que le fichier a été créé avec succès en listant le contenu du répertoire /root.
ls -l /root
Vous devriez voir votre nouveau script dans le résultat, similaire à ceci :
-rw-r--r-- 1 root root 85 Oct 20 10:15 nmap_scan.sh
Ceci confirme que le fichier nmap_scan.sh existe. Dans les étapes suivantes, vous rendrez ce script exécutable et le testerez.
Création d'un Script Python pour l'Analyse de Journaux
Ensuite, vous allez écrire un script Python pour automatiser l'analyse des journaux (log parsing). L'analyse de journaux est une tâche courante en analyse de sécurité, où vous extrayez des informations spécifiques à partir de fichiers journaux. Python est bien adapté à cela en raison de ses puissantes capacités de traitement de texte.
Tout d'abord, créez un fichier journal d'exemple pour que votre script l'analyse. Exécutez la commande suivante pour créer un fichier nommé sample.log dans le répertoire /root avec quelques entrées de journal d'exemple.
echo -e "2023-10-20 10:00:00 INFO System started\n2023-10-20 10:01:00 ERROR Connection failed\n2023-10-20 10:02:00 INFO User logged in" > /root/sample.log
Maintenant, créez le script Python. Utilisez nano pour créer un nouveau fichier nommé log_parser.py.
nano /root/log_parser.py
Dans l'éditeur nano, tapez ou collez le code Python suivant :
#!/usr/bin/env python3
print("Starting log parsing...")
with open('/root/sample.log', 'r') as file:
for line in file:
if 'ERROR' in line:
print(line.strip())
print("Log parsing completed.")
Ce script ouvre /root/sample.log, le lit ligne par ligne et n'affiche que les lignes contenant le mot ERROR. La méthode strip() supprime tout espace blanc au début ou à la fin de la ligne.
Enregistrez le fichier en appuyant sur Ctrl+O et Entrée, puis quittez nano en appuyant sur Ctrl+X.
Vérifiez que le fichier journal et le script Python existent dans le répertoire /root.
ls -l /root
Le résultat devrait maintenant lister les deux fichiers :
-rw-r--r-- 1 root root 150 Oct 20 10:22 log_parser.py
-rw-r--r-- 1 root root 85 Oct 20 10:15 nmap_scan.sh
-rw-r--r-- 1 root root 112 Oct 20 10:20 sample.log
Vous avez créé avec succès un script Python pour l'analyse de journaux. L'étape suivante consiste à définir les permissions correctes pour les deux scripts.
Définition des Permissions et Test des Scripts
Les deux scripts étant créés, l'étape suivante consiste à les rendre exécutables et à les tester. Sous Linux, un script doit avoir les permissions d'exécution pour être lancé directement depuis le terminal.
Tout d'abord, vérifiez les permissions actuelles des fichiers.
ls -l /root
Le résultat affiche les permissions dans la première colonne. Le -rw-r--r-- indique que les fichiers sont lisibles et modifiables mais pas exécutables.
-rw-r--r-- 1 root root 150 Oct 20 10:22 log_parser.py
-rw-r--r-- 1 root root 85 Oct 20 10:15 nmap_scan.sh
-rw-r--r-- 1 root root 112 Oct 20 10:20 sample.log
Utilisez la commande chmod avec l'option +x pour ajouter les permissions d'exécution aux deux scripts.
chmod +x /root/nmap_scan.sh
chmod +x /root/log_parser.py
Vérifiez à nouveau les permissions.
ls -l /root
Le x dans la chaîne de permissions (-rwxr-xr-x) confirme que les fichiers sont maintenant exécutables.
-rwxr-xr-x 1 root root 150 Oct 20 10:22 log_parser.py
-rwxr-xr-x 1 root root 85 Oct 20 10:15 nmap_scan.sh
-rw-r--r-- 1 root root 112 Oct 20 10:20 sample.log
Permissions définies, testez le script Bash en l'exécutant.
/root/nmap_scan.sh
Le script exécutera l'analyse Nmap et affichera les résultats, qui devraient ressembler à ceci :
Starting Nmap scan on localhost...
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-20 10:30 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up, received user-set (0.00010s latency).
Other addresses for localhost (not scanned): ::1
rDNS record for 127.0.0.1: localhost
Not shown: 999 closed tcp ports (conn-refused)
PORT STATE SERVICE
...
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
Scan completed.
Ensuite, testez le script Python.
/root/log_parser.py
Le script analysera le fichier journal et n'affichera que la ligne contenant "ERROR".
Starting log parsing...
2023-10-20 10:01:00 ERROR Connection failed
Log parsing completed.
Les deux scripts fonctionnent désormais correctement. La dernière étape consiste à les planifier pour une exécution automatique.
Planification des Scripts avec des Jobs Cron
Dans cette dernière étape, vous automatiserez l'exécution de vos scripts à l'aide de Cron. Cron est un planificateur de tâches basé sur le temps sous Linux qui vous permet d'exécuter des commandes ou des scripts à des intervalles spécifiés.
Pour planifier une tâche, vous devez modifier le fichier crontab. Ouvrez l'éditeur crontab en exécutant la commande suivante.
crontab -e
Si l'on vous demande de choisir un éditeur, sélectionnez nano en entrant son numéro correspondant et en appuyant sur Entrée.
Faites défiler jusqu'au bas du fichier et ajoutez les lignes suivantes. Ces lignes planifient l'exécution des deux scripts chaque minute.
* * * * * /root/nmap_scan.sh >> /root/nmap_scan.log 2>&1
* * * * * /root/log_parser.py >> /root/log_parser.log 2>&1
Décortiquons cette configuration :
* * * * *: C'est la planification. Les cinq astérisques représentent la minute, l'heure, le jour du mois, le mois et le jour de la semaine. Tous les astérisques signifient que la tâche s'exécutera chaque minute de chaque heure de chaque jour./root/nmap_scan.sh: C'est la commande à exécuter.>> /root/nmap_scan.log: Ceci redirige la sortie standard du script et l'ajoute à un fichier journal.2>&1: Ceci redirige le flux d'erreurs standard vers la sortie standard, garantissant que les messages d'erreur sont également capturés dans le fichier journal.
Enregistrez les modifications dans nano en appuyant sur Ctrl+O et Entrée, puis quittez avec Ctrl+X. Vous devriez voir un message de confirmation.
crontab: installing new crontab
Pour vérifier que les tâches sont planifiées, listez les entrées crontab actuelles.
crontab -l
Le résultat devrait afficher les lignes que vous venez d'ajouter.
* * * * * /root/nmap_scan.sh >> /root/nmap_scan.log 2>&1
* * * * * /root/log_parser.py >> /root/log_parser.log 2>&1
Les jobs cron sont maintenant configurés. Après une minute, vous pouvez vérifier les fichiers journaux pour voir la sortie des exécutions de scripts automatisées.
cat /root/nmap_scan.log
cat /root/log_parser.log
Ceci confirme que vos scripts s'exécutent automatiquement comme prévu.
Résumé
Dans ce laboratoire, vous avez appris les bases de l'automatisation sous Kali Linux en utilisant Bash et Python. Vous avez commencé par préparer votre environnement et installer des outils essentiels comme Nmap et Python. Vous avez ensuite créé un script Bash pour automatiser les analyses réseau et un script Python pour l'analyse des journaux. Vous avez également appris à définir les permissions d'exécution, à tester vos scripts et à les planifier pour une exécution automatique à l'aide de jobs Cron. Ces compétences constituent une base solide pour automatiser les tâches répétitives en cybersécurité et en administration système.


