Close

Пентест від А до Я: посібник з тестування на проникнення

Поговоримо про основи тестування на проникнення. Що таке пентест? Хто такий пентестер? Що входить в його обов’язки. Інструменти, методології, алгоритми. Скільки коштує пентест? Ми підготували велике керівництво по тестуванню на проникнення. Зібрали корисну інформацію, включаючи приклад звіту пентесту. Справжній клондайк для любителів кібербезпеки. Буде корисно й замовникам, котрі планують пентест у своїх компаніях й прагнуть дізнатися якомога більше.

Зміст статті

Що таке пентест?

Тестування на проникнення (Тест на проникнення, Пентест, Пентестінг, англ. Pentest, Penetration Testing) — це комплекс санкціонованих заходів з метою протестувати і проаналізувати існуючий кіберзахист інформаційної системи та дати оцінку її захищеності. Пентестер моделює атаки й імітує дії зловмисника, використовуючи техніки етичного хакінгу (Ethical Hacking). Цілі пентесту — перевірити систему на стійкість та вразливість.

Перші тестування на проникнення з’явилися в США у 70-80-ті роки XX століття з розвитком комп’ютерної інженерії. Тоді слово “hacker” означало – обтесувати, шліфувати, вправно зачищати код. “Хакерами” називали талановитих програмістів-операторів електронно-обчислювальних машин (ЕОМ), які тестували комп’ютери на справність, відшукували баги. Цей термін не містив в собі абсолютно нічого зловмисного.

The History of hackers

Першими навчальними центрами, які випускали “хакерів” були Массачусетський та Стенфордський університети в США, які мали різні концепції й підходи до підготовки кадрів та конкурували між собою. Більшість винаходів і відкриттів у сфері комп’ютерних технологій були зроблені саме їх випускниками. Потужним центром була також Каліфорнія, зокрема IT-ком’юніті Homebrew Computer Club.

Хто такі хакери

Однак, з часом термін “хакер” набув дещо іншого забарвлення. Хакерські техніки почали застосовуватися для несанкціонованого проникнення та зламу інформаційних систем. Почали розроблятися перші комп’ютерні віруси, такі як “Хробак Морріса” – мережева програма, яка масово розмножувалася і розповсюджувалася через Інтернет, паралізуючи роботу комп’ютерів. Її розробив аспірант Корнелльського університету Роберт Морріс. Комп’ютерний вірус був запущений 2 листопада 1988 року та вразив близько 6000 вузлів ARPANET. Збиток оцінений приблизно в $96,5 мільйонів доларів. Так хакери поступово стали асоціюватися зі злочинністю в інтернеті.

👉 Читайте спецматеріал: ХАКЕРИ. Погляд в історію.

Види і типи тестування на проникнення

За типом проведення, пентест ділиться на:

  • ◉ Тестування чорного (закритого) ящика (Black-Box Penetration Testing) — це зовнішнє тестування, коли пентестер нічого не знає про досліджуваний об’єкт і послідовно крок-за-кроком накопичує інформацію про систему —  шукає помилки, вразливості, прихований функціонал та намагається їх поексплуатувати.
  • ◉ Тестування білого (відкритого) ящика (White-Box Penetration Testing) — це внутрішнє тестування, коли пентестеру надається вся інформація про систему: IP-адреси, вихідний код, компоненти, схеми, доступи.
  • ◉ Тестування сірого ящика (Grey-Box Penetration Testing) — це тестування з попередньою інформацією про досліджуваний об’єкт, коли пентестер володіє лімітованими даними про систему.

За характером, технікою і методикою проведення можна виділити наступні пентести:

  • ⚡ Web Application Penetration Testing — тестування на проникнення електронних ресурсів: веб-сайтів, додатків, застосунків, хмарних платформ;
  • ⚡ Cloud Penetration Testing — тестування на проникнення хмарних платформ і серверів;
  • ⚡ Mobile Penetration Testing — тестування на проникнення мобільних пристроїв, систем, додатків;
  • ⚡ Network Penetration Testing (External/Internal) — тестування на проникнення комп’ютерних мереж зовнішнього/внутрішнього типу;
  • ⚡ Software Penetration Testing — тестування на проникнення програмного забезпечення;
  • ⚡ Hardware Penetration Testing — тестування на проникнення цифрових пристроїв;
  • ⚡ IoT Penetration Testing — тестування на проникнення інтернету речей;
  • ⚡ ICS/SCADA Penetration Testing — тестування на проникнення промислової інфраструктури;
  • ⚡ Blockchain Penetration Testing — тестування на проникнення Blockchain-мереж, децентралізованих додатків, смарт-контрактів;
  • ⚡ Social Engineering Testing — тестування з використанням атак на людський фактор: фішингові листи (фішинг), телефонні дзвінки (вішинг), SMS-повідомлення (смішинг, бомбінг), нет-сталкінг та таке інше.

Red Team vs Blue Team

ℹ️ Існують також Red Team та Blue Team команди тестування на проникнення. Перша відпрацьовує техніки нападу різного масштабу і калібру (Offensive Security), починаючи від кібер-атак і закінчуючи соціальною інженерією та навіть фізичним проникненням на об’єкти (приклад – вірус Stuxnet), атаками на цифрові пристрої (Hardware Penetration Testing). Фактично, це такі-собі кібер-диверсійні групи. Їх учасники не рідко в майбутньому формують професійні хакерські APT-об’єднання (Advanced Persistent Threat), які можуть спонсоруватися урядами держав. Blue Team команди – це спеціалісти з кібербезпеки, які з допомогою пентестів відпрацьовують техніки захисту. Останнім часом з’явилися Purple Team, які поєднують Red та Blue Team практики (захисна + наступальна стратегія).

Методології тестування на проникнення

В залежності від потреб та цілей тестування, а також типу досліджуваного об’єкта, можуть використовуватися різні методології, які визначають — план, техніки, методики, інструменти тестування на проникнення.

