Compartilhe suas técnicas de hacking enviando PRs para os repositórios doHackTricks e HackTricks Cloud no github.
SAML
Para informações sobre SAML, por favor, consulte:
Para configurar uma Federação de Identidade através do SAML, você só precisa fornecer um nome e o XML de metadados contendo toda a configuração do SAML (endpoints, certificado com chave pública)
OIDC - Abuso de Ações do Github
Para adicionar uma ação do github como provedor de identidade:
Para Tipo de Provedor, selecione OpenID Connect.
Para URL do Provedor, insira https://token.actions.githubusercontent.com
Clique em Obter impressão digital para obter a impressão digital do provedor
Para Público, insira sts.amazonaws.com
Crie uma nova função com as permissões que a ação do github precisa e uma política de confiança que confie no provedor como:
6. Observe na política anterior como apenas um **ramo** de um **repositório** de uma **organização** foi autorizado com um **gatilho** específico.
7. O **ARN** da **função** que a ação do github poderá **impersonar** será o "segredo" que a ação do github precisa saber, então **armazene** dentro de um **segredo** dentro de um **ambiente**.
8. Finalmente, use uma ação do github para configurar as credenciais do AWS a serem usadas pelo workflow:
```yaml
name: 'test AWS Access'
# The workflow should only trigger on pull requests to the main branch
on:
pull_request:
branches:
- main
# Required to get the ID Token that will be used for OIDC
permissions:
id-token: write
contents: read # needed for private repos to checkout
jobs:
aws:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-region: eu-west-1
role-to-assume: ${{ secrets.READ_ROLE }}
role-session-name: OIDCSession
- run: aws sts get-caller-identity
shell: bash
OIDC - Abuso do EKS
# Crate an EKS cluster (~10min)eksctlcreatecluster--namedemo--fargate
# Create an Identity Provider for an EKS clustereksctlutilsassociate-iam-oidc-provider--clusterTesting--approve
É possível gerar OIDC providers em um cluster EKS simplesmente configurando a OIDC URL do cluster como um novo Open ID Identity provider. Esta é uma política padrão comum:
Esta política está corretamente indicando que apenas o EKS cluster com id20C159CDF6F2349B68846BEC03BE031B pode assumir a função. No entanto, não está indicando qual conta de serviço pode assumi-la, o que significa que QUALQUER conta de serviço com um token de identidade web vai ser capaz de assumir a função.
Para especificar qual conta de serviço deve ser capaz de assumir a função, é necessário especificar uma condição onde o nome da conta de serviço é especificado, como: