Назад к обновлениям
New releaseOct 2, 2026

cowrie v3.1.0

Cowrie SSH/Telnet ловушка https://docs.cowrie.org/

Поделиться

.. SPDX-FileCopyrightText: 2014 Upi Tamminen [email protected] .. SPDX-FileCopyrightText: 2014-2025 Michel Oosterhof [email protected] .. .. SPDX-License-Identifier: BSD-3-Clause

Cowrie

Что такое Cowrie


Cowrie — это SSH- и Telnet-ханипот со средним и высоким уровнем взаимодействия, предназначенный для регистрации атак методом перебора и взаимодействия с оболочкой, выполняемого атакующим. В режиме среднего взаимодействия (shell) он эмулирует систему UNIX на Python, в режиме высокого взаимодействия (proxy) он функционирует как SSH- и telnet-прокси для наблюдения за поведением атакующего в другой системе. В режиме LLM он использует большие языковые модели для генерации динамических ответов на команды атакующего.

Cowrie <http://github.com/cowrie/cowrie/>_ поддерживается Michel Oosterhof.

Документация


Документацию можно найти здесь <https://docs.cowrie.org/en/latest/index.html>_.

Slack


Вы можете присоединиться к сообществу Cowrie в следующем рабочем пространстве Slack <https://www.cowrie.org/slack/>_.

Возможности


  • Запуск в виде эмулируемой оболочки (по умолчанию):

    • Поддельная файловая система с возможностью добавления/удаления файлов. Включена полная поддельная файловая система, напоминающая установку Debian 5.0
    • Возможность добавления поддельного содержимого файлов, чтобы атакующий мог выполнить cat для таких файлов, как /etc/passwd. Включено только минимальное содержимое файлов
    • Cowrie сохраняет файлы, загруженные с помощью wget/curl или загруженные через SFTP и scp, для последующего анализа
  • Или проксирование SSH и telnet в другую систему

    • Работа в качестве чистого telnet- и ssh-прокси с мониторингом
    • Или позволить Cowrie управлять пулом эмулируемых серверов QEMU, чтобы предоставить системы для входа
  • Или использовать бэкенд LLM (экспериментально):

    • Использование больших языковых моделей (например, OpenAI GPT) для динамической генерации реалистичных ответов оболочки
    • Обрабатывает любую команду без предопределённых ответов
    • Поддерживает контекст разговора для согласованных сессий

Для обоих режимов:

  • Журналы сессий хранятся в формате, совместимом с User Mode Linux <http://user-mode-linux.sourceforge.net/>_, для удобного воспроизведения с помощью утилиты playlog.
  • Поддержка SFTP и SCP для загрузки файлов
  • Поддержка команд SSH exec
  • Регистрация попыток прямых TCP-соединений (ssh-проксирование)
  • Перенаправление SMTP-соединений в SMTP-ханипот (например, mailoney <https://github.com/awhitehatter/mailoney>_)
  • JSON-логирование для удобной обработки в решениях управления журналами

Установка


Существует три способа установки Cowrie: pip, Docker и git checkout. Для первого ханипота pip и Docker — самые простые пути. Используйте git checkout для разработки или сложных сценариев, когда вы хотите изменить саму Cowrie. Полные инструкции для всех трёх способов приведены в руководстве по установке <https://docs.cowrie.org/en/latest/INSTALL.html>_.

Docker


Образы Docker <https://hub.docker.com/r/cowrie/cowrie>_ доступны на Docker Hub.

  • Чтобы быстро начать и попробовать Cowrie, выполните::

    $ docker run -p 2222:2222 cowrie/cowrie:latest $ ssh -p 2222 root@localhost

  • Чтобы просто собрать локально, выполните::

    $ make docker-build

PyPI


Cowrie доступна на PyPI <https://pypi.org/project/cowrie>_. Чтобы установить её в виртуальное окружение и запустить::

$ mkdir my-honeypot && cd my-honeypot
$ python3 -m venv cowrie-env
$ source cowrie-env/bin/activate
(cowrie-env) $ pip install cowrie
(cowrie-env) $ cowrie init
(cowrie-env) $ cowrie start

cowrie init записывает файл конфигурации etc/cowrie.cfg в текущий каталог; журналы и загрузки размещаются в var/.

Требования


Программное обеспечение, необходимое для локального запуска:

  • Python 3.11+
  • python-virtualenv

Интересные файлы:


  • etc/cowrie.cfg - файл конфигурации Cowrie (принадлежит оператору). Создаётся командой cowrie init.
  • src/cowrie/data/etc/cowrie.cfg.dist <https://github.com/cowrie/cowrie/blob/main/src/cowrie/data/etc/cowrie.cfg.dist>_ - встроенные значения по умолчанию, вместо этого редактируйте ваш etc/cowrie.cfg
  • etc/userdb.txt - учётные данные для доступа к ханипоту
  • src/cowrie/data/fs.pickle - поддельная файловая система; содержит как метаданные (путь, uid, gid, размер, режим), так и встроенное содержимое (A_CONTENTS bytes) для небольших файлов, которые атакующие часто выводят через cat. Редактируется через fsctl; пересобирается через make build-fs-pickle.
  • src/cowrie/data/txtcmds/ - вывод для простых поддельных команд
  • var/log/cowrie/cowrie.json - аудиторский вывод в формате JSON
  • var/log/cowrie/cowrie.log - вывод журнала/отладки
  • var/lib/cowrie/tty/ - журналы сессий, воспроизводимые с помощью утилиты playlog.
  • var/lib/cowrie/downloads/ - файлы, переданные от атакующего в ханипот, хранятся здесь

Команды


  • cowrie - запуск, остановка и перезапуск Cowrie
  • fsctl - изменение поддельной файловой системы
  • createfs - создание собственной поддельной файловой системы
  • playlog - утилита для воспроизведения журналов сессий
  • asciinema - преобразование журналов Cowrie в файлы asciinema

Участники


Многие люди внесли свой вклад в Cowrie за эти годы. Особая благодарность:

  • Upi Tamminen (desaster) за всю его работу по разработке Kippo, на основе которого была создана Cowrie
  • Dave Germiquet (davegermiquet) за поддержку TFTP, модульные тесты, новую обработку процессов
  • Olivier Bilodeau (obilodeau) за поддержку Telnet
  • Ivan Korolev (fe7ch) за множество улучшений за эти годы.
  • Florian Pelgrim (craneworks) за его работу по очистке кода и Docker.
  • Guilherme Borges (sgtpepperpt) за SSH- и telnet-прокси (GSoC 2019)
  • И многие многие другие.

Категории