Ось список найбільш відомих методологій пентесту:

  • ℹ️ OWASP TOP 10, OWASP Testing Guide, OWASP Application Security Verification Standard (ASVS), OWASP Mobile Application Security Verification Strandard (MASVS), OWASP Firmware Security Testing Methodology — всесвітньовідома серія стандартів від некомерційної організації OWASP для проведення аудитів і тестувань безпеки електронних ресурсів;
  • ℹ️ The Open Source Security Testing Methodology Manual (OSSTMM) — це методика проведення тестування на проникнення від дослідницької організації “Інститут безпеки та відкритих методологій” (ISECOM). Добре структурована, містить базові принципи і фундаментальний підхід до кібербезпеки;
  • ℹ️ Penetration Testing Execution Standard (PTES) — керівництво з проведення пентестів, створене незалежними фахівцями у галузі кібербезпеки. Містить поради і рекомендації по всім етапам тестування, у тому числі щодо підготовки звітів;
  • ℹ️ NIST SP 800–115— посібник з проведення тестувань ІТ-безпеки, підготовлений Національним інститутом стандартів і технологій США;
  • ℹ️ MITRE ATTACK — база технік і тактик для проведення кібератак. Покликана послужити базою для розробки систем кіберзахисту.
  • ℹ️ SANS CWE Top 25 — список із 25 вразливостей, сформований інститутом SANS та організацією MITRE.
  • ℹ️ Information Systems Security Assessment Framework (ISSAF) — одна з кращих методологій аудиту кібербезпеки і тестування на проникнення від організації Open Information Systems Security Group (OISSG). Містить усі аспекти аналізу ІТ-безпеки, описи, підходи до тестування, вичерпні рекомендації і готові приклади;
  • ℹ️ PCI-DSS Penetration Test Guidance — посібник з проведення пентестів по стандарту PCI DSS, розроблений Радою зі стандартів безпеки індустрії платіжних карток (Payment Card Industry Security Standards Council, PCI SSC), до якої входять міжнародні платіжні системи VISA, MasterCard, American Express та інші.
  • ℹ️ Web Application Security Consortium (WASC) — збірник методик тестування і класифікація вразливостей від Консорціуму із безпеки веб-додатків (WASC), куди входять міжнародні експерти, практики галузі та представники організацій, які розробляють стандарти безпеки з відкритим кодом;
  • ℹ️ Penetration Test Framework (PTF) — чудовий фреймворк від дослідника кібербезпеки Кевіна Оррея, включає план тестування на проникнення та посилання на допоміжні інструменти, ресурси, документи.

👉 Рекомендуємо ознайомитись з матеріалами:
ТОП-20 світових фреймворків з кібербезпеки
Методології у сфері ІТ: ITIL, COBIT, Prince2 та інші

Чим пентест відрізняється від аудиту кібербезпеки?

ℹ️ Пентест – це процес, який відтворює справжню кібер-атаку, обходить кіберзахист, проникає в систему, симулює дії зловмисника – експлуатує баги, помилки, вразливості. Пентест – це санкціонований злам з застосуванням класичних хакерських фреймворків, стратегій, прийомів,  сценаріїв.

ℹ️ Аудит кібербезпеки (Vulnerability Scanning & Assessment) — це процес збору, обробки та оцінки вразливостей. Аудит не передбачає хакінгу, а тому майже не впливає на систему і не вносить змін в її роботу чи будову. Аудит лише аналізує, упорядковує та структурує накопичені дані, формує експертні висновки і рекомендації. Методики Аудиту застосовуються пентестерами на різних етапах, однак сам Аудит подається як окрема послуга і є прерогативою більше Аудиторів, ніж Пентестерів. Хоча, на практиці обидві навички сильно пов’язані між собою і хороший пентестер, на нашу думку, повинен бути одночасно й хорошим аудитором.

Аудит може виконуватися як вручну (manual pentest), так і автоматизовано з допомогою SAST (статичних) і DAST (динамічних) сканерів. Пентест же виконується тільки ручним способом.

Звіти для аудиту і пентесту теж різняться. Pentest Report, зазвичай, включає інформацію лише про проведені атаки, їх оцінку та ступінь ризику, а також рекомендації по усуненню. Натомість Security Audit Report включає багато інформаційно-аналітичної інформації, включаючи статистичні, історичні, моніторингові, технічні дані.

Якщо пояснювати одним  словом, то: пентест – це техніка нападу, зламу, атаки, а аудит – це техніка збору і оцінки даних.

В ідеалі, повинен бути комплексний підхід до кібербезпеки, який включає і Аудит кібербезпеки, і Тестування на проникнення. Обидва процеси включені до наших послуг.

З яких етапів складається пентест?

Різні типи і види тестувань на проникнення мають різний перебіг подій та складаються з різних фаз і етапів. В інтернеті й підручниках з кібербезпеки, зазвичай, можна зустріти класичний сценарій проведення пентесту:

  1. Pre-engagement (Планування)
  2. Information Gathering / Reconnaissance (Розвідка / Збір даних)
  3. Threat Modelling (Моделювання загроз)
  4. Vulnerability Analysis (Аналіз вразливостей)
  5. Exploitation (Експлуатація)
  6. Post Exploitation (Постексплуатація)
  7. Reporting and Recommendations (Підготовка звіту та рекомендацій)

Етапи і фази тестування на проникнення

Ми дещо модифікували цей сценарій і поділили його на 3 етапи, які розбили на 3 фази:

🔑 Етап 1. Збір інформації, планування атак

ℹ️ Завдання пентестера на цьому етапі: якомога ретельніше дослідити структуру і архітектуру об’єкта, проаналізувати зібрану інформацію на точки входу (точки зламу і компрометації), продумати алгоритми й сценарії майбутніх атак (написання/підбір експлойтів, скриптів, троянів, шеллів, бекдорів, фішиншових листів / посилань; створення шаблонів команд і додаткових інструментів). На цьому етапі етичний хакер збирає усю можливу інформацію про об’єкт, використовуючи різні практики, засоби, техніки, методики.

  1. Фаза 1: Мережева і технічна розвідка, пасивний і активний збір інформації, футпринтинг DNS/TCP-IP. Аналіз хостів, доменів, IP-адрес (Shodan, Censys, ZoomEye, DNSdumpster). Дослідження даних WHOIS (домен, IP), аналіз DNS-записів (A, AAA, SOA, SPF, MX, TXT, CNAME), визначення NS-серверів і хостинг-провайдера, історія/хронологія змін DNS (SecurityTrails), енумерація субдоменів (OWASP Amass, Sublister, theHarvester), сканування мережевих TCP/UDP-портів (NMAP), маппінг мережі, захоплення серверних банерів, визначення операційної системи та енумерація програмного забезпечення сервера, визначення фаєрвола (wafw00f). Аналіз SSL/TLS-сертифікатів (Qualys, Mozilla Observatory, testssl.sh, crt.sh). Використання інструментів командного рядка Linux для мережевої розвідки: nslookup, dig, host, ping, fping, hping, traceroute, dnsrecon і т.д. Застосування SAST/DAST-сканерів: Nikto, Nuclei, WhatWeb, WPScan, SQLmap, Acunetix Vulnerability Scanner, Burp Suite, OWASP Zap, OpenVAS, Tenable Nessus та інших.
  2. Фаза 2: Комплексна розвідка з відкритих джерел – WEBINT, OSINT, SOCMINT, HUMINT, IMINT, GEOINT. Пошук будь-яких публічних джерел, згадок про об’єкт в інтернеті та ЗМІ. Робота з кібер- та метапошуковими системами, ChatGPT. Визначення технологій (Wappalyzer, BuiltWidth, Netcraft). Аналіз SEO-показників. Пошук копій в WebArchive. Краулінг структури сайту, отримання списку URL-адрес (Photon, Webhttptrack, Xenu, Screaming Frog). Фаззінг параметрів URL: Gobuster, FFUF, Dirbuster, Dirb. Пошук адміністративних URL-адрес. Аналіз HTTP-заголовків (SecurityHeaders). Пошук з допомогою Google Dorks службових або прихованих файлів (robots.txt, sitemap.xml), директорій (admin, wp-admin), документів (pdf, xslx, doc) і аналіз їх метаданих (Metagoofil, Pymeta). Пошук email-адрес та аналіз email-заголовків. Пробив юзернеймів в інтернеті (OWASP Maryam, Nuclei, Maigret), аналіз акаунтів соцмереж. Аналіз номерів телефонів і геоданих. Форензика зображень. Виявлення витоків даних  –  скомпрометовані бази даних, паролі, логіни (Have I Been Pwned, DEHASHED, IntelligenceX, LeakiX та ін.). Використання різноманітних OSINT/SOCMINT-фреймворків (Maltego, SpiderFoot) тощо.
  3. Фаза 3: Аналіз та обробка зібраної інформації. Ідентифікація та аналіз вразливостей. Підбір/написання шеллів, експлойтів. Пошук офіційно зареєстрованих вразливостей в базах даних: ExploitDB/CVE/CWE/NVD/OSVDB/CVSS. Пошук PoC (Proof of Concept), випробування атак. Планування атак.

🔑 Етап 2. Проведення атак

ℹ️ Завдання пентестера на цьому етапі: успішно відпрацювати і проексплуатувати підготовлені сценарії атак і експлойти, закріпитися в системі.

  1. Фаза 1: Експлуатація вразливостей. Проведення різнорівневих хакерських атак, обхід систем захисту (WAF Bypass), налагодження віддаленого доступу (RCE), запуск шеллів (RFI/LFI). Атаки: Brute Force, відмова в обслуговуванні (DOS/DDOS), PHP/SQL/XSS-ін’єкції, підробка міжсайтових і міжсерверних запитів (CSRF/SSRF). Атака на XML (XXE) і API. Перехоплення даних (Spoofing, Poisoning, Hijacking, MITM). Робота з Offensive Security інструментами: Metasploit Framework (Msfconsole, Msfvenom, Meterpreter, Armitage), PowershellEmpire, BeeF, THC Hydra, John the Reaper, Hashcat, SQLmap, Netcat, Cobalt Strike та інші.
  2. Фаза 2: Інвентаризація (Локальна енумерація). Збір даних про скомпрометовану систему (Hostname, OS Name, OS Build, OS Architecture), збір апаратних і технічних характеристик (CPU Info, Memory Info, Disks Info), енумерація облікових записів і груп користувачів, перегляд історії, пошук файлів конфігурації, аналіз системних журналів, подій, процесів. Сканування серверних служб, локальних портів і інтерфейсів (топологія мережі). Отримання інформації про програмне забезпечення, визначення версій (Installed packages/patches/software). Робота з утилітами для аудиту сервера: Lynis, otseca, memtester, nix-auditor, mySQLtuner, testssl.sh, GoAccess та іншими.
  3. Фаза 3: Постексплуатація. Закріплення доступу, ескалація, підвищення привілеїв в зламаній системі – отримання root-прав, створення бекдорів, завантаження шеллів, руткітів. Створення дампів (хешів, паролів, баз даних) і їх вивантаження на локальну систему (Transfering Files). Копіювання SSH-ключів доступу. Додавання команд в планувальник завдань crontab. Ретрансляція мережевих портів (Ports Forwarding). Встановлення повного контролю над сервером (Persistent Access). Приховання слідів (очищення історії bash, процесів, вилучення логів, трекерів і т.д.).

Етап 1 і Етап 2 формують так-званий “убивчий ланцюг” або Cyber Kill Chain — послідовність дій хакера, яка приводить до зламу системи. 

Ланка Cyber Kill Chain

🔑 Етап 3. Підготовка звіту

