Plataformas para practicar y aprender hacking ético
Si quieres aprender y practicar técnicas y herramientas de hacking ético, en este artículo te contamos qué plataformas son las más recomendables.
Es importante conocer la terminología básica en hacking ético para saber diferenciar conceptos. En este artículo explicamos los términos más utilizados.
Tabla de contenidos
En esta terminología vamos a conocer y dejar en claro distintos conceptos que son recomendables saber al iniciarse en este mundo del hacking ético, sin más, empecemos:
El primer concepto que debes conocer y asimilar en esta terminología es sobre el significado de ser un hacker.
Hay que entender que hay mucha desinformación actualmente y que muchas personas piensan que un hacker es una persona malintencionada o un criminal que va por el mundo robando datos, destruyendo la reputación de las empresas y un sinfín de actos delictivos.
Esto no es así, un hacker no es más que una persona con mucha curiosidad, autodidacta, que aprende constantemente, que siempre va más allá y, lo más importante, que usa su conocimiento sobre ciberseguridad para el bien, para detectar fallos de seguridad en empresas, corregirlos así mejorando su seguridad para evitar que los ciberdelincuentes, que son como se les llama a las personas que usan su conocimiento sobre ciberseguridad para cometer actos delictivos, se aproveche de esas vulnerabilidades y las aproveche para un beneficio propio.
Seguidamente tocaremos lo que es un pentesting (prueba de penetración) y se basa en poner a examinar los sistemas de una determinada empresa ante una serie de pruebas, todo esto con el objetivo de detectar las vulnerabilidades que pueda tener esa empresa para que luego puedan ser corregidas.
En otras palabras, imagina que tienes una casa que quieres proteger, entonces contratas a un grupo de personas o a una sola persona que actúan y piensan como uno ladrones para que intenten robarte, en realidad no te robarán sino que te dirá como lo hizo para que luego esos puntos débiles que esa persona o grupo de personas usaron para “robar” puedan ser corregidos y así si se llega a dar el caso de que un ladrón en toda regla quiere robar tu casa, ya no pueda, puesto que los puntos débiles están securizados, de esto se trata un pentesting, hacer una especie de hackeo a una empresa y corregir los puntos débiles para que otras personas con malas intenciones no puedan aprovecharse de estos.
Bajo ningún concepto un pentesting puede ser ilegal, siempre se debe hacer con una previa autorización por escrito de la empresa en la que se estipularán las condiciones y requisitos para la prueba.
Un pentesting consta de 5 fases, donde se sigue una metodología para poder llevar a cabo con éxito la prueba de penetración, estas fases se dividen en: reconocimiento, escaneo de vulnerabilidades, explotación de vulnerabilidades, post-explotación y la generación de la documentación y los reportes, así definámoslas más a fondo:
Es una de las fases más importantes de un pentesting, en esta fase es donde se realizan distintos procesos y métodos para un único propósito, que es la obtención de la mayor información posible del objetivo que se va a auditar, información como, por ejemplo, saber cómo está distribuida la infraestructura informática de la empresa, obtener direcciones de correo electrónico, nombres de empleados, posibles nombres de usuario, entre muchos otros. A su vez, la fase de reconocimiento se subdivide en dos, el reconocimiento pasivo y el reconocimiento activo:
Este también es llamado Footprinting y, es todo el reconocimiento de manera legal que podemos realizar sobre el objetivo, ya que se accede a información que es pública y no se está interactuando de forma directa con este, un ejemplo de este tipo de reconocimiento serían los records de whois, utilización de buscadores para encontrar datos, contenido y en general más información sobre el objetivo, entre otros.
Este también es llamado Fingerprinting, aquí ya interactuamos directamente con el objetivo para poder recolectar información, en este tipo de reconocimiento se logra obtener más información sobre el objetivo que usando el reconocimiento pasivo, pero no por ello hay que menospreciarle, un ejemplo de este tipo de reconocimiento sería el uso de nmap para escaneo de puertos, módulos auxiliares de metasploit, entre muchos otros.
En esta fase, basándonos en la formación obtenida en la fase anterior, se procede a hacer un análisis de las vulnerabilidades para detectar todos esos puntos débiles por donde poder atacar, para ello se usan distintos softwares automatizados que permiten esta labor y que usualmente funcionan a partir de firmas, algunos de estos son ya muy conocidos como Nessus, OpenVAS, Nmap Scripting Engine, Acunetix, Nikto, entre muchos otros, (estos dos últimos enfocados al análisis de vulnerabilidades en aplicaciones web), aunque la mayoría de estos softwares son muy ruidosos y, por ejemplo, cualquier dispositivo de seguridad podría detectar que se está ejecutando un análisis de vulnerabilidades y bloquear dicho intento.
En esta fase es donde se pone interesante el proceso, ya que aquí, partiendo de las vulnerabilidades detectadas, el objetivo es la explotación de estas vulnerabilidades, para ello se hacen uso de exploits públicos, exploits dentro del framework metasploit, ataques de contraseñas, inyección de código, BoF (Buffer Overflow), reutilización de credenciales y demás técnicas que nos permitan aprovecharnos de esa o esas vulnerabilidades para obtener un primer acceso o comprometer el activo.
En esta fase, el objetivo es muy variado, puesto que puede ser por ejemplo, demostrar que se ha obtenido acceso a datos críticos, comprometer otros sistemas y, en general, lo que se haya pedido como objetivo final para la prueba de penetración, lo más común que se suele hacer luego de un primer acceso obtenido en la fase anterior gracias al aprovechamiento de alguna vulnerabilidad, que usualmente este acceso sería como un usuario con permisos limitados, lo que se suele hacer es escalar privilegios a un usuario con más permisos y que nos permita realizar más acciones y el acceso a información más crítica, para ello se hacen uso de exploits de kernel, extracción de credenciales, reutilización de credenciales, en el caso de sistemas Linux se puede recurrir a técnicas como abuso de sudoers, abuso de permisos SUID, abuso de tareas programadas, entre otras y, en el caso de sistemas Windows, se puede recurrir a técnicas como explotación de servicios, por ejemplo DLL HIJACKING, explotación de registros, tareas programadas o contraseñas, entre otras, en general, lo que busca es conseguir algo en el sistema que nos permita obtener ese acceso con más privilegios.
Esta es la fase final, cuyo objetivo es la documentación total de todo el proceso que hizo en la prueba de penetración, normalmente se suelen entregar a la empresa dos reportes, el técnico y el ejecutivo.
El reporte técnico tiene como objetivo expresar la información usando un lenguaje técnico, por ejemplo, explicando las vulnerabilidades encontradas, clasificándolas, dando una descripción de la vulnerabilidad, impacto y una solución, explicando el proceso que se usó para explotar dichas vulnerabilidades, la forma en la que se escalaron privilegios, qué información sensible se encontró y, en general detallar de forma ordenada el proceso que se siguió, esto para que dichos fallos de seguridad aprovechados puedan ser corregidos, esto se hace en lenguaje técnico ya que, este estará destinado a ser leído por el personal técnico de la empresa en cuestión.
Por otro lado, el reporte ejecutivo es el que tiene como objetivo expresar la información usando un lenguaje no técnico, saber transmitir y comunicar el proceso técnico que se hizo en la prueba de penetración para que un personal que no necesariamente sepa de informática pueda comprenderlo, es decir, si se logró vulnerar un sistema de la empresa gracias a la explotación de una vulnerabilidad encontrada, se tiene que saber expresar, por ejemplo, “se encontró un punto débil en el sistema provocado por faltas de actualizaciones en el mismo, debido a esto, una persona ajena a la empresa podría tomar el control del sistema sin autorización”, básicamente hacer que las personas sin conocimiento técnico puedan entender que se realizó.
Una vulnerabilidad es un fallo de seguridad, alguna una mala configuración o un punto débil en sistemas, redes, aplicaciones y/o servicios que, si es explotado, puede provocar que la información contenida ahí corra peligro, es porque es muy importante mantener todas las aplicaciones, servicios o el propio sistema operativo, actualizados, esto hará que los parches de seguridad se apliquen y las vulnerabilidades existentes hasta la fecha sean corregidas, de igual manera, hacer buenas configuraciones para securizar al máximo el software es muy recomendable.
Un exploit es un fragmento de código, secuencias de instrucciones o comandos que se utiliza para explotar una vulnerabilidad, para aprovecharse de un determinado fallo de seguridad, usualmente en software, los exploits se usan para que dentro de él viaje de cierta forma el payload, que es lo que veremos a continuación.
Un payload se puede definir como lo que se hará después que el exploit tuvo éxito al explotar una vulnerabilidad, la carga útil, por ejemplo, si un sistema tiene una vulnerabilidad que permite la ejecución de código remoto, entonces si se lanza un exploit a ese sistema para aprovechar esa vulnerabilidad, este serviría de cierta forma como una “inyectadora” cuyo contenido a inyectar sería el payload, que es el que tendría por dentro ese fragmento de código, secuencia de instrucciones o comandos que permitiría la ejecución de código remota en este caso.
Un 0day es como se les conoce a todas aquellas vulnerabilidades que no están parcheadas básicamente porque no son conocidas más que por la persona que la ha descubierto, pero ¿cómo es esto?, supongamos que tu descubres una vulnerabilidad en Windows, una vulnerabilidad que permite la ejecución de código remoto, pero no la reportas a Microsoft, sino que decides callarlo, eso ya es un 0day, puesto que nadie en el mundo sabe de esa vulnerabilidad más que tú, el problema aquí radica en que, si el equipo de desarrollo del software donde se ha detectado el 0day no está al tanto de la vulnerabilidad, no la corregirá, por ende quedarán cientos de miles de copias del softwares vulnerables hasta que se haga una revisión del código u otra persona consiga la misma vulnerabilidad y si la reporte para que sea solucionada, que es lo que se debe hacer en estos casos.
En la seguridad informática y, más en concreto en el hacking ético, se suele usar mucho el término de write-up y, es básicamente como un informe o una escritura, donde normalmente se trata de explicar el proceso o los pasos que se siguieron para resolver un CTF o una máquina boot2root de alguna plataforma, estas escrituras son muy útiles para personas que se inician en el hacking ético ya que pueden aprender un poco distintas metodologías que se usan para resolver estos desafíos o máquinas.
La palabra CTF significa Capture The Flag, en español sería Capturar La Bandera, los CTF son competiciones que buscan poner a prueba los conocimientos que se tengan sobre hacking, esto lo hacen por medio de distintos retos de varias temáticas, que se deben resolver para obtener la bandera o flag, la flag no es más que un simple código como por ejemplo flag{0p3n_W3b1n4rs} que es el objetivo final a conseguir y que permite demostrar que hemos superado el reto, normalmente, este tipo de competiciones se manejan por puntuación, es decir, que de todos los usuarios que participen en el CTF, aquel que reúna más puntos será el primer lugar y por ende ganará, los puntajes se otorgan normalmente en base al tiempo y dificultad que pueda tener un reto a resolver.
Los tipos de CTF, son, como comentábamos en el artículo de plataformas para practicar hacking ético:
Ataque y defensa: Son retos donde una serie de equipos se enfrentan, un equipo intentará defender un activo y el otro intentará atacarlo, aquí ganará el equipo que obtenga mayor puntuación.
Jeropardy: Son retos de temáticas variadas, entre ellas pueden estar retos de: criptografía, análisis forense, hacking web, esteganografía, reversing, osint, programación, entre otros.
Mixted: Son retos mixtos donde los formatos de estos pueden variar.
Una máquina boot2root es una máquina que viene preconfigurada con ciertas vulnerabilidades, donde nosotros debemos enumerarla, detectar las vulnerabilidades y explotarlas, todo esto con el objetivo de obtener dos flags, la de usuario y la de administrador, la de usuario se obtendrá cuando obtengamos un primer acceso como algún usuario del sistema o servicio y, la flag de administrador se obtendrá cuando escalemos privilegios al usuario administrador o root en caso de sistemas Linux. Este tipo de máquinas son excelentes de cara a practicar hacking ético, existen plataformas como TryHackMe o VulnHub, que cuentan con una alta cantidad de máquinas de este estilo, que van desde las más sencillas hasta máquinas que sirven como preparación para certificaciones como la CEH, Pentest+ u OSCP.
Si quieres profundizar más en este tema, te recomendamos los cursos de hacking ético en OpenWebinars, si te preguntas por cuál de ellos empezar, personalmente te recomiendo el curso de introducción a ethical hacking y, para que vayas calentando motores para esos cursos, puedes ir leyendo los otros artículos de hacking ético en OpenWebinars.
También te puede interesar
Si quieres aprender y practicar técnicas y herramientas de hacking ético, en este artículo te contamos qué plataformas son las más recomendables.
A continuación vamos a hablaros de conceptos que a veces se confunden, como son el hacking y el pentesting. Te explicamos en...