Kali Linux in Action: Kali Linux ツール(パッケージ)のインストール
Contact: takayuki.kawamoto@markupdancing.net
ORCID,
Google Scholar,
PhilPapers.
First appeared: 2018-02-08 17:10:16,
Modified: [BLANK],
Last modified: [BLANK].
はじめに
Kali Linux のインストールを終えたら、Linux としての運用環境を整備したりデスクトップ環境をカスタマイズするといったことは、それぞれの運用レベルや目的に応じてやっていただくとして、ここでは Kali Linux 用のツール(パッケージ)を追加する解説に入ります。ただし、セキュリティ関連のツールをインストールする前に、apt-get update
と apt-get dist-upgrade
でインストール環境を整える事前準備はやっておきましょう。
Kali Linux 用に提供されているツールは、専用のウェブサイトで公開されており、個々のツールだけでなく “Kali Metapackages”(当サイトでは「メタ・パッケージ」と呼びます)という一式のパッケージ・セットとしても提供されています。したがって、apt-get install git
のように個別でパッケージを追加してもいいわけですが、apt-get install kali-linux-pwtools
(これはパスワード・クラック用のツールを集めたメタ・パッケージ) として直にメタ・パッケージを指定すると、複数のパッケージや依存関係のあるライブラリなどをまとめてインストールしてくれます。
ただし、メタ・パッケージのページで確認すると分かるように、幾つものパッケージが含まれているので、インストールにかかる時間も長くなります。僕が試したところでは、kali-linux というメタ・パッケージのダウンロードとインストールには 25 分ていどの時間がかかっていますし、kali-linux-pwtools というメタ・パッケージのダウンロードとインストールには1時間以上もかかりました(このメタ・パッケージに含まれるパッケージの数は、表向きは 42 個となっていますが、実際には依存関係のあるライブラリも一緒にダウンロードするため、合計で 160 くらいのソフトウェアをインストールしています。もちろん、帯域やマシンの性能によって所要時間は変わります)。そして、メタ・パッケージに含まれているパッケージの数が単純に少ないからといって、所要時間の合計が短いとは限りません。例えば CLang のようなコンパイラが含まれていれば一つのパッケージだけでインストールが長くなったりします。そして、幾つものメタ・パッケージを順番にインストールするときは、先にインストールするメタ・パッケージと一緒に、後でインストールするメタ・パッケージにも必要なライブラリなどがインストールされていたら、たとえ後からインストールするメタ・パッケージに含まれるパッケージの数が先にインストールしたメタ・パッケージに含まれるパッケージの数より多くても、後からインストールするメタ・パッケージの方が所要時間は短くなるかもしれません。
なお、本稿では他のページと参照文献の専用ページを共有しています。典拠表記の参照先は別のページなので、ご了承ください。
メタ・パッケージ一覧
どのパッケージ(あるいはメタ・パッケージ)をインストールするかは、もちろん Kali Linux を導入する用途によって判断が違ってくるはずです。僕は、差し当たって kali-linux と kali-linux-pwtools をインストールしていますが、これから正式に業務で使っていくあいだにパッケージを個別に増やしたりメタ・パッケージとして一斉にパッケージを追加するかもしれません。現状では、公式サイトのブログ記事を参照して説明すると、メタ・パッケージは以下のようなものがあります。
- kali-linux: Kali Linux の基本システムであり、Kali カーネル、ネットワーク・サービス、あるいはバージョン管理ツールなどが含まれる。kali-linux は、他のメタ・パッケージにも含まれる。(インストールサイズは 1.5 GB)
- kali-linux-full: Light ではなくフルバージョンの Kali Linux ISO イメージを使って Kali Linux をインストールした場合に追加される全てのツールが含まれている。(インストールサイズは 9 GB)
- kali-linux-all: full でも、色々なハードウェアごとに用意されている GPU ツールなどは含まれていない。ハードウェアに依存するツールも含めて全て追加したい場合は、このメタ・パッケージを選ぶことになる。(ただし、インストールサイズは 15 GB にもなる。)
- kali-linux-top10: 人気トップ10のツール。(ただし、何のランキングなのか根拠は不明。ツールの数が少ないわりに、インストールサイズは 3.5 GB)
- kali-linux-forensic: デジタル・フォレンジクス(「電子鑑識」などと呼ばれる)を目的としている場合は、このメタ・パッケージだけを追加すればよい。(インストールサイズは 3.1 GB)
- kali-linux-gpu: GPU クラッキング・ツールはハードウェアの特性に依存するので、ディフォールトでは他のメタ・パッケージに含まれていない。必要なら、このメタ・パッケージで全ての GPU ツールを追加できる。(インストールサイズは 4.8 GB)
- kali-linux-pwtools: 40 種類のパスワード・クラッキング・ツールが含まれる。(インストールサイズは 6.0 GB)
- kali-linux-rfid: RFID を調査したり、RFID の書き換えといった攻撃を試すためのツールが含まれる。(インストールサイズは 1.5 GB)
- kali-linux-sdr: Software Defined Radio(ソフトウェア無線:ハードウェアを替えずにソフトウェア上で通信方式を変更できる無線通信のこと)をハッキングするために必要なツールを集めてある。(インストールサイズは 2.4 GB)
- kali-linux-voip: VoIP(音声を符号化して IP ネットワークで通信できるようにする技術。オフィスで使う IP 電話などがよく知られている)の通信をテストする用途などに使うツールを集めてある。(インストールサイズは 1.8 GB)
- kali-linux-web: ウェブアプリケーションに対するペネトレーション・テストなどで使うツールを集めてある。(インストールサイズは 4.9 GB)
- kali-linux-wireless: ワイヤレス・ネットワーク越しにウェブアプリケーションなどをテストする場合に使うツールを集めてある。(インストールサイズは 6.6 GB)
メタ・パッケージに含まれている個々のパッケージについて知りたい場合は、apt
コマンドを使えば以下のように表示されます。
root@kalilinux:~# apt-cache show kali-linux-pwtools | grep Depend
Depends: kali-linux, kali-linux-gpu, chntpw, cmospwd, crunch, fcrackzip, findmyhash, gpp-decrypt, hash-identifier, hashcat, hashcat-utils, hashid, hydra, hydra-gtk, john, johnny, keimpx, maskprocessor, medusa, mimikatz, ncrack, ophcrack, ophcrack-cli, pack, passing-the-hash, patator, pdfcrack, pipal, polenum, rainbowcrack, rarcrack, rcracki-mt, rsmangler, samdump2, seclists, sipcrack, sipvicious, sqldict, statsprocessor, sucrack, thc-pptp-bruter, truecrack, twofi, wce, wordlists
パッケージの一部がインストールに失敗したとき
Kali on the Windows Subsystem for Linux ほどではありませんが、Kali Linux のメタ・パッケージをインストールしているときにも、幾つかのパッケージのインストールに失敗しているようです。このような場合、標準的な手続きとしては、vi /etc/apt/sources.list
で開いて、
# deb-src http://repo.kali.org/kali kali-rolling main non-free contrib
のようにコメントアウトされているソースのポインタを有効にしてから(つまり #
を取り除くわけです)、あらためて apt-get update
して情報を更新することが推奨されています。しかし、これでインストールし直しても、以下のようなエラーで終わることもあります。
root@kalilinux:~# apt-get update
ヒット:1 http://ftp.ne.jp/Linux/packages/kali/kali kali-rolling InRelease
パッケージリストを読み込んでいます... 完了
root@kalilinux:~# apt-get install kali-linux-pwtools
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
acl aspell aspell-en binfmt-support binutils binutils-common binutils-x86-64-linux-gnu ca-certificates-java chntpw clang-4.0
[...]
提案パッケージ:
aspell-doc spellutils binutils-doc gnustep gnustep-devel clang-4.0-doc libomp-dev gcc-7-locales beignet-opencl-icd
[...]
推奨パッケージ:
wine32
以下のパッケージが新たにインストールされます:
acl aspell aspell-en binfmt-support binutils binutils-common binutils-x86-64-linux-gnu ca-certificates-java chntpw clang-4.0
[...]
以下のパッケージはアップグレードされます:
cpp-7 gcc-7-base libcurl3-gnutls libffi6 libgcc1 libgfortran4 libglapi-mesa libglx-mesa0 libgomp1 libquadmath0 libsqlite3-0
libstdc++6
アップグレード: 12 個、新規インストール: 261 個、削除: 0 個、保留: 171 個。
482 MB 中 1,094 kB のアーカイブを取得する必要があります。
この操作後に追加で 1,613 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://ftp.ne.jp/Linux/packages/kali/kali kali-rolling/main amd64 mimikatz all 2.1.1-20180205-0kali1 [645 kB]
エラー:1 http://ftp.ne.jp/Linux/packages/kali/kali kali-rolling/main amd64 mimikatz all 2.1.1-20180205-0kali1
File has unexpected size (2310 != 644520). Mirror sync in progress? [IP: 192.26.91.193 80]
Hashes of expected file:
- SHA256:19398eac99b01d1d5dcc54ddd5cbe6eae68fb941127382feee04b7a9208548f8
- SHA1:57f260c4ff87837a9cbadf556383e164a9ff6faf [weak]
- MD5Sum:412bff1d3c9fd96cf4a716df1a115bc2 [weak]
- Filesize:644520 [weak]
[...]
E: いくつかのアーカイブを取得できません。apt-get update を実行するか --fix-missing オプションを付けて試してみてください。
次に、リポジトリの FQDN を http.kali.org
から repo.kali.org
へ変更するというアドバイスを見かけますが、これでもエラーは直りません(というか、http://repo.kali.org は未署名なのでアクセスすらできません。論外です)。さしあたり、僕の環境では mimikatz と Windows Credentials Editor (WCE) が入らないだけなのですが、これが本当に「ダウンロードするべきでないパッケージ(つまりクラックされているからこそハッシュ値が合わない)」なのかどうかは、まだ決められません。当然、Kali Linux のリポジトリは世界中のアタッカーの標的になっていると考えてよく、ハッシュ値が合わないという理由でインストールできないツールは、寧ろできないこと自体を喜ぶべきかもしれないからです。ちなみに mimikatz と wce のバイナリがダウンロードできない理由は、会社の UTM(Fortigate)がマルウェアと判定していたからでした。こういう場合に困るのは、セキュリティ監査のツールだから「危険」と判定されているのか、それともソースコードが本当に危険な挙動をするように改竄されたツールとして「危険」だと判定されているのかが区別できないということです(もちろん、基本はチェックサムの一致です)。