AWS - Lambda Persistence
Lambda
Para más información revisa:
AWS - Lambda EnumLambda Layer Persistence
Es posible introducir/backdoor una capa para ejecutar código arbitrario cuando la lambda se ejecuta de manera sigilosa:
AWS - Lambda Layers PersistenceLambda Extension Persistence
Abusando 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 ExtensionsVía 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 diferente código cada versión). Luego, puedes crear diferentes alias con diferentes versiones de la lambda y asignar diferentes pesos a cada una. De esta manera, un atacante podría crear una versión 1 con backdoor 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.
Backdoor de Versión + API Gateway
Copia el código original de la Lambda
Crea una nueva versión con backdoor 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, Publícala y despliega esa versión a $LATEST.
Esto ocultará el código con backdoor 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 backdoor 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 que tiene backdoor 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 Backdoor será invocado
Actuador Cron/Event
El hecho de que puedas hacer que las funciones lambda se ejecuten cuando algo sucede o cuando pasa algún 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 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 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 logs de cloudtrail, eliminarlos/alterarlos
Last updated