port-scanner

port scanner to find which port are open/close or behind a firewall black-hole

npm install port-scanner
8 downloads in the last week
17 downloads in the last month

installation

npm -g install port-scanner

API

function scanPorts(ip, checkFirewall, startPort:=1, endPort:=65535, option)

option

  • logStepCount : at this multiple of number, scanner will print the progress info
  • namedPorts : port to name(comment) map, used to show result with remarks

example

var scanPorts = require('port-scanner')
    ;
scanPorts('noradle.com', false, 8000, 9000, {
  logStepCount : 0,
  namedPorts : {
    80 : 'noradle main website',
    443 : 'noradle main website (https)',

    81 : 'noradle test main website',
    444 : 'noradle test main website (https)',

    8010 : 'psp oracle (test)',
    8011 : 'file http (test)',
    8012 : 'sms oracle(test)',
    8013 : 'sms proxy(p2p) (test)',
    8014 : 'sms proxy(simple) (test)',
    8015 : 'sms proxy(bulk) (test)',
    8016 : 'IM http (test)',
    8017 : 'evac http test',
    8018 : 'exthub oracle (test)',
    8019 : 'IM oracle (test)',
    8021 : 'psp http (test)',
    9008 : 'telen http test',

    8000 : 'psp oracle (prod)',
    8001 : 'file http (prod)',
    8002 : 'sms oracle(prod)',
    8003 : 'sms proxy(p2p) (prod)',
    8004 : 'sms proxy(simple) (prod)',
    8005 : 'sms proxy(bulk) (prod)',
    8006 : 'IM http (prod)',
    8007 : 'evac http prod',
    8008 : 'exthub oracle (prod)',
    8009 : 'IM oracle (prod)',
    8020 : 'psp http (prod)',
    9003 : 'telen http prod'
  }});

attacker

如果想要被攻击服务进程数满锁死,就connect该服务的端口,并且不发送数据。 如果对方服务器在接受新的 socket 连接后启动新的服务进程或线程,那么很快它就会到达最大进程数或最大线程数,从而 hung 死,拒绝接受新的请求。

Coyote框架 可能不会在请求发完前就生成新的线程。

如果对方是 ngix/nodejs 的 web server,那么没有形成完整的请求前,是不会调用传统多进程多线程软件的,因此暂时无法攻击他们。 但是,如果对方的 servlet,比如说 java 的,要是有占用进程线程的部分,比如说 sleep 或者调用 db,那么还是可以攻击他们。 如果他们的代码中有延时执行的部分,比如说 sleep 就可以发出大量请求让他们的 sleep 代码的所以大量的线程数进程数。

LAN arp

扫描子网的全部可用IP地址,看看哪些IP可用,哪些IP不可用。 可以使用一台机器占用全部局域网IP地址,进行破坏。

todo

  • give ip/prefix for subnet
  • automatically get / page, show header "server","x-powered-by" and html "title"
npm loves you