nmap 公式 Web サイトから 1 つのダウンロード
1.1 nmap の概要。
Nmap (「ネットワーク マッパー」) は、ネットワーク探索とセキュリティ監査のためのオープンソース ツールです。これは大規模なネットワークを高速にスキャンするように設計されていますが、単一のホストでもうまく機能します。Nmap は、生の IP パケットを新しい方法で使用して、ネットワーク上で利用可能なホスト、それらのホストが提供するサービス (アプリケーション名とバージョン)、ホストが実行している OS (および OS バージョン)、使用されているパケット フィルタ / ファイアウォール タイプを判断します。 、その他多くの機能があります。Nmap は一般的にセキュリティ監査に使用されますが、多くのシステム管理者やネットワーク管理者は、ネットワーク インベントリ、サービス アップグレード スケジュールの管理、ホストやサービスの稼働時間の監視などの日常業務にも便利であると考えています。(1.2 の公式 Web サイトからコピー)。
簡単に言うと、スキャンはより慎重になりますが、スキャン速度は比較的遅いため、arp 検出ツールと ping スキャン ツールを使用してネットワークを事前にスキャンして資産を事前に検出し、nmap を使用して詳細なスキャンを実行することをお勧めします。一部の「情報漏洩」取得港に関する情報。
1.2 nmap 公式 Web サイトのダウンロード リンク。
https://nmap.org/
https://nmap.org/download#windows
1.3 Windows nmap のダウンロード リンク。
Windows 11 については、2023 年初頭現在、openssh に互換性がないため、次の安定版を推奨します。
https://nmap.org/dist/nmap-7.92-setup.exe
2. ターゲット マシンを使用して nmap コマンドをテストします。
2.1 3 つの VMware 仮想マシンを起動します。Win7 が 1 つ、Win10 が 1 つ、CentOS7 が 1 つ。ネットワーク カードはすべてホストオンリー モードであり、ネットワークはクリーンで他のカードには影響を与えません。
2.2 VMware のホストオンリー モードのネットワーク セグメントを表示します。
2.3 物理マシンで Wireshark を開きます。ホストオンリー モードは VMnet1 NIC です。ネットワーク環境では、仮想マシンによって送信される DNS などのデータ パケットは少量だけです。
2.4 以下のコマンドをテストします。物理マシン win11 が攻撃マシンです。
2.4.1 コマンド: nmap xxxx/mask (ターゲット IP/ネットワーク セグメント)
nmap 10.44.1.0/24
パケットキャプチャにより、arpリクエストパケットが2回送信されていることが判明しました。
合計約 8000 個の tcp syn 要求パケットが送信されました。さまざまなポート (一般的に使用されるポートと思われる非順次ポート) がテストされました。tcp.dstport==445 を使用して高リスク ポートをテストしましたが、すべて存在します。
期間中はまだ ping パケットがいくつかあり、仮想マシン 130 は期間中に物理マシンに ping を送信しましたが、物理マシンではファイアウォールがオンになっていたため、ping を送信できませんでした。
次に、スキャン結果を見てみましょう。
129 ホストは win10 仮想マシンであり、Windows システム ファイアウォールがオンになっており、MAC アドレスのみをスキャンできます。
130 ホストは centos7 仮想マシンであり、ファイアウォール サービスも有効になっているため、ssh リモート ポートに対してのみスキャンできます。
131 ホストは win7 仮想マシンであり、Windows システム ファイアウォールがオンになっており、リモート デスクトップ サービスの MAC アドレスとポート 3389 がスキャンされます。
2.4.2 ホスト検出用コマンド:nmap -sn
nmap -sn 10.44.1.0/24
パケットをキャプチャすると、このコマンドが arp パケットのみを送信していることがわかります。したがって、MAC アドレス情報のみが返されます。
nmp のヘルプ マニュアルを参照すると、sn パラメータの機能がポート スキャンをキャンセルすることであることがわかります。
C:\Users\zhang>nmap -h | findstr "sn"
-sn: Ping Scan - disable port scan
nmap -v -sn 192.168.0.0/16 10.0.0.0/8
2.4.3 フルポートスキャンのコマンド nmap -sS -p1-65535。
nmap -sS -p1-65535 10.44.1.129
に相当
nmap -sS -p- 10.44.1.129
今回は、1 台の win10 仮想マシンがスキャンされ、完全なポート スキャンにより 130,000 の SYN パケットが送信されました。時間がかかります。Huorong も Windows 防御も警告しなかったことは言及する価値があります。
フル ポート スキャンにより、変更したリモート デスクトップ サービスのポート 23389 が見つかりました。CSDN の友人から見つかった Microsoft パッチ更新ポート 7680 もあります。
ポートクエリコマンド(拡張)。
C:\Users\zhangcj>netstat -ano | findstr "7680"
TCP 0.0.0.0:7680 0.0.0.0:0 LISTENING 1048
TCP [::]:7680 [::]:0 LISTENING 1048
C:\Users\zhangcj>tasklist /svc | findstr "1048"
svchost.exe 1048 DoSvc
以下はnmapのヘルプマニュアルです。
PORT SPECIFICATION AND SCAN ORDER:端口规格和扫描顺序:
-p <port ranges>: Only scan specified ports仅扫描指定端口
Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
--exclude-ports <port ranges>: Exclude the specified ports from scanning从扫描中排除指定的端口
-F: Fast mode - Scan fewer ports than the default scan快速模式-扫描比默认扫描更少的端口
-r: Scan ports sequentially - don't randomize 按顺序扫描端口-不要随机化
--top-ports <number>: Scan <number> most common ports扫描<number>最常见的端口
--port-ratio <ratio>: Scan ports more common than <ratio>扫描端口比<比率>更常见
2.4.4 システムスキャンコマンド nmap -O。
nmap -O 10.44.1.0/24
今回も arp と tcp の両方で 8k パケットを送信しました。そしていくつかの ping パケット。この時点で、システムのファイアウォールを開きます。
22 および 3389 の情報漏洩を通じて、nmap はいくつかのあいまいなオペレーティング システム情報をスキャンしました。
ここで、win7 仮想マシンのシステム ファイアウォールをオフにし、ポート 3389 経由でシステムを再度スキャンします。
今回システムファイアウォールをオフにした場合の検出結果は、トランスポート層の接続検出(TCP、UDP)のみで、対象マシンのOSを大まかに推測することができました。
システムのファイアウォールがオフになっている場合、サーバーの情報漏洩は明らかであることがわかります。(私の理解によれば、既存のセキュリティ対策では、この種のシステム スキャンを防ぐのは困難です。)
View nmap -h
OS DETECTION:
-O: Enable OS detection 开启系统探测
--osscan-limit: Limit OS detection to promising targets将OS检测限制在有希望的目标上
--osscan-guess: Guess OS more aggressively猜测操作系统更激进
バージョン 2.4.5 のスキャン コマンド nmap -sV。
nmap -sV 10.44.1.130
今回、CentOS 仮想マシンは 2,000 個のパケットのみを送信し、1,000 個のポートをスキャンします。
今回は、ARP パケットと TCP パケット、SSH パケット以外のパケットをついに見つけました。TCP フローを追跡すると、完全な TCP ハンドシェイク (3 回のハンドシェイクと 4 回の分割) が実行され、データ フローの内容には SSH バージョン情報のみが含まれていることがわかりました。
CentOS仮想マシンの内部参照コマンドに対応。
nmap -h を表示する
SERVICE/VERSION DETECTION:服务/版本检测
-sV: Probe open ports to determine service/version info探测打开的端口以确定服务/版本信息
--version-intensity <level>: Set from 0 (light轻度) to 9 (try all probes尝试所有探测)版本强度探测
--version-light: Limit to most likely probes (intensity 2)限制为最可能的探测(强度2)
--version-all: Try every single probe (intensity 9)所有测试,强度9
--version-trace: Show detailed version scan activity (for debugging)显示详细的版本扫描活动(用于调试)
今回はここまでですが、今後さらにコマンドテストが行われる予定です。