最後活躍 1 month ago

修訂 6eb5408bfc2424a1f8322ce0db3fdf4702fa264b

scan_port_machine.sh 原始檔案
1#!/bin/bash
2
3# Couleurs pour les messages en console
4RED='\033[0;31m'
5GREEN='\033[0;32m'
6YELLOW='\033[0;33m'
7NC='\033[0m' # Pas de couleur
8
9# Vérifie si l'outil nmap est installé
10if ! command -v nmap &> /dev/null; then
11 echo -e "${RED}❌ nmap n'est pas installé. Installez-le d'abord.${NC}"
12 exit 1
13fi
14
15# Création d'un fichier Markdown avec la date courante
16output_file="/home/tools/rapport_scan_ports_$(date +%Y-%m-%d).md"
17temp_file="/tmp/nmap_scan_result.txt"
18
19# Début du script avec message et emoji
20echo -e "${YELLOW}🔍 Démarrage du scan complet des ports...${NC}"
21
22# Ajout du titre et des en-têtes de tableau dans le fichier Markdown
23echo "# Rapport de Scan Complet des Ports - $(date +%Y-%m-%d)" > "$output_file"
24echo "" >> "$output_file"
25echo "| Port | Service | Statut |" >> "$output_file"
26echo "|------|---------|--------|" >> "$output_file"
27
28# Affiche une barre de progression simulée
29function progress_bar {
30 for i in {1..10}; do
31 echo -ne "${YELLOW}⏳ Progression : $((i * 10))% \r${NC}"
32 sleep 0.3
33 done
34 echo -ne '\n'
35}
36
37progress_bar
38
39# Exécution du scan de tous les ports avec Nmap sans détection de version, enregistrement dans un fichier temporaire
40nmap -sS -p- localhost > "$temp_file"
41
42# Vérification si le fichier temporaire a bien été créé et contient des données
43if [[ ! -s "$temp_file" ]]; then
44 echo -e "${RED}❌ Erreur : Aucun résultat trouvé. Le scan nmap n'a pas produit de sortie.${NC}"
45 exit 1
46fi
47
48# Lecture et analyse du fichier temporaire ligne par ligne
49while read -r line; do
50 echo -e "${YELLOW}🔹 Ligne lue : $line${NC}" # Message de débogage
51
52 # Filtre des lignes correspondant aux ports ouverts et extraction des informations
53 if [[ $line =~ ^[0-9]+/tcp ]]; then
54 port=$(echo "$line" | awk '{print $1}')
55 status=$(echo "$line" | awk '{print $2}')
56 service=$(echo "$line" | awk '{print $3}')
57
58 # Ajout des informations au fichier Markdown
59 echo "| $port | $service | $status |" >> "$output_file"
60 fi
61done < "$temp_file"
62
63# Suppression du fichier temporaire
64rm "$temp_file"
65
66# Confirmation de la création du fichier
67if [[ -f "$output_file" ]]; then
68 echo -e "${GREEN}✅ Scan terminé. Rapport sauvegardé dans :${NC} $output_file"
69else
70 echo -e "${RED}❌ Erreur : Impossible de créer le rapport.$NC"
71fi
72