Muy buenas a todas, hoy, considero que damos un primer paso ya algo más técnico, introduciéndonos y sondeando poco a poco en las diferentes fases del pentesting, auditoría de seguridad o ciberataque. No vamos a hablar todavía del uso concreto de herramientas en sí, pero si desarrollaremos el conenido de dichas fases y las explicaciones pertinentes en cada una de ellas, para comprender por qué se hacen en este orden y los objetivos que pretende alcanzar cada una de ellas.
También nos detendremos en los datos esperados en cada fase, para que de esta forma, tengamos una especie de esquema de toda la estructura del proceso. Es de vital importancia ser metódicos y llevar un riguroso orden, tanto en las acciones realizadas, como en el proceso de preparación previo, y en la posterior documentación de toda la información que vayamos recavando.
Creímos necesario llevar a cabo primero este artículo antes de ponernos ya con explicaciones más específicas de herramientas concretas, para no dar lugar a que se generen posibles lagunas en el recorrido. Es de vital importancia que cuando tratéis de efectuar por vosotras mismas las pruebas de concepto de lo que vayamos explicando, realicéis una documentación personal ordenada, de todas las ténicas/acciones que vaís aprendiendo y utilizando (recomiendo usar para esto Chery-Tree). La razón es para que desde el principio comencéis a construir vuestro propio «arsenal» a utilizar (con sus explicaciones pertinentes) para que no se os vayan olvidando. Hago incapié en esto, porque veréis un montón de distintas formas de llevar a cabo la misma acción, y es normal que luego no las recordemos.
Conviene tener siempre una bitácora personal con la mayor cantidad posible de diferentes técnicas documentadas, llevadas a cabo si es posible desde distintas herramientas, porque no sabemos el entorno que vamos a tener a nuestra disposición en futuras ocasiones. Si nos acostumbramos a utilizar siempre las mismas herramientas/ténicas, puede ser un problema el día que no las tengamos a nuestra disposición por el motivo que sea.
Bueno vamos al lío. Las Fases en las que se desarrolla el proceso del Hacking, auditoria de seguridad o pentesting, se encuentran divididas de la siguiente manera (según nuestro aprendizaje/experiencia personal y nuestra óptica):
1. Reconnaissance
Esta primera fase comprende el empleo de aquellas técnicas destinadas a la obtención de toda la información que nos sea posible relativa a los objetivos establecidos (una «Toma de Huella»). Los datos que vamos recavando, deben de ser clasificados correctamente para su posterior tratamiento, debido a que posiblemente sean de un alto volumen en lo que a cantidad de información se refiere. Desde este punto, tendremos que ir filtrando la que nos va a ser útil y aprovechable de lo que no. El uso de las herramientas y técnicas que van a emplearse según para qué tipo de datos y objetivo, se amoldarán al orden previamente establecido según prioridades y forma habitual de proceder.
En esta fase se lleva a cabo lo que se denomina como Footprinting, que comprendería la recopilación de datos sobre la postura de seguridad, hallar un enfoque más específico, por ejemplo, de las IP’s objetivo, la identificación de vulnerabilidades, el trazo de un mapa de Red, nombre de dominio, nombres del sistema, posibles contraseñas en claro, servicios… entre otros.
Hay dos tipos de Footprinting, el activo que implica interactuar directamente con el objetivo (ej: nmap), y el pasivo que sería por ejemplo buscar información en RRSS, sitios web públicos (entre otros) pero sin interactuar directamente con el objetivo.
Principalmente, queremos obtener los siguientes datos e información relativa:
- Servicios en la red
- Convenciones de nomenclatura
- Direcciones IP
- Servidores
- Datos generales sobre personas implicadas
- Nombres y credenciales de inicio de sesión de los usuarios conectados
- Ubicación física
2. Scanning
Ya en esta segunda fase de escaneo, con toda la información obtenida en la anterior fase, comienza el uso de técnicas para tratar de recavar información referente a los activos/sistemas previamente identificados. La meta principal de esta fase, es tratar de hallar vulnerabilidades que luego tratarán de ser explotadas, y concretar datos sobre los servicios activos existentes en los diferentes puertos abiertos, así como información relativa al sistema operativo implementado en los activos identificados.
Pueden diferenciarse las siguientes técnicas, las cuales serán llevadas a cabo mediante el uso de herramientas ya existentes, o mediante scripts propios desarrollados por el equipo, adaptados a las necesidades concretas:
- Escaneo de puertos o vertical: consiste en la obtención de información relativa a aquellos puertos abiertos en un determinado hosts, para posteriormente elaborar un escaneo solamente contra los puertos abiertos obtenidos y así recabar datos precisos de los servicios que en ellos están operativos, como puede ser la versión de los mismos y así posteriormente intentar hallar la forma de vulnerar dichos servicios.
- Escaneo de hosts u horizontal: consiste en un escaneo con el fin de identificar los hosts existentes en la red, así como información relativa a si están activos y el sistema operativo que tienen instalado.
- Escaneo de vulnerabilidades: sería el uso de herramientas o técnicas para tratar de indentificar puntos débiles/vulnerabilidades que pueden ser posteriormente explotados en la orquestación del ataque en sí contra los activos objetivo. De esta forma podemos ir creando una hipótesis de la vía o vías por las que puede llevarse a cabo la penetración o ataque.
- Mapeo de red: el fin de este mapeo es descubrir la topología de red objetivo, en la que no solo estarían comprendidos los hosts, sino servidores, firewalls, WAF’s, enrutadores y otras posibles tecnologías de diferentes ámbitos.
- Barridos: este último concepto, haría referencia a posibles barridos ping, SNMP, SMB (entre otros) y los diferentes usos de herramientas para obtener información de servicios concretos mediante el uso de ténicas más específicas que con el escaneo de puertos.
3. Gaining Access
Después de las fases anteriores, ya han sido detectadas y estudiadas las diferentes vulnerabilidades que en esta fase van a tratar de ser explotadas. El primer objetivo en este punto, es el de ganar acceso al sistema objetivo. Para ello, pueden ser empleados varios vectores de ataque, desde el envió de un payload malicioso a través de alguna aplicación específica, intentar que la víctima caiga en un ataque phishing y así obtener sus credenciales de acceso, también puede ser físicamente en alguno de los equipos, por ejemplo, mediante un usb con la carga maliciosa o software pertinente, y un sin fín más de posibles vectores para intentar ganar el preciado acceso a sus sistemas.
Existen infinidad de herramientas diseñadas con este fin, como por ejemplo Metasploit, Cobalt Strike y Armitage. Uno de los ojetivos principales en esta fase es la escalada de privilegios una vez se tiene ganado el acceso, para así poder llevar a cabo sin restricciones las acciones previstas en el sistema comprometido.
Algunas de las técnicas habituales en esta fase son:
- Buffer overflows
- Phishing
- Injection attacks
- XML External Entity processing
- Servirse de componentes vulnerables que garantizan en acceso
- DDoS attack o data breaches para efectuar un posterior acceso
4. Maintaining Access
En esta cuarta fase, estarían comprendidas las técnicas cuyo fin es mantener una persistencia en la víctima comprometida. El fin puede ser, desplegar los medios para un posterior ataque más potente/elaborado o con nuevas funcionalidades, o bien zombificar este activo y ser usado dentro de una botnet para futuros ataques con recursos altamente potenciados en función del número de equipos que formen dicha botnet.
Una práctica común, es tratar de crear un usuario con permisos administrativos camuflado dentro de la estructura habitual del objetivo, y que así pase desapercibido como un usuario más. De esta forma, quedaría garantizado el posterior acceso sin encontrar ninguna dificualdad para ello, simplemente utilizando las credenciales que fueron establecidas para dicho usuario.
Pueden desplegarse backdoors o reverse shells, con el fin de obtener de esta forma posteriores accesos. Un ejemplo de esta técnica, es introducir una reverse shell en lenguaje PHP, direccionada a nuestro equipo, en la página de error 404.php de un WordPress. De esta forma, al navegar contra ese recurso, teniendo nuestro equipo a la escucha por el puerto establecido, se iniciaría el acceso al sistema comprometido.
Hay otros casos en los que se despliegan herramientas de tipo sniffer o keylogger, para extraer posible nueva información susceptible de ser utilizada en nuevos ataques a otras posibles víctimas de mayor magnitud/importancia.
5. Clearing Track
El objetivo de esta última fase es la eliminación de cualquier rastro o evidencia de aquella actividad que hayamos llevado a cabo en el sistema vulnerado, o en fases anteriores. Da igual que sea legítima o no la acción que hayamos realizado, esta es una manera habitual de proceder si queremos que el trabajo esté correctamente ejecutado de principio a fin. Un atacante real serio sí va a realizar estas medidas de eliminación de rastro para evitar que se le identifique a él y a su forma de proceder.
Se da por hecho, que previamente a todas las fases aquí descritas, se han realizado una serie de medidas preventicas como puede ser el uso de una VPN, el cambio de nuestra MAC por otra distinta, el posible uso de un proxy, y el de técnicas que traten de llamar lo menos posible la atención (por ejemplo el parámetro -T de nmap regula este aspecto). Es muy común el uso de la tunelización y la esteganografía con fines de camuflaje de diferentes tipos de datos implicados.
Algunas de las técnicas más comúnmente utilizadas para eliminar el rastro son:
- Desinstalar los scripts/aplicaciones utilizados para realizar los ataques
- Modificar los valores del registro
- Borrar los registros
- Borrar las carpetas creadas durante el ataque
6. Documentación
Dependiendo de si lo que llevamos a cabo es una auditoria de seguridad o pentesting mediante contrato con una empresa, o son actividades fuera de este marco, deberán llevarse a cabo una serie de informes técnicos y ejecutivos, con toda la metodología y framework que hemos empleado y meditante la que hemos llevado a cabo las diferentes actividades, en los que se tendrán que ver reflejadas todas las pruebas efectuadas, los resultados obtenidos derivados de las mismas y una serie de elementos debidamente cumplimentados y documentados, para que todo el trabajo realizado se vea correctamente reflejado de cara a la parte contratante, o que nuestra empresa le haga entrega de estos informes al cliente de turno.
Hay que tener en cuenta, que estos informes deben estar elaborados de tal forma que una persona no técnica pueda comprender perfectamente el trabajo que hemos realizado, es decir, lo que reflejan los informes. En su elaboración, la información debe ser tratada en función a los siguientes aspectos: la disponibilidad, confidencialidad e integridad de la información.
Deben responder a lo que se conoce como 5WH, básicamente son las siguientes preguntas que debemos responder a través de los informes:
- ¿Qué?
- ¿Por qué?
- ¿Cuándo?
- ¿Dónde?
- ¿Cómo?
Estos son algunos de los estándares más conocidos:
- ISSAF (Information Systems Security Assessment Framework)
- PCI DSS (Payment Card Industry Data Security Standard)
- OSSTMM (Manual de la Metodología Abierta de Testeo de Seguridad)
- PTES (Penetration Testing Execution Standard)
Bueno, ya hemos recorrido por así decirlo, los pasos preliminares para poder empezar a desgranar técnicas más concretas y encarar las siguientes partes de la guía de una formar más técnica, no sin olvidarnos de profundizar en conceptos que creamos necesarios para comprenderlas.
Espero que os haya resultado interesante y que alguna con suerte haya aprendido algún concepto que no conocía previamente. Muchas gracias por haber leído hasta aquí, en nada estamos de vuelta con más artículos y dando toda la guerra posible. Besos y hasta pronto.