En el contexto de las auditorías de sitios web, existen muchas herramientas de escaneo. Destacamos entre todas ellas las siguientes 3 herramientas:
- Accunetix -> Muy cara pero con módulos java y PHP
- Burp -> Menos cara
- Owasp-zap -> Gratis y bastante buena
Para hacer pruebas con estas herramientas vamos a utilizar una máquina atacante Parrot y una máquina OWASP que la fundación sin ánimo de lucro OWASP pone a disposición de la comunidad con un montón de sitios web vulnerables sobre los que hacer pruebas.
Para la instalación, en nuestro laboratorio que ya conocéis de otros post, creo una carpeta que se llame OWASP
\MAQUINAS\OWASP
Y luego me descargo la última versión de la máquina OWASP de:
https://sourceforge.net/projects/owaspbwa/files/latest/download
El nombre del archivo descargado es:
OWASP_Broken_Web_Apps_VM_1.2.7z
En mi caso tiene extensión .7z porque 7z es el gestor de archivos comprimidos que uso, que los abre todos, es gratis, funciona a la perfección y es rápido. Os recomiendo que lo uséis en lugar de WinZIP y WinRAR.
A continuación hemos de descomprimir el 7z descargado en la carpeta OWASP que hemos creado y que estará vacía, claro.
El resultado final será:
Bien, pues ya tenemos la máquina correctamente situada en su sitio. Ahora es cuestión de ir a VMware y terminar la configuración. Para ello, abrimos VMware y abrimos la instalación que hemos hecho. Pulsamos: open virtual machine, vamos a la carpeta donde está la máquina y abrimos el único fichero que nos aparece:
pulsamos abrir y ya tenemos nuestra máquina sparring o diana OWASP instalada en el laboratorio.
Pulsamos en «play virtual machine» y dejamos que arranque. Cuando termine, el usuario/password es root/owaspbwa. Pues introducimos esos datos. una vez logados, salimos a una consola bastante primitiva de linux. Tecleamos ifconfig y tomamos nota de la dirección IP de la máquina.
Para ver las vulnerabilidades de la máquina OWASP, tomamos la dirección IP anterior y desde, por ejemplo, la máquina base donde están las máquinas virtuales de nuestro laboratorio, abriremos un navegador y navegaremos hacia esa dirección web. Y luego utilizaremos la máquina atacante linux-parrot para efectuar los escaneos. Luego en principio, aquí tenemos tres máquinas.
- Máquina virtual linux donde están grabadas todos los sitios web con vulnerabilidades para hacer nuestros experimentos y aprender.
- Máquina donde veremos esas vulnerabilidades a través de un navegador, puesto que la máquina OWASP tiene un interface de usuario muy pobretón donde no se ve absolutamente nada. Nosotros escogemos la máquina anfitriona donde está montado el laboratorio para hacer esas funciones de navegación, pero puede ser cualquier máquina que esté en la misma red. Un portátil, otra máquina virtual de nuestro laboratorio, etc.
- La máquina atacante que contiene la herramienta de escaneo OWASP y que va a lanzar ataques contra la máquina linux donde están las webs vulnerables. En nuestro caso, usaremos como máquina atacante la linux-parrot de nuestro laboratorio.
En la propia máquina OWASP nos dice la dirección IP para navegar por ella:
192.168.31.128
Introducimos esta dirección en un navegador y accedemos a la serie de webs sparrings para trabajar con ellas.
La aplicación de escaneo de vulnerabilidades es una aplicación de las llamadas de botón gordo. Su funcionamiento es simple. Entramos en la máquina de ataque parrot de nuestro laboratorio. Voy a aplicaciones/pentesting/aplicaciones web/owasp zap
Ejecuto la aplicación. Es posible que me pida actualizaciones, si es así las ejecuto. También es posible que hay salido una nueva versión de OWASP. En ese caso, la descargamos. El fichero será un comprimido de Linux, es decir un .tar o .gz ; simplemente descargamos, creamos una carpeta nueva en la carpeta de nuestro usuario, por ejemplo /home/juan/owaspz y descomprimimos el archivo en la carpeta creada. Dentro de esos archivos habrá un ejecutable .sh, ese será el que ejecutemos. Otro tema será localizar por toda el Linux la instalación antigua y borrarla. Parece que la instalación original de parrot está en /usr/share/zaproxy
Eliminarla es tan fácil como abrir un terminal en esa localización y ejecutar:
sudo rm -r *.*
En fin no voy a enseñaros ahora a borrar carpetas. Para tener accesible la nueva instalación, una cosa que podemos hacer es crear un lanzador en el escritorio que apunte a:
zap.sh
y que utilice el icono:
zap.ico
Finalmente, se puede editar el menú del Parrot para actualizar el lanzador. No olvidéis que Parrot Linux es una distribución de Linux especializada en seguridad informática, que no es otra cosa que un Linux con un montón de aplicaciones de Hacking ya preinstaladas. Entonces tenemos también que saber como actualizar esas aplicaciones. En otros post ya dicho como se hace eso en Linux, pero en esta en concreto, no se instala sino que se ejecuta directamente en la carpeta donde se descomprime.
Esto se hace de la siguiente manera:
Nos situamos con el ratón sobre el menú, pulsamos botón derecho, seleccionamos «editar menús» y nos sale esto:
Y a partir de aquí ya podemos, borrar, añadir y cambiar elementos del menú de aplicaciones. Nos vamos al elemento antiguo de OWASP ZAP y lo eliminamos. Después añadimos un elemento nuevo, que lo que hace es llevarnos a la generación de un nuevo lanzador. Recordar que un lanzador es el equivalente a un acceso directo en Windows. Realmente es lo mismo. Creamos ese lanzador y ya tenemos actualizado nuestro sistema Parrot.
Recomiendo que cuando haya cambios sustanciales, pues debemos tener actualizado el menú y también podemos tener el acceso directo en el escritorio.
Ahora vamos a proceder a arrancar OWASP ZAP y analizar una web cualquiera:
Pulsamos doble click en el icono del escritorio o en el del menú, si tenemos los dos, y arrancamos la aplicación.
Esa es la pantalla que nos sale. Como es una aplicación de botón gordo, esto es tan simple como pulsar ese botón gordo que es «automated scan». Lo pulsamos:
A continuación introducimos la url de la web a escanear y pulsamos el botón «atacar». Por eso se llama una aplicación de botón gordo, porque una vez pulsado el botón, ya la aplicación se encarga de hacer todo.
OWASP hace dos tipos de escaneo:
- Spider
- Ajax Spider
Suele tardar tiempo en escanear una web. Un ataque spider consiste en que el OWASP se posiciona en la url de partida, busca el archivo robot.txt y sitemap.xml y con ello busca por todas las url de la web objeto del ataque, enviando paquetes para encontrar los puntos de entrada a la web, que como ya os podéis imaginar son las url y los formularios.
Son los únicos sitios por los que se puede entrar a una web y hackearla inyectando datos. O bien se puede ensayar un ataque a la infraestructura o a la cadena de suministros. OWASP saca un mapa del sitio web con alertas de seguridad e información sobre ellas.
Hoy día casi todos los servidores están en la nube, p, ejemplo azure, aws.. Conviene saber que los proveedores de nube se lavan las manos de cualquier ataque que pueda sufrir nuestro servidor en la nube. Otro tema son los proveedores de hosting. Ellos se hacen responsables de sus equipos donde está alojado tu servidor, pero no se hacen responsable de por ejemplo, si tienes un WordPress obsoleto y lleno de agujeros de seguridad.
Como dije al principio del post, también podemos utilizar OWASP para hacer ataques sobre webs obsoletas preparadas al efecto en la máquina Linux que nos instalamos al principio. He escogido una de ellas, cuya dirección es:
http://192.168.31.128/mutillidae
Podéis obtener multitud de direcciones web para atacar accediendo a la página principal como expliqué anteriormente. Si atacáis esa dirección con OWASP, lo primero que hay que hacer es arrancar la máquina con las webs con vulnerabilidades.
Luego arrancamos la máquina Parrot y el OWASP, pulsamos «automated scan» , introducimos la web a analizar: http://192.168.31.128/mutillidae y luego pulsamos «atacar» y veremos como salen miles de alertas. El escaneo tarda un buen rato, pero es muy útil hacer este ejercicio porque luego podemos analizar un amplio abanico de vulnerabilidades.
Hay mucha información detallada en internet sobre las vulnerabilidades de las diversas webs de la máquina OWASP. Es cuestión de hacer escaneos, leer los informes, buscar información concreta de esos informes y trabajarlos.
En el informe tenemos que ver los comandos GET que puedan tener puntos de entrada. Todos los GET donde en la uri haya algo como:
?page=
o similar, son puntos de entrada. Una uri es un identificador único de algo remoto. Parrot tiene una utilidad para navegar de forma anónima en el apartado privacy. El DOM es lo que el servidor envía para que el navegador lo visualice. Cuando el navegador ve una etiqueta html:
<script></script>
tiene la obligación de ejecutarlo. Esto puede traer un ataque conocido como xss reflected. Una manera de evitar las inyecciones en las uri es prohibir los caracteres especiales. Por ejemplo:
‘ -> evita inyecciones SQL
< -> evita ejecución maliciosa de javascript
Así, para un atacante, le será imposible escribir código malicioso en los puntos de entrada.
Una vez ha terminado podremos crear un informe de vulnerabilidades de la web a escanear. Esto sale en el menú de «alertas». Cada alerta es un vulnerabilidad detectada. Podéis meter la url que queráis, pero ojo que un escaneo puede entenderse como una acción de pre-hacking y estar perseguida por la ley. Por eso yo no os voy a dar el resultado del escaneo. Os invito a que uséis las webs de prueba u otras que os pertenezcan.
Y como todas las utilidades hacking, os digo lo de siempre. Os he presentado la manera de instalarla, configurarla y darle un primer uso en el contexto de un laboratorio de seguridad informática operativo, que es quizá lo mas difícil y donde mas tiempo se pierde, pero las posibilidades del aplicativo son inmensas.
Deciros también que la fundación owasp, publica todos los años una especie de ranking con las mayores 10 vulnerabilidades de seguridad informática. Si queréis estar al día en estos temas, os recomiendo su lectura.
https://owasp.org/www-project-top-ten/
Os preguntaréis además por qué tiene que ver tanto Linux con el hacking. ¿Es que no hay herramientas para Windows que hagan lo mismo? ¿No hay un OWASP ZAP para Windows?.
La respuesta a la última pregunta es si. Si hay un OWASP para Windows. Yo lo he instalado en mi máquina anfitriona, pero en el disco del laboratorio. Y con las mismas lo he tenido que desinstalar porque no funciona bien. Es como si le faltaran cosas. No aparecen los botones ni el sitio para introducir la web. En fin seguro que he sido yo el que ha metido la pata y volveré a la carga otro día, pero no me ha gustado.
Linux es el sistema operativo ideal para temas de seguridad, porque es de código abierto. Muchas aplicaciones de hacking solo existen para Linux y muchas solo existen para el terminal. Véase como ejemplo el John the Ripper que ya hemos analizado en esta web. Eso no quiere decir que las mejores aplicaciones de seguridad informática cuesten mucho dinero. Ya las iremos viendo.