AWS - Lambda Persistence
Last updated
Last updated
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)
Para más información consulta:
AWS - Lambda EnumEs posible introducir/puente un layer para ejecutar código arbitrario cuando la lambda se ejecuta de manera sigilosa:
AWS - Lambda Layers PersistenceAbusando de Lambda Layers también es posible abusar de extensiones y persistir en la lambda, pero también robar y modificar solicitudes.
AWS - Abusing Lambda ExtensionsEs posible otorgar acceso a diferentes acciones de lambda (como invocar o actualizar código) a cuentas externas:
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 solo con el código legítimo y ejecutar solo la versión 1 en el 1% de las solicitudes para permanecer sigiloso.
Copia el código original de la Lambda
Crea una nueva versión con puerta trasera del código original (o solo con código malicioso). Publica y despliega esa versión a $LATEST
Llama al API gateway relacionado con la lambda para ejecutar el código
Crea una nueva versión con el código original, publica y despliega esa versión a $LATEST.
Esto ocultará el código con puerta trasera en una versión anterior
Ve al 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
Nota el final :1 del arn indicando la versión de la función (la versión 1 será la de puerta trasera en este escenario).
Selecciona el método POST creado y en Acciones selecciona Deploy API
Ahora, cuando llames a la función vía POST, tu puerta trasera será invocada
El hecho de que puedes hacer que las funciones lambda se ejecuten cuando algo sucede o cuando pasa un tiempo hace que lambda sea una forma agradable y común de obtener persistencia y evitar detección. Aquí tienes algunas ideas para hacer tu presencia en AWS más sigilosa creando lambdas.
Cada vez que se crea un nuevo usuario, lambda genera una nueva clave de usuario y se 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, elimínalos/modifícalos.
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)