Skip to content

A Ruby interface to nmap, the exploration tool and security / port scanner. Allows automating nmap and parsing nmap XML files.

License

Notifications You must be signed in to change notification settings

postmodern/ruby-nmap

Repository files navigation

ruby-nmap

CI Code Climate Gem Version

Description

A Ruby API to nmap, the exploration tool and security / port scanner. Allows automating nmap and parsing nmap XML files.

Features

  • Provides a Ruby API for automating nmap.
  • Provides a Parser for enumerating nmap XML scan files.
  • Supports the full Nmap XML DTD.

Examples

Run Nmap from Ruby:

require 'nmap/command' Nmap::Command.run do |nmap| nmap.connect_scan = true nmap.service_scan = true nmap.output_xml = 'scan.xml' nmap.verbose = true nmap.ports = [20, 21, 22, 23, 25, 80, 110, 443, 512, 522, 8080, 1080] nmap.targets = '192.168.1.*' end

Run sudo nmap from Ruby:

require 'nmap/command' Nmap::Command.sudo do |nmap| nmap.syn_scan = true nmap.os_fingerprint = true nmap.service_scan = true nmap.output_xml = 'scan.xml' nmap.verbose = true nmap.ports = [20, 21, 22, 23, 25, 80, 110, 443, 512, 522, 8080, 1080] nmap.targets = '192.168.1.*' end

Parse Nmap XML scan files:

require 'nmap/xml' Nmap::XML.open('scan.xml') do |xml| xml.each_host do |host| puts "[#{host.ip}]" host.each_port do |port| puts " #{port.number}/#{port.protocol}\t#{port.state}\t#{port.service}" end end end

Print NSE script output from an XML scan file:

require 'nmap/xml' Nmap::XML.open('nse.xml') do |xml| xml.each_host do |host| puts "[#{host.ip}]" host.scripts.each do |name,output| output.each_line { |line| puts " #{line}" } end host.each_port do |port| puts " [#{port.number}/#{port.protocol}]" port.scripts.each do |id,script| puts " [#{id}]" script.output.each_line { |line| puts " #{line}" } end end end end

Requirements

Install

  • Debian / Ubuntu:
$ sudo apt install nmap
  • Fedora / RedHat:
$ sudo dnf install nmap
  • Homebrew:
$ brew install nmap
$ gem install ruby-nmap

License

See {file:LICENSE.txt} for license information.

About

A Ruby interface to nmap, the exploration tool and security / port scanner. Allows automating nmap and parsing nmap XML files.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Contributors 5

Languages