Initial commit

This commit is contained in:
Jens Steube
2015-12-04 15:47:52 +01:00
commit 5065474b4e
953 changed files with 1278386 additions and 0 deletions
+197
View File
@@ -0,0 +1,197 @@
oclHashcat build documentation
=
# Revision:
* 1.0
# Authors:
* Gabriele Gristina <<matrix@hashcat.net>>
* Christoph Heuwieser <<dropdead@hashcat.net>>
# Dependencies
To compile **oclHashcat** the following third party libraries are required:
ADL_SDK v8.0 - http://developer.amd.com/tools-and-sdks/graphics-development/display-library-adl-sdk/
cuda v7.5 - https://developer.nvidia.com/cuda-downloads
GDK v352_55 - https://developer.nvidia.com/gpu-deployment-kit
NVIDIA Driver v352.21 - https://www.nvidia.com/download/driverResults.aspx/86390/en-us
NVAPI R352 - https://developer.nvidia.com/nvapi
AMD-APP-SDK v3.0 - http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/
To be able to compile the ocl binaries, it is required to have the latest stable driver from AMD installed.
(fglxr must be installed and initialized)
http://support.amd.com/
The next thing to do is download all the third party libraries listed above and put files into */opt/hashcat-deps/tmp* directory.
The following files are needed inside the */opt/hashcat-deps/tmp* directory:
ADL_SDK8.zip
R352-developer.zip
cuda_7.5.18_linux.run
NVIDIA-Linux-x86_64-352.21.run
gdk_linux_amd64_352_55_release.run
AMDAPPSDK-3.0-linux64.tar.bz2
Now just execute the following script to complete the installation of dependencies (check for an updated version in **docs/deps.sh**):
#!/bin/bash
# Author: Gabriele Gristina <matrix@hashcat.net>
# Revision: 1.0
## global vars
DEPS="make gcc-4.9 g++-4.9 gcc-4.9-multilib g++-4.9-multilib libc6-dev-i386 mingw-w64 build-essential unzip"
DOWNLOAD_DEPS="ADL_SDK8.zip R352-developer.zip cuda_7.5.18_linux.run NVIDIA-Linux-x86_64-352.21.run gdk_linux_amd64_352_55_release.run AMDAPPSDK-3.0-linux64.tar.bz2"
## root check
if [ $(id -u) -ne 0 ]; then
echo "! Must be root"
exit 1
fi
## cleanup 'hashcat-deps' directories
rm -rf /opt/hashcat-deps/{adl-sdk,cuda-7.5,NVIDIA-Linux-x86_64-352.21,nvidia-gdk,amd-app-sdk} && \
mkdir -p /opt/hashcat-deps/{tmp,adl-sdk,cuda-7.5,NVIDIA-Linux-x86_64-352.21,nvidia-gdk,amd-app-sdk} && \
cd /opt/hashcat-deps/tmp
if [ $? -ne 0 ]; then
echo "! Cannot create hashcat-deps directories."
exit 1
fi
## check dependencies
i=0
for d in ${DOWNLOAD_DEPS}; do
if [ ! -f "${d}" ]; then
echo "! ${d} not found."
((i++))
fi
done
if [ ${i} -gt 0 ]; then
echo "! Please download manually into the directory /opt/hashcat-deps/tmp"
exit 1
fi
## installing needed packages
for pkg in ${DEPS}; do
apt-get -y install ${pkg}
if [ $? -ne 0 ]; then
echo "! failed to install ${pkg}"
exit 1
fi
done
## extract ADL SDK
unzip ADL_SDK8.zip -d /opt/hashcat-deps/adl-sdk-8
ret=$?
if [[ ${ret} -ne 0 ]] && [[ ${ret} -ne 1 ]]; then
echo "! failed to extract ADL SDK"
exit 1
fi
rm -rf /opt/hashcat-deps/adl-sdk && ln -s /opt/hashcat-deps/adl-sdk-8 /opt/hashcat-deps/adl-sdk
if [ $? -ne 0 ]; then
echo "! failed to setup ADL SDK link"
exit 1
fi
## extract NVAPI
unzip R352-developer.zip -d /opt/hashcat-deps/
ret=$?
if [[ ${ret} -ne 0 ]] && [[ ${ret} -ne 1 ]]; then
echo "! failed to extract NVAPI"
exit 1
fi
## install CUDA SDK
chmod +x cuda_7.5.18_linux.run && \
./cuda_7.5.18_linux.run -toolkit -silent -override --toolkitpath=/opt/hashcat-deps/cuda-7.5
if [ $? -ne 0 ]; then
echo "! failed to install CUDA SDK"
exit 1
fi
## install NVIDIA Driver
chmod +x NVIDIA-Linux-x86_64-352.21.run && \
./NVIDIA-Linux-x86_64-352.21.run -x && \
mv NVIDIA-Linux-x86_64-352.21 /opt/hashcat-deps/ && \
cd /opt/hashcat-deps/NVIDIA-Linux-x86_64-352.21 && \
ln -s libnvidia-ml.so.352.21 libnvidia-ml.so && \
ln -s libcuda.so.352.21 libcuda.so && \
cd 32 && \
ln -s libnvidia-ml.so.352.21 libnvidia-ml.so && \
ln -s libcuda.so.352.21 libcuda.so && \
cd /opt/hashcat-deps/tmp
if [ $? -ne 0 ]; then
echo "! failed to install NVIDIA Driver"
exit 1
fi
## install NVIDIA GPU Deployment Kit
chmod +x gdk_linux_amd64_352_55_release.run && \
./gdk_linux_amd64_352_55_release.run --silent --installdir=/opt/hashcat-deps/nvidia-gdk
if [ $? -ne 0 ]; then
echo "! failed to install NVIDIA GPU Deployment Kit"
exit 1
fi
## extract AMD APP SDK
tar xjf AMDAPPSDK-3.0-linux64.tar.bz2 && \
./AMD-APP-SDK-v3.0.130.135-GA-linux64.sh --noexec --target /opt/hashcat-deps/amd-app-sdk-v3.0.130.135
if [ $? -ne 0 ]; then
echo "! failed to extract AMD APP SDK"
exit 1
fi
rm -rf /opt/hashcat-deps/amd-app-sdk && ln -s /opt/hashcat-deps/amd-app-sdk-v3.0.130.135 /opt/hashcat-deps/amd-app-sdk
if [ $? -ne 0 ]; then
echo "! failed to setup ADL SDK link"
exit 1
fi
echo "> oclHashcat dependencies have been resolved."
# Building oclHashcat
First get a copy of **oclHashcat** repository
```sh
$ git clone https://github.com/hashcat/oclHashcat.git
```
Now simply jump in and type "make all"
```sh
$ cd oclHashcat
$ make all
```
Useful tricks:
- build only *Linux* binaries
```sh
$ make linux
```
- build only *Windows* binaries
```sh
$ make windows
```
- build only *AMD kernel* binaries
```sh
$ make amd_all
```
- build only *NVIDIA kernel* binaries
```sh
$ make nv_all
```
=
Enjoy your fresh **oclHashcat** binaries ;)
+1582
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -0,0 +1,3 @@
web: https://hashcat.net
email: atom@hashcat.net
irc: freenode #hashcat
+22
View File
@@ -0,0 +1,22 @@
The MIT License (MIT)
Copyright (c) 2015 Jens Steube
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+5
View File
@@ -0,0 +1,5 @@
Performance Notes:
==================
- Always Use the latest display driver
- To significantly improve performance use -w 3
+222
View File
@@ -0,0 +1,222 @@
oclHashcat v2.00
================
NV users require ForceWare 346.59 or later
AMD users require Catalyst 14.9 or later
##
## Features
##
- World's fastest password cracker
- World's first and only GPGPU-based rule engine
- Free
- Open-Source
- Multi-GPU (up to 128 GPUs)
- Multi-Hash (up to 100 million hashes at once)
- Multi-OS (Linux & Windows native binaries)
- Multi-Platform (OpenCL & CUDA support)
- Multi-Algorithm (see below)
- Low resource utilization; you can still watch movies or play games while cracking
- Focuses on highly iterated modern hashes
- Focuses on dictionary-based attacks
- Supports distributed cracking
- Supports pause / resume while cracking
- Supports sessions
- Supports restore
- Supports reading words from file and stdin
- Supports hex-salt and hex-charset
- Built-in benchmarking system
- Integrated thermal watchdog
- 150+ Hash-types implemented with performance in mind
- ... and much more
##
## Attack-Modes
##
- Straight *
- Combination
- Brute-force
- Hybrid dict + mask
- Hybrid mask + dict
* = Supports rules
##
## Hash-Types
##
- MD4
- MD5
- Half MD5 (left, mid, right)
- SHA1
- SHA-256
- SHA-384
- SHA-512
- SHA-3 (Keccak)
- SipHash
- RipeMD160
- Whirlpool
- GOST R 34.11-94
- GOST R 34.11-2012 (Streebog) 256-bit
- GOST R 34.11-2012 (Streebog) 512-bit
- Double MD5
- Double SHA1
- md5($pass.$salt)
- md5($salt.$pass)
- md5(unicode($pass).$salt)
- md5($salt.unicode($pass))
- md5(sha1($pass))
- md5($salt.md5($pass))
- md5($salt.$pass.$salt)
- md5(strtoupper(md5($pass)))
- sha1($pass.$salt)
- sha1($salt.$pass)
- sha1(unicode($pass).$salt)
- sha1($salt.unicode($pass))
- sha1(md5($pass))
- sha1($salt.$pass.$salt)
- sha256($pass.$salt)
- sha256($salt.$pass)
- sha256(unicode($pass).$salt)
- sha256($salt.unicode($pass))
- sha512($pass.$salt)
- sha512($salt.$pass)
- sha512(unicode($pass).$salt)
- sha512($salt.unicode($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)
- PBKDF2-HMAC-MD5
- PBKDF2-HMAC-SHA1
- PBKDF2-HMAC-SHA256
- PBKDF2-HMAC-SHA512
- MyBB
- phpBB3
- SMF
- vBulletin
- IPB
- Woltlab Burning Board
- osCommerce
- xt:Commerce
- PrestaShop
- Mediawiki B type
- Wordpress
- Drupal
- Joomla
- PHPS
- Django (SHA-1)
- Django (PBKDF2-SHA256)
- EPiServer
- ColdFusion 10+
- Apache MD5-APR
- MySQL
- PostgreSQL
- MSSQL
- Oracle H: Type (Oracle 7+)
- Oracle S: Type (Oracle 11+)
- Oracle T: Type (Oracle 12+)
- Sybase
- hMailServer
- DNSSEC (NSEC3)
- IKE-PSK
- IPMI2 RAKP
- iSCSI CHAP
- Cram MD5
- MySQL Challenge-Response Authentication (SHA1)
- PostgreSQL Challenge-Response Authentication (MD5)
- SIP Digest Authentication (MD5)
- WPA
- WPA2
- NetNTLMv1
- NetNTLMv1 + ESS
- NetNTLMv2
- Kerberos 5 AS-REQ Pre-Auth etype 23
- Netscape LDAP SHA/SSHA
- LM
- NTLM
- Domain Cached Credentials (DCC), MS Cache
- Domain Cached Credentials 2 (DCC2), MS Cache 2
- MS-AzureSync PBKDF2-HMAC-SHA256
- descrypt
- bsdicrypt
- md5crypt
- sha256crypt
- sha512crypt
- bcrypt
- scrypt
- OSX v10.4
- OSX v10.5
- OSX v10.6
- OSX v10.7
- OSX v10.8
- OSX v10.9
- OSX v10.10
- AIX {smd5}
- AIX {ssha1}
- AIX {ssha256}
- AIX {ssha512}
- Cisco-ASA
- Cisco-PIX
- Cisco-IOS
- Cisco $8$
- Cisco $9$
- Juniper IVE
- Juniper Netscreen/SSG (ScreenOS)
- Android PIN
- GRUB 2
- CRC32
- RACF
- Radmin2
- Redmine
- Citrix Netscaler
- SAP CODVN B (BCODE)
- SAP CODVN F/G (PASSCODE)
- SAP CODVN H (PWDSALTEDHASH) iSSHA-1
- PeopleSoft
- Skype
- 7-Zip
- RAR3-hp
- 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)
- MS Office <= 2003 MD5
- MS Office <= 2003 SHA1
- MS Office 2007
- MS Office 2010
- MS Office 2013
- Lotus Notes/Domino 5
- Lotus Notes/Domino 6
- Lotus Notes/Domino 8
- Bitcoin/Litecoin wallet.dat
- Blockchain, My Wallet
- 1Password, agilekeychain
- 1Password, cloudkeychain
- Lastpass
- Password Safe v2
- Password Safe v3
- eCryptfs
- Android FDE <= 4.3
- TrueCrypt 5.0+
##
## Tested OS's
##
- All Windows and Linux versions should work on both 32 and 64 bit
##
## Tested GPU's
##
- All NVidia CUDA enabled cards >= sm_20
- All AMD OpenCL enabled cards >= HD 5000
To get started, run the example scripts or check out docs/user_manuals.txt
+58
View File
@@ -0,0 +1,58 @@
#define RULE_OP_MANGLE_NOOP ':' // does nothing
#define RULE_OP_MANGLE_LREST 'l' // lower case all chars
#define RULE_OP_MANGLE_UREST 'u' // upper case all chars
#define RULE_OP_MANGLE_LREST_UFIRST 'c' // lower case all chars, upper case 1st
#define RULE_OP_MANGLE_UREST_LFIRST 'C' // upper case all chars, lower case 1st
#define RULE_OP_MANGLE_TREST 't' // switch the case of each char
#define RULE_OP_MANGLE_TOGGLE_AT 'T' // switch the case of each char on pos N
#define RULE_OP_MANGLE_REVERSE 'r' // reverse word
#define RULE_OP_MANGLE_DUPEWORD 'd' // append word to itself
#define RULE_OP_MANGLE_DUPEWORD_TIMES 'p' // append word to itself N times
#define RULE_OP_MANGLE_REFLECT 'f' // reflect word (append reversed word)
#define RULE_OP_MANGLE_ROTATE_LEFT '{' // rotate the word left. ex: hello -> elloh
#define RULE_OP_MANGLE_ROTATE_RIGHT '}' // rotate the word right. ex: hello -> ohell
#define RULE_OP_MANGLE_APPEND '$' // append char X
#define RULE_OP_MANGLE_PREPEND '^' // prepend char X
#define RULE_OP_MANGLE_DELETE_FIRST '[' // delete first char of word
#define RULE_OP_MANGLE_DELETE_LAST ']' // delete last char of word
#define RULE_OP_MANGLE_DELETE_AT 'D' // delete char of word at pos N
#define RULE_OP_MANGLE_EXTRACT 'x' // extract X chars of word at pos N
#define RULE_OP_MANGLE_OMIT 'O' // omit X chars of word at pos N
#define RULE_OP_MANGLE_INSERT 'i' // insert char X at pos N
#define RULE_OP_MANGLE_OVERSTRIKE 'o' // overwrite with char X at pos N
#define RULE_OP_MANGLE_TRUNCATE_AT '\''// cut the word at pos N
#define RULE_OP_MANGLE_REPLACE 's' // replace all chars X with char Y
#define RULE_OP_MANGLE_PURGECHAR '@' // purge all instances of char X
#define RULE_OP_MANGLE_DUPECHAR_FIRST 'z' // prepend first char of word to itself. ex: hello -> hhello
#define RULE_OP_MANGLE_DUPECHAR_LAST 'Z' // append last char of word to itself. ex: hello -> helloo
#define RULE_OP_MANGLE_DUPECHAR_ALL 'q' // duplicate all chars. ex: hello -> hheelllloo
#define RULE_OP_MANGLE_EXTRACT_MEMORY 'X' // insert substring delimited by N and M into current word at position I
#define RULE_OP_MANGLE_APPEND_MEMORY '4' // insert the word saved by 'M' at the end of current word
#define RULE_OP_MANGLE_PREPEND_MEMORY '6' // insert the word saved by 'M' at the beginning of current word
#define RULE_OP_MEMORIZE_WORD 'M' // memorize current word
#define RULE_OP_REJECT_LESS '<' // reject plains of length greater than N
#define RULE_OP_REJECT_GREATER '>' // reject plains of length less than N
#define RULE_OP_REJECT_CONTAIN '!' // reject plains that contain char X
#define RULE_OP_REJECT_NOT_CONTAIN '/' // reject plains that do not contain char X
#define RULE_OP_REJECT_EQUAL_FIRST '(' // reject plains that do not contain char X at first position
#define RULE_OP_REJECT_EQUAL_LAST ')' // reject plains that do not contain char X at last position
#define RULE_OP_REJECT_EQUAL_AT '=' // reject plains that do not contain char X at position N
#define RULE_OP_REJECT_CONTAINS '%' // reject plains that contain char X less than N times
#define RULE_OP_REJECT_MEMORY 'Q' // reject plains that match the plain saved (see M), i.e. if unchanged
/* hashcat only */
#define RULE_OP_MANGLE_SWITCH_FIRST 'k' // switches the first 2 chars. ex: hello -> ehllo
#define RULE_OP_MANGLE_SWITCH_LAST 'K' // switches the last 2 chars. ex: hello -> helol
#define RULE_OP_MANGLE_SWITCH_AT '*' // switches the first 2 chars after pos N. ex: hello -> hlelo
#define RULE_OP_MANGLE_CHR_SHIFTL 'L' // bitwise shift left char at pos N. ex: hello0 -> hello`
#define RULE_OP_MANGLE_CHR_SHIFTR 'R' // bitwise shift right char at pos N. ex: hello` -> hello0
#define RULE_OP_MANGLE_CHR_INCR '+' // bytewise increase at pos N. ex: hello0 -> hello1
#define RULE_OP_MANGLE_CHR_DECR '-' // bytewise decreate at pos N. ex: hello1 -> hello0
#define RULE_OP_MANGLE_REPLACE_NP1 '.' // replaces character @ n with value at @ n plus 1
#define RULE_OP_MANGLE_REPLACE_NM1 ',' // replaces character @ n with value at @ n minus 1
#define RULE_OP_MANGLE_DUPEBLOCK_FIRST 'y' // duplicates first n characters
#define RULE_OP_MANGLE_DUPEBLOCK_LAST 'Y' // duplicates last n characters
#define RULE_OP_MANGLE_TITLE 'E' // lowercase everything then upper case the first letter and every letter after a space
+8
View File
@@ -0,0 +1,8 @@
status codes on exit:
=====================
-2 = gpu-watchdog alarm
-1 = error
0 = OK/cracked
1 = exhausted
2 = aborted
+3
View File
@@ -0,0 +1,3 @@
The user manuals are constantly updated. Thats why they are not part of the distribtion.
For more detailed Informations and advanced hashcat usage visit our Wiki: http://hashcat.net/wiki