Автор темы
Последние полтора года я впихиваю LLM в свои терминальные цепочки - результат, мягко говоря, неоднозначный. На одном engagement'е Ollama с mistral:7b сгенерировала рабочий awk-парсер для вывода nmap за 15 секунд - руками я бы ковырял минут пять. На следующем проекте ChatGPT уверенно предложил флаг
--no-tls-validation для gobuster, которого не существует (корректный флаг - -k). Терминал для пентестера - та точка, где эксперименты с AI разбиваются о реальность: правильно настроенный шелл, алиасы для recon-цепочек и tmux-сессии, которые переживают обрыв SSH. Без этого фундамента любой AI-ассистент - генератор текста, а не рабочий инструмент.Никакой маркетинговой мишуры: конкретные конфиги и команды, которые копируются в
.zshrc и проверяются за пять минут. Всё проверено на Kali 2024.x/2025.x и Parrot OS 6.x с zsh 5.9+.Zsh и Oh-My-Zsh - настройка терминала для пентеста
Kali с 2020 года поставляется с zsh по умолчанию, но из коробки он настроен слабо. Oh-My-Zsh с правильным набором плагинов превращает терминал в полноценный инструмент пентестера, а не просто окно с курсором.
Плагины для ежедневной работы
Три плагина, которые реально стоят внимания.zsh-autosuggestionsподсказывает команды из истории серым текстом - жмёшь стрелку вправо и получаешь полную команду, которую набирал вчера. Для повторяющихся сканов nmap с длинными флагами - экономия 30-40 нажатий на каждую команду.zsh-syntax-highlightingподсвечивает валидные команды зелёным, невалидные красным: видишь ошибку до нажатия Enter.fzf- fuzzy-поиск по истории черезCtrl+R, вместо линейного перебора bash получаешь интерактивный фильтр по всей истории.
Установка стандартная:
git clone каждого плагина в ~/.oh-my-zsh/custom/plugins/, затем добавление имён в массив plugins=() файла ~/.zshrc. На свежей Kali 2024.x всё ставится за две минуты. Отдельно - тема powerlevel10k: она показывает текущую директорию, git-ветку и статус последней команды прямо в промпте. Когда открыто десять панелей tmux, это помогает не запутаться, в какой ты вообще директории.Кастомный промпт с IP VPN-сессии - не украшение, а навигация. Добавляем в
.zshrc подстановку $(ip -4 addr show tun0 2>/dev/null | grep -oP 'inet \K[\d.]+') в переменную RPROMPT. Когда работаешь одновременно с несколькими клиентскими VPN, видеть адрес прямо в промпте - must have. На трёх engagement'ах из последних пяти я ловил себя на том, что гнал трафик через неправильный туннель. После добавления IP в промпт проблема исчезла.Алиасы Linux для пентестера - recon одной командой
Алиасы - не про лень, а про скорость. На типичном engagement'е одни и те же команды с одними и теми же флагами набираются десятки раз. Вместоnmap -sC -sV -oA каждый раз - алиас ns, и пальцы свободны для анализа.Набор, который живёт в моём
.zshrc последние три года и дорабатывается после каждого проекта:
Bash:
# Recon
alias ns='nmap -sC -sV -oA nmap_default'
alias nf='nmap -sC -sV -p- -oA nmap_full'
alias nu='sudo nmap -sU --top-ports 50 -oA nmap_udp'
# Web
gob() { gobuster dir -u "$1" -w /usr/share/wordlists/dirb/common.txt -o gobuster.txt -t 50; }
alias ff='feroxbuster -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt'
# Quick checks
alias myip='curl -s ifconfig.me && echo'
alias serve='python3 -m http.server 8888'
alias listener='rlwrap nc -lvnp'
nmap_default и nmap_full - фиксированные имена выходных файлов, потому что скрипт-обёртка (о ней ниже) ищет их для автоматического парсинга. serve - моментальный HTTP-сервер для доставки инструментов на целевой хост. По классификации MITRE ATT&CK это техника Ingress Tool Transfer (T1105, Command and Control) - атакующий поднимает веб-сервер на своей машине и скачивает с него утилиты на скомпрометированный хост через wget или curl. В контексте пентеста - стандартная операция после initial access. listener с rlwrap добавляет readline-обёртку к netcat: стрелки вверх-вниз и history работают в реверс-шелле. Кто хоть раз пытался нажать стрелку вверх в голом nc - знает, какая это боль.Bash-функции для сложных задач
Когда нужно передать аргумент в середину команды, алиас не справляется - нужна функция. В.zshrc: quickscan() { nmap -sC -sV -oA scan_$1 $1 && grep "open" scan_$1.nmap | awk '{print $1}'; }. Вызов - quickscan 10.10.10.1. Результат - файлы scan_10.10.10.1.* плюс список открытых портов в stdout. Примитивно, но экономит два шага на каждом хосте.Ещё одна функция из практики -
webcheck. Принимает URL, делает curl -sI с выводом заголовков, потом whatweb для fingerprinting технологий, потом nuclei -silent -t cves/ для быстрой проверки известных CVE. Три инструмента одним вызовом - базовый fingerprinting конкретного хоста за секунды.Tmux для пентестера - сессии, которые переживут обрыв SSH
Tmux (терминальный мультиплексор) решает три проблемы. Первая - обрыв SSH-соединения не убивает длинные сканы. Вторая - параллельная работа в нескольких панелях без переключения окон. Третья - именованные сессии для разных клиентов:tmux attach -t clientname возвращает ровно тот контекст, с которым работали вчера.На форуме уже есть статья про этот отличный инструмент
Друзья, уверен, что каждый из вас, работая в разных консолях в Linux, хотел бы увеличить производительность и скорость этой самой работы. В своё время я тоже не мог обойтись без кучи запущены окон с терминалами, пробовал разные их виды и варианты. Но в какой-то момент открыл для себя такую прекрасную вещь, как мультиплексор. Несмотря на столь длинное название, суть у программы более чем простая - возможность использования одного окна для работы с несколькими приложениями. И самое главное: можно забыть про мышь, используя только клавиатуру!
Я считаю, что одной из...
Я считаю, что одной из...
- f22
- Ответы: 37
- Раздел: Мои статьи
На каждый engagement создаётся сессия
tmux new -s projectname с фиксированной раскладкой: верхняя панель - активная работа (exploit, enumeration), нижняя левая - tail -f логов или вывод долгого скана, нижняя правая - listener для реверс-шеллов. Переключение между панелями - Ctrl+b и стрелки, хотя я перебиндил prefix на Ctrl+a (привычка из screen, да и нажимать удобнее).Две строки в
~/.tmux.conf, без которых жить нельзя. Первая - set -g history-limit 50000. По умолчанию tmux хранит 2000 строк scrollback, и вывод длинного nmap-скана просто исчезает за границей буфера. Вторая - set -g mouse on, чтобы скроллить мышью и выделять текст. Tmux 3.x поддерживает обе настройки из коробки.Для автоматизации раскладки удобно писать shell-скрипт:
tmux new-session -d -s $1, затем серия split-window и send-keys. Запустил ./pentest-tmux.sh clientname - получил готовое рабочее пространство. Ещё один приём: tmux pipe-pane -o 'cat >> ~/logs/#{session_name}_#{window_name}.log' пишет весь вывод панели в файл. Это лог каждой команды и её результата - бесценная штука при написании отчёта, когда нужно восстановить, что именно ты делал во вторник в 3 ночи.Автоматизация пентеста скриптами - обёртки для цепочек
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
по
.nmap ищет строки с open - это работает с дефолтным nmap-форматом. Если используете -oG (grepable output), паттерн будет другим.Такие shell-скрипты для пентеста со временем обрастают проверками: существует ли цель, не запущен ли уже скан, нужно ли включить UDP. У меня в рабочем репозитории таких обёрток около двадцати - каждая заточена под конкретный тип engagement'а: внутренний, внешний, web-only.
Отдельный совет - заведите Python venv для каждого проекта. Как отмечается в воркфлоу Penligent (penligent.ai), helper-скрипты для парсинга ответов и нормализации вывода сканеров лучше запускать в изолированном окружении:
python3 -m venv .venv && source .venv/bin/activate. Зависимости не конфликтуют между проектами, и при написании отчёта можно воспроизвести окружение точно.AI-ассистенты для пентестеров - что реально работает в терминале
Три подхода: локальные LLM, API-интеграции и специализированные open-source агенты.Ollama - локальная LLM без утечки scope
Ollama позволяет запустить LLM локально на рабочей машине. Для пентестера это критично: scope клиента, IP-адреса, найденные credentials - всё это нельзя отправлять в облачный API. Установка на Kali -curl -fsSL https://ollama.com/install.sh | sh, затем ollama pull mistral для загрузки модели. Предусловие: GPU с 8 ГБ+ VRAM для модели 7B, либо 16 ГБ RAM для CPU-инференса (будет медленно, но работает).Практическое применение - генерация однострочников прямо из терминала:
Bash:
# .zshrc - запрос к локальной LLM
ask() {
ollama run mistral "Ты пентестер. Ответь кратко. $*" 2>/dev/null
}
# ask "напиши awk для извлечения IP из nmap gnmap"
# ask "объясни вывод: SNMP public community string"
ollama pull llama3:70b, но это уже 48 ГБ RAM минимум.Галлюцинации - главная беда. LLM периодически выдумывает флаги и опции инструментов. Каждую сгенерированную команду проверять через
man или --help перед запуском на реальной цели - без исключений. Я на этом обжёгся не раз.Когда scope не запрещает облачные сервисы (lab-среда, CTF, собственные проекты), ChatGPT API через
curl закрывает задачи, которые локальные модели тянут плохо: анализ больших фрагментов кода, генерация сложных payload'ов, написание Sigma-правил для detection. Но отправка реальных данных клиента в OpenAI API - нарушение NDA в подавляющем большинстве контрактов. Только на своих стендах.Open-source AI-агенты для пентеста
В 2025-2026 годах появилось несколько зрелых open-source проектов, которые автоматизируют пентест комплексно, а не просто отвечают на вопросы. По данным spark42.tech и ostorlab.co, три проекта заслуживают внимания.Nebula (BerylliumSec) - CLI-ассистент, который интегрируется с nmap, sqlmap, metasploit. Поддерживает self-hosted LLM через Ollama - решает проблему утечки данных. По оценке spark42.tech, один из самых зрелых проектов с хорошей документацией и простым деплоем.
CAI (Cybersecurity AI) - фреймворк с multi-agent архитектурой. Позволяет запускать нескольких агентов параллельно - один делает recon, другой анализирует результаты. Ряд обозревателей считают CAI более зрелой альтернативой PentestGPT.
PentestGPT - пионер направления (2023), использует LLM через три модуля: Reasoning (стратегия), Generation (команды), Parsing (анализ вывода инструментов). По сути proof-of-concept: для production-задач CAI может быть предпочтительнее.
Все три работают в режиме «human-in-the-loop» - агент предлагает действия, решение остаётся за пентестером. Это ключевое ограничение и одновременно преимущество: AI ускоряет автоматизацию рутинных задач пентестера, но не подменяет экспертную оценку risk appetite и бизнес-контекста цели.
OPSEC терминала - когда shell history становится уязвимостью
Терминал bash/zsh - инструмент атаки, и настраивать его нужно с учётом OPSEC. По классификации MITRE ATT&CK техника Shell History (T1552.003, Credential Access) описывает сценарий, при котором атакующий или защитник извлекает credentials из истории команд. Набралиmysql -u root -pSecretPass123 на целевом хосте - пароль остаётся в .bash_history. Классика.На своей рабочей машине это тоже актуально. Файл
~/.zsh_history содержит полную историю за engagement: IP целей, credentials тестовых аккаунтов, пути к эксплойтам. Если ноутбук компрометируется - это полный слив данных клиента.Базовые меры. Переменная
HISTCONTROL=ignorespace в .zshrc - команды, начинающиеся с пробела, не записываются в историю. Набрали mysql -u root -p'пароль' (с пробелом перед командой) - в history не попадёт. Второй вариант - HISTIGNORE='[I]password[/I]:[I]secret[/I]:[I]token[/I]' для автоматического исключения команд с чувствительными словами.После завершения проекта - очистка. Техника Clear Command History (T1070.003, Defense Evasion) применяется и атакующими для заметания следов, и пентестерами для OPSEC. Команда
history -c && rm ~/.zsh_history на своей машине - обязательный пункт в чек-листе закрытия engagement'а.Ещё один момент - GTFOBins. Утилиты
awk, bash и даже cat, согласно каталогу gtfobins.github.io, используются для privesc и обхода ограничений при наличии SUID или sudo-доступа. Те же бинарники, которыми мы пользуемся для автоматизации, - потенциальный вектор privilege escalation на нашей рабочей машине. Стоит периодически проверять find / -perm -4000 -type f 2>/dev/null и на собственной Kali. (Да, я тоже долго думал, что «ну это же моя машина» - а потом нашёл SUID на python3, который там оставил скрипт двухлетней давности.)По моим ощущениям за четыре года пентеста, дискуссия «AI заменит пентестеров через два года» vs «AI - бесполезная игрушка для CTF» - ложная дихотомия. Обе позиции игнорируют рутину. AI-ассистенты в терминале экономят заметную часть времени на операциях, которые никто не любит: парсинг вывода, генерация однострочников, шаблонные скрипты для отчётов. Но они не принимают решений. Не понимают бизнес-контекст заказчика, не оценивают risk appetite, не решают - эксплуатировать уязвимость или остановиться перед production-базой с реальными данными. За всё это время я не видел ни одного случая, где AI самостоятельно обнаружил бы уязвимость, которую пропустил подготовленный специалист. Зато видел десятки случаев, где правильно настроенный терминал - zsh с алиасами, tmux с сохранёнными сессиями, bash-обёртки для recon-цепочек - давал больший прирост productivity, чем любая LLM. Мой прогноз: AI-агенты типа CAI и Nebula станут стандартной частью toolkit'а, но не заменой. Точка роста - не в том, чтобы AI «пентестил сам», а в том, чтобы он ускорял рутину: документирование, парсинг, отчётность. Кто автоматизирует это быстрее - тот выигрывает engagement'ы. На HackerLab есть задачи, где автоматизация recon - не украшение резюме, а единственный способ уложиться в таймер и довести цепочку до конца.
Последнее редактирование модератором: