Beruflich Dokumente
Kultur Dokumente
POR:
DE LA COMPUTACIÓN
SECRETARIO DE LA FACULTAD:
III
IV
REGLAMENTO DE TESIS
V
ÍNDICE
INTRODUCCIÓN ......................................................................................................................1
VI
2.2.3 Disponibilidad ......................................................................................................... 11
VII
3.2.3 Fase de Modelado de amenazas ............................................................................... 28
VIII
4.8 Definir temas aceptados para pruebas de Ingeniería Social .......................................... 41
IX
6.4 Enumeración de DNS .................................................................................................. 60
X
9.2.1 Cross Site Scripting (XSS) ................................................................................... 97
XI
11.4 Dradis framework ..................................................................................................... 126
XII
TABLA DE GRÁFICAS
XIII
Gráfica 28: modulo auxiliar de login ssh ejecutándose exitosamente ......................................... 75
Gráfica 29: modulo auxiliar smb_version .................................................................................. 76
Gráfica 30: Ejecución del módulo smb_version ......................................................................... 76
Gráfica 31: Referencia técnica de vulnerabilidad pública samba ................................................ 77
Gráfica 32: identificación de exploit usermap_script ................................................................. 78
Gráfica 33: Configuración de parámetros de exploit usermap_script.......................................... 78
Gráfica 34: ejecución exitosa de exploit usermap_script logrando root ...................................... 79
Gráfica 35: búsqueda de exploit para vsftp ................................................................................ 80
Gráfica 36: configuración de parámetros de exploit vsftp .......................................................... 80
Gráfica 37: ejecución exitosa de exploit, logrando root.............................................................. 80
Gráfica 38: Ejecución exitosa de exploit para unreal ircd........................................................... 81
Gráfica 39: identificación de CGI mediante Burp Proxy ............................................................ 82
Gráfica 40: Análisis de código Fuente vulnerabilidad shellshock ............................................... 83
Gráfica 41: Respuesta de script CGI .......................................................................................... 84
Gráfica 42: Envío de petición hacia la herramienta “Repeater”, Burp Proxy .............................. 84
Gráfica 43: Burp Proxy Repeater, Header Original .................................................................... 84
Gráfica 44: Burp Proxy Repeater, Header modificado. .............................................................. 85
Gráfica 45: Ejecución de comando remote. Netcat .................................................................... 85
Gráfica 46: Reverse shell con netcat .......................................................................................... 86
Gráfica 47: heartbleed bug ........................................................................................................ 86
Gráfica 48: filippo.io, verificación de servidor web con TLS/SSL Vulnerable ........................... 87
Gráfica 49: configuración de modulo auxiliar MSF para explotación de Heartbleed .................. 88
Gráfica 50: Explotación exitosa de Heatbleed. Imagen ½ .......................................................... 89
Gráfica 51: Explotación exitosa de Heartbleed. Imagen 2/2 ....................................................... 89
Gráfica 52: funcionamiento básico de un Buffer Overflow ........................................................ 90
Gráfica 53: DDoS ..................................................................................................................... 91
Gráfica 54: Parámetros de configuración GoldenEye ................................................................. 92
Gráfica 55: Ejecución de GoldenEye, Imagen 1/4...................................................................... 92
Gráfica 56: Ejecución de GoldenEye, Imagen 2/4...................................................................... 92
Gráfica 57: Ejecución de GoldenEye, monitoreo de tráfico, Imagen 3/4 .................................... 93
Gráfica 58: Ejecución de GoldenEye, monitoreo de tráfico, Imagen 4/4 .................................... 93
XIV
Gráfica 59: OWASP Top 10, Cross Site Scripting ..................................................................... 97
Gráfica 60: Funcionamiento de XSS Almacenado ..................................................................... 98
Gráfica 61: OWASP Top 10, Inyección ..................................................................................... 98
Gráfica 62: Funcionamiento de Inyección SQL ....................................................................... 100
Gráfica 63: Esquema de funcionamiento Cliente Web, Proxy HTTP y Servidor Web .............. 101
Gráfica 64: Identificando parámetros de entrada en formulario web ........................................ 101
Gráfica 65: Pruebas de fuzzing, insertando una comilla simple ................................................ 102
Gráfica 66: resultado de fuzzing, insertando una comilla simple .............................................. 102
Gráfica 67: Inyección de sentencia SQL en parámetro de entrada ............................................ 103
Gráfica 68: Ejecución exitosa de sentencia SQL ...................................................................... 103
Gráfica 69: Ejecución de SQLMap .......................................................................................... 104
Gráfica 70: Confirmación de parámetro vulnerable a SQLInjection, SQLMap ......................... 104
Gráfica 71: Dump de la base de datos, crackeo de hashes de usuarios vía SQLMap. ................ 105
Gráfica 72: OWASP Top 10, Referencia Insegura a Objetos Directos ..................................... 105
Gráfica 73. Cuadrante mágico de Gartner: test de seguridad de aplicaciones ........................... 107
Gráfica 74: Acunetix en ejecución ........................................................................................... 108
Gráfica 75: Nikto en Ejecución ............................................................................................... 109
Gráfica 76: Archivos Linux, búsqueda de información sensible ............................................... 111
Gráfica 77: Comandos Linux para búsqueda ........................................................................... 111
Gráfica 78: Ejecución de Unix-privesc-check .......................................................................... 120
Gráfica 79: Gráfica de Pie, Resumen Global de Hallazgos ...................................................... 124
Gráfica 80: Ejemplo de principales acciones recomendadas, basadas en tiempos de ejecución. 124
Gráfica 81. Dradis Framework ................................................................................................ 127
XV
ANEXOS
XVI
INTRODUCCIÓN
Han pasado más de 3 décadas desde que se creó el primer virus informático, el cual, fue
creado sobre la plataforma Unix. Sin embargo, hoy en día, los sistemas tipo Unix no son los más
afectados por éstos; en contraste, los sistemas Windows han tenido mayor facilidad y popularidad
de infección de éstos y otros tipos de códigos maliciosos.
A raíz de este tipo de incidentes, se empezó a generar un interés por la (in) seguridad de
los sistemas. Con el pasar del tiempo, continúa creciendo el número de personas interesadas en la
Seguridad Informática, ya sea defensiva, como ofensiva. A esto, se añade que hoy en día, no es el
malware el único método de afectación a un sistema informático, sino que existen múltiples
vectores de ataque de los cuales un atacante puede tomar ventaja, como las vulnerabilidades a nivel
de red, sistemas operativos o tecnologías web, sin pasar por alto a los usuarios.
Mucho se habla ahora de los “Hackers”, debido a las actividades ilícitas que pueden
mencionarse en los principales noticieros alrededor del mundo; personas con alto conocimiento
técnico que vulneran los sistemas de información de grandes corporaciones, gobiernos, entidades
financieras. Pero existen los “hackers buenos”.
Y es que el término adecuado para Hacker en términos generales es, una persona con altos
conocimientos de informática, capaz de vulnerar sistemas de información. Entonces la pregunta
es, ¿esto es bueno, o es malo?
Un hacker, puede utilizar sus habilidades para el bien, o para el mal. A éstos, en el mundo
de la seguridad informática se les denomina, Hackers de sombrero negro (malos) o hackers de
sombrero blanco (buenos). Los hackers de sombrero blanco, realizan actividades bajo una línea
ética, en donde normalmente el objetivo se basa en identificar vulnerabilidades y materializar su
explotación, previa autorización y en escenarios controlados, en común acuerdo con sus clientes u
organización para la que laboran. No infringen la ley, su motivación es mostrar a las
organizaciones lo fácil que pueden ser comprometidos sus servicios, extraer información, causar
sabotaje, o engañar al humano (sus colaboradores y proveedores).
1
2
Una de las actividades que realizan estos “Hackers Éticos”, se denomina “Test de
Intrusión”, el cual, como su nombre lo indica, busca realizar una intrusión en los sistemas
informáticos para los cuáles el profesional en cuestión es contratado. El presente trabajo de
investigación, tiene como principal objetivo plantear metodologías y técnicas de Intrusión de
Sistemas, con el fin de demostrar la manera en que un atacante trataría de vulnerar, en la vida real,
los sistemas informáticos de una organización. Todo esto, en un ambiente controlado y con las
respectivas autorizaciones, bajo una línea estrictamente ética.
CAPÍTULO 1: ANTEPROYECTO
1.1 Antecedentes del Tema
Microsoft Windows, es hoy por hoy el sistema operativo que domina la mayoría de la cuota
de mercado, en cuanto a uso de escritorio respecta. Existen estadísticas a nivel mundial que nos
muestran el comportamiento de uso de los sistemas más utilizados por los usuarios. Los sistemas
de Microsoft, dominan con más del 90% de cuota de mercado a nivel de uso de escritorio (casa y
oficina), mientras que Linux está presente en no más de un 2%, esto de acuerdo a estadísticas de
marketshare.com, correspondientes a enero 2017.
3
4
Algunos casos de sitios web cuyas tecnologías son abiertas, por mencionar algunos han
sido los sitios repositorios de Fedora (2008), Debian (2003), así como el foro de usuarios de
Ubuntu (2013); este último fue atacado por un grupo de hackers que logró obtener privilegios de
super usuario (root), mediante técnicas que permitieron realizar un defacement1 del sitio y
obteniendo todos los nombres de usuario, contraseñas y correo electrónicos almacenados en los
servidores. Además, las vulnerabilidades día cero (en su momento) heartbleed (vulnerabilidad en
Open SSL), ShellShock (vulnerabilidad en Bash2), así como el hackeo del sitio web de Linux
Mint, en donde atacantes pudieron reemplazar la ISO oficial del sistema operativo por una versión
con malware, y cuyo nivel de criticidad fue catalogado como crítico, debido al enorme impacto
que pudieron generar en las plataformas Linux.
Por tanto, un ataque a este tipo de infraestructuras críticas puede significar grandes
impactos negativos como la baja de servicios, pérdida o robo de información, y por ende tener
consecuencias económicas, legales o incluso de daño de imagen para la organización afectada. Y
es a través de un Test de Intrusión que puede anticiparse a ciertos ataques que podrían generarse
desde personas malintencionadas; este es justamente el beneficio de realizar test de intrusiones,
con los cuales, luego de identificar vectores de ataque específicos, se logra mitigar el riesgo,
siempre y cuando se mantengan de manera periódica las revisiones de seguridad en las plataformas
críticas.
1
Consiste en la intrusión ajena al servidor web por medio de diversas técnicas que aprovechan la vulnerabilidad del mismo o bien a nivel de
programación del sitio web, permitiendo la modificación total o parcial del contenido o configuración.
2
Bourne again shell es un programa informático, cuya función consiste en interpretar órdenes, y un lenguaje de consola en sistemas Linux.
5
Asimismo, demostrar que todo sistema informático es vulnerable en algún punto, ya que
la seguridad informática es un proceso que debe estar en mejora continua en las empresas. Decir
que un sistema es 100% seguro es falso, ya que, con el uso adecuado de tecnologías, los
investigadores alrededor del mundo encuentran eventualmente la manera de vulnerar diferentes
tipos de tecnologías. Hoy en día ya es más común ver noticias sobre hacking de vehículos, de IoT
(Internet of Things) o infraestructuras SCADA3.
También se espera que se pueda aprovechar el uso de las herramientas que se utilizan para
hacer las pruebas, ya que en su mayoría son de código abierto, o bien son herramientas propietarias
que han sido catalogadas como las más eficientes y robustas para realizar determinadas actividades
durante las fases de un test de intrusión.
3
Acrónimo de Supervisory Control And Data Acquisition (Supervisión, Control y Adquisición de Datos).
6
Contar con las políticas y métricas dictadas por cualquiera de las normativas citadas con
anterioridad es una buena práctica, pero para poder tener completo el panorama de Seguridad,
orientándose más específicamente a posibles vectores de ataque, su impacto y riesgo asociado,
debe contemplarse la contraparte técnica, enfocada en el ámbito de la Seguridad Informática, en
donde se pueden encuadrar actividades netamente técnicas como el análisis de vulnerabilidades,
los test de intrusión, el hardening de dispositivos de infraestructura críticos, las mejores prácticas
de configuración recomendados por institutos como SANS o NIST, entre otros.
Por otro lado, se tiene la idea que los sistemas operativos Linux son normalmente más
eficientes en términos de rendimiento, y seguros en términos generales, comparados con los
sistemas operativos de Microsoft, en las áreas donde corresponde.
Dentro del proceso del test de intrusión, existe una actividad donde se confirma el alcance
de los sistemas a explotar, denominada Reunión de Planificación (o mejor conocida por su término
en inglés kick-off) entre el Auditor de Seguridad (investigador) y el equipo técnico de la empresa
seleccionada. De esto se obtiene un número específico de direcciones IP, aplicaciones a ser
evaluados.
1.8 Hipótesis
Los sistemas informáticos de código abierto, específicamente los Sistemas Operativos
GNU/Linux y tecnologías web pueden ser atacados como cualquier otra tecnología propietaria,
mediante la utilización de metodologías, técnicas y herramientas adecuadas.
1.11.2 Específicos
1. Comprender y llevar a cabo el ciclo de test de intrusión, mediante la correcta
adaptación y puesta en marcha de metodologías y documentación relacionada con el test
de intrusión.
2. Documentar debidamente todos los hallazgos, metodologías y técnicas
utilizadas.
3. Proveer recomendaciones en la mejora continua de la seguridad
informática, realizando un traspaso de conocimientos al personal técnico de la organización
objetivo.
CAPÍTULO 2: CONCEPTOS Y FUNDAMENTOS
2.1 Introducción
En la actualidad, existen muchos conceptos y términos que giran en torno al campo de la
Seguridad de la Información y la Seguridad Informática. Es importante saber que, aunque ambos
términos no significan lo mismo, están estrechamente ligados, y ambos buscan garantizar la
seguridad de un activo común: LA INFORMACIÓN.
De igual forma, se cuenta con una sección de glosario, para poder profundizar en aquellos
términos que puedan presentar cierta dificultad de entendimiento al lector. Es además importante,
tener en cuenta que la mayoría de documentación, bibliografía y términos nativos del campo de
Seguridad Informática, existen primordialmente en idioma inglés, por lo que se ha hecho un mayor
esfuerzo por hacer traducciones funcionales y explicaciones ampliadas de cada uno de ellos.
2.2.1 Confidencialidad
Se trata de la cualidad que debe poseer un documento o archivo para que este sólo se
entienda de manera comprensible o sea leído por la persona o sistema que esté autorizado. De esta
manera se dice que un documento (o archivo o mensaje) es confidencial si y solo si puede ser
comprendido por la persona o entidad a quien va dirigida o esté autorizada. En el caso de un
mensaje, esto evita que exista una intercepción de éste y que pueda ser leído por una persona no
autorizada.
2.2.2 Integridad
La integridad es la cualidad que posee un documento o archivo que no ha sido alterado, y
que además permite comprobar que no se ha producido manipulación alguna en el documento
original. Aplicado a las bases de datos sería la correspondencia entre los datos y los hechos que
refleja.
2.2.3 Disponibilidad
Se trata de la capacidad de un servicio, de unos datos o de un sistema, que pueda ser
accesible y utilizable por los usuarios (o procesos) autorizados cuando se requiera.
12
Por otro lado, la Seguridad de la Información, según ISO 27001, es la disciplina que nos
habla de los riesgos, las amenazas, de los análisis de escenarios, de las buenas prácticas y esquemas
normativos, que nos exigen niveles de aseguramiento de procesos y tecnologías para elevar el nivel
de confianza en la creación, uso, almacenamiento, transmisión, recuperación y disposición final
de la información.
13
Es interesante también, conocer y analizar las preocupaciones que tienen las empresas en
Latinoamérica en materia de seguridad, ya que estas se preocupan por evitar los casos de fraude,
aunque como se pudo ver con anterioridad este tipo de incidentes son los que menos sucede. Los
casos de Phishing, que son los más habituales, luego de las infecciones de malware, son casi los
que menos preocupan a las empresas, delante de los ataques de denegación de servicio.
Asimismo, es importante hacer notar que, tanto el informe de ESET, como informes de
otras firmas de consultoría en la región como Deloitte TTL, a través de Deloitte Technology, Media
and Telecommunications Predictions, Deloitte TTL (2017), indican que, las empresas todavía hacen
inversiones mayoritariamente en soluciones de seguridad tecnológica, como Firewall, IDS’s,
16
IPS’s, entre otras, pero carecen de personal capacitado para el tema de gestión, análisis e incidentes
de Seguridad Informática. Como consecuencia, el mercado está viendo nacer servicios de
Tecnología y Seguridad “As a Service”, como lo son los SOC (Service Operations Center)
Tercerizados.
2.6 GNU/Linux
Es un sistema operativo que hoy en día tiene mucho auge a nivel de servidores: de
aplicaciones, de correo, de Voz IP, plataformas de servicios en la nube, entre otros. Es un sistema
operativo de código abierto basado en Unix, aunque su principal característica es que, al ser de
código abierto, millones de programadores y voluntarios participan activamente en su desarrollo.
Tiene más de 20 años de vida, y su potencial radica en la combinación de su núcleo Linux
(desarrollado inicialmente por Linus Torvals en los años 80’s) con aplicaciones y complementos
periféricos desarrollados por terceros involucrados con el Software Libre y de Código Abierto.
Linux domina con un 82.6% versus otros sistemas operativos, aunque cabe mencionar que
en esta categoría se encuentran distribuciones GNU/Linux que utilizan el kernel Linux como tal
(sin modificaciones) y esto la diferencia de otras distribuciones que encajan dentro de su propia
categoría, como Red Hat, quienes cuentan con su propia compilación del kernel Linux, o SuSE
Linux.
Al final de los 80’s y principio de los 90’s, las organizaciones comenzaban a sumergirse y
ser parte del internet; empezaba el auge del comercio electrónico, las conexiones B2B (Business
to Business) y poco a poco, fueron dándose casos de personas que “hackeaban” los sitios por
diversión, o con fines ilícitos como robo o fraudes electrónicos.
Sumado a esto, no existía una plataforma educativa formal que instruyera a profesionales
en el ámbito de la seguridad informática, ni mucho menos certificaciones que validaran los
conocimientos adquiridos. Debido al auge que se comenzó a dar, en términos de anti-seguridad
informática, muchos profesionales comenzaron a instruirse por su propia cuenta, y ofrecer sus
servicios externos a organizaciones que podían verse afectadas por intrusiones a sus sistemas. Esta
20
metodología adoptó el término de “Hacking Ético”, pues ciertamente, para protegerse de un ataque
cibernético, es necesario pensar y actuar tal cual un atacante real lo haría, para así conocer nuestras
propias debilidades, y mejorar continuamente todas las capas de seguridad de nuestra
organización.
Es importante hacer énfasis en la palabra ética, ya que si, por ejemplo, un banco decide
contratar a una persona para violar sus medidas de seguridad, esta persona por lógica debe ser una
persona ética, pues luego de acordar los términos de confidencialidad con el cliente, el profesional
no podría por ejemplo divulgar las fallas en los sistemas que tiene el banco, o publicar contraseñas,
nada de esto, debe apegarse a los lineamientos éticos que demandan sus servicios profesionales.
A este profesional que lleva a cabo todas las evaluaciones de seguridad, se le denomina
“Hacker Ético”, o conocido también como Hacker de Sombrero Blanco (White Hat Hacker). Una
vez que oímos hablar de este tipo de profesionales, no debería de identificársele con la imagen
errónea que los medios de comunicación han creado sobre las personas con conocimientos
avanzados en tecnología: Hackers, ya que normalmente, se les suele asociar con actividades
ilícitas. Incluso, la Real Academia Española (RAE), que recientemente acaba de aceptar
formalmente el término Hacker, hace referencia a su implicación con actividades ilícitas.
Un test de intrusión puede llevarse a cabo de forma independiente o bien como parte de un
proceso de Manejo de Riesgos que puede ser incorporado dentro de un ciclo de vida de desarrollo
(por ejemplo, Microsoft SDLC). Es importante recalcar que la seguridad de un producto o un
entorno de sistemas, no sólo depende de factores que están relacionados al ambiente de TI, ya que
21
también depende de las mejores prácticas específicas del producto en materia de seguridad. Esto
involucra la apropiada implementación de requerimientos de seguridad, realizar análisis de riesgos,
modelado de amenazas, revisión de código y una medición de la seguridad operativa.
El test de intrusión es considerado una de las formas más agresivas de evaluar la seguridad.
Debe ser llevado a cabo por profesionales calificados y puede hacerse con o sin conocimiento
previo de la red o aplicación objetivo. Este puede utilizarse para medir todos los componentes de
la infraestructura de TI incluyendo aplicaciones, red, dispositivos, sistemas operativos, medios de
comunicación, seguridad física, y psicología humana. Los resultados de un test de intrusión
usualmente consisten en reportes divididos en varias secciones que especifican las debilidades
encontradas en el estado del entorno objetivo, acompañado de medidas de remediación o
recomendaciones para la prevención.
El riesgo puede ser medido de acuerdo a la falla expuesta por la vulnerabilidad en general.
Un Auditor de Seguridad, idealmente identificaría todos los vectores de ataque que podrían causar
que el objetivo sea comprometido. Un test de intrusión Black Box suele ser más costoso que su
contraparte White Box, ya que cabe mencionar que cuando se realiza el pentest tipo Black Box, el
pentester no conoce ni posee ningún dato de la empresa, y debe hacer uso de técnicas varias para
poder hacerse de información útil y comenzar a hacer sus testeos. Los Auditores de Seguridad que
realizan este tipo de test, son denominados Hackers de Sombrero Negro (Black Hat Hackers).
22
Además, el resultado de un pentest tipo White Box puede ser fácilmente integrado dentro
de un ciclo de desarrollo regular para erradicar cualquier posible eventualidad de seguridad en las
etapas tempranas, antes que sean descubiertas y explotadas por atacantes o intrusos externos. El
tiempo, costo y nivel de conocimiento requerido para encontrar y resolver vulnerabilidades, es
relativamente menor comparado con el test de caja negra, desde el punto de vista de tiempo
invertido por parte del Auditor de Seguridad. Los Auditores de Seguridad que realizan este tipo de
test, son denominados Hackers de Sombrero Blanco (White Hat Hackers).
Este tipo de test, a su vez tiene dos variantes: prueba anunciada, y prueba no anunciada.
El primero, notifica al personal de TI sobre las actividades que serán llevadas a cabo, y lo involucra
en ciertas actividades. El segundo, no realiza esta notificación, básicamente para medir la respuesta
del personal de TI con respecto a los incidentes.
Normalmente esto se hace con fines lucrativos, y en el mejor de los casos pueden
descubrirse vulnerabilidades día cero. A este tipo de hackers, se les denomina Gray Hay Hackers.
Entonces, Gray Box Testing, es la actividad de encontrar vulnerabilidades de un producto o
servicio informático en particular, con la respectiva autorización de la casa matriz.
de seguridad que puedan existir en el sistema sin medir el impacto del sistema. Otro aspecto
diferenciador importante entre ambos términos es que un test de intrusión es considerado mucho
más intrusivo que una evaluación de vulnerabilidades y aplica de forma agresiva todos los métodos
técnicos para explotar el entorno de producción, en caliente. Sin embargo, el proceso de evaluación
de vulnerabilidades identifica de manera cuidadosa, y cuantifica, todas las vulnerabilidades de una
manera no intrusiva.
Un test de intrusión, tiene naturalmente un costo de inversión más elevado que una
evaluación de vulnerabilidades. En Guatemala, los precios promedian en US$20,000.00, que
puede incluir únicamente una evaluación de vulnerabilidades, como una mezcla entre esta y un
test de intrusión, en cualquiera de sus ramas. La variación del precio depende del alcance de la
Auditor de Seguridad y el número de horas en término de experiencia de los Auditores de
Seguridad.
CAPÍTULO 3: METODOLOGÍA DE TEST DE INTRUSIÓN
3.1 Introducción
Hoy en día, en internet se puede encontrar cualquier tipo de información o recurso. Para
realizar un test de intrusión, hay miles de sitios web que explican de muchas formas las fases, y
algunas técnicas de cómo realizar cada una de las fases. Sin embargo, aunque puede existir un
lineamiento de qué se debe hacer, y en qué orden, también es cierto que el éxito de un test de
intrusión depende de muchos factores, como lo puede ser la experiencia de los Auditores de
Seguridad, el nivel de compromiso de la organización cliente y su equipo técnico, las
certificaciones con que cuente el Auditor de Seguridad, sin dejar atrás la constante actualización
con temas de seguridad, parches, vulnerabilidades, exploits 4 y técnicas con las que deben estar al
día los Auditor de Seguridad a cargo del test de intrusión, así como una adecuada planificación,
definición de alcance e identificación de todos aquellos activos que sean de carácter importante o
confidencial para la organización.
Sin embargo, como cualquier actividad profesional, es necesario prescindir de una guía
formal que nos dicte las mejores prácticas para poder llevar a cabo un test de intrusión. Existen
diferentes guías, metodologías, o certificaciones que pueden brindarnos esta información. En este
capítulo mencionaremos aquellas que serán tomadas en cuenta para la presente investigación, y
podremos conocer finalmente cómo serán las fases del test de intrusión que se llevará a cabo,
tomando en cuenta la organización objetivo y el tipo de infraestructura que estará siendo sometida
a pruebas: GNU/Linux y aplicaciones Web Java con tecnologías de código abierto.
4
Un programa o código que se aprovecha de un agujero de seguridad (vulnerabilidad) en una aplicación o sistema, de forma qu e un atacante
podría usarla en su beneficio.
26
27
finalmente, la fase de informes, que captura el proceso completo, en una forma que haga sentido
al cliente y provea lo más valioso del test.
diagramas de red para referencia. Es una de las fases más importantes ya que durante las siguientes
fases, que son más intrusivas, se hará uso de la información que sea obtenida en esta fase. Mientras
más minuciosa y detallada se realice esta fase, más probabilidad de efectividad habrá para la fase
de análisis y explotación de vulnerabilidades.
El PTES lleva esta fase a un nivel más alto, denominándolo “Inteligencia”, ya que se basa
en algunos métodos y técnicas militares de inteligencia. De hecho, existe lo que se denomina
Fuentes de Información OSINT (Open Source INTelligence), que hacen referencia a cualquier
información desclasificada y públicamente accesible en Internet de forma gratuita. Para la presente
investigación, debido al alcance y tipo de organización cliente seleccionada, no se profundizará en
OSINT; nos mantendremos apegados a la Fase de Reconocimiento.
3.2.7 Documentación
En esta fase debe elaborarse los diferentes informes que deben entregarse al cliente.
Normalmente pueden entregarse dos tipos de informes:
Ejecutivos: orientados a altos mandos gerenciales con nociones básicas
sobre seguridad informática. No contiene detalles técnicos sino más bien una calificación
de los hallazgos más importantes y su impacto económico en términos de activos de la
organización.
5
Una nueva vulnerabilidad para la cual no se crearon parches o revisiones, y que se emplea para llevar a cabo un ataque. El nombre 0-day (día
cero) se debe a que aún no existe ninguna revisión para mitigar el aprovechamiento de la vulnerabilidad.
30
Planificación
Documentación Reconocimiento
Post-Explotación Enumeración
Análisis de
Explotación
Vulnerabilidades
Este estándar ha sido diseñado para proveer tanto a las organizaciones como a los
proveedores de servicios de seguridad un enfoque entendible sobre la elaboración de un test de
intrusión (por ejemplo, en evaluaciones de seguridad). Empezó en 2009 como una discusión entre
varios profesionales del área, ya que había, en términos generales, carencia de una metodología de
test de intrusión en la industria.
El estándar en sí, no es guía técnica sino más bien una forma de cómo ejecutar un test de
intrusión, al estilo checklist. Sin embargo, se ha creado una guía técnica para acompañar al estándar
en sí mismo.
OWASP impulsa varias iniciativas y proyectos, siendo uno de ellos el OWASP Top 10,
que es un listado de las vulnerabilidades más recurrentes, identificadas por cientos de profesionales
independientes y empresas que se dedican a auditar la seguridad de las tecnologías Web,
32
Se toma como referencia este listado, para poder realizar los testeos específicos en las
aplicaciones web definidas dentro el alcance para la ejecución de la parte práctica de esta
investigación:
No. Descripción
1 Inyección
2 Pérdida de autenticación y gestión de sesiones
3 Secuencia de comandos en sitios cruzados (XSS)
4 Referencia directa insegura a objetos
5 Configuración de seguridad incorrecta
6 Exposición de datos sensibles
7 Inexistente control de acceso a nivel de funcionalidades
8 Falsificación de peticiones en sitios cruzados (CSRF)
9 Uso de componentes con vulnerabilidades conocidas
10 Redirecciones y re envíos no validados
El objetivo de control ISO 27001 A12.6, Gestión de la Vulnerabilidad Técnica, indica: “se
debe obtener información oportuna sobre las vulnerabilidades técnicas de los sistemas de
33
El punto de inflexión en done se identifica que se debe realizar un test de intrusión, es una
vez que se hayan identificado los activos que serán incluidos en el alcance del Sistema de Gestión
de Seguridad de la Información. Los resultados del test de intrusión identificarán vulnerabilidades
en detalle, conjuntamente con las amenazas que podrían explotarla, y usualmente también
identifica alguna actividad apropiada para su remediación. Las vulnerabilidades y amenazas
identificadas se convertirán en información de punto de partida para una evaluación de riesgo,
mientras que las actividades de remediación serán parte de los controles de la organización.
Por tanto, las ocho fases del test de intrusión para este trabajo de investigación serán:
1. Planificación
2. Reconocimiento
3. Enumeración
4. Mapeo de vulnerabilidades
5. Explotación
6. Post-Explotación
7. Test de intrusión de Aplicaciones Web
8. Elaboración de informes
CAPÍTULO 4: FASE DE PLANIFICACIÓN
4.1 Introducción
Un Test de Intrusión, es un proyecto que consiste en un conjunto de actividades que se
encuentran interrelacionadas y coordinadas. Como todo proyecto, debe pasar por varias fases,
desde la incepción de la idea, su diseño, su ejecución y su evaluación. Asimismo, debe contar con
documentación de sustento muy importante, como lo pueden ser las minutas, contratos, convenios
de confidencialidad, y por supuesto su respectivo presupuesto.
En este capítulo, se da inicio a la primera fase formal de un test de intrusión. Es una fase
donde se definen los alcances, y en base a esto se podrá definir los recursos como el tiempo y el
personal, para obtener un costo determinado.
Por último, es importante tener el debido cuidado con los aspectos legales. Básicamente
PTES facilita ciertas directrices genéricas que pueden ser utilizadas en todos los países, pero es
responsabilidad del Auditor de Seguridad alinear estas recomendaciones con las leyes locales
donde se realice el test. Se provee una extensión de estas directrices enfocados en las leyes de
Guatemala, que podrían ser objeto de una investigación específica por parte de un Ingeniero o
Abogado especializados en Derecho Informático, donde a la fecha de redacción de la presente
investigación, existe únicamente algunos artículos del Código Penal y dos iniciativas interesantes
37
38
que han sido presentadas ante el Congreso de la República. Si el objetivo primordial de ellas es
poder proveer al ciudadano o empresa una base legal para defensa en términos penales cuando un
delito informático sucede. Sin embargo, es importante que el Auditor de Seguridad conozca estas
leyes para poder salvaguardar la legitimidad del test de intrusión del cual estará encargado.
4.5 Cuestionarios
Durante la reunión de planificación también es importante que el Auditor de Seguridad esté
preparado con una serie de preguntas clave para poder determinar y medir el alcance que tendrá el
proyecto. Estas preguntas están diseñadas para proveer un mejor entendimiento de qué es lo que
el cliente necesita o espera obtener como resultado luego de realizar el test de intrusión, por qué el
cliente está buscando un servicio del tipo intrusivo para su entorno, y si requerirá o no,
40
determinados tipos de intrusiones. Las preguntas deben girar en torno a los diferentes tipos de test
de intrusión que se pueden llevar a cabo: de red, de aplicaciones web, de redes inalámbricas, acceso
físico, ingeniería social, e incluso preguntas para las gerencias de la organización.
un contacto de seguridad directo con el proveedor de servicios en la nube que pueda ser contactado
por cualquier evento que impacte a otros clientes de su servicio, por alguna vulnerabilidad
descubierta.
6
Es una modalidad de estafa con el objetivo de intentar obtener de un usuario sus datos, claves, cuentas bancarias, números de tarjeta de crédito,
identidades, etc. Resumiendo "todos los datos posibles" para luego ser usados de forma fraudulenta.
42
No Descripción
1 Suplantación de identidad
2 Llamadas telefónicas fraudulentas (vishing)
3 Pruebas controladas de Phishing
4 Pruebas intrusivas de Phishing
5 Intrusión Física
6 Falsificación de correos y sitios web (spoofing)
4.10 Objetivos
Todo test de intrusión debe estar orientado a objetivos o metas. Es decir, el objetivo de un
test es identificar vulnerabilidades específicas que pueden comprometer la misión y objetivos del
negocio del cliente; no se trata de encontrar sistemas que no están actualizados. Se trata de
identificar riesgos que impactarán a la organización.
Un objetivo para realizar un Test de Intrusión, puede estar directamente relacionado con el
cumplimiento de requerimientos específicos, como el ejemplo anterior de la norma PCI-DSS7. Es
común que el objetivo primario y los objetivos secundarios estén muy relacionados. Por ejemplo,
en el caso de la norma PCI-DSS, obtener las tarjetas de crédito es un objetivo secundario. La
7
Estándar de Seguridad de Datos para la Industria de Tarjeta de Pago.
43
vinculación de esa información con el negocio es el objetivo principal. Los objetivos son aspectos
que deben cumplirse y atraen la atención de los altos mandos (gerencias, directivos, etc.).
Si los acuerdos del test de intrusión (durante la reunión de planificación, definición del
alcance, etc.) pueden ser establecidos sin siquiera notificar al equipo interno de seguridad de la
organización objetivo, significa que se ha detectado una brecha enorme en cuanto a la postura de
seguridad. Es importante también, que antes que de inicio el test de intrusión, algún representante
de la organización está consciente sobre cuándo se realizarán las diferentes actividades del test,
para que el equipo de respuesta a incidentes no realice las llamadas de notificación respectivas a
cada miembro de los grupos de Gerencia o Directivos en horarios convenientes.
44
8
Red Privada Virtual.
45
Los planes son generalmente discutidos para que el test no se lleve a cabo en medio de
actividades especiales para la organización. El progreso no es más que mostrar el avance de las
actividades para que el cliente esté enterado de qué se ha estado trabajando. Los problemas deben
ser discutidos también en estas reuniones, pero de manera breve, ya que las discusiones respecto a
cómo deben ser solucionados normalmente se llevan por separado, en sesiones más técnicas.
44 (publicación de las Naciones Unidas, núm. de venta S.94.IV.5), reconoce los siguientes tipos
de delitos informáticos:
CERT Guatemala
En 2016, el Ministerio de Gobernación, en conjunto con otras instituciones internacionales,
oficializa el proyecto CERT (Computer Emergency Response Team) el cual tiene como objetivo
poder dotar de profesionales certificados en diferentes áreas de la Seguridad Informática para
incidentes de ciberseguridad que puedan darse en el país.
Inicialmente el CERT dotará de dispositivos tipo sensores a todas las instituciones públicas
y privadas que lo requieran, para monitorear sus principales servicios, enlaces, de ataques y
amenazas en la red. Al igual que la sección de ciberdelitos de la PNC, este proyecto está en fase
inicial y se recomienda estar actualizado con el avance del mismo, de acuerdo con información
publicada en el sitio www.cert.gt.
Esta sección, trabaja conjuntamente con la Fiscalía de Delitos Cibernéticos del Ministerio
Público, y en colaboración con el INACIF. Estas entidades cuentan con personal capacitado para
realizar Peritajes Forenses Digitales, mediante los cuales se puede secuestrar el equipo informático
que es encontrado en escenas de crimen (laptops, celulares inteligentes, tabletas, etc.) garantizando
la cadena de custodia para el análisis de la información en los respectivos casos.
50
51
5.2.1.2 Dig
Domain Information Groper, es una herramienta muy flexible para interrogar a los
servidores de DNS. Ejecuta búsquedas del DNS y muestra las respuestas devueltas de los nombres
de los servidores que fueron requeridos. Muchos administradores de DNS utilizan Dig para la
resolución de problemas, debido a su flexibilidad, facilidad de uso, y fácil entendimiento de los
resultados devueltos por esta herramienta. Otras herramientas de interrogación suelen tener menos
funcionalidades que Dig. Es una herramienta por línea de comandos que ofrece las siguientes
opciones y modos de uso:
dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-m][-p port#] [-q name]
[-t type] [-x addr] [-y [hmac:]name:key] [-4][-6] [name] [type] [class] [queryopt...]
Para información detallada sobre cada parámetro, teclear: man dig, en la consola de Linux.
para Windows como Linux, aunque provee dos versiones: gratuita (con ciertas restricciones a nivel
de número máximo de hosts escaneados) y versión de pago que incluye soporte y no posee ninguna
restricción.
Una de las herramientas que puede utilizarse es nmap, que es una herramienta muy
poderosa para realizar escaneos de red. Su funcionalidad es bastante extensa y permite hacer
muchos tipos de escaneos diferentes, en incluso ataques. Es una herramienta open source y está
disponible para varias plataformas como Windows y Linux. Es importante hacer notar que, para
ciertos tipos de scans, específicamente aquellos que sean externos, es necesario tomar en
consideración las leyes aplicables en el país de ejecución, puesto que muchas veces los scans de
red TCP que cumplen con el 3-way handshake pueden ser contemplados como un delito; para
solventar esta situación es posible realizar escaneos tipo SYN (Syncronize).
57
Una vez que tenemos todo el universo de información obtenida en la fase anterior –
reconocimiento - es necesario empezar con la siguiente fase denominada enumeración, que está
más relacionada con el análisis de la información que se obtiene, con el objetivo de profundizar
aún más en aquellos posibles dispositivos que podrían brindarnos más información con miras a
obtener un vector de ataque que nos permita materializar un ataque.
El objetivo de esta etapa es la obtención de los datos referente a los usuarios, nombres de
equipos, servicios de red, entre otros. A esta altura de la auditoría, se realizan conexiones activas
con el sistema y se ejecutan consultas dentro del mismo.
9
Fully Qualified Domain Name es un nombre que incluye el nombre de la computadora y el nombre de dominio asociado a ese equipo.
58
59
Existen muchas herramientas tanto gratuitas como de código abierto que nos permiten
realizar estas tareas, entre ellas se puede mencionar:
Telnet
HTTPrint
SuperScan
Nmap
10 Herramienta en línea de comandos que es utilizada para hacer consultas a los servidores de nombres de Internet de manera interactiva.
61
Los dispositivos envían hacia un servidor SNMP (nagios, por ejemplo) toda la información de
rendimiento del dispositivo mediante la autenticación de una cadena de string denominada
“community”; es aquí donde radica la vulnerabilidad, en la configuración por defecto.
Para lo anterior, existen sitios web que recopilan la información de todas las
vulnerabilidades reportadas en diferentes herramientas de software y/o plataformas, confirmadas
previamente por el fabricante.
Bajo este esquema, MITRE creó el proyecto CVE (Common Vulnerabilities and
Exposures), que es una plataforma donde se registran las vulnerabilidades reportadas para un gran
número de plataformas, y se les asigna un identificador único, de tal forma que, para cualquier
63
64
referencia, todos los fabricantes de software trabajan sus parches o actualizaciones de seguridad
basándose en estos identificadores CVE’s.
Además, cuenta con una versión en la nube, la cual hace muy sencilla las tareas de
administración y colaboración sobre múltiples motores de escaneo, a través de la utilización de
algo conocido como “agente”, el cual es un componente que se instala en los hosts para escanear.
También provee soporte para cumplimiento PCI DSS.
Es de mencionar, que no existe una fórmula secreta o estándar para lograr que una
explotación exitosa sobre un sistema. Pueden utilizarse herramientas automatizadas de
explotación, como lo es Metasploit Framework, hasta un script desarrollado a medida en Python,
Ruby o Bash11 para tener éxito en la explotación.
11 Lenguajes de programación. Python y Ruby cuentan con soporte multiplataforma, mientras que bash es nativo para sistemas GN U/Linux.
70
71
realizar este ataque es posible utilizar Metasploit Framework, ya que cuenta con un módulo
auxiliar para testear logins del protocolo SSH.
A continuación, se detalla paso a paso:
12
Sistema de archivos de Internet común es un protocolo de red que proporciona la fundación para el uso compartido de archivos basado en
Windows y otras utilidades de red.
76
Como primer punto, es necesario identificar la versión específica de samba instalada. Esto
puede hacerse, como se detalló en capítulos anteriores, por medio de herramientas como nmap o
Nexpose. Existe una forma más de hacer esta identificación, utilizando módulos auxiliares de
Metasploit Framework.
1. Se hace búsqueda de módulos auxiliares o exploits para samba. En este caso, se puede
utilizar como parámetro de búsqueda “smb_version”
3. Con esta información es posible hacer una búsqueda en la web sobre vulnerabilidades para
esta versión específica de samba.
77
La funcionalidad básicamente consiste en realizar una conexión vía telnet sobre el puerto
21, y seguidamente ingresar los caracteres “:)” (carita feliz), y con esto ya se logra acceso al
sistema. Existe un módulo de la herramienta Metasploit Framework que automatiza esta tarea.
80
Aunque la vulnerabilidad es sobre bash propiamente, esta puede ser explotada si se cuenta
con una implementación CGI (Common Gateway Interface), ya que mediante CGI, es posible
interactuar con el intérprete de bash, de forma remota. Como primer paso, es necesario identificar
la existencia de scripts CGI (el cual normalmente utiliza en su backend Python o Perl, pero
también es común encontrar implementaciones en Shell o incluso lenguaje C). Esta identificación,
puede realizarse de varias formas, una de ellas es a través del uso de un HTTP Proxy, como lo es
Burp Proxy.
Cuando se hace una llamada a un script CGI, el servidor web (en este caso Apache), inicia
un nuevo proceso y ejecuta el CGI. En este punto, se inicia un proceso de Bash y se ejecuta el
script CGI.
Apache necesita trasladar la información al script CGI; para realizar esto utiliza variables
de entorno. Las variables de entorno están disponibles dentro del script CGI, permitiendo que
Apache traslade de manera sencilla todos los encabezados HTTP (entre otra información) hacia el
CGI. Por ejemplo, si se tiene un encabezado HTTP “adeleon” en la petición, se tendrá una variable
de entorno llamada “HTTP_adeleon” disponible en el script CGI.
Se puede observar un script CGI que ejecuta comandos de sistema y los despliega de vuelta
en el sitio web, de manera que se cumple el esquema para lograr explotar la vulnerabilidad
shellshock.
84
Shell Iniversa
A continuación, se muestra una prueba de concepto (PoC), en donde en el sistema víctima
se encuentra la herramienta de red NetCat que permite a través de intérprete de comandos y con
una sintaxis sencilla abrir puertos TCP/UDP en un HOST (quedando Netcat a la escucha), asociar
una Shell a un puerto en concreto (para conectarse por ejemplo a MS-DOS o al intérprete Bash de
Linux remotamente) y forzar conexiones UDP/TCP (útil por ejemplo para realizar rastreos de
puertos o realizar transferencias de archivos bit a bit entre dos equipos).
Por tanto, en esta prueba de concepto, el sistema víctima contiene el componente de Netcat
“cliente”, y, por otro lado, se tiene un Kali Linux (sistema atacante) ejecutando Netcat en modo
“servidor”, a la escucha de peticiones entrantes. Lo que pretende este ejercicio es demostrar la
manera en que es posible llevar a cabo la ejecución de comandos sin requerir de autenticación.
Este bug, descubierto en 2014, permite que cualquier con acceso desde internet obtenga
una lectura de memoria de los sistemas protegidos con versiones – vulnerables – de OpenSSL.
87
Esto compromete las llaves secretas que son utilizadas para identificar los proveedores del servicio
y para cifrar el tráfico, los nombres y contraseñas de los usuarios y en general el contexto actual.
Esto permite que un atacante pueda filtrarse en las comunicaciones, robar datos directamente de
los servicios o usuarios o falsificar servicios o usuarios.
Explotación de Heartbleed
Para explotar esta vulnerabilidad, existen módulos auxiliares de Metasploit Framework
disponibles que permiten de una manera sencilla llevar a cabo esta tarea, específicamente el
módulo auxiliary/scanner/ssl/openssl_heartbleed.
Básicamente los parámetros requeridos son:
RHOSTS: el servidor web que se desea explotar
VERBOSE: (set verbose true) para visualizar en pantalla todas las
respuestas obtenidas (information leak).
El proyecto en sí, es una guía creada por cientos de personas expertas alrededor del mundo.
Existen muchas formas diferentes de testear la seguridad de las aplicaciones y esta guía encapsula
el consenso de expertos líderes sobre cómo deberían ejecutarse todas las pruebas de seguridad,
adecuada y eficientemente.
94
95
El top 10 es el siguiente:
Riesgo Descripción
A1 - Inyección Las fallas de inyección, tales como SQL, OS y LDAP, ocurren cuando datos
no confiables son enviados a un intérprete como parte de un comando o
consulta. Los datos hostiles del atacante pueden engañar al intérprete en
ejecutar comandos no intencionados o acceder a datos no autorizados.
A2 – Pérdida de Las funciones de la aplicación relacionadas a la autenticación y gestión de
autenticación y sesiones son frecuentemente implementadas incorrectamente, permitiendo a
gestión de los atacantes comprometer contraseñas, claves, token de sesiones, o explotar
sesiones otras fallas de implementación para asumir la identidad de otros usuarios.
A3 – Secuencia Las fallas XSS ocurren cada vez que una aplicación toma datos no confiables
de comandos en y los envía al navegador web sin una validación y codificación apropiada.
sitios cruzados XSS permite a los atacantes ejecutar secuencia de comandos en el navegador
(XSS) de la víctima los cuales pueden secuestrar sesiones de usuario, destruir sitios
web, o dirigir al usuario hacia un sitio malicioso.
A4 – Referencia Una referencia directa a objetos ocurre cuando un desarrollador expone una
directa insegura referencia a un objeto de implementación interno, tal como un fichero,
a objetos directorio, o base de datos. Sin un chequeo de control de acceso u otra
protección, los atacantes pueden manipular estas referencias para acceder
datos no autorizados.
A5– Una buena seguridad requiere tener definida e implementada una
Configuración configuración segura para la aplicación, marcos de trabajo, servidor de
de seguridad aplicación, servidor web, base de datos, y plataforma. Todas estas
incorrecta configuraciones deben ser definidas, implementadas y mantenidas ya que por
lo general no son tan seguras por defecto. Esto incluye mantener todo el
96
En un escenario, donde el sitio web vulnerable posee una sección de noticias, comentarios
o blog, en donde todos los usuarios (registrados o no registrados) pueden visualizar los comentarios
de otros usuarios por ejemplo, un atacante podría hacer inyección de código JavaScript, por
ejemplo, y este, al ser almacenado en la base de datos, y ejecutado de vuelta del lado del cliente
(navegador web) podría hacer un re direccionamiento a un sitio malicioso, logrando que la víctima
pueda, entre otras cosas, ser engañada para proporcionar sus credenciales, robar sesiones a través
de las cookies, o bien infectar la computadora con algún tipo de malware.
98
Este tipo de vulnerabilidad, es muy popular, debido a que hoy en día, muchas empresas
poseen sitios web dinámicos para cubrir diferentes necesidades, desde dar a conocer sus servicios,
noticias, hasta vender artículos en línea o brindar herramientas a sus colaboradores como
Reportería o acceso web a sus diferentes plataformas operativas. Tomando esto en cuenta, es
bastante llamativo para un atacante el poder identificar y materializar una vulnerabilidad de este
tipo ya que el impacto, de tener éxito su ataque, es crítico.
Para proceder con un ataque de este tipo, es necesario primeramente identificar parámetros
de entrada en una aplicación web. Éstos pueden ser parámetros por ejemplo en un formulario, hasta
parámetros dinámicos enviados vía GET o POST.
Para poder realizar este tipo de ataques, puede utilizarse las siguientes herramientas:
HTTP Proxy: es una herramienta que se utiliza para interceptar todas las
peticiones (HTTP Request) desde el cliente, hacia el servidor, permitiendo interceptar y
modificar tanto la petición como la respuesta (HTTP Response). Existen muchas
herramientas de este tipo, aunque en la comunidad hacker se utilizan principalmente:
o OWASP ZAP Proxy: una herramienta open Source, desarrollada en
java (multiplataforma). Posee un interceptor de peticiones, un scanner, y ejecución
de algunos ataques predefinidos de fuzzing como SQL Injection, Cross Site
Scripting y (XSS), entre otros.
o Burp Suite Pro: una herramienta de pago, desarrollada en Java
(multiplataforma) que permite la integración con otras herramientas y asimismo la
expansión de funcionalidades mediante la codificación de plug ins vía código
Python o Java. Al igual que ZAP, incluye un interceptor de peticiones, y
herramientas automatizadas para escaneo de vulnerabilidades web y ejecución de
ataques predefinidos.
SQL Map: es una herramienta de pentesting open Source que automatiza el
proceso de detección y explotación de vulnerabilidades de tipo SQL Injection sobre
servidores de bases de datos. Incluye una amplia gama de funcionalidades que van desde
detección de la base de datos, hasta extracción de información de las mismas, así como
ejecución de comandos de sistema operativo. Soporta múltiples DBMS entre los que se
101
puede encontrar: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, IBM DB2, SQLite,
Firebird, Sybase, SAP MaxDB, entre otros.
Gráfica 63: Esquema de funcionamiento Cliente Web, Proxy HTTP y Servidor Web
En la imagen anterior, podemos ver cómo el campo de texto, solicita un número para
realizar posteriormente una búsqueda en base de datos, y devolver en pantalla, el registro
correspondiente a ese valor, en este caso, devuelve registros de usuarios. Por tanto, ya se ha
identificado un parámetro de entrada, ahora se debe proceder a realizar pruebas de fuzzing para
identificar si dicho parámetro es susceptible a una Inyección SQL:
En la imagen anterior, se puede apreciar un error genérico del DBMS; en este caso, un
atacante puede identificar que el DBMS utilizado es MySQL, por lo que, inicialmente, puede
enfocar sus intentos de ataque a esta tecnología específica. Seguidamente puede entenderse que el
error hace referencia a una sintaxis errónea en la consulta SQL, lo cual puede suponer que el
backend está procesando de manera correcta la cadena de texto ingresada en el parámetro de
entrada, en este caso la comilla simple.
Gráfica 71: Dump de la base de datos, crackeo de hashes de usuarios vía SQLMap.
Una referencia insegura a objetos directos ocurre cuando un programador expone una
referencia hacia un objeto interno de la aplicación, tales como un fichero, directorio, registro de
base de datos, o una clave tal como una URL o un parámetro de formulario web. Un atacante
podría manipular este tipo de referencias en la aplicación para acceder a otros objetos sin
autorización, a menos que se apliquen diferentes controles de seguridad tales como:
106
A continuación, se hace referencia a dos de estas herramientas, que son muy comunes en
la comunidad hacker.
107
9.3.1 Acunetix
Acunetix es un escáner de vulnerabilidades de aplicaciones web (y servidores web) líder
en el mercado. Se encuentra en el cuadrante mágico de Gartner y será utilizado para verificar
ciertas vulnerabilidades específicas.
9.3.2 Nikto
Nikto es un escáner de servidores web Open Source que realiza diferentes tipos de análisis
incluyendo más de 6700 vulnerabilidades en diferentes plataformas. Al ser una herramienta open
Source y gratuita y que además está incluida en la suite de pentesting por defecto Kali Linux, es
utilizada por muchos Auditores de Seguridad y también por atacantes tanto en la fase de
enumeración como de explotación.
10.2 Presencia
Una vez que se logra comprometer un dispositivo es necesario identificar qué archivos
pueden ser útiles para expandir el ataque y lograr comprometer más dispositivos dentro de la red.
10.2.1 Archivos
Dentro de los archivos Linux debería intentar ubicar:
110
111
10.2.2 Comandos
A continuación, se muestra una lista con los principales comandos, y parámetros, que
puede ayudar a un atacante a recolectar información sensible:
10.3 Persistencia
Es posible intentar ejecutar comandos que ayuden a mantener el control una vez que se ha
logrado materializar una explotación a nivel de bash. El comando setsid ‘comando’ ejecuta un
comando como daemon (servicio).
objetivos principales sería el lograr tener control a nivel de Domain Admin (Active Directory de
Windows) o vía LDAP para entornos Linux. Aunque no existe una regla ni un listado exacto para
proceder con esta actividad, ya que puede variar en cada ambiente, se sabe que el proceso de
recolección de información es clave para determinar el camino a seguir. Básicamente la
metodología para escalar privilegios es:
Recolección de información
Procesar la información recopilada
Explotación
Repetir el proceso (es muy común realizar varias pruebas y fallar muchas
veces).
uname -a
uname -mrs
rpm -q kernel
dmesg | grep Linux
ls /boot | grep vmlinuz-
dpkg -l
rpm -qa
ls -alh /var/cache/apt/archivesO
ls -alh /var/cache/yum/
yum list | grep installed
Solaris: pkginfo
Arch Linux: pacman -Q
lsof -nPi
lsof -i :80
grep 80 /etc/services
netstat -antup
netstat -antpx
netstat -tulpn
chkconfig --list
chkconfig --list | grep 3:on
last
w
Realizar sniffing
# tcpdump tcp dst [ip] [port] and tcp dst [ip] [port]
tcpdump tcp dst 192.168.1.7 80 and tcp dst 10.2.2.222 21
117
Usuarios sudoers
cat /etc./sudoers
cat /etc/ssh/sshd_config
cat /etc/ssh/ssh_host_dsa_key.pub
cat /etc/ssh/ssh_host_dsa_key
cat /etc/ssh/ssh_host_rsa_key.pub
cat /etc/ssh/ssh_host_rsa_key
cat /etc/ssh/ssh_host_key.pub
cat /etc/ssh/ssh_host_key
10.4.2 Explotación
A continuación, se lista algunos comandos útiles para identificación de posibles vectores
de ataque, así como de scripts de explotación en Kali Linux. Cabe mencionar que, una vez
identificada la versión y arquitectura del sistema operativo, y tener el código fuente de un exploit,
puede ser necesario compilarlo de manera local para ejecutarlo remotamente; esto puede ser útil
en los entornos donde se tiene dependencia de ciertas librerías y no se cuenta con ellas (en el host
comprometido).
Está escrito en Shell script para que pueda ser cargado y ejecutado de forma sencilla (sin
requerir des empaquetamiento y compilación, por ejemplo). Puede ejecutarse ya sea como usuario
normal o con usuario super administrador/root, en cuyo caso proveerá mejores resultados ya que
puede acceder a una mayor cantidad de archivos.
La razón de ser de esta herramienta, es para ser utilizada por Auditores de Seguridad en
sistemas que han logrado comprometer, y también por administradores de sistemas que necesitan
verificar malas configuraciones comunes, pero principalmente fue creada para ser una herramienta
práctica para Hackers Éticos una vez que han ganado acceso al sistema con una cuenta sin
privilegios y necesitan hacer escalamiento de privilegios, ya que existen muchas cosas que un
Hacker Ético revisará o intentará identificar. Esta herramienta agrupa todas esas acciones de una
forma automatizada y sencilla.
120
Asimismo es importante que se guarde evidencia detallada, paso por paso de cada una de
las actividades que resultaron en un ataque exitoso, ya que esto será mostrado posteriormente al
cliente con el objetivo de demostrar claramente su debilidad (a nivel de desarrollo,
configuraciones de equipos de red, servidores, servicios, etc.), y también para lograr medir el
impacto (Crítico, Alto, Medio o Bajo) del mismo. También servirá como soporte para las
recomendaciones de remediación que deben darse.
La elaboración de informes es tan importante como la ejecución de la parte técnica del test
de intrusión, y por ello es necesario que el Auditor de Sistemas tome en cuenta algunas
consideraciones para la elaboración de los mismos ya que esto se convierte en el producto final al
cliente, tanto personal técnico como altos mandos, quienes normalmente autorizan presupuesto, y
necesitan ver resultados tangibles de los servicios adquiridos. Es importante tener en mente en
todo momento que la información contenida en cada informe es estrictamente confidencial y
propiedad del cliente.
El informe debe estar dividido básicamente en dos partes, para lograr comunicar los
objetivos, métodos y resultados del Test de Intrusión, orientados a varios tipos de audiencia
diferentes.
121
122
estratégica del programa de seguridad, así como cualquier miembro líder de un área de la
organización que pueda resultar impactada con los hallazgos o vulnerabilidades identificadas. Un
resumen ejecutivo debería incluir las siguientes secciones:
11.2.1 Introducción
Debe explicar al lector el objetivo general del Test de Intrusión. Debe detallar los términos
bajo los cuales se realiza dicho Test, es decir un resumen de los aspectos más importantes de la
fase de Planificación, específicamente la definición del alcance. De igual forma debe hacer énfasis
en los mecanismos utilizados para identificar el nivel de riesgo, contramedidas y objetivos de cada
test para que el lector pueda comprender el detalle posterior de cada resultado.
Actividades d 1 a 3 Meses
1 Credenciales por defecto
1.1 Se recomienda la verificación y cambio de credenciales por defecto de todos los dispositivos vulnerados.
Se recomienda el diseño e implementación de una política de contraseñas, la cuál debe incluir: cambio de contraseñas cada 6 meses, longitud mínima de 8
1.2 caracteres, utilización de cadena alfanumérica y con caracteres ascii, entre otros aspectos.
2 Servicio ejecutándose como root
2.1 Se recomienda la creación de un usuario específico para cada aplicación, y configurar únicamente los accesos y permisos necesarios para dicha aplicación.
3 Certificado Vencido
3.1 Se recomienda la renovación de todos los certificados vencidos identificados.
Actividades de 3 a 6 Meses
1 Utilización de cifrado débil
Se recomienda la utilización de TLS en versión 1.2. Para aquellos casos donde esto no sea posible, se recomienda deshabilitar las suites de cifrado débiles (ver
1.1 detalle técnico).
2 Falta de Hardening a nivel de aplicación
Se recomienda reportar el hallazgo con el fabricante. Debido a que se tiene conocimiento que la configuración del dispositivo es complicada, y se encuentran
diferentes nodos en varios países, es necesario realizar un análisis de factibilidad y plan de trabajo de la implementación del hardneing, para no afectar las
2.1 operaciones del negocio.
Actividades de 1 Año
1 Implementación de una política de Desarrollo Seguro
Crear un comité multidisciplinario para iniciar las sesiones de análisis para la implementación de una política de desarrollo seguro. Ésta debe contemplar
análisis desde las fases tempranas de desarrollo, a nivel de análisis de código estático, pasando por políticas de cifrado seguro y tests de intrución en el
1.1 ambiente de pre-producción.
Detalla las vulnerabilidades encontradas, cómo pueden ser explotadas, qué impacto
podrían tener para el negocio, y las recomendaciones que pueden seguir para anular el impacto. El
informe técnico extiende al informe ejecutivo, y consta de las siguientes partes:
125
Para todo lo anterior, debe incluirse capturas de pantalla, capturas de red, y cualquier
evidencia digital que se posea que confirme la manera en que el Auditor de Seguridad materializó
el ataque.
11.3.4 Recomendaciones
Se hace énfasis en un mejor diseño, implementación y procedimientos de seguridad técnica
y operativa para mitigar la vulnerabilidad de los sistemas comprometidos. Debe incluirse URL’s
de referencia al fabricante, checklists o benchmarks de mejores prácticas; recursos que sean de
utilidad para que el cliente tenga herramientas para realizar la mitigación con el menor impacto
posible.
126
128
129
12.2 Alcance
Se han definido dentro del alcance, los siguientes sistemas e infraestructura:
Auditoría Interna
Red Interna: 10.0.0.0/8. Para un estimado de 250 usuarios y un ambiente
de servidores estimados de 10 GNU/Linux y 10 MS Windows.
Auditoría Externa
Tienda en Línea: la cual permite la compra de artículos usados y pago
mediante tarjeta de crédito, debido y depósito bancario, y entrega a todo el país.
Sistema de Compras y Pago a Proveedores: el cuál permite la correcta
gestión de cotizaciones, compra, adquisición y pago a los más de 500 proveedores que
trabajan de forma directa con la corporación.
NIVEL DE
CRITICO
RIESGO
REFERENCIA
N/A
CVE
ACTIVOS
10.10.6.x
AFECTADOS
DESCRIPCIÓN DETALLADA
Es posible acceder a carpetas del sistema, y obtener información sensible. Además, se tienen
permisos de escritura, lo cuál permite poder dejar archivos de cualquier tipo, pudiendo ser
malware. En este caso particular se encontró código fuente y se pudo obtener la URL de un
WS, y obtener acceso a los métodos. Además, se encontró archivo de configuración con
CREDENCIALES EN TEXTO PLANO, obteniendo acceso a la base de datos de SAP. Esta es
información que puede ser utilizada para fraude.
134
RECOMENDACIÓN DE MEJORA
135
Se recomienda des habilitación de carpetas compartidas con acceso sin credenciales, y controlar
estos accesos vía Active Directory.
136
NO. 002
NIVEL DE
CRITICO
RIESGO
REFERENCIA
N/A
CVE
ACTIVOS
107.x.x.x
AFECTADOS
DESCRIPCIÓN DETALLADA
RECOMENDACIÓN DE MEJORA
NO. 003
NIVEL DE
CRITICO
RIESGO
REFERENCIA
N/A
CVE
ACTIVOS
Red de Voz
AFECTADOS
DESCRIPCIÓN DETALLADA
Fue posible hacer captura de llamadas de voz, desde un punto de datos, mediante la técnica
ARP Poisoning, (envenenamiento ARP) pudiendo identificar nombres de usuarios del sistema
de compras; posteriormente, mediante un ataque de diccionario se logró acceder a algunas de
estas cuentas.
Un NIT de colaboradora.
RECOMENDACIÓN DE MEJORA
Se recomienda la implementación del protocolo SIP Seguro y un tuneo a nivel de ACL's en las
VLAN's de la red.
141
NO. 004
NIVEL DE
ALTO
RIESGO
REFERENCIA
N/A
CVE
ACTIVOS
10.10.6.x
AFECTADOS
DESCRIPCIÓN DETALLADA
Es posible obtener acceso a la red mediante DHCP por medio de la conexión física del equipo
a un punto de datos. Esto puede permitir a un atacante conectar cualquier dispositivo a la red y
obtener acceso inicial que le podría permitir hacer fuga de información o un ataque más
sofisticado.
RECOMENDACIÓN DE MEJORA
Se recomienda deshabilitar el DHCP por defecto, y/o implementar soluciones de NAC con
validación de Active Directory, Versión de sistema operativo, parches, antivirus, etcétera,
para evitar que un atacante pueda conectar cualquier dispositivo en la red.
142
NO. 005
NIVEL DE
ALTO
RIESGO
REFERENCIA
N/A
CVE
ACTIVOS
10.10.6.x
AFECTADOS
DESCRIPCIÓN DETALLADA
Es posible acceder a carpetas del sistema, y obtener información sensible, Esta es información
que puede ser utilizada para fraude. Además, se tienen permisos de escritura, lo cual permite
poder dejar archivos de cualquier tipo, pudiendo ser malware.
RECOMENDACIÓN DE MEJORA
NO. 006
NIVEL DE
ALTO
RIESGO
REFERENCIA
N/A
CVE
ACTIVOS
10.10.6.x
AFECTADOS
DESCRIPCIÓN DETALLADA
Acceso a Internet
RECOMENDACIÓN DE MEJORA
NO. 007
NIVEL DE
MEDIO
RIESGO
REFERENCIA
N/A
CVE
ACTIVOS
10.10.6.x
AFECTADOS
DESCRIPCIÓN DETALLADA
Es posible acceder a carpetas del sistema, y obtener información sensible, Esta es información
que puede ser utilizada para fraude. Además, se tienen permisos de escritura, lo cual permite
poder dejar archivos de cualquier tipo, pudiendo ser malware. Se obtuvo archivo de
configuración con URL de un Web Service local.
Es posible acceder a carpetas del sistema, y obtener información sensible, Esta es información
que puede ser utilizada para fraude. Además, se tienen permisos de escritura, lo cual permite
145
poder dejar archivos de cualquier tipo, pudiendo ser malware. En este caso particular se
identificó un archivo de configuración con posibles credenciales sensibles (POS Visa)
NO. 008
NIVEL DE
MEDIO
RIESGO
REFERENCIA
N/A
CVE
ACTIVOS
10.10.6.x
AFECTADOS
DESCRIPCIÓN DETALLADA
Se identificó servicio MRTG accesible, lo cual permite conocer información sensible sobre la
red.
RECOMENDACIÓN DE MEJORA
NO. 009
NIVEL DE
MEDIO
RIESGO
REFERENCIA
N/A
CVE
ACTIVOS
10.10.6.x
AFECTADOS
DESCRIPCIÓN DETALLADA
Se identificó community string por defecto en dispositivos de red, permitiendo poder obtener
información sobre el sistema.
RECOMENDACIÓN DE MEJORA
Se recomienda cambiar el community string por defecto de todos los dispositivos con
protocolo SNMP habilitado.
149
NO. 010
NIVEL DE
MEDIO
RIESGO
ACTIVOS
Sitio principal corporativo
AFECTADOS
DESCRIPCIÓN DETALLADA
RECOMENDACIÓN DE MEJORA
NO. 001
NIVEL DE
CRÍTICO
RIESGO
REFERENCIA
N/A
CVE
ACTIVOS
Tienda en Línea
AFECTADOS
DESCRIPCIÓN DETALLADA
Se identificó que es posible extraer información de todos los usuarios del sistema sin requerir
autenticación, esto incluye nombre, dirección, email, número de teléfono, NIT, entre otros.
RECOMENDACIÓN DE MEJORA
153
Se recomienda utilizar validación en el API ya sea con un API Key o a través de la cookie de
sesión.
154
NO. 002
NIVEL DE
CRITICO
RIESGO
REFERENCIA
N/A
CVE
ACTIVOS
Sistema de Compras
AFECTADOS
DESCRIPCIÓN DETALLADA
Se identificó que los usuarios tienen una contraseña por defecto débil, la cual es susceptible a
ataques de diccionario, con lo cual fue posible comprometer al menos 2 cuentas. Además, no
se cuenta con una política de contraseña segura.
Contraseña Insegura
155
RECOMENDACIÓN DE MEJORA
Se recomienda generar nuevos usuarios con contraseña aleatoria y confirmación vía correo
electrónico. Asimismo, se recomienda la implementación de una política de contraseña, la cual
incluya, entre otros aspectos: cambio automático de contraseña, longitud mínima y máxima,
uso de caracteres alfanuméricos.
156
NO. 003
NIVEL DE
ALTO
RIESGO
REFERENCIA
N/A
CVE
ACTIVOS
Tienda en Línea
AFECTADOS
DESCRIPCIÓN DETALLADA
Se identificó que no se está cerrando la sesión en el backend, y esto permite que se puedan hacer
peticiones y obtener respuestas válidas.
RECOMENDACIÓN DE MEJORA
NO. 004
NIVEL DE
ALTO
RIESGO
REFERENCIA
N/A
CVE
ACTIVOS
Tienda en Línea, Sistema de Compras
AFECTADOS
DESCRIPCIÓN DETALLADA
Se identificó que, en la aplicación de tienda en línea, es posible visualizar los pedidos de otros
usuarios. Con esta información un atacante podría realizar fraude.
RECOMENDACIÓN DE MEJORA
Para la tienda en línea, se recomienda hacer validación en el backend de los Id’s de pedidos con
la cookie de sesión.
161
Debido a esta mala práctica fue posible conectar un dispositivo (Laptop con Kali Linux
para intrusión) con acceso a la red. Asimismo se identificó la implementación de diferentes
VLAN’s, sin embargo no se encuentra correctamente configurado los ACL’s de las mismas, por
lo que fue posible acceder a VLAN’s de otros segmentos.
Luego del análisis a los segmentos de servidores, en la red interna, se concluyó que, en
términos generales, los administradores de sistemas realizan de forma correcta las
implementaciones de nuevos servicios, enfocándose específicamente en:
Cambio de configuraciones por defecto (credenciales, archivos de ejemplo,
etcétera).
Actualizaciones de los aplicativos (servicios, etcétera).
En cuanto al servicio de telefonía IP, se determinó que, sí se cuenta con una VLAN
específica para el servicio de voz sobre IP, de tal forma que esta no esté en un mismo segmento
(VLAN) de datos. Sin embargo fue posible interceptar llamadas desde un punto de red de datos,
mediante la aplicación de la técnica “Envenenamiento ARP”, con lo cual se confirma que es
necesario realizar un correcto tuneo sobre este servicio.
Dentro del análisis de la red local, específicamente los dispositivos de los usuarios, se
identificó que existen carpetas compartidas sin ningún tipo de restricción de acceso y verificación
162
de autorización. Esto debido a que los usuarios encuentran este tipo de métodos útiles para
compartir información entre colaboradores de la organización. Sin embargo esto no es una buena
práctica, ya que fue posible extraer información sensible.
Dentro del análisis de las aplicaciones Web no se identificó una vulnerabilidad que
permitiese tomar el control de algún servidor o escalamiento de privilegios, pero se encontraron
múltiples fallas a nivel de lógica de negocio.
En el sistema de tienda en línea, se logró extraer toda la información de los usuarios del
sistema incluyendo nombre, apellido, dirección, teléfono, email, NIT, etcétera. Asimismo fue
posible visualizar registros de otros usuarios, tales como los pedidos realizados.
Para la red de voz, se recomienda la implementación del protocolo SIP Seguro, y realizar
tuneo de ACL's en las VLAN's, para garantizar que el tráfico no puede ser interceptado; y en caso
que lo fuere, un atacante interceptaría tráfico cifrado.
Se recomienda la ejecución de al menos una intrusión interna y externa anual, por parte de
un profesional externo para validar las mitigaciones y asegurarse que se cumple con las mejores
prácticas recomendadas, así como la identificación de nuevas vulnerabilidades. De esta forma
lograr reducir el riesgo de fuga de información o intrusiones no autorizadas que resulten en activos
comprometidos.
CONCLUSIONES
164
165
2. Es necesario que el informe final del Test de Intrusión incluya una sección
Ejecutiva, con datos globales, descripciones en lenguaje natural, fáciles de entender
por directivos de alto nivel (Gerentes Generales, Financieros, Directivos,
etcétera), como también una parte Técnica la cuál será analizada en detalle por el
equipo técnico de la organización, el cual podrá servir como base para plantear una
línea de trabajo de mitigación de las vulnerabilidades identificadas.
166
167
Amenaza
Una amenaza informática es toda circunstancia, evento o persona que tiene el potencial de
causar daño a un sistema en forma de robo, destrucción, divulgación, modificación de datos o
negación de servicio (DoS).
Antivirus
Antivirus es una categoría de software de seguridad que protege un equipo de virus,
normalmente a través de la detección en tiempo real y también mediante análisis del sistema, que
pone en cuarentena y elimina los virus. El antivirus debe ser parte de una estrategia de seguridad
estándar de múltiples niveles.
Backdoor
Tipo de troyano que permite el acceso al sistema infectado y su control remoto. El atacante
puede entonces eliminar o modificar archivos, ejecutar programas, enviar correos masivamente o
instalar herramientas maliciosas.
Bot
Un bot es una computadora individual infectada con malware, la cual forma parte de una
red de bots (bot net).
Botnet
Conjunto de equipos bajo el control de un bot maestro, a través de un canal de mando y
control. Estos equipos normalmente se distribuyen a través de Internet y se utilizan para
168
169
Caballo de Troya
Son un tipo de código malicioso que parece ser algo que no es. Una distinción muy
importante entre troyanos y virus reales es que los troyanos no infectan otros archivos y no se
propagan automáticamente. Los caballos de troya tienen códigos maliciosos que cuando se activan
causa pérdida, incluso robo de datos. Por lo general, también tienen un componente de puerta
trasera, que le permite al atacante descargar amenazas adicionales en un equipo infectado.
Normalmente se propagan a través de descargas inadvertidas, archivos adjuntos de correo
electrónico o al descargar o ejecutar voluntariamente un archivo de Internet, generalmente después
de que un atacante ha utilizado ingeniería social para convencer al usuario de que lo haga.
Ciberdelito
El ciberdelito es un delito que se comete usando una computadora, red o hardware. La
computadora o dispositivo puede ser el agente, el facilitador o el objeto del delito. El delito puede
ocurrir en la computadora o en otros lugares.
CISA
Certified Information Systems Auditor (CISA) es una certificación para auditores
respaldada por la Asociación de Control y Auditoría de Sistemas de Información (ISACA)
(Information Systems Audit and Control Association). Los candidatos deben cumplir con los
requisitos establecidos por la ISACA.
CISSP
Certified Information Systems Security Professional, es una certificación de alto nivel
profesional otorgada por la (ISC)2 (International Information Systems Security Certification
170
Consortium, Inc), con el objetivo de ayudar a las empresas a reconocer a los profesionales con
formación en el área de seguridad de la información.
COBIT
Objetivos de Control para Información y Tecnologías Relacionadas (COBIT, en inglés:
Control Objectives for Information and related Technology) es una guía de mejores prácticas
presentada como framework, dirigida al control y supervisión de tecnología de la información (TI).
Mantenida por ISACA (en inglés: Information Systems Audit and Control Association) y el IT GI
(en inglés: IT Governance Institute), tiene una serie de recursos que pueden servir de modelo de
referencia para la gestión de TI, incluyendo un resumen ejecutivo, un framework, objetivos de
control, mapas de auditoría, herramientas para su implementación y principalmente, una guía de
técnicas de gestión.
COSO
Committee of Sponsoring Organizations of the Treadway Commission (COSO):
iniciativa de 5 organismos para la mejora de control interno dentro de las organizaciones.
Diagrama de GANNT
Es una herramienta gráfica cuyo objetivo es exponer el tiempo de dedicación previsto
para diferentes tareas o actividades a lo largo de un tiempo total determinado. A pesar de esto, el
diagrama de Gantt no indica las relaciones existentes entre actividades.
Encriptación
La encriptación es un método de cifrado o codificación de datos para evitar que los usuarios
no autorizados lean o manipulen los datos. Sólo los individuos con acceso a una contraseña o clave
pueden descifrar y utilizar los datos. A veces, el malware utiliza la encriptación para ocultarse del
software de seguridad. Es decir, el malware cifrado revuelve el código del programa para que sea
difícil detectarlo.
Falso Positivo
Se refiere a la identificación de una vulnerabilidad, de la cual se posee cierta información,
pero, en el momento de materializarla, ésta no puede ser explotada. Ocurre normalmente con los
resultados devueltos por herramientas automatizadas de escaneo de vulnerabilidades, los cuáles
deben ser analizados y verificados adecuadamente por un Auditor de Sistemas, con el objetivo de
descartarlos, y únicamente entregar información certera de vulnerabilidades confirmadas.
Filtración de datos
Una filtración de datos sucede cuando se compromete un sistema, exponiendo la
información a un entorno no confiable. Las filtraciones de datos a menudo son el resultado de
ataques maliciosos, que tratan de adquirir información confidencial que puede utilizarse con fines
delictivos o con otros fines malintencionados
Firewall
Un firewall es una aplicación de seguridad diseñada para bloquear las conexiones en
determinados puertos del sistema, independientemente de si el tráfico es benigno o maligno. Un
firewall debería formar parte de una estrategia de seguridad estándar de múltiples niveles.
Firma antivirus
Una firma antivirus es un archivo que proporciona información al software antivirus para
encontrar y reparar los riesgos. Las firmas antivirus proporcionan protección contra todos los virus,
gusanos, troyanos y otros riesgos de seguridad más recientes. Las firmas antivirus también se
denominan definiciones de virus.
Gusanos
Los gusanos son programas maliciosos que se reproducen de un sistema a otro sin usar un
archivo anfitrión, lo que contrasta con los virus, puesto que requieren la propagación de un archivo
anfitrión infectado.
Hacking Ético
Es una forma de referirse al acto de una persona usar sus conocimientos de informática y
seguridad para realizar pruebas en redes y encontrar vulnerabilidades, para luego reportarlas y que
se tomen medidas, sin hacer daño.
HeartBleed
Es un agujero de seguridad de software en la biblioteca de código abierto OpenSSL, solo
vulnerable en su versión 1.0.1f, que permite a un atacante leer la memoria de un servidor o un
cliente, permitiéndole por ejemplo, conseguir las claves privadas SSL de un servidor.
IDS
Intrusion Detection System, es un programa de detección de accesos no autorizados a un
computador o a una red. El IDS suele tener sensores virtuales (por ejemplo, un sniffer de red) con
los que el núcleo del IDS puede obtener datos externos (generalmente sobre el tráfico de red). El
IDS detecta, gracias a dichos sensores, las anomalías que pueden ser indicio de la presencia de
ataques y falsas alarmas.
Imagen ISO
Una imagen ISO es un archivo informático donde se almacena una copia o imagen exacta
de un sistema de archivos.
Ingeniería Social
Método utilizado por los atacantes para engañar a los usuarios informáticos, para que
realicen una acción que normalmente producirá consecuencias negativas, como la descarga de
malware o la divulgación de información personal. Los ataques de phishing con frecuencia
aprovechan las tácticas de ingeniería social.
173
IoT
Internet of Things, Internet de las cosas. Cualquier dispositivo que cuenta con conexión a
internet (carros, lavadoras, etcétera).
IPS
Intrusion Prevention System, es un software que ejerce el control de acceso en una red
informática para proteger a los sistemas computacionales de ataques y abusos. La tecnología de
prevención de intrusos es considerada por algunos como una extensión de los sistemas de
detección de intrusos (IDS), pero en realidad es otro tipo de control de acceso, más cercano a las
tecnologías cortafuegos.
JAVA
Es un lenguaje de programación de propósito general, concurrente, orientado a objetos que
fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera
posible.
Keystroke Logger
Es un tipo de malware diseñado para capturar las pulsaciones, movimientos y clics del
teclado y del ratón, generalmente de forma encubierta, para intentar robar información personal,
como las cuentas y contraseñas de las tarjetas de crédito.
Malware
El malware es la descripción general de un programa informático que tiene efectos no
deseados o maliciosos. Incluye virus, gusanos, troyanos y puertas traseras. El malware a menudo
utiliza herramientas de comunicación populares, como el correo electrónico y la mensajería
instantánea, y medios magnéticos extraíbles, como dispositivos USB, para difundirse. También se
174
OpenSSL
Es una herramienta de software de código abierto, que consiste en un robusto paquete de
herramientas de administración y bibliotecas relacionadas con la criptografía, que suministran
funciones criptográficas a otros paquetes como OpenSSH y navegadores web (para acceso seguro
a sitios HTTPS).
PCI-DSS
El Estándar de Seguridad de Datos para la Industria de Tarjeta de Pago (Payment Card
Industry Data Security Standard) o PCI DSS fue desarrollado por un comité conformado por las
compañías de tarjetas (débito y crédito) más importantes, comité denominado PCI SSC (Payment
Card Industry Security Standards Council) y es una guía que ayuda a las organizaciones que
procesan, almacenan y/o transmiten datos de tarjetahabientes (o titulares de tarjeta), a asegurar
dichos datos, con el fin de evitar los fraudes que involucran tarjetas de pago débito y crédito.
Phishing
A diferencia de la heurística o los exploradores de huella digital, el software de seguridad
de bloqueo de comportamiento se integra al sistema operativo de un equipo anfitrión y supervisa
el comportamiento de los programas en tiempo real en busca de acciones maliciosas. El software
de bloqueo de comportamiento bloquea acciones potencialmente dañinas, antes de que tengan
oportunidad de afectar el sistema. La protección contra el comportamiento peligroso debe ser parte
de una estrategia de seguridad estándar de múltiples niveles.
175
PHP
Es un lenguaje de programación de uso general de código del lado del servidor
originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros
lenguajes de programación del lado del servidor que se podían incorporar directamente en el
documento HTML en lugar de llamar a un archivo externo que procese los datos.
Plataformas Críticas
Tiene como principal objetivo aportar soluciones integrales a clientes con requerimientos
tecnológicos exigentes, tales como gran flexibilidad y escalabilidad en temas de crecimiento y
tecnología, disponibilidad de los servicios 24x7 y seguridad garantizada en todas sus aristas
(lógica, física, virtual).
Rootkits
Componente de malware que utiliza la clandestinidad para mantener una presencia
persistente e indetectable en un equipo. Las acciones realizadas por un rootkit, como la instalación
y diversas formas de ejecución de códigos, se realizan sin el conocimiento o consentimiento del
usuario final.
Los rootkits no infectan las máquinas por sí mismos como lo hacen los virus o gusanos,
sino que tratan de proporcionar un entorno indetectable para ejecutar códigos maliciosos. Los
atacantes normalmente aprovechan las vulnerabilidades en el equipo seleccionado o utilizan
técnicas de ingeniería social para instalar manualmente los rootkits. O, en algunos casos, los
rootkits pueden instalarse automáticamente al ejecutarse un virus o gusano o incluso simplemente
al navegar en un sitio Web malicioso.
Una vez instalados, el atacante puede realizar prácticamente cualquier función en el
sistema, incluyendo acceso remoto, intercepción de comunicaciones, así como procesos de
ocultamiento, archivos, claves de registro y canales de comunicación.
SCADA
Acrónimo de Supervisory Control And Data Acquisition (Supervisión, Control y
Adquisición de Datos) es un concepto que se emplea para realizar un software para ordenadores
que permite controlar y supervisar procesos industriales a distancia.
SDLC
El ciclo de vida de desarrollo de sistemas (SDLC), o ciclo de vida de desarrollo de software
en la ingeniería de sistemas e ingeniería de software, es el proceso de creación o modificación de
los sistemas, modelos y metodologías que la gente usa para desarrollar estos sistemas de software.
ShellShock
Es una familia de bugs de seguridad en la ampliamente usada Bash de Shell de Unix. Varios
servicios de internet tal como algunas implementaciones de servidores web usan Bash para ciertos
pedidos y procesos, esto le permitía al atacante ejecutar comandos arbitrarios en versiones
vulnerables de Bash, de esta forma el atacante podía ganar acceso no autorizado al sistema atacado.
SIEM
Security Information and Event Management, proporciona un análisis en tiempo real de las
alertas de seguridad generadas por el hardware y software de red. Las soluciones SIEM pueden
venir como software, appliance, o administración de servicios, y también son utilizados para
loguear datos de seguridad y generar reportes para fines de complimiento.
reaccionar en tiempo real para bloquear o evitar esas actividades. Un sistema de prevención de
intrusos debe ser parte de una estrategia de seguridad estándar de múltiples niveles.
SNMP
El Protocolo Simple de Administración de Red o SNMP (del inglés Simple Network
Management Protocol) es un protocolo de la capa de aplicación que facilita el intercambio de
información de administración entre dispositivos de red.
Spam
También conocido como correo basura, el spam es correo electrónico que involucra
mensajes casi idénticos enviados a numerosos destinatarios. Un sinónimo común de spam es
correo electrónico comercial no solicitado (UCE). El malware se utiliza a menudo para propagar
mensajes de spam al infectar un equipo, buscar direcciones de correo electrónico y luego utilizar
esa máquina para enviar mensajes de spam. Los mensajes de spam generalmente se utilizan como
un método de propagación de los ataques de phishing
Vector de ataque
Un vector de ataque es el método que utiliza una amenaza para atacar un sistema.
Vishing
Es una práctica fraudulenta que consiste en el uso del Protocolo Voz sobre IP (VoIP) y de
la ingeniería social para engañar personas y obtener información delicada como puede ser
información financiera o información útil para el robo de identidad. El término es una combinación
del inglés "voice" (voz) y phishing.
Virus
Programa informático escrito para alterar la forma como funciona una computadora, sin
permiso o conocimiento del usuario. Un virus debe cumplir con dos criterios:
Debe ejecutarse por sí mismo: generalmente coloca su propio código en la ruta de ejecución
de otro programa.
178
Debe reproducirse: por ejemplo, puede reemplazar otros archivos ejecutables con una copia
del archivo infectado por un virus. Los virus pueden infectar computadores de escritorio y
servidores de red.
Muchos de los virus actuales están programados para operar sigilosamente la computadora
del usuario con el fin de robar información personal y utilizarla para cometer delitos. Otros
menoscaban el equipo dañando los programas, eliminando archivos o volviendo a formatear el
disco duro. Aún existen otros que no están diseñados para causar daño, aunque simplemente se
reproducen y hacen manifiestan su presencia presentando mensajes de texto, video y audio, aunque
este tipo de ataques de notoriedad no son tan comunes, puesto que los autores de virus y demás
malware tiene como fin obtener ganancias ilegales.
Vulnerabilidad
Una vulnerabilidad es un estado viciado en un sistema informático (o conjunto de sistemas)
que afecta las propiedades de confidencialidad, integridad y disponibilidad (CIA) de los sistemas.
Las vulnerabilidades pueden hacer lo siguiente:
Permitir que un atacante ejecute comandos como otro usuario
Permitir a un atacante acceso a los datos, lo que se opone a las restricciones
específicas de acceso a los datos
Permitir a un atacante hacerse pasar por otra entidad
Permitir a un atacante realizar una negación de servicio
Anexo 1 - 00 – PT – Cuestionario General Inicial
179
180
01 – PT – Cuestionario de Red
Lista de Servidores
Dirección IP Nombres de Sistema Operativo Función
dominio
183
¿Está confirmado que se aprueba el uso de la guía de test OWASP v4? Y la evaluación
de las evaluaciones top 10 del 2013.
184
¿Se cuenta con una lista de correos electrónicos para hacer la prueba?
¿Se cuenta con una lista de números telefónicos para hacer la prueba?
¿Necesitan que uno de los objetivos sea obtener acceso físico no autorizado? ¿Cuántas
personas serán el objetivo?
187
Nombre Completo
Cargo y descripción de responsabilidad
operativa
Tiene autorización para discutir detalles
de las actividades del test
Celular
Correo Electrónico
Otro medio de contacto
Método de transferencia segura de
información (SFTP o correo cifrado)
¿Contacto 24/7?
Nombre Completo
Cargo y descripción de responsabilidad
operativa
Tiene autorización para discutir detalles
de las actividades del test
Celular
Correo Electrónico
Otro medio de contacto
Método de transferencia segura de
información (SFTP o correo cifrado)
¿Contacto 24/7?
188
Nombre Completo
Cargo y descripción de responsabilidad
operativa
Tiene autorización para discutir detalles
de las actividades del test
Celular
Correo Electrónico
Otro medio de contacto
Método de transferencia segura de
información (SFTP o correo cifrado)
¿Contacto 24/7?
189
<nombre_destinatario>
Presente
Dado que las partes han sostenido y/o están sosteniendo conversaciones y reuniones preliminares,
en lo relativo al proyecto TEST DE INTRUSIÓN, La Organización AUTORIZA a El Auditor
de Seguridad a poder hacer un test de intrusión interno y externo en los alcances que se definan en
próximas reuniones de planificación.
Esto implica que, El Auditor de Seguridad podrá hacer escaneos del equipo informático de la
organización para encontrar vulnerabilidades, explotarlas, y documentarlas. Este permiso se
autoriza desde la fecha de emisión de la presente, hasta el <fecha_fin>, o en una fecha preliminar,
bajo común acuerdo de ambas partes. Esta autorización, está orientada a documentar los hallazgos
que del test de intrusión sean obtenidos, para poder hacer recomendaciones y un mejoramiento
continuo de los activos de la organización, en materia de Tecnología de Información.
Asimismo, se establece, que El Auditor de Seguridad, deberá regirse a las cláusulas que se
especifican en el convenio de confidencialidad y no divulgación, el cuál será elaborado en común
acuerdo con La Organización.
Dado que las partes han sostenido y/o están sosteniendo conversaciones y reuniones preliminares
en lo relativo al proyecto de TEST DE INTRUSIÓN, acuerdan que toda información ya sea en
forma oral o escrita a través de documentos, y en general, cualquier procedimiento o forma, en
virtud de las cuales se haga posible tomar conocimiento de tal información, tendrá carácter
“confidencial”.
algún medio, salvo autorización expresa entregada por las partes suscriptoras del presente
acuerdo.
Devolverse mutuamente la información que hubiere sido intercambiada cuando una de las
partes así se lo solicite a la otra.
Las obligaciones aquí contenidas permanecerán válidas durante los 6 meses siguientes a la fecha
de firma de este documento, quedando una copia en poder de cada representante que aquí firman.
Estimados Señores
CLIENTE RETAIL
Presente
Por medio de la presente, hago entrega de los resultados finales del TEST DE INTRUSIÓN, que
se llevó a cabo como parte de la aplicación práctica de la investigación “Test de Intrusión en
entornos GNU/Linux Aplicado en una empresa guatemalteca”.
Las actividades se llevaron a cabo a partir del mes de marzo, hasta noviembre de 2016, realizando
el día 16 de noviembre de 2016 la entrega final de informes y presentación de resultados detallados
con el equipo técnico de CLIENTE RETAIL.
Por consiguiente, hago constar que los entregables finales han sido:
Amílcar de León
Auditor de Seguridad
REFERENCIAS BIBLIOGRÁFICAS
Beggs, R. (2014). Mastering Kali Linux for Advanced Penetration Testing. Birmingham,
Inglaterra: Editorial Packt Publishing Ltd.
Chavan, M. (Ed.). (2014). Kali Linux – Assuring Security by Penetration Testing. Birmingham,
Inglaterra: Editorial Packt Publishing Ltd.
ISECOM, Institute for Security and Open Methodologies, (2010). OSSTMM 3, The Open Source
Security Testing Methodology Manual.
OWASP, 2013. OWASP Top 10 – 2013, los diez riesgos más críticos en aplicaciones web.
Recuperado de:
https://www.owasp.org/images/5/5f/OWASP_Top_10_-_2013_Final_-_Espa%C3%B1ol.pdf
PTES, 2015. The Penetration Testing Execution Standard Guidelines. Recuperado de:
http://www.pentest-standard.org/index.php/PTES_Technical_Guidelines
Tori, C. (2008). Hacking Ético, primera edición. Buenos Aires, Argentina: editorial Rosario.
193