Automatisation
nmap
Script pour automatiser la création d'un dossier et le lancement de deux scripts nmaps.
scan.sh
!/bin/bash
# Vérifie si un argument est fourni pour l'adresse IP à scanner
if [ -z "$1" ]; then
echo "Veuillez fournir l'adresse ip à scanner en argument."
echo "./scan 0.0.0.0"
exit 1
fi
# Définition de l'adresse IP à scanner
ip="$1"
# Affiche l'adresse IP en cours de traitement
echo "Traitement de l'adresse IP : $ip"
# Crée un dossier pour l'adresse IP si des ports ouverts ont été détectés
mkdir -p "$ip"
# Exécute la commande nmap avec les paramètres spécifiés et enregistre le résultat dans le dossier corr>
nmap -Pn -A "$ip" -oG "$ip/nmap_result.txt" -T5
nmap -Pn -p- "$ip" -T5 -oG "$ip/nmap_result_all_ports.txt"
echo "Scan complete"
Version 2
scan_v2.sh
#!/bin/bash
# Vérifie si un argument est fourni pour l'adresse IP à scanner
if [ -z "$1" ]; then
echo "Veuillez fournir l'adresse ip à scanner en argument."
echo "Example"
echo " ./scan 192.168.1.1"
exit 1
fi
# Définition de l'adresse IP à scanner
ip="$1"
# Affiche l'adresse IP en cours de traitement
echo "Traitement de l'adresse IP : $ip"
# Crée un dossier pour l'adresse IP
mkdir -p "$ip"
# Exécute la commande nmap pour scanner tous les ports TCP
nmap -Pn -A "$ip" -oG "$ip/nmap_result.txt" -T5
nmap -Pn -A "$ip" -p- -oG "$ip/nmap_result_all_ports.txt" -T5
# Recherche les ports SMB ouverts
if grep -q '445/open' "$ip/nmap_result_all_ports.txt"; then
echo "Le port SMB (445) est ouvert. Lancement de smbclient et enum4linux."
smbclient --no-pass -L "//$ip" > "$ip/smbclient_result.txt"
enum4linux "$ip" > "$ip/enum4linux_result.txt"
fi
# Recherche les ports HTTP ouverts
http_ports=$(grep -E 'open.*http' "$ip/nmap_result_all_ports.txt" | cut -d' ' -f4 | tr '\n' ',' | sed 's/,$//' | cut -d "/" -f1)
if [ -n "$http_ports" ]; then
echo "Les ports HTTP ($http_ports) sont ouverts. Lancement de dirb et nikto."
dirb "http://$ip:$http_ports" /usr/share/wordlists/dirb/common.txt -o "$ip/dirb_result.txt"
nikto -host "http://$ip:$http_ports" -o "$ip/nikto_result.txt"
fi
echo "Scan complet"
Version 3
#!/bin/bash
# Vérifie si un argument est fourni pour l'adresse IP à scanner
if [ -z "$1" ]; then
echo "Veuillez fournir l'adresse ip à scanner en argument."
echo "Exemple :"
echo " ./scan 192.168.1.1"
exit 1
fi
# Définition de l'adresse IP à scanner
ip="$1"
# Affiche l'adresse IP en cours de traitement
echo "Traitement de l'adresse IP : $ip"
# Crée un dossier pour l'adresse IP
mkdir -p "$ip"
# Vérifie si le fichier nmap_result.txt n'existe pas
if [ ! -f "$ip/nmap_result.txt" ]; then
# Exécute la commande nmap pour scanner tous les ports TCP
nmap -Pn -A "$ip" -oG "$ip/nmap_result.txt" -T5
fi
# Vérifie si le fichier nmap_result_all_ports.txt n'existe pas
if [ ! -f "$ip/nmap_result_all_ports.txt" ]; then
# Exécute la commande nmap pour scanner tous les ports TCP
nmap -Pn -A "$ip" -p- -oG "$ip/nmap_result_all_ports.txt" -T5
fi
# Recherche les ports SMB ouverts
if grep -q '445/open' "$ip/nmap_result_all_ports.txt"; then
echo "Le port SMB (445) est ouvert. Lancement de smbclient et enum4linux."
smbclient --no-pass -L "//$ip" > "$ip/smbclient_result.txt"
enum4linux "$ip" > "$ip/enum4linux_result.txt"
fi
# Recherche les ports HTTP ouverts
http_ports=$(grep -E 'open.*http' "$ip/nmap_result_all_ports.txt" | cut -d' ' -f4 | tr '\n' ',' | sed 's/,$//' | cut -d "/" -f1)
if [ -n "$http_ports" ]; then
echo "Les ports HTTP ($http_ports) sont ouverts. Lancement de dirb et nikto en arrière-plan."
dirb "http://$ip:$http_ports" /usr/share/wordlists/dirb/common.txt -o "$ip/dirb_result.txt" > /dev/null &
dirb_pid=$!
nikto -host "http://$ip:$http_ports" -o "$ip/nikto_result.txt" > "$ip/nikto_progress.txt" &
nikto_pid=$!
while kill -0 $dirb_pid > /dev/null 2>&1; do
echo -ne "Dirb en cours... $(grep -c "/usr/share/wordlists/dirb/common.txt" "$ip/dirb_result.txt") lignes trouvées.\r"
sleep 2
done
echo "Dirb terminé. $(grep -c "/usr/share/wordlists/dirb/common.txt" "$ip/dirb_result.txt") lignes trouvées."
while kill -0 $nikto_pid > /dev/null 2>&1; do
progress=$(grep -Eo '[0-9]+% complete' "$ip/nikto_progress.txt" | tail -1)
echo -ne "Nikto en cours... $progress\r"
sleep 2
done
echo "Nikto terminé."
fi
echo "Scan complet"
cfadminPassword=2394280529B1288E15B4ACBBF38B7FDFC2FC4CA4&requestedURL=%2FCFIDE%2Fadministrator%2Fenter.cfm%3F&salt=1680830017221&submit=Login
hex_hmac_sha1(salt.value, hex_sha1(cfadminPassword.value));"
Version 4
#!/bin/bash
# Vérifie si un argument est fourni pour l'adresse IP à scanner
if [ -z "$1" ]; then
echo "Veuillez fournir l'adresse ip à scanner en argument."
echo "Exemple :"
echo " ./scan 192.168.1.1"
exit 1
fi
# Définition de l'adresse IP à scanner
ip="$1"
# Affiche l'adresse IP en cours de traitement
echo "Traitement de l'adresse IP : $ip"
# Crée un dossier pour l'adresse IP
mkdir -p "$ip"
# Vérifie si le fichier nmap_result.txt n'existe pas
if [ ! -f "$ip/nmap_result.txt" ]; then
# Exécute la commande nmap pour scanner tous les ports TCP
nmap -Pn -A "$ip" -oG "$ip/nmap_result.txt" -T5
fi
# Vérifie si le fichier nmap_result_all_ports.txt n'existe pas
if [ ! -f "$ip/nmap_result_all_ports.txt" ]; then
# Exécute la commande nmap pour scanner tous les ports TCP
nmap -Pn -A "$ip" -p- -oG "$ip/nmap_result_all_ports.txt" -T5
fi
# Recherche les ports SMB ouverts
if grep -q '445/open' "$ip/nmap_result_all_ports.txt"; then
echo "Le port SMB (445) est ouvert. Lancement de smbclient et enum4linux."
smbclient --no-pass -L "//$ip" > "$ip/smbclient_result.txt"
enum4linux "$ip" > "$ip/enum4linux_result.txt"
fi
# Recherche les ports HTTP ouverts
http_ports=$(grep -E 'open.*http' "$ip/nmap_result_all_ports.txt" | cut -d' ' -f4 | tr '\n' ',' | sed 's/,$//' | cut -d "/" -f1)
if [ -n "$http_ports" ]; then
echo "Les ports HTTP ($http_ports) sont ouverts. Lancement de dirb et nikto en arrière-plan."
# Ouvre un nouvel onglet et exécute Nikto dedans
nikto -host http://$ip:$http_ports -o $ip/nikto_result.txt > /dev/pts/4 & \
# Ouvre un nouvel onglet et exécute Dirb dedans
dirb http://$ip:$http_ports /usr/share/wordlists/dirb/common.txt -o $ip/dirb_result.txt > /dev/null >/dev/pts/6
fi
echo "Scan terminé"