Network Mapper としても知られる NMap は、元々は Linux 上のネットワーク スキャンおよびスニッフィング ツールキットでした。
nmap は、インターネット上のコンピューターのオープン ネットワーク接続をスキャンするために使用されるネットワーク接続スキャン ソフトウェアです。どの接続でどのサービスが実行されているかを特定し、コンピュータがどのオペレーティング システムを実行しているかを推測します (これはフィンガープリンティングとも呼ばれます)。これはネットワーク管理者が必ず使用するソフトウェアの 1 つであり、ネットワーク システムのセキュリティを評価するために使用されます。
ネットワークセキュリティに使用されるほとんどのツールと同様、nmapも多くのハッカーやハッカー(スクリプトキディとしても知られています)に好まれているツールです。システム管理者は nmap を使用して作業環境内のサーバーの不正使用を検出できますが、ハッカーは nmap を使用してターゲット コンピュータのネットワーク設定を収集し、攻撃を計画します。
Nmap は、システム脆弱性評価ソフトウェア Nessus とよく混同されます。 Nmap はステルス手法を使用して侵入検知システムの監視を回避し、ターゲット システムの日常業務に影響を与えないよう努めます。
Nmap マトリックスでは、SSH1 の 32 ビット巡回冗長検査の脆弱性とともに、Trinity が発電所のエネルギー管理システムに侵入するために使用されました。
nmap 関数
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 のインストール
1.まずnmapをインストールします
sudo apt-get install nmap
sudo pip install python-nmap
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 nmapPython を使用して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 サイトの他の関連記事を参照してください。