Method: LTools::Nmap.portscan

Defined in:
lib/tools/nmap.rb

.portscan(targets, ports: nil, mode: 'S', speed: 5, xml_report: nil, append: nil) ⇒ Object

TODO 非正常退出的情况, Root权限问题



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/tools/nmap.rb', line 7

def self.portscan(targets, ports: nil, mode: 'S', speed: 5, xml_report: nil, append: nil)
  cmd = "nmap -Pn -n -T#{speed} -s#{mode}"
  cmd << ToolOpts.build {|opts|
    opts.on('-p', ports)
    opts.on('-oX', xml_report){ |file|
      next file unless file == :auto
      @nmap_xml_report = Tempfile.new('ltools-nmap-xml-report')
      @nmap_xml_report.close
      @nmap_xml_report.to_path
    }
  }
  cmd << self.targets_cmd(targets)
  cmd << ' ' << append if append
  new cmd
end