systemadmin.es > Utilidades > Evitando el paso a una shell con sudo

Evitando el paso a una shell con sudo

Tal como hemos visto en los wargames de narnia es posible ejecutar una shell con unos privilegios superiores a los del usuario si tiene definido el bit suid o si usasemos sudo. Vamos a ver como deshabilitar el posible paso a una shell.

Para saber si podemos deshabilitar el exec podemo verlo mediante el siguiente comando:

# sudo -V | grep exe
File containing dummy exec functions: /usr/libexec/sudo_noexec.so

En caso que no lo tengamos deberemos recompilar sudo con la opción with-noexec:

  --with-noexec=PATH      fully qualified pathname of sudo_noexec.so

Si lo tenemos habilitado simplemente deberemos editar el /etc/sudoers para añadir la opción de la misma forma que lo haríamos con la opción NOPASSWD:

jprats  ALL=(ALL)       NOEXEC: /bin/vi

A continuación podemos abrir el vi con sudo:

$ sudo vi

Al intentar ejecutar un comando con vi:

:!bash

Obtendremos un mensaje de error:

Cannot execute shell /bin/bash

Press ENTER or type command to continue

Esto mismo ocurriría con cualquier binario que intentase realizar un exec ya que se ha substituido la familia de funciones exec mediante LD_PRELOAD:

# objdump -M intel -d /usr/libexec/sudo_noexec.so | grep "^[0-9]"
000005ac <_init>:
000005dc <__errno_location@plt-0x10>:
000005ec <__errno_location@plt>:
000005fc <__gmon_start__@plt>:
0000060c <__cxa_finalize@plt>:
00000620 <__fexecve-0xd0>:
000006f0 <__fexecve>:
00000720 <_fexecve>:
00000750 <fexecve>:
00000780 <__execve>:
000007b0 <_execve>:
000007e0 <execve>:
00000810 <__execvP>:
00000840 <_execvP>:
00000870 <execvP>:
000008a0 <__execvp>:
000008d0 <_execvp>:
00000900 <execvp>:
00000930 <__execv>:
00000960 <_execv>:
00000990 <execv>:
000009c0 <__execlp>:
000009f0 <_execlp>:
00000a20 <execlp>:
00000a50 <__execle>:
00000a80 <_execle>:
00000ab0 <execle>:
00000ae0 <__execl>:
00000b10 <_execl>:
00000b40 <execl>:
00000ba8 <_fini>:

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>