Hola gente, les traigo un pequeño script que hice para realizar escaneos
La idea es que muchas veces quiero obtener un listado de IP que dispongan de un determinado servicio abierto y no conseguí las IP una debajo de la otra.
Lo que hice fue utilizar unas opciones de Nmap para quitar información que me sobra y que a su vez acelera mucho el proceso.
Espero que les sea de tanta utilidad a ustedes como me fue a mi.
Si ponen -h les va a decir como usarlo.
Obviamente que está mas que en versión beta así que se aceptan criticas constructivas.
:D:D
Gracias y saludos a todos
#!/bin/bash
case ${1} in
"-h" )
echo -e "Search a service from an IP range"
echo -e "Usage:"
echo -e "scan.sh [service] [target] [output_file]"
echo -e "Service:"
echo -e "\tsmb"
echo -e "\thttp"
echo -e "\tftp"
echo -e "\tsmtp"
echo -e "\ttftp"
echo -e "Target:"
echo -e "\t192.168.1.1"
echo -e "\t192.168.1.0-255"
echo -e "\t192.168.1.0/24"
echo -e "Example: ./scan.sh smb 192.168.1.0/24 smb.txt"
echo -e "Author: elsebasoto"
exit
;;
"smb" )
ports="445"
start="32"
;;
"http" )
ports="80"
start="31"
;;
"ftp" )
ports="21"
start="31"
;;
"smtp" )
ports="25"
start="31"
;;
"tftp" )
ports="69 -sU"
start="31"
;;
esac
# Variables
target=${2}
output=${3}
# Scan target
nmap -v -n -PN -p $ports $target | grep "Discovered" > ./target.txt
# Split IP
while read line
do
ip=${line:$start:15}
echo $ip >> ./ip.txt
done < ./target.txt
# Sorting
if [ $output == "" ]; then
output="./ip.txt"
fi
sort ./ip.txt -o $output
# Cleaning temporal files
rm ./ip.txt ./target.txt