Por: Verónica Berenguer Garrido, Dpto. Ciberseguridad de IaaS365.
Hoy en día cuando escuchamos la palabra “hacker” nos imaginamos a un delincuente realizando actividades ilegales en una terminal. Sin embargo, no siempre es así ya que existe una gran diferencia entre ciberdelincuente y hacker.
Un hacker es cualquier persona que tiene conocimiento de técnicas hacking. Ahora bien, podemos diferenciar entre hacker ético y ciberdelincuente. Ambos tienen los mismos conocimientos de hacking, con la diferencia que el primero los utiliza para descubrir vulnerabilidades y reportarlas para mejorar sistemas y aplicaciones, mientras que el segundo pretende obtener algún beneficio, como compensación económica, extorsión, etc.
Unido a lo anterior, podemos introducir el término de auditoría de seguridad o pentesting, cuya finalidad es proporcionar un servicio enfocado en el análisis y explotación de vulnerabilidades para determinar los puntos débiles de una organización. Gracias a ello, se podrá poner remedio a las incidencias encontradas para evitar, en la medida de lo posible, que un atacante pueda acceder a recursos internos de la organización o provocar algún daño. Es decir, el objetivo es simular un ataque controlado y anticiparse a un ataque real para implementar las medidas necesarias y disminuir la probabilidad de una intrusión efectiva en los sistemas.
En este artículo veremos de forma genérica las diferentes fases por las que pasa un pentesting.
Recolección de información
Esta primera fase trata de analizar la superficie de exposición de una organización haciendo uso de técnicas OSINT (Open Source Intelligence). Para ello, el auditor se enfoca en la búsqueda activa de datos de interés de cara en fuentes públicas (aplicaciones, hosts, usuarios, herramientas, versiones, filtraciones de datos, etc)
De esta forma, el auditor podrá a su vez elaborar el listado de activos a analizar según la información recopilada. En base a ello, podemos distinguir los siguientes tipos de pentesting:
BLACKBOX
El auditor no tiene conocimiento de la infraestructura de la organización objetivo. Es el escenario más real, ya que un atacante estará en el mismo punto de situación inicial.
WHITEBOX
Al contrario que el anterior, el auditor tendrá conocimiento de la infraestructura del cliente, ya que será el que le proporcione todos estos datos para la realización del pentesting.
GREYBOX
Es la combinación de las dos anteriores. En este punto, el auditor tendrá información parcial de la infraestructura proporcionada por el cliente y la completará con los activos que recopile en fuentes abiertas.
Una vez finalizada esta fase y tenemos recopilados todos los activos, procedemos a su análisis.
Análisis de vulnerabilidades
Esta fase está enfocada al descubrimiento de posibles vulnerabilidades de seguridad en la red del cliente, siendo uno de los primeros pasos el escaneo de puertos para encontrar servicios, tecnologías y versiones. Una vez se conocen estos datos, es posible relacionar las vulnerabilidades asociadas. Este análisis puede ser activo o pasivo dependiendo del grado de intrusión en los sistemas.
No podemos dejar de hacer mención al estándar CVE (Common Vulnerabilities and Exposures). Éste identifica todas las amenazas y vulnerabilidades relacionadas con la seguridad del sistema, asignando un identificador único a cada vulnerabilidad y calificándolas según el impacto y nivel de intrusión que pueda causar en caso de una explotación efectiva. A través de https://cve.mitre.org podemos encontrar este repositorio de vulnerabilidades.
Explotación de vulnerabilidades
Nos encontramos ante una de las fases más importantes, ya que trata de verificar si las vulnerabilidades descubiertas son reales o se tratan de un falso positivo. Esto se debe a que la identificación de vulnerabilidades se basa en unos parámetros o evidencias circunstanciales que habrá que corroborar.
En esta fase se demuestran realmente las habilidades y conocimientos del auditor, ya que deberá hacer uso de scripts propios o exploits de terceros para la explotación de las vulnerabilidades encontradas. Un exploit es, básicamente, un fragmento de código para aprovechar una vulnerabilidad particular.
Como mencionábamos anteriormente, esta es la fase más importante debido a que se debe realizar una investigación a fondo para descubrir el método de explotación efectivo para obtener acceso al objetivo, por lo que normalmente es la fase que conlleva más implicación y tiempo.
Entre los recursos más famosos podemos destacar Metasploit o Exploit-DB.
Escalado de privilegios
Una vez que haya sido posible explotar con éxito una vulnerabilidad y tengamos acceso a una máquina remota entramos en la última fase: escalada de privilegios.
La escalada de privilegios es el proceso de aumentar el nivel de acceso a una máquina o red, es decir, hacernos con un superusuario para tener total control.
Dependiendo del sistema operativo, el auditor se puede ayudar de una serie de scripts dedicados a realizar un seguimiento de las vulnerabilidades y sugerir posibles exploits para la elevación de privilegios. Los recursos más conocidos serían Linux exploit suggester, Sherlock.ps1 o Windows Exploit Suggester, entre otros. Estos scripts se ejecutarían en la propia máquina comprometida y se encargan de verificar las características del equipo, actualizaciones, versiones, etc, para detectar posibles vectores y carencias de seguridad para la elevación de privilegios.
Una vez el auditor tiene completamente comprometida la máquina, es importante mantener este acceso y recabar las evidencias que demuestran que, efectivamente, es vulnerable.
Conclusión
Día a día las técnicas, herramientas y métodos de hacking evolucionan continuamente, por lo que invertir en seguridad es invertir en tranquilidad y futuro, destacando sobre todo la importancia de este tipo de prácticas de forma recurrente y periódica para evaluar el estado de la seguridad y anticiparse a las intenciones de un ciberdelincuente, ya que lo que hoy es seguro, mañana puede que no lo sea.