В практике инженера по безопасности часто возникает задача: оценить эксплойт‑потенциал IoT‑устройств, не переходя к эксплуатации. Такой подход помогает составлять план защиты, приоритизировать патчи и подтверждать корректность мер сегментации/обновлений. В этой статье я покажу, как использовать Termux как рабочую среду для инвентаризации и проверки поверхностной уязвимости устройств в вашей разрешенной локальной среде:
- Masscan — быстрое обнаружение открытых портов (по списку целей);
- Nmap и NSE‑скрипты — определение сервисов и проверка известных сценариев;
- Exploit‑DB — поиск публичных эксплойтов и оценка их релевантности по версиям/сигнатурам (без запуска атак).
Важно: ниже приведены методы, которые применимы для своей инфраструктуры или при наличии явного письменного разрешения. Любые действия против чужих систем могут подпадать под ответственность по законодательству РФ.
Правовые и этические рамки
Автоматизированные сканирования и тем более эксплуатация уязвимостей относятся к категории действий, которые без согласия владельца могут быть квалифицированы как неправомерные. Поэтому придерживайтесь базовых принципов:
- Только собственные устройства/сети или действуйте по письменному разрешению.
- Сканируйте только локальный сегмент, где у вас есть право администрирования (например, ваша домашняя сеть).
- Не выполняйте payload‑ы и не осуществляйте эксплуатацию, если цель — оценка риска и планирование защиты.
Если нужно безопасно работать с тестовым сегментом, можно создать локальную сеть для изоляции экспериментов через VPN/туннелирование только для сегментации, без обхода блокировок.
Подготовка Termux и среды
Начните с базовой подготовки. Ниже команды рассчитаны на современный Termux. Убедитесь, что у вас достаточно прав и свободного места.
pkg update
pkg upgrade -y
pkg install -y git wget curl proot tar
Далее установим утилиты, которые понадобятся для сетевой диагностики и сопоставления данных.
pkg install -y nmap masscanС Masscan иногда требуется повышенная привилегия/настройка сетевого стека в зависимости от устройства и версии Termux. В практических проектах чаще используют Nmap для точного определения сервисов, а Masscan — точечно и ограниченно, когда доступна нужная функциональность.
Подбор целей: список устройств и контроль охвата
Самое важное для соблюдения рамок — ограничить цели. Вместо широкого перебора подсетей используйте список IP‑адресов IoT‑устройств, которые вам принадлежат или на которые у вас есть разрешение.
Пример файла целей:
# targets.txt
192.168.1.10
192.168.1.20
192.168.1.35
Дополнительно полезно вести журнал работ (время, диапазон, команды, результаты) — это помогает воспроизводимости и отчетности.
Шаг 1. Быстрое обнаружение портов Masscan
Masscan удобен для быстрого первичного сканирования. Однако для правовой и технической корректности используйте:
- только разрешенные IP;
- ограничение по частоте;
- ограничение по портам (например, только наиболее типичные для IoT сервисы).
Сначала извлечем IP из файла и передадим их в Masscan. В Termux удобно использовать shell-расширения. Вариант с ограничением портов:
masscan -iL targets.txt -p0-1000 --rate 5000 --wait 5 -oL masscan.outСмысл параметров:
- -iL — список целей;
- -p — диапазон портов (здесь показан пример 0–1000; вы можете сузить до конкретных портов IoT);
- --rate — ограничение скорости;
- -oL — вывод в удобном формате для дальнейшего парсинга.
Далее откройте результат и выделите открытые порты для каждого хоста.
Шаг 2. Точное определение сервисов Nmap и NSE
После первичного списка портов выполняйте точное сканирование Nmap. Это снижает нагрузку на сеть и повышает качество информации (версии сервисов, заголовки, вероятные продукты).
Пример “умного” сканирования хоста(ов) с определением версий и базовыми скриптами:
nmap -sV -T3 -Pn -iL targets.txt -oN nmap_services.txtЕсли хотите подключить NSE‑скрипты для проверок, используйте осторожный набор. Например, иногда применяют:
- http‑ориентированные скрипты для определения веб‑сервисов;
- ssh‑проверки для баннеров;
- default‑проверки (в зависимости от политики безопасности);
Пример запуска HTTP‑скриптов и агрессивности (рекомендуется начинать с умеренного уровня):
nmap -sV -T3 -Pn -iL targets.txt --script 'http-title,http-server-header,http-methods' -oN nmap_http.txtДля конкретных сервисов полезно запускать скрипты по портам и протоколам. Пример для веб‑интерфейса (80/443), если вы знаете, что они открыты:
nmap -sV -T3 -Pn -iL targets.txt -p 80,443 --script 'http-enum,http-headers' -oN nmap_web.txtВажно: NSE может содержать скрипты, которые выполняют более “прикладные” проверки. Всегда начинайте с безопасных/информационных скриптов и только в разрешенной среде.
Шаг 3. Сопоставление с Exploit‑DB: оценка эксплойт‑потенциала без атаки
Идея этапа — не “запустить эксплойт”, а оценить вероятность реальной эксплуатируемости на основе:
- обнаруженной версии сервиса/продукта;
- параметров, указанных в отчетах Nmap (баннеры, заголовки);
- релевантности материалов Exploit‑DB.
Подготовьте локальную копию Exploit‑DB. В зависимости от вашей политики безопасности, допускается использование репозитория или скачивание дампа. Ниже — подход с клонированием (если он доступен в вашем окружении):
pkg install -y git
git clone https://github.com/offensive-security/exploit-database.gitДальше создадим небольшой рабочий “индекс” по типовым ключевым словам. Например, после Nmap у вас могут быть данные формата:
- product/version: “Vendor X Firmware Y”;
- web server: “XYZ HTTP/1.1”;
- комбинации “CVE/EXP” (если скрипт выводил связки).
Сделайте поиск по ключевым словам (пример поиска по vendor/version):
# Пример: вы знаете предполагаемый продукт/версию из nmap
grep -RIn --line-number --ignore-case "VendorX.*1.2" exploit-database | head -n 50
Или используйте поиск по терминам вроде “firmware”, “router”, “camera” вместе с версией, которую удалось определить.
После того как нашли потенциально релевантные записи, зафиксируйте:
- номер записи/название;
- тип уязвимости;
- условия (версии, компоненты, требования);
- уровень вероятности для вашей системы (на основе совпадения версий и признаков).
Этого достаточно для отчета о рисках и рекомендаций по патчингу, перезапуску сервисов или сегментации.
Автоматизация “сборка отчета”: связка Masscan → Nmap → вывод для Exploit‑DB
В реальных проектах полезно стандартизировать запуск и сохранять артефакты. Ниже пример “сквозного” конвейера в одном стиле именования.
# 1) быстрый порт-скан
masscan -iL targets.txt -p80,443,22,23,53,554,5683,1900 --rate 2000 --wait 3 -oL masscan.out
# 2) сервис-детекция по всем целям (начните с умеренной агрессивности)
nmap -sV -T3 -Pn -iL targets.txt -oN nmap_services.txt
# 3) веб-скрипты (если есть вероятность HTTP/HTTPS)
nmap -sV -T3 -Pn -iL targets.txt -p80,443 --script 'http-title,http-server-header,http-headers' -oN nmap_web.txt
Далее вы вручную или полуавтоматически извлекаете строки из результатов и формируете список ключевых “сигнатур” для поиска по Exploit‑DB.
Если вам нужно, я могу помочь составить шаблон отчета (таблица: IP → сервис → версия → совпадение → вывод о риске → рекомендации), но важно не превращать это в руководство по эксплуатации. В рамках оценки риска вы работаете безопасно.
Практические рекомендации по безопасности и снижению риска
- Сегментация: проводите исследования в отдельном тестовом сегменте или локальной сети, имея контроль доступа.
- Ограничение нагрузки: используйте умеренные
--rateв Masscan и-T3в Nmap на старте. - Минимизация данных: если цель — оценка риска, не собирайте избыточную “эксплуатационную” информацию.
- Документирование: фиксируйте версии/баннеры, даты и параметры сканирования.
Заключение
Termux позволяет инженеру по безопасности эффективно и в рамках закона провести оценку эксплойт‑потенциала IoT‑устройств: сначала быстро обнаружить открытые порты через Masscan, затем уточнить сервисы и версии с помощью Nmap и NSE‑скриптов, и наконец сопоставить обнаруженные признаки с публичными материалами Exploit‑DB для формирования выводов о риске — без проведения атак.
Если вы хотите, чтобы мы помогли подготовить легальный аудит вашей IoT‑инфраструктуры, оформить отчет по рискам и разработать план защиты (сегментация, обновления, hardening), обращайтесь в РыбинскЛАБ.