Naposledy aktivní 1 month ago

Erreur32's Avatar Erreur32 revidoval tento gist 2 years ago. Přejít na revizi

1 file changed, 71 insertions

scan_port_machine.sh(vytvořil soubor)

@@ -0,0 +1,71 @@
1 + #!/bin/bash
2 +
3 + # Couleurs pour les messages en console
4 + RED='\033[0;31m'
5 + GREEN='\033[0;32m'
6 + YELLOW='\033[0;33m'
7 + NC='\033[0m' # Pas de couleur
8 +
9 + # Vérifie si l'outil nmap est installé
10 + if ! command -v nmap &> /dev/null; then
11 + echo -e "${RED}❌ nmap n'est pas installé. Installez-le d'abord.${NC}"
12 + exit 1
13 + fi
14 +
15 + # Création d'un fichier Markdown avec la date courante
16 + output_file="/home/tools/rapport_scan_ports_$(date +%Y-%m-%d).md"
17 + temp_file="/tmp/nmap_scan_result.txt"
18 +
19 + # Début du script avec message et emoji
20 + echo -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
23 + echo "# Rapport de Scan Complet des Ports - $(date +%Y-%m-%d)" > "$output_file"
24 + echo "" >> "$output_file"
25 + echo "| Port | Service | Statut |" >> "$output_file"
26 + echo "|------|---------|--------|" >> "$output_file"
27 +
28 + # Affiche une barre de progression simulée
29 + function 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 +
37 + progress_bar
38 +
39 + # Exécution du scan de tous les ports avec Nmap sans détection de version, enregistrement dans un fichier temporaire
40 + nmap -sS -p- localhost > "$temp_file"
41 +
42 + # Vérification si le fichier temporaire a bien été créé et contient des données
43 + if [[ ! -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
46 + fi
47 +
48 + # Lecture et analyse du fichier temporaire ligne par ligne
49 + while 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
61 + done < "$temp_file"
62 +
63 + # Suppression du fichier temporaire
64 + rm "$temp_file"
65 +
66 + # Confirmation de la création du fichier
67 + if [[ -f "$output_file" ]]; then
68 + echo -e "${GREEN}✅ Scan terminé. Rapport sauvegardé dans :${NC} $output_file"
69 + else
70 + echo -e "${RED}❌ Erreur : Impossible de créer le rapport.$NC"
71 + fi
Novější Starší