Мобильные устройства на базе Android часто используют открытые порты и сервисы, которые могут стать точками входа для злоумышленников. В Termux можно собрать лёгкий, но мощный сканер уязвимостей, используя nmap для сетевого анализа и Python‑скрипты для автоматизации обработки результатов. Термин "start" в английском языке означает «начать», что подтверждается словарями merriam-webster.com и cambridge.org.
Необходимые инструменты
- Termux (Android‑эмулятор командной строки)
- Пакетный менеджер
pkgв Termux - Сканер сети
nmap - Python 3 и библиотеки
subprocess,re,json - Termux‑модуль
termux-job-scheduler(для планировщика задач)
Установка Termux и базовых пакетов
pkg update && pkg upgrade -y
pkg install python git curl -y
После установки убедитесь, что Python 3 доступен:
python3 --version
Установка Nmap
pkg install nmap -y
Проверьте версию:
nmap --version
Создание Python‑скрипта сканера
Скрипт будет выполнять сканирование диапазона IP‑адресов, извлекать открытые порты и сохранять результаты в JSON‑файл.
#!/usr/bin/env python3
import subprocess, json, re, os
# Параметры сканирования (можно изменить)
TARGET_SUBNET = '192.168.1.0/24' # подсеть вашего Wi‑Fi
OUTPUT_DIR = '/data/data/com.termux/files/home/scanner_results'
os.makedirs(OUTPUT_DIR, exist_ok=True)
def run_nmap(target):
"""Запускает nmap и возвращает вывод в виде строки."""
cmd = ['nmap', '-sV', '-oG', '-', target]
result = subprocess.run(cmd, capture_output=True, text=True)
return result.stdout
def parse_nmap(grep_output):
"""Парсит вывод nmap в формате grepable и формирует список dict."""
hosts = []
for line in grep_output.splitlines():
if line.startswith('Host:'):
parts = line.split('\t')
ip = re.search(r'Host: (\S+)', parts[0]).group(1)
ports = []
for part in parts[1:]:
if part.startswith('Ports:'):
ports_info = part[6:].split(',')
for p in ports_info:
port_data = p.split('/')
ports.append({
'port': int(port_data[0]),
'state': port_data[1],
'service': port_data[2]
})
hosts.append({'ip': ip, 'ports': ports})
return hosts
def main():
raw = run_nmap(TARGET_SUBNET)
parsed = parse_nmap(raw)
out_path = os.path.join(OUTPUT_DIR, 'scan_' + TARGET_SUBNET.replace('/', '_') + '.json')
with open(out_path, 'w') as f:
json.dump(parsed, f, indent=2)
print(f'Scan completed. Results saved to {out_path}')
if name == 'main':
main()
Сохраните скрипт, например, как android_vuln_scanner.py, и сделайте его исполняемым:
chmod +x android_vuln_scanner.py
Автоматизация сканирования
Для регулярного запуска сканера используем встроенный планировщик Termux. Сначала создаём файл задачи:
cat > $HOME/.termux/boot/start_scanner.sh <<'EOF'
#!/usr/bin/env bash
$HOME/android_vuln_scanner.py
EOF
chmod +x $HOME/.termux/boot/start_scanner.sh
Затем регистрируем задачу в termux-job-scheduler (пример – запуск каждый день в 03:00):
termux-job-scheduler --add --execute "$HOME/.termux/boot/start_scanner.sh" --interval 86400000 --exact --time 03:00
Для более гибкой периодичности можно использовать crontab (установить через pkg install cronie) и добавить запись:
0 3 * $HOME/android_vuln_scanner.py
Анализ результатов
Полученный JSON‑файл удобно просматривать через jq или импортировать в инструменты SIEM. Пример фильтрации открытых портов:
cat $OUTPUT_DIR/scan_192.168.1.0_24.json | jq '.[] | select(.ports != []) | {ip, open_ports: [.ports[] | select(.state=="open") | .port]}'
Выявленные сервисы можно сопоставить с базой CVE, используя публичные API (например, cve.circl.lu).
Безопасность и ограничения
- Запускайте сканер только в своей сети или с согласия владельца целевых устройств.
- Не храните результаты в открытом виде без шифрования – используйте
gpgдля подписи/шифрования. - Обновляйте
nmapи Python‑библиотеки, чтобы получать актуальные сигнатуры.
Заключение
С помощью Termux, Nmap и небольшого Python‑скрипта вы получаете полностью автоматизированный сканер уязвимостей Android‑устройств, который легко интегрировать в существующие процессы тестирования безопасности. При необходимости масштабировать решение, добавить веб‑интерфейс или настроить централизованную отчетность, команда RybinskLab готова предоставить профессиональные услуги по разработке, аудиту и поддержке подобных систем.