
Исходный код, демонстрирующий C2-сервер для сценария эксплуатации CVE-2024-23700
[cite_start]Проект, иллюстрирующий проектирование и создание сервера управления и сбора информации (Command & Control — C2 Server), предназначенного для сценария экспериментальной эксплуатации уязвимости повышения привилегий CVE-2024-23700[cite: 2]. [cite_start]Этот сервер выполняет роль приёмника, обработчика, классификатора и средства отображения конфиденциальных данных, похищенных с целевого Android-устройства[cite: 3].
Документация и исходный код в этом репозитории предназначены исключительно для целей обучения, анализа безопасности и тестирования в разрешённой среде. Не используйте их на устройствах, учётных записях или данных, не входящих в рамки легального тестирования.
Проект относится к дисциплине: Безопасность мобильных устройств
Исполнители: Проект выполнен группой из 4 участников.
В процессе исследования и завершения проекта по разработке C2 Server группа выполняла следующие задачи:
data.json для оптимизации под быстрый и лёгкий PoC.Система C2 Server использует модель «клиент-сервер», в которой вредоносное Android-приложение (PoC) выступает в роли клиента, непрерывно отправляющего данные. Архитектура C2 разделена на два независимо обрабатывающих компонента для обеспечения высокой скорости и гибкости.
Основной поток работы C2 Server:
/ спроектирована с механизмом двойной обработки. Если доступ осуществляется методом GET (сканирование браузером), сервер возвращает поддельную ошибку 404 для уклонения. Если получен метод POST с JSON-форматом от вредоносного кода, сервер принимает данные и извлекает идентификатор устройства.s_cache, gps_cache).data.json./api/data с целью чтения базы данных.device_id), выполняет глубокое сканирование структуры для извлечения параметров оборудования (RAM, заряд батареи, ОС) и наглядно отображает их на радаре.Код уязвимости: CVE-2024-23700
Уровень серьёзности Android: Critical
Связанный компонент: Android Companion Device Manager
Справочный патч: Android Wear Security Bulletin 2024-05-01
Этот C2 Server спроектирован как часть экспериментальной сети, принимающей поток разведывательных данных с Android-устройств, успешно скомпрометированных через указанную уязвимость.
CVE-2024-23700-C2-Server/
├── backend/
│ ├── app.py - Инициализация API Endpoint, обработка маскировки и классификация JSON
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── pages/
│ │ │ ├── Dashboard.jsx - Экран радара общего обзора устройств
│ │ │ └── DeviceDetails.jsx - Диалог углублённого анализа payload
│ │ ├── App.jsx
│ │ └── App.css
│ ├── package.json
│ └── nginx.conf - Настройка Reverse Proxy для frontend
├── data.json - Плоская файловая БД для хранения записей (монтируется как volume)
├── docker-compose.yml - Управление контейнерами и внутренней сетью
├── .gitignore
└── README.md
| Компонент | Описание | Путь |
|---|---|---|
Backend Flask (app.py) | Центр управления (C2), прослушивание, классификация и хранение данных в data.json. | backend/app.py |
| Dashboard Radar | Центральная панель управления, группировка целей и отображение параметров HW/OS, количества payload. | frontend/src/pages/Dashboard.jsx |
| Device Details Modal | Интерфейс детального анализа данных жертвы (Modal XL) с системой Accordion и динамическими таблицами данных. | frontend/src/pages/DeviceDetails.jsx |
| Файл конфигурации Docker | Координация развёртывания Backend (порт 5000) и Nginx Frontend (порт 80) через Reverse Proxy. | docker-compose.yml |
Вместо громоздкой логики сервер автоматически распознаёт и присваивает метки на основе возвращаемых блоков данных (cache), а интерфейс Frontend интегрирует умный словарь (MODULE_MAP и COLUMN_TRANSLATIONS) для нормализации и «локализации» результатов:
s_cache).c_cache).cal_cache).n_cache).gps_cache).Кроме того, система автоматически преобразует исходные метки времени (timestamp) в удобочитаемый формат локального времени и интерпретирует числовые коды в реальные состояния (например, тип вызова 1 = «↙️ Входящий»).
Вся инфраструктура C2 эксплуатируется с помощью docker compose для обеспечения согласованности и устранения расхождений среды. Структура запускает 2 основных сервиса:
data.json в область памяти /app/data.json внутри контейнера. Это обеспечивает постоянное хранение разведывательных данных даже при удалении или перезапуске контейнера. Для сервиса применяется политика restart: always./api/ автоматически перенаправляются (proxy_pass) на Backend для повышения безопасности. Этот контейнер запускается строго после Backend (depends_on) во избежание ошибок потери соединения на начальном этапе.data.json заданы соответствующие права на чтение и запись на физическом сервере.