haiti-hash 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2452aa7031d5357785f32a86f7fa53875f8ba9e1dc654f14b53f14ee53ee5194
4
- data.tar.gz: 6ec09dadf5447f437d12b89f204dee3cc38d0779dbb5cfdad48296c0f949537f
3
+ metadata.gz: 482916c210a6e719f9399388f466ff3a394abeea38805aa6075113edcdb24320
4
+ data.tar.gz: 2ed345caa5a2491c2d6d1e2bd510abd06d7f53a59a46af07a25b08412ff9e4d5
5
5
  SHA512:
6
- metadata.gz: 07770020da99ae8a187317a3d7db59becd25b1ec7a7c529a19a530ba766f05ab548060055b6ab12ae90ea4c2b39325485b35f887a5af98866873a83546c0ab26
7
- data.tar.gz: 89763b9a81a234c690b08488e9134a03596f0d5ea91b06a0005dee92ca46ddb4e3f66800c37363f0b2be076ff000acd2aa084b49aa5935c69a6bd4ba775be19a
6
+ metadata.gz: 51d6ec610fdc96bdd94e84a4ba33eb037fc73c75e91ca329cb5ed9285e603d7899a0ea8c60d687fd6fd7c50c23129f1f193a464a4bfa548c63d8a0417456fa11
7
+ data.tar.gz: 3ae92a1ddef2d64ed8ee203ba0c592e0e727931e04f1d551ed30bc4824237e9b5496af3f11db98660019bdae5cc80210217f89b6bfc0d6224cb418a44346d961
data/data/commons.json ADDED
@@ -0,0 +1,29 @@
1
+ [
2
+ "MD5",
3
+ "SHA-1",
4
+ "SHA-256",
5
+ "SHA-512",
6
+ "bcrypt",
7
+ "NTLM",
8
+ "NetNTLMv2",
9
+ "NetNTLMv1-VANILLA / NetNTLMv1+ESS",
10
+ "BLAKE2-512",
11
+ "SHA3-224",
12
+ "SHA3-256",
13
+ "SHA3-512",
14
+ "Keccak-256",
15
+ "Keccak-512",
16
+ "CRC-32B",
17
+ "CRC-32",
18
+ "CRC-16",
19
+ "CRC-64",
20
+ "GOST R 34.11-94",
21
+ "Apache MD5",
22
+ "MD5(APR)",
23
+ "md5apr1",
24
+ "Domain Cached Credentials",
25
+ "Domain Cached Credentials 2",
26
+ "LM",
27
+ "RIPEMD-160",
28
+ "scrypt"
29
+ ]
data/data/prototypes.json CHANGED
@@ -713,7 +713,7 @@
713
713
  {
714
714
  "john": null,
715
715
  "hashcat": 1600,
716
- "extended": true,
716
+ "extended": false,
717
717
  "name": "md5apr1"
718
718
  }
719
719
  ]
@@ -1238,6 +1238,12 @@
1238
1238
  "hashcat": null,
1239
1239
  "extended": false,
1240
1240
  "name": "Skein-224"
1241
+ },
1242
+ {
1243
+ "john": null,
1244
+ "hashcat": null,
1245
+ "extended": false,
1246
+ "name": "BLAKE2-224"
1241
1247
  }
1242
1248
  ]
1243
1249
  },
@@ -1482,6 +1488,12 @@
1482
1488
  "hashcat": null,
1483
1489
  "extended": false,
1484
1490
  "name": "PANAMA"
1491
+ },
1492
+ {
1493
+ "john": null,
1494
+ "hashcat": null,
1495
+ "extended": false,
1496
+ "name": "BLAKE2-256"
1485
1497
  }
1486
1498
  ]
1487
1499
  },
@@ -1665,6 +1677,12 @@
1665
1677
  "hashcat": null,
1666
1678
  "extended": true,
1667
1679
  "name": "Skein-384"
1680
+ },
1681
+ {
1682
+ "john": null,
1683
+ "hashcat": null,
1684
+ "extended": false,
1685
+ "name": "BLAKE2-384"
1668
1686
  }
1669
1687
  ]
1670
1688
  },
@@ -1745,7 +1763,7 @@
1745
1763
  "john": "raw-blake2",
1746
1764
  "hashcat": 600,
1747
1765
  "extended": false,
1748
- "name": "Blake2"
1766
+ "name": "BLAKE2-512"
1749
1767
  },
1750
1768
  {
1751
1769
  "john": "skein-512",
@@ -2055,7 +2073,95 @@
2055
2073
  "john": "krb5pa-md5",
2056
2074
  "hashcat": 7500,
2057
2075
  "extended": false,
2058
- "name": "Kerberos 5 AS-REQ Pre-Auth"
2076
+ "name": "Kerberos 5 AS-REQ Pre-Auth etype 23"
2077
+ }
2078
+ ]
2079
+ },
2080
+ {
2081
+ "regex": "^\\$krb5tgs\\$23\\$\\*[^*]*\\*\\$[a-f0-9]{32}\\$[a-f0-9]{64,40960}$",
2082
+ "modes": [
2083
+ {
2084
+ "john": "krb5tgs",
2085
+ "hashcat": 13100,
2086
+ "extended": false,
2087
+ "name": "Kerberos 5 TGS-REP etype 23"
2088
+ }
2089
+ ]
2090
+ },
2091
+ {
2092
+ "regex": "^\\$krb5asrep\\$23\\$[^:]+:[a-f0-9]{32,32}\\$[a-f0-9]{64,40960}$",
2093
+ "modes": [
2094
+ {
2095
+ "john": "krb5asrep",
2096
+ "hashcat": 18200,
2097
+ "extended": false,
2098
+ "name": "Kerberos 5 AS-REP etype 23"
2099
+ }
2100
+ ]
2101
+ },
2102
+ {
2103
+ "regex": "^\\$krb5asrep\\$18\\$[^:]+:[a-f0-9]{32,32}\\$[a-f0-9]{64,40960}$",
2104
+ "modes": [
2105
+ {
2106
+ "john": "krb5asrep",
2107
+ "hashcat": null,
2108
+ "extended": false,
2109
+ "name": "Kerberos 5 AS-REP etype 18"
2110
+ }
2111
+ ]
2112
+ },
2113
+ {
2114
+ "regex": "^\\$krb5asrep\\$17\\$[^:]+:[a-f0-9]{32,32}\\$[a-f0-9]{64,40960}$",
2115
+ "modes": [
2116
+ {
2117
+ "john": "krb5asrep",
2118
+ "hashcat": null,
2119
+ "extended": false,
2120
+ "name": "Kerberos 5 AS-REP etype 17"
2121
+ }
2122
+ ]
2123
+ },
2124
+ {
2125
+ "regex": "^\\$krb5tgs\\$17\\$[^$]{1,512}\\$[^$]{1,512}\\$[^$]{1,4}?\\$?[a-f0-9]{1,32}\\$[a-f0-9]{64,40960}$",
2126
+ "modes": [
2127
+ {
2128
+ "john": null,
2129
+ "hashcat": 19600,
2130
+ "extended": false,
2131
+ "name": "Kerberos 5 TGS-REP etype 17 (AES128-CTS-HMAC-SHA1-96)"
2132
+ }
2133
+ ]
2134
+ },
2135
+ {
2136
+ "regex": "^\\$krb5tgs\\$18\\$[^$]{1,512}\\$[^$]{1,512}\\$[^$]{1,4}?\\$?[a-f0-9]{1,32}\\$[a-f0-9]{64,40960}$",
2137
+ "modes": [
2138
+ {
2139
+ "john": null,
2140
+ "hashcat": 19700,
2141
+ "extended": false,
2142
+ "name": "Kerberos 5 TGS-REP etype 18 (AES256-CTS-HMAC-SHA1-96)"
2143
+ }
2144
+ ]
2145
+ },
2146
+ {
2147
+ "regex": "^\\$krb5pa\\$17\\$[^$]{1,512}\\$[^$]{1,512}\\$[a-f0-9]{104,112}$",
2148
+ "modes": [
2149
+ {
2150
+ "john": "krb5pa-sha1",
2151
+ "hashcat": 19800,
2152
+ "extended": false,
2153
+ "name": "Kerberos 5 AS-REQ Pre-Auth etype 17"
2154
+ }
2155
+ ]
2156
+ },
2157
+ {
2158
+ "regex": "^\\$krb5pa\\$18\\$[^$]{1,512}\\$[^$]{1,512}\\$[a-f0-9]{104,112}$",
2159
+ "modes": [
2160
+ {
2161
+ "john": "krb5pa-sha1",
2162
+ "hashcat": 19900,
2163
+ "extended": false,
2164
+ "name": "Kerberos 5 AS-REQ Pre-Auth etype 18"
2059
2165
  }
2060
2166
  ]
2061
2167
  },
@@ -2781,5 +2887,88 @@
2781
2887
  "name": "PDF 1.4 - 1.6 (Acrobat 5 - 8)"
2782
2888
  }
2783
2889
  ]
2890
+ },
2891
+ {
2892
+ "regex": "^\\$bitcoin\\$[0-9]{2,4}\\$[a-fA-F0-9$]{250,350}$",
2893
+ "modes": [
2894
+ {
2895
+ "john": "bitcoin",
2896
+ "hashcat": 11300,
2897
+ "extended": false,
2898
+ "name": "Bitcoin/Litecoin Wallet"
2899
+ }
2900
+ ]
2901
+ },
2902
+ {
2903
+ "regex": "^\\$ethereum\\$[a-z0-9*]{150,1400}$",
2904
+ "modes": [
2905
+ {
2906
+ "john": "ethereum-presale-opencl",
2907
+ "hashcat": 16300,
2908
+ "extended": false,
2909
+ "name": "Ethereum Presale Wallet"
2910
+ }
2911
+ ]
2912
+ },
2913
+ {
2914
+ "regex": "^\\$ethereum\\$[a-z0-9*]{150,250}$",
2915
+ "modes": [
2916
+ {
2917
+ "john": "Ethereum Wallet",
2918
+ "hashcat": 15600,
2919
+ "extended": false,
2920
+ "name": "ethereum-opencl"
2921
+ }
2922
+ ]
2923
+ },
2924
+ {
2925
+ "regex": "^\\$monero\\$(0)\\*[a-f0-9]{32,4096}$",
2926
+ "modes": [
2927
+ {
2928
+ "john": "monero",
2929
+ "hashcat": null,
2930
+ "extended": false,
2931
+ "name": "monero Wallet"
2932
+ }
2933
+ ]
2934
+ },
2935
+ {
2936
+ "regex": "^\\$ab\\$[0-9]{1}\\*[0-9]{1}\\*[0-9]{1,6}\\*[a-f0-9]{128}\\*[a-f0-9]{128}\\*[a-f0-9]{32}\\*[a-f0-9]{192}$",
2937
+ "modes": [
2938
+ {
2939
+ "john": "AndroidBackup",
2940
+ "hashcat": 18900,
2941
+ "extended": false,
2942
+ "name": "Android Backup"
2943
+ }
2944
+ ]
2945
+ },
2946
+ {
2947
+ "regex": "^\\$zip2\\$\\*[0-9]{1}\\*[0-9]{1}\\*[0-9]{1}\\*[a-f0-9]{16,32}\\*[a-f0-9]{1,6}\\*[a-f0-9]{1,6}\\*[a-f0-9]{0,16384}\\*[a-f0-9]{20}\\*\\$\/zip2\\$$",
2948
+ "modes": [
2949
+ {
2950
+ "john": "ZIP",
2951
+ "hashcat": 13600,
2952
+ "extended": false,
2953
+ "name": "WinZip"
2954
+ }
2955
+ ]
2956
+ },
2957
+ {
2958
+ "regex": "^\\$itunes_backup\\$\\*[0-9]{1,2}\\*[a-f0-9]{80}\\*[0-9]{1,6}\\*[a-f0-9]{40}\\*[0-9]{0,10}\\*[a-f0-9]{0,40}$",
2959
+ "modes": [
2960
+ {
2961
+ "john": "itunes-backup",
2962
+ "hashcat": 14700,
2963
+ "extended": false,
2964
+ "name": "iTunes backup < 10.0"
2965
+ },
2966
+ {
2967
+ "john": "itunes-backup",
2968
+ "hashcat": 14800,
2969
+ "extended": false,
2970
+ "name": "iTunes backup >= 10.0"
2971
+ }
2972
+ ]
2784
2973
  }
2785
2974
  ]
data/lib/haiti.rb CHANGED
@@ -11,6 +11,7 @@ class HashIdentifier
11
11
  # Constants
12
12
  include Version
13
13
  PROTOTYPES = JSON.parse(File.read(File.join(__dir__, '../data/prototypes.json')))
14
+ COMMONS = JSON.parse(File.read(File.join(__dir__, '../data/commons.json')))
14
15
 
15
16
  # @return [String] the hash (as provided)
16
17
  # @example
@@ -26,6 +27,7 @@ class HashIdentifier
26
27
  def initialize(hash)
27
28
  @hash = hash
28
29
  @type = identify(hash)
30
+ sort_commons
29
31
  end
30
32
 
31
33
  private
@@ -46,4 +48,9 @@ class HashIdentifier
46
48
  end
47
49
  return res
48
50
  end
51
+
52
+ # Sort common hash types first
53
+ def sort_commons
54
+ @type.sort_by! { |e| COMMONS.include?(e.name) ? 0 : 1 }
55
+ end
49
56
  end
data/lib/haiti/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Version
4
- VERSION = '1.1.0'
4
+ VERSION = '1.1.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haiti-hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre ZANNI
@@ -161,6 +161,7 @@ files:
161
161
  - LICENSE.txt
162
162
  - bin/haiti
163
163
  - bin/haiti_console
164
+ - data/commons.json
164
165
  - data/prototypes.json
165
166
  - lib/haiti.rb
166
167
  - lib/haiti/hash.rb