jas- / libmasscan

node.js native extension for interfacing with the masscan tool as a shared object

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

libmasscan

Native extension provding an interface to the masscan tool from node.js

Not quite fit for consumption.

Install

It is not currently deployed to the npm registry so for now you must clone and include submodules like so:

%> git clone --recursive https://github.com/jas-/libmasscan.git

Configuration

Next you will need to change into the newly cloned folder and build.

%> cd libmasscan/
%> npm install

Linking

I have not implemented the necessary functionality to copy the resulting shared object created from the masscan tool into the system library folder so for now you must resolve dependencies like so

%> export LD_LIBRARY_PATH=/path/to/libmasscan/build/Release

Example use

var lib = require('../build/Release/masscan.node')
  , opts = {
      iface: 'eth0',
      ports: '22,80,443,3306-10000',
      excludeports: '9000-9999',
      range: [
        '10.0.2.0/24',
        '192.168.2.0/25',
      ],
      exclude: [
        '0.0.0.0/8', // RFC1122: "This host on this network"
        '10.0.0.0/8', // RFC1918: Private-Use
        '100.64.0.0/10', // RFC6598: Shared Address Space
        '127.0.0.0/8', // RFC1122: Loopback
        '169.254.0.0/16', // RFC3927: Link Local
        '172.16.0.0/12', // RFC1918: Private-Use
        '192.0.0.0/24', // RFC6890: IETF Protocol Assignments
        '192.0.2.0/24', // RFC5737: Documentation (TEST-NET-1)
        '192.88.99.0/24', // RFC3068: 6to4 Relay Anycast
        '192.168.0.0/16', // RFC1918: Private-Use
        '198.18.0.0/15', // RFC2544: Benchmarking
        '198.51.100.0/24', // RFC5737: Documentation (TEST-NET-2)
        '203.0.113.0/24', // RFC5737: Documentation (TEST-NET-3)
        '240.0.0.0/4', // RFC1112: Reserved
        '255.255.255.255/32', // RFC0919: Limited Broadcast
        '224.0.0.0/4', // RFC5771: Multicast/Reserved
      ]
    };

lib.masscan(opts, function(err, report) {
  if (err) throw new Error(err);
  console.log(report);
});

About

node.js native extension for interfacing with the masscan tool as a shared object

License:Other


Languages

Language:C++ 91.7%Language:Python 6.0%Language:JavaScript 2.3%