オープンソースの高速パスワードリカバリーツールであるhashcatをCPU OnlyのUbuntu16.04環境にインストールする手順になります.
環境
- CPU : 8 CPUs x Intel(R) Xeon(R) CPU E5520
- OS : Ubuntu 16.04 64bit
hashcatはGPUを利用することでより高速に処理が可能ですが,私のサーバにはCPUしか積んでいないのでCPU環境で使えるようにしました.CPU(やIntel GPU)でhashcatを使う場合には,OpenCLという並列コンピューティングのためのクロスプラットフォームをインストールする必要もあります.下記のインストール手順で順に説明してまいります.
インストール手順
- hashcatのインストール (バイナリ or ビルド)
- OpenCLのインストール
1. hashcatのインストール(バイナリ or ビルド)
hashcatのインストール方法は2パターンあります.すでにコンパイル済みのバイナリファイルをインストールするか,ソースからビルドするかの2択です.せっかくですのでどちらの方法についても記載します.
方法1: バイナリファイルをダウンロードする
Ubuntuで扱う場合はこれが一番簡単だと思います.こちらのサイトの上部にある最新版のバイナリをインストールします.(古いバージョンは最下部にあります)
ファイルは7zで圧縮されています.7zコマンドがあれば下記のようにして解凍できます.7zコマンドが使えない場合はお手数ですが7zのインストール方法を調べて入れてください.
1 2 3 4 5 |
$ wget https://hashcat.net/files/hashcat-3.6.0.7z $ 7z x hashcat-3.6.0.7z $ file hashcat-3.5.0/hashcat64.bin hashcat-3.5.0/hashcat64.bin: ELF 64-bit LSB executable, ...省略... |
解凍したフォルダ内のhashcat64.binを使うことができます.
方法2: ソースからビルドする
ソースからビルドする場合は,こちらのGithubのBuild.mdを参考にしました.以下のようにすればインストールできます.
1 2 3 4 5 6 |
$ git clone https://github.com/hashcat/hashcat.git $ cd hashcat $ git submodule update --init $ make $ sudo make install $ hashcat --version |
最後のコマンドでhashcatのバージョンが表示されていれば成功です.
さて,hashcatをインストールできたところで早速ベンチマークを試してみたいところですが,このままでは実行できません.OpenCLをインストールしていないためです.試しに以下のコマンドでOpenCL infoを表示してみると,そもそも以下のようなメッセージが表示され,環境ができていないことが確認できます.
1 2 3 4 |
$ hashcat -I ... ATTENTION! Can't find OpenCL ICD loader library ... |
細かい出力は忘れてしまいましたが,こんな感じのメッセージが表示されます.(ベンチマークを実行するオプションであるhashcat -bなどでも同様のメッセージが表示され,失敗に終わると思います)
2. OpenCLのインストール
こちらのサイトのOpenCL™ Runtime for Intel® Core™ and Intel® Xeon® ProcessorsにあるOpenCL™ Runtime 16.1.1 for Intel® Core™ and Intel® Xeon® Processors for Ubuntu* (64-bit)をダウンロードします.
こちらはtgz圧縮してるので,以下のように解凍します.
1 2 3 4 |
$ wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9019/opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz $ tar zxvf opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz $ cd opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25 $ sudo ./install.sh |
解凍したフォルダ内にあるinstall.shを実行します.実行後は対話的にインストールを進めていきます.基本的にはdefaultやrecommendを選択していけば良いです.
これでOpenCLのインストールが完了し,hashcatが使えるようになったはずです.以下のコマンドを叩いてみます.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ hashcat -I hashcat (v3.6.0-117-g99f58f9) starting... OpenCL Info: Platform ID #1 Vendor : Intel(R) Corporation Name : Intel(R) OpenCL Version : OpenCL 1.2 LINUX Device ID #1 Type : CPU Vendor ID : 8 Vendor : Intel(R) Corporation Name : Intel(R) Xeon(R) CPU E5520 @ 2.27GHz Version : OpenCL 1.2 (Build 25) Processor(s) : 1 Clock : 2270 Memory : 1491/5967 MB allocatable OpenCL Version : OpenCL C 1.2 Driver Version : 1.2.0.25 |
このような出力になっていればインストール成功です.
参考
- hashcat – advanced password recovery
- hashcatの概要やオプション等
- How To Use hashcat On CPU Only
- OpenCL – Wikipedia –
- CentOS に Intel OpenCL をインストールする
本件には関係ないですが,NVIDIA GPU環境でインストール可能なバージョン以外のNVIDIAドライバを入れてしまいUbuntuにログインできなくなった時の対処は以下