web-dev-qa-db-ja.com

停止NmapスキャンしてXML出力を保持

Nmapを実行するたびに、-oAフラグを使用します。XML出力は、いくつかのパーサーとdb_import付きのMetasploitにフィードするため、重要な出力項目です。 -resume オプションはスキャンを再開できますが、XML出力と互換性がありません。

スキャンが99.XX%妥当な時間内に完了し、最後のパーセントを完了するまでに2倍の時間がかかることがよくあります。

nmapでスキャンを完了してXML出力プロセスを早期に完了する方法はありますか?再スキャンしたり、手動でxmlファイルを完了したりする必要を回避したい手動/カスタムスクリプト。

Nmapクラッシュ/スキャンを終了すると考えてeth0インターフェースを停止しようとしましたが、それでもまったく役に立たないようです。

注:タイムアウトを下げてこの問題を防ぐために、スキャンの最初に追加できるフラグがあることを知っています。しかし、この質問は、これらのフラグなしですでにスキャンを開始したことに焦点を合わせています。

8
KDEx

Nmap dev here:申し訳ありませんが、スキャンを完全に停止してXML出力を確定するオプションはありません。注意したように、--resumeオプションは、NormalおよびGrepable出力でのみ機能します。また、--randomize-hostsにも対応できません。これを可能にするために私たちが行う必要がある開発の段階は次のとおりです。

  1. --resumeを拡張して、最後に完了したホストのNmapのXML出力を解析します。難しいことではありません。
  2. --append-outputまたは--resumeが開始されている場合は、NmapのXML出力ストリームを変更して、整形式XMLファイルの最終タグを上書きします。トリッキーですが、実行可能です。
  3. Nmapのシグナルハンドラーを拡張して、XML出力がある場合はそれをファイナライズします。 SIGINTおよびSIGSTOPシグナルハンドラーはできるだけ小さくする必要があり、ファイルハンドルが使用可能な状態にあることに依存できないため、困難です。たぶん、SIGUSR1などの別のシグナルハンドラーのこの部分を作成し、それをctrlキーシーケンスにバインドします。また、NmapはWindows、Linux、OS X、FreeBSD、Solaris、および他の多くのプラットフォームで同じように動作する必要があるため、信号の処理がこれらの場合に大きく異なる場合があることも覚えておいてください。

http://issues.nmap.org/new に機能のリクエストを追加してください。この質問と回答を参照してください。

編集:これは Nmap 7.40 で追加されました

15
bonsaiviking

プロセスにsighupまたはsigstopを送ってみましたか?

kill -s STOP [pid]のようなもの、または-s SIGSTOPです。思い出せない。

0
Petro