Как всё началось

Решил поднять SSH honeypot (использовал Cowrie), чтобы посмотреть, кто ломится в мои открытые порты. Буквально через несколько часов в логах появилось знакомое: бесконечные попытки входа под root, admin, test, и т.п. Сюрпризом стали команды, которые выполнялись после удачного входа.

Сценарий почти всегда один и тот же:

cd ~ && rm -rf .ssh && mkdir .ssh && echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr">>.ssh/authorized_keys && chmod -R go= ~/.ssh && cd ~

Тот самый ключ с комментарием mdrfckr. И да, один и тот же ключ с, буквально, сотен уникальных IP.

Что это за ключ такой?

Первым делом проверил fingerprint:

SHA256:MkYY9qiVsFGBC5WkjoClCkwEFW5iSjcGQF7m4n4H7Cw

Оказалось, ключ - не просто случайность. Он засвечен в ряде отчётов по безопасности начиная с 2018 года. Постоянно используется в автоматизированных атаках:

  • Брутфорс -> добавление публичного ключа для бэкдора

  • Иногда установка криптомайнера (чаще всего XMRig)

  • IRC-шеллботы вроде Shellbot, Dota3, Outlaw

  • Обнаружен в системах Linux, часто на VPS и домашнем железе

Коммент mdrfckr, похоже, служит как маркер принадлежности к конкретной группе или тулкиту. Иногда просто как "подпись" скрипта.

Поведение атакующего

После добавления ключа:

  • Иногда шлётся wget или curl на бинарник

  • Иногда просто молчание (вероятно, доступ сохраняется на потом)

  • Логика стандартная: установить постоянный доступ и ждать команды

Упрощённый сценарий действий:

  1. Удаление .ssh, чтобы убрать предыдущие ключи

  2. Создание новой папки .ssh

  3. Добавление публичного ключа

  4. Закрытие доступа для остальных (chmod -R go= ~/.ssh)

Откуда IP?

Из собранных 50+ IP:

  • Преобладают DigitalOcean, Hetzner, OVH, Alibaba Cloud

  • География: Европа, Азия, Южная Америка

  • Подключения происходят с интервалом в секунды/минуты

Больше всего IP-адресов оказалось из Китая - что, в общем-то, неудивительно: на страну приходится огромная доля заражённых хостов, открытых прокси и активно используемых VPS с минимальной модерацией. Китайские IP уже давно лидируют по числу SSH-сканеров и брутфорсеров в большинстве публичных отчётов по кибербезопасности.

Это говорит о массовой бот-сети, где на каждый IP отрабатывает один и тот же скрипт. Очень похоже на заранее заражённые хосты, действующие по одной схеме.

Что делать, если вы это нашли

  1. Заблокировать доступ по паролю (PasswordAuthentication no)

  2. Включить fail2ban или аналог

  3. Ограничить доступ по IP, если это возможно

  4. Мониторить изменения в .ssh/authorized_keys

Итог

Ключ mdrfckr - явный индикатор активности ботнета, распространяющегося через SSH. Используется с 2018 года, и по сей день остаётся в арсенале. Honeypot отлично сработал: один вечер, и у меня уже была своя коллекция IOC и список IP для блеклиста.

Если у вас открыт SSH наружу - рекомендую хотя бы раз заглянуть в свои логи. Возможно, mdrfckr уже там.


Комментарии (4)


  1. JBFW
    20.07.2025 15:08

    Как-то не продуманно, если влез подбором пароля - это ещё не значит что хозяин туда не по ключу ходит, мог просто забыть закрыть. Снесут .ssh - сразу вспомнит, зайдет по паролю же и исправит.

    А сам скрипт пароль не отключает..


    1. s4q Автор
      20.07.2025 15:08

      Видимо, упор ботоводы делали на массовость, а не на устойчивость доступа: такой скрипт проще и быстрее выполнить, чем сохранять все пароли, которые были получены подбором. Да и кто знает, может пароль поменяют?


      1. aborouhin
        20.07.2025 15:08

        Так нет, речь про то, чтобы не затирать существующий authorized_keys, а дописывать свой ключик в конец. Просто убрав "rm -rf ~/.ssh", без всяких сложностей.


    1. aborouhin
      20.07.2025 15:08

      Скорее всего, по изначальному замыслу создателя бота ключик и дописывался в конец authorized_keys (иначе зачем там ">>", а не ">", если мы только что всё потёрли). А потом очередной кулхацкер столкнулся с какой-нибудь нетипичной ситуацией (разрешения хитрые, опции ssh и т.п.) и решил её топорным добавлением "rm -rf ~/.ssh".