Proyecto Seguridad 2 2020

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 43

Página 1

Universidad Tecnológica de Panamá

Centro Regional de Chiriquí

Facultad de Ingeniería de Sistemas Computacionales

Licenciatura en Redes Informáticas


Profesor:
Mgter. Leandro Espinoza Montenegro

Seguridad y Privacidad en Redes II

Proyecto Final
Seguridad y Vulnerabilidades de Aplicaciones Web

Estudiantes:
Pablo García: 4-786-2036
César Ayarza: 4-778-736
Irving Lezcano: 4-800-1329

Grupo: 21R241
I Semestre

2020
Página 2

Indice

Introducción ……………………………………………………………….…

Objetivos Generales y Especificos ……………………………………….…...

Framework…………………………………………………………………..5-6

Razones para utilizar Frameworks…………………………………………….6

DVWA….……………..………………………………………………………7

Configuración de DVWA………………………………………………… 8-14

Golismero….……………..………………………………………………..…15

Configuración de Golismero…………………………………………..….16-21

Nikto….……………..……………………………………………………22-24

Configuración de Nikto…………………………………………………..25-26

OWASP-ZAP….……………..………………………………………………27

Configuración de OWASP-ZAP………………………………………….28-33

Conclusión…………………………………………………………………....34
Página 3

Bibliografía…………………………………………………………………..34

Introducción
En diversos sitios web estan en riesgo de diversas amenazas, mediante algunos entornos de
trabajo de la distribución de linux KALI, lo importante no es que podamos hacer despues
de que ocurra un ataque, sino detectarlos a tiempo y asi evitarlos definitivamente. En este
caso usaremos los enterores de KALI:
1. GoLismero.
2. Nikto.
3. OWASP ZAP.

Usando DVWA como un servidor web.


Página 4

Objetivo General
 El objetivo de de este proyecto es buscar información sobre la confidencialidad,
integridad y disponibilidad de datos, busca identificar amenazas y riesgos de un
sistema. Una vez puestas las medidas requeridas, es posible medir y cuantificar los
riesgos a los cuales se ven expuestos los aplicativos tanto en la infraestructura
interna, tanto externa.
 El proyecto se trata de revisar los framekors antes mencionados de kali para buscar
vulnerabilidades de los sitios. Este proceso se realiza bajo diversas fases tales como
el diseño de amenazas de acuerdo al tipo de aplicación, la ejecución de las pruebas
de seguridad, el analisis de los resultados y posteriormente la entrega de los
hallazgos encontrados junto con el analisis que se hizo con los frameworks, asi ver
las vulnerbilidaes y asi podriamos ver como arreglarlos.

Objetivos Especificos
 Identificar posibles amenazas y riesgos a nivel de aplicación.
 Establecer umbrales y criterios de aceptación.
 Identificar vulnerabilidades y puntos de acceso a nivel de infraestructura.
 Analizar impacto de no cumplimiento sobre el negocio.
 Implementar buenas practicas para prevenir ataques.
Página 5

Framework
Un entorno de trabajo, o marco de trabajo es un conjunto estandarizado de conceptos,
prácticas y criterios para enfocar un tipo de problemática particular que sirve como
referencia, para enfrentar y resolver nuevos problemas de índole similar. En el desarrollo de
software, un entorno de trabajo es una estructura conceptual y tecnológica de asistencia
definida, normalmente, con artefactos o módulos concretos de software, que puede servir
de base para la organización y desarrollo de software. Típicamente, puede incluir soporte
de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así
ayudar a desarrollar y unir los diferentes componentes de un proyecto. Representa una
arquitectura de software que modela las relaciones generales de las entidades del dominio,
y provee una estructura y una especial metodología de trabajo, la cual extiende o utiliza las
aplicaciones del dominio. Los marcos de trabajo tienen como objetivo principal ofrecer una
funcionalidad definida, auto contenida, siendo construidos usando patrones de diseño, y su
característica principal es su alta cohesión y bajo acoplamiento. Para acceder a esa
funcionalidad, se construyen piezas, objetos, llamados objetos calientes, que vinculan las
necesidades del sistema con la funcionalidad que este presta. Algunos entornos de trabajo
conocidos son Spring Framework o Hibernate, donde lo esencial para ser denominados
entornos de trabajo es estar constituidos por objetos casi estáticos con funcionalidad
definida a nivel grupo de objetos y no como parte constitutiva de estos, por ejemplo en sus
métodos, en cuyo caso se habla de una API o librería. Algunas características notables que
se pueden observar:

 La inversión de control: en un framework, a diferencia de las bibliotecas, el flujo de


control no es dictado por el programa que llama, sino por el mismo.
 La funcionalidad o comportamiento predeterminado: un marco tiene un
comportamiento predeterminado. Este comportamiento por defecto debe ser un
comportamiento útil, definido e identificable.
 Su escalabilidad: un marco puede ser ampliado para proporcionar una funcionalidad
específica. El frame, en general, no se supone que deba ser modificado, excepto en
Página 6

cuanto a extensibilidad. Los usuarios pueden ampliar sus características, pero no deben
ni necesitan modificar su código.

Razones para utilizar frameworks

 Evitar escribir código repetitivo: La mayoría de los proyectos tienen partes comunes
necesarias para el funcionamiento como, por ejemplo, acceso a base de datos,
validación de formularios o seguridad. Un framework nos evita tener que programar
estas partes, de esta manera nos resulta más fácil centrarnos en programar la aplicación.
 Utilizar buenas prácticas: Los frameworks están basados en patrones de desarrollo,
normalmente MVC (Modelo-Vista-Controlador) que ayudan a separar los datos y la
lógica de negocio de la interfaz con el usuario. Vamos, que gracias a ellos, lo tenemos
todo más ordenado.
 Permitir hacer cosas avanzadas que tú no harías: Está claro que un framework
siempre te va permitir hacer cosas de una manera fácil y segura, que para ti serían
imposibles o al menos te costaría mucho tiempo hacerlas.
 Desarrollar más rápido: Si tenemos en cuenta los puntos anteriores, sabremos que
desarrollar una aplicación con un framework nos permite hacerlo más rápido, más
limpio y más seguro.
Página 7

DVWA
Damn Vulnerable Web App (DVWA) es una aplicación web PHP / MySQL que es muy
vulnerable. Sus objetivos principales son ayudar a los profesionales de seguridad a probar
sus habilidades y herramientas en un entorno legal, ayudar a los desarrolladores web a
comprender mejor los procesos de seguridad de las aplicaciones web y ayudar a los
maestros / estudiantes a enseñar / aprender la seguridad de las aplicaciones web en un
entorno de clase.
¿Cuáles son los beneficios de la DVWA?
1) Violar la seguridad informática de cualquier cosa sin permiso es un crimen. Entonces,
como estudiante o principiante aquí tienes ese permiso, puedes usarlo. Para que los
usuarios avanzados mejoren su habilidad, la DVWA es la mejor plataforma.
2) En DVWA, no tienes que pedir el permiso de otros. Simplemente puedes instalarla en
un entorno virtual y comenzar a usarla.
3) Es muy sencillo de instalar.
4) Este es el mejor lugar para hacer hacking.
5) De hecho, esto se está ejecutando en tu entorno local y es totalmente legal.
Tiene niveles de seguridad, que estos son:
 Imposible: En este nivel, enfrentarás desafíos como CTF y es más difícil que el otro
nivel. Este nivel da dificultades que enfrentamos en el mundo real.
 Alto: Este nivel de vulnerabilidad brinda al usuario un ejemplo de cómo proteger la
vulnerabilidad a través de métodos de programación seguros. Permite al usuario
comprender cómo se puede medir la vulnerabilidad. Este nivel de seguridad debe ser
imposible de violar la seguridad, sin embargo, como todos sabemos, este no es siempre
el caso. Así que, si logras evitarlo, estarás haciendo lo correcto.
 Medio: el propósito de este nivel de seguridad es dar al ‘atacante’ un desafío en la
explotación y también servir como un ejemplo de malas prácticas de
programación/seguridad.
 Bajo: este nivel de seguridad está destinado a simular un sitio web sin ningún tipo de
seguridad implementado en su programación. Le da al “atacante” la oportunidad de
refinar sus habilidades de explotación.
En DVWA podemos probar varios tipos diferentes de vulnerabilidades, entre esas están:
 Fuerza bruta, Inyección de comando, Carga de archivos, Captcha inseguro, Inyección
de sql, Sql injection blind, Id de sesión débil, Xss(dom), Xss (reflect), Xss (stored).
Página 8

Configuración del DVWA


Se descarga la Configuración para el ambiente de prueba con la App WEB DVWA.

Paso #1
Actualizamos el sistema y sus drivers, tecleando lo siguiente: sudo apt-get upfate && sudo
apt-get dist-upgrade –y.

Paso #2
Vamos a firebox y vamos al siguiente enlace https://github.com/ethicalhack3r/DVWA y
copiamos el link de la página.
Página 9

Paso #3
Nos vamos a la carpeta de html tecleando cd /var/www/html y allí mismo descargamos los
paquetes de DVWA allí mismo tecleando: sudo git clone
https://github.com/ethicalhack3r/DVWA.git

Paso #4
Verificamos que el archivo este, ya viendo que esta, le cambiamos su nombre, tecleando:
mv DVWA dvwa, luego verificamos si se cambió.

Paso #5
Le damos los permisos a la carpeta dvwa, tecleando: sudo chmod –R 777 dvwa.

Paso #6
Nos vamos la carpeta dvwa y verificamos si esta la carpeta config.

Paso #7
Página 10

Entramos en la carpeta config y verificamos si está el archivo config.inc.php.dist, viendo


que esta, lo copiamos y cambiamos el nombre al mismo tiempo tecleando sudo
config.inc.php.dist config.inc.php, y luego verificamos usando ls.

Paso #9
Modificamos el archivo config.inc.php, tecleando: nano config.inc.php, ya dentro,
cambiamos el db_user, en nuestro caso (group420) y la db_password (pass) y guardamos.

Paso #10
En otra pestaña de la terminal, ya en root, iniciamos mysql, tecleando mysql start, luego
sudo mysql –u root –p, nos pedirá la contraseña, esperamos a que cargue y podemos
comenzar.
Página 11

Paso #11
Vinculamos el usuario del DVWA en la base de datos, tecleando create user ‘group420
(nuestro usuario)’@‘127.0.0.1 (la ip de nuestro servidor)’ identified by ‘pass (nuestra
contraseña)’ y luego ponemos nuestro usaurio en mysql definitivamente, tecleando: select
user from mysql.user;

Paso #12
Le damos los privilegios tecleando: grant all privileges on dvwa.* to
‘group420’@’127.0.0.1’;

Paso #13
En otra máquina vamos a la carpeta etc, luego a la de php, luego a la carpeta 7.3, luego a la
carpeta apache2, y allí mismo abrimos el archivo php.ini.
Página 12

Paso #14
Ya dentro del archivo php.ini, tocando ctrl + w, aparecerá la opción buscar, buscamos
allow_ y si alguna de la opciones allow_url_fopen o allow_url_include está en off,
cambiarlo a Off, en este caso, la segunda opción, osea, allow_url_include estaba en off, se
cambió a On.

Paso #15
Para comenzar con el apache, se debe estar en la carpeta apache 2, allí mismo tecleamos
sudo service apache2 start.
Página 13

Paso #16
Sin cerrar la terminal, vamos al navegador y ponemos la ip asignada, osea 127.0.0.1, esto
para comprobar el Apache2.

Paso #17
Ahora en el buscador, ponemos 127.0.0.1/dvwa y ponemos nuestro usuario y contraseña.

Paso #18
Y listo, ya tendríamos DVWA activado.
Página 14

El ingreso a la aplicación permitirá seleccionar la configuración del nivel de dificultad con


el cual se quiere auditar la aplicación web. Al seleccionar las diferentes dificultades entre
baja, media y alta, automáticamente se realizarán las configuraciones pertinentes en la
aplicación para ajustar las vulnerabilidades desde lo más fácil a lo más difícil:
Página 15

Probar las diferentes vulnerabilidades que posee la aplicación. En este caso, para probar
una de estas, decidimos por ejemplo hacerlo en “Command Execution”. Este panel presenta
una vulnerabilidad a la hora de comprobar la conectividad haciendo uso del comando ping,
la cual sin embargo desde ese mismo campo de entrada de dirección IP es posible saltear el
comando ping para ejecutar otro comando como por ejemplo leer el archivo /etc/passwd:

Este tipo de funcionalidad o herramientas es habitual encontrarlas por ejemplo en routers de


Internet, por eso es muy importante también actualizar el sistema operativo de estos
dispositivos de conectividad, para corregir este tipo de fallas. Veamos un ejemplo de
concatenación de comandos:

De esta forma, se pueden probar las diferentes vulnerabilidades que posee la aplicación en
sus diferentes niveles. Este tipo de plataformas educativas tienen como finalidad ayudar a
comprender cómo funcionan algunas de las más conocidas, permitiendo obtener el
conocimiento necesario para detectar proactivamente estas fallas en sitios propios, y
corregirlas antes de que sean explotadas por atacantes.

Estos conocimientos serán muy útiles a la hora de montar sitios web propios y revisar al
menos las vulnerabilidades básicas, permitiendo realizar las correcciones correspondientes
en tiempo y forma.
Página 16

Golismero
GoLismero es una herramienta de seguridad que han presentado en la convención OWASP
orientada a realizar auditorías de páginas web para buscar posibles agujeros de seguridad
existentes en estas, aunque también podría ser utilizado para buscar fallos en cualquier otro
tipo de servicios (redes, servidores, etc).
Las características de GoLismero son:
 Es una herramienta multiplataforma con soporte para Windows, Linux, Mac y BSD
 No necesita dependencias, todo el código está escrito en Python.
 En comparación con otros frameworks escritos en Python, GoLismero está optimizado
y ofrece un resultado óptimo.
 Es una herramienta muy fácil de usar.
 La herramienta puede recopilar y analizar resultados recogidos por otras herramientas
de seguridad como sqlmap, xsser, openvas, dnsrecon, theharvester, etc.
 Permite la creación de plugins de forma sencilla.
GoLismero se encuentra disponible en GitHub. Desde esta web lo podemos descargar,
descomprimir y comenzar a utilizarlo. No necesitamos instalar nada en nuestro sistema,
salvo el intérprete de Python si aún no lo hemos instalado.
Para comenzar una auditoría web, desde un terminal teclearemos la siguiente línea:
 python golismero.py www.redeszone.net -o prueba_redeszone.txt
También podemos volcar los resultados como una página web para un análisis más claro.
 python golismero.py www.redeszone.net -o análisis_redeszone.html
La anterior línea nos lanzará una auditoría completa sobre nuestra web y nos copiará los
resultados obtenidos sobre el archivo prueba_redeszone.txt que se guardará en la carpeta
desde la que estemos ejecutando GoLismero.
Página 17

Configuración del Golismero


En este caso, la última versión de Kali (Linux) no trae preinstalado la herramienta
Golismero, así que debemos instalarla manualmente. Los siguientes comandos descargarán
e instalarán GoLismero en su sistema. Esto requiere privilegios de root, por lo que se le
pedirá su contraseña cuando ejecute el primer comando.

Paso #1
Descargamos la aplicación golismero en www.golismero.com

Paso #2
Vamos a la carpeta Downloads y extraemos la carpeta del zip.

Paso #3
sudo bash

Paso #4
apt-get install python2.7 python2.7-dev python-pip python-docutils git perl nmap sslscan
Página 18

Paso #5
cd /opt

Paso #6
rm -r golismero

Paso #6
git clone https://github.com/golismero/golismero.git

Paso #7
cd golismero.
Página 19

Paso #9
pip install -r requirements.txt

Paso #10
pip install -r requirements_unix.txt

Paso #11
ln -s ${PWD}/golismero.py /usr/bin/golismero
Página 20

Paso #12
Exit y cerramos la terminal.

Paso #13
Abrimos otra terminal y tecleamos golismero.

Paso #14
Página 21

Dentro de la terminal tecleamos golismero -h


Nos muestra las funciones que nos brinda golismero
Hay 3 funciones que son las mas utilizadas
1. escanear (scan): nos hace un scaneo completo de una pagina web o de un servidor.
2. Importar (import): con esta opción logramos importar resultados de alguna otra
herramienta de examen de vulnerabilidades.
3. Reporte (report): nos entrega un reporte en pantalla de la terminal de algún scaneo
que hicimos

Paso #15
Página 22

Tecleamos golismero plugins, donde nos muestra las herramientas que utiliza golismero.

Paso #16
Dentro de golismero podemos declarar que plugins usar y cuales no.
Página 23

Tenemos la opción: -e
Que nos indica que solo usaremos el plugins señalado.
Ejemplo: golismero scan -e nmap http//127.0.0.1/dvwa
Página 24

