Hashcat na M1

Jakiś czas temu pisałem o przesiadce na M1. Musiałem użyć hashcata i… przypomniało mi się, że nowe M1 ma poważną zaletę, w postaci szybkości. Żeby zobaczyć faktyczną różnicę, pozwoliłem sobie na nanobenchmark.

Nawiązując do starego wpisu o przyspieszaniu hashcata, sprawdziłem md5crypt:

* Hash-Mode 500 (md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)) [Iterations: 1000]
Speed.#1.........:  1902.0 kH/s (53.57ms) @ Accel:512 Loops:500 Thr:32 Vec:1

Drobne cztery razy szybciej w stosunku do starego laptopa. Nie powala, ale wzrost przyjemny. Sprawdźmy więc inne typy hashy:

METAL API (Metal 263.8)
=======================
* Device #1: Apple M1 Pro, 10880/21845 MB, 16MCU

OpenCL API (OpenCL 1.2 (Apr 19 2022 18:44:44)) - Platform #1 [Apple]
====================================================================
* Device #2: Apple M1 Pro, skipped

Benchmark relevant options:
===========================
* --optimized-kernel-enable

-------------------
* Hash-Mode 0 (MD5)
-------------------

Speed.#1.........:  5713.7 MH/s (92.80ms) @ Accel:1024 Loops:1024 Thr:32 Vec:1

----------------------
* Hash-Mode 100 (SHA1)
----------------------

Speed.#1.........:  2031.9 MH/s (64.99ms) @ Accel:256 Loops:1024 Thr:32 Vec:1

---------------------------
* Hash-Mode 1400 (SHA2-256)
---------------------------

Speed.#1.........:   598.6 MH/s (54.90ms) @ Accel:64 Loops:512 Thr:64 Vec:1

Jakieś dwanaście razy szybciej w przypadku MD5 w stosunku do poprzedniego laptopa. Albo połowa wydajności Tesla 4. Miło. Jako podręczna maszynka w zupełności wystarczające.

Wszystkie powyższe wyniki benchmarków robione dla M1 z 10 core CPU i hashcata w wersji v6.2.5-516-g372d3a127.

Tym, którzy nie mają dostępu do M1, zostają inne sposoby, np. poproszenie Google o użyczenie mocy obliczeniowej.

All your PESEL are belong to us!

Wpis na Sekuraku o łamaniu hasła do PDF za cztery zł odwoływał się do wpisu na Informatyku zakładowym w tym temacie. Oba opierały się o generator numerów PESEL. Rzuciłem okiem na program i stwierdziłem, że nie jest kompletny. Nie obsługuje bowiem wszystkich lat. Co gorsza C# wydał mi się średnim wyborem – uruchomienie pod Linuksem wymaga doinstalowania dodatkowych pakietów, trudniejsze w rozwijaniu.

Postanowiłem ulepszyć i napisałem własną wersję generatora numerów PESEL. Zasadnicza różnica to obsługa wszystkich lat objętych specyfikacją PESEL. Dodatkowo można generować numery PESEL dla dowolnych zakresów. Takie ficzery przydatne przy pentestach.

Program nie jest specjalnie szybki – każdy rok na moim sprzęcie to ok. 2 sekundy. Z drugiej strony nie jest tak źle z prędkością . Oryginał działał 80 sekund według autora, mój dla tych samych lat – 113 sekund[1]. Oczywiście nasze sprzęty mogą się różnić, niemniej różnica nie jest drastyczna. Poza tym, słownik generuje się raczej rzadko.

Generator numerów PESEL raczej nie będzie rozwijany. No chyba, że ktoś znajdzie błędy. Może komuś się przyda.

[1] Wszystkie czasy podaję dla uruchomienia przy pomocy PyPy.

Advent of Cyber

Jakiś czas temu pisałem o Advent of Code. Uspokajam, że bawię się co roku. W zeszłym nawet z pewnymi sukcesami, przynajmniej według mojej subiektywnej oceny. Jednak nie samym programowaniem człowiek żyje. Jeśli ktoś interesuje się – albo zamierza interesować się – bezpieczeństwem komputerowym, to informuję, że jest coś takiego jak Advent of Cyber.

Wydarzenie ma za zadanie naukę podstaw IT security poprzez codzienne, proste zadania. Czyli nieco podobnie jak w przypadku Advent of Code. Na tym jednak podobieństwa się kończą. Zacząłem korzystać wczoraj, więc mogę nie mieć pełnego oglądu, ale pozwolę sobie na podsumowanie dotychczasowych spostrzeżeń.

Advent of Cyber ma trochę przyległości[1]. W pierwszym zadaniu jest spore parcie na obserwowanie firmy w social media. Co prawda tylko deklaratywne, ale jest. Całość też jest zauważalnie związana z platformą organizatora. Za to, w przeciwieństwie do Advent of Code, są nagrody rzeczowe losowane wśród uczestników.

Kolejna różnica, to zapewnienie pełnych materiałów edukacyjnych. Try Hack Me, czyli organizator to serwis oferujący szkolenia security i nie jest tu inaczej. Do pierwszego zadania było podane pełne wytłumaczenie podatności. Czyli w zasadzie zero wyzwania. Dla przypomnienia w Advent of Code dostajemy tylko treść zadania i trzeba kombinować samodzielnie od początku do końca.

Teoretycznie wymagane jest zestawienie tunelu VPN, ale organizator zapewnia maszynę wirtualną dostępną przez przeglądarkę. Jedyne ograniczenie to czas dostępności dla darmowych kont – jest to jedna godzina dziennie. Wydaje mi się, że powinno w zupełności wystarczyć na zadania z eventu.

Wydarzenie zaczęło się wczoraj, ale nie jest to żadna przeszkoda, by dołączyć. Można traktować je jako wprowadzenie do CTFów. Formuła podobna – zadania do zrobienia, flagi do zdobycia. Planuję się pobawić, trochę dla odświeżenia wiedzy, trochę dla bliższego zapoznania z platformą.

UPDATE: Po pierwszych paru dniach mogę potwierdzić spostrzeżenie po pierwszym dniu. To wydarzenie raczej edukacyjne, z gotowcami lub praktycznie gotowcami, niż wyzwanie. Nie jest to zarzut, a stwierdzenie faktu.

[1] Strings attached byłoby tu idealnym określeniem, nie znam polskiego odpowiednika.