Spiga
Mostrando entradas con la etiqueta Scripts. Mostrar todas las entradas
Mostrando entradas con la etiqueta Scripts. Mostrar todas las entradas

Script de escaneo de IPs y puertos

Aquí tenéis un Script que compartió Luciano Lagassa en el anterior articulo, añadiendo en este caso un escaneo ciertos puertos (ftp, ssh, http, https), usando nmap.

Necesario tener instalado:

  • ifconfig
  • grep
  • cut
  • awk
  • wget
  • nmap
Aquí tenéis el código que tendremos que copiar y pegar en nuestro editor:

$ gedit scanIpPuertos

#!/bin/sh
PrivateIP=`ifconfig | grep 'inet:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{print $1}'`
PrivatePorts=`nmap -PA21,22,80,443 $PrivateIP`
echo "IP Privada:"$PrivateIP
echo " Estado de Puertos:"
if [ -n "`echo $PrivatePorts | grep -i 21/tcp`" ]
then
echo " * FTP [Abierto]"
else
echo " * FTP [Cerrado]"
fi
if [ -n "`echo $PrivatePorts | grep -i 22/tcp`" ]
then
echo " * SSH [Abierto]"
else
echo " * SSH [Cerrado]"
fi
if [ -n "`echo $PrivatePorts | grep -i 80/tcp`" ]
then
echo " * HTTP [Abierto]"
else
echo " * HTTP [Cerrado]"
fi
if [ -n "`echo $PrivatePorts | grep -i 443/tcp`" ]
then
echo " * HTTPS [Abierto]"
else
echo " * HTTPS [Cerrado]"
fi
PublicIP=`wget -q -O - checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'`
PublicPorts=`nmap -PA21,22,80,443 $PublicIP`
echo "IP Pública:"$PublicIP
echo " Estado de Puertos:"
if [ -n "`echo $PublicPorts | grep -i 21/tcp`" ]
then
echo " * FTP [Abierto]"
else
echo " * FTP [Cerrado]"
fi
if [ -n "`echo $PublicPorts | grep -i 22/tcp`" ]
then
echo " * SSH [Abierto]"
else
echo " * SSH [Cerrado]"
fi
if [ -n "`echo $PublicPorts | grep -i 80/tcp`" ]
then
echo " * HTTP [Abierto]"
else
echo " * HTTP [Cerrado]"
fi
if [ -n "`echo $PublicPorts | grep -i 443/tcp`" ]
then
echo " * HTTPS [Abierto]"
else
echo " * HTTPS [Cerrado]"
fi

Guardamos, cerramos y proseguimos:

$ sudo chmod +xr scanIpPuertos

Por ultimos lo ejecutamos:

$ ./scanIpPuertos

Aquí tenemos la respuesta:

IP Privada:192.168.0.4
Estado de Puertos:
* FTP [Abierto]
* SSH [Abierto]
* HTTP [Abierto]
* HTTPS [Cerrado]
IP Pública:77.210.xxx.xxx
Estado de Puertos:
* FTP [Cerrado]
* SSH [Abierto]
* HTTP [Abierto]
* HTTPS [Cerrado]

Saber la IP de red y pública con un solo comando (+Script)

Esta semana que acaba ha sido un poco caótica en el trabajo, aparte del traslado de oficina, muebles para arriba, muebles para abajo, se ha pulverizado el servidor de archivos del trabajo (montado sobre una KKRAID) con todos los problemas que conlleva (copias de seguridad desactualizadas, posteriores problemas con la controladora y los discos SCSI... todo un show), accesos remotos a clientes que te vuelven loco tanto pedir (y contradecirse cada 15 minutos), la web de un cliente que por arte de magia "ha perdido" parte de la base de datos... Total, que para relajarme este fin de semana he decidido crearme un sistema de copias que lanzare desde mi casa con el que me ahorrare problemas futuros. En un principio lo programaré en MONO y algo de script bajo shell.

Necesario tener instalado:

  • ifconfig
  • grep
  • cut
  • awk
  • wget
Lo primero que he pensado es que necesitare la ip de red del nuestro PC (solo y exclusivamente la IP, sin ningún dato más). En este caso usaremos el comando ifconfig, buscando con grep los patrones que nos interesan, seleccionamos y eliminamos lo sobrente y mostramos el resto:

$ ifconfig | grep 'inet:'| grep -v '127.0.0.1' | cut -d: -f2 |
awk '{print $1}'

En el segundo caso usaremos wget que ira a buscar la ip a dyndns.org, y la mostrara limpita de código sobrante:

$ wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address:
//' -e 's/<.*$//'

Ahora bien, si queremos usar un script, que podemos por ejemplo ejecutar con un lanzador, cada vez que queramos, abrimos nuestro editor de texto preferido, copiamos el siguiente texto y lo pegamos en el editor.

#!/bin/sh
clear
echo "IP de red: "
exec ifconfig | grep 'inet:'| grep -v '127.0.0.1' | cut -d: -f2 |
awk '{print $1}'
echo "IP pública: "
exec wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address:
//' -e 's/<.*$//'

Guardamos, cerramos y le damos permisos de ejecución con CHMOD, y lo ejecutamos (en mi caso el script se llama mostrarip);

$ sudo chmod +xr mostrarip

$ ./mostrarip

IP de red :
192.168.0.69
IP pública :
77.143.xxx.xxx

Seguro que al final paso de hacer nada, y dejo esto del programa para otro "día"... pero la intención es lo que cuenta, no? :P

Fuentes: ip de red || ip pública

Geany, editor de texto con guiños a IDE

Geany es un editor de texto desarrollado en GTK2 con características básicas de un entorno de desarrollo integrado (IDE). Cuenta con versión para Linux y para Windows. Este última versión necesita la libreria GTK2 para funcionar correctamente.

Una de las cosas mas interesantes que he encontrado ha sido que incluye una terminal (totalmente funcional) con la que podrás navegar por las carpetas o ejecutar partes de código. También cuenta con compilador, y ejecuta a algunos tipos de archivos, como por ejemplo los scripts.

Otro de los puntos fuertes es el poder descargar Extras (plugins), para darle más sus posibilidades.

  • Como temas de colores.
  • Complementos para sintaxis de diferentes idiomas de programación, y etiquetas para los mismos.
  • El uso de Snippets, que auto completa parte de códigos.


Para probarlo usaremos los repositorios de Ubuntu como siempre, o entraremos y descargaremos de su web oficial la ultima versión:

$ sudo aptitude install geany

Lo ejecutamos desde:

Aplicaciones > Programación > Geany