Paso #17
Dentro de golismero podemos declarar que plugins usar y cuales no.
Tenemos la opción: -b
Que nos indica que solo usaremos todos los plugins menos el señalado.
Ejemplo: golismero scan -b nmap http//127.0.0.1/dvwa

Paso #18
Como último paso, pondríamos para verificar las vulnerabilidades de un sitio web, en este
caso, el servidor dvwa.

Paso #19
Página 25

Para ver el reporte en html, tecleamos golismero scan http://127.0.0.1/DVWA-master -o


/home/kike/securityreport.html

Paso #20
Buscar el archivo html y eso nos llevara al navegador y allí veremos el reporte html.
Página 26

Nikto
Si ejecuta Nikto por sí mismo en un sitio web específico, es posible que no sepa qué hacer
con la información del análisis. Nikto es en realidad más como un primer paso para llamar
a un golpe mucho más grande.
Primero, hablemos de la superficie del objetivo (target surface). Esto es casi cualquier lugar
donde un hacker intente atacar y podría incluir cosas como impresoras expuestas a la red o
un servidor web. Cuando lleguemos a usar Nikto más tarde, en relación al objetivo,
tendremos que proporcionarle alguno de los siguientes datos: una dirección IP para un
servicio local, un dominio web para atacar o un sitio web SSL/HTTPS.
Antes de comenzar el escaneo con Nikto, quizás es mejor hacer un reconocimiento
adicional utilizando una herramienta de inteligencia de código abierto como Maltego.
Herramientas como ésta pueden ayudar a crear un perfil y una lista más centrada de
objetivos disponibles en los que se debería concentrar la atención. Una vez hecho esto,
Nikto puede ser usado para afinar las vulnerabilidades potenciales de los objetivos de la
lista.
Con algo de suerte, se encontrará una vulnerabilidad con su respectivo exploit, lo que
significa que ya existe una herramienta para aprovechar la debilidad. Con la herramienta
adecuada, que explotará automáticamente la vulnerabilidad, un hacker puede acceder al
objetivo para realizar cualquier número de ataques entre bastidores, como añadir código
para realizar una actividad maliciosa.
Nikto no está diseñado como una herramienta sigilosa. Probará un servidor web en el
menor tiempo posible, y es obvio en los archivos de registro o en un IPS / IDS. Sin
embargo, hay soporte para los métodos anti-IDS de LibWhisker en caso de que quiera
probarlo (o probar su sistema IDS).
No todos los chequeos son un problema de seguridad, aunque la mayoría lo son. Hay
algunos elementos que son verificaciones de tipo "solo información" que buscan cosas que
pueden no tener un defecto de seguridad, pero que el webmaster o el ingeniero de seguridad
pueden no saber que están presentes en el servidor. Estos elementos generalmente están
marcados adecuadamente en la información impresa. También hay algunas comprobaciones
de elementos desconocidos que se han visto escaneados en archivos de registro.
Nikto tiene muchas opciones, pero para nuestros propósitos, nos ceñiremos a la sintaxis
básica de la siguiente manera. Sustituiremos el <IP o nombre de host> por la dirección IP
real o el nombre de host sin corchetes angulares.
Sin embargo, Nikto es capaz de realizar un análisis que puede ir tras el SSL y el puerto 443,
el puerto que utilizan los sitios web HTTPS (HTTP utiliza el puerto 80 de forma
predeterminada). Por lo tanto, podemos realizar evaluaciones de vulnerabilidades en sitios
que utilizan SSL, lo que hoy en día es casi un requisito para ser indexados en los resultados
de búsqueda en Google.
Página 27

Si sabemos que es un sitio SSL al que estamos apuntando, podemos especificarlo en Nikto
para ahorrar tiempo en el análisis añadiendo -ssl al final del comando.
Una de las mejores cosas de Nikto es que puedes exportar información a un formato que
Metasploit pueda leer. Para ello, basta con utilizar los comandos anteriores para realizar el
escaneo, pero añadiendo -Format msf+ al final de los mismo.
Por lo tanto, en este trabajo, pasamos de determinar la superficie del objetivo a encontrar
una vulnerabilidad y luego encontrarle su respectivo exploit para no tener que hacer todo el
trabajo. Dado que Nikto no es una herramienta sigilosa, es aconsejable realizar este tipo de
escaneos desde una VPN, a través de Tor, u otro tipo de servicio para que su dirección IP
real no se marque por comportamiento sospechoso.
Características:
 Soporte SSL (Unix con OpenSSL o tal vez Windows con Perl / NetSSL de
ActiveState).
 Soporte completo de proxy HTTP.
 Comprueba los componentes del servidor obsoletos.
 Guarde informes en texto plano, XML, HTML, NBE o CSV.
 Motor de plantillas para personalizar fácilmente los informes.
 Escanee múltiples puertos en un servidor, o múltiples servidores a través de un archivo
de entrada (incluida la salida de nmap).
 Técnicas de codificación IDS de LibWhisker.
 Se actualiza fácilmente a través de la línea de comando.
 Identifica el software instalado a través de encabezados, favicons y archivos.
 Autenticación de host con Basic y NTLM.
 Subdominio adivinando.
 Apache y enumeración de nombre de usuario cgiwrap.
 Técnicas de mutación para "pescar" contenido en servidores web.
 Ajuste de escaneo para incluir o excluir clases enteras de comprobaciones de
vulnerabilidad.
 Adivina las credenciales para los reinos de autorización (incluidos muchos combos
predeterminados de id / pw).
 Las conjeturas de autorización manejan cualquier directorio, no solo el directorio raíz.
 Reducción de falsos positivos mejorada a través de múltiples métodos: encabezados.
 contenido de la página y hashing de contenido.
 Reporta encabezados "inusuales" vistos.
 Estado interactivo, pausa y cambios en la configuración de verbosidad.
 Guardar solicitud / respuesta completa para pruebas positivas.
 Repetir solicitudes positivas guardadas.
 Tiempo máximo de ejecución por objetivo.
 Pausa automática a una hora especificada.
Página 28

Si solo ejecuta Nikto en un sitio web específico, es posible que no sepa qué hacer con la
información del escaneo. Nikto es en realidad más como un puntero láser para llamar a un
ataque mucho más grande, y verás cómo se desarrolla eso en un momento.
Primero, hablemos de la superficie objetivo. Esto es prácticamente cualquier lugar donde
un ciberdelincuente intente atacar y podría incluir cosas como impresoras expuestas a la red
y un servidor web. Cuando lleguemos a usar Nikto más tarde, necesitaremos proporcionarle
uno de los tres tipos diferentes de información: una dirección Herramientas como esta
pueden ayudar a construir un perfil y una lista más focalizada de objetivos disponibles que
deberían concentrarse. Una vez hecho esto, Nikto se puede utilizar para centrarse en
posibles vulnerabilidades para los objetivos de la lista.

Ventajas

1. Es Gratis
2. Tiene una base de datos constantemente actualizada y libre (OSVDB)
3. Realiza tests comprensivos de todas las vulnerabilidades existentes y reconocidas hasta
ahora.
4. Puede utilizar con NMAP para afinar escaneos de vulnerabilidad encontradas.
5. Puede utilizarse con Metasploit para determinas grados de penetración en una red/sistema

Desventajas

1. Al ser gratis, no tiene soporte


2. Si no es afinado bien, puede dar falsos positivos.
3. Existe la posibilidad de que no se detecten todas las vulnerabiliadades si es que no se afina
bien la detección
4. El programa como tal necesita de mucha práctica para la detección.

nikto -host http://127.0.0.1/dvwa -output niktoreport.html Para escanear.


Página 29

Configuración del Nikto


Esta vez, en la última versión de KALI trajo esta herramienta, a continuación lo pondremos
a prueba.

Paso #1
Vamos a aplicaciones, análisis de vulnerabilidades y escogemos a Nikto.

Paso #2
Tecleamos lo siguiente para comenzar a verificar las fallas de la web: nikto -host
http://127.0.0.1/dvwa -ouput niktoreport.html
Página 30

Paso #3
Tecleamos lo siguiente para comenzar a verificar las fallas de la web: nikto -host
http://127.0.0.1/dvwa -ouput niktoreport.html

Paso #4
Buscamos el archivo html y vemos el reporte web.
Página 31

OWASP ZAP
OWASP ZAP es un escáner de seguridad web de código abierto. Pretende ser utilizado
como una aplicación de seguridad y como una herramienta profesional para pruebas de
penetración. La prueba de seguridad de software es el proceso de evaluar y probar un
sistema para descubrir riesgos de seguridad y vulnerabilidades del sistema y sus datos. No
existe una terminología universal, pero para nuestros propósitos, definimos las evaluaciones
como el análisis y descubrimiento de vulnerabilidades sin intentar explotar esas
vulnerabilidades.
Definimos las pruebas como el descubrimiento y el intento de explotación de
vulnerabilidades. Las pruebas de seguridad a menudo se desglosan, de manera algo
arbitraria, según el tipo de vulnerabilidad que se prueba o el tipo de prueba que se realiza.
Tenga en cuenta que la evaluación de riesgos, que comúnmente se incluye como parte de
las pruebas de seguridad, no se incluye en esta lista. La prueba de penetración se lleva a
cabo como si el probador fuera un atacante externo malintencionado con el objetivo de
ingresar al sistema y robar datos o realizar algún tipo de ataque de denegación de servicio.
El pentesting también se utiliza para probar los mecanismos de defensa, verificar los planes
de respuesta y confirmar el cumplimiento de la política de seguridad. Ayuda a descubrir
nuevas vulnerabilidades, así como regresiones para vulnerabilidades anteriores en un
entorno que cambia rápidamente y para el cual el desarrollo puede ser altamente
colaborativo y distribuido.
Pentesting generalmente sigue estas etapas: Esto incluye tratar de determinar qué software
está en uso, qué puntos finales existen, qué parches están instalados, etc. También incluye
buscar en el sitio contenido oculto, vulnerabilidades conocidas y otras indicaciones de
debilidad. En esencia, ZAP es lo que se conoce como un «proxy del hombre en el medio».
Se encuentra entre el navegador del probador y la aplicación web para que pueda
interceptar e inspeccionar los mensajes enviados entre el navegador y la aplicación web,
modificar el contenido si es necesario y luego reenviar esos paquetes al destino. Se puede
usar como una aplicación independiente y como un proceso de demonio.
Página 32

Configuración del OWASP ZAP


Pretende ser utilizado como una aplicación de seguridad y como una herramienta
profesional para pruebas de penetración. Lo complicado es que está escrito en Java.
Prueba 1

Paso #1
Vamos a aplicaciones, aplicaciones de análisis de red y escogemos al programa ZAP para
comenzar.

Paso #2
Marcamos la opción: No, no quiero persistir esta sesión en este momento, y le damos start.
Página 33

Paso #3
Ya dentro de la herramienta OWASP ZAP, le damos a escaneo automatico.

Paso #4
Ponemos el sitio que queremos atacar, en nuestro caso, el sitio del DVWA y le damos en
atacar. Este es un ataque activo.
Página 34

Paso #5
Y abrimos sites, aparecerá nuestra página de DVWA y sus contextos, esto fue el modo
activo. Las en la pestaña de alertas, las banderas son posibles amenazas que debemos
erradicar de nuestro sitio.

Paso #5
Lo siguiente es ver el ataque pasivo, zap hace un proxi que se puede configurar, los puertos
entre otros elementos, el escaneo pasivo sólo intercepta las respuestas del server y no es
intrusivo. Para eso, hacemos una nueva sesión, luego nos vamos a herramientas, opciones,
ya en la ventana de opciones, escogemos la opción Dynamic SSL Certificates, le damos en
genérate y le damos en sí, luego le damos en guardar y lo guardamos en donde queramos,
en este caso, usaremos la carpeta wasa, que se creó en el escritorio.
Página 35

Paso #6
Ahora sin cerrar ZAP, nos vamos al navegador (Firefox), nos vamos a opciones, a opciones
de red, le damos a la opción ajustes y ponemos la página que queremos atacar, en nuestro
caso, es el localhost y el puerto 8080, marcamos la casilla de procolos, y le damos OK.
Página 36

Paso #7
Ya guardados las configuraciones del proxy, vamos con la certificación, allí mismo en la
misma ventana de opciones del navegador (Firefox), buscamos certificación (buscando
certificate), luego nos aparecerán unas opciones, elegimos ver certificaciones (view
certificates).

Paso #8
Alli mismo en el manager de certificación, bajamos un poco con la ruedita del ratón y
veremos un par de opciones más, y le damos a la opción, importar.
Página 37

Paso #9
Buscamos el archivo de certificación, es un archivo .cer, acordémonos, estaba en el
escritorio, para eso, tras haber dado la opción importar, nos mandara buscar ese archivo .cer
lo buscamos y le damos en abrir (open).

Paso #10
Rellenamos con ganchos las opciones de los desarrolladores, y damos ok y en la otra
pestaña ok.
Página 38

Paso #11
“Proxis Locales” se puede cambiar el puerto, también la dirección, pero por estos
momentos la dejare así mismo.

Paso #12
Con eso, ya detectaría por el lado de contextos todas las fallas de las páginas que
pongamos.
Página 39

Prueba 1

Paso #1
Para esto tendremos que tener la opción de proxy activado en nuestro OWASP ZAP y en
nuestro buscador, nos estará funcionando como intermediario en las peticiones de recursos
que realiza un cliente (A) a otro servidor.

Estuvimos revisando las peticiones y respuestas de una página web local, en la


cual logramos capturar las peticiones de la página web de: usuario y
contraseña.
Basándonos en esto vamos hacer un ataque con uso de diccionario para
conseguir la contraseña.

Luego procedemos a dar click derecho y seleccionamos la opción atacar luego de Fuzz.
Página 40

2. Le damos
click
ingresar.

3. Le damos
click
ingresar.

1. Seleccionamos el
campo asignado que
aloja la contraseña.

Seleccionamos el archivo
de texto que contiene
nuestro diccionario para
aplicar la fuerza fruta.

En este caso estamos


usando un archivo de
texto con 11 posibles
contraseñas de la cual
una es la correcta.
Página 41

Una vez hagamos el ataque el va proceder a probar en el campo de contraseñas las posibles
contraseñas montadas en nuestro archivo de texto, una por una hasta que alguna de ellas el
servidor que da la respuesta admita como la correcta.
En este caso logramos identificar la contraseña correcta ya que es la que nos género menos
cantidad en bytes y siendo un tamaño diferente al resto de respuestas.
Página 42

Conclusión

Como se sabe, cualquier investigador experimentado en estos temas o simplemente un


hacker con gran recorrido en la materia pueden hacer uso de sus conocimientos para
encontrar los errores de una web y vulnerarlos con diversas técnicas empleadas. Es por ello
que en este trabajo discutimos cuáles son las vulnerabilidades más comunes que pueden
llegar a tener los sitios en Internet y que herramientas son las más indicadas para
erradicarlas. Para nadie es un secreto que en la actualidad existen sistemas de seguridad que
sirven para proteger la integridad de una página web de las amenazas que pueden haber en
el ciberespacio, sin embargo, los piratas informáticos se valen de sus conocimientos para
lograr acceder a los sitios sin ser descubiertos. En este sentido, es de gran importancia que
los desarrolladores y administradores web conozcan en gran medida cómo se llevan a cabo
esto ataques y en qué forma pueden evitarlos. Es relevante conocer que además de sistemas
de seguridad, también existen infinidades de aplicaciones web que ayudan en esta tarea que
puede acabar con una web en cuestiones de segundos.
Página 43

Bibliografía
Damn Vulnerable Web Application (DVWA). (2015). Estados Unidos. Obtenido de
http://www.dvwa.co.uk/

Nikto. (2011). Estados Unidos. Obtenido de https://cirt.net/Nikto2

Onwenu, F. (s.f.). OWASP ZAP - Setting Up ZAP for Browser. Estados Unidos. Obtenido de
https://www.youtube.com/watch?v=ntUSFP0Af1k

Orix. (2017). ¿Qué es un framework y para qué se utiliza? Estados Unidos. Obtenido de
https://www.orix.es/que-es-un-framework-y-para-que-se-utiliza#:~:text=Un
%20framework%2C%20seg%C3%BAn%20wikipedia%2C%20es,hacernos%20m%C3%A1s
%20f%C3%A1cil%20la%20programaci%C3%B3n.

Team, Z. D. (2020). ZAP. Getting Started. Estados Unidos. Obtenido de


https://www.zaproxy.org/getting-started/

Velazco, R. (23 de Agosto de 2013). GoLismero, una nueva herramienta para auditar webs. México.
Obtenido de https://www.redeszone.net/2013/08/23/golismero-una-nueva-herramienta-
para-auditar-webs/

Villas, M. (2014). GoLismero - The Web Knife. México. Obtenido de


https://github.com/golismero/golismero

También podría gustarte