
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.cfgetc/userdb.txt- учётные данные для доступа к ханипотуsrc/cowrie/data/fs.pickle- поддельная файловая система; содержит как метаданные (путь, uid, gid, размер, режим), так и встроенное содержимое (A_CONTENTSbytes) для небольших файлов, которые атакующие часто выводят через cat. Редактируется черезfsctl; пересобирается черезmake build-fs-pickle.src/cowrie/data/txtcmds/- вывод для простых поддельных командvar/log/cowrie/cowrie.json- аудиторский вывод в формате JSONvar/log/cowrie/cowrie.log- вывод журнала/отладкиvar/lib/cowrie/tty/- журналы сессий, воспроизводимые с помощью утилитыplaylog.var/lib/cowrie/downloads/- файлы, переданные от атакующего в ханипот, хранятся здесь
Команды
cowrie- запуск, остановка и перезапуск Cowriefsctl- изменение поддельной файловой системы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)
- И многие многие другие.