Skip to content

Instantly share code, notes, and snippets.

@fitorec
Created May 30, 2012 19:47
Show Gist options
  • Save fitorec/2838531 to your computer and use it in GitHub Desktop.
Save fitorec/2838531 to your computer and use it in GitHub Desktop.
Detecta hosts en nuestra red con el nmap, manda un msj con icono(de pc) de cada hosts detectado.

#Detección de intrusos con nmap

En ocasiones requerimos detectar los hosts conectados en nuestra red una de las razones seria por cuestiones de seguridad.

requiere:

  • nmap
  • libnotify-bin

#Como usar:

Lo recomendable es comprobar, que tanto el nmap como nuestro sistema de notificaciones notify-sendfuncionan correctamente:

nmap -sP 127.0.0.1 | grep -io localhost | xargs notify-send Test 

Esto nos deberia de mostrar una notificación que nos indique Test localhost.

Una vez que hallamos comprobado podemos descargar este paquete:

https://a248.e.akamai.net/assets.github.com/images/gist/buttons/download_button.png?1310086001

Desempaquetamos y editamos el archivo de configuración indicando la interfaz que queremos observar(escanear), p.e. para la interfaz eth1 ponemos:

INTERFAZ = eth1

Finalmente corremos el guión y listo:

sh ./guion.sh

#Inspirado en:

Compartido por @nierox .

#Archivo de configuración modificar siguiendo el formato
#
# Formato:
# NombreVariable = Valor
#
#
INTERFAZ = wlan0
#!/bin/sh
export currentPath=$(dirname `readlink -f "$0"`)
#Devuelve el valor de una variable seteada en el archivo de configuración config.conf
getValue() {
cat $currentPath/config.conf | grep -Eio '^\s*[a-z0-9]+\s*=\s*[^\s]+' | grep $1 | cut -d'=' -f2 | sed 's/ //'
}
#Extraemos de config.conf de la interfaz a observar
export INTERFAZ=`getValue INTERFAZ`
#Extraemos la configuración de la IP y Mascara de Red para usar con el nmap p.e. 192.168.1.2/24
CONFIG=`ip addr sh $INTERFAZ | grep -E -o "([0-9]+.){3}[0-9]+/[0-9]+"`
if [ -z "${CONFIG}" ]; then # revisamos que la configuración sea correcta
notify-send Error "Revise su archivo de configuración $currentPath/config.conf"
echo "Revise su archivo de configuración $currentPath/config.conf"
exit 1
fi
#Ejecutamos el nmap para detectar a los hosts conectados en nuestra red(posibles intrusos)
#Con una regEx cachando sólo las IPs y el nombre del hosts separado por el símbolo ':'
for host in `nmap -sP $CONFIG | grep -o -E '[^ ]+\s\(([0-9]{1,3}\.){3}[0-9]+' | sed 's/ (/:/'`
do
##mandamos al notificador imprimiendo el nombre del hosts, su ip y un icono
notify-send `echo $host | sed 's/:/ /'` -i ${currentPath}/computer.png
echo "Hosts detectado ${host}"
sleep 3 #retardo para que se puedan leer
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment