El mar, 15-01-2002 a las 13:44, Antonio Castro escribió:
> Bueno pues haz un execvp() en un programa setuid llamando a vim,
> a ftp, a less, u otros de estos que te permiten salir al interprete
> de comandos ejecutando una subshell. Me parece a mi que le puedes
> quitar todo el entorno que quieras. Obtendrá una shell de root.
No he mirado el código fuente, pero qué quieres que te diga:
[jantonio@drake ~]$ su -
[root@drake root]# cp /usr/bin/vim /tmp/vim
[root@drake root]# chmod u+s /tmp/vim
[root@drake root]# exit
[jantonio@drake ~]$ /tmp/vim kk
ejecuto :!id
y obtengo
uid=500(jantonio) gid=500(jantonio) grupos=500(jantonio)
Pasa lo mismo con el less: al abrir una shell el real y el effective
userid no corresponden a root, por mucho que el padre sea setuid root
espera un momentito... idem con el ftp
Claro, esto es en mi distribución RedHat 7.2....
O sea que el programa está bien codificado :)
--
Juan Antonio \|||/
/ _ _ \
\ o o /
=========================o00o===U===o00o======================================
Juan Antonio Martinez Universidad Politecnica de Madrid
email: jantonio@dit.upm.es E.T.S.I Telecomunicacion
http://www.dit.upm.es/~jantonio Ciudad Universitaria s/n
Tel: 34-1-3367366 ext 416 Laboratorio de Programación. Desp
A-127-2
Fax: 34-1-3367333 28040 Madrid, Spain
==============================================================================
¿Y que haríais si Dios os Dijera: "Os ordeno que, por encima de todo,
seáis felices el resto de vuestra vida"? - Richard Bach
Attachment:
pgpSBg31vap4r.pgp
Description: PGP signature