
23.44 MB
Android 12L+
31
x86, x86_64, arm64-v8a, armeabi-v7a
Verified safeScanned with ClamAV, APKiD, and Quark-Engine. No threats detected.
Description
Android-приложение-honeypot, которое притворяется локальным Xray/sing-box/mihomo-подобным прокси и логирует приложения на том же устройстве, пытающиеся эксплуатировать дефолтные localhost-прокси для определения VPN exit-IP.
По мотивам PoC loop-uh/yourvpndead — исследование показало, что сторонние приложения на Android могут обнаружить активный VPN и извлечь реальный IP выходной ноды через неаутентифицированные SOCKS5/HTTP-прокси и открытые Clash REST API. HoneySocks превращает эту поверхность атаки в детектор.
⚠️ Research tool. Приложение намеренно отвечает сфабрикованными данными сканерам. Не является продуктом класса «VPN» или «security», не распространяется через Google Play. Sideload-only.
Что делает
Слушает 24 дефолтных порта на 127.0.0.1: SOCKS5 (1080, 10808-10810, 2080-2081, 3066-3067, 9050-9051, 7890-7893, 9000), HTTP CONNECT (8080, 3128), Clash REST API (9090, 19090), Xray gRPC (10085, 19085, 23456, 8001, 62789).
Эмулирует протоколы достоверно:
SOCKS5 handshake + NO_AUTH и RFC 1929 USERNAME/PASSWORD (accept-any для ловли brute-force).
HTTP CONNECT → 200 Connection Established.
Clash /configs, /connections (сфабрикованные peer-IP), /proxies, /version — структура совпадает с mihomo 1.18.
gRPC HTTP/2 preface — log-only в MVP.
Подменяет exit-IP в ответах на типовые «what's my IP» сервисы (api.ipify.org, ifconfig.me, checkip.amazonaws.com, ip-api.com/json и др.). Дефолт — 198.51.100.42 (RFC 5737 TEST-NET-2), настраивается.
Логирует в структурированный JSONL (filesDir/honeypot.jsonl) с фазами accept/greet/auth/connect/spoof-hit/close + timing-based heuristic (подозрительными помечаются IP-lookup GET, пришедшие <100ms после CONNECT).
Атрибутирует входящие соединения до UID + package name (с оговорками ниже).
Два режима работы
Listener-only (default) VPN mode (opt-in)
Только localhost-слушатели Honeypot одновременно — активный VpnService устройства
Сосуществует с твоим реальным VPN Заменяет твой реальный VPN на время работы
UID/package для сканеров недоступен (ограничение Android API) UID/package доступны — полная атрибуция
Нужно только POST_NOTIFICATIONS permission Требует пользовательского consent на VPN
Почему VPN mode обязателен для атрибуции: ConnectivityManager.getConnectionOwnerUid() возвращает реальный UID только активному VpnService; иначе -1. /proc/net/tcp на Android 10+ фильтруется per-UID ядром — fallback невозможен на unrooted. Наш TUN в VPN mode — минимальный no-op (единственный маршрут в reserved 240.0.0.0/4), реальный трафик устройства не инспектирует и не перехватывает.
Использование
Запусти приложение, дай POST_NOTIFICATIONS permission.
Выбери режим в чипах внизу:
Listener-only — если твой основной VPN важнее атрибуции.
VPN — если нужно видеть имена сканирующих приложений (и ты готов переключиться на наш VPN).
Нажми Start. В VPN mode Android покажет системный диалог — Allow.
В статус-баре появится уведомление; в VPN mode — ещё и VPN-иконка.
Все события видны в реальном времени на главном экране. На Stats — per-app агрегаты (attempts, suspicious count, первое/последнее касание, затронутые порты). В Settings — настройка spoof-IP и путь к JSONL-логу
Privacy
honeypot.jsonl пишется в app-private filesDir (mode 0700), недоступно другим приложениям без root.
allowBackup="false" — не уходит в Google-бэкапы.
В логе: UID/package сканирующих приложений, timestamps, raw bytes sigatures (обрезаны). На debug-сборках читается через adb shell run-as com.honeysocks.app.
QUERY_ALL_PACKAGES — задекларирован для резолва чужих UID; ограничен Google Play policy, но мы не распространяемся через Play.
Rate this app
Ratings & reviews
No reviews yet.