Bien. Esta es la tercera entrada del tutorial de Pen Testing Básico (Disclaimer: no se si me acaba de convencer el nombre). Por ahora hemos aprendido lo siguiente:
- Hemos montado nuestro laboratorio de Ciberseguridad. Ya sabemos lo que es una máquina virtual, cómo funciona y hemos conocido al Linux preferido de todo Hacker Ético: Kali Linux!
- Nos hemos dado una vueltecita por la Deep Weeb y de paso hemos comprendido lo importante que es el pasar desapercibido.
Ahora vamos a realizar un escaneo de puertos muy simple. Sabéis que siempre aparece el concepto “Escaneo” en todas las películas de Hackers. Bueno, pues mas o menos algo parecido.
Vamos a buscar los puertos abiertos en nuestra red, y de paso vamos a saber cuántos dispositivos tenemos conectados, a ver si nos llevamos una sorpresa y encontramos al vecino usando nuestro WiFi.
Todavía no vamos a usar ninguna de las herramientas que vienen con Kali, por ahora continuaremos con la línea de comandos. En este caso usaremos el comando nmap. Este comando es muy conocido y no pretenderemos hacer ningún ataque con el, pero para ir pillando el concepto es más que suficiente, y como mas soltura cojamos con la consola de linux, pues mejor que mejor.
Lo primero que vamos a hacer es ejecutar nmap sobre un dominio, una web de Internet. Para no meternos en problemas vamos a escanear una WEB que nos da permiso para ello: scanname.nmap.org
[code language=”shell”]
nmap scannames.nmap.org -vv
[/code]
el -vv le indica al comando que nos muestra por la consola todo lo que esté haciendo, si no lo ponemos no obtendremos ningún feedback hasta el final, y puede tardar un rato largo en realizarse.
Como podemos ver nos indica que puertos tiene abiertos y que servicio están usando. Ahora vamos a ver como podemos usar este comando para realizar un escaneo de nuestra red. Quien dice nuestra red puede decir cualquier red, pero aprendamos con la nuestra.
primero vamos a ver que rango tenemos que escanear, para ello usaremos el comando ifconfig:
[code language=”shell”]
ifconfig
[/code]
El resultado variara, pero nos mostrara cada uno de nuestros dispositivos de red, con la IP asignada y el rango disponible.
En mi caso nos fijamos en el dispositivo wlan0, que es el USB wifi que hemos comprado compatible con Kali Linux. En inet podemos ver la IP que está asignada, esta ip va cambiando, en broadcast podemos ver el rango máximo. Así que mi red va a lir de 192.168.1.0 hasta 192.168.1.255. En el momento de hacer esta prueba tengo la IP 192.168.1.105 asignada.
Si queremos escanear nuestra red tenemos que poner:
[code language=”shell”]
nmap -oG – 192.168.1.0-255 -vv
[/code]
Pero esto realizara un escaneo de todos los puertos en todas las IP’s es decir unos 65535 puertos * 255 ip’s diferentes… seguramente va a tardar un rato largo, así que vamos a intentar hacer algo más inteligente usando la línea de comando de nuestro Kali.
Podríamos intentar lo siguiente:
[code language=”shell”]
nmap -oG – 192.168.1.0-255 -vv -p 22 > scan22.txt
[/code]
Con esto solo escanearemos el puerto 22 y guardaremos el resultado en un fichero. No esta mal, lo hemos limitado mucho, pero quizás queremos escanear todos los puertos no solo el 22. Igualmente este paso nos es muy útil. Si miramos el resultado que se ha guardado en el fichero scan22.txt, veremos que nos da un listado de las IP’s detectadas. Es decir, nos muestra todas las IP’s que ha encontrado en nuestra red, tengan o no el puerto 22 abierto.
Como se puede ver obtenemos un listado de todas las IP’s escaneadas, y nos diferencia las que están en uso de las que no, este dato nos va a ser muy útil. Lo que podemos hacer es obtener todas las IP’s que están en uso y realizar un escaneo completo de puertos solo a esas IP’s.
Nos ponemos a ello, usando, como no, unos comandos del terminal de nuestro querido Kali Linux. Ni se te ocurra cogerlas con copy paste, que eso es de cutres, y nosotros vamos para hackers.
Vamos a usar el pipeline ‘|'(o tubería), el comando grep (que busca caracteres) y el comando cat.
[code language=”shell”]
cat scan22.txt | grep Up > misips.txt
[/code]
El comando cat lista el contenido, pero le aplicamos el pipeline con grep, que lo que hace es buscar el text Up en el contenido que le pasa cat. Con esto obtenemos todas las líneas que contienen ‘Up’ y las enviamos a un fichero que se llama misips.txt
Bueno, aqui ya te puedes llevar, o no la primera sorpresa, la verdad es que para mi no lo es, si que puedo tener tranquilamente cinco dispositivos conectados a mi red, sin ningún problema. Pero este fichero aun tiene un problema, lo que realmente nos interesa son las IP’s, y nada más, tenemos que limpiarlo un poco, y para ello vamos a retocar el comando anterior, esta vez usando awp. No me seas cutre!!!! No Abras el fichero y lo borres a mano!! No!
[code language=”shell”]
cat scan22.txt | grep Up | awk -F “ “ ‘{print $2}’ > misips.txt
[/code]
El comando awk es de lo mas potente que hay, sirve para tratar cadenas y tiene mil opciones. Aquí lo que le estamos diciendo es que el texto está limitado por espacios en blanco. Es decir, cada espacio en blanco indica que empieza un campo nuevo en la frase. En primera posición tendriamos el campo Host, después el campo Ip, después los paréntesis… a nosotros nos interesa la dirección Ip, pues le decimos que nos printe el campo número 2.
Este Sí! Este fichero si que lo podemos usar como parametro de entrada del comando nmap que va a escanear todos los puertos de todos los dispositivos conectados a nuestra red. Ahora si que ya empezamos a ver un poco las posibilidades que se nos abren y a hacer cosas que salen en las películas.
[code language=”shell”]
nmap -p- -iL misips.txt -vv > resultados.txt
[/code]
Este comando de nmap le indica a nuestro Kali que tiene que escanear todos los puertos (-p-) de las ip’s contenidas en el fichero misips.txt (-iL misips.txt) que trace el resultado de las operaciones (-vv) y lo deje en el fichero resultados.txt (> resultados.txt). En unos minutos, unos cuantos por que escanemaos muchos puertos, tendremos en ese fichero todos los puertos abiertos de nuestra red.
Escanear los 65000 puertos es muy lento, por esta razón nmap escanea por defecto solo 1000 puertos. Otra buena opción es usar el parámetro -F en lugar de -p- y escaneara tan solo los 100 puertos de uso más común.
[code language=”shell”]
…
Scanning 2 hosts [65535 ports/host]
Discovered open port 22/tcp on 192.168.1.1
Discovered open port 80/tcp on 192.168.1.1
Discovered open port 7547/tcp on 192.168.1.1
Increasing send delay for 192.168.1.101 from 0 to 5 due to max_successful_tryno increase
Discovered open port 44401/tcp on 192.168.1.1
SYN Stealth Scan Timing: About 42.95% done; ETC: 10:10 (0:00:41 remaining)
Discovered open port 5431/tcp on 192.168.1.1
Completed SYN Stealth Scan against 192.168.1.1 in 37.38s (1 host left)
Increasing send delay for 192.168.1.101 from 5 to 10 due to max_successful_tryno increase
…
[/code]
Esta es una pequeña porción del fichero resultado de correr nmap en mi sistema. Nmap es una herramienta muy útil y tiene muchas opciones, muchas más de las que ahora se nos pueden ocurrir.
Resumiendo:
Vamos a poner aquí resumidos los comandos que necesitamos para escanear nuestra red:
Primero obtenemos el rango de nuestra red:
[code language=”shell”]
ifconfig
[/code]
Ahora que ya hemos identificado nuestra red, vamos a ver que direcciones están levantadas:
[code language=”shell”]
nmap -oG – 192.168.1.0-255 -vv -p 22 > scan22.txt
[/code]
Estas direcciones tendremos que dejarlas en un fichero que pueda usarse como parámetro para nmap (Atentos a U de Up que es mayúscula):
[code language=”shell”]
cat scan22.txt | grep Up | awk -F “ “ ‘{print $2}’ > misips.txt
[/code]
Ahora que ya tenemos las direcciones lanzamos el megaescaneo:
[code language=”shell”]
nmap -iL misips.txt
[/code]
¿y qué pasa? ¿que obtenemos? Pues pruebalo, vas a tener una lista de todos los puertos abiertos de tu red.
nmap tiene diversas opciones, entre ellas una que te indica que sistema operativo puede ser el que está usando la máquina escaneada. La mejor hoja que he econtrado con las opciones de nmap es: nmap cheatset. Jugad con las opciones, estudiad vuestra red y ya veréis que vais a encontrar agujeros que ya aprovecharemos a medida que avancemos en el tutorial.
Por si os da pereza ejecutarlo en vuestra red, os dejo aquí una porción de lo que he obtenido al ajecutarlo en la mía:
[code language=”shell”]
Nmap scan report for 192.168.1.100
Host is up (0.0077s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
7676/tcp open imqbrokerd
8000/tcp open http-alt
8001/tcp open vcom-tunnel
8002/tcp open teradataordbms
8080/tcp open http-proxy
9999/tcp open abyss
[/code]
Hola.
Gracias por tu tiempo, este gran tutorial y por compartir.
Un saludo.
Muchas Gracias a ti por el comentario 🙂 Hace mucha ilusión.
Pues verás, me he tenido que saltar el tutorial anterior en que usábamos Tor, primero porque al utilizar el comando,
apt – install tor -y, no instalaba nada. Salía esto: Package tor is not avalible, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only avalible from another source.
Y segundo porque al intentar conectarme a mi propio wifi me salta lo siguiente: CONNETION FAILED, activation of network connection failed.
No estoy familiarizado con este sistema operativo y la verdad no que hacer, esperaba que usted pudiera ayudarme, pues me gustaría seguir con los demás tutoriales :D.
Uf Pepe,
es muy complicado, pero si me dices que no puedes conectar con tu wifi lo mas normal sea que no puedas navegar por Internet, por esos no te encuentra el paquete de Tor.
¿Has probado de navegar con el navegador a cualquier pagina?
Supongo que el problema debe ser mas de configuración de la maquina virtual que de otra cosa.