Мобильные устройства давно перестали быть лишь средствами связи – они могут стать полноценными инструментами для администрирования и аудита ИТ‑инфраструктуры. Termux – это терминал Linux для Android, который позволяет запускать привычные утилиты, такие как nmap и openvas. В этой статье мы рассмотрим, как собрать полностью автоматизированный процесс сканирования уязвимостей, используя возможности Termux.
Почему именно Termux?
- Полный набор пакетов из репозитория
aptи возможность установки изpipиnpm. - Поддержка
systemd-подобных сервисов черезtermux-servicesи планировщикаcron. - Работа в полностью изолированной среде без необходимости root‑прав.
- Мобильность: сканировать сеть можно прямо с телефона, находясь в офисе, в дата‑центре или в полевых условиях.
Установка и базовая настройка Termux
Для начала установим Termux из Google Play или F-Droid, затем обновим репозитории и установим необходимые пакеты.
pkg update && pkg upgrade -y
pkg install -y nmap python git curl termux-services cronie
pip install --upgrade pip
pip install python-nmap openvas_lib
После установки убедимся, что сервис cron запущен:
sv-enable crond
sv start crond
Автоматическое сканирование с Nmap
Создадим скрипт scan_nmap.py, который будет выполнять быстрый аудит сети и сохранять результаты в формате XML.
#!/usr/bin/env python3
import nmap, datetime, os
def run_scan(targets, output_dir="/data/data/com.termux/files/home/scans"):
if not os.path.isdir(output_dir):
os.makedirs(output_dir)
nm = nmap.PortScanner()
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
out_file = os.path.join(output_dir, f"nmap_{timestamp}.xml")
# Пример сканирования всех TCP‑портов с агрессивным скриптовым движком
args = "-sS -p- -T4 -A --script=vuln"
nm.scan(hosts=targets, arguments=args)
with open(out_file, "w") as f:
f.write(nm.get_nmap_last_output())
print(f"[+] Scan saved to {out_file}")
if name == "main":
# Список целей может быть как отдельный IP, так и CIDR‑подсеть
targets = "192.168.1.0/24"
run_scan(targets)
Сделаем скрипт исполняемым и протестируем:
chmod +x scan_nmap.py
./scan_nmap.py
Интеграция OpenVAS через скрипты
OpenVAS (теперь Greenbone Vulnerability Management) предоставляет мощный движок сканирования уязвимостей. В Termux мы будем использовать утилиту omp (OpenVAS Management Protocol) для автоматизации.
Сначала инициализируем базу данных OpenVAS:
greenbone-nvt-sync
openvas-setup
Далее создаём Bash‑скрипт scan_openvas.sh:
#!/usr/bin/env bash
# Параметры подключения к OpenVAS
OMP="omp --host 127.0.0.1 --port 9390 --username admin --password secret"
TARGET="$1" # IP или подсеть, передаётся в качестве аргумента
PROFILE="Full and fast"
# 1. Создаём цель, если её ещё нет
TARGET_ID=$($OMP -X "<create_target><name>$TARGET</name><hosts>$TARGET</hosts></create_target>" | grep -oP '(?<=)[^<]+')
# 2. Создаём задачу сканирования
TASK_ID=$($OMP -X "<create_task><name>Scan_$TARGET</name><comment>Automated scan</comment><target id='$TARGET_ID'/><config id='daba56c8-73ec-11df-a475-002264764cea'/></create_task>" | grep -oP '(?<=)[^<]+')
# 3. Запускаем сканирование
$OMP -X "<start_task task_id='$TASK_ID'/>"
# 4. Ожидаем завершения (упрощённый вариант – 10 минут)
sleep 600
# 5. Получаем отчёт в формате PDF
REPORT=$($OMP -X "<get_report report_id='$TASK_ID' format_id='c40208e3-0c27-11e5-80f6-28d24461215b'/>" > "openvas_report_${TARGET}_$(date +%Y%m%d_%H%M%S).pdf")
echo "[+] OpenVAS report saved"
Сделаем скрипт исполняемым:
chmod +x scan_openvas.sh
Тестовый запуск:
./scan_openvas.sh 192.168.1.10
Организация расписания сканирований
Для регулярных проверок удобно использовать cron. Добавим два задания: ежедневный быстрый Nmap‑скан и еженедельный глубокий OpenVAS‑скан.
# Откроем crontab для текущего пользователя
crontab -e
# Добавьте строки в конец файла
# Каждый день в 02:00 – быстрый Nmap скан
0 2 /data/data/com.termux/files/home/scan_nmap.py >> /data/data/com.termux/files/home/logs/nmap_$(date +\%Y\%m\%d).log 2>&1
# Каждую субботу в 04:00 – полный OpenVAS скан целой подсети
0 4 6 /data/data/com.termux/files/home/scan_openvas.sh 192.168.1.0/24 >> /data/data/com.termux/files/home/logs/openvas_$(date +\%Y\%m\%d).log 2>&1
Не забудьте создать каталог logs:
mkdir -p ~/logs
Обработка результатов и формирование отчётов
Для упрощения анализа можно собрать результаты в единую таблицу CSV, используя небольшие Python‑скрипты.
#!/usr/bin/env python3
import xml.etree.ElementTree as ET, glob, csv, os
output = []
for file in glob.glob('scans/nmap_.xml'):
tree = ET.parse(file)
root = tree.getroot()
for host in root.findall('host'):
ip = host.find('address').attrib['addr']
for port in host.find('ports').findall('port'):
state = port.find('state').attrib['state']
service = port.find('service').attrib.get('name', 'unknown')
output.append([ip, port.attrib['portid'], service, state, os.path.basename(file)])
with open('nmap_summary.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['IP', 'Port', 'Service', 'State', 'SourceFile'])
writer.writerows(output)
print('[+] CSV report generated: nmap_summary.csv')
Запускать такой скрипт можно после каждого сканирования, добавив соответствующую строку в cron либо в конец Bash‑скриптов.
Безопасность и лучшие практики
- Храните учётные данные OpenVAS в защищённом файле. Можно использовать
termux-setup-storageи задать права600. - Ограничьте доступ к устройству. Включите PIN/пароль и используйте
termux-fingerprintдля разблокировки скриптов. - Не сканируйте сети без разрешения. Автоматические сканирования могут быть восприняты как атака.
- Регулярно обновляйте базы Nmap и OpenVAS через
nmap --script-updatedbиgreenbone-nvt-sync.
Заключение
Termux предоставляет мощную и гибкую среду для автоматизации аудита ИТ‑инфраструктуры прямо с мобильного устройства. С помощью скриптов Nmap и OpenVAS, планировщика cron и небольших обработчиков результатов вы получаете полностью автономный процесс обнаружения уязвимостей, который можно адаптировать под любые требования.
Если вам нужен профессиональный аудит, настройка CI/CD‑pipelines для безопасности или поддержка постоянного мониторинга сети, обратитесь в RybinskLab. Наши эксперты помогут интегрировать автоматизированные сканеры, настроить централизованные отчёты и обеспечить соответствие самым высоким стандартам информационной безопасности.