Kali Linuxにzenmapを導入する

最終更新日:2021年05月02日
レベル:★★★☆☆
Kali Linuxのリポジトリには入っていない「zenmap」をなんとかインストールする方法の1つをご紹介します。

ペネトレーションテスト用としてよく利用される「Kali Linux」ですが、最近のリリース(2021.1付近)にはzenmapがデフォルトではインストールされていないようです。aptでインストールしようとしてもKaliのパッケージリポジトリにはzenmapは入っていません。
zenmapがpython2+gtk2で動作していることが原因なのかもしれません(または「zenmapなんて初心者ツール使うな!」というKali Linux側の想いなのかもしれませんが...)。

とはいえ、nmapに比べるとGUIで操作できるzenmapはやはり便利。なんとかインストールできないものか、と思い立ち、ちょっとやってみましたので、その方法をご紹介します。

インストール手順概要

2021年5月現在、Linux用のzenmapパッケージは.rpm形式でしか提供されていません。ですのでrpm形式のパッケージをDebian/Ubuntuで利用できるように.deb形式に変換してインストールすることにします。
その際に、.rpmパッケージを.debパッケージに変換するための「alien」というパッケージを先に導入します。

また、Kali Linuxにはzenmapを動作させるためのpython-gtk2パッケージ(とそれに関連するパッケージ)が入っていませんしKali Linux用のaptリポジトリにも入っていません。
必要なパッケージを1つずつ探してきてインストールする方法もありますが、後々のことを考えてpython-gtk2パッケージを含んだリポジトリを導入することにします。

まずはパッケージのアップデート

本題に入る前に、まずはaptリポジトリとパッケージ類のアップデートを行います。

$ sudo apt update
$ sudo apt upgrade

alienの導入

.rpmパッケージを.debパッケージに変換するためのパッケージとして「alien」をインストールします。

$ sudo apt install alien

zenmapの入手&変換

nmapのサイトからzenmapのrpmパッケージを入手します。

Nmap: the Network Mapper - Free Security Scanner

ダウンロードが終了したらzenmapパッケージを変換します。
以下の例では、「zenmap-7.91-1.norach.rpm」を「Download」ディレクトリにダウンロードしたものとします。

$ cd Download
$ sudo alien zenmap-7.91-1.noarch.rpm
zenmap_7.91-2_all.deb generated

ちなみに、このあとすぐにzenmapを実行してみると、こんな感じになってしまいます。

$ sudo zenmap
Could not import the zenmapGUI.App module: 'No module named gtk'.
I checked in these directories:
    /usr/bin
    /usr/share/offsec-awae-wheels/backports.functools_lru_cache-1.6.1-py2.py3-none-any.whl
    /usr/share/offsec-awae-wheels/colorama-0.4.3-py2.py3-none-any.whl
    /usr/share/offsec-awae-wheels/ply-3.11-py2.py3-none-any.whl
    /usr/share/offsec-awae-wheels/six-1.15.0-py2.py3-none-any.whl
    /usr/share/offsec-awae-wheels/certifi-2020.4.5.1-py2.py3-none-any.whl
    /usr/share/offsec-awae-wheels/pycparser-2.20-py2.py3-none-any.whl
    /usr/share/offsec-awae-wheels/requests-2.23.0-py2.py3-none-any.whl
    /usr/share/offsec-awae-wheels/PySocks-1.7.1-py27-none-any.whl
    /usr/share/offsec-awae-wheels/chardet-3.0.4-py2.py3-none-any.whl
    /usr/share/offsec-awae-wheels/beautifulsoup4-4.9.1-py2-none-any.whl
    /usr/share/offsec-awae-wheels/idna-2.9-py2.py3-none-any.whl
    /usr/share/offsec-awae-wheels/soupsieve-1.9.5-py2.py3-none-any.whl
    /usr/share/offsec-awae-wheels/pyOpenSSL-19.1.0-py2.py3-none-any.whl
    /usr/share/offsec-awae-wheels/enum34-1.1.10-py2-none-any.whl
    /usr/share/offsec-awae-wheels/urllib3-1.25.9-py2.py3-none-any.whl
    /usr/share/offsec-awae-wheels/ipaddress-1.0.23-py2.py3-none-any.whl
    /usr/share/cffi-wheels/py-1.8.1-py2.py3-none-any.whl
    /usr/share/cffi-wheels/setuptools-44.1.0-py2.py3-none-any.whl
    /usr/lib/python2.7
    /usr/lib/python2.7/plat-x86_64-linux-gnu
    /usr/lib/python2.7/lib-tk
    /usr/lib/python2.7/lib-old
    /usr/lib/python2.7/lib-dynload
    /usr/local/lib/python2.7/dist-packages
    /usr/lib/python2.7/dist-packages
    /usr/lib/python2.7/dist-packages
    /usr/lib/python2.6/site-packages
If you installed Zenmap in another directory, you may have to add the
modules directory to the PYTHONPATH environment variable.

「gtkがない」と言われているので、aptでgtkを入れようとしても

$ sudo apt install python-gtk2
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
E: パッケージ python-gtk2 が見つかりません

python-gtk2の導入

Debian 10(buster)のリポジトリを追加してみます。
今回は /etc/apt/sources.list に直接Debianのリポジトリを使用するように設定します。

$ sudo vi /etc/apt/sources.list

「/etc/apt/sources.list」を次のように編集して保存します。

 :
# Additional line for source packages
# deb-src http://http.kali.org/kali kali-rolling main contrib non-free

deb http://ftp.riken.jp/Linux/debian/debian buster main contrib non-free <------ この行を追加

「apt update」します。

$ sudo apt update

改めてpython-gtk2をインストールします。

$ sudo apt install python-gtk2
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
以下の追加パッケージがインストールされます:
  libffi6 python-cairo python-gobject-2 python-numpy python-pkg-resources
提案パッケージ:
  python-gobject-2-dbg python-gtk2-doc gfortran python-dev python-pytest
  python-numpy-dbg python-numpy-doc python-setuptools
以下のパッケージが新たにインストールされます:
  libffi6 python-cairo python-gobject-2 python-gtk2 python-numpy
  python-pkg-resources
アップグレード: 0 個、新規インストール: 6 個、削除: 0 個、保留: 2 個。
3,283 kB のアーカイブを取得する必要があります。
この操作後に追加で 17.0 MB のディスク容量が消費されます。
続行しますか? [Y/n] Y
 :

入ったようです。

ここで再度zenmapを起動してみます。

$ sudo zenmap

今度は起動されました。

念のために、今回追加したDebianリポジトリはこのあと無効にしておくほうが良いかもしれません(誤ってDebianリポジトリ側のパッケージをインストール/更新してしまわないように)。
が、python-gtk2パッケージとその関連パッケージのアップデートに備え、定期的にDebianリポジトリを有効にしてapt update & upgradeするほうが良いでしょう。
このあたりの運用はよく検討する必要があるかと思います。

ー 以上 ー

 CMSを使ったホームページ制作
 VPS, AWS等クラウドシステム構築
等々のご依頼承っております