
Простой TCP/UDP хоннипот, реализованный на Perl
Программа-приманка (honeypot) для TCP/UDP, реализованная на Perl
README для malbait, 2/10/17
(кстати, мой биткоин-адрес: 3A7yuqBcPAcVEM59bNAVQdTCmkxRb5JRgE )
(Вот альтернатива, тоже для BTC, так как мне сообщали, что некоторые биткоин-кошельки не поддерживают определённые адреса: 1PEDKUiUTxGNJ3XTPfXCTAjpzVzX1VZAme )
Добро пожаловать в malbait — ваш простой универсальный honeypot на Perl!
Malbait — это honeypot, или программа-«приманка для вредоносного ПО» (malware bait). Она предназначена для того, чтобы отнимать время у хакеров и отслеживать враждебный трафик в интернете (или в вашей локальной сети).
Malbait создаёт набор фальшивых серверов на выбранных или заданных по умолчанию TCP- и, если выбрано, UDP-портах. Если кто-то или что-то подключается к ним, введённые данные записываются в файлы журналов.
Они работают как фоновые процессы, поэтому, чтобы избавиться от них, вам придётся либо выключить компьютер, либо воспользоваться командой «kill» (а лучше — «skill») из оболочки. Наблюдать за ними можно с помощью netstat. Я рекомендую:
sudo netstat -anp|grep perl
чтобы увидеть, что прослушивается, и
sudo skill -9 perl
чтобы убить их, когда вам это надоест.
NB: Если вы используете install.sh для установки этой программы, вам придётся выполнить
sudo skill -9 malbait
Вместо этого. Хотя вы по-прежнему можете наблюдать за ней с помощью: sudo netstat -anp|grep perl
В качестве альтернативы можно просто выключить машину. Разумеется, не используйте malbait, если perl нужен вам для чего-то ещё! Я рекомендую выделенную машину-«приманку»: либо что-то небольшое, например Raspberry Pi, слушающий порты по умолчанию, либо большой компьютер, слушающий столько портов, сколько возможно (в идеале — все).
По умолчанию malbait использует TCP, но может поддерживать и UDP, причём оба протокола могут работать бок о бок.
ОЧЕНЬ НАСТОЯТЕЛЬНО рекомендуется запускать эту программу в режиме суперпользователя — либо вызвав gainroot (sudo gainroot), либо запустив её через sudo (sudo malbait). Для открытия любого из первых 1024 портов у вас ОБЯЗАТЕЛЬНО должны быть права суперпользователя.
Запускается она так:
malbait -foo
если запустить её без параметров, она выдаст длинный текст с дальнейшими пояснениями по использованию. Если вы хотите начать «из коробки», выполните
malbait -defaults
Это откроет порты по умолчанию и создаст серверы везде, где только возможно.
Malbait умеет создавать фальшивые серверы для Telnet, FTP, SMTP, POP3, BGP, HTTP (не блестяще), TR-69 (не блестяще), imap, systat, echo и старого ASCII-сервера «time». По умолчанию они открываются на всех своих стандартных портах, но для них можно указать свои порты.
Можно также открыть диапазон портов, например:
malbait -ports:1-1024
Откроет порты 1-1024 (так называемые «общеизвестные», или «привилегированные», порты) и создаст фальшивые серверы, где это уместно.
Использование malbait ограничено только объёмом вашей памяти. Опции -trans_proto:tcpudp и -ports: дают вам возможность следить за каждым портом, если у вас достаточно мощная машина; или обрушить ваш компьютер, если нет. Мой маленький ноутбук Lenovo x200, как я выяснил, выдерживает около 6000 портов, прежде чем начинает сходить с ума, но у вас результат может отличаться. Хотите узнать, насколько мощный ваш новый компьютер НА САМОМ ДЕЛЕ? Malbait может устроить тест производительности — лично мне очень хочется увидеть, что произойдёт на машине, запустившей
malbait -ports:1-65535 -trans_proto:tcpudp
на очень мощном компьютере. Судя по моему опыту, при работе всего с 10% от этого объёма в сети определённо хватает вредоносного UDP-трафика (в основном мудаков, которые, похоже, пытаются навариться на бесплатных телефонных звонках), а telnet — это настоящая чашка Петри, но мне бы очень хотелось увидеть обзор неизведанной территории дальше, если у кого-нибудь хватит мощности (а также способности и смелости / наглости полностью отключить свой брандмауэр!)
Если вы попытаетесь открыть, скажем, FTP-сервер в режиме UDP ( malbait -proto:ftp -trans_proto:udp ), он откроет порты по умолчанию — но фальшивого FTP-сервера вы не получите! В режиме UDP серверы будут созданы только для совместимых с UDP служб, а именно asciitime, systat, echo и специальных мета-протоколов «hacktime» и «fuzz».
Hacktime — это такая шутка, вдохновлённая фильмом «Кунг Фьюри». Он создаёт NTP-серверы времени, как старомодные, так и новые, и передаёт либо все единицы, либо все FF — идея в том, чтобы имитировать дату переполнения счётчика эпохи Unix («hacktime-2036») или только что загруженную систему («hacktime-1900»). Разумеется, настоящий NTP-сервер устроен гораздо сложнее, и, скорее всего, это не заработает, но точно собьёт с толку любого хакера, который атакует вас, думая, что вы — NTP-сервер!
Fuzz — это ровно то, что следует из названия: попытка насолить автоматизированным атакам, забрасывая их случайным мусором. Опять же, это экспериментальная функция, и я не обязательно отношусь к ней со всей серьёзностью, но подумал, что кому-то она может пригодиться, поэтому она осталась.
HTTP-сервер ищет файл с именем «webpage.html». Если он его не находит, вместо него генерируется простая страница 404. Опять же, это не блестяще — эта программа больше для того, чтобы помочь вам изучить экзотических случайных клиентов, которые пытаются к вам подключиться, а не скучных старых веб-пауков.
Обратите внимание: если открыть его в веб-браузере, под содержимым вы увидите множество строк «HTTP/1.1 200 OK»; это потому, что он не предназначен для открытия в веб-браузере — он предназначен для того, чтобы как можно дольше удерживать на линии потенциально вредоносных ботов-краулеров.
Разумеется, не стесняйтесь заменять webpage.html по умолчанию на свой собственный — хотя вы можете им пользоваться, он создан для демонстрационных целей.
Опция -transblank позволяет отменить создание фальшивого сервера. Так что если вы выполните
malbait.pl -port:23 -proto:transblank
или
malbait.pl -proto:telnet -transblank
malbait передаст клиентам нечто максимально близкое к пустому ответу (один-единственный возврат каретки) вместо создания «Telnet-сервера».