Create scan_bdd_oracle.sh

This commit is contained in:
Yacine31
2023-01-19 18:03:29 +01:00
parent c01f13562e
commit 5ea3234358

96
scan_bdd_oracle.sh Normal file
View File

@@ -0,0 +1,96 @@
#!/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
#-------