Brute force password guessing - STU-IT/raspi17 GitHub Wiki
Du skal gætte password'et til en zip-fil, der er krypteret med password. Metoden vi bruger er baseret på at gætte med forskellige passwords, indtil vi finder et der virker.
Se Violent Python, Chapter 1, side 20 og frem.
Du skal også bruge filen CH1.zip, som indeholder filerne du skal bruge.
I teksten omtales nogle systemfiler på *nix systemer. Dem kan du finde i /etc
på RaspberryPi'en.
Prøv:
cat /etc/passwd
Bemærk at der ikke længere er nogen krypterede passwords i filen. Linux og Unix folkene har ændret praksis, pga. disse sårbarheder.
Hvis vi kigger i /etc/shadow
kan vi se at der stadig er krypterede passwords der. Nu dog stærkere krypterede.
cat /etc/shadow
duer ikke, fordi det kun er root der har adgang.
sudo cat /etc/shadow
Hvis du skal bruge shadow
-filen fra dine script vil jeg foreslå at du kopierer filen med
sudo cp /etc/shadow ~/Desktop/<mappe>
til en mappe du har dit python script i,
og ændrer rettigheder på den så du kan læse og skrive i kopien uden sudo:
sudo chmod o+rw ~/Desktop/<mappe>
Shadow filen er, på nuværende linuxer, "krypteret" med sha512 algoritmen.
- Du skal finde en en python funktion til at generere sha512-encoding, og lave en version af
passwdCrack.py
hvor vi kan knække nutidens passwords. Formatet af passwordet i shadowfilen er anderledes, se manualen for pythons crypt library. (find selv siden... med google). Det må være muligt at bruge<str>.split(<noget>)
til at skille dele ud fra passwordet.- Prøv om du kan bruge vedlagte ordliste fra Dansk Sprognævn. Der er også noget med formatet, her...
# crack passwd program
for alle brugere i shadow-filen
split linien i (på :)
1) bruger navn
2) hashet pw m. salt
kald funktionen testPass
(inden i funktionen testPass)
split hash-streng i (på $)
1) salt og
2) pw
for alle ord i dictionary (eller reststavnings ordbogen)
crypt ordet med salt fra shadow-filen
sammenlign pw og crypt
hvis ens
udskriv match
og afbryd funtionen (med return)
ellers
fortsæt med næste