Hola a todos,
Tras desplegar y configurar todas las herramientas vamos a proceder a presentar la metodología que se va a seguir.
Introducción
El enfoque que se va a seguir en este proyecto es una mezcla entre la metodología tradicional del pentesting basada en diferentes etapas por las que pasa el auditor a la hora de intentar vulnerar un servicio, máquina, etc.. y una metodología propia, en la cual, se buscan los servicios activos en los equipos, se desarrollan y se ejecutan, con diferentes técnicas, las vulnerabilidades más usuales en este tipo de entornos y servicios. Se ha elegido este tipo de enfoque puesto que la metodología actual del pentesting engloba de manera muy superficial todos los apartados, lo que implica que si se sigue de manera estricta es posible quedarse atascado en un estado sin posibilidad de poder avanzar al siguiente; de esta manera el resultado final aportado será una mezcla entre el informe técnico y el ejecutivo, para que cualquiera pueda entender cada uno de los ataques.
La metodología presentada para el pentesting de un entorno Linux es distinta a un entorno Windows, ya que los servicios que corren en cada entorno suelen ser distintos, es normal encontrar más fallos de seguridad conocidos en entornos Linux puesto que es de código abierto y cualquiera puede conocer cómo trabaja a bajo nivel; pero en un entorno Windows es más difícil de conseguir vectores de ataque que afecten directamente al código del sistema, ya que se trata de un sistema “cerrado”, por lo que se deben buscar vulnerabilidades en los servicios que trabajan a bajo nivel con el sistema operativo.
Se va a presentar todos los pasos a seguir, como si de una propuesta de pentesting hacía un entorno real de cliente se tratase, esto implica que el entorno desplegado para este proyecto cuenta con las vulnerabilidades más habituales que se pueden encontrar en una empresa por lo que este enfoque podría ser utilizado de forma profesional en ámbitos empresariales.
Se seguirá el siguiente proceso:
Alcance: hasta donde llegará el pentester en la ejecución de vulnerabilidades sobre el entorno.
Reconocimiento: se buscarán todos los equipos de la red y se revisarán los servicios ejecutados en los equipos. En este punto se buscarán todos los usuarios y equipos de la red disponibles.
Servicios y vulnerabilidades: se buscarán todos los vectores de ataque disponibles para los servicios ejecutados en los equipos.
Ejecución de vectores de ataque: se probarán y ejecutarán los distintos vectores de ataque sobre los equipos. En este punto se desarrollarán los ataques Kerberoasting, Samba Relay, ASREPRoast, para obtener las contraseñas de los usuarios; NTMLRelay para obtener hashes de sesión y Pass The Hash para obtener información sin necesidad de contraseña.
Pruebas de elevación de privilegios: tras obtener credenciales válidas de un usuario con bajos privilegios se escalarán los permisos de este hacía un usuario con mayores privilegios. En este punto se vulnerará el privilegio SeBackupPrivilege.
Persistencia: tras la obtención de permisos de usuario administrador del sistema, se investigarán y ejecutarán vectores de ataque para que si este cambia de credenciales siga siendo posible acceder al sistema. En este aparatado se desarrollará el ataque Golden Ticket.
Eliminación de huellas: se eliminarán todos los archivos introducidos en los equipos vulnerables.
Esquema del proceso
Este será el esquema que seguirá todo el trabajo:
Se empezará por el alcance que se le va a dar al proyecto, entrando en detalle en la finalidad, el tipo de auditoría y los compromisos legales; una vez establecido el alcance se pasará al reconocimiento, que comenzará por el reconocimiento de equipos, después, si se obtiene la información, pasará al reconocimiento de los servicios que corren en esos equipos y por último a los usuarios de los equipos; a continuación se evaluarán todos los servicios abiertos y se empezarán a ejecutar los ataques, cuando se obtengan las credenciales válidas, se intentará realizar la elevación de privilegios, obteniendo acceso de manera privilegiada al AD; seguidamente se establecerá persistencia en los equipos y por último se realizará el borrado de huellas.
La figura propuesta, se ha dividido por colores donde el verde son los procesos por los que va pasando el pentesting y los de color naranja son el subconjunto de actividades dentro de cada proceso que permite pasar al siguiente, por último, los apartados que no están señalados con colores significa que no se van a tratar de manera intensiva.
Para no alargar mucho esta serie de posts vamos a empezar por introducir la fase de Alcance:
Alcance
Para este primer punto, en este proyecto, no se recogen las peticiones reales que puede solicitar un cliente, ya que no se trabaja bajo un entorno real, pero el alcance propuesto por esta suele ser el habitual en entornos empresariales, lo que implica que un pentester puede usarlo para presentar los informes y detallar el trabajo realizado.
En los siguientes puntos se detalla el alcance que recibirá el desarrollo de este proyecto.
Finalidad
Se ofrecen diferentes tipos de pruebas y ataques para encontrar los fallos según los requerimientos solicitados por el cliente.
Este proyecto se centra en las vulnerabilidades de un AD y los objetos que recoge en su red para la plataforma desplegada, el objetivo principal será este servicio, aunque se ejecutarán enumeraciones hacía los clientes para comprender como funciona la red, la elevación de privilegios se realizará sobre el AD, pero la búsqueda de credenciales válidas será ejecutada en todos los equipos disponibles sobre la red.
Se debe recordar que la plataforma desplegada está pensada para que no sea vulnerada manteniendo su configuración lo más actualizada posible, por lo que existe la probabilidad que no existan elementos vulnerables conocidos y que se deba modificar la configuración de estos para poder probar los ataques, como hemos indicado en el anterior post.
Tipo de auditoria
- Caja negra: el pentester no conoce ningún dato del cliente y actúa fuera de su red.
- Caja gris: el pentester actúa como cliente o usuario de la empresa donde realiza la auditoria.
- Caja blanca: el pentester actúa como usuario interno teniendo acceso a todos los sistemas del cliente.
La auditoría más complicada y difícil de ejecutar en este entorno sería un auditoria de tipo caja negra, donde se tendría que buscar la estructura de red del entorno desde Internet, con el fin de llegar a conectarse a la red vulnerable; con el fin de no extender este proyecto, se propone una auditoría mixta de caja gris y caja blanca.
La auditoría de caja gris suele ser la más habitual en entornos empresariales, ya que el pentester actuará como un usuario dentro de la red, pero no conocerá los sistemas del cliente, por lo que tendrá que realizar un descubrimiento de la red del “cliente” y establecer un ataque para los equipos encontrados.
La auditoría de caja blanca, no se contempla de forma completa, ya que fuera de los servicios “básicos” del AD, no se ejecuta ningún otro servicio vulnerable que pueda ser atacado con las credenciales administradoras, pero una vez obtenidas se buscarán vulnerabilidades para obtener persistencia en los equipos, por lo que estas vulnerabilidades podrían buscarse de forma directa con este tipo de auditoría.
Compromisos Legales
El pentester debe firmar un acuerdo con el cliente donde manifieste que no facilitará ninguna información encontrada y acordando acceder solo a los sistemas indicados por el cliente, ya que las actuaciones del auditor podrían comprometer el funcionamiento de los sistemas y acceso a contenido personal.
Al no afectar arquitectura real de un cliente no se debe llegar a ningún compromiso legal.
Pero de todas formas, aquí tenéis un enlace a un documento de https://elhacker.net donde ilustra todas las características a tener en cuenta para los compromisos legales antes de realizar la auditoria.
Conclusión
Esto sería todo, en el siguiente post veremos el siguiente paso de nuestra metodología el Reconocimiento
.