
Исходный код, демонстрирующий C2-сервер для сценария эксплуатации CVE-2024-23700
[cite_start]Проект, иллюстрирующий проектирование и построение сервера управления и сбора информации (Command & Control — C2 Server), используемого для сценария экспериментальной эксплуатации уязвимости повышения привилегий CVE-2024-23700[cite: 2]. [cite_start]Данный сервер выполняет роль приёмника, обработчика, классификатора и визуализатора конфиденциальных данных, похищенных с целевого Android-устройства[cite: 3].
Документация и исходный код в этом репозитории предназначены исключительно для целей обучения, анализа безопасности и тестирования в разрешённой среде. Не используйте их на устройствах, аккаунтах или данных, не входящих в рамки легального тестирования.
Проект по дисциплине: Безопасность мобильных устройств
Исполнители: Проект выполнен группой из 4 участников.
| № | Фамилия и имя | Код учащегося |
|---|---|---|
| 1 | Данг Куанг Винь | D54.B10.AT.024 |
| 2 | Нгуен Кхак Хоанг Ань | D54.B10.AT.05 |
| 3 | Чан Ван Тиен | D54.B10.AT.020 |
| 4 | Нгуен Суан Тунг | D54.B10.AT.023 |
В ходе исследования и завершения проекта по проектированию 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-сервер спроектирован как часть экспериментальной сети, принимающей поток разведывательных данных с 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
Вместо громоздкой логики сервер автоматически распознаёт и присваивает метки на основе возвращаемых блоков данных (cache), а интерфейс Frontend включает интеллектуальный словарь (MODULE_MAP и COLUMN_TRANSLATIONS) для нормализации и «локализации» результатов:
s_cache).c_cache).cal_cache).n_cache).gps_cache).Кроме того, система автоматически конвертирует исходные timestamp в понятный формат местного времени и интерпретирует числовые коды в реальные состояния (например, Call type 1 = "↙️ Входящий вызов").
Вся инфраструктура C2 управляется с помощью docker compose для обеспечения согласованности и устранения расхождений окружения. Структура запускает 2 основных сервиса:
data.json в область /app/data.json внутри контейнера. Это обеспечивает постоянное хранение разведывательных данных даже при удалении или перезапуске контейнера. Сервис применяет политику restart: always./api/ автоматически перенаправляются (proxy_pass) на Backend для усиления безопасности. Этот контейнер запускается строго после Backend (depends_on) во избежание ошибок потери соединения на старте.data.json имеет соответствующие права на чтение и запись на физическом сервере.| Компонент | Описание | Путь |
|---|
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 |