Покажи Публикации - blafioras
* Виж публикациите на потр. | Виж темите на потр. | Виж прикачените файлове на потр
Страници: [1]
1  Програмиране / Общ форум / Backtrack 3 crack wep,wpa/wpa2 -: May 21, 2010, 23:43
Колега,интересен въпрос си задал,но не му е тука мястото.Може да си получил вече и отговор на него,но ако не си, ще се опитам да ти обясня накратко как става кракването на WPA/WPA2.Аз не съм хакер нито пък специалист по Wifi мрежи, Линукси и така нататъка,но мисля че за да кракнеш WPA/WAP2 не се иска кои знае какво знание, а по-скоро късмет.Такааа по същността.1-во, съветвам те да се логнеш като root за да не пишеш постоянно омразното ,, sudo bash'' преди всяка команда.
За да подкараш твоята wifi карта под това дистро ти трябва да я активираш :

/etc/init.d/wicd start

След това е нужно само да пуснеш Gerix Wifi Cracker,който се намира в менюто на BackTrack.Пусни GUI версията за да ти е по-лесно.  ;D.Така, след това е нужно да пуснеш мониторинга и да активираш записването на пакетите.За WPA/WPA2 са ти нужни Deauthentication пакети от рутера и да хванеш поне един хеш.Ако в .cap файловете имаш Хеш значи си готов да започне трудната част.Трудната част се състои в това,че този хеш трябва да се кракне.Вариантите са няколко чрез Cowpatty (http://www.wirelessdefence.org/Contents/coWPAttyMain.htm), Rainbow Tables (http://www.renderlab.net/projects/WPA-tables/) и твой личен уордлист.Аз лично препочитам да ползвам личен уордлист.Тук ще ти поместя и един питон скрипт за генериране на пароли,който аз съм ползвал.Можеш да си го променяш ,както ти харесва да добавиш кирилица,гръцки букви и т.н с елементарни познания.
---------------------------------------------------------------------
#!/usr/bin/python
#Password generater that uses type and length.
#There are 5 types to use: alphanum, alpha, alphacap, all, Blafioras
#Created by Blafioras

import random, sys

def title():
   print "\n\t   Blafioras Password Generator v2.1"
   print "\t-----------------------------------------------\n"
   
def passgen(choice, length):
   
   passwd = ""
   
   alphanum = ('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
   alpha = ('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
   num = ('0123456789')
   all = ('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"\'<>,.?/')
   Blafioras = ('abcdefghijklmnopqrstuvwxyz0123456789')
   if str(choice).lower() == "alphanum":
      choice = alphanum

   elif str(choice).lower() == "alpha":
      choice = alpha
         
   elif str(choice).lower() == "num":
      choice = num
   
   elif str(choice).lower() == "all":
      choice = all
    
   elif str(choice).lower() == "Blafioras":
      choice = Blafioras

     
   else:
      print "Type doesn't match\n"
      sys.exit(1)
     
   return passwd.join(random.sample(choice, int(length)))
     
title()
if len(sys.argv) <= 3 or len(sys.argv) == 5:
   print "\nUsage: ./passgen.py <type> <length of password> <how many>"
   print "\t[options]"
   print "\t   -w/-write <file> : Writes passwords to file\n"
   print "There are 5 types to use: alphanum, alpha, num, all, blafioras\n"
   sys.exit(1)

for arg in sys.argv[1:]:
   if arg.lower() == "-w" or arg.lower() == "-write":
      txt = sys.argv[int(sys.argv[1:].index(arg))+2]

if sys.argv[3].isdigit() == False:
   print sys.argv[3],"must be a number\n"
   sys.exit(1)
if sys.argv[2].isdigit() == False:
   print sys.argv[2],"must be a number\n"
   sys.exit(1)
try:
   if txt:
      print "
  • Writing Data:",txt
      output = open(txt, "a")
except(NameError):
   txt = None
   pass

for x in xrange(int(sys.argv[3])):
   if txt != None:
      output.writelines(passgen(sys.argv[1],sys.argv[2])+"\n")
   else:
      print "Password:",passgen(sys.argv[1],sys.argv[2])
print "\n[-] Done\n"

--------------------------------------------------------------------------
И един C код за генериране , който ти хареса и двата са тествани и ползвани.
--------------------------------------------------------------------------

#include <fstream>
#include <iostream>
#include <cmath>
#include <ctime>
#include <string.h>
#include <stdlib.h>

using namespace std;
int long s,l,minimum,maximum,flag;
int D[255];
char chr;
string cycle,passphrase;


int main(int argc, char *argv[])
{
   cycle = "";
   flag = 0;
   minimum = maximum = 8;

   ofstream fout;

   for(int i=1; i<argc; i++)
   {
      if (strncmp(argv,"-m",2)==0)
      {
         minimum = atoi(argv[i+1]);
      }
      if (strncmp(argv,"-n",2)==0)
      {
         maximum = atoi(argv[i+1]);
      }
      if (strncmp(argv,"-l",2)==0)
      {
         cycle = cycle + "abcdefghijklmnopqrstuvwxyz";
      }
      if (strncmp(argv,"-u",2)==0)
      {
         cycle = cycle + "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
      }
      if (strncmp(argv,"-d",2)==0)
      {
         cycle = cycle + "0123456789";
      }
      if (strncmp(argv,"-p",2)==0)
      {
         cycle = cycle + "_@#$&+-=%*^`~'!?.,:;()<>[]{}/|";
         chr=92;
         cycle = cycle + chr;
         chr=34;
         cycle = cycle + chr;
      }
      if (strncmp(argv,"-s",2)==0)
      {
         cycle = cycle + " ";
      }
      if (strncmp(argv,"-c",2)==0)
      {
         cycle = cycle + argv[i+1];
      }
      if (strncmp(argv,"-o",2)==0)
      {
         fout.open(argv[i+1]);
         flag = 1;
      }
      if (strncmp(argv,"-h",2)==0)
      {
         cout << "Bruteforce Permutation Generator Beta v. 1.0 by Blafioras \n";
         cout << "Usage: permutate [options] -o [path] \n";
         cout << "Options: \n";
         cout << "   -m : minimum string output length [default is 8] \n";
         cout << "   -n : maximum string output length \n";
         cout << "   -l : permutate using Lower Case letters [default] \n";
         cout << "   -u : permutate using Upper Case letters \n";
         cout << "   -d : permutate using Digits [0 - 9] \n";
         cout << "   -p : permutate using Special characters [!@#$%^&* ...] \n";
         cout << "   -s : permutate using Space character \n";
         cout << "   -c [string]: permutate using custom string entry \n";
         cout << "   -h : this screen \n";
         exit(0);
      }
   }

        if (maximum<minimum)
   {
      maximum = minimum;
   }

   l = cycle.length();
   if (l<1)
   {
      cycle="abcdefghijklmnopqrstuvwxyz";
      l = 26;
   }
   l=l-1;

   for(int i=0;i<=l;i++)
   {
      D[cycle]=i;
   }

   minimum = minimum - 1;
   maximum = maximum - 1;

   for(int size=minimum;size<=maximum;size++)
   {
      passphrase = "";
      for(int i=0;i<=size;i++)
      {
         passphrase = passphrase + cycle[0];
      }

      for(int j=1;j<=pow(double(l+1),size+1);j++)
      {
         for(int i=0;i<=size;i++)
         {
            if (passphrase[size-i]==(cycle[l+1]))
            {
               passphrase[size-i]=cycle[0];
               passphrase[size-1-i] = cycle[D[passphrase[size-1-i]]+1];
            }
         }
         cout << passphrase << endl;
         if (flag==1)
         {
            fout << passphrase << endl;
         }
         passphrase[size] = cycle[D[passphrase[size]]+1];
      }
   }

   if (flag==1)
   {
      fout.close();
   }

   return 0;
}

--------------------------------------------------------------------------------------------
Кода си го запиши в текстов файл с разширение .c примерно  (passwords.c)
C кода си го компилирай под линукса така :  g++ passwords.c -o password
компилираният файл стартираш така: ./passwords

Трябва да ти кажа и не искам да те отчайвам, но реално за да кракнеш парола от рода G0sHo13!,ще ти трябва обемиста уордлиста,читав компютър,време и адски късмет.Имай предвид,че един Core2Duo на 2.65 мандахерца прави около 1240кб/с трансфер на паролите,което означава,че ще са ти нужни около 40-50 часа за 10ГБ листа за да ги изпробва всичките.И каква е гаранцията ,че вътре я има паролата?!Хубавото е , че повечето хора използват 5 или 8 знакова парола включваща само малки букви и цифри.Има вариянт да се ползват GPU-тата на някои видеокарти,което е 1000 по-добрия и бърз вариант за кракване на хеш,но това е обемиста тема и аз няма да навлизам в подробности.


Надявам се да съм бил полезен поне малко с този пост.Доста коментари имаше изписани и нищо конкретно.Успех. ;D
Страници: [1]