Taggat med: hashcat

🐈 Flertalet nya hashcat-releaser

Det populära lösenordsknäckarverktyget hashcat version 7.0.0 släpptes nyligen efter mer än två års utveckling och över 900 000 rader med kodändringar. Versionen introducerade även Assimilation Bridge, som möjliggör att hashcat kan använda externa beräkningsresurser såsom CPU, FPGA och tolkningsmiljöer direkt i hash‑pipeline. Även Python Bridge, som tillåter implementation av hashmatchningslogik i Python utan behov av omkompilering. Och detta utan att kompilera med stöd för multitrådning. En ny regelmotor Virtual Backend Devices möjliggör att en fysisk GPU kan delas upp i flera logiska enheter för bättre parallell exekvering. Detta släpp införde även automatisk hashmod-detektion så att flaggan -m kan utelämnas eller alternativt –identify kan användas. Mycket efterlängtad funktion som funnits i exmepelvis John the Ripper sedan urminnes tider.

Algoritmsupporten utökades med 58 nya specifika hash-typer (bland annat Argon2, MetaMask, LUKS2, OpenSSH, GPG) men även 20 st extraheringsverktyg för format som APFS, VirtualBox, BitLocker och wallet-format. Prestandan förbättrades genom en ny autotuner och bättre minneshantering, varigenom tidigare 4 GB-gräns togs bort och effektivare utnyttjande över flera enheter blev möjligt. Specifika hash-modar visade stora förbättringar: scrypt upp till +320 %, NetNTLMv2 på Intel +223 %, och RAR3 +54 %.

Backend-stöd förbättrades också: AMD HIP prioriteras numera över OpenCL, och macOS-användare får native Metal-stöd med full Apple Silicon-kompatibilitet och stora hastighetsförbättringar. För utvecklare tillkom förbättrad diagnostik, bättre testtäckning, regelmotorförbättringar och JSON-utdata.

Två veckor senare släpptes version 7.1.0 en mindre men viktig uppdatering med bl.a. nya algoritmer (se nedan).

Lista med algoritmer som finns med i version 7.1.0:

  • AS/400 DES
  • AS/400 SSHA1
  • Blockchain, My Wallet, Legacy Wallets
  • Cisco-ISE Hashed Password (SHA256)
  • LUKS2 (Argon2i KDF type)
  • KeePass (KDBX v4)
  • SAP CODVN H (PWDSALTEDHASH) isSHA512
  • sm3crypt $sm3$, SM3 (Unix)
  • BLAKE2b-256
  • BLAKE2b-256($pass.$salt)
  • BLAKE2b-256($salt.$pass)
  • MD6 (256)
  • sha224($pass.$salt)
  • sha224($salt.$pass)
  • sha224(sha1($pass))
  • sha224(sha224($pass))

Exempel på när hashcat körs i en docker-container:

$ docker run --rm --gpus=all -it hashcat bash
root@d1d5c5b61432:~/hashcat# ./hashcat.bin -I
hashcat (v7.1.0) starting in backend information mode
CUDA Info:
==========
CUDA.Version.: 12.9
Backend Device ID #01
  Name...........: NVIDIA GeForce RTX 4090
  Processor(s)...: 128
  Preferred.Thrd.: 32
  Clock..........: 2565
  Memory.Total...: 24080 MB
  Memory.Free....: 23664 MB
  Memory.Unified.: 0
  Local.Memory...: 99 KB
  PCI.Addr.BDFe..: 0000:01:00.0

I förrgår släpptes även en hotfix som fick version 7.1.1 som åtgärdar ett problem med LUKS2 och KeePass (KDBX4).

Ny version av John the Ripper

John the Ripper

Det var över 4 år sedan en ny version av programvaran John the Ripper (JtR) släpptes. JtR är en av mina favoritverktyg när det gäller att knäcka lösenord (tätt följt av hashcat).

Den nya versionen heter John the Ripper 1.9.0-jumbo-1 och över 6000 commits ligger bakom denna release.

Nyheterna är bl.a. följande:

  • Snabbare och effektivare inläsning av mycket stora lösenordsfiler
  • Stöd för 7 st hash-typer i FPGA:n ZTEX 1.15y
  • Inget mer stöd för CUDA. Istället satsas på OpenCL
  • Och på tal om OpenCL så supportas 88 algoritmer, se listan med –list=formats –format=opencl
  • För CPU-knäckning (till skillnad mot GPU) så stödjs hela 407 olika format
  • AES-NI instruktioner används i större omfattning

Du kan ladda hem JtR här:

Hashcat version 5.1.0 är nu släppt

STÖK-Fredrik tipsade om att en ny intressant version av Hashcat precis har släppts. Förutom de sedvanliga buggfixarna så finns det nu ett stöd för omskrivning för olika tangentbord när det gäller knäckning av VeraCrypt/TrueCrypt diskar.

För att förklara ytterligare: Oavsett vilken tangentbordslayout du har när du väljer ditt lösenord för kryptering av VC/TC-diskar så kommer tangentbordslayouten att vara US. Detta gör att sökrymden blir mindre eftersom flertalet specialtecken förenklas. Ta exempelvis följande exempel:

بين التخصصات blir fdk hgjowwhj[g

Så för varje tangentbordslayout så måste det finnas en mapping-fil. Det finns enbart för tyska i dagsläget men utvecklarna av hashcat vill gärna få in pull-requests via Github.

Changeloggen i sin helhet hittar du här:

  • OpenCL Devices: Add support for up to 64 OpenCL devices per system
  • OpenCL Platforms: Add support for up to 64 OpenCL platforms per system
  • OpenCL Runtime: Use our own yielding technique for synchronizing rather than vendor specific
  • Startup: Show OpenCL runtime initialization message (per device)
  • xxHash: Added support for using the version provided by the OS/distribution

Fixed Bugs:

  • Fixed automated calculation of brain-session when not using all hashes in the hashlist
  • Fixed calculation of brain-attack if a given wordlist has zero size
  • Fixed checking the length of the last token in a hash if it was given the attribute TOKEN_ATTR_FIXED_LENGTH
  • Fixed endianness and invalid separator character in outfile format for hash-mode 16801 (WPA-PMKID-PMK)
  • Fixed ignoring –brain-client-features configuration when brain server has attack-position information from a previous run
  • Fixed invalid hardware monitor detection in benchmark mode
  • Fixed invalid warnings about throttling when –hwmon-disable was used
  • Fixed missing call to WSACleanup() to cleanly shutdown windows sockets system
  • Fixed missing call to WSAStartup() and client indexing in order to start the brain server on Windows
  • Fixed out-of-boundary read in DPAPI masterkey file v2 OpenCL kernel
  • Fixed out-of-bounds write in short-term memory of the brain server
  • Fixed output of –speed-only and –progress-only when fast hashes are used in combination with –slow-candidates
  • Fixed selection of OpenCL devices (-d) if there’s more than 32 OpenCL devices installed
  • Fixed status output of progress value when -S and -l are used in combination
  • Fixed thread count maximum for pure kernels in straight attack mode

Technical:

  • Brain: Set –brain-client-features default from 3 to 2
  • Dependencies: Added xxHash and OpenCL-Headers to deps/ in order to allow building hashcat from GitHub source release package
  • Dependencies: Removed gitmodules xxHash and OpenCL-Headers
  • Keymaps: Added hashcat keyboard mapping us.hckmap (can be used as template)
  • Keymaps: Added hashcat keyboard mapping de.hckmap
  • Hardware Monitor: Renamed –gpu-temp-abort to –hwmon-temp-abort
  • Hardware Monitor: Renamed –gpu-temp-disable to –hwmon-disable
  • Memory: Limit maximum host memory allocation depending on bitness
  • Memory: Reduced default maximum bitmap size from 24 to 18 and give a notice to use –bitmap-max to restore
  • Parameter: Rename –nvidia-spin-damp to –spin-damp (now accessible for all devices)
  • Pidfile: Treat a corrupted pidfile like a not existing pidfile
  • OpenCL Device: Do a real query on OpenCL local memory type instead of just assuming it
  • OpenCL Runtime: Disable auto-vectorization for Intel OpenCL runtime to workaround hanging JiT since version 18.1.0.013
  • Tests: Added hash-mode 11700 (Streebog-256)
  • Tests: Added hash-mode 11750 (HMAC-Streebog-256 (key = $pass), big-endian)
  • Tests: Added hash-mode 11760 (HMAC-Streebog-256 (key = $salt), big-endian)
  • Tests: Added hash-mode 11800 (Streebog-512)
  • Tests: Added hash-mode 11850 (HMAC-Streebog-512 (key = $pass), big-endian)
  • Tests: Added hash-mode 11860 (HMAC-Streebog-512 (key = $salt), big-endian)
  • Tests: Added hash-mode 13711 (VeraCrypt PBKDF2-HMAC-RIPEMD160 + XTS 512 bit)
  • Tests: Added hash-mode 13712 (VeraCrypt PBKDF2-HMAC-RIPEMD160 + XTS 1024 bit)
  • Tests: Added hash-mode 13713 (VeraCrypt PBKDF2-HMAC-RIPEMD160 + XTS 1536 bit)
  • Tests: Added hash-mode 13721 (VeraCrypt PBKDF2-HMAC-SHA512 + XTS 512 bit)
  • Tests: Added hash-mode 13722 (VeraCrypt PBKDF2-HMAC-SHA512 + XTS 1024 bit)
  • Tests: Added hash-mode 13723 (VeraCrypt PBKDF2-HMAC-SHA512 + XTS 1536 bit)
  • Tests: Added hash-mode 13731 (VeraCrypt PBKDF2-HMAC-Whirlpool + XTS 512 bit)
  • Tests: Added hash-mode 13732 (VeraCrypt PBKDF2-HMAC-Whirlpool + XTS 1024 bit)
  • Tests: Added hash-mode 13733 (VeraCrypt PBKDF2-HMAC-Whirlpool + XTS 1536 bit)
  • Tests: Added hash-mode 13751 (VeraCrypt PBKDF2-HMAC-SHA256 + XTS 512 bit)
  • Tests: Added hash-mode 13752 (VeraCrypt PBKDF2-HMAC-SHA256 + XTS 1024 bit)
  • Tests: Added hash-mode 13753 (VeraCrypt PBKDF2-HMAC-SHA256 + XTS 1536 bit)
  • Tests: Added hash-mode 13771 (VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 512 bit)
  • Tests: Added hash-mode 13772 (VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 1024 bit)
  • Tests: Added hash-mode 13773 (VeraCrypt PBKDF2-HMAC-Streebog-512 + XTS 1536 bit)
  • Tests: Added VeraCrypt containers for Kuznyechik cipher and cascades
  • Tests: Added VeraCrypt containers for Camellia cipher and cascades

Ny GPU-instans från Amazons molntjänst EC2

amazon-web-servicesAmazon har en molnjänst vid namn EC2 där du kan hyra datorkapacitet per timme. De har nu lanserat en ny GPU-instans som gör att du kan knäcka lösenord ännu snabbare, något som vi som jobbar med IT-säkerhet gillar.

Den nya instansen heter p2.16xlarge och har 16 st GPU-kärnor och körs med ett Nvidia Tesla K80-grafikkort. Det går så klart inte att jämföra med exempelvis Nvidia Titan X men du slipper springa iväg till affären och köpa ett grafikkort eller en häftig Sagitta Brutalis. Kostnaden för en instans av p2.16xlarge ligger på$14.4 vilket är ca 123 SEK/h.

Här kommer några färska prestandasiffror som jag just hämtade in från en instans som jag startade upp och konfigurerade på under 10 minuter:

$ ./hashcat64.bin -b
hashcat (v3.10) starting in benchmark-mode...

OpenCL Platform #1: NVIDIA Corporation
======================================
- Device #1: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #2: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #3: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #4: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #5: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #6: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #7: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #8: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #9: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #10: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #11: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #12: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #13: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #14: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #15: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #16: Tesla K80, 2859/11439 MB allocatable, 13MCU

Hashtype: MD5

Speed.Dev.#1: 4232.2 MH/s (93.96ms)
Speed.Dev.#2: 4228.3 MH/s (94.21ms)
Speed.Dev.#3: 4179.4 MH/s (95.75ms)
Speed.Dev.#4: 4246.1 MH/s (96.86ms)
Speed.Dev.#5: 4488.8 MH/s (92.94ms)
Speed.Dev.#6: 4460.2 MH/s (91.24ms)
Speed.Dev.#7: 4314.4 MH/s (94.73ms)
Speed.Dev.#8: 4569.5 MH/s (88.65ms)
Speed.Dev.#9: 4465.4 MH/s (90.92ms)
Speed.Dev.#10: 4147.8 MH/s (95.67ms)
Speed.Dev.#11: 4426.8 MH/s (93.48ms)
Speed.Dev.#12: 4078.0 MH/s (98.75ms)
Speed.Dev.#13: 4339.8 MH/s (94.58ms)
Speed.Dev.#14: 4459.1 MH/s (91.09ms)
Speed.Dev.#15: 4263.1 MH/s (94.88ms)
Speed.Dev.#16: 4221.2 MH/s (93.16ms)
Speed.Dev.#*.: 69120.1 MH/s

Och med den GPU-instansen hos Amazon som var snabbast tidigare så såg det ut så här när det gäller MD5:

Hashtype: MD5

Speed.Dev.#1.: 1714.1 MH/s (95.69ms)
Speed.Dev.#2.: 1705.1 MH/s (96.22ms)
Speed.Dev.#3.: 1714.5 MH/s (95.36ms)
Speed.Dev.#4.: 1726.3 MH/s (95.01ms)
Speed.Dev.#*.: 6860.0 MH/s

Så en klart förbättring.

🐈 Hashcat och oclHashcat nu öppen källkod

hashcat

Hashcat och oclHashcat har nu släppts som öppen källkod på Github. Verktygen används för att knäcka lösenord och är ett bra alternativ till John the Ripper. Att Hashcat nu är öppen källkod kommer eventuellt göra att stöd för fler plattformar och algoritmer kommer in snabbare samt så är det bra för många av oss som jobbar med slutna projekt.

World’s fastest and most advanced GPGPU-based password recovery utility

Främst används oclHashcat för dess stöd när det gäller GPU:er och (AMD) OpenCL samt (Nvidia) CUDA.

Även så stödjer hashcat hela 170 olika lösenordshashar från vanliga såsom MD5, SHA-512, SHA-3 och mer ovanliga såsom Streebog, Juniper, Lastpass och 1Password.

Hashcat Prestada

För att förstå hur bra prestanda hashcat har så finnes följande exempel med fyra olika datorer utrustade med diverse hårdvara:

  • PC1: Windows 7, 32 bit
  • Catalyst 14.9
  • 1x AMD hd7970
  • 1000mhz core clock
  • oclHashcat v1.35
  • PC2: Windows 7, 64 bit
  • ForceWare 347.52
  • 1x NVidia gtx580
  • stock core clock
  • oclHashcat v1.35
  • PC3: Ubuntu 14.04, 64 bit
  • ForceWare 346.29
  • 8x NVidia Titan X
  • stock core clock
  • oclHashcat v1.36
  • PC4: Ubuntu 14.04, 64 bit
  • Catalyst 14.9
  • 8x AMD R9 290X
  • stock core clock
  • oclHashcat v1.35

 

Hash Type PC1 PC2 PC3 PC4
MD5 8581 Mh/s 2753 Mh/s 115840 Mh/s 92672 Mh/s
SHA1 3037 Mh/s 655 Mh/s 37336 Mh/s 31552 Mh/s
SHA256 1122 Mh/s 355 Mh/s 14416 Mh/s 12288 Mh/s
SHA512 414 Mh/s 104 Mh/s 4976 Mh/s 4552 Mh/s
SHA-3 (Keccak) 179 Mh/s 92 Mh/s 3400 Mh/s 2032 Mh/s
RipeMD160 1810 Mh/s 623 Mh/s 23936 Mh/s 20016 Mh/s
Whirlpool 65845 kh/s 85383 kh/s 1480000 kh/s 1122304 kh/s
LM 1388 Mh/s 450 Mh/s 15616 Mh/s 16392 Mh/s
NTLM 16916 Mh/s 4185 Mh/s 250360 Mh/s 175808 Mh/s
NetNTLMv1 9108 Mh/s 2330 Mh/s 56448 Mh/s 97800 Mh/s
NetNTLMv2 589 Mh/s 200 Mh/s 7944 Mh/s 6496 Mh/s
WPA/WPA2 142 kh/s 48 kh/s 2096 kh/s 1536 kh/s

Länk till Github: