Вступ до пентесту: як мислять етичні хакери
Пентестери законно зламують системи, щоб першими знайти вразливості. Дізнайтеся про п'ять фаз етичного хакінгу, основні інструменти та як розпочати кар'єру.
Зміст
Що таке Pentest — і чим він не є
Тест на проникнення (pentest) — це авторизована, змодельована атака на систему, мережу або застосунок із метою виявлення вразливостей безпеки до того, як їх знайдуть реальні зловмисники. Ключове слово тут — авторизована. Технічні навички пентестера та кримінального зломщика нерідко ідентичні. Різниця — в юридичному дозволі та намірах.
Pentest — це не те саме, що сканування вразливостей. Сканер виявляє відомі вразливості, порівнюючи системи з базою даних. Пентестер намагається експлуатувати ці вразливості, щоб продемонструвати реальний вплив — об'єднуючи слабкі місця, підвищуючи привілеї та переміщаючись системами так, як це робив би справжній зловмисник.
Також це не те саме, що Red Team-залучення. Red Team симулює повноцінну кампанію противника — часто тривалістю тижні або місяці — тестуючи людей, процеси та технології. Pentest зазвичай більш обмежений за обсягом і часом.
Правова та етична основа
Перед початком будь-якого тестування пентестер повинен мати явний письмовий дозвіл. Як правило, він оформлюється у вигляді документа Rules of Engagement (ROE) та технічного завдання, що визначають:
- Обсяг: які системи, IP-діапазони та застосунки входять до обсягу
- Системи поза обсягом: виробничі бази даних, до яких не можна торкатись, сервіси третіх сторін
- Дозволені техніки: чи дозволено соціальну інженерію? Фізичний доступ?
- Часові рамки: чи є вікна обслуговування, яких слід уникати?
- Аварійні контакти: якщо щось зламається, кому телефонувати негайно?
Тестування без авторизації є незаконним відповідно до законів про комп'ютерне шахрайство практично в кожній юрисдикції. Лист від клієнта, який підтверджує дозвіл — іноді буквально так і називається — слід мати при собі під час будь-якого тестування, яке може спровокувати сповіщення безпеки.
П'ять фаз Pentest
Фаза 1: Розвідка
Розвідка (recon) — це фаза збору інформації. Тестувальник дізнається якомога більше про ціль, перш ніж доторкнутися до будь-якої системи. Вона поділяється на дві категорії:
Пасивна розвідка використовує загальнодоступну інформацію без взаємодії з ціллю:
- Записи WHOIS, записи DNS, журнали прозорості сертифікатів
- LinkedIn для пошуку імен співробітників, посад, підказок щодо технологічного стека
- GitHub та репозиторії коду для пошуку витоку облікових даних, API-ключів, внутрішніх IP-адрес
- Shodan.io та Censys для виявлення сервісів, відкритих в інтернет
- Google dorking (site:target.com filetype:pdf, site:target.com inurl:login)
Активна розвідка передбачає безпосередню взаємодію з ціллю:
- Перелік DNS і передача зон
- Сканування портів (Nmap)
- Відбиток сервісів
- Обхід вебзастосунків
Грунтовна розвідка часто виявляє знахідки без будь-якої експлуатації: публічно відкриті директорії .git, відкриті файли середовища, облікові дані за замовчуванням на адміністративних інтерфейсах.
Фаза 2: Сканування та перелік
Маючи список цілей, тестувальник систематично сканує відкриті порти, запущені сервіси, версії програмного забезпечення та неправильні конфігурації.
Ключові інструменти:
- Nmap — стандарт для сканування портів і сервісів
- Nikto — сканер вразливостей вебсервера
- Gobuster / ffuf — перебір директорій і файлів у вебзастосунках
- Enum4linux — перелік SMB і Windows
- Nessus / OpenVAS — автоматизовані сканери вразливостей
Перечислення йде глибше: вилучення імен користувачів із LDAP, визначення SMB-ресурсів, виявлення кінцевих точок API, картування логіки застосунку.
Фаза 3: Експлуатація
Експлуатація намагається використати виявлені вразливості для отримання несанкціонованого доступу. Ціль зазвичай — досягти одного з:
- Дистанційного виконання коду (RCE) на цільовій системі
- Обходу автентифікації для доступу до захищених ресурсів
- Підвищення привілеїв від користувача з низькими до користувача з високими привілеями
- Ексфільтрації даних для демонстрації того, що міг би вкрасти зловмисник
Metasploit Framework — найбільш широко використовуваний інструмент для організації та виконання експлойтів. Він надає бібліотеку модулів для відомих вразливостей, генерацію корисних навантажень і пост-експлуатацію.
Критична навичка тут — ланцюжок вразливостей. Неправильна конфігурація низького ступеня серйозності сама по собі може не вимагати дій, але в поєднанні з розкриттям інформації та слабким паролем вона стає шляхом до адміністратора домену.
Фаза 4: Пост-експлуатація
Після початкового доступу тестувальники симулюють те, що зробив би реальний зловмисник: підтримують стійкість, переміщаються горизонтально, підвищують привілеї та досягають своїх цілей.
Техніки горизонтального переміщення:
- Pass-the-Hash: використання захоплених хешів NTLM для автентифікації без знання пароля у відкритому вигляді
- Kerberoasting: запит квитків сервісів та їх зламування в автономному режимі для отримання паролів сервісних облікових записів
- Переспрямування: використання скомпрометованого хоста як мосту для доступу до систем, які раніше були недоступні
Техніки забезпечення стійкості:
- Заплановані завдання, завдання cron
- Ключі запуску реєстру
- Облікові записи з бекдором
- Вебшели на скомпрометованих вебсерверах
Глибина пост-експлуатації обмежується ROE.
Фаза 5: Звітування
Звіт є основним результатом pentest. Гарний звіт:
- Надає виконавче резюме, доступне для нетехнічного керівництва
- Перераховує кожну знахідку з оцінкою серйозності (бал CVSS або якісна: Критична/Висока/Середня/Низька)
- Документує підтвердження концепції для кожної знахідки (знімки екрану, використані команди)
- Пояснює бізнес-вплив — не просто «знайдено SQL ін'єкцію», а «зловмисник може отримати доступ до всіх платіжних записів клієнтів»
- Надає конкретні рекомендації щодо усунення, а не загальні поради
- Включає дорожню карту усунення, пріоритизовану за ризиком
Поширені методології та фреймворки
- PTES (Penetration Testing Execution Standard) — комплексна методологія, що охоплює всі фази
- OWASP Testing Guide — спеціально для тестування вебзастосунків
- NIST SP 800-115 — технічний посібник із тестування інформаційної безпеки
- OSSTMM (Open Source Security Testing Methodology Manual) — ширша методологія тестування безпеки
Початок роботи в Pentest
Для тих, хто прагне зробити pentest своєю професією:
Тренувальні середовища:
- HackTheBox, TryHackMe, PentesterLab — навмисно вразливі машини
- DVWA (Damn Vulnerable Web Application) — локальна практика вебзастосунків
- VulnHub — завантажувані вразливі віртуальні машини
Сертифікації:
- OSCP (Offensive Security Certified Professional) — практична, авторитетна в галузі, складна
- CEH (Certified Ethical Hacker) — широко визнана, більш заснована на знаннях
- eJPT (eLearnSecurity Junior Penetration Tester) — гарна відправна точка
Ключові інструменти для вивчення: Nmap, Metasploit, Burp Suite, Wireshark, John the Ripper, Hashcat, Gobuster, BloodHound
Мислення пентестера — це насамперед творче вирішення задач у рамках обмежень. Технічні знання важливі, але здатність мислити як зловмисник — бачити те, що упустили захисники — це те, що відрізняє ефективних тестувальників від операторів інструментів.