AWS - GuardDuty Enum
GuardDuty
Según la documentación: GuardDuty combina aprendizaje automático, detección de anomalías, monitoreo de red y descubrimiento de archivos maliciosos, utilizando fuentes tanto de AWS como 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 en múltiples fuentes de datos de AWS, como registros de eventos de AWS CloudTrail, registros de flujo de Amazon Virtual Private Cloud (VPC), auditoría de Amazon Elastic Kubernetes Service (EKS) y registros de nivel de sistema, y registros de consultas DNS.
Amazon GuardDuty identifica actividad inusual 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 respondiente 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 en absoluto, y los hallazgos existentes se perderán. Si simplemente lo detienes, los hallazgos existentes permanecerán.
Ejemplo de Hallazgos
Reconocimiento: Actividad que sugiere reconocimiento por parte de un atacante, como actividad de API inusual, intentos de inicio de sesión sospechosos en la base de datos, escaneo de puertos intra-VPC, patrones inusuales de solicitudes de inicio de sesión fallidas, o sondeo de puertos no bloqueados desde una IP conocida como maliciosa.
Compromiso de instancia: Actividad que indica un compromiso de instancia, como minería de criptomonedas, actividad de comando y control de puerta trasera (C&C), malware que utiliza 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 de API desde una geolocalización inusual o un proxy de anonimización, intentos de deshabilitar el registro de AWS CloudTrail, cambios que debilitan la política de contraseñas de la cuenta, lanzamientos de instancias o infraestructuras inusuales, implementaciones de infraestructura en una región inusual, robo de credenciales, actividad de inicio de sesión sospechosa en la base de datos y llamadas de 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 de API para recuperar datos en buckets de S3 de un usuario sin historial previo de acceso al bucket o invocado desde una ubicación inusual. Amazon GuardDuty monitorea y analiza continuamente los eventos de datos de AWS CloudTrail S3 (por ejemplo, GetObject, ListObjects, DeleteObject) para detectar actividad sospechosa en todos tus buckets de Amazon S3.
Todos los Hallazgos
Accede a una lista de todos los hallazgos de GuardDuty en: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html
Múltiples Cuentas
Por Invitación
Puedes invitar a otras cuentas a una cuenta de AWS GuardDuty diferente para que cada cuenta sea monitoreada desde el mismo GuardDuty. La cuenta maestra debe invitar a las cuentas miembro y luego el representante de la cuenta miembro debe aceptar la invitación.
A través de la Organización
Puedes designar cualquier cuenta dentro de la organización como el administrador delegado de GuardDuty. Solo la cuenta de administración de la organización puede designar un administrador delegado.
Una cuenta designada 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 el permiso para habilitar y administrar 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 agregadas como cuentas miembro de GuardDuty asociadas con esta cuenta de administrador delegado.
Enumeración
Bypass de GuardDuty
Orientación General
Intenta averiguar tanto como sea posible sobre el comportamiento de las credenciales que vas a utilizar:
Veces que se utilizan
Ubicaciones
Agentes de usuario / Servicios (podría ser utilizado desde awscli, consola web, lambda...)
Permisos utilizados regularmente
Con esta información, recrea tanto como sea posible el mismo escenario para utilizar 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 e 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 utilizar otros permisos o abusar de un permiso (por ejemplo, descargar 1.000.000 de archivos de registro de CloudTrail) hazlo lentamente y con la cantidad mínima de interacciones con AWS (awscli a veces llama a varias API de lectura antes de la de escritura)
Rompiendo GuardDuty
guardduty:UpdateDetector
guardduty:UpdateDetector
Con este permiso podrías desactivar GuardDuty para evitar activar alertas.
guardduty:CreateFilter
guardduty:CreateFilter
Los atacantes con este permiso tienen la capacidad de utilizar filtros para el archivado automático de hallazgos:
iam:PutRolePolicy
, (guardduty:CreateIPSet
|guardduty:UpdateIPSet
)
iam:PutRolePolicy
, (guardduty:CreateIPSet
|guardduty:UpdateIPSet
)Los atacantes con los privilegios anteriores podrían modificar la lista de IP confiables de GuardDuty agregando su dirección IP y evitando así generar alertas.
guardduty:DeletePublishingDestination
guardduty:DeletePublishingDestination
Los atacantes podrían eliminar el destino para evitar la generación de alertas:
Eliminar este destino de publicación no afectará la generación o visibilidad de hallazgos dentro de la consola de GuardDuty. GuardDuty continuará analizando eventos en su entorno de AWS, identificando comportamientos sospechosos o inesperados y generando hallazgos.
Ejemplos de Bypass de Hallazgos Específicos
Tenga en cuenta que hay decenas de hallazgos de GuardDuty, sin embargo, como Red Teamer no todos 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 echa un vistazo antes de tomar cualquier acción para no ser descubierto.
Aquí tienes un par de ejemplos de bypass de hallazgos específicos de GuardDuty:
GuardDuty detecta solicitudes de API de AWS desde 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 evitar esto, puedes buscar en el script session.py
en el paquete botocore
y modificar el agente de usuario, o configurar Burp Suite como proxy de AWS CLI y cambiar el user-agent con el MitM o simplemente usar un sistema operativo como Ubuntu, Mac o Windows para evitar que esta alerta se active.
UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration
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, utilizar estas credenciales desde su instancia EC2 activa la alerta UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS
. Sin embargo, utilizar las credenciales en otra instancia EC2 comprometida dentro de la misma cuenta no se detecta, no generando ninguna alerta.
Por lo tanto, utiliza las credenciales exfiltradas desde dentro de la máquina donde las encontraste para no activar esta alerta.
Referencias
Última actualización