W systemie OS X 10.11 - otworzyłem .plist
plik użytkownika i zajrzałem do jego wnętrza.
Zrobiłem to za pomocą następującego polecenia:
sudo defaults read /var/db/dslocal/nodes/Default/users/<username>.plist ShadowHashData|tr -dc 0-9a-f|xxd -r -p|plutil -convert xml1 - -o -
Plik powiedział SALTED-SHA512
w nim, więc założyłem, że to skrót SHA512.
Poszedłem jednak na kilka stron generujących hash SHA512 i wprowadziłem hasło. W końcu otrzymałem inny skrót niż to, co było w .plist
pliku.
Jak więc przekonwertować zawartość .plist
pliku na rzeczywistą wartość skrótu lub dokładnie, jaki typ wartości skrótu jest przechowywany w pliku?
macos
el-capitan
password
Flare Cat
źródło
źródło
SALTED-SHA512-PBKDF2
(OS X 10.10)!/var/db/shadow/hash
?Odpowiedzi:
Łamanie haseł (ważne w OS 10.8 i nowszych)
Najpierw chcę wyjaśnić twoje polecenie:
Pierwsza część polecenia czyta klucz ShadowHashData na liście
Wynik (głównie hex):
druga część polecenia
tr -dc 0-9a-f
usuwa wszystko oprócz 0-9a-f.Wynik (hex):
trzecia część
xxd -r -p
przekształca go w (źle sformułowany) plik binarny:a ostatnia część
plutil -convert xml1 - -o -
tworzy dobrze sformułowany plik XML:Aby uzyskać prawdziwy plik, zastąp
-o -
go-o ~/Desktop/tempuser.plist
Plist zawiera trzy kluczowe części: iteracje , entropię i sól .
iteracje to tylko liczba całkowita, ale entropia i sól są zakodowane w base64. Aby kontynuować pracę z nimi, musisz je zdekodować i xxd:
Aby zdekodować sól, usuń wszystkie spacje i nowe wiersze z części danych i użyj
Z moimi danymi powyżej to
z wynikiem soli (hex):
To samo dotyczy entropii:
z wynikiem entropii (hex):
Jeśli potrzebujesz pliku tekstowego, aby hashcat złamał hasło, musisz połączyć znalezione dane mieszania w jeden ciąg:
W moim przykładzie dane mieszające, które:
Zapisz to w pliku o nazwie hash.txt i użyj go w hashcat. Prawidłowe polecenie brute force do znalezienia hasła (= moje proste hasło testowe zawierające tylko 4 cyfry) to:
Wynikowe hasło po 3 minutach łamania (na maszynie wirtualnej) to 1111 .
Teraz odwrotnie: tworzenie ShadowHashData (ważne w OS 10.8 i nowszych)
To wyjaśnia, dlaczego nie można użyć prostego generatora skrótu SHA512 do utworzenia danych „hasła”. SHA512 jest jednak nadal ważny. Tło wyjaśniono tutaj: PBKDF2-Key_derivation_process .
Potrzebujesz:
utworzyć DK = PBKDF2 (PRF, hasło, sól, c, dkLen)
Aby utworzyć DK ~ klucz entropii w SALTED-SHA512-PBKDF2 (jedyna część listy pośredniej, która opiera się na haśle), użyj php hash_pbkdf2 :
W Terminalu (potrzebny jest PHP is 5.5) wpisz:
Łańcuch używany w $ salt jest ucieczką heksadecymalną (\ x) prezentacji salt (hex):
0dba6246 ... -> \ x0d \ xba \ x62 \ x46 ...
Ponieważ możesz zdefiniować lub znać algorytm skrótu (musi to być sha512 dla komputerów Mac 10.8 i nowszych), iteracje (liczba większa od zera i mniejsza niż 2 ^ 32-1), sól (długość 64 bajtów hex, ale losowa!) I długość (256 bajtów) możesz utworzyć dobrze uformowany pośredni plik plist, odwracając wszystkie powyższe polecenia.
Odwracając swoje polecenie (lepiej: każda z podkomend) od pierwszego kroku, możesz utworzyć dane klucza ShadowHashData w oryginalnym pędzie za pomocą pisma pośredniego.
I aby w końcu odpowiedzieć na twoje pytanie: algorytm mieszający używany do przetwarzania hasła OS X (i innych danych takich jak sól) to SHA512. Ale nie możesz powiedzieć, że twoje hasło użytkownika jest przechowywane jako skrót SHA512 .
Twoje hasło i sól są wielokrotnie grillowane przez sha512, a następnie wynik jest base64'ed i odwrotnie xxd'ed. Wraz z solą i iteracjami jest ponownie xxd'ed i base64'ed.
Mam nadzieję, że nie zapomniałem o żadnym kroku.
źródło
Będziesz potrzebować soli z konta użytkownika w tym systemie. To losowy ciąg znaków wymyślony dla ciebie podczas tworzenia konta (a może, kiedy być może ostatnio zmieniłeś hasło). Musisz to dodać do swojego hasła, np .:
[ten ogromny kawałek liczb poniżej ...] [twoje hasło]
Nie jestem pewien, czy jest to dodane z przodu czy z tyłu: [twojeHasło] [sól]? kto wie.
Dla użytkownika
USERNAME
możesz zobaczyć skrót tutaj:Potem wychodzi:
Co ciekawe, chociaż zmieniłem niektóre losowo wyglądające bloki liczbowe powyżej, więc Stack nie dostaje mojej soli (możesz zauważyć kilka powtarzających się losowych bloków, które były moją pracą z wklejaniem!), Ale nie wkleiłem tych na końcu. … Wydaje się, że na końcu rozpuszczają się w zera, te 512 skrótów SHA jest interesujące !!!
PS. Przenieśli to trochę… kiedyś były bardzo dobrze ukryte. Zgubiłem się i nie mogłem znaleźć mojego (patrz poniżej), jest ukryty w jakiejś nikczemnej strukturze folderów z „Nam!
źródło