Aller au contenu

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é"
for ip in 22 24 31 35 39 44 50 71 72 73 75 79; do ./scan.sh 10.11.1.$ip; done