haiti-hash 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
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