1001001

73。CTFのWrite-upや技術的な備忘録を書きとめたいです。

hashcatをCPU OnlyのUbuntu16.06環境にインストール

オープンソースの高速パスワードリカバリーツールであるhashcatをCPU OnlyのUbuntu16.04環境にインストールする手順になります.

環境

hashcatはGPUを利用することでより高速に処理が可能ですが,私のサーバにはCPUしか積んでいないのでCPU環境で使えるようにしました.CPU(やIntel GPU)でhashcatを使う場合には,OpenCLという並列コンピューティングのためのクロスプラットフォームをインストールする必要もあります.下記のインストール手順で順に説明します。

インストール手順

  1. hashcatのインストール (バイナリ or ビルド)
  2. OpenCLのインストール

1. hashcatのインストール(バイナリ or ビルド)

hashcatのインストール方法は2パターンあります.すでにコンパイル済みのバイナリファイルをインストールするか,ソースからビルドするかの2択です.せっかくですのでどちらの方法についても記載します.

方法1: バイナリファイルをダウンロードする

Ubuntuで扱う場合はこれが一番簡単だと思います.こちらのサイトの上部にある最新版のバイナリをインストールします.(古いバージョンは最下部にあります)

ファイルは7zで圧縮されています.7zコマンドがあれば下記のようにして解凍できます.7zコマンドが使えない場合はお手数ですが7zのインストール方法を調べて入れてください.

$ 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を参考にしました.以下のようにすればインストールできます.

$ 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を表示してみると,そもそも以下のようなメッセージが表示され,環境ができていないことが確認できます.

$ 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圧縮してるので,以下のように解凍します.

$ 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を実行します.実行後は対話的にインストールを進めていきます.基本的にはdefaultrecommendを選択していけば良いです.

これでOpenCLのインストールが完了し,hashcatが使えるようになったはずです.以下のコマンドを叩いてみます.

$ 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

このような出力になっていればインストール成功です.

参考

本件には関係ないですが,NVIDIA GPU環境でインストール可能なバージョン以外のNVIDIAドライバを入れてしまいUbuntuにログインできなくなった時の対処は以下