Los tokens temporales no pueden ser listados, por lo que mantener un token temporal activo es una forma de mantener la persistencia.
awsstsget-session-token--duration-seconds129600# Con MFAawsstsget-session-token \--serial-number <mfa-device-name> \--token-code <code-from-token># El nombre del dispositivo de hardware suele ser el número de la parte posterior del dispositivo, como GAHT12345678# El nombre del dispositivo SMS es el ARN en AWS, como arn:aws:iam::123456789012:sms-mfa/username# El nombre del dispositivo virtual es el ARN en AWS, como arn:aws:iam::123456789012:mfa/username
Malabarismo de Cadenas de Rol
El encadenamiento de roles es una característica reconocida de AWS, a menudo utilizada para mantener la persistencia sigilosa. Implica la capacidad de asumir un rol que luego asume otro, potencialmente volviendo al rol inicial de manera cíclica. Cada vez que se asume un rol, se actualiza el campo de expiración de las credenciales. En consecuencia, si dos roles están configurados para asumir mutuamente el uno al otro, esta configuración permite la renovación perpetua de las credenciales.
Puedes usar esta herramienta para mantener el encadenamiento de roles:
Tenga en cuenta que el script find_circular_trust.py de ese repositorio de Github no encuentra todas las formas en que se puede configurar una cadena de roles.
Código para realizar Role Juggling desde PowerShell
```powershell # PowerShell script to check for role juggling possibilities using AWS CLI
Check for AWS CLI installation
if (-not (Get-Command "aws" -ErrorAction SilentlyContinue)) { Write-Error "AWS CLI is not installed. Please install it and configure it with 'aws configure'." exit }
Function to list IAM roles
function List-IAMRoles { aws iam list-roles --query "Roles[*].{RoleName:RoleName, Arn:Arn}" --output json }
if ($errorCount -gt 0) { Write-Host "$errorCount error(s) occurred during role assumption attempts." } else { Write-Host "No errors occurred. All roles checked successfully." }
Write-Host "Role juggling check complete."
</details>
<div data-gb-custom-block data-tag="hint" data-style='success'>
Aprende y practica Hacking en AWS:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
Aprende y practica Hacking en GCP: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Apoya a HackTricks</summary>
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
</details>
</div>