Tokens temporários não podem ser listados, então manter um token temporário ativo é uma forma de manter a persistência.
awsstsget-session-token--duration-seconds129600# Com MFAawsstsget-session-token \--serial-number <mfa-device-name> \--token-code <code-from-token># O nome do dispositivo de hardware geralmente é o número na parte de trás do dispositivo, como GAHT12345678# O nome do dispositivo SMS é o ARN na AWS, como arn:aws:iam::123456789012:sms-mfa/username# O nome do dispositivo virtual é o ARN na AWS, como arn:aws:iam::123456789012:mfa/username
Manipulação de Cadeia de Funções
A manipulação de funções é um recurso reconhecido da AWS, frequentemente utilizado para manter a persistência furtiva. Envolve a capacidade de assumir uma função que então assume outra, potencialmente revertendo para a função inicial de forma cíclica. Cada vez que uma função é assumida, o campo de expiração das credenciais é atualizado. Consequentemente, se duas funções forem configuradas para assumir mutuamente uma à outra, essa configuração permite a renovação perpétua das credenciais.
Você pode usar esta ferramenta para manter a manipulação de funções em andamento:
Observe que o script find_circular_trust.py daquele repositório do Github não encontra todas as maneiras como uma cadeia de funções pode ser configurada.
Código para realizar Role Juggling a partir do 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'>
Aprenda e pratique Hacking AWS:<img src="../../../.gitbook/assets/image (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).png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="../../../.gitbook/assets/image (2).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Suporte ao HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
</div>