Milyen könyvel kellene kezdenem, vagy hol kezdjek el olvasgatni, ha valami brute force -os vagy hasonló programot akarok készíteni?
Nem igazán kell ehhez könyv.
Ha tudsz programozni és tudod a brute force elméletét (húúú baromi bonyolult), akkor elég könnyen meg lehet csinálni.
A brute force az, amikor egyenként végigpróbálgatod a lehetőségeket. Összefoglalva, amikor ész helyett erővel esel neki a feladatnak, ezért nagyon lassan fut a kódod.
Példa:
Ki kell találni egy jelszót, erre te elkezded bepötyögni az összes kombinációt egymás után.
Vagy keresed a prímszámokat 1-től ((pontosabban 2-től) 100-ig, erre végigosztasz minden számot az összes nála kisebb számmal, kivéve az egyet. Ha egyikkel sem osztható, akkor prím. Igazából elég lenne a nnégyzetgyökig próbálkozni, és csak a kisebb prímszámokat sorra venni, de ezzel a brute force nem gondol, mert nem gondolkodik.
Teljesen mindegy.
A programozási feladat nyelv független, bármilyen nyelven lehet implementálni.
Válassz egy szimpatikus programozási nyelvet és kezd el tanulni.
Pl a Python egész barátságos, de azt választasz amit akarsz.
Az összes programnyelvben ugyanaz a dolog. Fogod a dolgot, amihez kell a jelszó, mondjuk egy csomagolt rar fájlhoz.
Elkezdesz egy while ciklust, amiben elkezded az a jelszótól a zzzzzzzzzzzz (sok Z, számokkal és jelekkel fűszerezve) jelszóig mindet végigpróbálni. A jelszót betöltöd egy jelszo nevű String változóba, és meghívod a
unrar x -p jelszo rarfajl.rar
parancsot addig, amíg az nem ad vissza sikeres kicsomagolásról szóló üzenetet. Elindítod a cuccot, megiszol egy nagyon hosszú kávét, és mire visszaérsz, meg is leszel Ez egy példa. Ugyanez minden mással is, a rar-t cseréld ki honlapra, zip-re, akármire.
Ha online fiókot akarsz törni, akkor képfelismerésen is dolgozz (captcha védelem), és készíts be sok proxy-t, mert kelleni fognak.
1. Egy hello world-öt legalább össze tudsz hozni, bármilyen nyelven?
2. Ugye tudod, hogy totál esélytelen, hogy brute force-al feltörj bármilyen online account-ot?
Csak számolj egy kicsit, a legbénább rendszerekben is megkövetelik már manapság a minimum 6 karakter hosszú jelszavak használatát, a karakterkészlet pedig általában a teljes Unicode, de az egyszerűség kedvéért vegyük csak az angol ABC kis betűit és a decimális számrendszer számait, ez 36 karakter.
Az összes lehetőség tehát 36^6, ez annyi, mint 2176782336.
Azaz ~2 milliárd. Tegyük fel, hogy átlagosan egy jelszótörésnél az összes lehetőség felét kell végigpörgetni, az ~1 milliárd. Továbbá tegyük fel, hogy másodpercenként 1 jelszót tudsz kipróbálni -> átlagosan ~16,6 millió percig tart -> 2,7 millió óráig-> ~ 115000 napig -> ~ 31 évig, amíg feltörsz egy account-ot :D
És itt feltételeztük azt, hogy nem lesz 6 karakternél több a jelszó.
És akkor most házi feladat, hogy ugyanezt számold ki olyan jelszavakra, amik minimum 8, maximum 16 karakter hosszúak, a magyar ABC kis-és nagybetűit, illetve számokat és a következő speciális karaktereket is tartalmazhatják:?,:[szóköz]+-;!/=().
Ja és arról az apróságról még nem is beszéltünk, hogy a legtöbb rendszer 3-4-N rossz próbálkozás után lockolja az accountot... :D
Más: tegyük fel, h. jelszóvédett RAR file-okat akarsz törni, vagy bármi olyasmit, ahol 1. gyorsan tudod próbálgatni a jelszavakat 2. nem lockol, ha 3x elrontod. A házifeladat-jelszóhalmazzal számold ki, hogy pl. másodpercenként 1000 próbálkozással mennyi idő lenne. Vagy másodpercenként 10000-el.
"szóval nem hiszem, hogy annyira kellene számolgatnom, ha zip-es fájlt akarok feltörni."
Szerintem meg de. De látom, még ahhoz is lusta/h*lye vagy, hogy kicsit gondolkodj.
Nézzük csak:
A legegyszerűbb példánál maradva(angol ABC, csak kisbetűk, és számok, pontosan 6 karakter hosszúság) 117 másodpercig tarthat egy zip file törése(2 milliárd osztva 17 millióval).
Ha még egy karaktert hozzáadsz, tehát 7 hosszú jelszót feltételezel, akkor 4609 másodperc = 76 perc, több, mint egy óra.
És akkor nézzünk egy példát, ami kicsit közelebb van a valósághoz: magyar ABC+számok+spec. karakterek, legfeljebb 8 karakter hosszú jelszó(de lehet rövidebb is!)
A kiterjesztett magyar ABC 44 betű, de a dupla betűket nem számoljuk, így marad 36 karakter. Ehhez hozzáadjuk a 10 számjegyet, és a következő 12 speciális karaktert:
?,:[szóköz]+-;!/=()
36+10+12 = 58 karakter.
Mivel lehet rövidebb is, mint 8 karakter, a következőt kell kiszámolni:
58+58^2+58^3+58^4+58^5+58^6+58^7+58^8
Ezt elosztva 17 millióval kijön, hogy 7665282 másodperc kell maximum a feltöréshez. Feltéve, hogy a használt jelszavak egyenletesen oszlanak el, átlagosan fele ennyi időbe telik feltörni a file-okat, azaz 3832641 másodpercig. A többi számolást már nem pötyögöm ide, de a lényeg, hogy átlagosan 44 napig tart feltörni egy ilyen zip file-t. Ha neked van ilyesmire másfél hónapod(rossz esetben majdnem 3), akkor nagyon irigyellek :D
Továbbá, lehet, hogy most azt gondolod magadban, hogy "fú de fasza, csak 44 nap, akkor megszerzem az FBI-tól a FBI_top_secret_who_killed_john_kennedy.zip-et, aztán jól feltöröm, és meggazdagszok belőle", azért az jusson eszedbe, hogy az FBI is pontosan tudja ezt, amit leírtam, ezért nem 8 karakter hosszú, hanem mondjuk 60 karakter hosszú jelszavakat használnak a zip-ek titkosításához(persze nyilván nem sz-arakodnak ők zip-el, ez csak egy példa :) ), úgyhogy még ha a világ összes szuperszámítógépének számítási kapacitása is a birtokodban lenne, akkor is hamarabb zuhanna bele a Föld a Napba, minthogy te végezz a töréssel.
Összegezve: teljesen felesleges a brute force-al sz-arakodni, soha az életben semmilyen értelmes, értékes információhoz nem fogsz így hozzájutni, legfeljebb a szomszéd Pistike bezip-elt szerelmeslevelét fogod feltörni, amit Marikának küldött email-ben, és aminek az a jelszava, hogy "marika". És lehet, hogy neked ettől dagad majd a kukid a nadrágodban, hogy milyen ügyes "hekker" vagy, de inkább nőj fel, és hagyd az ilyen gyerekes f-szságokat.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!