Escalation via sudo mosh-server
Mosh (mobile shell) es una alternativa a SSH pensada para conexiones inestables: mantiene la sesión viva aunque cambie la IP o se corte la red. Internamente son dos piezas: mosh-server, que se lanza en el extremo remoto y entrega por stdout una MOSH_KEY de un solo uso, y mosh-client, que se conecta a ese puerto UDP usando la clave.
El abuso. Si sudo -l muestra que un usuario puede ejecutar mosh-server como root:
(ALL) NOPASSWD: /usr/bin/mosh-serverentonces el servidor arranca con privilegios de root, y la sesión interactiva que se le conecte hereda ese contexto. No hace falta ningún truco de inyección: el propio diseño de mosh abre una shell, y aquí esa shell es de root.
Pasos.
sudo mosh-server new -p 6010 # puerto en el rango 6000-6100 que reserva mosh
# salida: MOSH CONNECT 6010 <MOSH_KEY>
MOSH_KEY=<MOSH_KEY> mosh-client 127.0.0.1 6010La primera orden devuelve la clave; la segunda se conecta en local a ese puerto y abre una terminal como root. La MOSH_KEY es de un solo uso y cambia en cada arranque, así que hay que copiarla del output del servidor.
Por qué pasa. mosh-server no es un binario pensado para correr como root vía sudo; no recae como un LOLBIN evidente (no es vim ni find), pero abre una sesión interactiva, y eso es suficiente. Es el mismo principio que cualquier entrada de GTFOBins: un binario permitido por sudo que, directa o indirectamente, da acceso a un shell.
Cómo detectarlo. La firma es un sudo mosh-server en /var/log/auth.log (un binario inusual para sudo), seguido de un proceso mosh-server corriendo como root que abre un listener UDP en el rango 6000-6100 y del que cuelga una shell interactiva de root (auditd/Sysmon for Linux sobre execve con ppid=mosh-server). La conexión local del mosh-client a ese puerto cierra la cadena. Un mosh-server root sin la sesión de usuario correspondiente es el indicio.
Defensa. No conceder mosh-server (ni ningún binario que abra sesiones interactivas) por sudo con NOPASSWD. Si se necesita mosh, ejecutarlo bajo la cuenta del propio usuario, nunca como root. Relacionado con el abuso de SUID y con revisar GTFOBins antes de ampliar una regla de sudoers.
Máquinas donde se aplica
- UnderPassHackTheBox