AWS - VPC & Мережі — базова інформація
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перегляньте the subscription plans!
- Приєднуйтесь до 💬 Discord group або до telegram group або стежте за нами в Twitter 🐦 @hacktricks_live.
- Діліться hacking tricks, надсилаючи PRs до HackTricks та HackTricks Cloud github repos.
AWS Мережі у двох словах
A VPC містить network CIDR, наприклад 10.0.0.0/16 (з його routing table та network ACL).
Ця мережа VPC ділиться на підмережі, тож підмережа безпосередньо пов’язана з VPC, routing table і network ACL.
Далі, Network Interfaceи, приєднані до сервісів (наприклад EC2 instances), підключені до підмереж з security group(s).
Отже, security group обмежує відкриті порти мережевих інтерфейсів, які його використовують, незалежно від підмережі. А network ACL буде обмежувати відкриті порти для всієї мережі.
Крім того, для доступу до Інтернету варто перевірити такі конфігурації:
- підмережа може автоматично призначати public IPv4 addresses
- інстанс, створений у мережі, яка автопризначає IPv4, може отримати такий IP
- Internet gateway потрібно прикріпити до VPC
- можна також використовувати Egress-only internet gateways
- можна мати NAT gateway у private subnet, щоб з цієї приватної підмережі було можливо підключатися до зовнішніх сервісів, але ззовні не можна до них дістатися
- NAT gateway може бути public (доступ до інтернету) або private (доступ до інших VPC)
.png)
VPC
Amazon Virtual Private Cloud (Amazon VPC) дозволяє вам запускати AWS ресурси у віртуальній мережі, яку ви визначили. Ця віртуальна мережа матиме кілька підмереж, Internet Gateways для доступу в Інтернет, ACL, Security groups, IP тощо.
Subnets
Subnets допомагають забезпечити вищий рівень безпеки. Логічне групування подібних ресурсів також полегшує управління вашою інфраструктурою.
- Дійсні CIDR — від /16 netmask до /28 netmask.
- Підмережа не може бути в різних Availability Zones одночасно.
- AWS резервує перші три host IP адреси кожної підмережі для внутрішнього використання AWS: перша host адреса використовується для VPC router. Друга адреса резервується для AWS DNS, а третя адреса резервується для подальшого використання.
- Називають public subnets ті, які мають прямий доступ до Інтернету, тоді як private subnets цього не мають.
Route Tables
Route tables визначають маршрутизацію трафіку для підмережі в межах VPC. Вони визначають, який мережевий трафік перенаправляється в інтернет або до VPN-з’єднання. Зазвичай ви знайдете доступ до:
- Local VPC
- NAT
- Internet Gateways / Egress-only Internet gateways (необхідні для надання VPC доступу до Інтернету).
- Щоб зробити підмережу публічною, потрібно створити та прикріпити Internet gateway до вашого VPC.
- VPC endpoints (для доступу до S3 з приватних мереж)
ACLs
Network Access Control Lists (ACLs): Network ACLs — це правила фаєрвола, які контролюють вхідний та вихідний мережевий трафік для підмережі. Їх можна використовувати, щоб дозволити або заборонити трафік для конкретних IP-адрес або діапазонів.
- Найчастіше для дозволу/заборони доступу використовують security groups, але ACL — це єдиний спосіб повністю розірвати вже встановлені reverse shells. Змінене правило в security group не припиняє вже встановлені з’єднання.
- Однак це застосовується до цілої підмережі — будьте обережні при забороні чогось, оскільки необхідна функціональність може бути порушена.
Security Groups
Security groups — це віртуальний фаєрвол, який контролює вхідний та вихідний мережевий трафік до інстансів у VPC. Відношення: 1 SG до M інстансів (зазвичай 1 до 1).
Зазвичай це використовують для відкриття небезпечних портів на інстансах, наприклад порт 22:
Elastic IP Addresses
Elastic IP address — це статична IPv4 адреса, призначена для динамічних хмарних обчислень. Elastic IP адреса виділяється для вашого AWS аккаунта і є вашою, поки ви її не звільните. Використовуючи Elastic IP, ви можете маскувати збій інстансу або програмного забезпечення шляхом швидкого перенаправлення адреси на інший інстанс у вашому акаунті.
Зв’язок між підмережами
За замовчуванням, у всіх підмережах автоматичне призначення public IP адрес вимкнено, але його можна увімкнути.
Локальний маршрут у route table дозволяє зв’язок між підмережами VPC.
Якщо ви підключаєте підмережу до іншої підмережі, ви не матимете доступу до підмереж, які підключені до тієї іншої підмережі — потрібно створити з’єднання з ними безпосередньо. Це також стосується internet gateways. Ви не можете пройти через підключення підмережі, щоб дістатися до інтернету; потрібно призначити internet gateway своїй підмережі.
VPC Peering
VPC peering дозволяє з’єднувати дві або більше VPC, використовуючи IPV4 або IPV6, ніби вони є частиною однієї мережі.
Після встановлення peer-з’єднання ресурси в одній VPC можуть отримувати доступ до ресурсів в іншій. З’єднання між VPC реалізовано через існуючу інфраструктуру мережі AWS, тому воно є високодоступним без вузьких місць пропускної здатності. Оскільки peered connections працюють ніби як частина однієї мережі, існують обмеження щодо діапазонів CIDR, які можна використовувати.
Якщо у вас перекриваються або дублюються CIDR для ваших VPC, то ви не зможете їх з’єднати через peering.
Кожна AWS VPC може спілкуватися лише зі своїм peer. Наприклад, якщо у вас є peering між VPC 1 і VPC 2, і інше з’єднання між VPC 2 і VPC 3, то VPC 1 і VPC 2 можуть спілкуватися безпосередньо, як і VPC 2 і VPC 3, але VPC 1 і VPC 3 не можуть. Ви не можете маршрутизувати через одну VPC, щоб потрапити до іншої.
VPC Flow Logs
У межах вашої VPC потенційно може бути сотні або навіть тисячі ресурсів, що спілкуються між різними підмережами як публічними, так і приватними, а також між різними VPC через VPC peering connections. VPC Flow Logs дозволяють захоплювати інформацію про IP-трафік, який проходить між мережевими інтерфейсами ваших ресурсів у VPC.
На відміну від S3 access logs і CloudFront access logs, лог-дані, згенеровані VPC Flow Logs, не зберігаються в S3. Замість цього захоплені лог-дані відправляються в CloudWatch logs.
Обмеження:
- Якщо ви використовуєте VPC peered connection, то ви зможете бачити flow logs peered VPC лише в межах того ж акаунта.
- Якщо у вас ще працюють ресурси у середовищі EC2-Classic, то, на жаль, ви не зможете отримати інформацію з їх інтерфейсів.
- Після створення VPC Flow Log його не можна змінити. Щоб змінити конфігурацію VPC Flow Log, потрібно видалити його й створити заново.
- Наступний трафік не моніториться і не захоплюється логами: DHCP трафік в межах VPC, трафік від інстансів, спрямований до Amazon DNS Server.
- Будь-який трафік, спрямований до IP-адреси VPC default router, та трафік до/від адрес 169.254.169.254 (використовується для збору instance metadata) і 169.254.169.123 (використовується для Amazon Time Sync Service), не захоплюються.
- Трафік, пов’язаний з активацією ліцензії Amazon Windows з Windows інстансу.
- Трафік між інтерфейсом network load balancer та інтерфейсом endpoint network interface.
Для кожного network interface, який публікує дані до CloudWatch log group, буде використовуватися окремий log stream. І в кожному з цих стрімів будуть події flow log, що показують вміст записів логів. Кожен із цих логів захоплює дані протягом вікна приблизно 10–15 хвилин.
VPN
Основні компоненти AWS VPN
- Customer Gateway:
- Customer Gateway — це ресурс, який ви створюєте в AWS, щоб представляти вашу сторону VPN-з’єднання.
- По суті це фізичний пристрій або програмний додаток на вашій стороні Site-to-Site VPN connection.
- Ви надаєте інформацію маршрутизації та public IP-адресу вашого мережевого пристрою (наприклад маршрутизатора або фаєрволу) в AWS для створення Customer Gateway.
- Служить орієнтиром для налаштування VPN-з’єднання і не тягне за собою додаткових витрат.
- Virtual Private Gateway:
- Virtual Private Gateway (VPG) — це VPN-концентратор на стороні Amazon для Site-to-Site VPN connection.
- Він приєднаний до вашого VPC і слугує ціллю для вашого VPN-з’єднання.
- VPG — це endpoint AWS для VPN-з’єднання.
- Він обробляє безпечну комунікацію між вашим VPC і вашим on-premises мережевим середовищем.
- Site-to-Site VPN Connection:
- Site-to-Site VPN connection з’єднує вашу on-premises мережу з VPC через захищений IPsec VPN тунель.
- Для цього типу з’єднання потрібні Customer Gateway та Virtual Private Gateway.
- Використовується для безпечного, стійкого та стабільного зв’язку між вашим дата-центром або мережею і вашим AWS середовищем.
- Зазвичай використовується для постійних, довготривалих з’єднань і тарифікується на основі кількості даних, переданих через з’єднання.
- Client VPN Endpoint:
- Client VPN endpoint — це ресурс, який ви створюєте в AWS для дозволу та керування client VPN сесіями.
- Використовується для дозволу індивідуальним пристроям (наприклад ноутбукам, смартфонам тощо) безпечно підключатися до AWS ресурсів або вашої on-premises мережі.
- Відрізняється від Site-to-Site VPN тим, що призначений для окремих клієнтів, а не для з’єднання цілих мереж.
- З Client VPN кожен клієнтський пристрій використовує VPN client software для встановлення захищеного з’єднання.
Site-to-Site VPN
З’єднує вашу on-premises мережу з вашим VPC.
- VPN connection: Захищене з’єднання між вашим on-premises обладнанням і вашими VPC.
- VPN tunnel: Зашифроване посилання, через яке дані можуть проходити з мережі клієнта до або з AWS.
Кожне VPN-з’єднання включає два VPN тунелі, які ви можете використовувати одночасно для високої доступності.
- Customer gateway: Ресурс AWS, який надає AWS інформацію про ваш customer gateway device.
- Customer gateway device: Фізичний пристрій або програмний додаток на вашій стороні Site-to-Site VPN connection.
- Virtual private gateway: VPN-концентратор на стороні Amazon для Site-to-Site VPN connection. Ви використовуєте virtual private gateway або transit gateway як gateway для сторони Amazon у Site-to-Site VPN connection.
- Transit gateway: Транзитний хаб, який можна використовувати для з’єднання ваших VPC і on-premises мереж. Ви використовуєте transit gateway або virtual private gateway як gateway для сторони Amazon у Site-to-Site VPN connection.
Обмеження
- IPv6 трафік не підтримується для VPN-з’єднань на virtual private gateway.
- AWS VPN connection не підтримує Path MTU Discovery.
Крім того, врахуйте наступне при використанні Site-to-Site VPN.
- При підключенні ваших VPC до спільної on-premises мережі рекомендується використовувати не перекриваючі CIDR блоки для ваших мереж.
Client VPN
Підключення з вашого пристрою до VPC
Концепції
- Client VPN endpoint: Ресурс, який ви створюєте і конфігуруєте для дозволу та керування client VPN сесіями. Це ресурс, де завершуються всі client VPN сесії.
- Target network: Target network — це мережа, яку ви асоціюєте з Client VPN endpoint. Підмережа з VPC є target network. Асоціація підмережі з Client VPN endpoint дозволяє встановлювати VPN сесії. Ви можете асоціювати кілька підмереж з Client VPN endpoint для високої доступності. Всі підмережі мають бути з одного VPC. Кожна підмережа має належати до різної Availability Zone.
- Route: Кожен Client VPN endpoint має route table, який описує доступні маршрути до мереж призначення. Кожний маршрут у таблиці маршрутів визначає шлях для трафіку до конкретних ресурсів або мереж.
- Authorization rules: Правило авторизації обмежує користувачів, які можуть отримати доступ до мережі. Для певної мережі ви конфігуруєте Active Directory або групу identity provider (IdP), якій дозволено доступ. Тільки користувачі, що належать до цієї групи, можуть отримати доступ до вказаної мережі. За замовчуванням правил авторизації немає, і вам потрібно налаштувати їх, щоб дозволити користувачам доступ до ресурсів і мереж.
- Client: Кінцевий користувач, який підключається до Client VPN endpoint для встановлення VPN сесії. Кінцевим користувачам потрібно завантажити OpenVPN client і використовувати конфігураційний файл Client VPN endpoint, який ви створили, для встановлення VPN сесії.
- Client CIDR range: Діапазон IP-адрес, з якого призначаються IP-адреси клієнтам. Кожне з’єднання з Client VPN endpoint отримує унікальну IP-адресу з client CIDR range. Ви обираєте client CIDR range, наприклад,
10.2.0.0/16. - Client VPN ports: AWS Client VPN підтримує порти 443 та 1194 як для TCP, так і для UDP. За замовчуванням використовується порт 443.
- Client VPN network interfaces: Коли ви асоціюєте підмережу з вашим Client VPN endpoint, AWS створює Client VPN network interfaces в цій підмережі. Трафік, який надходить до VPC з Client VPN endpoint, надсилається через Client VPN network interface. Потім застосовується Source Network Address Translation (SNAT), де вихідна IP-адреса з client CIDR range транслюється в IP-адресу Client VPN network interface.
- Connection logging: Ви можете увімкнути connection logging для вашого Client VPN endpoint, щоб логувати події підключення. Ви можете використовувати цю інформацію для проведення судово-технічного аналізу, аналізу використання Client VPN endpoint або відлагодження проблем підключення.
- Self-service portal: Ви можете увімкнути self-service portal для вашого Client VPN endpoint. Клієнти можуть увійти в веб-портал за своїми обліковими даними і завантажити останню версію конфігураційного файлу Client VPN endpoint або останню версію клієнта, надану AWS.
Обмеження
- Client CIDR ranges cannot overlap with the local CIDR VPC, в якій знаходиться асоційована підмережа, або з будь-якими маршрутами, доданими вручну до route table Client VPN endpoint.
- Client CIDR ranges мають мати розмір блоку не менше /22 і не бути більшими за /12.
- Частина адрес в client CIDR range використовується для підтримки моделі доступності Client VPN endpoint і не може бути призначена клієнтам. Тому рекомендується призначити CIDR блок, який містить у два рази більше IP-адрес, ніж потрібно, щоб підтримати максимальну кількість одночасних з’єднань, яку ви плануєте.
- client CIDR range не можна змінити після створення Client VPN endpoint.
- Підмережі, асоційовані з Client VPN endpoint, повинні бути в одному VPC.
- Ви не можете асоціювати кілька підмереж з одного Availability Zone з Client VPN endpoint.
- Client VPN endpoint не підтримує асоціації підмереж у VPC з dedicated tenancy.
- Client VPN підтримує лише IPv4 трафік.
- Client VPN не є сумісним з Federal Information Processing Standards (FIPS).
- Якщо multi-factor authentication (MFA) відключено для вашого Active Directory, пароль користувача не може мати такий формат.
SCRV1:<base64_encoded_string>:<base64_encoded_string>
- Self-service portal не доступний для клієнтів, які автентифікуються з використанням mutual authentication.
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перегляньте the subscription plans!
- Приєднуйтесь до 💬 Discord group або до telegram group або стежте за нами в Twitter 🐦 @hacktricks_live.
- Діліться hacking tricks, надсилаючи PRs до HackTricks та HackTricks Cloud github repos.
HackTricks Cloud

