Как Endlessh превращает хакеров в беззащитных мух в паутине

03 Jun, 2024

Репозиторий давно не обновлялся

Последнее обновление было 2 года назад.

8,486
🔱 304
👥 86

Представьте: злоумышленник сканирует ваш сервер в поисках открытого SSH-порта. Вместо быстрого отказа или приглашения к авторизации он получает... бесконечно долгий баннер, который медленно загружает его клиент часами. Это не баг, а фича — и называется она SSH-тарпит.

Что такое Endlessh и кому он пригодится

Endlessh — это минималистичный демон на C, который имитирует SSH-сервер с одной коварной особенностью: он отправляет бесконечный поток случайных данных с мизерной скоростью (по умолчанию — по строке каждые 10 секунд).

Идеальный инструмент для:

  • Админов, уставших от брутфорс-атак
  • Владельцев серверов с публичным SSH
  • Любителей нестандартных решений безопасности

Как это работает: три уровня гениальности

  1. Предварительная ловушка — перехват на этапе баннера (до криптографии)
  2. Медленное удушение — клиент зависает в ожидании данных
  3. Экономия ресурсов — однопоточный poll() вместо fork()

Пример запуска на альтернативном порту:

endlessh -p 2222 -v >endlessh.log 2>endlessh.err

Гибкая настройка под любые нужды

Конфигурационный файл (по умолчанию /etc/endlessh/config) позволяет:

Реклама
# Задержка между строками в миллисекундах
Delay 10000

# Максимальная длина строки (3-255 символов)
MaxLineLength 32

# Лимит одновременных соединений
MaxClients 4096

Интересный нюанс: более короткие строки иногда эффективнее — некоторые клиенты сдаются после определёного объёма данных.

Техническая кухня проекта

  • Язык: Чистый C без зависимостей
  • Архитектура: Однопоточный poll() для управления множеством клиентов
  • Размер: Всего ~79 строк кода (по данным GitHub)
  • Лицензия: The Unlicense — можно всё

Особенности сборки для экзотических систем:

  • Solaris требует дополнительных библиотек (-lnsl -lrt -lsocket)
  • RHEL 6 нужно линковать с librt

Практические сценарии использования

  1. Приманка для скрипт-кидди — перенаправляйте атаки с основного порта
  2. Система раннего предупреждения — логи подключений как индикатор атак
  3. Защита для уязвимых устройств — IoT-гаджеты с открытым SSH

Протоколирование через syslog (-s) или stdout (-v), статистика по SIGUSR1 — всё для удобного мониторинга.

Вывод: стоит ли попробовать?

Endlessh — это: ✔️ Элегантное решение сложной проблемы ✔️ Минимальные требования к ресурсам ✔️ Гибкость настройки под свои нужды

Особенно рекомендую владельцам серверов с публичным SSH — иногда лучшая защита это не блокировка, а бесконечное ожидание.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.