PassExistingRoleToNewLambdaThenInvoke
Lab: IAM vulnerable
Última actualización
Lab: IAM vulnerable
Última actualización
En este apartado se observará el ejemplo utilizando el laboratorio IAM vulnerable con el escenario privesc15
Un atacante con los permisos iam:PassRole , lambda:CreateFunction y lambda:InvokeFunction puede escalar privilegios pasando un rol de IAM existente a una nueva función de Lambda que incluye código para importar la biblioteca de AWS relevante para el lenguaje de programación de su elección, y luego usándola para realizar las acciones de su elección. Para este ejercicio se simulará que es una auditoria post autenticación (habiendo obtenido las credenciales por algún otro medio previo).
Usuario del laboratorio: privesc15-PassExistingRoleToNewLambdaThenInvoke-user
La cuenta de AWS debe contener un rol existente que incluya el permiso iam:AttachUserPolicy y las funciones lambda deben poder asumir este rol.
Luego las políticas asociadas al usuario deben ser las siguientes:
Posterior mente generar llaves e acceso desde cuenta administrador para interactuar con el usuario en AWS CLI y configurar un perfil.
En este laboratorio, se tiene que iniciar utilizando el permiso lambda:Createfunction para crear una función lambda maliciosa en Python que tendrá el código para adjuntar una política de altos privilegios al usuario inicial privesc15.
Para subir el archivo con el permiso lambda:Createfunction es necesario comprimir el archivo en formato zip con el nombre function.zip, después ejecutar el siguiente comando:
Llamar la función maliciosa aprovechando el privilegio de lambda:InvokeFunction para invocar dicha función y que finalmente el usuario inicial adquiera el rol de administrador.
Con estos pasos ya se habrá ejecutado la escalación de privilegios, se puede observar con el siguiente comando: