hashcat 5.1.0
Closes #39579. Signed-off-by: Thierry Moisan <thierry.moisan@gmail.com>
This commit is contained in:
parent
ab5d2b15bb
commit
d38e413cb5
1 changed files with 4 additions and 110 deletions
|
@ -1,10 +1,8 @@
|
|||
class Hashcat < Formula
|
||||
desc "World's fastest and most advanced password recovery utility"
|
||||
homepage "https://hashcat.net/hashcat/"
|
||||
# Note the mirror will return 301 until the version becomes outdated.
|
||||
url "https://hashcat.net/files/hashcat-4.2.1.tar.gz"
|
||||
mirror "https://hashcat.net/files_legacy/hashcat-4.2.1.tar.gz"
|
||||
sha256 "7dad73c3406e66756b19e15ae8bcc482a52a422e8fb905feb6db4d2eb32e5320"
|
||||
url "https://hashcat.net/files/hashcat-5.1.0.tar.gz"
|
||||
sha256 "283beaa68e1eab41de080a58bb92349c8e47a2bb1b93d10f36ea30f418f1e338"
|
||||
version_scheme 1
|
||||
head "https://github.com/hashcat/hashcat.git"
|
||||
|
||||
|
@ -28,112 +26,8 @@ class Hashcat < Formula
|
|||
end
|
||||
|
||||
test do
|
||||
#
|
||||
# General test settings
|
||||
#
|
||||
|
||||
binary = "./hashcat"
|
||||
pass = "hash234"
|
||||
hash_type = "500" # -m 500 = md5crypt, MD5(Unix), FreeBSD MD5, Cisco-IOS MD5
|
||||
|
||||
dict_file = "example.dict"
|
||||
hash_file = "example#{hash_type}.hash"
|
||||
|
||||
additional_args = " --force" + # shouldn't be needed with a correct OpenCL installation
|
||||
" --quiet" + # we only need the hash:pass pair in the output
|
||||
" --potfile-disable" # we do not need to check or write the hashcat.potfile
|
||||
|
||||
#
|
||||
# Copy some files to the test folder
|
||||
#
|
||||
|
||||
# copy all files from share to the test folder
|
||||
cp_r pkgshare.children, testpath
|
||||
|
||||
# copy the example hash and the dictionary file to the test folder
|
||||
cp "#{doc}/#{hash_file}", testpath
|
||||
cp "#{doc}/#{dict_file}", testpath
|
||||
|
||||
# copy the hashcat binary to the test folder
|
||||
cp "#{bin}/#{binary}", testpath
|
||||
|
||||
#
|
||||
# Test 1 (dictionary attack, -a 0):
|
||||
#
|
||||
|
||||
hash = File.open(hash_file, "rb") { |f| f.read.strip }
|
||||
|
||||
attack_mode = "0"
|
||||
|
||||
cmd = binary + " -m " + hash_type + " -a " + attack_mode + additional_args + " " + hash_file + " " + dict_file
|
||||
|
||||
# suppress STDERR output
|
||||
cmd += " 2>/dev/null"
|
||||
|
||||
assert_equal "#{hash}:#{pass}", shell_output(cmd).strip
|
||||
|
||||
#
|
||||
# Test 2 (combinator attack, -a 1):
|
||||
#
|
||||
|
||||
attack_mode = "1"
|
||||
|
||||
dict1 = "dict1.txt"
|
||||
dict2 = "dict2.txt"
|
||||
|
||||
File.write(dict1, pass[0..3])
|
||||
File.write(dict2, pass[4..-1])
|
||||
|
||||
cmd = binary + " -m " + hash_type + " -a " + attack_mode + additional_args + " " + hash_file + " " + dict1 + " " + dict2
|
||||
|
||||
# suppress STDERR output
|
||||
cmd += " 2>/dev/null"
|
||||
|
||||
assert_equal "#{hash}:#{pass}", shell_output(cmd).strip
|
||||
|
||||
#
|
||||
# Test 3 (mask attack, -a 3):
|
||||
#
|
||||
|
||||
attack_mode = "3"
|
||||
|
||||
mask = "?l?l?l" + pass[3..-1]
|
||||
|
||||
cmd = binary + " -m " + hash_type + " -a " + attack_mode + additional_args + " " + hash_file + " " + mask
|
||||
|
||||
# suppress STDERR output
|
||||
cmd += " 2>/dev/null"
|
||||
|
||||
assert_equal "#{hash}:#{pass}", shell_output(cmd).strip
|
||||
|
||||
#
|
||||
# Test 4 (hybrid attack, dict + mask, -a 6):
|
||||
#
|
||||
|
||||
attack_mode = "6"
|
||||
|
||||
mask = "?d?d?d"
|
||||
|
||||
cmd = binary + " -m " + hash_type + " -a " + attack_mode + additional_args + " " + hash_file + " " + dict1 + " " + mask
|
||||
|
||||
# suppress STDERR output
|
||||
cmd += " 2>/dev/null"
|
||||
|
||||
assert_equal "#{hash}:#{pass}", shell_output(cmd).strip
|
||||
|
||||
#
|
||||
# Test 5 (hybrid attack, mask + dict, -a 7):
|
||||
#
|
||||
|
||||
attack_mode = "7"
|
||||
|
||||
mask = "?l?l" + pass[2..3]
|
||||
|
||||
cmd = binary + " -m " + hash_type + " -a " + attack_mode + additional_args + " " + hash_file + " " + mask + " " + dict2
|
||||
|
||||
# suppress STDERR output
|
||||
cmd += " 2>/dev/null"
|
||||
|
||||
assert_equal "#{hash}:#{pass}", shell_output(cmd).strip
|
||||
cp bin/"hashcat", testpath
|
||||
system testpath/"hashcat --benchmark -m 0"
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue