資産スキャン最適化---nmapスキャン進捗


  • 資産スキャンの最適化-nmapスキャンの進捗状況
  • 進捗バー:
  • key point:
  • 参照:

  • 資産スキャンの最適化-nmapスキャンの進捗状況
    元のnmapスキャンはpython-nmapモジュールで書かれており、その利点は結果が非常に友好的で、json形式で、入庫を処理しやすいことです.
    しかし、大きなセグメントをスキャンしたり、パラメータの設定が不合理な場合、スキャンプロセス全体が遅くなるため、新しいニーズがあります.タスクの進捗状況の表示を提供します.
    進捗バー:
    How does NMap decide to print a progress line?
    libnmapはnmapモジュールに比べてlibnmapの実現がより大きく,nmapを呼び出すだけでなく,nmap内のインタラクティブオブジェクトをクラス定義しており,プラグインモジュールから,このライブラリはプラグインによって自分の機能を絶えず豊かにしようとしていることがわかる.
    最も主要なのはlibnmapモジュールで進捗を表示する割合を提供しており、これはタスクの表示に非常に友好的です.
    進捗状況を表示する際にlibnmapパッケージがthreadに使用されます.
    To go a bit further, you can always use the threading capabilities of the NmapProcess class and run the class in the background
    進捗状況の公式ドキュメントの例を表示します.
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    from libnmap.process import NmapProcess
    from time import sleep
    
    
    nmap_proc = NmapProcess(targets="scanme.nmap.org", options="-sT")
    nmap_proc.run_background()
    while nmap_proc.is_running():
        print("Nmap Scan running: ETC: {0} DONE: {1}%".format(nmap_proc.etc,
                                                              nmap_proc.progress))
        sleep(2)
    
    print("rc: {0} output: {1}".format(nmap_proc.rc, nmap_proc.summary))

    key point:
    肝心な問題が来て、
  • libnmapは進捗を提供したが、結果は友好的ではなく、解析関数の使用が不便であることを示した.
  • nmapモジュールは進捗していませんが、結果は友好的に出力され、jsonフォーマットの
  • この2つをどう組み合わせて使うのでしょうか?
  • libnmapモジュールを用いてスキャン
  • 結果nmapモジュールのanalyse_を使用nmap_xml_scan関数による解析
  • 例:
    from libnmap.process import NmapProcess
    
    nmap_proc = NmapProcess(targets=str(target), options=args)
nmap_proc.run_background()
    while nmap_proc.is_running():
    print("[*] Nmap Scan running: DONE: {0}%".format(float(nmap_proc.progress)))
        time.sleep(2) #          
    
    ScanEngine = nmap.PortScanner()
ScanEngine.analyse_nmap_xml_scan(nmap_proc.stdout) #  nmap       
    
    

    perfect~この方法は2つのモジュールの利点を結合し,需要を実現した.
    参照先:
  • Nmapスキャンの原理と使い方(上)
  • Nmapスキャンの原理と使い方
  • nmapコマンド詳細
  • python-nmapとpython-libnmapの比較
  • python-libnmap