Pythonでnmapを使う方法


ホストの調査に便利なnmapですが、スクリプト言語から使えたら便利です。
Pythonにはnmapのモジュールが用意されています。

そこでPython+nmapでポートスキャンをしてみましょう。


モジュールのインストール


pipでモジュールをインストールすることができます。


スキャン


nmapパッケージがPortScannerを持っています。
インスタンスを作りスキャンを実行できます。


オブジェクトのscanメソッドの第三引数にはフラグを指定できます。
フラグはシェルコマンドのnmapと同じもので大丈夫です。
今回はSYN Scanを指定してます。
別に何でもいいんですけどねぇ。

scanを実行するとIPアドレスをキーとするディクショナリーがインスタンスに追加されます。
その配下にスキャン情報が格納されています。

それを踏まえてこんな感じで結果を取得できます。


#1でスキャンに成功した(パケット応答があった)ポートを取得しています。
#2でポート番号に関するtcpスキャン情報を取得します。


上のスキャン結果はMetasploitableのものです。

ちなみにスキャン情報はscanを実行すると戻り値としても取得できますが、
私めは戻り値を使うよりも上の方法が楽かなと思っている次第でございます。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です