Deszyfrowanie haseł - bcrypt oraz crc16

0

Witam, mam oto 2 hasełka, zaszyfrowane, w 90% jestem przekonany że odkryłem jakim algorytmem są zaszyfrowane. Po wielu godzinach szukania w necie nie znalazłem odpowiedzi/rozwiązania jak z deszyfrować owe hasła ... Ktoś miał może do czynienia z konkretnym szyfrem ? Uprzedzam pytania po co - takie zadanie ze sql ... :)

1 HASŁO
b1f1 (Strona która identyfikuje szyfry, podpowiada że to crc16)

2 HASŁO
$2b$10$fhC6bHFpfs/texxDk1.QJu5ngSPwppWz7vKseeZS9zhM2y7V5gevW (stwierdzam że to jest bcrypt)

PS: Bawiłem się w hashcat ... Ogólnie to mi nawet zwykłego md5 nie odszyfrowuje w tym programie, po prostu nie wyświetla mi się odszyfrowana wersja ...

7

Odpowiedź: bcrypt oraz crc16 to nie są szyfry. Bcrypt jest kryptograficzną funkcją haszującą, i z założenia nie da się jej odwrócić (chyba, że się "trafi" poprawne hasło, i okaże się że zahashowane wyjdzie to samo). crc16 jest sumą kontrolną. Tutaj też nici z odwrócenia, ale ze zgoła innego powodu - jedno na każde 65 tysięcy stringów będzie miało to samo crc16. W efekcie, możliwych haseł jest tylko troszkę mniej, niż gdyby crc16 nie znać wcale.

2

crc16 możesz odszyfrować szukając słownikowo, np. tym: https://www.kocianjiri.com/hash_knife/
bcrypt jest lekko nowocześniejsze i możesz mieć duże problemy żeby to odkodować
Kolega @enedil nie wziął pod uwagę, że funkcje hashujące są do złamania tylko nie nazywa się tego deszyfracją.
Zobacz jeszcze https://www.hackingarticles.in/5-ways-create-dictionary-bruteforcing/

3

"nie zadano by mi czegoś niewykonalnego"
a co miał wypisane w oczach autor zadania? Moze chodzi o jakiś cezarów itd?

To zadanie na jakim poziomie? Rekrutacja na securitowca? Zadanie studenckie? Szkolne?

Greedri napisał(a):

1 HASŁO
b1f1 (Strona która identyfikuje szyfry, podpowiada że to crc16)

To, że mityczna strona ocenia dość krótkiego integera jako liczbę CRC, to mnie nie dziwi (skoro musi COŚ wypisać)

Widzę, ze klepiesz po jakiś stronkach, przyjmujesz na wiarę co piszą, a masz braki w podstawach teoretycznych.
Nie mówię, ze masz (jak w pięknym umyśle) intuicyjnie odczytywać szyfry, ale brak odróżniania funkcji hashujących od szyfrowania to brak niemal dyskwalifikujący.

update: MD5 to też hash a nie szyfr

0

@AnyKtokolwiek: To zadanie na jakim poziomie? Rekrutacja na securitowca? Zadanie studenckie? Szkolne? ---> Szkolne, jako zadanie dla chętnych. I fakt, prawie żadnej wiedzy nie mam w tym temacie, jednakże jakieś okruszki wiedzy wyskrobałem z internetu, albo raczej własną interpretacje.

1

@Greedri: daj całą treść zadania, bo inaczej powiem Ci, że się nie da. Możesz co najwyżej znaleźć kolizje, co dla CRC16 jest proste (wydaje mi się, że z odrobiną pracy byłbyś w stanie zrobić to "ręcznie"). W przypadku bcrypt, jeśli nie masz jakichś innych podpowiedzi, to nie zrobisz tego. I nawet jakbyś miał całą moc obliczeniową świata to nie zrobisz tego przed śmiercią termiczną wszechświata.

0

To jeszcze może sprawdź czy pozostałe klucze nie pasują do tego z bcrypt, bo ten bcrypt jest do złamania jeśli się okaże że pasuje do któregoś z już złamanych.

https://en.wikipedia.org/wiki/Bcrypt

  • masz już algorytm ($2b)
  • masz koszt ($10 = 2^10)
  • masz salt (23 znaki po ostatnim $)
  • masz hash

Wg mojej niewielkiej wiedzy n.t. wystarczy że policzysz przy podanych wyżej parametrach hash dla wybranych wartości:

  • haseł już złamanych
  • słów pokrewnych

i porównasz z hashem z zadania.

Może te hasła stanowią jakiś sensowny ciąg? np. password1, password2, password3 ?

0

To zahaszowane hasło jest w necie:
hash_code.png

Niestety to fragment jakiejś dynamicznej podstrony (komentarz?) który aktualnie nie jest widoczny, więc jeśli chcesz się dowiedzieć co tam było to musisz pogrzebać.
Być może jest tam wspomniane odkodowane hasło.

0

Dostałem nowa konkretną podpowiedź, hasło z bcrypta zawiera 11 znaków w tym 2 duże litery i 9 małych . Próbowałem w hashcat w Linuxie kali, z pomocą słownika rockyou.txt złamać hasha. Nie udało mi się zapisać tak polecenia aby ze słownika wybierało mi tylko 11 znakowe słowa. Używając maski przy -a6, dopisywało mi jedynie różne stringi do konkretnego słowa ze słownika - to nie jest to co chciałem osiągnąć :/ Jakieś pomysły ?

Ps: Hash crc16, hasło składa się z 8 znaków i w tym zawiera jeden znak specjalny . Ogólnie nie mam totalnie pojęcia jak się zabrać za crc16. Bo zgadywać hasła, nie mam zamiaru:/

3
  1. Łopanie, przecież rockyou to ci całe przemieli szybko i nie trzeba się bawić w jakieś wybieranie niczego ;)
  2. Bez sensu, bo takich crc16 to można nagenerować tysiące przecież, niejako od kopa. Przecież będziesz mieć kolizje średnio co 32 tysiące prób. Wygeneruj pierwsze lepsze i elo. Dowolne hasło które spełnia te kryteria (8 znaków w tym 1 specjalny) wygenerujesz w sekunde. Byle wieśniackie:
    target = 0xb1f1
    while True:
        import string
        for prefix in itertools.product(string.ascii_letters, repeat=7):
            test = ''.join(prefix) + '!'
            if crc16(test) == target:
                print(test)

powinno działać od kopa, niemniej cytując wykipedie twenty-two conflicting definitions of CRC-16 :D więc JAKIE crc16? :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1