Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
exploit-CVE-2016-9920 — Roundcube 1.0.0 <= 1.2.2 - эксплойт удалённого выполнения кода и уязвимый контейнер | Kitploit
Инструменты/GitHubGitHub/t0kx/exploit-cve-2016-9920
Безопасность контейнеровАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийОбучение и ОбразованиеЛаборатории и Практика
GitHubt0kx/exploit-cve-2016-9920

exploit-CVE-2016-9920

Roundcube 1.0.0 <= 1.2.2 - эксплойт удалённого выполнения кода и уязвимый контейнер

Репозиторий
48212 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Удаленное выполнение кода в Roundcube 1.0.0 <= 1.2.2

Roundcube — широко распространенное веб-приложение для работы с электронной почтой с открытым исходным кодом, используемое многими организациями и компаниями по всему миру. Например, зеркало на SourceForge насчитывает более 260 000 загрузок за последние 12 месяцев, что составляет лишь малую долю реальных пользователей. После установки Roundcube на сервер он предоставляет веб-интерфейс для аутентифицированных пользователей, позволяющий отправлять и получать электронные письма через веб-браузер.

В Roundcube 1.2.2 и более ранних версиях данные, контролируемые пользователем, попадают без санитизации в пятый аргумент вызова встроенной функции PHP mail(), которая считается критической с точки зрения безопасности. Проблема в том, что вызов функции mail() заставляет PHP выполнять программу sendmail. Пятый аргумент позволяет передавать этой программе дополнительные параметры, что даёт возможность настраивать sendmail. Поскольку sendmail предлагает опцию -X для записи всего почтового трафика в файл, злоумышленник может злоупотребить этой опцией и создать вредоносный PHP-файл в корневом каталоге веб-сервера атакованного сервера. Следующие строки кода вызывают уязвимость.

Требования

Для эксплуатации уязвимости необходимо выполнение следующих условий:

  • Roundcube должен быть настроен на использование функции mail() в PHP (по умолчанию, если не указан SMTP [1])
  • Функция mail() PHP должна быть настроена на использование sendmail (по умолчанию, см. sendmail_path [2])
  • В PHP должна быть отключена опция safe_mode (по умолчанию выключена, см. safe_mode [3])
  • Злоумышленник должен знать или угадать абсолютный путь к корневому каталогу веб-сервера

Эти требования не являются особенно строгими, что означает большое количество уязвимых систем в реальном мире.

Уязвимая среда

Чтобы настроить уязвимую среду для тестирования, вам понадобится установленный Docker. Просто выполните следующую команду:

root@kitploit:~
docker build -t vuln/cve-2016-9920 .
docker run --rm -it -p 80:80 vuln/cve-2016-9920

Это запустит уязвимое веб-приложение на вашем хосте на порту 80.

Уязвимый код

В Roundcube 1.2.2 и более ранних версиях данные, контролируемые пользователем, попадают без санитизации в пятый аргумент вызова встроенной функции PHP mail(), которая считается критической с точки зрения безопасности. Проблема в том, что вызов функции mail() заставляет PHP выполнять программу sendmail. Пятый аргумент позволяет передавать этой программе дополнительные параметры, что даёт возможность настраивать sendmail. Поскольку sendmail предлагает опцию -X для записи всего почтового трафика в файл, злоумышленник может злоупотребить этой опцией и создать вредоносный PHP-файл в корневом каталоге веб-сервера атакованного сервера. Хотя эта уязвимость редка и не широко известна, RIPS обнаружила её за секунды. [4]

Эксплойт

Для эксплуатации цели просто запустите:

root@kitploit:~
./exploit.py --host HOST --user USERNAME --pwd PASSWORD --path PATH --www_path WEB_DIRECTORY

Если вы используете этот уязвимый образ, можно просто запустить:

root@kitploit:~
./exploit.py --host 127.0.0.1 --user username --pwd password --path roundcube --www_path "/var/www/html/roundcube"

После эксплуатации в корневом каталоге веб-папки будет сохранён файл с именем backdoor.php. Эксплойт предоставит вам оболочку, в которой можно отправлять команды на backdoor:

root@kitploit:~
./exploit.py --host 127.0.0.1 --user username --pwd password --path roundcube --www_path "/var/www/html/roundcube"
[+] CVE-2016-9920 exploit by t0kx
[+] Exploiting 127.0.0.1
[+] Target exploited, acessing shell at http://127.0.0.1/roundcube/backdoor.php
[+] Running whoami: www-data
[+] Done

Авторы

Эта ошибка была найдена Робином Перагли (Robin Peraglie) [4]. Основной текст и идея этого образовательного материала созданы opsxcq.

Отказ от ответственности

Эта программа предназначена ТОЛЬКО для образовательных целей. Не используйте её без разрешения. Обычный отказ от ответственности применяется, особенно тот факт, что я (t0kx) не несу ответственности за любой ущерб, причинённый прямым или косвенным использованием информации или функциональности, предоставленной этими программами. Ни автор, ни интернет-провайдер не несут ответственности за содержание или неправильное использование этих программ или любых их производных. Используя эти программы, вы принимаете тот факт, что любой ущерб (потеря данных, сбой системы, компрометация системы и т.д.), причинённый использованием этих программ, не является ответственностью t0kx.

Ссылки

  • [1] https://github.com/roundcube/roundcubemail/wiki/Configuration#sending-messages-via-smtp
  • [2] http://php.net/manual/en/mail.configuration.php
  • [3] http://php.net/manual/en/ini.sect.safe-mode.php
  • [4] https://blog.ripstech.com/2016/roundcube-command-execution-via-email/
Скачать инструмент