Sunteți pe pagina 1din 95

UNIVERSIDAD DE LA SIERRA JUÁREZ

“LABORATORIO DE PENTESTING
VIRTUALIZADO, UTILIZANDO KALI-LINUX Y
TÉCNICAS DE HACKING ÉTICO”

T E S I S

QUE PARA OBTENER EL GRADO DE:

LICENCIADO EN INFORMÁTICA

PRESENTA:

ADRIÁN AQUINO ROBLES

DIRECTOR DE TESIS:

M.I.T.I FLORENTINO MENDEZ GIJON

IXTLÁN DE JUÁREZ, OAX. JUNIO 2014


AGRADECIMIENTOS
Primeramente quisiera a agradecer a Dios por darme vida y la oportunidad de culminar
exitosamente una de mis etapas profesionales.
Un agradecimiento muy especial, al que quiero hacer mención y además quiero que quede
grabado, es hacia el M.I.T.I. Florentino Mendez Gijon por todo el interés, el tiempo y la
paciencia que tuvo en la realización de esta Tesis.
Agradezco también al M.C. Armando Ronquillo Jorge, M.C. José Guillermo Valdez Besares y
M.T.I. Leobardo Santiago Paz por el tiempo y la disponibilidad para revisar esta Tesis.
Quiero agradecer a todos mis buenos amigos, y sin excluir alguno, porque gracias a su apoyo,
a su compañía, a sus buenos consejos y por estar siempre con una palabra de aliento cuando lo
he necesitado, me han motivado a seguir adelante. La amistad es un tesoro invaluable y yo me
siento profundamente agradecido por todos aquellos amigos que me han acompañado a lo
largo de mi carrera profesional.
A ustedes profesores, que en verdad dedicaron su tiempo, sus regaños, sus alegrías, que me
enseñaron las armas para defenderme en el mundo profesional y que me prepararon para dar el
200% en todos los aspectos, mil gracias, porque de alguna manera forman parte de lo que
ahora soy.
Un agradecimiento muy importante para mis tres hermanos que son parte fundamental para
que este trabajo se haya concluido; Kathia, gracias a ti he aprendido que cuando se quiere se
puede, estés donde estés pero siempre con mucho entusiasmo y dedicación, espero que pronto
tu también estés escribiendo estas líneas; Edén, tu carácter me ha enseñado a que debo ser
fuerte para afrontar la vida; Jesús, tu recorrido por la vida ha sido el mejor ejemplo que yo he
tenido de un hermano mayor, las dificultades, las alegrías, los fracasos, los éxitos a que te
enfrentas me han enseñado que todo esfuerzo tiene su recompensa. Gracias a todos ustedes,
porque cada día hacen más grande mis ganas de superación, y gracias a la vida que me ha dado
la oportunidad de tener a los mejores hermanos del mundo.
Padres, no tengo palabras que describan las emociones que siento, ustedes han sido los pilares
más importantes a lo largo de toda mi vida, ustedes representan todo lo que soy ahora, gracias
por creer siempre en mí, por amarme tanto y por no darme siempre lo que quise. Como familia

III
pasamos muchas dificultades pero ustedes me enseñaron a ser fuerte y a ver con optimismo la
vida. Sabiendo que no existirá una forma de agradecer una vida de sacrificio y esfuerzo, quiero
que sientan que el objetivo logrado también es de ustedes y que la fuerza que me ayudo a
conseguirlo fue su apoyo.
Gracias Papá por tus palabras de aliento, por tomarte tu tiempo para enseñarme, por llevarme
por el camino correcto, y animarme en todo momento, doy gracias a Dios que me dio un padre
como tú, porque he sido bendecido con la crianza que me has dado, con tu gran esfuerzo, tu
dedicación, tu trabajo, tu tiempo, me has dado una buena educación y por eso, siempre voy a
estar agradecido.
Mamá, se me llenan de lágrimas los ojos al escribir estas líneas, eres la persona más
maravillosa de este mundo, agradecido estoy con Dios por haberme dado la oportunidad de
tenerte como MAMÁ, este éxito es para ti, a ti te debo todo, gracias por la vida, el amor y las
noches de desvelo, gracias por ser como eres, gracias por estar ahí en las buenas y en las
malas, gracias por tu atención y porque nunca me he sentido solo estando lejos de ti, porque
gracias a tus consejos he seguido adelante, por la presencia y esencia de tu ser al ayudarme a
crecer. Por ser la luz en la obscuridad y enseñarme de la vida la verdad, por la inmensidad de
tu corazón y enseñarme a luchar con razón. Por estas palabras que puedo escribir y por los
sentimientos que no se decir, por el esfuerzo que no he agradecido y la confianza que no te he
merecido. Por todo esto... Gracias!!!

IV
DEDICATORIA

A mis Padres,
con todo mi amor y admiración!!!

Finitum Est...

V
Resumen

En este trabajo de tesis se implementa un laboratorio de pentesting virtualizado, utilizando


técnicas de Hacking Ético y el sistema operativo Kali-Linux, que tiene embebidas
herramientas de intrusión a redes y aplicaciones. Se inicia con una descripción de conceptos
básicos de seguridad informática y pentesting, para posteriormente describir el entorno de
pruebas implementado, utilizando el software VirtualBox junto con sistemas operativos Linux
y Windows sobre el sistema base Kali-Linux. Lo que permite realizar ataques a aplicaciones y
servicios de red instalados en los diferentes sistemas operativos virtualizados.
Todas las pruebas se realizaron utilizando técnicas de Hacking Ético bajo un ambiente
controlado y siguiendo un procedimiento establecido de cuatro fases para este tipo de
actividades, lo que permitió obtener resultados satisfactorios en cada una de las pruebas. Los
resultados desmostraron que es posible realizar este tipo de actividad en un ambiente
virtualizado, lo que brinda la posibilidad a personas y organizaciones ha aprender como
funcionan los ataques a entornos reales, sin infringir las leyes que regulan la actividad
informática.

VI
Abstract

In the following work, a virtualized pentesting lab is implemented using Ethical Hacking
techniques and the Kali-Linux operating system, which carries network intrusion tools and
applications embedded. We begins with a description of basic computer security and
pentesting concepts, to later describe the implemented test environment using VirtualBox
software with Linux and Windows operating systems within Kali-Linux system. This allows to
perform attacks on applications and network services installed on different virtualized
operating systems.
All test were performed using Ethical Hacking techniques within a controlled environment
following an established four phases procedure for this type of activities, yielding satisfactory
results in each of them. and showed that it is possible to perform such activity within a
virtualized environment. Results showed that provides the opportunity for individuals and
organizations to learn how attacks work on real cases scenarios, without violating the laws that
regulate computer activity.

VII
Índice General
Índice de Tablas..........................................................................................................................x
Introducción................................................................................................................................1
Capítulo I Antecedentes.............................................................................................................4
1.1 Planteamiento del problema..............................................................................................4
1.2 Justificación.......................................................................................................................5
1.3 Objetivos...........................................................................................................................5
1.3.1 Objetivo general........................................................................................................5
1.3.2 Objetivos específicos.................................................................................................5
1.4 Hipótesis............................................................................................................................6
1.5 Estado del arte...................................................................................................................6
1.5.1 Advanced Penetration Testing for Highly Secured Enviroments..............................6
1.5.2 Metasploit. The Penetration Tester's Guide...............................................................7
1.5.3 Penetration Testing for Android Smartphones...........................................................8
1.5.4 Hacking Ético para detectar Vulnerabilidades en los Servicios de la .....Intranet del
Gobierno Autónomo Descentralizado Municipal del Cantón de Cevallos.........................8
1.5.5. Why Johnny Can't Pentest: An Analysis of Black Box Web Vulnerability Scanners.
............................................................................................................................................9
1.6 Metodología.....................................................................................................................10
1.7 Alcances y limitaciones...................................................................................................12
Capítulo II Marco Teórico.......................................................................................................13
2.1 Conceptos básicos de Seguridad Informática..................................................................13
2.1.1 Seguridad Informática.............................................................................................13
2.1.2 Auditoría Informática..............................................................................................14
2.1.3 Políticas de Seguridad Informática..........................................................................15
2.1.4 Terminología aplicada a la Seguridad Informática..................................................17
2.1.5 Organismos oficiales reguladores en temas de Seguridad Informática...................19
2.1.5.1 CERT................................................................................................................19
2.1.5.2 NIST-CSD........................................................................................................19
2.1.5.3 CVE-MITRE....................................................................................................20
2.1.5.4 INTECO-CERT................................................................................................20
2.2 Hacking Ético..................................................................................................................20
2.2.1 Historia....................................................................................................................20
2.2.2 ¿Qué es Hacking Ético?...........................................................................................22
2.3 Kali-Linux y sus componenetes......................................................................................24
2.3.1 Panorama general de Kali-Linux.............................................................................24
2.3.2 Metasploit y sus componentes.................................................................................25
2.3.2.1 Arquitectura......................................................................................................26
2.4 Pruebas de Penetración (Penetration Test)......................................................................29
2.4.1 ¿Qué es una prueba de penetración (Penetration Test)?..........................................29
2.4.2 Fases de una prueba de penetración........................................................................30
Capítulo III Implementación y pruebas de Pentesting.........................................................34
3.1 Entorno de pruebas..........................................................................................................34
3.1.1 Configuración de Metasploit...................................................................................38

VIII
3.1.2 Configuración de Armitage.....................................................................................40
3.2 Pruebas realizadas...........................................................................................................41
3.2.1 Acceso no autorizado...............................................................................................42
3.2.1.1 Fuerza Bruta a MySQL....................................................................................42
3.2.1.2 Ataque al servicio Samba.................................................................................46
3.2.2 Cross Site Scripting XSS.........................................................................................49
3.2.2.1 XSS Reflejado..................................................................................................50
3.2.2.2 Cross Site Scripting Persistente.......................................................................53
3.2.3 Ataques a redes........................................................................................................56
3.2.3.1 Man in the Middle............................................................................................56
3.2.4 SQL Injection...........................................................................................................61
3.2.5 Denial of Service.....................................................................................................66
3.3 Medidas de Seguridad Recomendadas............................................................................71
Capitulo IV Resultados............................................................................................................74
Capítulo V Conclusiones..........................................................................................................79
Referencias Bibliográficas.......................................................................................................82

IX
Índice de Tablas
Figura 1.1. Arquitectura del framework Metasploit...................................................................27
Figura 3.1 Diagrama del entorno de trabajo..............................................................................35
Figura 3.2 Parámetros de acceso a la nueva base de datos........................................................39
Figura 3.3 Verificación de la conexión hacia la nueva base de datos de PostgreSQL...............40
Figura 3.4 Parámetros de conexión entre Armitage y Metasploit..............................................41
Figura 3.5 Interfaz de Armitage.................................................................................................41
Figura 3.6 Resultado del comando nmap...................................................................................43
Figura 3.7 Scripts para MySQL.................................................................................................44
Figura 3.8 Parámetros del script mysql_login...........................................................................44
Figura 3.9 Credenciales de acceso encontradas.........................................................................45
Figura 3.10 Acceso a la base de datos de MySQL.....................................................................45
Figura 3.11 Parámetros para ejecutar el script scanner/smb/smb_version.................................46
Figura 3.12 Resultado del script scanner/smb/smb_version con Armitage...............................47
Figura 3.13 Parámetros del exploit usermap_script...................................................................47
Figura 3.14 Máquina infectada..................................................................................................48
Figura 3.15 Tipo de usuario obtenido........................................................................................49
Figura 3.16 Configuración de proxy en IceWeasel....................................................................51
Figura 3.17 OWASP ZAP interceptando petición GET “name=”..............................................51
Figura 3.18 Navegador IceWeasel mostrando el parámetro ingresado......................................52
Figura 3.19 Herramienta OWASP ZAP y Cross Site Scripting reflejado..................................52
Figura 3.20 Cross Site Scripting reflejado en el navegador.......................................................53
Figura 3.21 Incluyendo un mensaje en la base de datos............................................................54
Figura 3.22 Extracción de los mensajes de la base de datos......................................................54
Figura 3.23 Código rescatado de la base de datos por la aplicación y que será leído por el
navegador...................................................................................................................................55
Figura 3.24 Cross Site Scripting persistente..............................................................................55
Figura 3.25 Envenenamiento de la tabla ARP de la víctima......................................................58
Figura 3.26 Habilitar el reenvío de paquetes y generar el envenenamiento del router..............59
Figura 3.27 Captura de tráfico de la víctima mediante la técnica ARP Spoofing con Wireshark.
....................................................................................................................................................59
Figura 3.28 Resultado de la ejecución de la herramienta driftnet..............................................60
Figura 3.29 Resultado de la ejecución de la herramienta URLSnarf.........................................60
Figura 3.30 Resultado de la ejecución de la herramienta dsniff................................................61
Figura 3.31 Resultado de la orden nmap sobre el equipo objetivo............................................62
Figura 3.32 Servicio Web corriendo en Kioptrix3.....................................................................63
Figura 3.33 URL modificada para lograr encontrar un error por parte de la base de datos.......63
Figura 3.34 Mensaje de error de la base de datos......................................................................63
Figura 3.35 Comando sqlmap usando la funcion - -tables.........................................................64
Figura 3.36 Resultado de la ejecución del comando sqlmap.....................................................64
Figura 3.37 Ejecución del comando sqlmap con la funcion - -dump........................................65
Figura 3.38 Contraseñas y usuarios encontrados con la herramienta sqlmap............................65
Figura 3.39 Conexión ssh al servidor Kioptrix3........................................................................65
Figura 3.40 Conexión legítima hacia un servidor......................................................................67

X
Figura 3.41 Inundación Sync-Flood...........................................................................................67
Figura 3.42 Resultados del uso del comando nmap hacia la máquina objetivo.........................68
Figura 3.43 Test para comprobar el tiempo que mantiene una conexión abierta el servidor.....69
Figura 3.44 Resultado de la ejecución de la comando lbd sobre la máquina objetivo..............69
Figura 3.45 Parámetros para la ejecución del script slowloris.sh..............................................70
Figura 3.46 Creación de peticiones por la herramienta slowloris.pl..........................................70
Figura 3.47 Denegación de servicio Web hacia la dirección IP 192.168.1.97...........................71
Figura 4.1 Recursos disponibles ejecutando Kali-Linux y una máquina virtual.......................75
Figura 4.2 Recursos consumidos al realizar el ataque de fuerza bruta......................................75

XI
Introducción
El Hacking Ético aparece como una parte de una solución potencial para la seguridad en
Internet que se encuentra quebrantada. El Hacking Ético trata de arreglar un sistema
comprometido haciéndole pruebas destructivas las cuales tienen un historial de éxito para
muchos casos, pero también es cierto que esta técnica no es la única que se debe utilizar para
asegurar un sistema informático. Una planificación regular de auditorías, más un sistema de
detección de intrusos, más un buen sistema de prácticas administrativas y herramientas de
software de seguridad para los equipos, son partes esenciales de la seguridad de una
organización. Una sola falla en cualquiera de esas áreas puede ser una exposición directa de la
organización a vandalismo cibernético, pérdidas en los recursos o algo peor. Los beneficios de
entrenar hackers éticos lejos de riesgos asociados, tienen un fin específico: contrarrestar el
daño que puede causar un hacker malicioso en una organización de tal manera que las
vulnerabilidades sean mitigadas antes de que sean explotadas.
Esta investigación de tesis llevará al lector al punto de vista del pentester, con la idea de
introducirle en aspectos técnicos y a la vez escenificar situaciones reales que puedan
simplificar el proceso de aprendizaje del mismo. Las pruebas de concepto que se detallan, son
situaciones y escenarios que fácilmente se pueden encontrar en empresas y organizaciones
durante el proceso de pentesting; pero en este caso implementadas en laboratorio virtual.
En este trabajo de tesis, luego de realizar una introducción al tema del pentesting, se abordará
de manera resumida el enfoque al que están dirigidos los servicios de Hacking Ético, su
definición, su importancia y los beneficios que pueden aportar. Finalmente se analizan las

1
principales metodologías que existen en la actualidad para desarrollar estas tareas, capaces de
garantizar una correcta ejecución y elevar los niveles de calidad en la organización, al
implementar en las pruebas de concepto ejemplos de ataques en cada una de las fases que
implica hacer un test de intrusión, además de que se proporciona una breve descripción de
cada una de ellas.
Durante el primer capítulo se aborda la problemática que representa la seguridad informática a
nivel organizacional y los daños que una organización puede sufrir al no implementarse
correctamente medidas adecuadas de seguridad, así mismo se hace énfasis en la importancia
que trae consigo este trabajo a través de sus objetivos generales, tomando como referencia
investigaciones previas, sobre el tema de seguridad informática, que permitieron concluir con
éxito esta tesis.
En el segundo capítulo se define el concepto de Hacking Ético y la importancia que representa,
junto con algunas otras definiciones importantes sobre seguridad informática, se realiza una
introducción al concepto de pentesting donde se explica la importancia que representa para la
salvaguarda de la información en una organización, además de detallar cada una de las fases
que conlleva este tipo de evaluaciones; se describe, de manera general, los puntos más
importantes del sistema operativo Kali-Linux, la importancia que representa en el mundo de la
seguridad y sus componentes, así mismo se explica la arquitectura del framework Metasploit,
que es la herramienta más utilizada en esta investigación de tesis.
Durante el tercer capítulo se describe la implementación del entorno de pruebas virtualizado,
así como las pruebas de ataque realizadas. Las pruebas realizadas consistieron en ataques a
servicios y aplicaciones implementadas en diversos sistemas operativos, con la finalidad de
encontrar y aprovechar las vulnerabilidades en fallos de configuración así como en
vulnerabilidades inherentes en las mismas aplicaciones, mismas que se pueden subsanar
tomando en cuenta algunas de las recomendaciones dichas en este capítulo.
En el cuarto capítulo se detallan los resultados obtenidos durante la ejecución de los distintos
tipos de ataques usando las herramientas embebidas dentro del sistema operativo Kali-Linux,
evaluando la complejidad y eficiencia de cada uno de éstos, sobre los distintos servicios
objetivo.

2
Finalmente en el quinto capítulo, se describen los puntos más importantes durante la
realización de este trabajo de tesis, y de manera principal, se justifican los puntos establecidos
como objetivos para la elaboración de esta tesis.

3
Capítulo I
Antecedentes
1.1 Planteamiento del problema.
Todo sistema informático está expuesto a una gran cantidad de amenazas que hacen uso de la
enorme cantidad de vulnerabilidades detectadas a diario, muchas de estas vulnerabilidades no
son reportadas o los administradores de sistema no tienen conocimiento de su existencia, por
lo que el riesgo de que sean explotadas crece, generando con esto problemas de seguridad en
los sistemas informáticos de las organizaciones al dejarlos expuestos a usuarios maliciosos que
pueden causar daños a los activos de una organización.
Existen organismos a nivel internacional que ayudan en la difusión de información sobre las
diversas vulnerabilidades detectadas y los incidentes de seguridad más significativos, dentro
de estas organizaciones podemos mencionar al: CERT (Computer Emergency Response
Team); CVE-MITRE, sitio que se encarga de identificar de forma única a cada una de las
vulnerabilidades detectadas y reportadas. Es importante conocer estas vulnerabilidades y tener
la posibilidad de explotarlas bajo un ambiente seguro y autorizado.
Una forma de adquirir la habilidad adecuada para realizar análisis de vulnerabilidades a un
sistema informático en cada una de sus componentes, tales como sistemas operativos,
aplicaciones, protocolos de comunicaciones, configuraciones, usuarios, políticas, etc., se puede

4
lograr mediante la implementación de un entorno virtual, por lo que en este proyecto de tesis
se plantea la propuesta de llevar a cabo esta implementación virtualizada de sistemas
operativos Linux y Windows, para realizar pruebas de penetración utilizando diversas
herramientas ya desarrolladas y que se encuentran embebidas dentro de la distribución Kali-
Linux, con la finalidad de obtener una metodología ordenada del proceso que se debe seguir
para la realización de pentesting.
1.2 Justificación.
Los entornos virtualizados permiten simular ambientes reales de operación para detectar
problemas sin afectar la operación de los sistemas que se encuentran activos, mediante un
servidor de pentesting es posible realizar pruebas de penetración a diversos sistemas
operativos y servicios de red que nos ayudarán a entender y aprender del procedimiento que un
atacante real lleva a cabo sobre los sistemas informáticos.
A través de los resultados obtenidos será posible escribir una metodología adecuada que puede
puede ayudar a los responsables de sistemas a aprender sobre los ataques reales hacia los
sistemas que tienen bajo su responsabilidad, y se podrá lograr también incrementar el nivel de
concientización sobre la problemática de seguridad que representa brindar servicios a través
sistemas informáticos implementados en las redes de datos.
1.3 Objetivos.
1.3.1 Objetivo general.
Detectar y explotar vulnerabilidades mediante el uso de Hacking Ético, sobre los principales
servicios de red usados para la transferencia de información, utilizando como entorno de
trabajo un laboratorio virtual de pentesting con el sistema operativo Kali-Linux.
1.3.2 Objetivos específicos.
• Analizar y comprender la técnica de Hacking Ético y su aplicación en los servicios de
una red al momento de explotarla.
• Realizar un diagnostico de los servicios existentes sobre una red.

• Realizar ataques a diferentes servicios de red instalados en sistemas operativos


virtuales.

5
• Proponer la aplicación de Hacking Ético para detectar vulnerabilidades en los servicios
de red que más se ocupan en una organización.
1.4 Hipótesis.
Es posible utilizar las técnicas de Hacking Ético para detectar vulnerabilidades en las
aplicaciones que corren en un servidor de pentesting y con esto redactar una metodología
ordenada de pruebas de penetración a diferentes servicios de red.
1.5 Estado del arte
1.5.1 Advanced Penetration Testing for Highly Secured Enviroments. [10]
Las pruebas de penetración se enfrentan a una combinación de firewalls, sistemas detectores
de intrusos, sistemas endurecidos y equipos de analistas bien informados sobre los datos
recogidos por los sistemas de gestión en seguridad. En un entorno como éste solamente se
ejecutan herramientas automatizadas que típicamente darán pocos resultados.
El objetivo de esta investigación es proporcionar una orientación en ir más allá del análisis
automatizado básico, por lo tanto se obtiene un paso más que puede ser utilizado para asumir
la compleja y difícil tarea de medir con eficacia toda la superficie de ataque de un entorno
tradicionalmente asegurado. Utiliza herramientas y recursos sólo de libre disposición para
enseñar estos conceptos y una de estas herramientas que ocupan para las pruebas de
penetración es la conocida distribución BackTrack, ya que contiene la mayor parte de las
herramientas para simular una prueba de penetración.
También provee instrucciones paso a paso en como emular un entorno de alta seguridad en su
propio equipo usando VirtualBox, pfSense, Snort y tecnologías similares. Esto le permite
practicar lo que se va abarcando a lo largo de la investigación sobre un ambiente seguro y
también se tiene la ventaja de presenciar las respuestas por parte de los equipos de seguridad
mientras se realizan las pruebas de penetración.
Esta investigación presenta un reto en el que se va a utilizar el laboratorio virtual para simular
pruebas de penetración que son: Reconocimiento, Exploración, Explotación, Post-Explotación,
Documentación y Reportes. Estas pruebas deben de ser capaces de explicar las tácticas de
mitigación con sus clientes ya que a lo largo de esta investigación se evaluarán diversas
técnicas y también la eficiencia de cada una de éstas.

6
Al usuario final le proporciona una introducción al anonimato al momento de hacer una prueba
de penetración. Se aprenderá como determinar efectivamente el alcance de la prueba, así como
donde colocar los límites, y esto lleva a analizar las técnicas de priorización sobre el entorno
con el fin de no dañar equipos de terceros. Le guiará a través de los métodos de recolección de
datos que suelen evitar el desencadenamiento de alertas de seguridad. Se centra en las diversas
estrategias de reconocimiento e incluso de como navegar en la Deep Web y sitios especiales
para encontrar información a cerca del objetivo.
Describe las actividades llevadas a cabo después de que un ataque con éxito se ha completado
además de que cubre una escalada de privilegios, funciones avanzadas de meterpreter, la
creación de cuentas con privilegios sobre los diferentes tipos de sistemas operativos y limpiar
las huellas después de salir de un sistema comprometido.
1.5.2 Metasploit. The Penetration Tester's Guide. [9]
El framework Metasploit por mucho tiempo ha sido una de las herramientas más extensamente
usadas por los profesionales de la seguridad informática, pero por mucho tiempo poca
documentación también existía acerca de este framework. Esta investigación se escribe con la
intención de ayudar a los usuarios finales en convertirse en profesionales competentes de la
seguridad y fortalece el planteamiento de que Metasploit no sólo es una herramienta de
análisis, sino que es un completo framework que provee la infraestructura que se necesita para
automatizar rutinas y complejas tareas relacionadas con la seguridad informática.
En este trabajo se establece una metodología muy completa de las diferentes maneras en que
Metasploit se puede utilizar en las pruebas de penetración y en varios puntos se explican las
diferentes herramientas incluidas en el framework, incluyendo las de terceros, y algunas de
éstas, escritos por los autores de este libro que ocupan para las pruebas de penetración.
Uno de los objetivos principales a lo largo de esta investigación es proveer un tutorial útil para
los principiantes y una referencia para los profesionales, también, un objetivo más es hacer que
el usuario final se sienta cómodo al usar el framework Metasploit, mostrando y enseñando las
más avanzadas técnicas de ataque, y asegurarse que el usuario pueda aplicar estas técnicas con
responsabilidad. Cada parte de esta investigación está diseñada para construirse sobre la
anterior y para ayudarle al usuario construir sus habilidades como pentester.

7
1.5.3 Penetration Testing for Android Smartphones. [5]
Esta investigación muestra que el uso de los dispositivos inteligentes con sistema operativo
Android ha aumentado rápidamente en los últimos años y ésto es debido a su funcionalidad
rica y versátil pues ya no sólo son utilizados para comunicaciones de voz, sino por otras
funcionalidades como localizador de personas, asistentes personales, servicios de Internet para
acceder a redes sociales, sitios de entretenimiento, banca electrónica, lectura de libros
electrónicos o reuniones en línea, sin embargo esta diversidad de prestaciones que ofrecen los
dispositivos mediante el sistema operativo Android también puede ser aprovechado por
atacantes maliciosos para acceder a la información personal de los usuarios explotando las
vulnerabilidades generadas por la instalación de aplicaciones con errores de seguridad en su
desarrollo e implementación.
Esta investigación realiza pruebas de penetración sobre tres versiones diferentes del sistema
operativo Android, 2.3, 3.2 y 4.2 instalados en una máquina virtual. Para realizar las pruebas
de penetración se hizo uso de una aplicación diseñada e implementa en la distribución Kali-
Linux que permitió simplificar las técnicas de escaneo de puertos para la recopilación de la
información y el ataque de alguna vulnerabilidad encontrada.
Los resultados muestran que, si bien hay una mejora en la pila de seguridad de las diferentes
versiones de Android, la versión 4.2 es más segura que las versiones anteriores evaluadas, sin
embargo hay ciertas recomendaciones que los usuarios deben seguir con la finalidad de
minimizar los riesgos de sufrir ataques de seguridad dirigidos a sus dispositivos, estas
recomendaciones incluyen el instalar sólo aplicaciones después de revisar las fuentes de
descarga y los permisos que éstas requieren por parte del sistema operativo, así como instalar
un antivirus o antimalware y actualizarlo de forma periódica.
1.5.4 Hacking Ético para detectar Vulnerabilidades en los Servicios de la
Intranet del Gobierno Autónomo Descentralizado Municipal del Cantón de
Cevallos. [16]
Hoy en día la mayoría de las empresas, instituciones públicas, privadas y gubernamentales han
sufrido un sinnúmero de ataques informáticos especialmente en lo que al robo, alteración y
modificación de la información se refiere, por lo que se han visto en la necesidad de tomar

8
medidas de seguridad para salvaguardar confidencialmente su información.
El objetivo de este trabajo de investigación es descubrir las deficiencias relativas a la
seguridad y las vulnerabilidades de los sistemas informáticos, analizarlas, calibrar su grado de
riesgo y peligrosidad y, recomendar las posibles soluciones más apropiadas para cada una de
ellas. Por tal motivo usan el Hacking Ético para detectar las vulnerabilidades en los servicios
de la Intranet del gobierno Autónomo Descentralizado Municipal del Cantón de Cevallos y por
tal razón en esta investigación se exponen las técnicas que permitirán detectar a tiempo las
vulnerabilidades existentes, brindar posibles soluciones para tratar de asegurar los servicios y
por ende conseguir beneficiar al Gobierno donde se aplica la evaluación.
Si no se aplica el Hacking Ético para detectar vulnerabilidades en los servicios aumentan las
inseguridades a nivel de los servicios de la Intranet ocasionando alteraciones en la
información, robo de información, filtración de información, etc.
Durante la investigación seleccionan las herramientas de Hacking Ético bajo software libre
que los hackers comúnmente utilizan, esto para realizar pruebas de intrusión en los servidores
de la Intranet del Gobierno a evaluar, además de elaborar un reporte técnico de las
vulnerabilidades encontradas y del grado de incidencia de éstas en la inseguridad de la
información en los servicios de la Intranet del Gobierno.
Al final de este trabajo se concluye que el Hacking Ético resulta una técnica adecuada para
detectar vulnerabilidades en los servicios de tecnologías de información de una organización,
permitiendo minimizar los riesgos de ataques que puedan dañar los bienes de una institución.
1.5.5. Why Johnny Can't Pentest: An Analysis of Black Box Web Vulnerability
Scanners. [15]
Escáneres de vulnerabilidad Web de caja negra (Black Box) son una clase de herramientas que
se pueden utilizar para identificar problemas de seguridad en aplicaciones Web. Estas
herramientas a menudo se comercializan como “point-and-clic pentesting”, herramientas que
evalúan de forma automática la seguridad de Aplicaciones Web con poco o ningún apoyo
humano. Estas herramientas otorgan el acceso a una Aplicación Web de la misma manera que
hacen los usuarios, y, por lo tanto tiene la ventaja de ser independiente de la tecnología
concreta utilizada para implementar la Aplicación Web. Sin embargo, estas herramientas deben

9
ser capaces de acceder y probar diferentes componentes de la aplicación, que a menudo se
ocultan detrás de las formas, como los vínculos generados en JavaScript, y las aplicaciones
Flash.
En este trabajo se presenta una evaluación de 11 escáneres de vulnerabilidades Web de caja
negra (Black-Box), tanto comerciales como de código abierto. La evaluación compone
diferentes tipos de vulnerabilidades con diferentes retos a las capacidades de rastreo de las
herramientas. Estas pruebas se integran en una aplicación Web realista. Los resultados de la
evaluación muestran que el rastreo es una tarea tan crítica y desafiante a la capacidad general
para detectar vulnerabilidades como las técnicas de detección de vulnerabilidades a sí mismos,
y que muchas clases de vulnerabilidades son completamente ignorados por estas herramientas,
y por lo tanto se requiere de investigación para mejorar la detección automatizada de estas
fallas.
1.6 Metodología.
Materiales.
El uso de software libre para este proyecto se basa principalmente en que ya existen las
herramientas necesarias para poder llevar acabo esta investigación.
1. Una computadora con las siguientes especificaciones:
16 GB de RAM.
Procesador Intel i3 a 3.10 Ghz o superiores.
Disco duro de 500 GB
2. Sistemas operativos.
- Windows
Windows XP (SP1, SP2, SP3), Windows 7
- Linux
Ubuntu (11.10, 12.04, 12.10)
Kali Linux
Kioptrix (1,2,3,4)
Metasplotaible (1,2)

10
LampSecurity
Damm Vulnerable Linux (DVL)
pWnOs
Owaspbwa
3. Documentación sobre herramientas de Hacking Ético.
Libros
Revistas
Presentaciones
Videos
Cursos en línea
Métodos.
La forma de trabajar será a través de un laboratorio de pentesting, en el cual se tendrá la
posibilidad de desarrollar una configuración propia en un entorno virtual, con el fin de no
dañar ninguna computadora físicamente, evitando pérdidas de información almacenada en el
equipo.
Se trabajará con una metodología que ya está implementada y que tiene que ver mucho con las
pruebas de penetración para que éstas se realicen con el mayor éxito posible. Algunos puntos
importantes de la metodología son:
• Reconocimiento: Obtener la suficiente información posible sobre el objetivo.

• Exploración: Explorar el objetivo usando las herramientas adecuadas de escaneo.

• Explotación: Ejecutar los ataques apropiados con las herramientas adecuadas de


acuerdo a las deficiencias encontradas.
• Post Explotación: Una vez vulnerado el sistema, mantener el acceso para posteriores
evaluaciones.
• Documentación y reportes. Documentar todo lo descubierto, como fue descubierto, las
herramientas que se ocuparon, las vulnerabilidades que se explotaron, el proceso de
actividades realizadas, etc.

11
1.7 Alcances y limitaciones.
En este trabajo de tesis se realizarán pruebas de penetración a servicios de red en un entorno
virtualizado siguiendo un orden establecido para este tipo de actividad. Este trabajo se enfoca
a evaluar algunas herramientas embebidas dentro del sistema operativo Kali-Linux, no se
pretende probar herramientas de forma independiente dado que este sistema operativo, al tener
como propósito principal servir como una herramienta de trabajo a los profesionales e
investigadores en el área de seguridad informática, cuenta con las herramientas necesarias para
realizar las pruebas en un laboratorio virtualizado de pentesting, documentando cada una de
las pruebas realizadas, para que al final se tenga una metodología escrita basada en los
resultados de dichas pruebas.

12
Capítulo 2
Marco Teórico
2.1 Conceptos básicos de Seguridad Informática.
2.1.1 Seguridad Informática.
Un sistema de información puede tener un nivel variable de importancia dependiendo del
entorno en el que se encuentra (social, financiero, gobierno). En algunos casos es vital para la
supervivencia de una empresa, y por ello, debe ser protegido de los diversos tipos de
amenazas, además debe de estar a la vanguardia de los procesos de cambio, donde disponer de
información continua, confiable y en tiempo, constituye una ventaja fundamental.
Una de las formas de expresar la definición de seguridad informática, es como un conjunto de
medidas de prevención, detección y corrección, orientadas a proteger la confidencialidad, la
integridad y la disponibilidad de los recursos informáticos.
A todo el proceso de evaluación de riesgos, diseño e implementación de la protección se
conocen como “proceso de seguridad”. [12]
Entendemos por seguridad la salvaguarda de las propiedades básicas de la información:
• Integridad: Los componentes del sistema sólo pueden ser creados y modificados por
los usuarios autorizados.

13
• Confidencialidad: Los componentes del sistema sólo son accesibles por los usuarios
autorizados.
• Disponibilidad: Garantiza la fiabilidad y el acceso oportuno a los datos y recursos a
personas autorizadas.
• Autenticación: Proceso que se utiliza en los mecanismos de control de acceso con el
objetivo de verificar la identidad de un usuario, dispositivo o sistema mediante la
comprobación de credenciales de acceso.
En las últimas décadas han surgido ciertos problemas que con el desarrollo de las tecnologías
de la información, las redes de comunicaciones y la Internet, van adquiriendo cada vez mayor
relevancia, lo más característicos son los relativos a la seguridad en éstas. Al igual que esta alta
conectividad nos permite desarrollar aplicaciones útiles, también proporciona medios a los
usuarios maliciosos para reclutar y darle mal uso a los sistemas informáticos y a los medios de
conexión alrededor de todo el mundo, esto para diversas actividades ilícitas, aprovechando sus
vulnerabilidades inherentes.
2.1.2 Auditoría Informática.
La informática hoy en día, está subsumida en la gestión integral de una empresa, y por eso las
normas y estándares propiamente informáticos deben estar sometidos a los generales de la
misma. La auditoría en informática se desarrolla en función de normas, procedimientos y
técnicas definidas por institutos establecidos a nivel nacional e internacional.
No se abordarán instituciones específicas que se encargan de formular estándares, porque esta
investigación no está orientada a ese tema, no obstante, conocer los aspectos generales de la
auditoría informática, hará que se tenga un panorama más claro en lo que a seguridad
informática se refiere.
Así, la auditoría informática es:
• Una evaluación que se realiza con carácter objetivo, crítico, sistemático y selectivo con
el fin de evaluar la eficacia y eficiencia del uso adecuado de los recursos informáticos,
de la gestión informática y si están brindando el soporte adecuado a los objetivos y
metas de la organización. [1]

14
La auditoría informática implica varios procesos, como recoger, agrupar y evaluar evidencias
para determinar si un sistema informatizado salvaguarda los activos, mantiene la integridad de
los datos, lleva a cabo eficazmente los fines de la organización y utiliza eficientemente los
recursos. De este modo la auditoría informática sustenta y confirma la consecución de los
objetivos tradicionales de la auditoría. [1]
• Objetivos de protección de activos e integridad de datos.

• Objetivos de gestión que abarcan, no solo la protección de activos, sino también los de
eficacia y eficiencia.
Y comprende no sólo la evaluación de los equipos de cómputo, de un sistema o procedimiento
en específico, sino que además habrá de evaluar los sistemas de información en general desde
sus entradas, procedimientos, controles, archivos, seguridad y obtención de información. [11]
2.1.3 Políticas de Seguridad Informática.
Una política de seguridad es un conjunto de declaraciones generales dictadas por la alta
dirección (o un consejo o comité de políticas seleccionado) que dicta el rol que juega la
seguridad dentro de la organización. Una política de seguridad puede ser una política de
organización, una política sobre temas específicos, o una política específica del sistema. En
una política de seguridad de la organización, la gestión establece cómo un programa, asigna
responsabilidades, muestra el valor estratégico y táctico de la seguridad, y describe como
deben ejecutarse ciertas acciones. Esta política debe abordar leyes relativas, reglamentos y
cuestiones de responsabilidad, y la forma en que han de ser satisfechas, de tal manera que
proporcionen un alcance y dirección de todas las futuras actividades de seguridad dentro de la
organización. [9]
Las políticas de seguridad de la organización tienen varias características importantes que
deben ser entendidas y aplicadas. [13]
• Los objetivos empresariales deben impulsar la creación, implementación y aplicación
de la política. La política no debe dictar los objetivos del negocio.
• Debe ser un documento de fácil comprensión que se utiliza como punto de referencia
para todos los empleados y directivos.

15
• Debe desarrollarse y utilizarse para integrar la seguridad en todas las funciones y
procesos del negocio.
• Debe ser revisado y modificado como una empresa que cambia, por ejemplo mediante
la adopción de un nuevo modelo de negocio, una fusión con otra compañía, o el
cambio de propiedad.
• Debe ser creado con la intención de tener las políticas en el lugar por varios años a la
vez. Esto ayudará a asegurar políticas con visión de futuro suficiente para hacer frente
a los posibles cambios que puedan surgir.
• Deben de someterse a revisión de manera regular para corregir los incidentes que se
han producido desde el último examen y revisión de las mismas.
• El nivel de profesionalismo en la presentación de las políticas refuerza su importancia,
así como la necesidad de adherirse a ellos.
Un protocolo debe ser también desarrollado para aquellos que optan por no cumplir con las
políticas de seguridad, de manera que exista un método estructurado de respuesta al
incumplimiento. Esto establece un proceso que los demás puedan entender y por lo tanto
reconocer no sólo lo que se espera de ellos, sino también lo que se puede esperar como
respuesta a su incumplimiento.
A las políticas de organización también se les conoce como las políticas de seguridad
principales. Una organización tendrá muchas políticas que se deben establecer de una manera
jerárquica: la política de la organización principal es la de más alto nivel y luego están las
políticas que se ocupan de las cuestiones de seguridad en particular. A estos se le conocen
como políticas sobre temas específicos o política funcional.
Una jerarquía común de las políticas de seguridad se describe a continuación. [13]
• Política organizacional.

◦ Política de uso aceptable.

◦ Política de gestión de riesgos.

◦ Política de gestión de vulnerabilidades.

◦ Política de protección de datos.

16
◦ Política de control de acceso.

◦ Política de seguridad física.

◦ Política de e-mail.

Una política específica del sistema representa las decisiones de la administración que son
específicas de las computadoras actuales, redes y aplicaciones. Una organización puede tener
una política específica del sistema que expondrá; como se debe proteger una base de datos que
contiene información sensible, como poder acceder a ella, y como debería llevarse a cabo una
auditoría. También puede tener una política específica del sistema que expondrá cómo las
computadoras portátiles deben ser bloqueadas y gestionadas. [13]
Las políticas se escriben en términos amplios para cubrir muchos temas de manera general. Se
necesita mucha más granularidad para apoyar efectivamente la política, y esto sucede con el
uso de los procedimientos, las normas, las directrices y las líneas de base.
Se puede decir entonces que implícitamente al generar políticas de seguridad informática para
una empresa, se está ejerciendo el Derecho Informático, y éste se entiende como el conjunto
de principios y normas que regulan los efectos jurídicos nacidos de la interrelación de sujetos
en el ámbito de la informática y sus derivaciones, especialmente en el área denominada
“tecnología de la información”. Esta definición va de la mano al momento de realizar un
pentesting para alguna organización, ya que se considera al derecho informático para delimitar
los alcances y objetivos del test de intrusión. [11]
2.1.4 Terminología aplicada a la Seguridad Informática.
Durante esta tesis es necesario conocer algunos términos específicos que hacen referencia a la
seguridad informática, mismos que estaremos hablando constantemente, y a continuación
expondremos los más importantes pero a lo largo de la investigación definiremos algunos más.
Hacker: La palabra Hacker es un neologismo, que en la informática se utiliza para referirse a
un gran experto en algún área de dominio.
Cracker: Proviene del vocablo ingles crack (romper). Aplicado a la informática, es alguien que
viola la seguridad de un sistema de forma similar a un Hacker, solo que ilegalmente y con
diferentes fines. Sus conocimientos se aplican directamente a violar la seguridad del software.

17
Las palabras “vulnerabilidad”, “amenaza”, “riesgo”, y “exposición” a menudo son utilizadas
de manera indistinta, a pesar de que tienen diferentes significados. Es importante entender la
definición de cada palabra y las relaciones entre los conceptos que representan.
Una vulnerabilidad es la falta de una contramedida o una debilidad en una contramedida que
está en su lugar, puede ser un software, hardware, un procedimiento o la debilidad humana que
puede ser explotada, un servicio que se ejecuta en el servidor, aplicaciones sin parches o
sistemas operativos, un punto de acceso inalámbrico sin restricciones, un puerto abierto en un
servidor de seguridad y la seguridad física débil que permite que cualquiera pueda entrar en
una sala de servidores y estaciones de trabajo. [13]
Una amenaza es cualquier peligro potencial que está asociada con la explotación de una
vulnerabilidad, la amenaza es que alguien, o algo, identificará una vulnerabilidad específica y
puede usarla en contra de la compañía o individuo. La entidad que se aprovecha de una
vulnerabilidad se conoce como agente de amenaza. Un agente de amenaza podría ser un
intruso en la red que ingresa a una computadora a través de un puerto en un firewall, un
proceso de acceso a los datos de una manera que viola la política de seguridad, un tornado
acabando con una instalación, o un empleado que por un error involuntario podría exponer
información confidencial.
Un riesgo es la probabilidad de que un agente de amenaza aproveche la vulnerabilidad y el
impacto en el negocio correspondiente. Si un servidor de seguridad tiene varios puertos
abiertos, hay una mayor probabilidad de que un intruso use uno para acceder a la red en un
método no autorizado. Si los usuarios no son educados sobre procesos y procedimientos, hay
una mayor probabilidad de que un empleado va a cometer un error no intencionado que puede
destruir los datos. Si un sistema de detección de intrusos (Intrusion Detection System IDS) no
está implementado en una red, existe un mayor riego de que un ataque pasará desapercibido
hasta que sea demasiado tarde. El riesgo vincula la vulnerabilidad, amenaza y probabilidad de
explotación al impacto en el negocio resultante. [13]
Una exposición es una instancia de estar frente a posibles daños tanto físicos como no físicos.
Por ejemplo, los no físicos, si la administración de contraseñas es laxa y las reglas de
contraseñas no se hacen cumplir, la compañía se expone a la posibilidad de obtener las

18
contraseñas de los usuarios y utilizarlos de manera no autorizada. Mientras que los físicos
suceden si, por ejemplo, una empresa no tiene su cableado inspeccionado y no pone medidas
proactivas de prevención de incendios en el lugar, se expone a los incendios potencialmente
devastadores. [13]
Un control, o contramedida, se pone en marcha para mitigar el potencial de un riesgo. Una
contramedida puede ser una configuración de software, un dispositivo de hardware, un
procedimiento que elimina una vulnerabilidad o que reduce la probabilidad de que un agente
de amenaza pueda explotar una vulnerabilidad. Los ejemplos de contramedidas incluyen
gestión de contraseña seguras, firewalls, guardias de seguridad, mecanismos de control de
acceso, cifrado de datos y formación en seguridad. [13]
Un exploit viene de “to exploit – aprovechar” y es un código escrito con el fin de aprovechar
un error de programación para obtener diversos privilegios. [13]
Un framework, en el desarrollo de software, es una estructura de soporte definida en la cual
otro proyecto de software puede ser organizado y desarrollado. Típicamente un framework
puede incluir soporte de programas, librerías y un lenguaje de scripting entre otros software
para ayudar a desarrollar y unir los diferentes componentes de un proyecto. [13]
2.1.5 Organismos oficiales reguladores en temas de Seguridad Informática.
2.1.5.1 CERT
Ubicada en la Universidad Carnegie Mellon en Pittsburgh, Pensilvania, en el Instituto de
Ingeniería de Software. El programa Equipo de Respuesta ante Emergencias Informáticas
(CERT por sus siglas en ingles Computer Emergency Response Team), durante una década, ha
estudiado la manera de prevenir, detectar y responder a las amenazas internas dentro de una
organización. Se trata de un grupo de expertos responsables del desarrollo de medidas
preventivas y reactivas ante incidencias de seguridad en los sistemas de información. Un
CERT estudia el estado de seguridad global de redes y computadoras, y proporciona servicios
de respuesta ante incidentes a víctimas de ataques en la red, publica alertas relativas a
amenazas y vulnerabilidades y ofrece información que ayude a mejorar la seguridad de estos
sistemas. [14]

19
2.1.5.2 NIST-CSD
La División de Seguridad Informática (por sus siglas en inglés CSD, The Computer Security
Division) es una división del Instituto Nacional de Estándares y Tecnología (por sus siglas en
Inglés NIST, National Institute of Standars and Technology). La misión del CSD es proveer
estándares y la tecnología para proteger sistemas de información contra amenazas a la
confidencialidad de la información, la integridad de la información y los procesos, y la
disponibilidad de la información y servicios con el fin de fomentar la confianza en las
tecnologías de la información. [23]
2.1.5.3 CVE-MITRE
Vulnerabilidades y Exposiciones Comunes (Common Vulnerabilities and Exposures), fue
lanzado en 1999 cuando la mayoría de las herramientas de seguridad de la información utilizan
sus propias bases de datos con sus propios nombres para las vulnerabilidades de seguridad.
CVE es un diccionario de nombres comunes para las vulnerabilidades de seguridad de la
información de conocimiento público. Los identificadores de CVE hacen más fácil compartir
datos entre bases de datos y herramientas de seguridad de red por separado, y proporcionar una
base para la evaluación de la cobertura de las herramientas de seguridad de una organización.
Si un informe de una de sus herramientas de seguridad incorpora identificadores CVE, a
continuación, puede rápidamente y con precisión acceder a la información del arreglo en una o
más bases de datos compatibles con CVE separadas para remediar el problema. [21]
2.1.5.4 INTECO-CERT
El Instituto Nacional de Tecnologías de la Comunicación (INTECO), tiene la misión de
reforzar la ciberseguridad, la confianza y la protección de la privacidad en los servicios de la
sociedad de la información, aportando valor a ciudadanos, empresas, administración, red
académica y de investigación, sector de las tecnologías de la información y las
comunicaciones y sectores estratégicos en general. En este sentido el INTECO-CERT cuya
finalidad es servir de apoyo preventivo y reactivo en materia de seguridad y tecnologías de la
información y la comunicación tanto en entidades como a ciudadanos. Tiene vocación de
servicio público sin animo de lucro y ofrece ayuda que, en todos los casos, es gratuita y de
rápida gestión. [17]

20
2.2 Hacking Ético.
2.2.1 Historia.
Durante la década de los 90, cuando algunas de las organizaciones apenas comenzaban a
incrementar los procesos informatizados dentro de su sistema de información, sus propios
administradores y analistas técnicos eran los encargados de buscar claras falencias o brechas
de seguridad en el escenario para solucionarlas como podían. En ese entonces, la mayoría no
tenía una noción madura acerca de la seguridad de la información o de las intrusiones de
terceros no autorizados en sus sistemas. A medida que pasó el tiempo estas organizaciones se
multiplicaron de manera notable y se informatizaron aún más, incluso tomando a Internet
como plataforma de sus movimientos de información. De este modo, se hicieron fluidas las
comunicaciones interpersonales, intersucursales, transacciones o flujo digital de todo tipo y
nivel de importancia, dejando, al mismo tiempo, muchos más datos expuestos a terceros, como
nunca antes había sucedido.
Como resultado de ello y debido a que grandes casos de intrusión se dieron a conocer al
público en general a través de los medios de prensa (aunque muchos no salen a la luz para
salvaguardar una imagen institucional de organización confiable), se hizo evidente la falta de
algún servicio profesional que imitara esos ataques o capacitara a su personal con las mismas
metodologías que utiliza un intruso. De esa manera se podían evaluar las condiciones reales de
seguridad en las que se encontraba una organización y, de existir agujeros en el sistema o
brechas potenciales, descubrirlos y solucionarlos de forma preventiva.
Los accesos no autorizados, junto a una gama de vulnerabilidades y todo tipo de amenazas
relacionadas o dirigidas hacia la información, estaban a la orden del día. Desde hace algunos
años antes, muchos especialistas ligados a la seguridad informática venían estudiando y
practicando metodologías de intrusión en sus trabajos, laboratorios o casas. Así comenzaron a
brindar a las organizaciones un servicio a modo de proveedores externos o contratados y, para
darle un nombre medianamente formal, lo llamaron Ethical Hacking (Hacking Ético o Hacker
Ético). Este concepto incluye las denominaciones de analizador de vulnerabilidades
(vulnerability scanning), pruebas de penetración (penetration test), mejor denominado como
analizador de seguridad en red (network security assessment) que posteriormente serán

21
definidos.
Había una clara demanda de seguridad y donde existe demanda aparece una oferta; por lo
tanto, allí mismo nace un mercado. Apenas meditaban los años 90, ya asomaban épocas de e-
commerce, comenzaba la integración de las pequeñas y medianas empresas de todo el mundo a
la red (e-organizaciones), a la que poco a poco se sumaba el público en general. Aparecía
malware más sofisticado, se publicaban novedosas técnicas de intrusión o explotación de
vulnerabilidades y no había demasiada conciencia sobre la administración de servidores.
Al mismo tiempo jóvenes de todo el mundo se colaban en Internet engañando a las centrales
telefónicas (por cuestión de gastos) de sus países para divertirse con los sistemas informáticos
e intercambiar conocimientos con sus pares al otro lado del mundo. De ese grupo de gente
saldría lo que en esos días serían algunos de los mejores profesionales de la seguridad, así
como también hábiles intrusos. [13]
2.2.2 ¿Qué es Hacking Ético?
Para emular la metodología de ataque de un intruso informático (hacker) y no serlo tiene que
haber ética de por medio, más allá de todas las condiciones, términos y activos que haya
alrededor del caso. Imaginemos que las autoridades de un banco contratan a alguien para que
simule un robo (no a mano armada, claro está) y de ese modo se pruebe la eficiencia de su
sistema de seguridad. Este supuesto ladrón profesional, luego de lograr su cometido, informa a
sus dueños en detalle cómo pudo hacerlo y cómo ellos deberían mejorar sus sistema de
seguridad para que no vuelva a pasar. Lógicamente, no se puede encargar de hacer esto una
persona sin ética, alguien inmoral, por lo tanto diremos que la ética implica que el trabajo y la
intervención del profesional en seguridad informática o de la información no comprometen de
ningún modo los activos de la organización, que son los valiosos datos con los que ella cuenta.
Para lograr algo así, se requieren elementos básicos: en principio, una metodología para
proceder. Esto es el resultado de un grupo de piezas previamente ensambladas: habilidades
personales de lógica y creatividad, técnicas propias de un analizador de seguridad de red
(network security assessment), reconocimiento o revelamiento de todos los componentes del
escenario y herramientas como un intérprete de comandos (shell), un navegador de Internet
(browser) y un editor de texto.

22
Por otro lado, se requiere autorización, que es el elemento más importante. Esta autorización
también tiene sus partes: un contrato de confidencialidad, coordinación, evaluación, procesos
por seguir y todas las características internas (por ejemplo, el compromiso de la gerencia con
el proyecto) o propias de las partes involucradas en el trabajo. [13]
Para resumir, veamos el proceso de Hacking Ético en pocas palabras: [13]
1. La organización desea saber si sus sistemas son realmente seguros.
2. Selecciona y contrata un servicio profesional de Hacking Ético.
3. Lo autoriza a realizar el trabajo mediante diversas pautas.
4. Planifican estratégicamente como se realizará y el alcance que tendrá.
5. El profesional luego de llevar a cabo los análisis preliminares, realiza su tarea imitando
al atacante real, pero sin comprometer dato alguno.
6. Luego, analiza los resultados.
7. Confecciona un reporte detallado para que la organización lo evalúe.
8. Soluciona lo vulnerable o mitiga el potencial para dejar el sistema más seguro.
9. Se adoptan políticas de control y seguimiento.
Ahora aplicaremos un nuevo compuesto de palabras, Hacker Ético (Ethical Hacker), a los
profesionales de la seguridad informática que utilizan sus conocimientos de hacking con fines
defensivos. La función del Hacker Ético será, por ende, determinar lo que un intruso puede
hacer sobre un sistema y la información, y velar por su protección.[2]
Cualquier persona que haya tenido la suerte de conocer a un verdadero Hacker Ético,
probablemente lo primero que haya sentido es una cuota de admiración, ya sea por lo que
saben, por lo que hacen, por sus valores o, tal vez, por la mera posibilidad de trabajar en algo
tan apasionante como es la seguridad (hablo por mi persona).
Un Hacker Ético será, seguramente, un experto en informática y sistemas, tendrá certeros
conocimientos sobre los sistemas operativos, sabrá sobre hardware, electrónica, redes,
telecomunicaciones y también programación en lenguajes de alto y bajo nivel. Además
entenderá sobre problemas relacionados con seguridad en temáticas tales como criptografía,
sistemas de control de acceso, las aplicaciones, la seguridad física y la seguridad

23
administrativa, además de que seguirá un estricto código de conducta, dado que de eso se trata
el concepto, pero no todo acaba aquí, el perfil no es una cosa estática y maciza, sino que
requiere de la constante renovación en busca de nuevos conocimientos, mucha investigación, y
prueba de herramientas. [2]
2.3 Kali-Linux y sus componenetes.
2.3.1 Panorama general de Kali-Linux.
Backtrack es una distribución de Linux basada en Ubuntu, creada por el equipo de Seguridad
Ofensiva (Offensive Security), con una amplia gama de herramientas para la seguridad y
auditoría informática, hábilmente clasificados y listos para usar. Su trayectoria comenzó justo
en el 2006 y durante 7 años fue mejorando mientras ganaba su lugar en la comunidad de la
seguridad, pero con cada nueva versión ésta se volvía más lenta, pesado e incluía cosas que
realmente muy pocas personas usaban. El equipo de Seguridad Ofensiva (Offensive Security)
estaba consciente de esta realidad y en el 2012 anunció que la versión 5r3 sería la última
versión de Backtrack, por tal la versión 6 de Backtrack pasaría a llamarse Kali-Linux. [4]
En marzo del 2013, el equipo de Seguridad Ofensiva (Offensive Security) fueron un paso
adelante y publicaron la evolución de Backtrack definitiva. Su nombre: Kali-Linux. El nombre
se lo atribuyen a diferentes elementos; la diosa Hindú del tiempo, el cambio y la destrucción y
muy probablemente debido al arte marcial filipino, todo estos de alguna manera relacionados
con la seguridad ofensiva. [4]
Kali-Linux es la más avanzada y versátil distribución de pruebas de penetración (penetration
tensting) y auditorias de seguridad. Es una completa reconstrucción de Backtrack, desde la
base hacia arriba, y se adhiere completamente a los estándares de desarrollo de Debian. Toda
la nueva infraestructura ha sido puesta en su lugar así como todas las herramientas fueron
revisadas y fueron embaladas. [24]
Aquí unas de las principales características de esta nueva distribución.
• Más de 300 herramientas para pruebas de penetración. [21]

• Kali-Linux, al igual que su predecesor Backtrack, es completamente gratis y siempre lo


será. [25]

24
• El instalador ocupa menos espacio que el de su antecesor Backtrack, adicionalmente
Kali-Linux se siente “más ligero” que Backtrack y es evidente que hace mejor uso de
recursos de procesador y memoria. [25]
• A diferencia de Backtrack que se basa en Ubuntu, Kali-Linux está basado directamente
en Debian y se adhiere a todos los estándares de desarrollo, lo que brinda una mayor
estabilidad. [25]
• Kali-Linux sigue el estándar de jerarquía de directorios (FSH por sus siglas en ingles
Filesystem Hierarchy Standard) de Linux, lo que hace más fácil para los usuarios el
identificar dónde se ubica un archivo del sistema. [25]
• Empaquetado flexible Debian de cada herramienta en Kali-Linux: Aquí es donde se ha
empleado la mayor parte del tiempo y esfuerzo. Una lucha implacable contra decenas
de empaquetados de herramientas útiles, asegurándose de que los mismos sean
compatibles con Debian. [21]
• Largo tiempo de empaquetado y mantenimiento de las herramientas. Muchas de las
herramientas en la distribución necesitan ser actualizadas. Esto significa empaquetar y
mantener los paquetes para tener la ultima versión disponible de muchas herramientas
que los usuarios necesitan, al día. [21]
• Completa flexibilidad en el entorno de escritorio. Los nuevos entornos de compilación
y el repositorio, permiten una completa flexibilidad en la generación de sus propias
imágenes del sistema operativo, con cualquier entorno de escritorio. [21]
• Amplio apoyo a dispositivos inalámbricos. Se construyó para que soporte tantos
dispositivos inalámbricos como sea posible, permitiendo que funcione correctamente
en una amplia variedad de hardware. [21]
• Kernel personalizado con parches de inyección. Esto como medida de seguridad al
momento de usar las inyecciones de paquetes sobre dispositivos inalámbricos. [21]
Desde la perspectiva del usuario final, lo más obvio sería el cambio en la base de sistema a
Debian y un sistema estándar de jerarquía de archivos. Esto significa que en lugar de tener que
navegar del directorio raíz /pentest, ahora se podrá llamar a cualquier herramienta desde

25
cualquier lugar del sistema, ya que cada aplicación se incluye en la ruta del sistema. [21]
2.3.2 Metasploit y sus componentes.
Para empezar a hablar del framework Metasploit (MSF), ésta se define como una herramienta
GNU escrita en el lenguaje de programación Perl, desarollada por Rapid7 y con utilización de
diversos lenguajes de programación como C, Python, ensamblador (ASM), etc., para el
desarrollo, testeo, mejora y penetración a diversos sistemas operativos. Existen 3 versiones de
Metasploit, entre ellas la “Community Edition” sobre la que vamos a basar esta investigación.
Las otras 2 versiones son “Metasploit Pro y Metasploit Express” que son versiones de paga.
[28]
Se llama Metasploit framework porque es todo un entorno de pruebas para diversas
plataformas, que trabaja con librerías, bases de datos, y diversos programas como shells,
codes, etc. Metasploit se ejecuta bajo una consola CYGWIN y trabaja con una base de datos en
la que se encuentra toda la lista de exploits y vulnerabilidades, lo único que se hace, es
indicarle a Metasploit que vulnerabilidad se utilizará, que sistema se va atacar, que tipo de
ataque se va a utilizar y datos diversos que utilizará para atacar al host objetivo. [28]
El framework Metasploit trabaja en 2 modalidades que es posible ejecutar en todas las
plataformas y la elección de una de éstas es cuestión de gustos y comodidad.
• Modo Web: Esta modalidad de Metasploit es una manera muy cómoda de trabajar ya
que aquí toda la interface es Web y no tienes que escribir mucho, todo lo demás
consiste en seleccionar opción por opción y al final presionar un botón de “Exploit”
para comenzar el ataque.
• Modo shell: Esta modalidad se maneja por secciones, para empezar a interactuar con
este modo, basta con escribir en la terminal “msfconsole”. Aunque es un poco más
complicado de usar, suele funcionar de una manera más rápida y a veces mejor.[28]
El MSF es una de las herramientas de auditoría más útiles disponibles gratuitamente para el
profesional de la seguridad hoy en día. Contiene una amplia gama de exploits de calidad
comercial y un extensivo entorno de desarrollo de éstos, pasando por las herramientas de
recolección de información y plugins de vulnerabilidad Web. El Metasploit framework provee
un entorno de trabajo verdaderamente impresionante, es mucho más que una colección de

26
exploits, es una infraestructura que se puede utilizar para necesidades específicas.
Metasploit incorpora un “conjunto” de herramientas (exploits, scanners, payloads, etc.) que
cubren perfectamente todas las fases de un test de intrusión (pentest), desde la adquisición de
información y reconocimiento, hasta el descubrimiento de vulnerabilidades, su explotación y
post-explotación. [7]
2.3.2.1 Arquitectura.
La arquitectura de Metasploit es muy compleja, es la unión de muchos módulos que tienen que
interactuar entre sí, como se muestra en la Figura 1.1, para poder hacer de éste una
herramienta que proporcione el entorno adecuado para realizar las pruebas de penetración
(pentesting) con el mayor éxito posible.

Figura 1.1. Arquitectura del framework Metasploit.

27
Sistema de archivos y bibliotecas.
El sistema de archivos de MSF se presenta de una manera intuitiva y es organizado por el
directorio. [7]
• Datos: Archivos editables utilizadas por Metasploit.

• Documentación: Proporciona documentación para el marco.

• Externo: Código fuente y las bibliotecas de terceros.

• lib: La “carne” de la base de código marco.

• Módulos: Los módulos actuales de Metasploit.

• Plugins: Plugins que pueden ser cargados en tiempo de ejecución.

• Scripts: Meterpreter y otros.

Librerías.
Rex.
• La librería básica para la mayoría de las tareas.

• Maneja sockets, protocolos, transformaciones de texto y otros.

• SSL, SMB, HTTP, XOR, Base64, Unicode.

MSF::Core.
• Proporciona la “base” de la API.

• Define el marco de Metasploit.

MSF::Base.
• Proporciona una “amigable” API.

• Proporciona API simplificada para su uso en el marco.

Módulos y Localizaciones.
Metasploit, tal como se presenta al usuario se compone de módulos.
Exploits.
• Definidos como módulos que utilizan payloads.

28
• Un exploit sin un payload es un módulo auxiliar.

Payloads, Encoders, Nops.


• Un payload se compone de código que se ejecuta remotamente.

• Los encoders se aseguran de que los payloads lleguen a su destino.

• Los Nops mantienen los tamaños de los payloads consistentes.

Localización de los Módulos.


Árbol Primario de Módulos.
• Se encuentran bajo $install/modules//

Árbol de Módulos Específicos del Usuario.


• Se encuentra bajo ~/.msf3/modules//

• Esta localización es ideal para conjuntos de módulos privados.

Metasploit Plugins
Los plugins trabajan directamente con la API.
• Manipulan el framework como un todo.

• Los plugins se enganchan en el subsistema de eventos.

• Automatizan tareas específicas que serían aburridas de hacer manualmente.

Los plugins solamente funcionan en la msfconsole.


• Los plugins pueden añadir nuevos comandos de consola.

• Extienden totalmente la funcionalidad del framework

Esta arquitectura está muy bien implementada y forma parte de uno de los frameworks mejor
desarrollados para la seguridad informática, su eficacia y eficiencia depende del ingenio de la
persona que lo esté utilizando.
2.4 Pruebas de Penetración (Penetration Test).
En esta sección vamos a analizar las distintas opciones al momento de evaluar la seguridad
desde una simple computadora, hasta una organización completa, y en función de la
profundidad y el alcance que se le quiera dar a dicha evaluación, se escogerá la mejor opción

29
disponible.
Es importante mencionar que ninguna evaluación vinculada con tareas de auditoría de
seguridad (en especial las de los servicios de Penetration Test y/o Ethical Hacking) debería ser
iniciada hasta que no se haya firmado un acuerdo legal que brinde a aquellos involucrados en
el proyecto, expresa autorización para llevarla a cabo.
2.4.1 ¿Qué es una prueba de penetración (Penetration Test)?
Antes de explicar el concepto de pruebas de penetración (Penetration Test) definiremos
primero el término de evaluación de vulnerabilidades (Vulnerability Assessment) para
sumarlos al de Ethical Hacking, previamente analizado.
Penetration Test (o Pentest) no es una auditoría de seguridad, donde se evalúa hasta que punto
está bien implementadas ciertas medidas, comúnmente alineadas con alguna norma o estándar.
No es un análisis de riesgo en el cual, en función de los activos de la organización, se analiza
cuál sería el impacto que tendrían las distintas amenazas respecto de ellos. Tampoco es una
evaluación de vulnerabilidades (Vulnerability Assessment).
El concepto de evaluación de vulnerabilidades (Vulnerability Assessment) es utilizado en un
sinfín de disciplinas y se refiere a la búsqueda de debilidades en distintos tipos de sistemas.
Durante esta investigación, se hará referencia a la evaluación de vulnerabilidades
(Vulnerability Assessment) a un análisis técnico sobre las debilidades de una infraestructura
informática y de telecomunicaciones. Puntualmente, se analizarán vulnerabilidades asociadas a
distintos servidores, redes, sistemas operativos y aplicaciones.
Por lo tanto, una prueba de penetración (Penetration Test) es un método utilizado para evaluar
el nivel de seguridad de una organización, donde quien realiza dicha evaluación simula ser un
atacante real que aplica una diversa variedad de técnicas y cuyo objetivo es encontrar
vulnerabilidades (conocidas o no) a partir de malas configuraciones en los equipos o bien, en
distintos procesos o contra medidas, sean éstos de índole técnico o no.
2.4.2 Fases de una prueba de penetración
En esta sección se hará una breve descripción del concepto de pruebas de penetración
(Penetration Test), y luego veremos sus distintas fases. Vale la pena aclarar que la clasificación
en función de las fases que se presenta no es única, pero si es la base para que se hagan las

30
pruebas con el mayor éxito posible.
Antes de comenzar con la descripción de las fases de una prueba de penetración, es necesario
conocer algunas características de éstas. En primera instancia, se puede categorizar en función
de los datos disponibles y los alcances de la evaluación. Así, tendremos los análisis de tipo
caja blanca (White Box) y caja negra (Black Box). En el primero de los casos, el de caja blanca,
el tester tiene a su disposición información sobre la infraestructura de la empresa y la
profundidad del análisis está pactada de antemano. En el segundo, el de caja negra, no se
dispone prácticamente de información del objetivo, por lo que en este caso la fase de
reconocimiento es fundamental. En la práctica, la mayoría de estas pruebas suelen ser híbridos,
por lo que encararemos en análisis de estas fases teniendo este punto en mente.
Durante la fase de reconocimiento, se analizan distintas técnicas y métodos para recolectar
toda la información necesaria sobre el objetivo a atacar. Luego, en la fase de escaneo, se revela
información relativa a la infraestructura y algo análogo se hace en la fase de enumeración. En
la fase de acceso, se utilizaran los medios necesarios para ingresar al sistema objetivo, y en la
etapa de mantenimiento, se toman las medidas necesarias para poder acceder al sistema cada
vez que lo necesitemos.
• Fase de reconocimiento: Lo que se busca principalmente es definir el objetivo y, a
partir de ello, obtener la mayor cantidad de información sobre él. Para el caso de
personas físicas, ejemplos de recopilación de información serían direcciones de e-mail,
direcciones físicas, información personal, etcétera. En el ámbito corporativo, además se
buscaran direcciones IP, resolución de nombres DNS, etcétera. En esta parte,
denominada recolección de información (gathering information), el atacante utiliza
varias técnicas o metodologías, por ejemplo, la ingeniera social. La importancia de esta
fase radica en la necesidad de determinar el objetivo y obtener toda la información
posible, que permita llevar a cabo un ataque exitoso. En este sentido, la preparación es
crítica ya que, al momento del ataque, no hay tiempo para detenerse y volver a
empezar. Según como se realice la búsqueda de información, tenemos dos métodos
distintos. El primero de ellos son las búsquedas online, donde vamos a buscar
información a través de Internet. En cambio la búsqueda offline abarca técnicas como

31
la ingeniería social.[2]
• Fase de escaneo: En esta fase, utilizaremos la información previa con el objetivo de
detectar vectores de ataque en la infraestructura de la organización. En primer lugar,
comenzaremos con el escaneo de puertos y servicios del objetivo. Determinamos qué
puertos se encuentran abiertos, y luego, asociamos el puerto a un servicio dado. Una
vez que hemos finalizado con ésto, llega el turno del escaneo de vulnerabilidades. Éste
nos permitirá encontrar vulnerabilidades en el o los equipos objetivo, tanto del sistema
operativo como de las aplicaciones. Conceptualmente, a todo este proceso lo podremos
dividir en seis etapas. En cada una de ellas buscaremos distintos tipos de información,
desde los equipos vivos (online) en una red o segmento hasta la planificación del
ataque en sí mismo. Vale la pena aclarar que esta división es conceptual, ya que las
herramientas suelen cubrir varias etapas juntas en un mismo análisis. Estas etapas son:
detección de sistemas vivos o activos, escaneo de puertos, detección del sistema
operativo, identificación de servicios, escaneo de vulnerabilidades y planificación del
ataque.[2]
• Fase de enumeración: El objetivo de esta fase es obtener información relativa a los
usuarios, nombres de equipos, recursos y servicios de red. Para ésto, se generan
conexiones activas con los sistemas y se realizan consultas directas para obtener la
información. A diferencia del caso anterior, las consultas siempre se hacen al equipo
objetivo y en forma activa, lo que trae aparejado que las conexiones puedan ser
detectadas y registradas. En las fases anteriores, un punto importante es que estas
técnicas suelen llevarse a cabo en la red interna.[2]
• Fase de acceso: Una vez detectadas las vulnerabilidades, el gran paso es el ingreso al
sistema definido como objetivo. Si ésto se realiza en el marco de una simulación o de
un Penetration Test hecho por profesionales, no se suele tomar control sobre el sistema
sino detectar las vulnerabilidades y proponer soluciones. En un ataque o simulación
más realista, esta fase será quizá la que produzca mayor descarga de emociones, ya que
aquí se utilizan los recursos y conocimientos de manera condensada. Una vez
encontrada una vulnerabilidad, el atacante buscará un exploit que le permita explotarla

32
y obtener el control. Según el tipo de exploit ejecutado, puede ser que el acceso
conseguido no posea los privilegios elevados que el atacante desee, y será necesario
emprender una escalada de privilegios, con el objetivo de poseer control total sobre el
sistema atacado. Una de las formas más comunes de escalar privilegios es, a partir del
ingreso al sistema, usar otro exploit (en este caso local) que otorgue privilegios de
administrador (root para Unix/Linux, o Administrador o System para sistemas
Windows). Una vez que se obtuvo una cuenta de altos privilegios, el siguiente paso es
ejecutar comandos o aplicaciones en una forma remota, es decir, lanzar una aplicación
desde la ubicación del atacante y que ésta se ejecute en el sistema comprometido. [2]
• Fase de mantenimiento del acceso: Una vez obtenido el acceso, lo que realmente se
desea es mantener el equipo comprometido entre las filas del atacante. Para ésto, hay
que buscar la manera de que el acceso ganado sea perdurable en el tiempo. En la
mayoría de los casos, ésto se logra a partir de la instalación y ejecución de diversos
tipos de software malicioso. Algunos ejemplos de software que se utiliza en esta etapa
son los troyanos, backdoors, keyloggers, spywere, etc. En la planificación del ataque,
ya mencionamos que siempre se busca mantener el anonimato en el ataque y, por otro
lado, ocultar huellas. En esta fase, el atacante buscará lo mismo, intentará con mayor o
menor suerte, no dejar rastros de su paso y también esconder medios por los cuales
mantiene el acceso al equipo comprometido.[2]
Con estas fases se tiene un orden establecido para las pruebas a realizar, y el resultado de
llevarlas a cabo es que se obtiene la estructura necesaria para tener el mayor éxito posible
sobre éstas.

33
Capítulo III
Implementación y pruebas de
Pentesting
En este capítulo se describe el entorno de pruebas y las pruebas de ataque realizadas en este
trabajo de tesis. Las pruebas realizadas consistieron en ataques a servicios y aplicaciones
implementadas en diversos sistemas operativos dentro de un entorno virtualizado, con la
finalidad de encontrar y aprovechar las vulnerabilidades en fallos de configuración como en
vulnerabilidades inherentes en las mismas aplicaciones que permiten brindar servicios de red.
En este capítulo se describirán tres tipos de ataques que se ejecutaron de manera controlada y
que consistieron en ataques a servicios de red, aplicaciones web, y ataques a nivel de la capa
de enlace de datos del modelo OSI.
3.1 Entorno de pruebas.
En este trabajo de tesis se implementó un entorno de pruebas virtualizado, como se muestra en
la figura 3.1, donde se utilizó Kali-Linux v1.06 como sistema base y dentro de éste se instaló
VirtualBox para poder virtualizar los distintos sistemas operativos que se usaron como
objetivos de ataque.

34
La elección del programa VirtualBox que funciona como virtualizador en donde se ejecutan
distintos tipos de sistemas operativos, es principalmente por:
• Se puede instalar en una amplia variedad de sistemas operativos (OS X, Windows,
Linux, Unix).
• Dispone de excelente documentación técnica y de usuario.

• Se distribuye bajo licencia GPL (General Public Licence), es decir, es libre y gratuita
su descarga.
• Compatible con muchas arquitecturas.

• Muy estable.

Esta tesis promueve el uso del software libre, así que todas las herramientas que se verán en
este capítulo están disponibles en Internet para su descarga pública.

Figura 3.1 Diagrama del entorno de trabajo.


Los sistemas operativos objetivos que se utilizaron fueron Windows y Linux, además de
aplicaciones Web desplegadas en éstos.

35
Máquina Principal Kali-Linux: Cuenta con el sistema operativo base Kali-Linux, actualizado
hasta la versión 1.06, que se implementó en una computadora con un microprocesador Intel
Core i7 y con 16 GB de RAM para ejecutar los diferentes sistemas operativos clientes, y
realizar las pruebas de penetración sin contratiempos.
Equipo1 Virtualizado: Cuenta con el sistema operativo Windows 7 SP1 actualizado y 1 GB
de RAM, con los siguientes servicios en ejecución.
• FreeSSH 1.2.6

• Java 7

• Internet Explorer 9

Equipo2 Virtualizado: Cuenta con el sistema operativo Windows XP SP3 actualizado, tiene 1
GB de memoria RAM y se ejecutan los siguientes servicios.
• Adobe Reader

Equipo3 Virtualizado: Cuenta con el sistema operativo Metasploitable 1 y 2, cuenta con 1


GB de memoria RAM y se ejecutan los siguientes servicios.
• Samba

• MySql

• FTP

• HTTP

• SSH

Equipo4 Virtualizado: Cuenta con el sistema operativo Kioptrix en sus versiones 1, 2, 3 y 4,


con 1 GB de memoria RAM y se ejecutan los siguientes servicios.
• HTTP

• SSH

Equipo5 Virtualizado: Cuenta con el sistema operativo Ubuntu 12.10 actualizado, tiene 2 GB
de memoria RAM y se ejecutan los siguientes servicios.
• D-Vulnerable Web Application.

36
• HTTP

• SHH

Equipo6 Virtualizado: Cuenta con el sistema operativo Damm Vulnerable Linux, tiene 2 GB
de memoria RAM y se ejecutan los siguientes servicios.
• PostgreSQL

• Flash

• WordPress

• HTTP

Para realizar las pruebas de penetración a servicios de red en un entorno virtualizado se siguió
un orden establecido (ver apartado 2.4.2), además de seleccionar las herramientas necesarias
para este tipo de actividades. El sistema operativo Kali-Linux posee herramientas de
pentesting embebidas, como el framework Metasploit, Hidra, Armitage, Sqlmap,
Jhonderipper, Slowloris, además de algunas herramientas para el envenenamiento de redes,
SQL Injection y denegación de servicio (DoS) como las que se describen a continuación.
• Arpspoof. Esta herramienta permite realizar la técnica ARP Spoofing en una red IPv4.
El objetivo de la aplicación es, envenenar las tablas ARP de un objetivo, respecto a otra
máquina, con ello el atacante se hará pasar ante el objetivo por otra máquina. Un
ejemplo clásico sería envenenar a una máquina para indicar que el router ha cambiado
su dirección MAC y que ahora la dirección MAC del router es la del equipo del
pentester.
• SSLStrip. Esta herramienta permite realizar la técnica SSL Strip, con la que un atacante
puede realizar un MITM (Man In The Middle) especial, apoyándose de ARP Spoofing.
Este MITM especial consiste en que la conexión entre la víctima y el atacante va por el
protocolo no seguro HTTP, y la conexión con el servidor de verdad va con HTTPS.
• Ettercap. Esta herramienta permite realizar la técnica ARP Spoofing. Lo interesante es
que proporciona una GUI y un sistema de filtros desarrollables por el pentester en
función de lo que necesite.

37
• Yersenia. Esta herramienta trabaja en la capa 2 del modelo OSI 1 y permite probar la
posibilidad de saltar de VLAN. Con esta herramienta se podrá realizar ataques a
switches y probar la viabilidad para lograr evitar las medidas de protección en las redes
de éstos. Yersenia es compatible con switches CISCO con los que por ejemplo se
pueden saltar de VLAN gracias al protocolo dinámico troncal (DTP Dynamic Trunking
Protocol por sus siglas en Inglés), si éste se encuentra habilitado por defecto.
• EvilGrade. Este framework permite comprometer equipos a través de actualizaciones
falsas. El framework necesita que antes el atacante haya realizado ARP Spoofing, DNS
Spoofing, configuración de un punto de acceso Wireless falso, secuestro de DHCP o
cualquier otra manera que permita al atacante interceptar el tráfico de la víctima. Es
posible conseguir el control total de una máquina que se
encuentre completamente actualizada en un test de intrusión.
• Sqlmap: Es una herramienta que automatiza el proceso de detectar y explotar los
errores de inyección SQL, y hacerse cargo de los servidores de bases de datos. Sqlmap
viene con un motor de detección, así como una amplia gama de pruebas de
penetración, características que van desde la base de datos de huellas dactilares para
acceder al sistema de archivos subyacente y ejecutar comandos en el sistema operativo
a través de conexiones fuera de banda.
• lbd: Es un script que se utiliza para determinar si un servidor hace uso de la técnica de
balanceo de carga (load balancing) que permite distribuir el trabajo a realizar entre
varios procesos.
• slowloris: Es un software hecho bajo el lenguaje de programación Perl, implementa
una potente e inteligente manera de generar una denegación de servicio sobre un
servidor Web Apache. Para ello, se basa en la cantidad de peticiones que es capaz de
mantener un servidor Web de forma concurrente.
3.1.1 Configuración de Metasploit.
La creación de una nueva base de datos para trabajar la explotación de los diferentes sistemas
1 Sistemas de Interconexión abiertos, es el modelo de red descriptivo, que fue creado por la Organización
Internacional para la Estandarización (ISO) en el año 1980. Es un marco de referencia para la definición de
arquitecturas en la interconexión de los sistemas de comunicaciones.

38
operativos en el área de trabajo (workspace) de Kali-Linux, hace más ordenada y compresiva
la información que se recolectará durante este proceso, como sistema gestor de base de datos
Metasploit utiliza por defecto a PostgreSQL, por lo que se tiene que realizar la conexión a una
base de datos creada dentro de este gestor, independiente a la que se crea por defecto en la
instalación de Metasploit.
Para realizar esta configuración se hicieron modificaciones en el archivo “database.yml” que
es el controlador de conexión de Metasploit con el PostgreSQL, en el que se cambiaron los
parámetros de conexión que se especifican a continuación (en la sección de production) y que
se muestran en la figura 3.2.

− database = “msf3”

Figura 3.2 Parámetros de acceso a la nueva base de datos.

En la figura 3.3 se muestra el estado de la conexión de la base de datos con el framework


Metasploit, que se obtiene al ejecutar la orden:
> db_status

39
Figura 3.3 Verificación de la conexión hacia la nueva base de datos de PostgreSQL.
3.1.2 Configuración de Armitage.
Armitage es un administrador gráfico de ciber ataques para Metasploit, que sirve para
visualizar gráficamente los objetivos, el mismo programa te recomienda que exploit usar,
expone las opciones avanzadas del framework (esas que comúnmente se nos olvida o no
sabemos). Desde el mismo Armitage se puede iniciar un análisis con nmap, e incluso se puede
usar como módulo de fuerza bruta para obtener nombres de usuario y contraseñas.
Para configurar Armitage se sigue el siguiente procedimiento:
1. Para ejecutar Armitage en Kali-Linux.
Applications > Kali Linux > Exploitation Tools > Network Exploitation > Armitage
La figura 3.4 muestra los parámetros de configuración para la conexión entre Armitage y el
servicio Metasploit.
• Host: La conexión a servidor local.

• Port: Puerto de comunicación entre Armitage y Metasploit.

• User: Usuario creado por Armitage.

• Pass: Password utilizado (en este caso es prueba1).

40
Figura 3.4 Parámetros de conexión entre Armitage y Metasploit.
2. Es necesario ejecutar el servidor RPC (Remote Procedure Call) de Metasploit, que es
una técnica para la comunicación entre procesos en una o más computadoras
conectadas en una red y al iniciar Metasploit, éste mismo se encarga de ello.
La figura 3.5 muestra la interfaz al iniciar por primera vez Armitage.

Figura 3.5 Interfaz de Armitage.


Con los dos procedimientos anteriores se tiene un ambiente de trabajo para iniciar las pruebas
de penetración, con Metasploit y Armitage.
3.2 Pruebas realizadas.
En este apartado se describirán los procesos requeridos para ejecutar los ataques a las
aplicaciones y sistemas operativos virtualizados.

41
Se realizaron un total de 7 tipos de ataques a diversas aplicaciones, siguiendo un orden
establecido (ver apartado 2.4.1). En todos los casos se tuvo éxito en las pruebas realizadas.
3.2.1 Acceso no autorizado.
3.2.1.1 Fuerza Bruta a MySQL.
¿Que es fuerza bruta?
El ataque de fuerza bruta es un método de ataque muy lento pero efectivo que basa su
efectividad en una debilidad en la configuración de ciertos servicios como MySQL, al no
limitar los intentos de login.
El servicio objetivo para este ataque fue un servidor MySQL implementado en un sistema
operativo Ubuntu, para ello se utilizaron las siguientes herramientas: framework Metasploit,
Armitage y nmap previamente configurados. Este ataque se ejecutó en 4 pasos que son
descritos en este apartado.
1. Con Armitage y Metasploit ejecutándose, se inicia el proceso de escaneo del sistema
con la herramienta nmap mediante el siguiente comando:
>nmap –sS –sV –O –f –n 192.168.1.65
Donde:
◦ sS Análisis TCP SYN.

◦ sV Detección de la versión de los servicios.

◦ O Activar detección del sistema operativo.

◦ f Fragmentar paquetes (para evadir firewalls).

◦ n No realizar resolución DNS.

La figura 3.6 muestra el resultado del análisis con la herramienta “nmap”, donde se puede
observar, el tipo y versión del sistema operativo, los puertos abiertos y servicios
implementados; esta información resulta importante a la hora de planear un ataque, porque se
tiene que definir el servicio, versión y puerto al que se va a enfocar. En este caso, el servidor
está ejecutando MySQL 5.0.51, por lo que, se buscan módulos dentro de Armitage
relacionados con MySQL para poder listar todas las opciones disponibles de ataque.

42
Figura 3.6 Resultado del comando nmap.

2. En la terminal de Armitage con el siguiente comando es posible encontrar las


herramientas para atacar al servidor MySQL:
msf > search mysql

En la figura 3.7 se muestran los scripts disponibles para atacar el servicio de MySQL,
cada uno de estos tiene una función específica y que son necesarios (dependiendo de
los objetivos) a la hora de realizar un test de intrusión. Para este caso se utilizará el
script “mysql_login”, que nos permite obtener las credenciales de acceso al servidor
MySQL mediante el ataque de fuerza bruta.

43
Figura 3.7 Scripts para MySQL.
3. Para realizar el ataque de fuerza bruta contra el servicio MySQL se cargó el script
auxiliary/scanner/mysql/mysql_login, que funciona en base a un archivo que almacena
las posibles contraseñas, por lo que se le configuraron dos parámetros que indican la
ruta de estos archivos, como se muestra en la figura 3.8.
• PASS_FILE: Ruta donde se encuentra el archivo de contraseñas.

• USER_FILE: Ruta donde se encuentra el archivo de usuarios.

Figura 3.8 Parámetros del script mysql_login.


Después de un tiempo (que depende de la velocidad de conexión y configuración del servidor),
se obtuvieron las credenciales de acceso al servidor MySQL. En la figura 3.9 se muestran las

44
credenciales obtenidas mediante el ataque de fuerza bruta y éstas son: para usuario=’root’ y
contraseña=’change951’

Figura 3.9 Credenciales de acceso encontradas.


4. Habiendo obtenido las credenciales se procede a probarlas ingresándolas al servidor
MySQL, como se ve en la figura 3.10, mediante la siguiente orden:
root@kali:~# mysql –h 192.168.1.65 –u –root –p
Donde:
◦ -h (host): Identificación del host.

◦ -u (user): Identificación del usuario (root).

◦ -p (password): Identificación del usuario (root) con contraseña.

Figura 3.10 Acceso a la base de datos de MySQL.

45
Con esto se logra acceder a la base de datos del servidor víctima y por lo tanto también se
acceden a todas las bases de datos almacenadas en este servidor.
3.2.1.2 Ataque al servicio Samba.
Samba es un servicio que permite compartir archivos e impresoras con otras computadoras en
una misma red local. Utiliza para ello un protocolo conocido como SMB/CIFS compatible con
sistemas operativos UNIX o Linux y Windows.
El objetivo de este ataque fue un servidor Samba implementado en el sistema operativo
Ubuntu 12.04 utilizando las herramientas: Metasploit y Armitage, que permitieron elegir los
módulos (scripts) adecuados para lograr un ataque exitoso, en este caso, obtener información
de la versión de la aplicación objetivo para posteriormente tomar el control del servidor con
ayuda de algunos exploits y payloads.
Esta prueba de ataque se realizó en 4 pasos, que se explican a continuación.
1. Para obtener información del servicio objetivo a atacar (Samba), se se hace uso del
script (scanner/smb/smb_version) de Metasploit, configurándose desde Armitage, este
proceso y el resultado obtenido se muestran en la figura 3.11 y figura 3.12, donde se
observa la versión del servicio samba, que para este caso es: 3.0.20.

Figura 3.11 Parámetros para ejecutar el script scanner/smb/smb_version.

46
Figura 3.12 Resultado del script scanner/smb/smb_version con Armitage.
2. Se carga el exploit: “usermap_script” que se encuentra dentro del framework
Metasploit, este exploit está diseñado para atacar una vulnerabilidad específica en el
servicio Samba y se configuran los siguientes parámetros que se muestran en la figura
3.13.
• LHOST: Local Host o Máquina Local (Máquina que lanzará el exploit).

• LPORT: Local Port o Puerto Local (Puerto local que usará el exploit para atacar).

• RHOST: Remote Host o Maquina Remota (Máquina que recibirá el ataque).

• RPORT: Remote Port o Puerto Remoto (por defecto trae el que ocupa el servicio).

• Use a reverse connection: Utilizará un payload al ejecutarse el exploit correctamente.

Figura 3.13 Parámetros del exploit usermap_script.

47
3. Se lanza el exploit “usermap_script”, configurado previamente, y por la eficiencia de
éste, se logra tomar el control del sistema, obteniendo una sesión de shell, la cual se
crea con la ejecución del payload sobre el servidor, logrando vulnerar con Armitage la
máquina objetivo como se observa en la figura 3.14.

Figura 3.14 Máquina infectada.


4. Con la sesión de shell creada se puede interactuar y usarse para distintos objetivos,
como iniciar una sesión inversa desde la consola de Armitage, para hacer uso de ella se
ejecuta la siguiente orden:
msf > sessions –i -1
Donde:
◦ sessions: Hace referencia a una sesión que se va a utilizar

◦ -i: Interactuar con la sesión abierta.

◦ 1: Indica el número de sesión que se va a ocupar (depende de las sesiones abiertas).

Se verificaron los privilegios obtenidos mediante el siguiente comando.

48
$ id
uid = 0 (root) gid = 0 (root) - (tipo de usuario obtenido).

Figura 3.15 Tipo de usuario obtenido.

En la figura 3.15 se observa que los privilegios de acceso que se obtienen en el sistema
operativo víctima, mediante el ataque al servidor Samba, es como usuario root, con esto se
demuestra que aunque el sistema operativo esté debidamente actualizado, si existe alguna
aplicación vulnerable, ésta compromete al sistema completo.
3.2.2 Cross Site Scripting XSS.
El Cross Site Scripting (XSS) es una vulnerabilidad muy común hoy en día, según la OWASP
(Open Web Application Security Project), es la más explotada y se puede encontrar en la
mayoría de las aplicaciones Web en Internet. A pesar de tratarse de una temática en seguridad
algo antigua, aún siguen apareciendo nuevos vectores de ataque y técnicas que hacen que se
encuentre en constante evolución.[6]
En el XSS se manipula la entrada (input) de parámetros de una aplicación con el objetivo de
tener una salida (output) determinada y que no sea la habitual al funcionamiento del sistema.
Este fallo compromete más que nada la seguridad del usuario y no la del servidor. Consiste en
inyectar código HTML o JavaScript en una aplicación Web, con el fin de que el navegador de
un usuario ejecute el código inyectado al momento de ver la página alterada. Comúnmente el
XSS se utiliza para causar una acción indebida en el navegador del usuario, pero dependiendo
de la vulnerabilidad, se puede explotar un fallo para causar una acción indebida en un servidor
o en una aplicación.[6]
Con este tipo de ataque se puede lograr entre otras cosas:[6]
• Navegación dirigida.

• Phishing.

• Distribución del malware.

49
• Robo de credenciales.

• Ejecución de scripts, “Java Script”.

• Click Hijacking.

• Defacement persistente a la página real.

Una vulnerabilidad XSS, puede conllevar a muchos y nuevos ataques Web, debido a que un
control de ejecución Java Script sobre el navegador de una víctima abre vectores de ataques
como Man In The Browser “MITB”, pudiendo tomar el control remoto del navegador y
pudiendo realizar ejecuciones de exploits con el objetivo de realizar una escalada de
privilegios en el sistema. Entre otros casos, se hace presente la ingeniería social y la falta de
conocimientos del usuario afectado, al caer en una página fraudulenta.
Básicamente se pueden diferenciar dos tipos de Cross Site Scripting; Cross Site Scripting
Reflejado y Cross Site Scripting Persistente, que veremos a continuación.[6]
3.2.2.1 XSS Reflejado
La explotación del fallo, se basa en la manipulación de un parámetro vulnerable, con el
objetivo de montar un enlace modificado que embeba el código HTML o de script. Dentro de
la distribución de Kali-Linux, es posible encontrar multitud de herramientas para realizar de
forma cómoda, la búsqueda manual de este tipo de vulnerabilidades, mediante la utilización de
proxys inversos. Entre las más conocidas, se encuentra la herramienta Burp Suite y OWASP
ZAP. Para esta prueba en particular se utilizó el cliente Web IceWeasel, con una configuración
de proxy inverso; y como herramienta de análisis el OWASP ZAP.

1. Como primer paso, se crear un proxy inverso sobre el navegador IceWeasel, la


configuración de éste se muestra en la figura 3.16.

50
Figura 3.16 Configuración de proxy en IceWeasel.
2. Con la herramienta OWASP ZAP, se pueden interceptar peticiones HTTP (figura 3.17);
en la aplicación Web objetivo, se observa que se envía el parámetro “name=”, que
recoge la aplicación y lo muestra en pantalla como se observa en la figura 3.18. Se
podría trabajar de forma sencilla con todo tipo de peticiones, en caso de encontrarse
con una petición POST, esta aplicación se encargaría de interceptarla y permitirá
modificar sus parámetros.

Figura 3.17 OWASP ZAP interceptando petición GET “name=”.

51
Figura 3.18 Navegador IceWeasel mostrando el parámetro ingresado.
3. La herramienta OWASP ZAP cuenta también con una pestaña de respuestas que, aún no
interpretando Java Script, sería posible leer el código de la página devuelta, con lo que
es viable identificar un posible Cross Site Scripting (ver figura 3.17).
La imagen 3.19 muestra la respuesta vista desde el OWASP ZAP, al modificar la
recogida del valor anterior “name” por el de un Tag Script. El navegador Web ejecutó
el Java Script enviando un mensaje de alerta, como se muestra en la figura 3.20.

Figura 3.19 Herramienta OWASP ZAP y Cross Site Scripting reflejado.

52
Figura 3.20 Cross Site Scripting reflejado en el navegador.

3.2.2.2 Cross Site Scripting Persistente


Este tipo de Cross Site Scripting, queda normalmente registrado en la base de datos, al realizar
una petición mal intencionada tras unos parámetros mal filtrados. La recogida del contenido de
la petición, es rescatada posteriormente de los datos almacenados y estos vuelven a ser
mostrados. Dichos datos son interpretados y ejecutados en el navegador de la víctima.
Para realizar esta prueba, se utilizó la herramienta Burp Suite disponible en Kali-Linux. Con
esta herramienta, se puede interactuar con las peticiones interceptadas, permitiendo enviarlas a
diferentes herramientas como un Spider, un Intruder o el conocido Repeater entre otras. Estas
tres últimas herramientas permiten realizar repeticiones sobre peticiones capturadas.

1. Se introduce texto aleatorio dentro de los formularios que provee la aplicación, esto
para mostrar como se almacena un comentario en una base de datos mediante una
petición GET. La figura 3.21 muestra este paso.

53
Figura 3.21 Incluyendo un mensaje en la base de datos.
Además, esta página cuenta con una función para extraer los nombres y los mensajes y
mostrarlos en la misma. Este tipo de ejemplos, es posible verlos en los registros a páginas, en
los que se introducen los datos de perfil que más tarde son rescatados y expuestos a los
usuarios, dicha funcionalidad se muestra en la figura 3.22.

Figura 3.22 Extracción de los mensajes de la base de datos.


Si la función encargada del almacenamiento del nombre y del mensaje, no filtra correctamente
los parámetros name= y message=, como se observa en la figura 3.23, podría darse el caso de
que un atacante pueda modificar el nombre o el mensaje por código HTML o Java Script y
éste se inserte íntegro en la base de datos. El Cross Site Scripting hasta este momento no
existiría, debido a que el segundo factor es la función de extracción, si ambos carecen de
filtrados, se daría el caso de Cross Site Scripting persistente.

54
2. Con el fin de alterar la página víctima, se tiene que insertar código malicioso en el
formulario de la aplicación, usando los parámetros “name” o “message” que son
vulnerables para dicho ataque. La figura 3.23 muestra como se logra embeber una
imagen mediante un Tag Script, en el código fuente de respuesta, utilizando la
herramienta Burp Suite. El resultado de este ataque se ve reflejado en la figura 3.24.

Figura 3.23 Código rescatado de la base de datos por la aplicación y que será leído por el
navegador.

Figura 3.24 Cross Site Scripting persistente.

55
En conclusión se puede decir que la vulnerabilidad XSS ocurre cuando la página permite al
usuario incluir código arbitrario HTML o Java Script en la página.
3.2.3 Ataques a redes.
En el envenenamiento de redes el objetivo del pentester es conseguir que el tráfico de las
víctimas pase por él. El principal problema es el direccionamiento, a nivel de capa de red, que
la víctima esté utilizando, es decir, si la víctima utiliza el protocolo IPv4 o IPv6. Hoy en día, la
inmensa mayoría de redes utilizan el protocolo IPv4, para el cual existen una gran cantidad de
ataques. Aunque también para el protocolo IPv6, existen diversos ataques que permiten
interceptar el tráfico que fluye por una red.[6]
Los ataques que se describen en este apartado son enfocados al protocolo IPv4.
3.2.3.1 Man in the Middle
Es muy común a veces escuchar a la gente que asocia la técnica de Man In The Middle
(MITM) con el ARP Spoofing. Este es un hecho erróneo, ya que el MITM utiliza esta técnica
como algunas otras que permite colocar el rol del atacante en el medio de una comunicación,
es decir, interceptar la información entre un emisor y un receptor.
Man In The Middle es un vector de ataque utilizado para lograr que la información
correspondiente a una víctima circule a través de la máquina del atacante. Con esta acción lo
que se logra es que el atacante pueda analizar y procesar el tráfico. Hoy en día, se puede
realizar MITM de muchas maneras distintas, e incluso para el protocolo IPv6 existen diversas
maneras de lograrlo.[6]
Las técnicas para realizar MITM se pueden llevar a cabo en cualquier dispositivo de la red ya
sea un equipo portátil, servidores, dispositivos móviles, que sirven para colocarse en el medio
de una comunicación; logrando realizarse a nivel de protocolo, a nivel de dispositivo o incluso
a nivel de software.
Una de las técnicas utilizadas para realizar MITM es la conocida como ARP Spoofing que
consiste en que el atacante y la víctima deben encontrarse en la misma red y utilizar el
protocolo IPv4 para el intercambio de datos, por ejemplo, a través de una LAN, la cual
dispone un punto de acceso ya sea cableado o inalámbrico.
El ataque está basado en el protocolo ARP (Address Resolution Protocol), que es el encargado

56
de traducir direcciones físicas a direcciones de red y partiendo de que los diferentes
dispositivos que conforman una red local se comunican utilizando sus direcciones físicas, la
técnica ARP Spoofing aprovecha este protocolo de comunicación que es muy difícil de
proteger.[26]
En resumen, Man In The Middle mediante la técnica ARP Spoofing, es un ataque en el que el
atacante crea la posibilidad de consultar, insertar o modificar información que hay en un canal
entre 2 máquinas, sin que ninguna de esas máquinas conozca dicha situación.
Para la realización de esta prueba se expone la siguiente situación: un atacante utiliza una
herramienta adecuada, como puede ser ettercap o arpspoof, para llevar a cabo el ARP
Spoofing. El atacante envenenará las tablas ARP de las víctimas, enviando mensajes arp reply
“engañando” a los objetivos. Este tipo de ataques se realiza en redes conmutadas, ya que con
hubs no es necesario, un detalle que es de suma importancia.
El estado inicial de la tabla ARP del router, con dirección IP 192.168.1.1, tiene el siguiente
aspecto.

Dirección IP Dirección MAC


192.168.1.1 (router) CA:FE:CA:FE:CA:FE
El estado inicial de la tabla ARP de la víctima, con dirección IP 192.168.1.3, tiene el siguiente
aspecto.

Dirección IP Dirección MAC


192.168.1.3 FA:BA:FA:BA:FA:BA
El atacante enviará un par de arp reply, uno a la víctima y otro al router, con la intención de
envenenar y falsear la información anterior. Si el atacante dispone de la dirección MAC
AA:BB:AA:BB:AA:BB, las tablas ARP de los elementos anteriores quedarán de la siguiente
manera:
El estado de la tabla ARP del router, con dirección IP 192.168.1.1, ahora tiene el siguiente
aspecto.

Dirección IP Dirección MAC


192.168.1.1 (router) AA:BB:AA:BB:AA:BB

57
El estado de la tabla ARP de la víctima, con dirección IP 192.168.1.3, ahora tiene el siguiente
aspecto.

Dirección IP Dirección MAC


192.168.1.3 AA:BB:AA:BB:AA:BB
De esta manera todos los envíos de tráfico que realice la víctima a Internet pasarán por la
máquina del atacante, permitiéndole a éste capturar cookies, credenciales, información de
navegación, y todo el tráfico no cifrado, del equipo vulnerado.
En esta prueba de concepto se realiza un ataque ARP Spoofing mediante el uso de la
herramienta arpspoof de Kali-Linux. Además, se muestra el proceso completo y otro tipo de
herramientas que permiten filtrar y mostrar información interesante. El escenario es el
siguiente.
• La víctima tiene configurada la dirección IP 192.168.1.70.

• El atacante tiene configurada la dirección IP 192.168.1.74.

• El router tiene configurada la dirección IP 192.168.1.254.

1. El atacante envenena la tabla ARP de la víctima indicándole que la dirección física del
router ha cambiado. Para ello se ejecuta la siguiente instrucción en terminal.
> arpspoof -i eth0 -t 192.168.1.70 192.168.1.254
En la figura 3.25 se puede ver como se produce el envenenamiento de la tabla ARP.

Figura 3.25 Envenenamiento de la tabla ARP de la víctima.


Una vez envenenado el equipo de la víctima se pudo comprobar la tabla ARP de éste y
verificar que la dirección física del router ha cambiado.
2. Se necesita tener habilitado el forwarding para que cuando la víctima envíe tráfico

58
hacia Internet lo haga primero hacia el atacante y después hacia hacia el router, además
de tener en ejecución el arpspoof sobre el router para que los paquetes que llegan al
router pasen primero por el atacante. Para esto se ejecutan las siguientes instrucciones
en terminal.
> echo 1 > /proc/sys/net/ipv4/ip_forward
> arpspoof -i eth0 -t 192.168.1.254 192.168.1.70
En la figura 3.26 se muestran los comandos ejecutados.

Figura 3.26 Habilitar el reenvío de paquetes y generar el envenenamiento del router.


3. Para visualizar que el tráfico de la víctima circulaba a través del atacante, se puede
utilizar la herramienta Wireshark. La figura 3.27 muestra en el paquete 56, 58 y 59 que
el tráfico de la víctima está circulando a través de la tarjeta de red del atacante.

Figura 3.27 Captura de tráfico de la víctima mediante la técnica ARP Spoofing con Wireshark.
Al lograr capturar el tráfico de la víctima y dado que para este caso utiliza protocolos no
seguros de comunicación, mucha de la información puede ser visualizada por el atacante, al

59
poder capturar cookies de sesión, imágenes, ficheros, credenciales de acceso a sistemas, etc.
4. Con el uso herramienta driftnet es posible obtener las imágenes que la víctima estaba
visualizando.
Para ejecutar driftnet basta con teclear en una terminal.
>driftnet -i eth0
La figura 3.28 muestra los resultados del uso de esta herramienta.

Figura 3.28 Resultado de la ejecución de la herramienta driftnet.


5. Con el uso de la herramienta URLSnarf, se pueden conocer las peticiones HTTP que la
víctima realizaba, esta herramienta permite conocer el historial de navegación de la
víctima, su ejecución y resultado se muestra en la figura 3.29.

Figura 3.29 Resultado de la ejecución de la herramienta URLSnarf.


6. El uso de la herramienta dsniff permite realizar la captura de credenciales que viajan

60
por los protocolos no seguros, el uso de esta herramienta y su resultado se pueden ver
en la figura 3.30.

Figura 3.30 Resultado de la ejecución de la herramienta dsniff.


Como se puede observar con la ejecución de este ataque se pudo obtener información sensible
que viaja por protocolos no seguros como el ftp, http, entre otros, debido a la mala
configuración de los dispositivos que brindan interconectividad.
3.2.4 SQL Injection
Las vulnerabilidades de SQL Injection afectan a todas las aplicaciones Web que rescatan
información de una base de datos mediante parámetros mal filtrados. Estas técnicas de
inyección, afectan a todo tipo de manejadores de bases de datos, como Microsoft SQL Sever,
Microsoft Acces, Oracle, PostgreSQL, Sybase, etc.[6]
Los atacantes aprovechan vulnerabilidades, haciendo que se muestre información que no se
debería mostrar. A veces esto es tan simple como el atacante pidiendo información privilegiada
desde el sistema gestor de base de datos. Otras veces, se aprovechan de las configuraciones tan
pobres hechas por los administradores de bases de datos. Los atacantes también pueden tomar
ventaja de una vulnerabilidad en el sistema gestor de base de datos que permite al atacante ver
o escribir comandos privilegiados hacia y desde la base de datos.
Los atacantes suelen enviar código malicioso a través de formularios y otras partes de una
página web, que tienen la capacidad de aceptar la entrada del usuario. Por ejemplo, un atacante
puede introducir caracteres aleatorios, así como largas declaraciones, con el objetivo de
identificar debilidades en las variables de entrada y en cómo los parámetros están diseñados.
Si un campo de entrada esta ajustado para aceptar sólo los nombres de usuario de hasta 15
caracteres de longitud, un mensaje de error puede aparecer revelando detalles sobre la
configuración de la base de datos.[6]
En esta prueba se explota una vulnerabilidad SQL Injection en una página Web alojada en un

61
sistema operativo Kioptrix3 con dirección IP 192.168.1.95, y haciendo uso de la herramienta
SQLMap, se accede primeramente a la base de datos para posteriormente se realizar una
escalada de privilegios que permite el acceso al equipo objetivo mediante el protocolo SSH
con un usuario de sistema.
1. Se hace un reconocimiento del objetivo a atacar, del que solamente se sabe su dirección
IP, por lo fue necesario descubrir toda la información posible con ayuda de la
herramienta nmap. Para este caso en particular se hizo uso de una terminal y un
navegador para poder reconocer a la víctima. Ejecutando la siguiente orden desde
terminal, se obtienen los resultados mostrados en la figura 3.31.
> nmap –sS –sV –O –f –n 192.168.1.95
Donde:
◦ -sS Análisis TCP SYN.

◦ -sV Detección de la versión de los servicios.

◦ -O Activar detección del SO.

◦ -f Fragmentar paquetes (para evadir firewalls).

◦ -n No realizar resolución DNS.

Figura 3.31 Resultado de la orden nmap sobre el equipo objetivo.


Los resultados arrojados por la herramienta nmap muestran que el sistema cuenta solo con 2
puertos abiertos, el 22 donde se ejecuta el servicio ssh y el 80 donde se ejecuta el servicio http.
2. Con la información obtenida en el paso 1 se puede deducir que el servidor ofrece un
servicio Web ejecutándose por el puerto 80. Para verificar el servicio Web, en el
navegador IceWeasel se introduce la dirección IP del sistema: 192.168.1.95, como se

62
muestra en la figura 3.32.

Figura 3.32 Servicio Web corriendo en Kioptrix3.


3. Se observa que al final de la URL “http://192.168.1.95/gallery/gallery.php?id=1”, tiene
un entero, que representa un parámetro de entrada que procesa primeramente la
aplicación y después la base de datos, por lo tanto de manera malintencionada se
introduce una cadena de caracteres, esperando que la base de datos procese una cadena
de caracteres y no un entero como se supone que debería. Esta acción se muestra en la
figura 3.33.

Figura 3.33 URL modificada para lograr encontrar un error por parte de la base de datos.
La vulnerabilidad se ubica al validar el dato de entrada para el parámetro “id=”. Se esperaba
un valor de tipo numérico, pero de manera malintencionada procesa una cadena de caracteres,
lo que provoca un error en la base de datos. La figura 3.34 muestra el error por parte de la base
de datos.

Figura 3.34 Mensaje de error de la base de datos.


Con ayuda de la herramienta sqlmap, se automatiza el trabajo para poder acceder a los
registros de la base de datos.
4. Para utilizar la herramienta sqlmap, en terminal se ejecuta la siguiente orden; como se

63
muestra en la figura 3.35.
sqlmap -u “192.168.1.95/gallery/gallery.php?id=1” - -tables
◦ La funcionalidad de esta sentencia es decirle al sistema gestor de base de datos que
muestre las tablas disponibles dentro de la base de datos, una vez lograda la
inyección de código malicioso en el sistema gestor de base de datos.

Figura 3.35 Comando sqlmap usando la funcion - -tables.


Con la ejecución de la orden anterior, se obtiene información muy importante, como el
sistema operativo del servidor, la versión del servidor Apache y la versión del sistema
gestor de base de datos; también muestra las bases de datos que contiene el sistema
gestor de bases de datos MySQL. La figura 3.36 muestra el resultado de la ejecución
del comando.

Figura 3.36 Resultado de la ejecución del comando sqlmap.


5. Se verifica que la inyección de código SQL sobre el sistema gestor de base de datos
funcionó, lo que permite obtener un listado de los usuarios del sistema. En una
terminal se escribe la instrucción que se muestra en la figura 3.37, en la que se
responderán algunas preguntas que dependerán de la información que se desea obtener.
El resultado de esta instrucción se muestra en la figura 3.38, donde se pueden observar
una lista de usuarios y contraseñas del sistema. La función dump guardará todas las

64
tablas encontradas dentro de la máquina atacante.

Figura 3.37 Ejecución del comando sqlmap con la funcion - -dump.

Figura 3.38 Contraseñas y usuarios encontrados con la herramienta sqlmap.


6. Posteriormente se accede vía ssh al sistema víctima, este procedimiento y su resultado
se pueden observar en la figura 3.39.

Figura 3.39 Conexión ssh al servidor Kioptrix3.


En la figura 3.39 se observa el acceso exitoso al sistema vía SSH, lo que permite ver los
diferentes archivos que se encuentran en este equipo, la ruta en donde se encuentra el usuario y

65
verificar que tipo de usuario es. Este resultado es similar al que se obtiene cuando se atacó el
servidor MySQL, que permite encontrar los usuarios del sistema primeramente y después el
acceso mediante el protocolo SSH.
3.2.5 Denial of Service.
En la Denegación de Servicio DoS (Denial of Service por sus siglas en inglés), los ataques no
se dirigen a alterar datos u obtener acceso no autorizado, pero en cambio, pretenden paralizar
las aplicaciones, servidores, redes enteras y evitar que los usuarios legítimos hagan uso de los
servicios de red. Normalmente provoca la pérdida de conectividad de la red por el consumo
del ancho de banda o sobrecarga de los recursos computacionales del sistema de la víctima. La
denegación de servicio es una técnica de ataque muy efectiva y es una de las herramientas que
más son usadas por los atacantes.
El ataque se puede dar de diversas formas, pero todas tienen algo en común; utilizan las
vulnerabilidades de la arquitectura de protocolos TCP/IP. Los ataques DoS pueden
implementarse en diferentes niveles de acuerdo al protocolo a atacar, entre los que se pueden
destacar los ataques a nivel de dispositivo, sistema operativo, aplicaciones, inundación de
datos y basados en las características propias de los protocolos.
Una variante del ataque DoS, es también conocido como denegación de servicio distribuida
DDoS (Distributed Denial of Service), que significa que el ataque se realiza desde varios
puntos, generando tráfico legítimo que evita los mecanismos de seguridad perimetral.
El ataque implementado en esta prueba es el de inundación de datos conocido también como
Sync-Flood, donde se ataca el funcionamiento del protocolo TCP, pues este utiliza un
mecanismo denominado saludo de tres vías para garantizar la entrega de paquetes como se
muestra en la figura 3.40; y el objetivo es un servidor web implementado con Apache en el
puerto 80.

66
Figura 3.40 Conexión legítima hacia un servidor.
La inundación SYN envía un flujo de paquetes SYN/ACK, muchas veces con la dirección de
origen falsificada, ver figura 3.41. Cada uno de los paquetes recibidos es tratado por el destino
como una petición de conexión, causando que el servidor intente establecer una conexión al
responder con un paquete TCP/SYN-ACK y esperando el paquete de respuesta TCP/ACK. Sin
embargo, debido a que la dirección de origen es falsa o la dirección IP real no ha solicitado la
conexión, nunca llega la respuesta. Estos intentos de conexión consumen recursos en el
servidor y limitan el número de conexiones que se pueden hacer, reduciendo la disponibilidad
en el servidor para responder peticiones legítimas de conexión.

Figura 3.41 Inundación Sync-Flood.

67
En la realización de esta prueba se utilizaron las herramientas lbd.sh (load balancing), el
script slowloris.sh y se sigue el siguiente procedimiento.
1. Se hace uso de la herramienta nmap para descubrir los puertos disponibles del servidor
víctima que tienen la dirección IP 192.168.1.97, ejecutando la siguiente orden:
> nmap -PN 192.168.1.97
Donde:
◦ PN: Evitar enviar peticiones ICMP (pings).

La figura 3.42 muestra el resultado del comando ejecutado, donde se observa que tiene
el puerto 80 abierto y corre el servicio http y es sobre este puerto que se realizó el
ataque.

Figura 3.42 Resultados del uso del comando nmap hacia la máquina objetivo.

2. Fue necesario saber el tiempo que el servidor mantiene abierta la conexión con el
cliente al momento de que éste hace una petición al servidor, para ésto, la herramienta
de slowloris tiene también esa funcionalidad y la figura 3.43 muestra el resultado de su
ejecución. En terminal se ejecuta la siguiente orden.
> ./slowloris.pl -dns 198.1.74.51 -test
La figura 3.43 muestra el comando a ejecutar.

68
Figura 3.43 Test para comprobar el tiempo que mantiene una conexión abierta el servidor.
3. Se verifica si el servidor objetivo tiene implementado la técnica de balanceo de carga,
que permite hacer un uso más eficiente de los recursos de hardware con los que cuenta,
por lo cual se ejecuta desde terminal la siguiente instrucción.
> lbd 198.1.74.51
La figura 3.44 muestra el resultado del comando, donde se observa que este servidor
no cuenta con la funcionalidad del balanceo de carga, lo que hace más fácil poder
realizar un ataque DoS.

Figura 3.44 Resultado de la ejecución de la comando lbd sobre la máquina objetivo.


4. Ya con la información recabada hasta este punto, se puede lanzar el ataque de
denegación de servicio (DoS), para hacer ésto, se hace uso del script slowloris
ejecutando desde una terminal la siguiente orden:
> ./slowloris.pl -dns 198.1.74.51 -port 80 -timeout 20 -num 500 -httpready
Donde:
◦ port 80: Puerto de ataque.

69
◦ timeout: Especifica el tiempo de envío entre paquetes.

◦ num: El total de peticiones a realizar.

◦ httpready: Se atacará el protocolo http.

La figura 3.45 muestra el comando a ejecutar.

Figura 3.45 Parámetros para la ejecución del script slowloris.sh.


En la figura 3.46 se muestra la construcción de las peticiones (paquetes) a enviar hacia
el servidor objetivo, que consiste en la creación y envío de grandes cantidades de
paquetes con lo que se logra inundar al servidor objetivo, logrando dejarlo fuera de
servicio al agotar sus recursos disponibles.

Figura 3.46 Creación de peticiones por la herramienta slowloris.pl.


5. Para verificar el éxito del ataque se intentó ingresar al sitio web implementado en la
máquina objetivo, obteniendo una respuesta negativa por parte del servidor web, como
se observa en la figura 3.47. Este paso se realizó desde un cliente Web en un equipo
distinto al del atacante.

70
Figura 3.47 Denegación de servicio Web hacia la dirección IP 192.168.1.97
3.3 Medidas de Seguridad Recomendadas.
A lo largo de este capítulo se exponen y explotan los diferentes tipos de fallos (en las
configuraciones) y vulnerabilidades que se encuentran instalados en los servicios y
aplicaciones que se ejecutan sobre los diferentes sistemas operativos virtualizados, cubriendo
completamente la fase de explotación; cabe mencionar que uno de los objetivos de esta tesis,
es orientar al lector sobre el proceso que conlleva realizar un test de intrusión, sin embargo, el
alcance de estas pruebas en la mayoría de los casos abordan la manera de como subsanar este
tipo de fallos en los servicios, por lo que de manera general se escriben a continuación un
conjunto de recomendaciones, que funcionan como medidas preventivas ante este tipo de
ataques en organizaciones en producción.
Los ataques de fuerza bruta son los más utilizados para conseguir el acceso no autorizado a un
sistema mediante la combinación de cuentas de usuario y contraseñas, al ser muy fácil de
implementar, se sugieren tomar las siguientes medidas:
• Dejar de usar el nombre de usuario que viene por defecto “admin/root”

• Utilizar contraseñas seguras que contenga letras mayúsculas y minúsculas, números y


símbolos.
• No usar la misma contraseña en más de una ubicación.

• Hacer regularmente copias de seguridad de archivos y base de datos.

• Usar autenticación de más de un factor como funciones captcha, o uso de Tokens, en


los formularios de login, con ésto se dificulta mucho que un script pueda probar
combinaciones de usuario y contraseña;

71
• Limitar los intentos de conexión siempre que se pueda.

El mundo de los exploits es muy complejo y amplio, un exploit no es más que una pequeña
aplicación escrita con el objetivo de aprovecharse de una vulnerabilidad conocida en un
software. Las vulnerabilidades existen por una mala configuración o la utilización de una
versión antigua del software. Por esta razón, se recomienda:
• Actualización del software: Disponer de las últimas versiones que corrijan dichos
fallos de programación.
• No usar software pirata: No ayuda a evitar estos riesgos, ya que al no disponer de
soporte no se podrá actualizar la versión y el usuario quedará vulnerable.
Por otra parte, los ataques XSS cada día toman más auge y son más sofisticados por los
atacantes, en donde la protección de cara al usuario se rige principalmente por las versiones y
tipos de navegadores utilizados, por lo que se recomienda:
• Nunca mostrar directamente el contenido obtenido de sitios no seguros sin realizar
previamente un escapado de los datos.
• Siempre validar los datos de entrada, no mezclar recursos HTTP y HTTPS en una
misma página
• Intentar evitar el uso de CSS y JavaScript en línea. Hay frameworks como Symphony o
CakePHP que ya se encargan de implementar este tipo de seguridad, pero si se da el
caso de que se usa PHP nativo, lo mejor es recurrir a la clase PHP Input Filter; ya que
dicha clase permite filtrar código malicioso ingresado en los formularios para prevenir
ataques XSS de manera sencilla.[6]
Para los ataques a redes vistos en este capítulo se recomienda:
• Utilizar infraestructura de claves públicas.

• No ofrecer logins en páginas que todavía no están en una sesión SSL

• Ofrecer autenticación con más de un factor a los clientes como una forma opcional de
agregar otro nivel de seguridad cuando se obtiene acceso a las cuentas.
• Uso de certificados EV SSL y prestando atención cuando falta el brillo o color verde en
el cliente web. Los certificados EV SSL confirman en forma definitiva la identidad de

72
la organización que posee el sitio web.[3]
• Tener actualizados los navegadores.

Los ataques SQL Injection son uno de los más habituales en el mundo Web. Se listan una serie
de sugerencias para evitar estos agujeros en la seguridad:
• Limitar los permisos del usuario a nivel de base de datos: Por ejemplo, en la mayoría
de aplicaciones web lo habitual es que no tenga que utilizarse DROP, por lo que por
seguridad sería no permitir al usuario hacerlo.
• No dar información extra al atacante: Evitando sacar en pantalla los errores de la base
de datos, en ese caso lo ideal es capturar el error haciendo uso de una excepción.
• No hay que confiar todo a las validaciones por Java Script, porque el atacante puede
saltárselas desactivándolo desde el navegador, por lo que es mejor hacer las
validaciones desde el lado del servidor.
• No permitir el uso de comillas simples: Evita poder modificar las consultas hacia la
base de datos.
• Usar URLs amigables, con ésto se dificulta en gran medida la inyección SQL, ya que
no se le dan pistas al atacante de que variables se están enviando y no les permite
añadir a las URLs más instrucciones.[3]
Durante las pruebas de denegación de servicio, se puede decir que la única forma que tiene
una organización de detener un ataque DoS es el de identificar los demonios que lo están
generando y filtrarlos individualmente en el router principal. Esto es una labor lenta, pero
hasta la fecha es la única que se ha mostrado efectiva. A nivel de gestión de red, es aconsejable
disponer de filtros de entrada, consiguiendo de esta manera evitar que entren a nuestra red
paquetes cuya dirección IP haya sido falsificada.[28]
Por todo lo indicado es altamente recomendable para fortalecer la seguridad de un servidor,
llevar acabo auditorias de forma periódica, de la parte Web, del código fuente, además de
revisar actualizaciones del software instalado y del sistema operativo. Un punto extra, sería la
implementación de aplicaciones WAF (Web Application Firewall), que actúen como firewall a
nivel de servicio.

73
Capitulo IV
Resultados
Kali-Linux ofrece al usuario numerosas aplicaciones para todas las vías del pentesting, desde
la recolección y análisis de información hasta la explotación de vulnerabilidades de sistemas,
Web y Wireless. Además, se dispone de herramientas para análisis forense, que si bien no es
una rama como tal del pentesting, pero se puede considerar una rama importante de la
seguridad informática.
La utilización (selección) del sistema operativo Kali-Linux como sistema base, resultó una
elección adecuada ya que se pudieron ejecutar las herramientas de ataque en su máximo
potencial y optimiza el uso de todos los recursos físicos disponibles. En la investigación
documental realizada para pentesting, no se encontró otro framework o sistema operativo de
distribución libre ni propietaria más completo que el sistema operativo Kali-Linux, que a la
fecha es la distribución más avanzada de pruebas de penetración y auditorías de seguridad y
ésta se adhiere completamente a los estándares de desarrollo de Debian, haciendo que su uso
sea fácil e intuitivo para principiantes y expertos en seguridad informática.[6]
La elección de la PC utilizada para las pruebas resultó ser adecuada, porque fue posible
realizar las pruebas sin contratiempos, dado que existen ataques que demandan una capacidad
de procesamiento y memoria RAM considerable, como es el caso de los ataques de fuerza
bruta donde el consumo de memoria RAM depende del número de iteraciones ejecutadas para

74
hallar las credenciales de acceso a un sistema o servicio. El consumo de recursos físicos de un
entorno virtualizado se puede ver en las figuras 4.1 y 4.2, en donde se observa el consumo de
recursos en un estado normal (ejecutando el sistema base y el sistema operativo objetivo
virtualizado) y durante la ejecución de un ataque de fuerza bruta, por lo que para implementar
un entorno virtualizado se requiere de una PC con los recursos físicos que soporten el sistema
operativo base más el sistema operativo virtualizado y que además se tengan recursos
suficientes para ejecutar los ataques que dependiendo de su naturaleza pueden consumir desde
un 80% de los recursos disponibles.

Figura 4.1 Recursos disponibles ejecutando Kali-Linux y una máquina virtual.

Figura 4.2 Recursos consumidos al realizar el ataque de fuerza bruta.

75
El entorno implementado que se describe en el apartado 3.1 y se muestra en la figura 3.1
resultó útil en la realización de cada una de las pruebas implementadas, permitiendo explotar
de manera exitosa, mediante técnicas de Hacking Ético, vulnerabilidades y fallos de
configuración en aplicaciones y servicios que se ejecutan en diversos sistemas operativos; lo
que ayuda a desarrollar habilidades de pentesting tanto a profesionales de seguridad como a
los estudiantes de tecnologías de información, sin afectar a sistemas en producción o sin
autorización, pues todo se realiza en un ambiente controlado. Por lo que entender el proceso
del Hacking Ético permite tomar las medidas precautorias para prevenir el éxito de estos
ataques a entornos reales que se encuentran en producción.
Kali-Linux al ser un sistema operativo orientado a la seguridad informática cuenta con
múltiples herramientas que permiten automatizar el proceso de los ataques realizados, sin
embargo se pudo corroborar que estas herramientas no trabajan por sí solas, es necesario
conocer los fundamentos teóricos de como funcionan los servicios a atacar, y seguir una
metodología ordenada que se describe en el apartado 2.4.2, con el objetivo de entender los
resultados arrojados en cada prueba.
Cada ataque tiene su propia naturaleza de funcionamiento de acuerdo al objetivo buscado por
parte del pentester, y cada paso puede requerir de la ejecución de diversas herramientas y
procedimientos, con la finalidad de potencializar la información obtenida. Por ejemplo los
resultados arrojados durante un ataque pueden conducir a comprometer de forma completa un
sistema; este caso se puede ver en el ataque realizado contra el servidor Samba y al servidor
MySQL, donde se permitieron una escalada de privilegios hasta lograr posicionarse como
superusuario dentro de un sistema operativo.
En la fase de reconocimiento del pentesting, lo que se busca principalmente es definir el
objetivo a atacar y, a partir de ello, obtener la mayor cantidad de información sobre él, por
ejemplo, e-mail, direcciones físicas, información personal, resolución de nombres DNS,
etcétera. Para este caso en particular, se sabe que se cuenta con una estructura definida de un
entorno de pruebas, así mismo también se conocen las direcciones IP con las que cuenta el
entorno, por lo que teniendo en cuenta esta configuración, la primera fase queda cubierta, sin
embargo para entornos no virtualizados, Kali-Linux cuenta con herramientas que permiten
realizar la recolección de esta información, tales como whois, traceroute, nslookup, maltego

76
por mencionar algunas y también se usan otras técnicas como el Google Hacking.
La segunda fase del Hacking Ético, de escaneo, consistió en obtener toda la información
posible sobre el objetivo para desarrollar los vectores de ataque más adecuados y así garantizar
el éxito de la intrusión a un sistema. Kali-Linux cuenta con una serie de herramientas que
permiten desarrollar esta fase, la que se utilizó en este trabajo fue nmap, dado que es una de las
más efectivas para descubrir servicios de red ejecutándose en diferentes terminales de red, esta
herramienta resultó de utilidad pues permitió analizar los servicios que se ejecutan en los
diferentes sistemas operativos virtualizados, para después llevar a cabo los siguientes pasos
marcados como fundamentales en el desarrollo de pruebas de pentesting. La herramienta
nmap brinda también información detallada de las diferentes características de las terminales
de red, y para este trabajo, ésta funcionalidad resultó fundamental para planear los vectores de
ataque y seleccionar las herramientas a utilizar para la ejecución del pentesting.
Durante la tercera fase del pentesting, la de enumeración, se descubrió información relativa a
los usuarios, nombres de equipos, recursos y servicios de red, usando como herramienta
principal, nuevamente a nmap; la fase de escaneo se puede ver similar a ésta, pero la diferencia
es que para esta fase las consultas siempre se hacen al equipo objetivo y en forma activa, lo
que trae aparejado que las conexiones puedan ser detectadas y registradas. La realización de
esta fase se puede observar en el paso 2 del ataque de fuerza bruta, en el paso 1 del ataque al
servicio Samba, en el paso 1 y 2 del ataque XSS, y en el paso 1 y 2 del ataque SQL Injection,
donde se obtuvo la posibilidad de detectar vulnerabilidades sobre los sistemas objetivos.
Durante la cuarta fase, de explotación, y una vez detectadas las vulnerabilidades, el gran paso
es el ingreso al sistema definido como objetivo. La realización de esta fase se observa en el
paso 3 del ataque de fuerza bruta; en el paso 3 y 4 del ataque al servicio Samba; en el paso 2 y
3 del ataque XSS; en el paso 4, 5 y 6 del ataque a redes; el paso 3, 4 y 5 del ataque SQL
Injection; y en el paso 4 del ataque de Denegación de Servicio; en donde se logra explotar las
vulnerabilidades encontradas previamente en las fases anteriores, logrando tomar el control de
los diferentes tipos de sistemas en donde se ejecutaban las aplicaciones objetivo, mediante el
uso de las diferentes técnicas de ataque que se exponen en el capítulo 3.
Como se puede establecer, en cada una de las pruebas realizadas se siguió un orden ya

77
establecido y que dio resultados satisfactorios al lograr concluir con éxito cada uno de los
ataques planeados, pues se pudo en cada caso exponer los sistemas y aplicaciones
aprovechando las vulnerabilidades inherentes en ellas y los fallos en su configuración.

78
Capítulo V
Conclusiones
Las computadoras en todo el mundo son susceptibles de ser atacadas por crackers o hackers
capaces de comprometer los sistemas informáticos y robar información valiosa, o bien
eliminar una gran parte de ella. El resultado de la violación de los sistemas y redes
informáticas a nivel global han provocado la pérdida o modificación de los datos sensibles a
las organizaciones, representado daños que se traducen en miles o millones de dólares. Esta
situación se presenta debido a los esquemas ineficientes de seguridad con los que cuentan la
mayoría de las compañías a nivel mundial y sobre todo al desconocimiento en la planeación de
esquemas de seguridad eficientes que protejan los recursos informáticos de las actuales
amenazas combinadas. Toda esta situación hace imprescindible conocer si estos sistemas y
redes de datos están protegidos de cualquier tipo de intrusiones.
El Hacking Ético aparece como una parte de una solución potencial para la seguridad en
Internet que se encuentra quebrantada. Por tanto, el objetivo fundamental del Hacking Ético es
explotar las vulnerabilidades existentes en el sistema de "interés", valiéndose de un test de
intrusión que verifica y evalúa la seguridad física y lógica de los sistemas de información,
redes de computadoras, aplicaciones web, bases de datos, servidores, etc. Todo con la
intención de ganar acceso y "demostrar" que un sistema es vulnerable, esta información
obtenida, es de gran ayuda a las organizaciones al momento de tomar las medidas preventivas

79
en contra de posibles ataques malintencionados; por lo que los beneficios de entrenar Hackers
Éticos lejos de riesgos asociados, tienen un fin específico: contrarrestar el daño que puede
causar un hacker malicioso en una organización de tal manera que las vulnerabilidades sean
mitigadas antes de que sean explotadas.
Motivado por lo anterior, el servicio de Hacking Ético consiste en la simulación de posibles
escenarios donde se reproducen ataques de manera controlada, así como actividades propias de
los delincuentes cibernéticos. Esta forma de actuar tiene su justificación en la idea de que
"para atrapar a un intruso, primero debes pensar como intruso". Es importante aclarar que para
llevar a cabo el Hacking Ético es imprescindible “contar con la autorización expresa de la
empresa” a través de un contrato. El resultado final indica los puntos débiles de la empresa y
que pasos se deben realizar para eliminar dichas debilidades o mitigarlas caso de no ser
posible su eliminación.
Es conveniente hacer mención que las herramientas de seguridad y vulnerabilidades cambian a
diario. Cada día nuevas vulnerabilidades son publicadas, y nuevas herramientas y scripts son
implementadas o actualizadas; por lo que se deben desarrollar mecanismos para mantenerlos
actualizados. Algunos de los métodos más utilizados son: monitoreo de sitios Web que
proveen información de seguridad y vulnerabilidad, suscripción a sitios que brinden
información relacionada con la seguridad, lectura de revistas, libros, artículos, etcétera. Todas
estas fuentes proporcionan información sobre nuevos descubrimientos y vulnerabilidades, por
lo cual, el mantener una supervisión constantemente de información, permite incorporar
nuevos parámetros en los procedimientos de pruebas.
Esta tesis lleva al lector al punto de vista del pentester, con la idea de introducirle en aspectos
técnicos y a la vez escenificar situaciones reales que puedan simplificar el proceso de
aprendizaje del mismo. Las pruebas de concepto que se detallan, son situaciones y escenarios
que fácilmente se pueden encontrar en empresas y organizaciones durante el proceso de
pentesting. Existen una serie de buenas prácticas o normas generales en relación con la
seguridad de la información y de forma particular para pruebas de penetración y
almacenamiento de ciertos tipos de datos. Cualquier individuo que se dedique a realizar estas
pruebas de penetración, debe tener al menos un conocimiento práctico de estas normas las
cuales se pueden consultar más a detalle en: http://www.penetration-testing.com/.

80
Las herramientas utilizadas, específicamente el software, para las pruebas de penetración
(Hacking Ético), fue lo más importante para poder realizar el presente proyecto. Cabe destacar
que el 100% del software utilizado se encuentra embebido dentro de la distribución Kali-Linux
y también en Internet a libre disposición de quien desee descargarlo. Y he aquí una de las
principales razones por la cual existen tantos intentos de intrusión en sistemas de todo el
mundo: el software necesario está al alcance de todos.

81
Referencias Bibliográficas
[1] Benchimol, D., (2013) Hacking para principiantes. Primera Edición. Editorial Fox
Andina. Buenos Aires, Argentina.
[2] Benchimol, D., (2011) Hacking desde Cero. Primera Edición. Editorial Fox Andina.
Buenos Aires, Argentina.
[3] Chema, A., (2013) Hacking a aplicaciones Web: SQL Injection. Segunda Edición.
Editorial 0xword. Madrid España.
[4] Dudzi, E., (2013) “What is Kali” PenTest Magazine. Volumen 3, Número 4. Marzo-
Abril 2013, pp. 6-11.
[5] Engebretson, P. (2011) The Basics of Hacking and Penetration Testing: Ethical
Hacking and Penetration Testing Made Easy. Editoral Elsevier. United States of
America.
[6] González, P., (2013) Pentesting con Kali. Primera Edición. Editorial 0xword.
Madrid España.
[7] González, P., (2013) Metasploit para Pentesters. Segunda Edición. Editorial
0xword. Madrid España.
[8] Harris, S., (2013) All in One: CISSP Exam Guide. Sexta Edición. Editorial Mc Graw
Hill.
[9] Kennedy, D., O'Gorman, J., Kearns, D., Aharoni, M. (2011) Metasploit: The
Penetration Tester's Guide. San Francisco: No Starch Press.
[10] Lee, A., (2012) Advanced Penetration Testing for Highly-Secured Environments,
The Ultimate Security Guide (Primera edición). 35 Livery Street Birmingham B3
2PB, UK: Packt Publishing Ltd
[11] Piattini, M., (1998) Auditoría Informática: Un enfoque práctico. Primera Edición.
Computec RAMA. Madrid España.
[12] Raphael, H. y Ronald. M., (2012) El libro del administrador de Debian: Debian
Squeeze, desde el descubrimiento a la maestría. Tercera edición.

82
[13] Tori, C., (2008) Hacking Etico. Primera Edición. Edición de Mastroianni Impresiones.
Bueno Aires, Argentina.
[14] Cert, Cert. (2014) “Welcome to CERT: About us”. The CERT Program: Anticipating
and Solving the Nation's Cybersecurity Challenges. [En línea]. Pensilvania,
disponible en: http://www.cert.org/ [Accedido el día 15 de enero del 2014].
[15] Doupé, A., Cova, M., Vigna, G., (2010) “Detection of Intrusion and Malware, and
Vulnerability Assessment”: Why Johnny Can't Pentest: An Analysis of Black-Box
Web Vulnerability Scanners. [En línea]. Germany: Springer Berlin Heidelberg. Pp:
111-131, disponible en: http://link.springer.com/chapter/10.1007/978-3-642-14215-
4_7 [Accedido el día 01 de noviembre del 2013].
[16] Huilca, C. y Nowi, G., (2012) “Seguridad Informática” Hacking Ético para
detectar Vulnerabilidades en los Servicios de la Intranet del Gobierno Autónomo
Descentralizado Municipal del Cantón Cevallos. [En línea]. Ecuador. Tesis para
obtener el título de Ingeniería en Sistemas Computacionales e Informáticos.
Ambato Ecuador: Universidad Técnica de Ambato, Facultad de Ingeniería en
Sistemas Electrónica e Industrial. Noviembre 2012. 182 h, disponible en:
http://repo.uta.edu.ec/bitstream/handle/123456789/2900/Tesis_t764si.pdf?
Sequence=1 [Accedido el día 20 de octubre del 2013].
[17] Inteco, Inteco. (2014) “Información INTECO-CERT”. INTECO. INTECO-CERT,
Acerca de. [En línea]. España, disponible en: http://cert.inteco.es/Acerca_de/
[Accedido el día 14 de enero del 2014].
[18] Inteco, Intenco. (2013) “Información INTECO-CERT”. Actualidad
Vulnerabilidades. [En línea]. España, disponible en: http://www.cert.inteco.es.
[Accedido el día 20/octubre/2013].
[19] Inteco, Intenco (2013) “Cuadernos de notas del observatorio” ¿Qué son las
vulnerabilidades del software? [En línea]. España, disponible en:
http://www.cert.inteco.es/vulnSearch/Actualidad/Actualidad_Vulnerabilidades/?
postAction=getVulnsHome. [Accedido el día 28 de noviembre del 2013]

83
[20] Jargon. (2013) “HACK STORY” Hactivismo. [En línea]. México, disponible en:
http://hackstory.net/Hacktivismo. [Accedido el día 1 de noviembre del 2013].
[21] Llamaret, M. (2013) “Conociendo Kali” Grupo de Usuarios de Tecnologías Libres.
[En línea]. Cuba, disponible en: http://gutl.jovenclub.cu/conociendo-kali-linux/
[Accedido el día 16 de enero del 2014].
[22] Mitre, Mitre. (2013) “About CVE”. CVE – About CVE. [En línea]. U.S.A,
disponible en: http://cve.mitre.org/about/index.html [Accedido el día 15 de enero
del 2014].
[23] Nist, Nist. (2008) “About CSD: The Computer Security Division”. Computer
Security Division – Computer Security Resource Center. [En línea]. U.S.A,
disponible en: http://csrc.nist.gov/mission/index.html [Accedido el día 15 de enero
del 2014].
[24] Offensive, S. (2014) “KALI LINUX”. Whats New in Kali Linux? [En línea].
U.S.A, disponible en: http://www.kali.org/news/kali-linux-whats-new/ [Accedido el
día 16 de enero del 2014].
[25] Offensive, S. (2014) “¿Qué es Kali Linux” Características de Kali-Linux. [En línea].
U.S.A, disponible en: http://es.docs.kali.org/introduction-es/que-es-kali- linux ||
[Accedido el día 16 de enero del 2014].
[26] Okolie, C. Oladeji, F., Benjamin, B., Alakiri, H., Olisa, O. (2013) “Penetration
Testing” Penetration Testing for Android Smartphones. [En línea]. U.S.A,
disponible en: http://iosrjournals.org/iosr-jce/papers/Vol14-issue3/P0143104109.pdf
[Accedido el día 13 de noviembre del 2013].
[27] Paolo, P. (2013) “Hackmageddon” Cyber Attacks Statistics. [En línea]. U.S.A.,
disponible en: http://hackmageddon.com/2013/11/17/october-2013-cyber-
attacks-statistics/. [Accedido el día 5 de noviembre del 2013].
[28] Sorribas, I. (2013) “Curso Metasploit” Curso de Metasploit Framework. [En línea].
México, disponible en: http://www.offensive-security.com/metasploit-
unleashed/Main_Page [Accedido el día 16 de enero del 2014].

84

S-ar putea să vă placă și