We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Создание собственного honeypot‑модуля в Termux с использованием Cowrie и анализа логов в реальном времени

Пошаговое руководство по развертыванию Cowrie‑honeypot в Termux, написанию кастомного модуля и мониторингу логов в реальном времени на Android‑устройстве.

В условиях роста мобильных угроз всё больше специалистов используют Android‑устройства как легковесные лаборатории для тестирования и мониторинга атак. Termux предоставляет полноценный Linux‑окружение, а Cowrie – проверенный SSH/ Telnet‑honeypot с поддержкой имитации файловой системы и записи всех команд.

В этой статье мы рассмотрим, как запустить Cowrie в Termux, добавить собственный модуль‑обработчик событий и организовать анализ логов в реальном времени. Для начала разберём, как правильно [dictionary.com] «начать» работу с Termux.

Установка Termux и базовых пакетов

Сначала установите Termux из Google Play или F-Droid, затем обновите репозитории:

apt update && apt upgrade -y

Установим необходимые утилиты:

apt install -y git python python-pip python-virtualenv curl wget tar

Создание виртуального окружения Python

Для изоляции зависимостей Cowrie рекомендуется использовать virtualenv:

mkdir -p ~/cowrie && cd ~/cowrie
python -m venv venv
source venv/bin/activate

После активации окружения обновим pip:

pip install --upgrade pip setuptools

Установка Cowrie

Клонируем репозиторий Cowrie и установим зависимости:

git clone https://github.com/cowrie/cowrie.git .
pip install -r requirements.txt

Инициализируем конфигурацию:

cp etc/cowrie.cfg.dist etc/cowrie.cfg
cp etc/userdb.example etc/userdb

Отредактируйте etc/cowrie.cfg, задав нужные порты (по умолчанию 2222 для SSH, 2223 для Telnet) и включив режим ttylog для записи сессий.

Разработка собственного honeypot‑модуля

Cowrie поддерживает плагины на Python, которые реагируют на события (подключения, ввод команд, загрузку файлов). Создадим простой модуль, который будет фиксировать любые попытки выполнить sudo и отправлять уведомление в Telegram.

# файл: cowrie/extra/custom_sudo_notify.py
import json
from cowrie.core import log

def on_command(session, command, **kwargs):
    if command.strip().startswith('sudo'):
        log.msg(eventid='cowrie.custom.sudo',
                format='User %(username)s attempted sudo: %(command)s',
                username=session.username,
                command=command)
        # отправка в Telegram (пример, токен и chat_id задаются в env)
        import os, requests
        token = os.getenv('TG_TOKEN')
        chat_id = os.getenv('TG_CHAT_ID')
        if token and chat_id:
            msg = f"⚠️ {session.username} tried sudo: {command}"
            requests.get(f"https://api.telegram.org/bot{token}/sendMessage",
                         params={'chat_id': chat_id, 'text': msg})

# регистрируем хук
def start():
    from cowrie.core.hooks import Hook
    Hook.register('command', on_command)

Подключите модуль в конфигурации:

# в etc/cowrie.cfg добавить строку
[honeypot]
plugins = custom_sudo_notify

Не забудьте экспортировать переменные окружения TG_TOKEN и TG_CHAT_ID перед запуском.

Анализ логов в реальном времени

Логи Cowrie находятся в ~/.cowrie/log/. Для мгновенного наблюдения удобно использовать комбинацию tail -F и jq (если установлен) для парсинга JSON‑записей.

# установка jq
apt install -y jq
# наблюдение за событиями sudo
tail -F ~/.cowrie/log/cowrie.json | jq 'select(.eventid=="cowrie.custom.sudo")'

Если требуется более гибкая система алертов, можно написать небольшой скрипт на Python, который будет читать файл через watchdog и выполнять произвольные действия (отправка e‑mail, запись в базу).

# файл: log_watcher.py
import time, json, os
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

class LogHandler(FileSystemEventHandler):
    def init(self, path):
        self.path = path
        self.file = open(path, 'r')
        # перемещаем указатель в конец файла
        self.file.seek(0, os.SEEK_END)
    def on_modified(self, event):
        if event.src_path == self.path:
            for line in self.file.readlines():
                try:
                    data = json.loads(line)
                    if data.get('eventid') == 'cowrie.custom.sudo':
                        print('ALERT:', data)
                        # здесь можно добавить отправку в Slack, Telegram и т.п.
                except json.JSONDecodeError:
                    continue

if name == 'main':
    log_path = os.path.expanduser('~/.cowrie/log/cowrie.json')
    handler = LogHandler(log_path)
    observer = Observer()
    observer.schedule(handler, path=os.path.dirname(log_path), recursive=False)
    observer.start()
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()

Запускать скрипт удобно в фоне:

nohup python log_watcher.py &

Автозапуск при загрузке устройства

Termux предоставляет пакет termux-services и termux-boot для автозапуска скриптов. Установим их:

apt install -y termux-services termux-boot

Создадим скрипт ~/.termux/boot/start_cowrie.sh:

#!/data/data/com.termux/files/usr/bin/bash
source ~/cowrie/venv/bin/activate
cd ~/cowrie
nohup ./bin/cowrie start > /dev/null 2>&1 &
nohup python ~/cowrie/log_watcher.py > /dev/null 2>&1 &

Сделаем его исполняемым:

chmod +x ~/.termux/boot/start_cowrie.sh

После перезагрузки Termux автоматически запустит Cowrie и наш лог‑ворчер.

Безопасность и ограничения

  • Не открывайте стандартные порты 22/23 – используйте нестандартные, чтобы не конфликтовать с реальными сервисами.
  • Ограничьте доступ к файлам ~/.cowrie командой chmod 600 для конфиденциальных ключей.
  • Следите за потреблением ресурсов: Cowrie может генерировать большие файлы логов, поэтому регулярно архивируйте их (tar -czf logs_$(date +%F).tar.gz ~/.cowrie/log/).

Заключение

Развёртывание собственного honeypot‑модуля в Termux открывает широкие возможности для мобильного анализа атак, обучения персонала и быстрого реагирования на угрозы. Мы показали, как установить Cowrie, написать кастомный плагин, организовать потоковый анализ логов и обеспечить автозапуск на Android‑устройстве.

Если вам нужен профессиональный аудит безопасности, настройка сложных honeypot‑сетей или интеграция с SIEM‑решениями, команда RybinskLab готова помочь. Мы предоставляем услуги по разработке кастомных модулей, настройке мониторинга в реальном времени и обучению персонала. Свяжитесь с нами для получения консультации и начала проекта.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект