Python-nmap ネットワーク スキャンおよびスニッフィング ツールキットの使用法の紹介

巴扎黑
リリース: 2017-09-19 11:08:19
オリジナル
1948 人が閲覧しました

nmap の概念

Network Mapper としても知られる NMap は、元々は Linux 上のネットワーク スキャンおよびスニッフィング ツールキットでした。

nmap は、インターネット上のコンピューターのオープン ネットワーク接続をスキャンするために使用されるネットワーク接続スキャン ソフトウェアです。どの接続でどのサービスが実行されているかを特定し、コンピュータがどのオペレーティング システムを実行しているかを推測します (これはフィンガープリンティングとも呼ばれます)。これはネットワーク管理者が必ず使用するソフトウェアの 1 つであり、ネットワーク システムのセキュリティを評価するために使用されます。

ネットワークセキュリティに使用されるほとんどのツールと同様、nmapも多くのハッカーやハッカー(スクリプトキディとしても知られています)に好まれているツールです。システム管理者は nmap を使用して作業環境内のサーバーの不正使用を検出できますが、ハッカーは nmap を使用してターゲット コンピュータのネットワーク設定を収集し、攻撃を計画します。

Nmap は、システム脆弱性評価ソフトウェア Nessus とよく混同されます。 Nmap はステルス手法を使用して侵入検知システムの監視を回避し、ターゲット システムの日常業務に影響を与えないよう努めます。

Nmap マトリックスでは、SSH1 の 32 ビット巡回冗長検査の脆弱性とともに、Trinity が発電所のエネルギー管理システムに侵入するために使用されました。

nmap 関数

には 3 つの基本的な機能があります。1 つは、ホストのグループがオンラインであるかどうかを検出することです。2 つ目は、ホストのポートをスキャンし、ホストによって使用されているオペレーティング システムを推測することです。ホスト。 Nmap を使用すると、ノードが 2 つだけの LAN から、ノードが 500 を超えるネットワークまでをスキャンできます。 Nmap を使用すると、ユーザーはスキャン手法をカスタマイズすることもできます。通常、ICMP プロトコルを使用した単純な ping 操作で一般的なニーズを満たすことができます。また、ホストが使用するオペレーティング システムに至るまで、UDP または TCP ポートを詳細に検出することもでき、すべての検出結果をさまざまな形式でログに記録することもできます。分析。分析操作。

ping スキャンを実行し、それ以上のテスト (ポート スキャンやオペレーティング システムの検出など) を行わずにスキャンに応答したホストを出力します:

nmap -sP 192.168.1.0/24
ログイン後にコピー

指定されたネットワーク上の各ホストのみをリストし、ターゲット ホストにはパケットを送信しません:

nmap -sL 192.168.1.0/24
ログイン後にコピー

ターゲット ホストの開いているポートを検出するには、カンマ区切りのポート リスト (-PS22、23、25、80 など) を指定できます:

nmap -PS 192.168.1.234
ログイン後にコピー

UDP ping を使用してホストを検出します:

nmap -PU 192.168.1.0/24
ログイン後にコピー

最も頻繁に使用されるスキャン オプション: SYN スキャン (セミオープン スキャンとも呼ばれます) は、完全な TCP 接続を開かず、非常に高速に実行されます:

nmap -sS 192.168.1.0/24
ログイン後にコピー

nmap のインストール

この記事では、Linux Ubuntu16.04 を例として取り上げます。 、最後に主にPythonを使って操作します

1.まずnmapをインストールします

sudo apt-get install nmap
ログイン後にコピー

2.次にpython-nmapをインストールします

sudo pip install python-nmap
ログイン後にコピー

インストール後、nmapをPythonにインポートして成功するかテストします

com@pythontab:~# python
Python 2.7.12 (default, Dec  3 2016, 10:42:27) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import nmap
ログイン後にコピー

Python を使用して

1. 簡単な小さなケース

PortScanner インスタンスを作成し、IP 114.114.114.114 のポート 20 ~ 443 をスキャンします。

import nmap
nm = nmap.PortScanner()
ret = nm.scan('114.114.114.114','20')
print ret
ログイン後にコピー

戻り値の形式は次のとおりです:

{
    'nmap': {
        'scanstats': {'uphosts': '1', 'timestr': 'Tue Oct 25 11:30:47 2016', 'downhosts': '0', 'totalhosts': '1', 'elapsed': '1.11'},
        'scaninfo': {'tcp': {'services': '20', 'method': 'connect'}}, 
        'command_line': 'nmap -oX - -p 20 -sV 115.239.210.26'
     },
    'scan': {
        '115.239.210.26': {
            'status': {'state': 'up', 'reason': 'syn-ack'},
            'hostnames': [{'type': '', 'name': ''}],
            'vendor': {}, 
            'addresses': {'ipv4': '115.239.210.26'},
            'tcp': {20: {'product': '', 'state': 'filtered', 'version': '', 'name': 'ftp-data', 'conf': '3', 'extrainfo': '', 'reason': 'no-response', 'cpe': ''}
            }
        }
    }
}
ログイン後にコピー

2. 組み込みメソッド:

簡単な情報を出力することもできます

import nmap  
nm = nmap.PortScanner() 
print nm.scaninfo()
# {u'tcp': {'services': u'20-443', 'method': u'syn'}}
print nm.command_line() 
# u'nmap -oX - -p 20-443 -sV 114.114.114.114'
ログイン後にコピー

ホストの数を確認します

print nm.all_hosts()
ログイン後にコピー

[u'114.114.114.114' ]

ホストの詳細情報を表示

nm['114.114.114.114']
ログイン後にコピー

ホストに含まれるすべてのプロトコルを表示

nm['114.114.114.114'].all_protocols()
ログイン後にコピー

ホストのどのポートがTCPプロトコルを提供しているかを表示

nm['114.114.114.114']['tcp']
nm['114.114.114.114']['tcp'].keys()
ログイン後にコピー

ポートがTCPプロトコルを提供しているかどうかを表示

nm['114.114.114.114'].has_tcp(21)
ログイン後にコピー

nmap実行のパラメータはこんな感じ

nm.scan(hosts='192.168.1.0/24', arguments='-n -sP -PE -PA21,23,80,3389')
ログイン後にコピー

以上がPython-nmap ネットワーク スキャンおよびスニッフィング ツールキットの使用法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート