We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Автоматизированный фреймворк для проведения penetration‑тестов Android‑устройств в Termux с использованием Metasploit, Nmap и custom‑скриптов на Python

Профессиональный обзор подхода к построению автоматизированного фреймворка в Termux для легальных pentest‑работ по Android: подготовка окружения, структура модулей, сценарии сканирования и валидации, интеграция Metasploit/Nmap и Python‑скриптов.

Penetration‑testing Android‑устройств в полевых условиях часто упирается не в «наличие инструментов», а в повторяемость, управляемость и контроль результатов. В этом материале мы разберём, как выстроить автоматизированный фреймворк в Termux для легальных работ по вашим системам или при наличии письменного разрешения. Фреймворк помогает: подготавливать окружение, выполнять контролируемые сканирования (например, с Nmap), использовать модули Metasploit в рамках политики тестирования и запускать custom‑скрипты на Python для сбора/нормализации данных и валидации гипотез.

Важно: ниже приведён ориентированный на инженерную организацию подход. Любая активность должна соответствовать правилам заказчика, требованиям закона РФ и утверждённой методике работ. Мы не рассматриваем обход ограничений или несанкционированное воздействие.

Правовые и этические рамки

Для безопасной и юридически корректной работы:

  • получите явное разрешение на тестирование конкретных устройств/сетей;
  • работайте только в пределах согласованного «scope» (IP‑диапазон, порты, сервисы);
  • зафиксируйте правила прекращения теста при обнаружении критичных эффектов;
  • храните результаты с контролем доступа и конфиденциальности.

Технически фреймворк можно использовать в лабораторных сетях и на стендах заказчика. При необходимости используйте VPN исключительно для создания локальной сети между вашими системами и тестовым контуром (не для обхода блокировок).

Требования к окружению Termux

Для устойчивого запуска важно заранее подготовить базовые компоненты: пакетный менеджер Termux, сетевые утилиты, Python, а также поддержку инструментов Metasploit и Nmap. На практике состав будет зависеть от версии Android, доступности бинарников и ограничений среды.

Начать логично с обновления репозиториев и установки набора базовых пакетов:

pkg update && pkg upgrade -y
pkg install -y python pip git curl wget clang make ncurses-utils net-tools nmap openssh

Если требуется больше зависимостей (например, для сборки модулей), их добавляют точечно под вашу задачу. Рекомендуется фиксировать список пакетов в конфигурации проекта.

Концепция фреймворка: модули, конфигурация, отчётность

Хороший фреймворк в Termux должен иметь три свойства: повторяемость, наблюдаемость и контроль расхода времени/рисков.

Предлагаемая архитектура:

  • scanner — модуль сетевого обнаружения (например, Nmap) и сохранение результатов в единый формат;
  • exploitation_driver — модуль запуска задач Metasploit в рамках заранее заданных сценариев;
  • python_enrichment — custom‑скрипты на Python для нормализации, сопоставления сервисов и подготовки «планов» дальнейших шагов;
  • policy_guard — слой проверки: scope, таймауты, rate‑limit, запреты на действия вне политики;
  • reporting — агрегатор отчётов (результаты сканирования, таймлайны, артефакты).

Ключевой принцип: всё управление делайте через конфигурационные файлы (YAML/JSON или shell‑переменные), а не «вшивайте» IP/порты в код.

Структура проекта (пример)

mkdir -p ~/pentestfw/{scanner,metasploit_driver,python_enrichment,reporting,policy_guard,artifacts,configs,logs}
touch ~/pentestfw/configs/target.json
touch ~/pentestfw/configs/policy.json
touch ~/pentestfw/run.sh

Дальше создаём унифицированный интерфейс запуска: один скрипт управляет этапами и собирает артефакты в папку artifacts/.

Конфигурация целей и политики

Минимально полезная конфигурация цели может содержать список подсетей/хостов и параметры сканирования. Пример формата configs/target.json:

{
  "targets": [
    "192.168.56.10",
    "192.168.56.0/24"
  ],
  "scan_profiles": {
    "quick": {"ports": "1-1024", "timeout": 300},
    "service_scan": {"ports": "-sV", "timeout": 600}
  }
}

Политика нужна, чтобы исключить случайные действия вне scope. Пример configs/policy.json:

{
  "allow_ports": ["80","443","22"],
  "max_concurrency": 5,
  "max_total_duration_seconds": 1800,
  "deny_out_of_scope": true
}

В реализации policy_guard проверяет, что заданные порты и адреса соответствуют правилам.

Модуль Nmap: управляемое обнаружение

Nmap — отличный инструмент для документирования состояния поверхности атаки. В автоматизации важно:

  • фиксировать профиль сканирования;
  • выводить результаты в machine‑readable формат;
  • ограничивать скорость и время;
  • сохранять логи и артефакты.

Пример запуска сканирования с выгрузкой в файлы. Команда демонстрирует технику организации артефактов, а не предназначение для вредоносного использования:

OUT_DIR=~/pentestfw/artifacts/nmap
mkdir -p "$OUT_DIR"

TARGET="192.168.56.10"
PROFILE="quick"

nmap -n -Pn -sS -p 1-1024 --max-retries 2 --host-timeout 300s \
  -oA "$OUT_DIR/scan_${TARGET}_quick" 

Для последующего «обогащения» сервисной информации можно добавить версионность (в рамках разрешённого scope):

OUT_DIR=~/pentestfw/artifacts/nmap
TARGET="192.168.56.0/24"

nmap -n -Pn -sS -sV -p 1-1024 --max-retries 2 --host-timeout 600s \
  -oA "$OUT_DIR/scan_${TARGET}_service"

После этого python_enrichment парсит XML/grepable форматы и приводит данные к единой схеме.

Интеграция Metasploit: водитель задач и контроль сценариев

Metasploit может применяться как верификационный инструмент для оценки уязвимостей в согласованном контуре. В инженерном фреймворке полезно реализовать «водителя» сценариев:

  • выбор модулей по списку (из конфигурации);
  • выполнение команд с ограничением времени;
  • сохранение результатов;
  • обязательное логирование параметров.

Пример обвязки под запуск (в вашем окружении фактическая команда для Metasploit зависит от доступности компонента в Termux):

# metasploit_driver/run_modules.sh
# Примерный каркас. Конкретные параметры модулей задаются policy/target.

MODULE_LIST="~/pentestfw/configs/modules.txt"
LOG_DIR="~/pentestfw/logs/metasploit"
mkdir -p "$LOG_DIR"

while read -r MOD; do
  [ -z "$MOD" ] && continue
  echo "[*] Running module: $MOD" | tee -a "$LOG_DIR/runner.log"
  # TODO: запуск metasploit с таймаутом и корректными параметрами
  # Примерно: msfconsole -q -x "use ...; set RHOSTS ...; run; exit"
done < "$MODULE_LIST"

Практически рекомендуется: сначала прогонять этап Nmap, затем на основе обнаруженных сервисов выбирать подходящие проверки Metasploit в строго согласованном порядке.

Custom‑скрипты на Python: парсинг, нормализация и подготовка отчёта

Python удобен для трёх задач:

  • парсинг результатов Nmap (например, XML через stdlib/библиотеки);
  • сопоставление обнаруженных сервисов с политикой (какие проверки разрешены);
  • формирование «рабочего плана» (какие модули Metasploit уместны, какие параметры нужны).

Пример минимального скрипта, который читает XML‑результаты и агрегирует метаданные. Конкретный формат может отличаться в зависимости от настроек Nmap:

cat > ~/pentestfw/python_enrichment/parse_nmap.py <<'PY'
import sys
import xml.etree.ElementTree as ET

xml_path = sys.argv[1]

tree = ET.parse(xml_path)
root = tree.getroot()

hosts = []
for host in root.findall('host'):
    addr = None
    for a in host.findall('address'):
        if a.get('addr'):
            addr = a.get('addr')
            break

    services = []
    ports = host.find('ports')
    if ports is not None:
        for port in ports.findall('port'):
            state = port.find('state')
            service = port.find('service')
            services.append({
                'port': port.get('portid'),
                'proto': port.get('protocol'),
                'state': state.get('state') if state is not None else None,
                'name': service.get('name') if service is not None else None
            })

    hosts.append({'ip': addr, 'services': services})

print(hosts)
PY

Запуск:

python ~/pentestfw/python_enrichment/parse_nmap.py \
  ~/pentestfw/artifacts/nmap/scan_192.168.56.10_quick.xml \
  > ~/pentestfw/artifacts/enriched/hosts.json

Дальше reporting берёт hosts.json и собирает сводку для отчёта: какие хосты обнаружены, какие сервисы открыты, какие гипотезы подтверждены.

Guard‑слой: scope, таймауты и «безопасные дефолты»

Чтобы автоматизация не превратилась в неконтролируемую активность, внедрите guard‑слой:

  • сравнение адресов с разрешёнными диапазонами;
  • проверка портов (allowlist/denylist);
  • ограничение общего времени прогона;
  • ограничение параллельности и повторов.

Пример shell‑проверки портов (идея):

ALLOWED_PORTS="80 443 22"n
is_allowed_port() {
  local p="$1"
  for ap in $ALLOWED_PORTS; do
    [ "$p" = "$ap" ] && return 0
  done
  return 1
}

# Пример использования:
PORT_TO_CHECK="80"
if ! is_allowed_port "$PORT_TO_CHECK"; then
  echo "[!] Port $PORT_TO_CHECK is denied by policy"
  exit 1
fi

В реальном проекте guard‑слой должен быть единообразным: один и тот же механизм проверок используется на этапах Nmap и Metasploit.

План выполнения фреймворка (pipeline)

Сведём всё в последовательный pipeline. Пример run.sh как каркас:

cat > ~/pentestfw/run.sh <<'SH'
#!/data/data/com.termux/files/usr/bin/sh
set -e

BASE=~/pentestfw
LOG_DIR=$BASE/logs
ART=$BASE/artifacts

mkdir -p "$LOG_DIR" "$ART"

echo "[1/4] Running Nmap discovery..." | tee "$LOG_DIR/pipeline.log"
# TODO: подставьте TARGET и профиль согласно configs
# nmap ... -oA $ART/nmap/...

echo "[2/4] Enrichment with Python..." | tee -a "$LOG_DIR/pipeline.log"
# python ... > $ART/enriched/hosts.json

echo "[3/4] Selecting and running Metasploit checks..." | tee -a "$LOG_DIR/pipeline.log"
# TODO: запуск metasploit_driver по модулям из configs с соблюдением policy

echo "[4/4] Reporting..." | tee -a "$LOG_DIR/pipeline.log"
# TODO: формирование итогового отчёта
SH
chmod +x ~/pentestfw/run.sh

Рекомендации по отчётности и артефактам

Чтобы результаты были полезны в реальном проекте, фиксируйте:

  • время и профиль каждого этапа;
  • использованные параметры команд;
  • версии инструментов (Nmap, Python, Metasploit);
  • выгрузки (XML/JSON/текстовые логи);
  • корреляцию: какой вывод Nmap привёл к какому тесту/проверке.

Артефакты удобно складывать в отдельные подпапки: artifacts/nmap, artifacts/enriched, artifacts/reports.

Локальная сеть и удобство стенда

Если вам нужно построить управляемый контур для теста Android‑устройств (например, стенд в лаборатории), допускается использование VPN только для создания локальной сети между вашими рабочими машинами и тестовым контуром. Это помогает воспроизводить результаты и упрощает доступ к целям в рамках согласованного scope.

Заключение

Автоматизация в Termux — это не просто «запустить сканер», а выстроить контролируемый pipeline: Nmap для обнаружения, Metasploit для согласованных проверок, Python‑скрипты для нормализации данных и подготовки отчётов, а также guard‑слой для соблюдения scope и лимитов. Такой фреймворк делает pentest‑работы более воспроизводимыми, управляемыми и пригодными для документирования.

Если вы хотите внедрить подобный подход под ваши задачи, стенды и требования заказчиков — обращайтесь в РыбинскЛАБ. Мы поможем спроектировать и оформить рабочий процесс, подготовить инфраструктуру отчётности и рекомендации по безопасной автоматизации под ваш контур.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект