AWS - Lambda Persistence

Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Red Team de AWS de HackTricks)!

Otras formas de apoyar a HackTricks:

Lambda

Para más información consulta:

pageAWS - Lambda Enum

Persistencia en Capa Lambda

Es posible introducir/crear una puerta trasera en una capa para ejecutar código arbitrario cuando la lambda se ejecuta de manera sigilosa:

pageAWS - Lambda Layers Persistence

Persistencia en Extensión Lambda

Abusando de las Capas Lambda también es posible abusar de extensiones y persistir en la lambda pero también robar y modificar solicitudes.

pageAWS - Abusing Lambda Extensions

A través de políticas de recursos

Es posible otorgar acceso a diferentes acciones de lambda (como invocar o actualizar código) a cuentas externas:

Versiones, Alias y Pesos

Una Lambda puede tener diferentes versiones (con código diferente en cada versión). Luego, puedes crear diferentes alias con diferentes versiones de la lambda y establecer diferentes pesos para cada uno. De esta manera, un atacante podría crear una versión 1 con puerta trasera y una versión 2 con solo el código legítimo y solo ejecutar la versión 1 en el 1% de las solicitudes para permanecer sigiloso.

Puerta Trasera de Versión + API Gateway

  1. Copia el código original de la Lambda

  2. Crea una nueva versión con puerta trasera del código original (o solo con código malicioso). Publica y implementa esa versión en $LATEST

  3. Llama a la API Gateway relacionada con la lambda para ejecutar el código

  4. Crea una nueva versión con el código original, Publica e implementa esa versión en $LATEST.

  5. Esto ocultará el código con puerta trasera en una versión anterior

  6. Ve a la API Gateway y crea un nuevo método POST (o elige cualquier otro método) que ejecutará la versión con puerta trasera de la lambda: arn:aws:lambda:us-east-1:<acc_id>:function:<func_name>:1

  7. Toma nota del :1 final del arn indicando la versión de la función (la versión 1 será la con puerta trasera en este escenario).

  8. Selecciona el método POST creado y en Acciones selecciona Implementar API

  9. Ahora, cuando llames a la función a través de POST tu Puerta Trasera será invocada

Actuador Cron/Evento

El hecho de que puedas hacer que las funciones lambda se ejecuten cuando algo sucede o cuando pasa cierto tiempo hace que lambda sea una forma agradable y común de obtener persistencia y evitar la detección. Aquí tienes algunas ideas para hacer que tu presencia en AWS sea más sigilosa creando lambdas.

  • Cada vez que se crea un nuevo usuario, lambda genera una nueva clave de usuario y la envía al atacante.

  • Cada vez que se crea un nuevo rol, lambda otorga permisos de asumir rol a usuarios comprometidos.

  • Cada vez que se generan nuevos registros de cloudtrail, eliminar/alterarlos

Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Red Team de AWS de HackTricks)!

Otras formas de apoyar a HackTricks:

Última actualización