web-dev-qa-db-ja.com

Nmapプロキシ経由

次のコマンドを使用します。

nmap --proxy socks4://*.*.*.*:25074 -sV -O --reason scanme.nmap.org

Nmapが実際に指定されたプロキシを使用しているかどうかはわかりません

Nmap引数で事前定義された特定のポートでリッスンするnetcat(上記の正確な例以外)を使用しながら「localhost」または「127.0.0.1」をスキャンするという考えがありましたが、netcatはスキャンの送信元アドレスを明らかにせず、GETリクエストをエコーするだけです(ポートバージョンの検出のためと思います)

無効なsocksサーバーのIPアドレスとして何を置いたとしても、nmap it [〜#〜] still [〜#〜]スキャンを行う

エラーメッセージは表示されません

ソックスのタイプをsocks4からsocks5に変更した場合に発生する唯一のエラーメッセージは次のとおりです。

Invalid protocol in proxy specification string: socks5://*.*.*.*:25074
QUITTING!

tcpdumpも試しましたが、パケットリクエストが見つかりませんでした

定義されたsocksプロキシを本当に使用するかどうかはわかりません

Nmapが実際にプロキシを使用していることを確認するにはどうすればよいですか?

リモートマシンを自分でセットアップしてスキャンする以外に確認する方法は他にありますか(現時点では達成が難しい同じLAN上にあるべきではないと思います)

同じ問題は、プロキシチェーンを使用するか、VPN経由でスキャンするときに発生します

LinuxでNmapバージョン7.12を使用

8
SilverShadow

TL; DR:プロキシのサポートは現在制限されていますが、プロキシを使用するときに実行できる理論上の制限もあります。

nmapはCONNECTおよびSOCKS4のみを実行でき、これらのプロトコルはTCPのみを実行できます。それとは別に、任意の種類のプロキシを使用すると、nmapはターゲットではなくプロキシのIPスタックと通信します。これの意味は:

  • ICMPはTCPではないため、ホストが生きているかどうかを確認するためにICMP pingを実行することはできません。したがって、ターゲットがプロキシ(-Pn)を介してのみアクセスできる場合は、ホストの検出手順をスキップする必要がある場合があります。 (サポートされていない)SOCKS5 ICMPはICMPをサポートしていないため、これは将来変更されません。
  • サービス検出は、TCPベースのサービスに対してのみ実行できます。SOCKS5サポートを使用すると、これをUDPに拡張できます。
  • プロキシを使用する場合、nmapはターゲットIPスタックとは通信せず、代わりにプロキシIPスタックと通信するため、IPスタックの機能に基づくOSフィンガープリントは不可能です。これは、あらゆる種類のプロキシプロトコルでの理論上の制限です。
11
Steffen Ullrich

現時点では、 proxychains のような外部ツールを使用します。

nmapdocumentation for --proxiesは、機能がまだ完全に実装されていないことを示しています:

警告:この機能はまだ開発中であり、制限があります。これはnsockライブラリ内に実装されているため、ping、ポートスキャン、およびスキャンのOS検出フェーズに影響を与えませんです。これまでのところ、このオプションの恩恵を受けるのはNSEとバージョンスキャンだけです。他の機能によって実際の住所が開示される可能性があります。 SSL接続はまだサポートされておらず、プロキシ側のDNS解決もサポートされていません(ホスト名は常にNmapによって解決されます)。

proxychainsの使用方法について このガイドnmapでフォローできます。 ProxyListを設定したら、次のように上記のコマンドを実行します。

proxychains nmap -sV -O --reason scanme.nmap.org

ただし、サイドチャネルIDリーク( DNSリーク など)には注意してください。 -nフラグを使用してnmapによるDNS解決を防止することをお勧めします。

4
Arminius