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"