Files
sql/scan_bdd_oracle.sh
2023-12-22 06:56:16 +01:00

97 lines
4.2 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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
#-------