¿Cómo puedo pasar automáticamente la contraseña a 'su'?

¿Cómo puedo pasar automáticamente la contraseña a 'su'?

Estoy trabajando en un exploit para un curso de seguridad. El objetivo es obtener un shell raíz en una máquina virtual Linux. Hasta ahora, puedo escribir en /etc/passwd y cambiar la contraseña de root a una cadena arbitraria.

Ahora quiero usar su para obtener el shell raíz. Dado que mi exploit debe automatizarse, no puede solicitar una contraseña y la máquina virtual no tiene expect instalado. ¿Alguien tiene alguna idea de cómo puedo pasar la contraseña al comando su? ¿O hay un mejor camino?

Respuesta1

La mejor forma de automatizar este tipo de entrada es utilizando expecto mejor pexpect. la mayoría de los servidores vienen con Python, al menos con una distribución moderna.

En primer lugar, ¿dijiste que tu VM no está expectinstalada? No estoy seguro de por qué eso importa. ¿Hay alguna razón por la que no puede instalar/ejecutar algo en su cuenta local?

Siguiente consideración, ¿por qué deberías usar passwd??? También puede cambiar una contraseña reemplazando el hash especificado en /etc/shadow. Obviamente, primero necesitarás pregenerar correctamente un hash, pero siempre que utilices uno compatible, debería funcionar como se espera. Ahora bien, cómo escribirías un guión para tal acción es un ejercicio que debes resolver.

También quiero mencionar que passwdno lee la entrada de STDIN. Si no me equivoco, se lee en un tty. Así que ninguna combinación elegante de solo echoy sleepfuncionaría. Sin embargo, es posible utilizar un HEREDOC, pero se supone que el sistema responde lo suficiente. Es posible que pueda dividirlo en sleeppartes enteras. Acabo de probar esto, funcionó en mi estación de trabajo Ubuntu.

#!/bin/bash
passwd root <<'EOF'
newpassword
newpassword
EOF

Respuesta2

Su exploit también podría escribir en el archivo de grupos y hacer que el usuario actual forme parte del grupo 'rueda' (o cualquier grupo que pueda ejecutar sudocomandos sin contraseña). Entonces usted podrá sudo su root(o cualquier otro usuario) sin contraseña.

Correr visudodebería darle alguna orientación sobre la configuración del grupo de "ruedas" en su máquina.

Para aclarar: una vez que un usuario pasa a formar parte del grupo de ruedas, puede ejecutar comandos sudo sin necesidad de contraseña.

información relacionada