
cowrie v3.0.12
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-хоніпот среднего и высокого уровня взаимодействия, предназначенный для регистрации атак методом перебора и взаимодействия с оболочкой, выполняемого атакующим. В режиме среднего взаимодействия (оболочка) он эмулирует UNIX-систему на Python, в режиме высокого взаимодействия (прокси) он функционирует как SSH- и Telnet-прокси для наблюдения за поведением атакующего в другой системе. В режиме LLM он использует большие языковые модели для генерации динамических ответов на команды атакующего.
Cowrie <http://github.com/cowrie/cowrie/>_ поддерживается Мишелем Оостерхофом.
Документация
Документацию можно найти здесь <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-клонирование.
Для вашего первого хоніпота pip и Docker — самые простые пути.
Используйте git-клонирование для разработки или продвинутых сценариев, где вы хотите
изменить сам Cowrie. Полные инструкции для всех трёх способов приведены в
руководстве по установке <https://docs.cowrie.org/en/latest/INSTALL.html>_.
Docker
Образы Docker <https://hub.docker.com/repository/docker/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.10+
- 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_CONTENTS) для небольших файлов, которые атакующие часто просматривают через 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)
- И многие, многие другие.