97 lines
4.2 KiB
Bash
Executable File
97 lines
4.2 KiB
Bash
Executable File
#!/bin/sh
|
||
#------------------------------------------------------------------------------
|
||
# recherche des serveurs de base de données
|
||
# scan d'une plage d'adresse et une plage de port pour trouver
|
||
# un listener Oracle, une base mysql, postgres sql ou microsoft sql server
|
||
#------------------------------------------------------------------------------
|
||
# Historique :
|
||
# 26/07/2016 : YOU – Creation
|
||
# 29/07/2016 : YOU – Mise à jour
|
||
# 25/08/2021 : YOU - Adaptation pour les reseaux BM
|
||
# 14/09/2021 : YOU - Adresses reseau en notation CIDR xxx.xxx.xxx.xxx/xx
|
||
#------------------------------------------------------------------------------
|
||
|
||
#-------
|
||
# les réseaux à scanner
|
||
#-------
|
||
reseau="192.168.31.0/24"
|
||
# reseau="10.0.30.0 10.0.40.0 192.31.6.0 172.16.1.0"
|
||
mask_reseau=24
|
||
|
||
#-------
|
||
# les ports à scanner :
|
||
# 1500-3000 => la plage entre 1500 et 3000
|
||
# 1521,1621 => les deux ports 1521 et 1621
|
||
# 1521,1621-3000 => le port 1521 et la plage de 1621-3000
|
||
#-------
|
||
# les ports par base :
|
||
# Microsoft sql server => 1433
|
||
# Oracle => 1521-1699
|
||
# Sybase => 2638
|
||
# Progress => 3000-3003
|
||
# Mysql => 3306
|
||
# PostgreSQL => 5432
|
||
#-------
|
||
# la ligne suivante est composée de plusieurs plages pour minimiser le temps du scan
|
||
# port_reseau="1430-1440,1500-1700,2600-2700,3000-3010,3300-3310,5400-5500"
|
||
#-------
|
||
port_reseau="1520-1530"
|
||
|
||
#-------
|
||
# les variables d'environnement
|
||
#-------
|
||
export repertoire_base=/root/scripts
|
||
export repertoire_logs=${repertoire_base}/logs
|
||
export fichier_log=${repertoire_logs}/scan_bdd_$(date +%Y.%m.%d-%Hh%M).log
|
||
mkdir -p ${repertoire_logs} > /dev/null
|
||
echo "" > ${fichier_log}
|
||
|
||
#-------
|
||
# paramètre du scan
|
||
#-------
|
||
echo "#--------------------- Paramètres du scan ----------------------------" | tee -a ${fichier_log}
|
||
echo "# Date : $(date +%Y.%m.%d-%Hh%M)" | tee -a ${fichier_log}
|
||
echo "# Répertoire de base du script : ${repertoire_base}" | tee -a ${fichier_log}
|
||
echo "# Répertoire des fichiers logs : ${repertoire_logs}" | tee -a ${fichier_log}
|
||
echo "# Nom du fichier log de cette session : ${fichier_log}" | tee -a ${fichier_log}
|
||
echo "# Les réseaux scannés : ${reseau}" | tee -a ${fichier_log}
|
||
echo "#----------------------------------------------------------------------" | tee -a ${fichier_log}
|
||
|
||
#-------
|
||
# on parcourt les réseau pour détecter les serveurs joignables par fping
|
||
# le résultat est scanné par nmap pour trouver les bases de données
|
||
#-------
|
||
|
||
for plage in $reseau
|
||
do
|
||
plage_reseau=$(echo ${plage} | cut -d/ -f1)
|
||
mask_reseau=$(echo ${plage} | cut -d/ -f2)
|
||
if [ -z "${mask_reseau}" ]; then mask_reseau="24"; fi
|
||
|
||
echo "#----------------------------------" | tee -a ${fichier_log}
|
||
echo "# Scan du reseau : ${plage} " | tee -a ${fichier_log}
|
||
echo "# Plage reseau : ${plage_reseau} " | tee -a ${fichier_log}
|
||
echo "# Masque reseau : ${mask_reseau} " | tee -a ${fichier_log}
|
||
echo "#----------------------------------" | tee -a ${fichier_log}
|
||
/usr/sbin/fping -q -a -d -g ${plage_reseau}/${mask_reseau} 2>/dev/null | while read ip
|
||
do
|
||
# nmap -sV : detection de la version du produit
|
||
# namp -n : desactiver la resolution des nom pour acceler le scan
|
||
# namp -sS : scan avec un packet TCP SYNC
|
||
# ret=$(/usr/bin/nmap -n -sS -sV -p ${port_reseau} ${ip} | grep -i "open" | egrep -i "oracle|sql|Progress Database|sybase")
|
||
ret=$(/usr/bin/nmap -n -sS -sV -p ${port_reseau} ${ip} | grep -i "open" | egrep -i "oracle")
|
||
if [ "$ret" != "" ]; then
|
||
echo "${ret}" | sed "s/^/Serveur $ip \t:\t /g" | tee -a ${fichier_log}
|
||
fi
|
||
done
|
||
done
|
||
|
||
|
||
echo "#---------- SCAN TERMINE A $(date +%Y.%m.%d-%H:%M) -----------------" | tee -a ${fichier_log}
|
||
echo "# Fichier log de cette session : ${fichier_log}"
|
||
echo "#-------------------------------------------------------------------"
|
||
|
||
#-------
|
||
# fin
|
||
#-------
|