ℹ️ Завдання пентестера на цьому етапі: фінішний етап роботи пентестера, який демонструє замовнику результати пентесту.

  1. Фаза 1: Документування. Усіх дій, виконаних пентестером та подій, які відбувалися в системі. Збір і публікація технічних відомостей і деталей експлуатації (Steps to Reproduce, Proof of Concept, POC).
  2. Фаза 2: Представлення даних. Підбір доказової бази: знімків екрана (скріншотів), технічних деталей, інфографіки, посилань, діаграм, відео.
  3. Фаза 3: Формування експертних висновків і рекомендацій. Можуть являти собою просто короткі вказівки, або детальний опис з інструкцією, яку можна використати в ТЗ.

Хто такий пентестер?

Пентестер — це ІТ-фахівець, який проводить тестування кіберзахисту інформаційних та комп’ютеризованих систем, виявляючи баги, дефекти, вразливості, які можуть привести до зламу, витоку даних, компрометації. Пентестерів часто називають “Ethical Hackers” – тобто етичні “білі” хакери, котрі використовують свої навички на благо.

Професія пентестера творча, поєднує у собі чимало аспектів, навичок та досвіду з різних напрямів IT:

  • розуміння мережевих рівнів OSI-моделі, служб, стеків і протоколів: HTTP, TCP/IP, DNS, ICMP, FTP, SSH, RDP, SOCKS, Proxy, VPN та ін.;
  • розуміння основних протоколів шифрування: SHA, AES, MD5, Base64, ECDH;
  • розуміння основ соціальної безпеки та інженерії, розвідка даних з різних джерел: OSINT, SOCMINT, HUMINT, GEOINT, SIGINT, IMINT, Business Intelligence і т.д.;
  • робота зі спеціалізованим програмним забезпеченням: DAST/SAST сканери, аналізатори, дебаггери, дешифратори, декодери, пакувальники, дизасемблери і т.д.;
  • досвід роботи з антивірусними і моніторинговими системами: Firewall, WAF, NGFW, IPS/IDS, DLP, SIEM та ін.;
  • знання різноманітних стандартів і методологій з інформаційної та кібербезпеки (ISO/IEC, PCI-DSS, HIPAA, GDPR, OWASP, NIST, PTES, MITRE, COBIT, ITIL та ін.);
  • основи адміністрування операційних систем: Windows, Linux (Kali, Parrot, Tails, Debian, Ubuntu, Arch, Mint, CentOS, RedHat), Android та ін.;
  • вміння працювати з вихідним кодом та веб-розміткою: PHP, Python, Ruby, Perl, JavaScript, HTML, XML, CSS, JSON, xPath та ін.;
  • практичний досвід роботи у командному рядку: Linux Terminal, ZSH, Bash, Windows CMD, PowerShell; 
  • досвід роботи з базами даних: SQL, MySQL/MariaDB, PostgreQL, MongoDB та ін.;
  • розуміння CI/CD технологій: GIT, Jenkis, Ansible та ін.;
  • досвід у розгортанні та адмініструванні віртуальних серверів VPS/VDS на базі різноманітних веб-систем: LiteSpeed, NGINX, Apache, IIS та ін.; 
  • робота з хмарними платформами: Amazon Web Services (AWS), Google Cloud Platform (GCP), HETZNER, OVH, IBM, Azure, Microsoft 365, Oracle, Linode, DigitalOcean та ін.;
  • досвід роботи з популярними CMS-системами: WordPress, Joomla, Drupal, October, OpenCart та ін.;
  • розуміння технологій віртуалізації і контейнеризації: KVM, XEN, OpenVZ, ORACLE VirtualBox, VMware, Hyper-V, Docker, Kubernetes;
  • досвід роботи з API-технологіями (SOAP, REST, XML-RPC, GraphQL);
  • знання комп’ютерних мереж: IPv4/IPv6, MAC, ARP, LAN, NAT, Ethernet, 801.1.1, Bluetooth, Wi-Fi, WPA/WPS, Cisco, PaloAlto, Microtik, роутери, маршрутизатори і т.д.

Як стати пентестером?

1️⃣ Найперше варто забути про Windows і “пересісти” на Linux – це альма-матер всіх хакерів, UNIX-подібна операційна система, заснована на засадах вільного програмного забезпечення з відкритим кодом за ліцензією GNU/Open Source, де командний рядок грає неабияку роль.

Список хакерських дистрибутивів Linux:

  • 👨🏻‍💻 Kali Linux – культовий хакерський дистрибутив OS Linux. Рекордсмен за кількістю вбудованих утиліт та інструментів.
  • 👨🏻‍💻 BlackArch Linux – дистрибутив ОС Linux для пентестерів, складений на основі Arch Linux. Містить солідний арсенал хакерських засобів.
  • 👨🏻‍💻 Parrot Linux – компактний, зручний та легкий дистрибутив Linux з графічною оболонкою XFCE, що робить його не вимогливим до ресурсів.
  • 👨🏻‍💻 OSINT TraceLabs – чудова збірка Kali Linux від компанії TraceLabs.
  • 👨🏻‍💻 SANS Sift Workstation – збірка Linux для комп’ютерної форензики (Digital Forensics).
  • 👨🏻‍💻 Kodachi Linux – хакерський дистрибутив, який став досить відомим через свій підвищений рівень безпеки.
  • 👨🏻‍💻 Tails – дистрибутив Linux, який працює на USB-флешці і не залишає за слідів в інтернеті, працює через TOR.
  • 👨🏻‍💻 Tsurugi Linux – дистрибутив Linux для спеціалістів DFIR (Digital Forensics and Incident Response).
  • 👨🏻‍💻 REmnux – ще одна збірка Linux для тих, хто захоплюється форензикою;
  • 👨🏻‍💻 Sherlock Linux – OSINT-збірка Linux.

Освітні онлайн-платформи з навчальними курсами та віртуальними лабораторіями:

  • 🏛️ EC-Council – популярна платформа для проходження сертифікацій етичного хакінгу.
  • 🏛️ Portswigger Web Security Academy – платформа для тестування і онлайн-сертифікації від компанії Portswigger (Burp Suite).
  • 🏛️ Qualys Certification and Training Center – платформа для онлайн-сертифікації від компанії Qualys.
  • 🏛️ CISCO – освітня  платформа від всесвітньовідомої компанії.
  • 🏛️ SANS – онлайн-курси з кібербезпеки від американської некомерційної організації з комп’ютерної безпеки SANS.
  • 🏛️ INE – онлайн-курси з кібербезпеки Premium-рівня з можливістю проходження сертифікації від eLearnSecurity. Експертність лекторів, деталізованість і структурованість матеріалів вражають. Платформа надзвичайно проста та зручна, що в рази покращує сприйняття та засвоєння курсів. Для всіх охочих надається 7 днів безкоштовного доступу.
  • 🏛️ Pentester Academy – освітня онлайн-платформа з курсами для пентестерів.
  • 🏛️ Attack-Defense Labs – ще одна онлайн-платформа для пентестерів.
  • 🏛️ Cybrary – освітня онлайн-платформа з кібербезпеки.
  • 🏛️ Udemy – онлайн-платформа з величезною кількістю ІТ-курсів.
  • 🏛️ Coursera – всесвітньовідома освітня онлайн-платформа. Тут можна знайти курси від кращих ІТ-компаній та Університетів світу.
  • 🏛️ Prometheus – освітня онлайн-платформа з ІТ-курсами.
  • 🏛️ e-Learnings | Bureau Veritas USA Training – курси і сертифікації з інформаційної безпеки від американської компанії Bureu Veritas.

2️⃣ Наступний крок — перевірка і вдосконалення власних знань та навичок на практиці. Для цього підійдуть віртуальні CTF-майданчики (від англ. Capture the Flag – отримати прапорець, зламати систему).

Повний список CTF-майданчиків:

  • 🚩 TryHackMe (THM) – потужна навчально-методична, тестова платформа, яка екстернум може підготувати спеціаліста з кібербезпеки, підтягнути навички до базового і середнього рівня. Особливістю є те, що увесь матеріал фундаментальний, легкий для засвоєння і практичний (без “води”), створений професіоналами.
  • 🚩 Hackthebox (HTB) – більш складна платформа, яка може значно поглибити і розширити навички пентестера. Може бути кібер-полігоном. Містить велику кількість вбудованих віртуальних машин. Може стати чудовою підготовкою до проходження сертифікації OSCP або інших.
  • 🚩 Root Me – альтернативна платформа для пентестерів.
  • 🚩 PentesterLab – ще одна навчальна платформа.
  • 🚩 CTFtime
  • 🚩 Wargames
  • 🚩 CTF HackerHub
  • 🚩 CompTIA Security+ Labs
Віртуальні машини та онлайн-ресурси з вбудованими вразливостями:

3️⃣ На цьому кроці варто спробувати попрацювати з Bug Bounty – це термін, який позначає пошук багів за винагороду для конкретного ресурсу або компанії, яка ініціює BugBounty-програму. Ви не працюєте в найм і маєте змогу займатися пентестами у будь-який вільний та зручний для себе час (щось на зразок фрілансу), дотримуючись строків та умов проведення BugBounty-програми.

Перелік платформ, де можна знайти велику кількість різних та цікавих BugBounty-програм:

BugBounty від деяких українських компаній:

4️⃣ Поспілкуватися наживо з іншими хакерами, обмінятися досвідом, продемонструвати свій рівень та виступити з доповіддю можна на хакерських конференціях:

5️⃣ Не зайвим буде здобути фахову освіту і отримати диплом. Нижче знайдете перелік кращих ВУЗів України, які пропонують навчальні програми за спеціальністю “Кібербезпека (125)”:

👉 Додаткові матеріали:
GitHub – Awesome Cyber Skills
GitHub – Security Study Plan
GitHub – BurpSuite Certified Practitioner Exam Study
GitHub – Penetration Testing Beginners To Expert
GitHub – CyberSecurity Conferences
CEH. Exam questions.

Книги, література для пентестера

Книги для хакерів

Окремою частиною самоосвіти є література. Ось, деякі з кращих книг:

👉 Більше літератури в матеріалі: ⏩ ТОП книг для читання про кібербезпеку.

Основні інструменти пентестера

Хакерські інструменти

Інструментів для пентестінгу чимало. Ось ті, якими користуємося ми:

  1. Burp Suite— кросплатформний універсальний проксі-сканер електронних ресурсів;
  2. Metasploit Framework— професійний багатофункціональний інструмент для тестування безпеки і проведення атак на комп’ютерні пристрої, ресурси, мережі;
  3. Wireshark— аналізатор інтернет-пакетів;
  4. tcpdump— утиліта командного рядка для аналізу мережевих пакетів;
  5. testssl.sh — утиліта для перевірки SSL/TLS шифрування;
  6. IDA Pro— аналізатор вихідного коду програмного забезпечення;
  7. Acunetix Web Vulnerability Scanner — засіб для аудиту і сканер електронних ресурсів;
  8. Tenable Nessus— сканер комп’ютерних мереж і електронних ресурсів;
  9. Rapid 7 Nexpose— сканер вразливостей;
  10. OpenVAS — сканер вразливостей;
  11. Qualys— набір онлайн-інструментів для спеціалістів з кібербезпеки;
  12. NMAP— аналізатор комп’ютерних мереж;
  13. SQLmap— сканер для пошуку SQL-ін’єкцій;
  14. WPscan — аналізатор сайтів на CMS WordPress;
  15. Joomscan — аналізатор сайтів на CMS Joomla;
  16. Droopescan — аналізатор сайтів на CMS Drupal;
  17. Nikto— аналізатор веб-серверів;
  18. WhatWeb — аналізатор веб-сайтів;
  19. SpiderFoot — інструмент розвідки даних з відкритих джерел;
  20. Maltego — інструмент розвідки даних з відкритих джерел;
  21. Ettercap — інструмент для атак типу Man-in-the-Middle (MITM);
  22. OSINT Framework — фреймворк для проведення розвідки даних з відкритих джерел;
  23. IntelligenceX — інструмент розвідки даних з відкритих джерел, пошук публічних витоків даних;
  24. DEHASHED — пошук паролів до скомпрометованих акаунтів;
  25. Sherlock — утиліта командного рядка для пошуку даних з відкритих джерел;
  26. Shodan— мета-пошукова система для дослідників безпеки;
  27. Censys — мета-пошукова система;
  28. ZoomEye — мета-пошукова система китайського виробництва;
  29. DNSdumpster— аналізатор архітектури електронних ресурсів;
  30. DNSlytics — аналізатор IP-адрес;
  31. SecurityTrails— аналізатор історії доменів;
  32. theHarvester — утиліта Linux для мережевої розвідки;
  33. GHUNT— розвідка даних по акаунту Google Gmail;
  34. CMD5 — онлайн-дешифратор MD5;
  35. John the Reaper  — утиліта для підбору паролів;
  36. THC-Hydra— інструмент для Brute-Force перебору;
  37. Hashcat — потужний інструмент для зламу паролів;
  38. MHDDoS інструмент для тестування навантаженості серверів та перевірки захищеності від DDOS-атак;
  39. Metagoofil— утиліта командного рядка для пошуку файлів та збору метаданих;
  40. Dirb  — сканер веб-контенту.
  41. Dirbuster— інструмент для брутфорсу директорій, сканер веб-контенту;
  42. Gobuster — утиліта командного рядка для перебору файлів, URL-адрес, веб-серверів;
  43. Dirsearch — ще одна утиліта для брутфорсу файлів і директорій;
  44. Dirhunt — черговий сканер URL;
  45. Nuclei – мережевий web-сканер з широким функціоналом і можливостями;
  46. OWASP Zap — проксі-сканер електронних ресурсів;
  47. OWASP Maryam — утиліта командного рядка для збору даних з відкритих джерел, мережевої розвідки;
  48. OWASP Nettacker — сканер електронних ресурсів;
  49. OWASP Amass — утиліта командного рядка для пошуку субдоменів;
  50. Cobalt Strike— платформа для проведення APT-атак і Red Team операцій;
  51. Aircrack-NG — інструмент для аналізу безпеки комп’ютерних мереж.
  52. Sublist3r — утиліта командного рядка для енумерації субдоменів;
  53. wfuzz — утиліта командного рядка для фаззінгу (URL-перебору);
  54. Curl утиліта командного рядка для передачі даних по мережевих протоколах;
  55. Ping — утиліта командного рядка для перевірки мережевого з’єднання;
  56. Nslookup — утиліта командного рядка для мережевого адміністрування та розвідки даних;
  57. Dig — потужна утиліта командного рядка для мережевого адміністрування та розвідки даних з відкритих джерел (OSINT);
  58. Wget — утиліта командного рядка для отримання даних з веб-ресурсів;
  59. Telnet — мережна утиліта для з’єднання по протоколу Telnet;
  60. Netcat — утиліта командного рядка для з’єднання по TCP/UDP;
  61. Mubeng — проксі-чекер і IP-ротатор для пентестерів;
  62. XSStrike — утиліта командного рядка для пошуку XSS-вразливостей;
  63. Wappalyzer — додаток для визначення технологій на сайті.

👉 Більше хакерських інструментів за посиланнями:
GitHub – Pentest Tools
GitHub – RedTeam Tools
HackerOne: 100 Hacking Tools
100 Best Free Red Team Tools
HackYourMom – Повний список інструментів для тестування на проникнення
Top 30 Best Penetration Testing Tools 2023
Offensive OSINT Tools
GitHub – OSINT Browser Extensions
GitHub – Penetration Testing Methodology

Пошукові системи, онлайн-платформи, дорки, бази вразливостей

  1. Exploit-DB — всесвітньовідома база дорків і експлойтів;
  2. VulDB — threat intelligence платформа;
  3. CVE Details — база даних вразливостей;
  4. CVE MITRE — база вразливостей;
  5. NVD NIST — база даних вразливостей від Національного Інституту Технологій США;
  6. Vulners.com — пошукова система вразливостей;
  7. OpenCVE — відкрита база даних вразливостей.
  8. GreyNoise — кібер-пошукова аналітична система;
  9. PulseDive — cyber threat intelligence платформа;
  10. IntelligenceX — пошукова OSINT-платформа;
  11. PublicWWW — пошукова система на основі технологій і вихідного коду;
  12. LeakiX — кібер-пошукова система;
  13. Netlas.io — кібер-пошукова система;
  14. Onyphe.io — кібер-пошукова система;
  15. BinaryEdge — кібер-пошукова система;
  16. CX Security — незалежна база даних експлойтів і вразливостей;
  17. 0Day Today — торговий майданчик для покупки/продажу експлойтів і вразливостей нульового дня;
  18. Packet Storm — база даних вразливостей, заснована у 1998 році;
  19. Acunetix Vulnerability Database — база даних вразливостей від компанії Acunetix;
  20. Snyk Vulnerability Datavase — база даних вразливостей від компанії Snyk;
  21. Rapid7  Vulnerability Database — база даних вразливостей від компанії Snyk;
  22. PatchStack Vulnerability Database — база даних вразливостей CMS WordPress;
  23. Grep App — пошукова система вихідного коду;
  24. Search Code — пошукова система вихідного коду;
  25. DorkSearch — платформа для роботи з Google Dorks;
  26. SearXNG — потужна метапошукова система;
  27. MetaGER — потужна метапошукова система;
  28. Webmii — потужна система для пошуку даних з відкритих джерел (OSINT);
  29. StartPage — пошукова система з функціями анонімності;
  30. QWANT — пошукова система з функціями приватності і анонімності;
  31. Ecosia — метапошукова система;
  32. Swisscows — метапошукова система;
  33. Brave Search — пошукова система від компанії Brave;
  34. Dogpile — метапошукова система;
  35. Million Short — експериментальна веб-пошукова система;
  36. Bing — пошукова система від компанії  Microsoft;
  37. Baidu — китайська пошукова система;
  38. DuckDuckGo — альтернативна пошукова система;
  39. TinyEye — пошукова система по зображенням.

👉 Додаткові матеріали:
ТОП пошукових систем для пентестера
ТОП пошукових систем для OSINT
Google Dorks на службі у OSINT
Форензика зображень, IMINT: інструменти, техніки, методики

Кому та навіщо потрібно проводити пентест?

ℹ️ Пентест потрібен абсолютно усім, хто має справу з інформаційними технологіями! Це може бути веб-майстр, який розробляє і обслуговує веб-додатки; системний адміністратор, який керує ІТ-процесами; власник бізнесу, який має свій маркетплейс в інтернеті; організація, установа або компанія з ІТ-відділами та корпоративними ресурсами.

Переваги і бенефіти пентесту:

  • Дає змогу оцінити реальний стан кіберзахисту, стан кібербезпеки та пересвідчитися в ефективності ІТ-фахівців/ІТ-заходів.
  • Визначити стійкість системи до хакерських атак і кібер-загроз, зрозуміти, що, як і де можна покращити.
  • Виявити помилки технічної конфігурації, баги, дірки, недоліки.
  • Отримати фахові висновки та рекомендації щодо зміцнення систем безпеки.
  • Спрогнозувати можливі збитки та наслідки у випадку атак, розрахувати рентабельність інвестицій в кібербезпеку, обґрунтувати бюджет на кіберзахист.
  • Уникнути витоків службової, конфіденційної інформації. Захистити дані співробітників та клієнтів. Зменшити ризики майбутньої атаки.
  • Оцінити відповідність державним і міжнародним регуляторам, стандартам, нормативним актам. Наприклад PCI DSS, HIPAA та GDPR вимагають від організацій офіційну програму тестування на проникнення.

Пентест може допомогти виявити вразливості до того, як ними скористається зловмисник. Особливо важливо проводити його для великих сайтів і компаній, державних та інфраструктурних об’єктів, банківських структур, розгорнутих корпоративних систем і мереж, оскільки забезпечити надійну і цілісну безпеку у такому випадку значно важче. Саме на них припадає левова частка атак.

Рекомендується проводити тестування на проникнення регулярно, мінімум 1-2 рази на рік.

Скільки коштує пентест?

Ціна на пентест

Вартість тестування на проникнення залежить від багатьох факторів, наприклад:

  • типу пентесту;
  • обраної методології;
  • типу та об’єму інфраструктури, кількості об’єктів;
  • кількості залучених спеціалістів;
  • кількості витрачених годин на тестування;
  • рівня деталізованості звіту.

Кожна компанія з кібербезпеки може мати власні підходи до формування ціни на пентест. Додатковими факторами можуть бути престиж, упізнаваність і репутація компанії або спеціаліста, який проводить пентест, популярність компанії-замовника, рівень конкурентності в ніші замовника.

Щоби розуміти ціноутворення, варто також усвідомлювати наступне:

  1. Скільки власники бізнесу витрачають на покриття фінансових збитків після хакерських атак? Згідно зі звітом IBM Security, у 2021 році середня вартість витоку даних становила $6,75 мільйона за один інцидент.
  2. Скільки пентестер витрачає на свою підготовку (підвищення кваліфікації, придбання ліцензій на софт) в Україні? В середньому від $500-$900.
  3. Скільки коштує знайдена вразливість з середнім пріоритетом в українських BugBounty-програмах? Від $250-$500.
  4. Вартість проходження сертифікації BSCP – $100.
  5. Вартість проходження сертифікації eJPT – $249.
  6. Вартість проходження сертифікації CompTIA Pentest+ – $381.
  7. Вартість проходження сертифікації eWPTx – $400.
  8. Вартість проходження сертифікації OSCP – $1599.
  9. Вартість проходження сертифікації PCI-DSS – $1000.
  10. Підготовка до проходження сертифікації CISSP – від $1200.

👉 Ознайомитися з цінами тестування на проникнення на порталі державних закупівель Prozorro>>

Скільки часу виконується пентест?

Тривалість виконання тестування на проникнення

Пентест – це розгорнута процедура, у ході якої ІТ-спеціалісту необхідно виконати чимало перевірок і проаналізувати великий пласт інформації.

Якщо хочете, щоби пентест був якісним, а не виконаним нашвидкоруч, то необхідно запастись терпінням. Пентестеру треба не менш як тиждень (7 днів клопіткої праці), а то й місяця часу. Все залежить від типу досліджуваного ресурсу/інфраструктури, обраної методології.

Проведення навіть найпростішої атаки забирає багато часу, сил і ресурсів. Наприклад, підібравши експлойт, треба його ще ретельно протестувати. Для цього необхідно мати під рукою кілька віртуальних тестових майданчиків, де можна  реально змоделювати атаку. Буває так, що експлойт несправний або є різниця у версіях ПЗ, тому без планування робота пентестера може бути зведена на нівець.

Пентестер повинен мати “під рукою” мінімум кілька розгорнутих віртуальних машин з різними операційними системами й додатками. Заготовлені скрипти і шаблони, букмарки, довідники, бази даних і так далі.

Окрім того, значного часу потребує робота над звітом, аби він був якомога інформативнішим та читабельним, наповненим фактами, містив точні твердження та висновки.

Загалом, організованість робочого середовища, грамотність, уважність і спостережливість, помножені на досвід і потужний програмно-апаратний комплекс відіграють важливу роль в тестуваннях на проникнення.

Чи потрібен юридичний дозвіл і договір на проведення пентесту?

Тестування на проникнення  —  це процедура, яка передбачає втручання в роботу електронно-обчислювальних систем, може впливати на тріаду безпеки – конфіденційність, цілісність, доступність, а тому потребує обов’язкового юридично завіреного дозволу і договору з власником. В іншому випадку — це може трактуватися як злочин у сфері використання ЕОМ (Ст. 361 ККУ).

Договір на надання послуг у сфері інформатизації

Договір на проведення пентесту — це юридичний документ, який укладається у двосторонньому порядку між замовником і виконавцем. В ньому прописуються усі умови, домовленості та будь-які інші деталі співпраці. У договорі вказується перелік наданих послуг, строки та вартість, відповідальність сторін. Якщо пентест внутрішній, то також визначається порядок передачі необхідних доступів, складається карта об’єктів інфраструктури.

Обов’язковим є також пункт про нерозголошення і конфіденційність інформації (NDA). Додатково можна підписати SLA (Service Level Agreement) – це договір про рівень надання послуг.

👉 Завантажити зразок договору на надання IT-послуг >>
👉 Завантажити зразок договору про нерозголошення інформації (NDA) >>

Приклад звіту тестування на проникнення

Звіт з тестування на проникнення – це головний документ, який засвідчує виконану пентестером роботу. Звіт можна використовувати для покращення кіберзахисту шляхом усунення будь-яких виявлених уразливостей, а також для підвищення обізнаності про безпеку. Він є індикатором якості, а тому має бути чітко та якісно пропрацьованим.

Структуру звіту умовно можна розділити на такі частини:

  1. Титульна сторінка – містить назву компанії та ім’я виконавця, назву компанії замовника, дата виконання/отримання звіту, версія звіту та інші подробиці.
  2. Зміст документа.
  3. Положення про конфіденційність – обговорюються всі ризики щодо нерозголошення конфіденційної інформації в документі, є свого роду договором про NDA.
  4. Коротке резюме (Executive Summary) – інформація для замовника: тип і мета проведеного пентесту, обрана методологія, спосіб і терміни виконання, гістограма і таблиця знайдених вразливостей, підсумки.
  5. Градація ризиків.
  6. Список проведених атак з вичерпною документацією:
    1. Назва атаки;
    2. Короткий опис (Description);
    3. Технічні деталі експлуатації (Proof of Concept, POC);
    4. Скріншоти і додаткові матеріали (таблиці, файли, відео та ін.);
    5. Ступінь ризику (Severity);
    6. Класифікація ризику по даним CVE/CWE/OWASP або інших стандартів;
    7. Оцінка ризику за системою CVSS v2/3;
    8. Вплив атаки (Impact);
    9. Рекомендації (Recommendations/Remediation).
  7. Додаток (Appendix) – містить будь-яку супровідну інформацію, наприклад файли з експлойтами, фрагменти коду.

Для  підготовки звіту можна також скористатися автоматизованими системами генерації документів, наприклад PwnDoc, VULNEPO, Pentest-tools.com. Для створення діаграм і гістограм підійде Google Sheets. Для роботи з інфографікою – Canva.

Чудове керівництво з підготовки звіту тестування на проникнення опубліковане на платформах HackTheBox і SANS.

Також пропонуємо зразок нашого звіту, створений KR. Laboratories. Він має демонстраційний характер та містить знеособлені, підмінені дані:

Корисні посилання для пентестера

GitHub – Awesome Pentest
GitHub – Awesome Bug Bounty Tools
GitHub – Pentesting Bible
GitHub – Pentest Wiki
GitHub – Pentest Reports
Pentestreports.com
GitHub – Public Pentest Reports
GitHub – Pentest Consulting Creator
GitHub – Galaxy Bugbounty Checklist
GitHub – Pentest Cheat Sheets
GitHub – Linux Kernel Exploitation
GitHub – XSS Payload List
GitHub – Ethical Hacking Labs
GitHub – SecLists
GitHub – PayloadsAllTheThings
GitHub – Awesome Hacker Search Engines
GitHub – MITM Cheatsheet
GitHub – Email Username OSINT
GitHub – All CVE PoC
GitHub – PoC
GitHub – HackerOne Reports
Github – BurpSuite for Pentester
MetaOSINT Framework
PortSwigger XSS Cheatsheet
Red Team Notes
Offensive Security Cheatsheet
Hausec Pentesting Cheatsheet
OWASP Cheatsheet Series
OSINT Framework
CVSSjs Base Score Calculator
Metasploit Documentation
Penetration Testing Tools Cheat Sheet
The art of subdomain enumeration
AppSecco.com Blog – A Penetration Testers Guide to Subdomain Enumeration
Cloudflare Blog: DNS Cache Poisoning
Cloudflare Blog: DNS amplification DDOS attack
Medium – Penetration Testing of FTP Server
Philipp Wylie, Kim Crawley. THE PENTESTER BLUEPRINT.
Aman Hardikar. Cyber Security Mindmaps.
Styran.com – У чому різниця між тестами на проникнення і аудитами
NoNamePodcast
Abdelrhman Allam. Web Application Hacker’s Methodology.
Reverse Shell Generator

ПОДІЛИТИСЬ У СОЦМЕРЕЖАХ:

5 1 голос
Рейтинг статті
Підписатися
Сповістити про
guest
0 Коментарі
Вбудовані Відгуки
Переглянути всі коментарі
0
Цікаво почути Вашу думку!x
Отримати комерційну пропозицію
Оформити заявку
Замовити консультацію

Заповніть, будь ласка, форму й наш спеціаліст зв’яжеться з Вами та надасть безкоштовну консультацію!

Замовити дзвінок

Вкажіть, будь ласка, контактний номер телефону. Наш менеджер миттєво зв’яжеться з Вами!