Pentesting Cloud Methodology
Базова методологія
Кожен хмарний сервіс має свої власні особливості, але загалом є кілька спільних речей, які повинен перевірити пентестер при тестуванні хмарного середовища:
Перевірка стандартів
Це допоможе вам зрозуміти розмір середовища та використані сервіси
Це також дозволить виявити деякі швидкі помилки конфігурації, оскільки більшість цих тестів можна виконати за допомогою автоматизованих інструментів
Перелік сервісів
Ймовірно, ви не знайдете багато інших помилок конфігурації тут, якщо ви правильно виконали тестування стандартів, але ви можете знайти деякі, які не були перевірені під час тестування стандартів.
Це дозволить вам знати що саме використовується в хмарному середовищі
Це дуже допоможе в наступних кроках
Перевірка відкритих активів
Це можна зробити під час попереднього розділу, вам потрібно з'ясувати все, що потенційно відкрито в Інтернеті якимось чином і як до цього можна отримати доступ.
Тут я беру вручну відкриту інфраструктуру, таку як екземпляри з веб-сторінками або інші порти, які відкриті, а також інші хмарні керовані сервіси, які можуть бути налаштовані на відкритість (наприклад, бази даних або бакети)
Потім вам слід перевірити, чи може цей ресурс бути відкритий чи ні (конфіденційна інформація? вразливості? помилки конфігурації в відкритому сервісі?)
Перевірка дозволів
Тут вам слід з'ясувати всі дозволи кожної ролі/користувача всередині хмари та як вони використовуються
Занадто багато високопривілейованих (контролюють все) облікових записів? Згенеровані ключі не використовуються?... Більшість цих перевірок вже повинні були бути виконані під час тестування стандартів
Якщо клієнт використовує OpenID або SAML або іншу федерацію, вам може знадобитися запитати їх додаткову інформацію про те, як кожна роль призначена (не те ж саме, що роль адміністратора призначена 1 користувачеві або 100)
Недостатньо знайти, які користувачі мають адміністративні дозволи "*:*". Є багато інших дозволів, які в залежності від використаних сервісів можуть бути дуже чутливими.
Більше того, є потенційні шляхи підвищення привілеїв, які можна використовувати, зловживаючи дозволами. Всі ці речі слід враховувати, і слід повідомляти про якомога більше шляхів підвищення привілеїв.
Перевірка інтеграцій
Дуже ймовірно, що інтеграції з іншими хмарами або SaaS використовуються всередині хмарного середовища.
Для інтеграцій хмари, яку ви аудитуєте, з іншою платформою вам слід повідомити хто має доступ до (зловживання) цією інтеграцією і ви повинні запитати, наскільки чутливою є дія, яка виконується. Наприклад, хто може писати в бакет AWS, з якого GCP отримує дані (запитайте, наскільки чутливою є дія в GCP щодо цих даних).
Для інтеграцій всередині хмари, яку ви аудитуєте, зовнішніх платформ, вам слід запитати хто має зовнішній доступ до (зловживання) цією інтеграцією і перевірити, як використовується ці дані. Наприклад, якщо сервіс використовує образ Docker, розміщений в GCR, ви повинні запитати, хто має доступ до зміни цього та яка чутлива інформація та доступ отримає цей образ при виконанні всередині хмари AWS.
Інструменти для багатох хмар
Існує кілька інструментів, які можна використовувати для тестування різних хмарних середовищ. Кроки для встановлення та посилання будуть вказані в цьому розділі.
Інструмент для виявлення поганих конфігурацій та шляхів підвищення привілеїв в хмарах та між хмарами/SaaS.
Підтримує AWS, GCP & Azure. Перевірте, як налаштувати кожного провайдера за посиланням https://docs.prowler.cloud/en/latest/#aws
AWS, Azure, Github, Google, Oracle, Alibaba
AWS, Azure, GCP, Alibaba Cloud, Oracle Cloud Infrastructure
Завантажте та встановіть Steampipe (https://steampipe.io/downloads). Або скористайтеся Brew:
Методологія тестування на проникнення хмарних сервісів
Збір інформації
Збір публічної інформації про цільову організацію та її хмарні сервіси.
Використання інструментів, таких як
Google
,Shodan
,Censys
,PublicWWW
,GitHub
,GitLab
,Bitbucket
,Pastebin
,HackerOne
,Bugcrowd
,URLScan
,SecurityTrails
,BinaryEdge
,ZoomEye
,FOFA
,DNSDumpster
,Sublist3r
,Amass
,Aquatone
,SpiderFoot
,theHarvester
,Wayback Machine
,Social Networks
,Search Engines
,etc
.
Сканування портів
Сканування відкритих портів та служб, що працюють на них.
Використання інструментів, таких як
Nmap
,Masscan
,Zmap
,Unicornscan
,MassiveScanner
,Shodan
,Censys
,ZoomEye
,etc
.
Виявлення вразливостей
Виявлення вразливостей у відкритих портах та службах.
Використання інструментів, таких як
Nmap
,Nessus
,OpenVAS
,Nexpose
,Qualys
,Vuls
,Vulners
,SearchSploit
,ExploitDB
,Metasploit
,etc
.
Експлуатація вразливостей
Використання виявлених вразливостей для отримання доступу до системи або інформації.
Використання інструментів, таких як
Metasploit
,ExploitDB
,SearchSploit
,Nmap
,Nessus
,OpenVAS
,Nexpose
,Qualys
,Vuls
,Vulners
,etc
.
Підняття привілеїв
Підняття привілеїв на скомпрометованій системі для отримання більш високих прав доступу.
Використання інструментів, таких як
LinEnum
,LinuxPrivChecker
,LinuxExploitSuggester
,Windows-Exploit-Suggester
,Windows-Privesc-Check
,BeRoot
,PowerUp
,WindowsEnum
,Windows-Privesc
,etc
.
Збір інформації
Збір додаткової інформації на скомпрометованій системі для подальшого руху вглиб.
Використання інструментів, таких як
LinEnum
,LinuxPrivChecker
,LinuxExploitSuggester
,Windows-Exploit-Suggester
,Windows-Privesc-Check
,BeRoot
,PowerUp
,WindowsEnum
,Windows-Privesc
,etc
.
Збір даних
Збір конфіденційних даних або інформації, яка може бути використана для наступних атак.
Використання інструментів, таких як
Rclone
,Rsync
,SCP
,FTP
,SFTP
,Netcat
,Socat
,Wget
,Curl
,etc
.
Збереження доступу
Забезпечення постійного доступу до скомпрометованої системи для подальшого дослідження або атак.
Використання інструментів, таких як
Netcat
,Socat
,SSH
,Meterpreter
,Web Shells
,Backdoors
,etc
.
Заключні дії
Закриття слідів атаки та видалення всіх залишків з системи.
Використання інструментів, таких як
Netcat
,Socat
,SSH
,Meterpreter
,Web Shells
,Backdoors
,etc
.
Для перевірки інших відомостей про GCP (корисно для переліку служб) використовуйте: https://github.com/turbot/steampipe-mod-gcp-insights
Для перевірки коду Terraform GCP: https://github.com/turbot/steampipe-mod-terraform-gcp-compliance
Більше плагінів GCP для Steampipe: https://github.com/turbot?q=gcp
Для перевірки коду Terraform AWS: https://github.com/turbot/steampipe-mod-terraform-aws-compliance
Більше плагінів AWS для Steampipe: https://github.com/orgs/turbot/repositories?q=aws
AWS, GCP, Azure, DigitalOcean. Вимагає python2.7 і виглядає необслуговуваним.
Nessus
Nessus має сканування Audit Cloud Infrastructure з підтримкою: AWS, Azure, Office 365, Rackspace, Salesforce. Для отримання Client Id в Azure потрібні додаткові конфігурації.
Cloudlist - це багатохмарковий інструмент для отримання активів (імен хостів, IP-адрес) від постачальників хмарних послуг.
Картографія - це інструмент Python, який об'єднує активи інфраструктури та взаємозв'язки між ними в інтуїтивному графічному вигляді, який працює на базі бази даних Neo4j.
Starbase збирає активи та взаємозв'язки з послуг та систем, включаючи хмарну інфраструктуру, додатки SaaS, засоби безпеки та інше у зручному графічному вигляді, підтримуваному базою даних Neo4j.
Виявлення найбільш привілейованих користувачів у сканованому середовищі AWS або Azure, включаючи AWS Shadow Admins. Використовує powershell.
Інструмент для пошуку інфраструктури компанії (цільової), файлів та додатків на провідних хмарних постачальниках (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
CloudFox - це інструмент для пошуку вразливих шляхів атак в хмарній інфраструктурі (наразі підтримується лише AWS та Azure, з підтримкою GCP у майбутньому).
Це інструмент для переліку, який призначений для доповнення ручного пентестування.
Він не створює або змінює будь-які дані в хмаровому середовищі.
Ще списки інструментів з безпеки хмари
Google
GCP
GCP PentestingWorkspace
GWS - Workspace PentestingAWS
AWS PentestingAzure
Azure PentestingAttack Graph
Stormspotter створює "граф атак" ресурсів у підписці Azure. Це дозволяє червоним командам та пентестерам візуалізувати поверхню атаки та можливості півоту в межах орендаря, а також прискорює вашим захисникам швидко орієнтуватися та пріоритизувати роботу з реагування на інциденти.
Office365
Вам потрібен Global Admin або принаймні Global Admin Reader (але слід зауважити, що Global Admin Reader трохи обмежений). Однак ці обмеження з'являються в деяких PS-модулях і можуть бути обійдені, отримуючи доступ до функцій через веб-застосунок.
Last updated