Что расскажет DNS-кэш твоего роутера: ищем малварь по следам

Один из самых недооценённых артефактов в домашней сети — DNS-кэш роутера. Туда попадает каждый домен, который кто-то в сети пытался открыть: телефоны, ноутбуки, умный дом, приставки. Роутер это всё запоминает, потому что кэширует ответы DNS-сервера.
И если в сети завелась малварь — она почти наверняка оставит след в этом кэше. Потому что у малвари есть одна привычка, которую сложно спрятать: она ходит на странные домены.
Почему малварь палится по DNS
Вредоносное ПО должно с кем-то общаться: получать команды (C2), вытаскивать данные, скачивать обновления. Вариантов немного:
- Жёстко зашитый IP — быстро сгорает, блокируется, легко находится.
- Доменное имя — удобно: можно менять IP за доменом, домен дешевле перевыпустить.
Но у доменов малвари есть характерные черты, которых нет у нормальных сайтов:
- Длинные бессмысленные поддомены. Классический приём — передавать данные прямо в DNS-запросе (DNS-туннелинг) или генерировать домены алгоритмом (DGA). Выглядит это как
xkcd90210-4f8a2b... .example.com— каша из случайных символов, а неwww. - Высокая энтропия. Имя домена похоже на случайный набор base32/base64-символов, а не на читаемое слово.
- Свежие или «одноразовые» домены. Зарегистрированы неделю назад, живут месяц.
- Необычные TLD и зоны там, где им не место.
- Аномальная частота запросов — биение (beaconing) каждые N минут.
Легитимные сервисы тоже бывают «странными» (CDN, трекеры, телеметрия), поэтому один признак — не приговор. Но совокупность — уже повод копать.
Как посмотреть кэш на MikroTik
Всё, что нужно, — одна команда на роутере:
/ip dns cache all print
Или в одну строку (удобнее для обработки):
/ip dns cache all print terse
Флаги: S — статическая запись, N — негативная (имя не разрешилось), пусто — обычный кэш.
Для сравнения — на Linux/маке:
# macOS
sudo dscacheutil -cachedump -entries Host
# systemd-resolved
resolvectl statistics
resolvectl query example.com
Но у роутера есть преимущество: он видит DNS-запросы всей сети, а не одного устройства. Это глобальный наблюдатель, который уже стоит у тебя дома.
Что мы нашли в своём кэше
Проверили оба наших MikroTik (дача и дом). Это не теоретические примеры — вот реальные находки из /ip dns cache all print.
1. Домен-трекер, который долбится по три раза
q7x2m9k.ru
hit.q7x2m9k.ru
Короткое бессмысленное имя, похожее на случайный набор символов, и при этом три дубля в кэше — значит, кто-то в сети реально ходил на него несколько раз. Резолвится в 203.0.113.x — подсеть, где живёт куча рекламных/трекерных доменов (WAN-облако).
Рядом с ним в кэше — rmetrics-demo.ru, eventtrace-demo.ru — та же подсеть, те же «мусорные» трекеры, тоже по 3 записи. Это не малварь в классическом смысле, но это ровно тот паттерн, который мы ищем: бессмысленный домен + повторные обращения.
2. Punycode-домен
xn----8sbhbcdy1d.xn--80aswg
Это IDN-домен (кириллица в punycode). Сам по себе punycode — нормально (легитимные сайты так кодируются), но такие имена — излюбленный приём фишинга: визуально домен может выглядеть как известный сайт, а на деле быть одноразовым мусором. Резолвится в 203.0.113.148. Проверка по whois/VirusTotal обязательна.
3. UUID в имени домена
0f4a2c9e-77b3-4d81-8e2f-a1b6c3d4e5f6-netseer-ipaddr-assoc.xz.social-cdn.net
Выглядит как «случайная строка + домен» — классический вид DNS-туннелинга. Но тут важный урок: не всё странное — зло. Это netseer — легитимный механизм для привязки рекламы к IP (механизм социальных сетей). UUID в имени — это на самом деле идентификатор. Вывод: сначала гуглим домен, потом паникуем.
4. Негативные записи корпоративного домена (самое интересное)
На втором роутере нашли вот такое:
wpad.LAB.test
_kerberos._tcp.dc._msdcs.LAB.LAB.test
_ldap._tcp.VPN._sites.dc._msdcs.LAB.LAB.test
sw-sccm-01.LAB.LAB.test
pac.LAB.LAB.test
Это негативный кэш (флаг N) — кто-то в домашней сети искал корпоративную инфраструктуру Windows: WPAD (автообнаружение прокси), Kerberos, LDAP, SCCM-сервер. Классический сценарий: человек принёс с работы ноутбук, тот пытается найти «свой» домен-контроллер и долбится в DNS роутера.
Сам по себе безобидно (записи негативные, ничего не разрешилось), но это отличная иллюстрация: DNS-кэш роутера рассказал нам, что в сети был корпоративный Windows-хостов. Для офисного админа это уже разведданные: кто-то таскает рабочие ноутбуки домой.
Кто и зачем туда ломился (разбор наших находок)
Недостаточно увидеть странный домен — интересно понять, кто в сети к нему ходил. Мы докопались до владельцев и устройств. Вот что выяснилось.
Трекеры из российского облака. q7x2m9k.ru, hit.q7x2m9k.ru, rmetrics-demo.ru, eventtrace-demo.ru — все резолвятся в подсеть 203.0.113.x, а это российское облако. Это рекламно-аналитические трекеры: их дёргают SDK в бесплатных приложениях. Кто в сети на них ходит? Судя по DHCP-арендам — телефоны на Android и умный дом (шлюзы, робот-пылесос, ESP-устройства). Это не малварь, а мусорная телеметрия: приложение молча шлёт аналитику и тянет рекламу. Три дубля в кэше = обращались несколько раз.
Мёртвый трекер. whitei-demo.net резолвился в 203.0.113.70, но сейчас домен уже не резолвится — его отключили. В кэше он просто доживает свой TTL. Такой «хвост» в кэше — полезный сигнал: домен мог быть живым трекером/редиректом, который снесли.
Безобидный punycode. xn----8sbhbcdy1d.xn--80aswg выглядит зловеще, но это кириллический IDN-домен. Просто punycode-кодировка — нормальный механизм для кириллических имён, а не признак зла. Урок: сначала декодируй и гугли, потом паникуй.
Корпоративный ноутбук дома. На втором роутере нашлись негативные записи с поддоменами wpad, _kerberos, _ldap, _msdcs, sccm. Это корпоративная инфраструктура Windows (WPAD-автообнаружение прокси, Kerberos, LDAP, SCCM-сервер). Кто-то принёс рабочий ноутбук домой, и тот упорно ищет «свой» домен-контроллер в чужой сети. Записи негативные (ничего не нашёл), но сам факт засветился в кэше. Для офисного админа это уже разведданные: сотрудник таскает корпоративную технику домой.
Вывод по нашим находкам: реальной малвари нет — это рекламные SDK из приложений + корпоративный ноутбук. Но метод работает: кэш роутера рассказал и про телеметрию приложений, и про рабочий ноутбук в домашней сети. Именно поэтому «посмотреть в кэш» — это не магия, а дешёвая разведка, доступная каждому админу.
Как проверять подозрительные находки
Нашёл странный домен — не паникуй, а прогони по чек-листу:
# 1. Что это за IP
dig +short suspicious-domain.ru A
# 2. Кто владелец
whois suspicious-domain.ru
# 3. Есть ли этот домен в репутационных базах
# VirusTotal, urlscan.io, ThreatFox — вбить имя руками
# 4. Как давно зарегистрирован (свежий домен = красный флаг)
whois suspicious-domain.ru | grep -i "created"
Легитимные «странности», которые часто пугают:
– googlevideo.com / rr3---sn-... — YouTube CDN, длинные имена — норма
– edgesuite.net, akamaized.net — Akamai CDN
– *.push.apple.com — push-уведомления Apple
– netseer...fbcdn.net — реклама Facebook
– *.3gppnetwork.org — VoWiFi/VoLTE (операторская связь)
Красные флаги:
– Домен зарегистрирован < 30 дней назад
– Имя — случайная каша, и оно повторяется в кэше
– Резолвится в подсеть, известную трекерами/спамом
– Негативные записи _kerberos, _ldap, wpad, _msdcs — в доме кто-то ищет корпоративный домен
Что делать, если нашёл реальную малварь
- Найди, кто ходил.
ip dhcp-server lease print→ сопоставь по времени/устройству. Илиip firewall connection printв момент запроса. - Заблокируй домен на роутере (DNS-уровень — проще всего):
/ip dns static add name=bad-domain.ru type=NXDOMAIN - Заблокируй IP (если домен уже разрешился):
/ip firewall address-list add list=blocked address=1.2.3.4 /ip firewall filter add chain=forward src-address-list=blocked action=drop /ip firewall filter add chain=forward dst-address-list=blocked action=drop - Почисти устройство. Это уже отдельная история — антивирус, проверка автозагрузки, смена паролей.
- Проверь сам роутер. MikroTik тоже ломают (ботнет из 13 000 MikroTik через DNS-мисконфиг SPF — свежий громкий случай 2025). Обнови RouterOS, смени пароли, выключи ненужные сервисы.
Бонус: как это автоматизировать
Раз в день снимать кэш и искать аномалии можно скриптом:
ssh admin@router "/ip dns cache all print" \
| awk 'length($0) > 60 && $0 !~ /googlevideo|edgesuite|akamaized|apple|google|microsoft/ {print}'
А для полноценного анализа — считать энтропию имён (Shannon entropy): всё, что выше порога, отправлять на проверку. На роутере это не сделать, но можно забирать кэш по SSH на сервер и анализировать там (у нас это делает агент на сервере).
Вывод
DNS-кэш роутера — это бесплатный детектор аномалий, который уже стоит в каждой домашней сети. Одна команда /ip dns cache all print — и ты видишь, куда на самом деле ходили устройства. Не всё странное — малварь (CDN и трекеры тоже «странные»), но паттерн «бессмысленный домен + повторные запросы + свежая регистрация» — это уже повод копать.
А если найдёшь в кэше _kerberos._tcp.dc._msdcs — знай: кто-то притащил рабочий ноутбук домой. И теперь ты об этом знаешь.