hashcat

hashcat er et password crack tool. Og pt er den også den hurtigste siger de selv. Man bruger en mask for at beskrive hvor langt og hvilken type password som skal findes. For at installere hashcat skal du skrive. $ sudo apt-get update && sudo apt-get install hashcat Derefter er du klar til at lære lidt om brug af hashcat. Jeg bruger her version: 4.0.1 Første parameter er -m den beskriver hvilken hash mode/type som skal bruges. Der er over 200 og flere kommer til. Hvilken type du skal bruge bestemmes af hvilken type password du skal finde. Så derfor er det vigtigt at finde typen af hash som bliver brugt inden du går i gang. Nogle hash har signaturer, der giver en stærk indikation af hvilken algoritme type som bliver brugt, såsom “$1$” til md5crypt. Normalt kan du stole på disse oplysninger; Denne identifikationsmetode er dog ikke sikker. 

For hash der ikke har nogen signatur, er det næsten umuligt at skelne hvilken algoritme der blev brugt. En streng på 32 hex tegn kan være LM, NTLM, MD4, MD5, dobbelt MD5, triple md5, md5 (sha512 (pass)) osv. Der er bogstaveligt talt et uendeligt antal muligheder for hvad algoritmen kan være! så vær på vagt.

En meget bedre måde at identificere hash-algoritmen på ville være at finde oprindelsen af hash type. Er det et operativsystem, applikation, webapplikation osv.) Og lave et godt gæt på, hvad hashalgoritmen kan være.

Her er en liste over de mest brugte typer.

Generiske hash typer

 Mode   Navn                             Eksempler
    0 - MD5
   10 - md5($pass.$salt)               - 01dfae6e5d4d90d9892622325959afbe:7050461
   20 - md5($salt.$pass)               - f0fda58630310a6dd91a7d8f0a4ceda2:4225637426
   30 - md5(utf16le($pass).$salt)      - b31d032cfdcf47a399990a71e43c5d2a:144816
  300 - MySQL4.1/MySQL5                - fcf7c1b8749cf99d88e5f34271d636178fb5d130
  500 - md5crypt- Cisco-IOS $1$        - $1$28772684$iEwNOgGugqO9.bIz5sk8k/
 1300 - SHA-224                        - e4fa1555ad877bf0ec455483371867200eee89550a93eff2f95a6198
 1400 - SHA-256 - SHA-256              - 127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935
 1700 - SHA-512 - sha512($pass.$salt)  - 82a9dda829eb7f8ffe9fbe49e45d47d2dad9664fbb7adf72492e3c81ebd3e29134d9bc12212bf83c6840f10e8246b9db54a4859b7ccd0123d86e5872c1e5082f
 1710 - SHA-512 - sha512($pass.$salt)  - e5c3ede3e49fb86592fb03f471c35ba13e8d89b8ab65142c9a8fdafb635fa2223c24e5558fd9313e8995019dcbec1fb584146b7bb12685c7765fc8c0d51379fd:6352283260
 1720 - SHA-512 - sha512($salt,$pass)  - 976b451818634a1e2acba682da3fd6efa72adf8a7a08d7939550c244b237c72c7d42367544e826c0c83fe5c02f97c0373b6b1386cc794bf0d21d2df01bb9c08a:2613516180127
 1800 - SHA-512 - sha512crypt (unix)   - $6$52450745$k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX/
 2400 - Cisco-PIX MD5                  - dRRVnUmUHXOTt9nk
 2410 - Cisco-ASA MD5                  - 02dMBMYkTdC5Ziyp:36
 2500 - WPA/WPA2                       - https://hashcat.net/misc/example_hashes/hashcat.hccapx
 2501 - WPA/WPA2 PMK                   - https://hashcat.net/misc/example_hashes/hashcat-pmk.hccapx
 5700 - Cisco-IOS type 4               - 2btjjy78REtmYkkW0csHUbJZOstRXoWdX1mGrmmfeHI
 5800 - Samsung Android Password/PIN   - 0223b799d526b596fe4ba5628b9e65068227e68e:f6d45822728ddb2c
 6800 - LastPass                       - a2d1f7b7a1862d0d4a52644e72d59df5:500:[email protected]
 7100 - OSX v10.8+                     - $ml$35460$93a94bd24b5de64d79a5e49fa372827e739f4d7b6975c752c9a0ff1e5cf72e05$752351df64dd2ce9dc9c64a72ad91de6581a15c19176266b44d98919dfa81f0f96cbcb20a1ffb400718c20382030f637892f776627d34e021bad4f81b7de8222
11100 - PostgreSQL CRAM (MD5)          - $postgres$postgres*f0784ea5*2091bb7d4725d1ca85e8de6ec349baf6
11600 - 7-Zip    -                     - $7z$0$19$0$salt$8$f6196259a7326e3f0000000000000000$185065650$112$98$f3bc2a88062c419a25acd40c0c2d75421cf23263f69c51b13f9b1aada41a8a09f9adeae45d67c60b56aad338f20c0dcc5eb811c7a61128ee0746f922cdb9c59096869f341c7a9cb1ac7bb7d771f546b82cf4e6f11a5ecd4b61751e4d8de66dd6e2dfb5b7d1022d2211e2d66ea1703f96

 

Specifikke hashtyper

Mode Navn           Eksempler
  12 - PostgreSQL - a6343a68d964ca596d9752250d54bb8a:postgres
  21 - osCommerce - 374996a5e8a5e57fd97d893f7df79824:36
 132 - MSSQL      - 0x010018102152f8f28c8499d8ef263c53f8be369d799f931b2fbe
1722 - OSX v10.7  - 648742485c9b0acd786a233b2330197223118111b481abfa0ab8b3e8ede5f014fc7c523991c007db6882680b09962d16fd9c45568260531bdb34804a5e31c22b4cfeb32d

 

Fuld liste her https://hashcat.net/wiki/doku.php?id=example_hashes

Anden parameter er -a den beskriver hvilken mode du vil bruge.

Mode

  • -a 0 Ordbog angreb.
  • -a 1 kombination.
  • -a 3 Bruce force.
  • -a 6 Hybrid ordliste.
  • -a 7 Hybrid mask + ordliste.
  • -a 8 Du vil ikke vide det.

     

Der er 8 modes som beskriver hvilken type attack som skal bruges. Og jeg vil forklare et par stykker her. Der er et problem når man skal bruge hashcat, da man normalt ikke ved hvor langt det password er som man vil cracke er. Derfor er der indbygget, en mulighed som gør at man kan give hashcat en min og max længe på det password man vil finde.

-a 3 Sætter attack til mask mode. d.v.s du beskriver med en maske hvordan password er opbygget. Her er et eksempel på en maske.

?a

?a betyder ?l?u?d?s eller næsten alle normale tegn som du kan se i tabellen. Og da vi har 8 stk af dem betyder at det password som vi vil crack er 8 tegn langt, og det er et problem hvis det password som man vil finde har en anden længe en 8 tegn. Her med MD5 hash. hash.txt er filen som inden holder hash værdierne.

$ hashcat -m 0 -a 3 hash.txt ?a?a?a?a?a?a?a?a

Så der er en mulighed mere.

–increment beskriver at password længden ikker er en fixed længde.
–increment-min beskriver min længe på password.
–increment-max beskriver max længe på password.

Så i dette eksempel er min længe på 2 tegn og max på 6 tegn. Her igen med MD5 hash.

$ hashcat -m 0 -a 3 --increment --increment-min 4 --increment-max 6 md5_hash.txt ?a?a?a?a?a?a?a?a

For at crack Unix password skal du eksempelvis bruge denne hvis du ved at password er 9 tegn langt og Mode (-m) er 1800 for sha512crypt som eks Linux bruger.

$ hashcat -m 1800 -a 3 hash.txt ?a?a?a?a?a?a?a?a?a --show

Output:

Session..........: hashcat
Status...........: Running
Hash.Type........: sha512crypt $6$, SHA512 (Unix)
Hash.Target......: $6$uezcMxLS$2ldfhX1Mr8Fm/CxUpSqKG6ptZUs6E.dAgygWjDx...oYgAN/
Time.Started.....: Sun Dec  9 19:48:01 2018 (4 mins, 1 sec)
Time.Estimated...: Next Big Bang (3879262 years, 64 days)
Guess.Mask.......: ?a?a?a?a?a?a?a?a?a [9]
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#1.....:     1330 H/s (9.93ms)
Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts
Progress.........: 323072/630249409724609375 (0.00%)
Rejected.........: 0/323072 (0.00%)
Restore.Point....: 3072/6634204312890625 (0.00%)
Candidates.#1....: @jylerine -> @,ANANANE
HWMon.Dev.#1.....: N/A

Hash.Target vist i eksemplet ovenfor er password feltet fra shadow file.

Og du kan også det da det kommer til at tage et stykke tid. 15012232 years, 86 days i værste fadt. Og så kan man lige så godt finde på en anden løsning. Så derfor kommer vi ind på dictary attack i stedet for Bruce force som -a 3 betyder.

Hvis du bruger hashcat med et Dictionary-angreb (-a 0), kan du angive flere ordbøger på kommandolinjen som denne:

Her igen med MD5 hash

$ hashcat -m 0 -a 0 hash.txt dict1.txt dict2.txt dict3.txt

Du kan også angive et dir som ordbog:

$ hashcat -m 0 -a 0 hash.txt ../dicdir/*.dict

Eller

$ hashcat -m 0 -a 0 hash.txt ../dicdir

I dette eksempel er det dicdir som bruges. Så bruger den alle filer i det directory.

Indbygget tegnsæt

  • ?l = abcdefghijklmnopqrstuvwxyz
  • ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • ?d = 0123456789
  • ?h = 0123456789abcdef
  • ?H = 0123456789ABCDEF
  • ?s = «space»!”#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~
  • ?a = ?l?u?d?s
  • ?b = 0x00 – 0xff
     

Eksempler på mask.

-1 ?dabcdef space: 0123456789abcdef

-l ?l?d -l ?l1234567890

-l loweralpha_numeric.hcchr # fil som indenholder alle tal + alle normale tegn.

-a 3 ?l?l?l?l?l?l?l?l

space: aaaaaaaa – zzzzzzzz

-a 3 -1 ?l?d ?1?1?1?1?1

space: aaaaa – 99999

-a 3 password?d space: password0 – password9 -a 3 -1 efghijklmnop ?1?1?1 space: eee – ppp

Et mask attack er altid beskrevet i længde. Eks. hvis vi bruger en mask som “?l?l?l?l?l?l?l?l” så kan den kun finde password som er 8 tegn langt.

Og hvis det password som vi vil cracke er 7 tegn langt, vil vi ikke finde det. Derfor skal vi køre flere løkker over længden af passwordet, hvor hver gemmen løb skal gøre længden længere.

Download den nyeste version her

hash type list https://hashcat.net/wiki/doku.php?id=example_hashes

Du kan læse meget mere om Hashcat her

Følgende algoritmer er understøttet

  • MD4
  • MD5
  • Half MD5
  • SHA1
  • SHA2-224
  • SHA2-256
  • SHA2-384
  • SHA2-512
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • Keccak-224
  • Keccak-256
  • Keccak-384
  • Keccak-512
  • BLAKE2b-512
  • SipHash
  • RIPEMD-160
  • Whirlpool
  • GOST R 34.11-94
  • GOST R 34.11-2012 (Streebog) 256-bit
  • GOST R 34.11-2012 (Streebog) 512-bit
  • md5($pass.$salt)
  • md5($salt.$pass)
  • md5(utf16le($pass).$salt)
  • md5($salt.utf16le($pass))
  • md5($salt.$pass.$salt)
  • md5($salt.md5($pass))
  • md5($salt.md5($salt.$pass))
  • md5($salt.md5($pass.$salt))
  • md5(md5($pass))
  • md5(md5($pass).md5($salt))
  • md5(strtoupper(md5($pass)))
  • md5(sha1($pass))
  • sha1($pass.$salt)
  • sha1($salt.$pass)
  • sha1(utf16le($pass).$salt)
  • sha1($salt.utf16le($pass))
  • sha1(sha1($pass))
  • sha1($salt.sha1($pass))
  • sha1(md5($pass))
  • sha1($salt.$pass.$salt)
  • sha1(CX)
  • sha256($pass.$salt)
  • sha256($salt.$pass)
  • sha256(utf16le($pass).$salt)
  • sha256($salt.utf16le($pass))
  • sha512($pass.$salt)
  • sha512($salt.$pass)
  • sha512(utf16le($pass).$salt)
  • sha512($salt.utf16le($pass))
  • HMAC-MD5 (key = $pass)
  • HMAC-MD5 (key = $salt)
  • HMAC-SHA1 (key = $pass)
  • HMAC-SHA1 (key = $salt)
  • HMAC-SHA256 (key = $pass)
  • HMAC-SHA256 (key = $salt)
  • HMAC-SHA512 (key = $pass)
  • HMAC-SHA512 (key = $salt)
  • DES (PT = $salt, key = $pass)
  • 3DES (PT = $salt, key = $pass)
  • Skip32 (PT = $salt, key = $pass)
  • ChaCha20
  • phpass
  • scrypt
  • PBKDF2-HMAC-MD5
  • PBKDF2-HMAC-SHA1
  • PBKDF2-HMAC-SHA256
  • PBKDF2-HMAC-SHA512
  • Skype
  • WPA-EAPOL-PBKDF2
  • WPA-EAPOL-PMK
  • WPA-PMKID-PBKDF2
  • WPA-PMKID-PMK
  • iSCSI CHAP authentication, MD5(CHAP)
  • IKE-PSK MD5
  • IKE-PSK SHA1
  • NetNTLMv1
  • NetNTLMv1+ESS
  • NetNTLMv2
  • IPMI2 RAKP HMAC-SHA1
  • Kerberos 5 AS-REQ Pre-Auth etype 23
  • DNSSEC (NSEC3)
  • CRAM-MD5
  • PostgreSQL CRAM (MD5)
  • MySQL CRAM (SHA1)
  • SIP digest authentication (MD5)
  • Kerberos 5 TGS-REP etype 23
  • TACACS+
  • JWT (JSON Web Token)
  • SMF (Simple Machines Forum) > v1.1
  • phpBB3 (MD5)
  • vBulletin < v3.8.5
  • vBulletin >= v3.8.5
  • MyBB 1.2+
  • IPB2+ (Invision Power Board)
  • WBB3 (Woltlab Burning Board)
  • Joomla < 2.5.18
  • Joomla >= 2.5.18 (MD5)
  • WordPress (MD5)
  • PHPS
  • Drupal7
  • osCommerce
  • xt:Commerce
  • PrestaShop
  • Django (SHA-1)
  • Django (PBKDF2-SHA256)
  • Tripcode
  • MediaWiki B type
  • OpenCart
  • Redmine
  • PunBB
  • Atlassian (PBKDF2-HMAC-SHA1)
  • PostgreSQL
  • MSSQL (2000)
  • MSSQL (2005)
  • MSSQL (2012, 2014)
  • MySQL323
  • MySQL4.1/MySQL5
  • Oracle H: Type (Oracle 7+)
  • Oracle S: Type (Oracle 11+)
  • Oracle T: Type (Oracle 12+)
  • Sybase ASE
  • Episerver 6.x < .NET 4
  • Episerver 6.x >= .NET 4
  • Apache $apr1$ MD5, md5apr1, MD5 (APR)
  • ColdFusion 10+
  • hMailServer
  • nsldap, SHA-1(Base64), Netscape LDAP SHA
  • nsldaps, SSHA-1(Base64), Netscape LDAP SSHA
  • SSHA-256(Base64), LDAP {SSHA256}
  • SSHA-512(Base64), LDAP {SSHA512}
  • CRAM-MD5 Dovecot
  • FileZilla Server >= 0.9.55
  • CRC32
  • LM
  • NTLM
  • Domain Cached Credentials (DCC), MS Cache
  • Domain Cached Credentials 2 (DCC2), MS Cache 2
  • DPAPI masterkey file v1
  • DPAPI masterkey file v2
  • MS-AzureSync PBKDF2-HMAC-SHA256
  • descrypt, DES (Unix), Traditional DES
  • BSDi Crypt, Extended DES
  • md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)
  • bcrypt $2*$, Blowfish (Unix)
  • sha256crypt $5$, SHA256 (Unix)
  • sha512crypt $6$, SHA512 (Unix)
  • macOS v10.4, MacOS v10.5, MacOS v10.6
  • macOS v10.7
  • macOS v10.8+ (PBKDF2-SHA512)
  • AIX {smd5}
  • AIX {ssha1}
  • AIX {ssha256}
  • AIX {ssha512}
  • Cisco-PIX MD5
  • Cisco-ASA MD5
  • Cisco-IOS $1$ (MD5)
  • Cisco-IOS type 4 (SHA256)
  • Cisco-IOS $8$ (PBKDF2-SHA256)
  • Cisco-IOS $9$ (scrypt)
  • Juniper NetScreen/SSG (ScreenOS)
  • Juniper IVE
  • Juniper/NetBSD sha1crypt
  • FortiGate (FortiOS)
  • Samsung Android Password/PIN
  • Windows Phone 8+ PIN/password
  • Citrix NetScaler
  • RACF
  • GRUB 2
  • Radmin2
  • ArubaOS
  • SAP CODVN B (BCODE)
  • SAP CODVN F/G (PASSCODE)
  • SAP CODVN H (PWDSALTEDHASH) iSSHA-1
  • Lotus Notes/Domino 5
  • Lotus Notes/Domino 6
  • Lotus Notes/Domino 8
  • PeopleSoft
  • PeopleSoft PS_TOKEN
  • 7-Zip
  • RAR3-hp
  • RAR5
  • AxCrypt
  • AxCrypt in-memory SHA1
  • WinZip
  • iTunes backup < 10.0
  • iTunes backup >= 10.0
  • TrueCrypt
  • Android FDE <= 4.3
  • Android FDE (Samsung DEK)
  • eCryptfs
  • VeraCrypt
  • LUKS
  • FileVault 2
  • MS Office <= 2003
  • MS Office 2007
  • MS Office 2010
  • MS Office 2013
  • PDF 1.1 – 1.3 (Acrobat 2 – 4)
  • PDF 1.4 – 1.6 (Acrobat 5 – 8)
  • PDF 1.7 Level 3 (Acrobat 9)
  • PDF 1.7 Level 8 (Acrobat 10 – 11)
  • Apple Secure Notes
  • Password Safe v2
  • Password Safe v3
  • LastPass + LastPass sniffed
  • 1Password, agilekeychain
  • 1Password, cloudkeychain
  • Bitcoin/Litecoin wallet.dat
  • Blockchain, My Wallet
  • Blockchain, My Wallet, V2
  • Electrum Wallet (Salt-Type 1-3)
  • KeePass 1 (AES/Twofish) and KeePass 2 (AES)
  • JKS Java Key Store Private Keys (SHA1)
  • Ethereum Wallet, PBKDF2-HMAC-SHA256
  • Ethereum Wallet, SCRYPT
  • Ethereum Pre-Sale Wallet, PBKDF2-HMAC-SHA256
  • Ansible Vault
  • TOTP (HMAC-SHA1)
  • Plaintext

 

0