AWS - GuardDuty Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Según la documentación: GuardDuty combina aprendizaje automático, detección de anomalías, monitoreo de red y descubrimiento de archivos maliciosos, utilizando tanto AWS como fuentes de terceros líderes en la industria para ayudar a proteger cargas de trabajo y datos en AWS. GuardDuty es capaz de analizar decenas de miles de millones de eventos a través de múltiples fuentes de datos de AWS, como registros de eventos de AWS CloudTrail, registros de flujo de Amazon Virtual Private Cloud (VPC), registros de auditoría y de nivel de sistema de Amazon Elastic Kubernetes Service (EKS), y registros de consultas DNS.
Amazon GuardDuty identifica actividades inusuales dentro de tus cuentas, analiza la relevancia de seguridad de la actividad y proporciona el contexto en el que fue invocada. Esto permite a un respondedor determinar si debe dedicar tiempo a una investigación adicional.
Las alertas aparecen en la consola de GuardDuty (90 días) y en CloudWatch Events.
Cuando un usuario desactiva GuardDuty, dejará de monitorear tu entorno de AWS y no generará nuevos hallazgos, y los hallazgos existentes se perderán. Si solo lo detienes, los hallazgos existentes permanecerán.
Reconocimiento: Actividad que sugiere reconocimiento por parte de un atacante, como actividad inusual de API, intentos de inicio de sesión en bases de datos sospechosos, escaneo de puertos intra-VPC, patrones inusuales de solicitudes de inicio de sesión fallidas, o sondeo de puertos desbloqueados desde una IP conocida como mala.
Compromiso de instancia: Actividad que indica un compromiso de instancia, como minería de criptomonedas, actividad de comando y control (C&C) de puerta trasera, malware utilizando algoritmos de generación de dominios (DGA), actividad de denegación de servicio saliente, volumen de tráfico de red inusualmente alto, protocolos de red inusuales, comunicación de instancia saliente con una IP maliciosa conocida, credenciales temporales de Amazon EC2 utilizadas por una dirección IP externa, y exfiltración de datos utilizando DNS.
Compromiso de cuenta: Patrones comunes indicativos de compromiso de cuenta incluyen llamadas a la API desde una geolocalización inusual o proxy de anonimización, intentos de desactivar el registro de AWS CloudTrail, cambios que debilitan la política de contraseñas de la cuenta, lanzamientos inusuales de instancias o infraestructura, implementaciones de infraestructura en una región inusual, robo de credenciales, actividad sospechosa de inicio de sesión en bases de datos, y llamadas a la API desde direcciones IP maliciosas conocidas.
Compromiso de bucket: Actividad que indica un compromiso de bucket, como patrones de acceso a datos sospechosos que indican uso indebido de credenciales, actividad inusual de API de Amazon S3 desde un host remoto, acceso no autorizado a S3 desde direcciones IP maliciosas conocidas, y llamadas a la API para recuperar datos en buckets de S3 desde un usuario sin historial previo de acceso al bucket o invocadas desde una ubicación inusual. Amazon GuardDuty monitorea y analiza continuamente los eventos de datos de S3 de AWS CloudTrail (por ejemplo, GetObject, ListObjects, DeleteObject) para detectar actividad sospechosa en todos tus buckets de Amazon S3.
Accede a una lista de todos los hallazgos de GuardDuty en: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html
Puedes invitar a otras cuentas a una cuenta diferente de AWS GuardDuty para que cada cuenta sea monitoreada desde el mismo GuardDuty. La cuenta maestra debe invitar a las cuentas miembros y luego el representante de la cuenta miembro debe aceptar la invitación.
Puedes designar cualquier cuenta dentro de la organización como el administrador delegado de GuardDuty. Solo la cuenta de gestión de la organización puede designar un administrador delegado.
Una cuenta que se designa como administrador delegado se convierte en una cuenta de administrador de GuardDuty, tiene GuardDuty habilitado automáticamente en la región de AWS designada, y también tiene la permiso para habilitar y gestionar GuardDuty para todas las cuentas en la organización dentro de esa región. Las otras cuentas en la organización pueden ser vistas y añadidas como cuentas miembros de GuardDuty asociadas con esta cuenta de administrador delegado.
Intenta averiguar tanto como sea posible sobre el comportamiento de las credenciales que vas a usar:
Tiempos que se utiliza
Ubicaciones
Agentes de Usuario / Servicios (Podría ser utilizado desde awscli, webconsole, lambda...)
Permisos utilizados regularmente
Con esta información, recrea tanto como sea posible el mismo escenario para usar el acceso:
Si es un usuario o un rol accedido por un usuario, intenta usarlo en las mismas horas, desde la misma geolocalización (incluso el mismo ISP y IP si es posible)
Si es un rol utilizado por un servicio, crea el mismo servicio en la misma región y úsalo desde allí en los mismos rangos de tiempo
Siempre intenta usar los mismos permisos que este principal ha utilizado
Si necesitas usar otros permisos o abusar de un permiso (por ejemplo, descargar 1.000.000 de archivos de registro de cloudtrail) hazlo lentamente y con la mínima cantidad de interacciones con AWS (awscli a veces llama a varias APIs de lectura antes de la de escritura)
guardduty:UpdateDetector
Con este permiso podrías desactivar GuardDuty para evitar activar alertas.
guardduty:CreateFilter
Los atacantes con este permiso tienen la capacidad de emplear filtros para la archivación automática de hallazgos:
iam:PutRolePolicy
, (guardduty:CreateIPSet
|guardduty:UpdateIPSet
)Los atacantes con los privilegios anteriores podrían modificar la Lista de IPs de confianza de GuardDuty añadiendo su dirección IP a ella y evitar generar alertas.
guardduty:DeletePublishingDestination
Los atacantes podrían eliminar el destino para evitar alertas:
Eliminar este destino de publicación no afectará la generación o visibilidad de los hallazgos dentro de la consola de GuardDuty. GuardDuty continuará analizando eventos en su entorno de AWS, identificando comportamientos sospechosos o inesperados y generando hallazgos.
Tenga en cuenta que hay decenas de hallazgos de GuardDuty, sin embargo, como Red Teamer, no todos ellos te afectarán, y lo que es mejor, tienes la documentación completa de cada uno de ellos en https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html así que échale un vistazo antes de realizar cualquier acción para no ser atrapado.
Aquí tienes un par de ejemplos de bypass de hallazgos específicos de GuardDuty:
GuardDuty detecta solicitudes de API de AWS de herramientas comunes de pruebas de penetración y activa un Hallazgo de PenTest. Se detecta por el nombre del agente de usuario que se pasa en la solicitud de API. Por lo tanto, modificando el agente de usuario es posible evitar que GuardDuty detecte el ataque.
Para prevenir esto, puedes buscar en el script session.py
en el paquete botocore
y modificar el agente de usuario, o configurar Burp Suite como el proxy de AWS CLI y cambiar el agente de usuario con MitM o simplemente usar un sistema operativo como Ubuntu, Mac o Windows evitará que se active esta alerta.
Extraer credenciales de EC2 del servicio de metadatos y utilizarlas fuera del entorno de AWS activa la alerta UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS
. Por el contrario, emplear estas credenciales desde tu instancia de EC2 activa la alerta UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS
. Sin embargo, usar las credenciales en otra instancia de EC2 comprometida dentro de la misma cuenta no se detecta, sin generar ninguna alerta.
Por lo tanto, usa las credenciales exfiltradas desde dentro de la máquina donde las encontraste para no activar esta alerta.
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)