Aws
AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.
Содержание
- 1 Организационные моменты
- 2 Общие концепции
- 3 Локальные файлы
- 4 Службы
- 4.1 IAM
- 4.2 S3
- 4.3 CloudFront
- 4.4 EC2 (Elastic Compute Cloud)
- 4.5 ES (ElasticSearch)
- 4.6 ELB (Elastic Load Balancing)
- 4.7 RDS (Relational Database Service)
- 4.8 Route 53
- 4.9 API Gateway
- 4.10 CloudSearch
- 4.11 Transfer Family
- 4.12 IoT (Internet Of Things)
- 4.13 MQ
- 4.14 MSK (Managed Streaming for Apache Kafka)
- 4.15 Cloud9
- 4.16 MediaStore
- 4.17 Kinesis Video Streams
- 4.18 Elemental MediaConvert
- 4.19 Elemental MediaPackage
- 5 Ролевая модель
- 6 Утилиты
- 7 Ссылки
Организационные моменты
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/
Общие концепции
Службы
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.
Это экосистема многих сервисов. И AWS стремится увеличить их количество.
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.
Регионы
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.
Название региона | Endpoint(HTTPS) |
us-east-2 | rds.us-east-2.amazonaws.com
rds-fips.us-east-2.api.aws rds.us-east-2.api.aws rds-fips.us-east-2.amazonaws.com |
us-east-1 | rds.us-east-1.amazonaws.com
rds-fips.us-east-1.api.aws rds-fips.us-east-1.amazonaws.com rds.us-east-1.api.aws |
us-west-1 | rds.us-west-1.amazonaws.com
rds.us-west-1.api.aws rds-fips.us-west-1.amazonaws.com rds-fips.us-west-1.api.aws |
us-west-2 | rds.us-west-2.amazonaws.com
rds-fips.us-west-2.amazonaws.com rds.us-west-2.api.aws rds-fips.us-west-2.api.aws |
af-south-1 | rds.af-south-1.amazonaws.com
rds.af-south-1.api.aws |
ap-east-1 | rds.ap-east-1.amazonaws.com
rds.ap-east-1.api.aws |
ap-southeast-3 | rds.ap-southeast-3.amazonaws.com |
ap-south-1 | rds.ap-south-1.amazonaws.com
rds.ap-south-1.api.aws |
ap-northeast-3 | rds.ap-northeast-3.amazonaws.com
rds.ap-northeast-3.api.aws |
ap-northeast-2 | rds.ap-northeast-2.amazonaws.com
rds.ap-northeast-2.api.aws |
ap-southeast-1 | rds.ap-southeast-1.amazonaws.com
rds.ap-southeast-1.api.aws |
ap-southeast-2 | rds.ap-southeast-2.amazonaws.com
rds.ap-southeast-2.api.aws |
ap-northeast-1 | rds.ap-northeast-1.amazonaws.com
rds.ap-northeast-1.api.aws |
ca-central-1 | rds.ca-central-1.amazonaws.com
rds.ca-central-1.api.aws rds-fips.ca-central-1.api.aws rds-fips.ca-central-1.amazonaws.com |
eu-central-1 | rds.eu-central-1.amazonaws.com
rds.eu-central-1.api.aws |
eu-west-1 | rds.eu-west-1.amazonaws.com
rds.eu-west-1.api.aws |
eu-west-2 | rds.eu-west-2.amazonaws.com
rds.eu-west-2.api.aws |
eu-south-1 | rds.eu-south-1.amazonaws.com
rds.eu-south-1.api.aws |
eu-west-3 | rds.eu-west-3.amazonaws.com
rds.eu-west-3.api.aws |
eu-north-1 | rds.eu-north-1.amazonaws.com
rds.eu-north-1.api.aws |
me-south-1 | rds.me-south-1.amazonaws.com
rds.me-south-1.api.aws |
sa-east-1 | rds.sa-east-1.amazonaws.com
rds.sa-east-1.api.aws |
us-gov-east-1 | rds.us-gov-east-1.amazonaws.com |
us-gov-west-1 | rds.us-gov-west-1.amazonaws.com |
Или только регионы (могут пригодиться при переборе):
1 us-east-2
2 us-east-1
3 us-west-1
4 us-west-2
5 af-south-1
6 ap-east-1
7 ap-southeast-3
8 ap-south-1
9 ap-northeast-3
10 ap-northeast-2
11 ap-southeast-1
12 ap-southeast-2
13 ap-northeast-1
14 ca-central-1
15 eu-central-1
16 eu-west-1
17 eu-west-2
18 eu-south-1
19 eu-west-3
20 eu-north-1
21 me-south-1
22 sa-east-1
23 us-gov-east-1
24 us-gov-west-1
Доступы
Ролевые политики
Консольная утилита(awscli)
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.
Утилита работает с настроенными профилями.
Файлы
~/.aws/credentials
Файл с учетными данными профилей. Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.
У каждого профиля будет указан:
- Access Key ID
- Access Key
- Access Token - не всегда указывается
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings
Пример содержимого файла (сохранен профиль default):
1 [default]
2 aws_access_key_id=AKIAIOSFODNN7EXAMPLE
3 aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
4 aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
~/.aws/config
Файл с региональными настройками профиля(регион по-умолчанию).
1 [default]
2 region=us-west-2
3 output=json
~/.aws/cli/cache
Закешированные учетные данные
~/.aws/sso/cache
Закешированные данные Single-Sign-On
Команды
Общее построение команды выглядит как:
1 aws <название_сервиса> <действие> <дополнительные_аргументы>
Примеры:
1 # Вывести все S3-хранилища.
2 aws s3 ls
3
4 # Создание нового пользователя - сервис IAM
5 aws iam create-user --user-name aws-admin2
Локальные файлы
Службы
IAM
Опасные роли
iam:AddUserToGroup
Добавить юзера в административную группу:
1 aws iam add-user-to-group –group-name <название_группы> –user-name <логин>
iam:PutUserPolicy
Право добавить своб политику к ранее скомпрометированным обьектам.
1 aws iam put-user-policy –user-name <логин< –policy-name my_inline_policy –policy-document file://path/to/administrator/policy.json
S3
Файловое хранилище.
Формат ссылки:
1 https://{user_provided}.s3.amazonaws.com
CloudFront
Сервис сети доставки контента (CDN).
Формат ссылки:
1 https://{random_id}.cloudfront.net
EC2 (Elastic Compute Cloud)
EC2 (Amazon Elastic Compute Cloud) == VPS
Формат ссылки:
1 ec2-{ip-seperated}.compute-1.amazonaws.com
Опасные роли
ec2:AssociateIamInstanceProfile
Позволяет менять IAM политики/роли/пользователей
ES (ElasticSearch)
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.
Формат ссылки:
1 https://{user_provided}-{random_id}.{region}.es.amazonaws.com
ELB (Elastic Load Balancing)
Балансировщик нагрузки.
Формат ссылки (elb_v1):
1 http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443
Формат ссылки (elb_v2):
1 https://{user_provided}-{random_id}.{region}.elb.amazonaws.com
RDS (Relational Database Service)
Облачная реляционная база данных (на выбор).
Формат ссылки:
1 mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306
2 postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432
Route 53
Настраиваемая служба DNS.
Формат ссылки:
1 {user_provided}
API Gateway
API-сервис, который будет доступен почти со всех серверов.
Формат ссылки:
1 https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/
2 https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}
CloudSearch
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.
Формат ссылки:
1 https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com
Transfer Family
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).
Формат ссылки:
1 sftp://s-{random_id}.server.transfer.{region}.amazonaws.com
2 ftps://s-{random_id}.server.transfer.{region}.amazonaws.com
3 ftp://s-{random_id}.server.transfer.{region}.amazonaws.com
IoT (Internet Of Things)
Сервис для управления IoT-устройствами.
Формат ссылки:
1 mqtt://{random_id}.iot.{region}.amazonaws.com:8883
2 https://{random_id}.iot.{region}.amazonaws.com:8443
3 https://{random_id}.iot.{region}.amazonaws.com:443
MQ
Сервис брокера сообщений для Apache ActiveMQ & RabbitMQ.
Формат ссылки:
1 https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162
2 ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617
MSK (Managed Streaming for Apache Kafka)
Сервис потоковой передачи данных в Apache Kafka.
Формат ссылки:
1 b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com
2 {user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com
Cloud9
Облачная интегрированная среда разработки(IDE) используя только браузер.
Формат ссылки:
1 https://{random_id}.vfs.cloud9.{region}.amazonaws.com
MediaStore
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.
Формат ссылки:
1 https://{random_id}.data.mediastore.{region}.amazonaws.com
Kinesis Video Streams
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.
Формат ссылки:
1 https://{random_id}.kinesisvideo.{region}.amazonaws.com
Elemental MediaConvert
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.
Формат ссылки:
1 https://{random_id}.mediaconvert.{region}.amazonaws.com
Elemental MediaPackage
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.
Формат ссылки:
1 https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel
Ролевая модель
Почти все описание доступа идет через роли.
Каждая роль состоит из следующих компонентов:
- Ресурс - цель, кому выдается правило. Может быть:
- Пользователь
- Группа, в которой могут быть аккаунты по какому то признаку
- Другая роль.
- Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)
- Тип правила(Effect) - разрешение или запрет.
- Политика(Policy) - совокупность Роль(действие) -> разрешение/запрет -> Ресурс(кому).
- Условия(Condition) - отдельные условия, например, ip.
Пример политики:
1 "Statement": [
2 {
3 "Effect": "Allow",
4 "Action": [
5 "iam:GetGroup",
6 "iam:GetLoginProfile",
7 "iam:GetUser",
8 "iam:ListAccessKeys",
9 "iam:ListAccountAliases",
10 "iam:ListGroupPolicies",
11 "iam:ListGroups",
12 "iam:ListGroupsForUser",
13 "iam:ListMFADevices",
14 "iam:ListSigningCertificates",
15 "iam:ListUsers",
16 "iam:GetServerCertificate",
17 "iam:ListServerCertificates",
18 ],
19 "Resource": "*"
20 }
21 ]
Определение ролей
Вручную
TODO команды по определению своих ролей
Автоматизированно
Эксплуатация
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.
Административный доступ
Как выглядит роль с административным доступом:
1 "Statement": [
2 {
3 "Effect": "Allow",
4 "Action": [
5 "*"
6 ],
7 "Resource": "*"
8 }
9 ]
Утилиты
Ссылки
Статьи
Лаборатории
Damn Vulnerable Cloud Application