Мій шлях у пентестинг: від першого скрипта до професійної лабораторії

Особиста історія про те, як Docker, Node.js та правильна мотивація допомогають створити власну екосистему для кібербезпеки

Як все почалося

Нещодавно побачив вакансію від СОУ. Читаю вимоги: “розуміння SQL injection, LFI, RCE, IDOR, навички роботи з BurpSuite, Metasploit, знання Android-пентестингу”. Сиджу і думаю – круто звучить, і наче тако щось з того вже знаю і якісь розкидані скрипти і напрацювання є ще з давніх часів, вивчення sql php wordpress?

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

Перший скрипт: коли все почало складатися

Почав я з простого. Взяв Node.js (бо розумів його краще за інші мови) і адаптував свій перший дуже давній скрипт вразливостей. Звичайно, він такий собі і ці вразливості велика рідкість, але знаю декілька фреймворків де ця вразливість є ще досі і на них написані досить великі проекти, тож тестовий скрипт:

Примітивно? Так. Але це типу Hello World.

Docker революція

Колись коли я відкрив для себе Docker, а сталось це коли я перейшов на linux, а там немає ні OpenServer, ні Denwer — того самого “джентльменського набору веб-розробника”, який колись рятував кожного початківця. Немає й MAMP, а LAMP — це скоріше концепція (Linux + Apache + MySQL + PHP), ніж готове коробкове рішення. Звична «одна кнопка — і працює» зникла. Саме тоді я вперше оцінив Docker — інструмент, який дозволив створити лабораторію за лічені хвилини, без болю, ізольовано і передбачувано.

Мій перший docker-compose.yml пентест  лабораторії:

Запускаю docker-compose up і БАМ! – у мене працює два вразливих додатки. Можу тренуватися скільки завгодно, нічого не боячись.

Перші успіхи та невдачі

Найперша знайдена мною вразливість була у власному коді старенького застосунку😅:

1500Примітка: навчатися краще на власних помилках, ніж на чужих прикладах.

Автоматизація: коли лінь стає двигуном прогресу

Спочатку я запускав все вручну. BurpSuite тут, SQLMap там, перевірка Docker образів окремо. Набридло! Тому написав свій перший автоматизований сканер:

Раптом те, що раніше займало години, стало займати хвилини. Запускаю один скрипт – отримую повний звіт безпеки.

Момент істини: коли зрозумів свою силу

Найкращий момент стався, коли колега попросив перевірити їхній проект. Запускаю свій сканер і знаходжу:

  • 3 критичні вразливості в залежностях
  • Хардкодений API ключ у .env файлі
  • Небезпечний Docker образ з відомими CVE
  • SQL injection у їхньому адмін-панелі

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

Еволюція інструментів

Мої скрипти постійно еволюціонували:

Версія 1.0 – простий сканер package.json Версія 2.0 – додав Docker аналіз
Версія 3.0 – мережеве сканування Версія 4.0 – веб API з красивим інтерфейсом Версія 5.0 – інтеграція з CI/CD

Кожна версія вирішувала реальну проблему, з якою я стикався.

Перші професійні виклики

Коли почав працювати з реальними проектами, зрозумів: академічні знання – це одне, а практика – зовсім інше.

Проблема: Клієнт каже “У нас все безпечно, ми використовуємо HTTPS” Реальність: Запускаю свій network scanner і бачу відкритий SSH на 22 порту з дефолтними паролями

Проблема: “Ми регулярно оновлюємо залежності” Реальність: Мій сканер знаходить 15 критичних CVE у package.json

Навчальні моменти

Не все можна автоматизувати

Спочатку думав: напишу скрипт для всього! Але швидко зрозумів – логіка бізнесу, IDOR, деякі типи XSS потребують ручного аналізу.

Docker – не панацея

Контейнери допомагають з ізоляцією, але самі по собі можуть мати вразливості. Мій Docker scanner показав це наочно:

Звіти – це половина успіху

Найкрутіший сканер нічого не варт, якщо результати незрозумілі. Тому зараз працюю над покращенням звітності – HTML з графіками, JSON для автоматизації, CSV для менеджерів.

Практичні поради для початківців

1. Починайте з Node.js (якщо знаєте JS)

Не слухайте тих, хто каже “справжній пентестер користується тільки Python”. Node.js має чудові бібліотеки для мережевого сканування, веб-запитів, і ви можете швидко побачити результати.

2. Docker – ваш кращий друг

3. Автоматизуйте рутину

Якщо робите щось більше 2 разів – пишіть скрипт. Моє правило золоте.

4. Ведіть логи всього

Кожен скан, кожна знайдена вразливість, кожна помилка. Через рік ці дані стануть золотом.

Інструменти, які я створив

Зараз вже є кілька корисних утиліт:

  • vulnerability-scanner.js – комплексний сканер проектів
  • docker-scanner.js – спеціалізований аналіз Docker образів
  • network-scanner.js – мережеве сканування з ізоляцією
  • scanner-api.js – веб API для всього цього господарства
  • та ще дещо набагато цікавіше за корисні утиліти та то вже виходить за рамки цього опусу

Кожен інструмент вирішує конкретну проблему і еволюціонує разом з моїм досвідом.

Момент, коли все зійшлося

Розмовляв із давнім знайомим і похвалився, що роблю, він каже о то ти хакер, перевір мій застосунок:

За 1 годину мої автоматизовані сканери знайшли:

  • 2 SQL injection ендпоінти
  • Небезпечну десеріалізацію у JSON API
  • Відсутність rate limiting
  • Витік даних через verbose error messages

🧨 Небезпечна десеріалізація у JSON API

Що це: коли сервер приймає та обробляє JSON-дані без належної перевірки, зловмисник може підкинути шкідливі об’єкти.
Наслідки: виконання довільного коду, обхід логіки, або навіть повне захоплення сервера.


🚫 Відсутність rate limiting

Що це: API дозволяє необмежену кількість запитів без обмежень по часу або IP.
Наслідки: можливі brute-force атаки, DDoS, перевантаження серверу.


🐞 Витік даних через verbose error messages

Що це: сервер у відповідь на помилку показує надто багато технічної інформації (stack traces, SQL-запити, змінні середовища).
Наслідки: зловмисник отримує підказки для подальших атак — структуру БД, назви файлів, технології тощо.

Решту часу витратив на ручну перевірку. Результат – розуміння: мій підхід працює.

Що далі?

В планах:

  • Інтеграція з Kubernetes для сканування кластерів
  • ML моделль для виявлення аномальної поведінки
  • Мобільний додаток для Android пентестингу

Головний урок

Найкращий пентестер – не той, хто знає найбільше інструментів, а той, хто вміє швидко адаптуватися і створювати власні рішення.

Мої скрипти на Node.js + Docker виявилися потужнішими за багато комерційних рішень, бо вони:

  • Точно підходять під мої потреби
  • Швидко адаптуються під нові загрози
  • Інтегруються з будь-якими системами
  • Повністю під моїм контролем

Заклик до дії

Якщо ви тільки починаєте свій шлях у кібербезпеці:

  1. Не бійтеся експериментувати – створюйте власні інструменти
  2. Використовуйте те, що знаєте – JavaScript теж може бути зброєю пентестера
  3. Автоматизуйте все – ваш час дорожчий за CPU час
  4. Ділиться досвідом – спільнота сильніша за одиночок

Пам’ятайте: кожен експерт колись був початківцем. Різниця тільки в тому, що експерт не здався після першої невдачі.


Ця стаття написана на основі реального досвіду створення власних інструментів для пентестингу. Всі згадані скрипти працюють і доступні для навчальних цілей.

Слава Україні! 🇺🇦

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *