Статья Я поднял ловушку для хакеров и за 4 часа поймал ботнет, который живёт с 2018 года

Что творится в «фоновом шуме» интернета, если оставить SSH-дверь приоткрытой и просто смотреть, кто полезет? Мне стало любопытно и за один вечер я поднял на арендованном VPS ловушку: сервер, который притворяется беззащитным и ждёт, пока его взломают. Через несколько минут в дверь постучались. Через четыре часа в логах было почти семь тысяч атак со всего мира: попытки залить малварь, прокинуть спам через мой сервер и семь машин из разных стран, оставивших один и тот же характерный след: по нему я и вышел на целый ботнет. Рассказываю по порядку: что это за ловушка, кого она поймала и как ты можешь повторить то же самое.

И да — сразу, чтобы снять вопросы: это легально. Я ничего не взламывал. Я поставил у себя дома мышеловку и записал, кто в неё полез. Об этом ниже.

Что такое honeypot и зачем я его поднял

Honeypot
(англ. «горшочек с мёдом») это приманка. Сервер, который снаружи выглядит как обычная уязвимая машина с открытым входом, но на самом деле внутри всё ненастоящее: фальшивая файловая система, фальшивые команды, и единственное, что он делает по-настоящему, подробно записывает каждое действие гостя. Логин, пароль, какие команды выполнил, что пытался скачать. Сам «гость» думает, что взломал реальный сервер, и ведёт себя как обычно — а ты смотришь на его руки.

Зачем мне это вообще понадобилось? Сериалы надоели, и я подумал: а логи реальных атак — это же бесплатный реалити-сериал про сетевую шпану, эдакое «слово пацана», только кровь не на асфальте, а в логах. Хотелось посмотреть его вживую, на своём железе, а не в чужих отчётах. Кто ломится, чем ломится, насколько всё на автопилоте — куда занятнее любого учебника. А honeypot к тому же абсолютно безопасен: что бы гость ни «сломал», он крушит декорацию, а не настоящую систему. Сиди да смотри, можно с попкорном. Я выбрал Cowrie — самый известный бесплатный honeypot, который эмулирует SSH и Telnet (это два способа удалённо зайти в командную строку сервера; именно их чаще всего ломают). Поставил его на дешёвый VPS, перенаправил настоящие порты 22 (SSH) и 23 (Telnet) внутрь ловушки и стал ждать.


Про легальность и важную оговорку.

Ловушка пассивная: она не атакует в ответ, не сканирует чужие сети, не «ломает хакеров». Она просто принимает входящие подключения на мой собственный сервер и записывает их — ровно как камера видеонаблюдения у меня во дворе. Наблюдать за тем, кто ломится к тебе, — это законно. А вот всё, что атакующие делают со мной, — попытки подбора паролей, установки бэкдоров, прокачки спама — это уже их действия, и в реальном мире они нелегальны. Я лишь зритель.

В цифрах

За ~4 часа работы (с 01:19 до 05:32 UTC) ловушка собрала:

МетрикаЗначение
Всего событий6 982
Уникальных атакующих IP75
Стран-источников30
Сессий (подключений)935
«Успешных» входов850
Команд выполнено828
Уникальных перебранных паролей407
Уникальных перебранных логинов255

1.webp

Общий дашборд с картой атак
И всё это за один вечер, на сервере, про который не знает ни один живой человек, кроме меня. Никто не «давал ссылку» — боты находят новые серверы сами, просто перебирая адреса интернета подряд. Поэтому первые подключения пришли через считаные минуты после старта.


Сразу честно про «850 успешных входов».

Это не значит, что боты угадали 850 паролей от моего сервера. Cowrie по умолчанию впускает почти любого — это сделано специально: интересно же посмотреть, что злоумышленник будет делать после входа, а не захлопнуть дверь у него перед носом. Забавная деталь: из всех попыток ловушка отклонила лишь несколько, и это были... root / root и root / 123456 — единственные пары, которые в стандартной конфигурации Cowrie зашиты как «слишком очевидные, не пускать». То есть единственные пароли, которые ловушка забраковала, — два самых банальных в мире. Так что «850 входов» читай как «дверь открылась 850 раз». А вот что именно боты пытались вводить — это уже настоящие, честные данные о том, чем ломятся в интернете прямо сейчас.

Что мы поймали

1. Один очень шумный сосед


Первое, что бросается в глаза, когда копаешь данные: статистика врёт, если смотреть на неё в лоб. Из 6 982 событий 6 387 (это 91%!) прилетели с одного-единственного IP — адреса на немецком хостинге Pfcloud UG. Один бот молотил мою ловушку без остановки и в одиночку нагнал почти весь «трафик».

2.webp

Top attacker IPs и Top countries
Именно из-за него в топе стран с огромным отрывом лидирует Германия — хотя это не «немецкие хакеры», а просто один арендованный сервер в немецком дата-центре. Вот вам наглядный урок аналитики: один крикливый источник способен перекосить всю картину. Если убрать этого героя, остаётся ~595 событий от остальных 74 адресов и вот это уже настоящая, разнообразная картина атак со всего мира: Румыния, США, Бразилия, Южная Корея, Вьетнам, Аргентина, Индонезия, Пакистан и так далее.

3.webp

Top ASN / hosting
2. Это боты, а не люди

Ни один живой хакер не сидел за клавиатурой. Как я это понял? По «представлению» клиента: когда программа подключается по SSH, она называет себя — например, SSH-2.0-OpenSSH_7.4 (обычный клиент) или SSH-2.0-PuTTY (популярная программа под Windows). А у меня в абсолютных лидерах — SSH-2.0-Go: это значит, что подключался не человек из терминала, а самописная программа на языке Go, заточенная под массовый автоматический перебор.

4.webp

SSH client versions
Подтверждает это и длительность сессий: боты заходят, делают своё дело за пару минут и отваливаются. Никаких раздумий, опечаток, пауз «а что бы тут набрать» — чистый конвейер.

5.webp

SSH fingerprints, порты, протоколы
3. Первое движение каждого бота — uname

Как только бот «входит», он почти всегда выполняет одну и ту же команду — uname -s -v -n -r -m. В моих логах она встречается 796 раз. uname— это команда, которая показывает «паспорт» системы: какое ядро, какая версия, как зовут машину, какая архитектура процессора. Зачем это боту? Чтобы снять отпечаток и понять, куда он попал: это сервер на Intel или роутер на ARM? Стоит ли тащить сюда конкретную малварь, и какую именно? Это разведка — автоматическая, мгновенная, у всех ботов одинаковая.

Любопытная деталь: часть ботов запускает не просто uname, а /bin/./uname — с таким вот странным /./ в середине. Это маленький трюк обхода: так команда исполняется в обход возможных «ловушек» и подмен, расставленных на стандартном пути. Почерк, по которому потом можно узнавать конкретное семейство зловредов.

6.webp

Top commands
4. Охота за криптой

Среди логинов, которые перебирали боты, мелькает характерная компания: sol, solv, solana, ethereum. Это не случайные слова — это охота за криптовалютными серверами. Боты ищут машины, на которых крутятся ноды Solana или Ethereum, кошельки, майнеры — всё, к чему привязаны деньги. Несколько реальных пар «логин / пароль» из моего лога:
  • solv / solv
  • ethereum / ethereum
  • sol / 123456
  • solana / 12345678
  • oracle / Passw0rd
Логика простая: если кто-то поднял крипто-ноду и поленился сменить дефолтный пароль — бот заберёт её первым.

5. Мой сервер пытались превратить в спам-шлюз

А вот это уже интереснее. Почти два десятка раз боты пытались сделать так называемый туннель (на техническом языке — direct-tcpip). Простыми словами: бот просит мой сервер от своего имени открыть соединение к другому серверу в интернете. Если бы мой сервер был настоящим и разрешал такое — он стал бы анонимным посредником, через которого можно делать грязные дела, не паля свой настоящий адрес.

Куда именно пытались пробросить туннель? На почтовые порты (25 и 2525) чужих почтовых серверов:
  • на 62.210.131.144:2525 — несколько раз, с разных IP;
  • на 77.88.21.158:25 — с целой россыпи адресов.
Порт 25 и 2525 — это SMTP, протокол отправки почты. То есть боты прощупывали, нельзя ли через мой сервер рассылать спам так, чтобы письма уходили будто бы от меня, а не от них. Мой сервер, по их задумке, должен был стать бесплатным безымянным «спам-релеем». Cowrie такие запросы, естественно, только записывает, но наружу не выпускает.

7.webp

Таблица Tunnels
6. Кульминация: семь адресов, один ботнет

А теперь — то, ради чего стоит читать про honeypot'ы. Среди десятков ботов я заметил семь разных IP-адресов из разных стран, которые вели себя подозрительно одинаково. Все семеро, едва войдя, выполняли вот такую команду (привожу с сокращением ключа):

Bash:
cd ~ && rm -rf .ssh && mkdir .ssh && echo "ssh-rsa AAAAB3NzaC1yc2EA...QTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr" >> .ssh/authorized_keys && chmod -R go= ~/.ssh && cd ~

Разберу, что тут происходит, по-человечески:
  1. rm -rf .ssh && mkdir .ssh — сносит старую папку с SSH-ключами и создаёт чистую.
  2. echo "ssh-rsa AAAA...== mdrfckr" >> .ssh/authorized_keys — дописывает в список доверенных чужой публичный ключ (ключ ботнета). Это и есть бэкдор (тайный чёрный ход): у кого есть парный закрытый ключ — тот заходит на сервер вообще без пароля, в любой момент. Файл authorized_keys — это «список тех, кому можно без стука».
  3. chmod -R go= ~/.ssh — закрывает права, чтобы никто, кроме хозяина ключа, не подсмотрел.
А перед этим те же боты выполняли подготовку — chattr -ia .ssh; lockr -ia .ssh — это снятие защитных атрибутов «только для чтения», чтобы гарантированно перезаписать чужой authorized_keys, даже если он был защищён.

Так вот, ключ во всех семи случаях был ОДИН И ТОТ ЖЕ. Семь разных адресов — из Бразилии, Вьетнама, США, Индонезии, Аргентины, Кореи (на скриншоте с городами они все идут ровно по 23 события — характерный «единый почерк») — ставили идентичный бэкдор-ключ с одной и той же подписью в конце: mdrfckr.

Семь IP:
Код:
67.52.95.38      128.201.9.152    152.32.162.42    175.118.127.138
179.40.112.10    185.226.89.235   202.145.0.61

8.webp

Top cities — видно россыпь городов по 23 события
Как доказать, что за семью адресами стоит один и тот же зловред?

Совпадение ключа уже намекало: это не семь разных угроз, а одна и та же. Но я полез глубже — за доказательством покрепче. Cowrie не только логирует команды — он ещё и перехватывает файлы, которые на него заливают. И тут случилось главное. Все семь ботов «скачивали» на мой сервер один и тот же файл (содержимое того самого бэкдора), и Cowrie посчитал его SHA256 — это как уникальный цифровой отпечаток файла: если у двух файлов совпал SHA256, это байт-в-байт один и тот же файл.

Отпечаток у всех семи закачек оказался идентичным:
Код:
a8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2

9.webp

File operations: один и тот же хеш на разных IP и путях
Причём ставили они его в authorized_keys под тем пользователем, под которым удалось войти, — /root/.ssh/, /home/kali/.ssh/, /home/ftpuser/.ssh/, /home/user1/.ssh/ и так далее. Разные двери — один и тот же ключ, один и тот же файл. Вывод напрашивается сам: это не семь независимых угроз, а семь машин, на которых крутится один и тот же зловред.

И тут — самый интересный поворот. Ключ с подписью mdrfckr — это не «личный автограф» одного хакера: он зашит прямо в малварь и одинаков на всём ботнете (ниже дам ссылки — он публично известен не первый год). А раз так, эти семь адресов почти наверняка сами жертвы: их когда-то взломали ровно тем же трюком с authorized_keys, который они теперь крутят против меня. Теперь это заражённые узлы, которые ботнет автоматически гоняет сканировать интернет в поисках новых машин — потому они и постучались в мою ловушку. Замкнутый круг: на меня охотятся те, кто сам когда-то стал добычей.

И тут начинается самое интересное

Один SHA256, известная подпись mdrfckr, узнаваемая цепочка команд — это всё индикаторы компрометации (по-английски IoC, Indicators of Compromise: характерные «приметы» конкретной угрозы, по которым её опознают, как преступника по отпечаткам пальцев). Я взял эти приметы и сопоставил их с публичными отчётами исследователей безопасности.

Совпало. И не с чем-нибудь, а с известным ботнетом — Outlaw (в разных отчётах его зовут ещё Shellbot или Dota):
  • подпись mdrfckr и сама схема бэкдора (rm -rf .ssh && … >> .ssh/authorized_keys && chmod -R go= ~/.ssh) разобраны в статье об Outlaw от Kaspersky Securelist;
  • тот же самый публичный ключ с подписью mdrfckr — буквально совпадающий с тем, что прилетел ко мне, — уже привязан к Outlaw в дневнике honeypot-активности SANS ISC за 2023 год;
  • а главное — точно этот же SHA256 недавно засветился в заметке SANS ISC: тот же файл ловили на 24 адресах в апреле 2026 года. То есть моя находка — не музейный экспонат, а кусок живой, прямо сейчас работающей кампании;
  • а корни у Outlaw уходят аж в 2018 год — впервые группу описала Trend Micro.
Вот так история и сложилась в детектив: семь странных адресов → один общий ключ → один общий отпечаток файла → пробив по приметам → ботнет, который охотится в интернете седьмой год подряд, и я случайно поймал его свежий заход своей самодельной ловушкой. Ради таких моментов это всё и затевалось.

Отдельный разговор: пароли, которыми ломятся боты

Помнишь, я говорил, что какие именно пароли перебирали боты — это честные данные? Вот топ того, что они вводили чаще всего:

МестоПарольСколько раз
112345665
212342
3123434
4132
5root26
61234567822
7password20
81234519
912345678915
10abc12312

10.webp

Top usernames, passwords, combos​

Картина — днище. Это не попытки взлома хитрым перебором, это проверка, не оставил ли кто-то совсем уж детский пароль. И ведь оставляют — иначе боты бы это не перебирали. Отдельно мелькает ubnt / ubnt (дефолтный логин-пароль оборудования Ubiquiti), Passw0rd (классика «вроде сложного, а на деле нет») и даже загадочное 345gs5662d34, которое кто-то методично вбивал семь раз подряд, — видимо, дефолтный пароль какого-то устройства (что это за железка — я, честно, не докопался).

Насколько это слабо? Считаем на пальцах

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

Путь 1 — по словарю. У атакующих есть готовые списки из реальных паролей, утёкших за годы из взломанных сайтов. Самый знаменитый — rockyou.txt, в нём 14 миллионов паролей. И 123456 в нём — буквально первая строка. password, ubnt, abc123, Passw0rd — тоже там, в начале. Перебрать 14 миллионов вариантов современный компьютер успевает за доли секунды. Поэтому для всех паролей из таблицы выше ответ один: взлом — мгновенный, ещё до того, как дело дойдёт до какого-либо «перебора». Их даже не угадывают — их просто зачитывают по списку.

Путь 2 — полный перебор (брутфорс). Это когда пароля нет ни в одном словаре и его перебирают тупо по всем комбинациям. Время = (число всех комбинаций) ÷ (скорость перебора). Число комбинаций — это (размер алфавита) в степени (длина пароля). И вот тут длина и случайность решают всё.

Чтобы цифры были предметными, возьмём реалистичный сценарий: база паролей утекла, хранилась она не лучшим образом (так, увы, часто бывает), и злоумышленник гонит перебор на одной мощной игровой видеокарте — это порядка сотни миллиардов вариантов в секунду. Смотрим:

ПарольИз чего состоитВремя полного перебора
1234566 цифрмгновенно (к тому же он первый в словаре)
password8 строчных букв~секунды (и тоже в словаре)
Passw0rd«сложный на вид», но из словаря с типовыми заменамисекунды
Xk7r4 случайных символамгновенно
Xk7r9$Q28 символов (буквы/цифры/регистр/знаки)~часы–сутки
Xk7r9$Q2mZте же + ещё 2 символа (10)~десятки лет
Xk7r9$Q2mZ#4+ ещё 2 (12)~сотни тысяч лет
Xk7r9$Q2mZ#4vB!8+ ещё 4 (16)дольше, чем существует Вселенная

(Все оценки — для случайного пароля из полного набора (~95 символов на знак) и при ~100 млрд попыток в секунду. Это иллюстрация порядка величины, а не секундомер: реальная скорость сильно зависит от того, как именно хранились хеши. Но соотношение — длина решает всё — незыблемо.)

Мораль, ради которой всё затевалось: важна не «хитрость» пароля, а его длина и случайность. Passw0rd с гордой большой буквой и нулём вместо «o» ломается за секунды, потому что эта «хитрость» давно учтена в словарях. А скучный случайный набор из 16 символов не возьмёт ни один словарь и не переберёт ни одна ферма видеокарт за время жизни Солнца. Поэтому правильный пароль — это не «придуманный посложнее», а длинный и сгенерированный случайно (лучше всего — в менеджере паролей, чтобы не держать в голове).

Что из этого следует — практические выводы

Даже мой четырёхчасовой эксперимент даёт пару очень конкретных уроков для любого, у кого есть хоть какой-то сервер:
  1. Откажись от входа по паролю — перейди на SSH-ключи. Бот может вечно перебирать пароли, но против криптографического ключа перебор бесполезен. Это самый важный пункт.
  2. Запрети вход под root напрямую. Логин root боты долбили чаще всего (165 раз) — потому что это сразу полный доступ. Заходи под обычным пользователем, повышай права уже внутри.
  3. Поставь fail2ban — это сторож, который сам банит адрес после нескольких неудачных попыток входа. Отсекает основную массу тупого перебора.
  4. Не держи дефолтные и короткие пароли там, где без них никак. ubnt/ubnt, admin/admin, 123456 — это первое, что пробуют. Длинный случайный пароль обязателен.
  5. Смена стандартного порта (22 → что-то другое) — помогает, но это не защита, а тишина в логах. Шум станет меньше, но целенаправленного сканирования это не остановит. Полагаться только на это нельзя.
Ничего из этого не новость для безопасников. Но одно дело — прочитать «используйте сложные пароли», и совсем другое — увидеть своими глазами, как живой ботнет за минуты прощупывает твою дверь на 123456.

Хочешь повторить? Это проще, чем кажется

Самое приятное: чтобы поймать свой ботнет, не нужно быть гуру. Вот общий маршрут (без полотна команд — детали есть в официальной документации, ссылка ниже):
  1. Возьми самый дешёвый VPS. Подойдёт любой за пару долларов в месяц. Это будет «жертвенный» сервер — на нём не должно быть ничего ценного.
  2. Поставь Cowrie (удобнее всего — через Docker, чтобы ловушка жила в изолированном контейнере и не пересекалась с самим сервером).
  3. Перенаправь настоящие порты 22 и 23 в ловушку. Свой реальный вход по SSH при этом перевесь на другой порт — чтобы самому заходить на сервер мимо приманки и случайно не запереть себя снаружи.
  4. Дай ей постоять несколько часов. Боты придут сами, ждать почти не придётся.
  5. (По желанию) подключи визуализацию. Я сливал логи в связку для графиков и карт — все красивые скриншоты в этой статье именно оттуда. Можно обойтись и без неё, читая логи напрямую, но с картинками нагляднее.
Официальная документация Cowrie (установка, настройка, варианты запуска): Welcome to Cowrie’s documentation! — cowrie 3.0.2.dev8+gbca2869cb documentation

Только помни про оговорку из начала статьи: ловушка должна стоять на твоём собственном сервере и только наблюдать. Это и есть граница между «исследую безопасность» и «сам нарушаю».

Вместо эпилога

Затевал я это скорее из любопытства — а вышел с собственным маленьким расследованием, которое привело к ботнету, живущему дольше, чем некоторые мои подписки. Ловушка, кстати, всё ещё работает и продолжает собирать — так что, возможно, у этой истории будет продолжение.

А вот что ловушка показала нагляднее любого учебника: за «взломами» в массе своей стоят не люди в худи, а бесконечный конвейер автоматики — скрипты, которые круглосуточно долбят все подряд адреса паролем 123456, даже не глядя, кто на той стороне. И раз противник настолько механический, защита от него до обидного простая: ключи вместо пароля, запрет на вход под root, никаких password — и ты уже не по зубам 99% этого потока.

А ловушку поднять стоит хотя бы раз. Чтобы увидеть всё это самому.

Источники

Принадлежность к ботнету Outlaw установлена сопоставлением индикаторов компрометации (SHA256, ключ с подписью mdrfckr, цепочка команд) с публичными отчётами:
  • Kaspersky Securelist — «Outlaw cybergang attacking targets worldwide» (29 апреля 2025) — Outlaw botnet detected in an incident contained by Kaspersky. Разбор ботнета Outlaw (в отчёте — «Dota»): mdrfckr-ключ и схема установки бэкдора через authorized_keys.
  • SANS ISC — «DShield Honeypot Activity for May 2023» (11 июня 2023) — https://isc.sans.edu/diary/29932. Тот же самый mdrfckr-ключ в honeypot-логах и привязка к Outlaw (группу впервые описала Trend Micro в 2018).
  • SANS ISC — «New Malware Libraries means New Signatures» (15 мая 2026) — https://isc.sans.edu/diary/32986. Тот самый SHA256 a8460f446be540410004b1a8db4083773fa46f7fe76fa84219c93daa1669f8f2, зафиксированный на 24 IP-адресах с 14 по 21 апреля 2026; в заметке он прямо назван «одним из самых частых артефактов Outlaw / Shellbot».
 
  • Огонь
Реакции: Сергей Попов
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab