>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Python

L0p4Mapベースのインタラクティブなネットワークマップと脆弱性スキャナー

新しい現場に到着したり、見知らぬオフィスサブネットに接続したりしたとき、標準的な手順はいつも同じです。ターミナルを開いて、nmap -sParp-scan を実行し、何百行もの出力から全体像を必死に把握しようとします。ゲートウェイはどこにある?デフォルト認証のまま放置されたプリンターのWebインターフェースはどこ?パッチパネルに家庭用のルーターを接続したのは誰?

Traffic Analyzer

通常、可視化するにはDraw.ioで図面を自分で描画するか、Zabbixのような大容量なインベントリシステムを設定するかのどちらかです。最近、開発者HaxL0p4が作成したL0p4Mapリポジトリを見つけました。PythonとPyQt6を使用したデスクトップアプリケーションで、ARPによるホストの素早い検出、NmapとSNMPでのクエリ実行、すぐに直感的なトポロジーグラフを描画するという基盤部分を擔っています。


L0p4Mapの内部構造

このプロジェクトの核となるアイデアはシンプルです。実績のあるネットワークユーティリティを、洗練されたダークテーマのGUIで統合します。ポートスキャンをゼロから開発するのではなく、Nmap、Scapy、pcapの呼び出しをマルチスレッドアプリケーションに包込み、vis.jsで駆動されるインタラクティブなエンジンを搭載しています。

Home

このプログラムはLinux(Debian、Arch)、Windows 10/11、macOSでクロスプラットフォームに動作します。低レベルパケットの操作にはスーパーユーザーまたは管理者権限が必要です。ARPスキャンと生トラフィックのキャプチャは、権限なしでは動作しないためです。


ネットワーク操作の仕組み

サブネット全体のスキャン完了を単調に待つ代わりに、L0p4Mapはプロセスを複数の論理ステージに分割します。

1. 高速検出とフィンガープリンティング

まず、ユーティリティはインターフェースで選択されたサブネットマスク全体に高速ARPリクエストを送信します。ベンダ名はローカルのIEEE OUIデータベースから直接取得されます。

次に、プログラムは検出されたノードの役割を特定しようとします。これには4つのデータソースを組み合わせています:

  • Linux/macOSとWindowsやネットワーク機器を区別するための、レスポンス内のTTL値
  • 実際のネットワーク名を見つけるための逆DNS、NetBIOS、mDNS/Avahi
  • 重いサードパーティライブラリなしで直接SNMPによるsysDescrクエリ
  • インフラストラクチャハードウェア特有の典型的なポートのクイックプロービング

結果として、ホストには即座にアイコンがタグ付けされます:ゲートウェイ、スイッチ、アクセスポイント、PC、電話、仮想マシン。管理者によくデフォルト認証のまま放置される、iLO、SATO、Zebra、XPortなどの組み込み管理サーバーやプリンターは別途検出されます。

2. ライブネットワークトポロジー

プログラムで最も視覚的な部分はインタラクティブなマップです。エンジンは接続ツリーを構築し、ゲートウェイを最上位に配置し、スイッチとルーターを2番目のレベルに配置し、エンドクライアントを親ノードの下でグループ化します。

Network Topology Graph | Hierarchical

グラフには2つの表示モードがあります:厳格な階層構造(Hierarchical)とスプリングアルゴリズム(Force Atlas)。ネットワークに複数のサブネットが設定されている場合、プログラムはキャンバス上に破線のアウトラインでそれらをハイライトします。

Network Topology Graph | Force Atlas

ノード間のリンクにも独自のタイプがあります:外部ネットワークへのアップリンク、スイッチ間のトランクリンク、クライアント接続。任意のノードはダブルクリックで名前を変更でき、最終的な図はPNGまたはCSVにエクスポートできます。

3. 攻撃面の評価とCVE

基本的なネットワークフレームワークが把握できたら、特定のIPの詳細監査に進むことができます。攻撃面セクションでは、プログラムはHTTP、SMB、FTP、SSH、SSLのバナースクリプトでフルNmapを実行します。

Port Scan

結果は、vulnersスクリプト経由で脆弱性データベースと照合されます。L0p4Mapは、CVSSスコアとNational Vulnerability Databaseへのクリック可能なリンクと共に、検出されたCVEを表形式で直接表示します。

Attack surface section

4. 組み込みトラフィックアナライザーとパッシブ監視

セグメント内でアクティブスキャンで常にノイズを出したくない場合は、バックグラウンドデーモンを有効にできます。これはARPとmDNSパケットをパッシブにリスンします。未承認の新しいデバイスがサブネットに出現すると、アプリケーションは即座に通知を送信します。

Traffic Analyzer

トラフィックアナライザータブは、Wiresharkのミニバージョンように動作します:リアルタイムでパケットストリームを表示し、プロトコルごとに色を 달리し、ホストごとに統計をグループ化します。不明なアドレスからの疑わしいトラフィックに気づいたら、ダブルクリックで即座にポートスキャンに送ることができます。


インストールとクイックスタート

実行にはPython 3.11+、Nmapのインストール、パケットキャプチャライブラリ(Linux/macOSではlibpcap、WindowsではNpcap)が必要です。

Linuxへのインストール

Arch LinuxユーザーはAURから直接パッケージをインストールできます:

yay -S l0p4map

Ubuntu、Debian、またはその他のディストリビューションでは、リポジトリを手動でクローンします:

git clone https://github.com/HaxL0p4/L0p4Map.git
cd L0p4Map
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
chmod +x L0p4Map.sh

起動にはroot権限が必要です:

sudo ./L0p4Map.sh

Windowsでの実行

Windowsでは、NpcapがWinPcap API互換モードでインストールされていることを確認してください。

git clone https://github.com/HaxL0p4/L0p4Map.git
cd L0p4Map
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

管理者としてターミナルを起動し、スクリプトを開始します:

python L0p4Map.py

実践的なワークフロー

L0p4Mapでの典型的なローカルセグメント監査プロセスは次のとおりです:

  1. ツールバーのドロップダウンから動作インターフェースを選択してください。
  2. スキャンクリックして高速ARPネイバー検出を実行してください。
  3. グラフラブを開き、結果の図を確認してください。トポロジーが複雑な場合は、HierarchicalとForce Atlasを切り替えてください。
  4. 疑わしいノードを選択し、攻撃面タブを使用してオープンサービスとCVEを検索してください。
  5. ライブまたは継続的監視のトグルを有効にして、作業中の新しいホスト監視を有効にしてください。

所感と結論

L0p4Mapが好评を得ている理由は、エンタープライズSIEMシステムのようなオールインワンソリューションになろうとするのではなく、ペネトレーションテスターやネットワークエンジニア向けの具体的な実用的な問題を解決しているからです。このプログラムはコンソールユーティリティの呼び出し、その出力の解析、そしてすべてをインタラクティブなマップ上で整理するということを組み合わせています。

このプロジェクトが役立つ人:

  • 小規模オフィスネットワークの素早いインベントリが必要なシステム管理者
  • エンゲージメントでの初期偵察中のセキュリティ専門家
  • サーバーやIoTデバイスの群れを可視化したいホームラボ愛好家

注意すべきニュアンスはrootでの実行要件ですが、このクラスのソフトウェアにとっては標準的な要件です。ソースコードはGPLv3ライセンスで公開されており、プロジェクトは積極的に開発されているため、自分のニーズに合わせてパースロジックをフォークして適応することは難しくありません。

関連プロジェクト