eviltik / Evilscan
Licence: mit
NodeJS Simple Network Scanner
Stars: ✭ 428
Programming Languages
javascript
184084 projects - #8 most used programming language
Projects that are alternatives of or similar to Evilscan
Rapidscan
🆕 The Multi-Tool Web Vulnerability Scanner.
Stars: ✭ 775 (+81.07%)
Mutual labels: security-tools, scanner, security-scanner
Nimscan
🚀 Fast Port Scanner 🚀
Stars: ✭ 134 (-68.69%)
Mutual labels: security-tools, scanner, port-scanner
Xattacker
X Attacker Tool ☣ Website Vulnerability Scanner & Auto Exploiter
Stars: ✭ 897 (+109.58%)
Mutual labels: security-tools, scanner, security-scanner
Reconnoitre
A security tool for multithreaded information gathering and service enumeration whilst building directory structures to store results, along with writing out recommendations for further testing.
Stars: ✭ 1,824 (+326.17%)
Mutual labels: security-tools, scanner, security-scanner
Pbscan
Faster and more efficient stateless SYN scanner and banner grabber due to userland TCP/IP stack usage.
Stars: ✭ 122 (-71.5%)
Mutual labels: security-tools, security-scanner, port-scanner
Ladon
大型内网渗透扫描器&Cobalt Strike,Ladon8.9内置120个模块,包含信息收集/存活主机/端口扫描/服务识别/密码爆破/漏洞检测/漏洞利用。漏洞检测含MS17010/SMBGhost/Weblogic/ActiveMQ/Tomcat/Struts2,密码口令爆破(Mysql/Oracle/MSSQL)/FTP/SSH(Linux)/VNC/Windows(IPC/WMI/SMB/Netbios/LDAP/SmbHash/WmiHash/Winrm),远程执行命令(smbexec/wmiexe/psexec/atexec/sshexec/webshell),降权提权Runas、GetSystem,Poc/Exploit,支持Cobalt Strike 3.X-4.0
Stars: ✭ 2,911 (+580.14%)
Mutual labels: security-tools, scanner, security-scanner
Wsltools
Web Scan Lazy Tools - Python Package
Stars: ✭ 288 (-32.71%)
Mutual labels: security-tools, security-scanner
Rmiscout
RMIScout uses wordlist and bruteforce strategies to enumerate Java RMI functions and exploit RMI parameter unmarshalling vulnerabilities
Stars: ✭ 296 (-30.84%)
Mutual labels: security-tools, scanner
Raptor
Web-based Source Code Vulnerability Scanner
Stars: ✭ 314 (-26.64%)
Mutual labels: security-tools, scanner
Applicationinspector
A source code analyzer built for surfacing features of interest and other characteristics to answer the question 'What's in the code?' quickly using static analysis with a json based rules engine. Ideal for scanning components before use or detecting feature level changes.
Stars: ✭ 3,873 (+804.91%)
Mutual labels: security-tools, security-scanner
Krane
Kubernetes RBAC static Analysis & visualisation tool
Stars: ✭ 254 (-40.65%)
Mutual labels: security-tools, security-scanner
Pentester Fully Automatic Scanner
DNS Subdomain● Brute force ● Web Spider ● Nmap Scan ● etc
Stars: ✭ 315 (-26.4%)
Mutual labels: security-tools, security-scanner
Burpa
Burp-Automator: A Burp Suite Automation Tool with Slack Integration. It can be used with Jenkins and Selenium to automate Dynamic Application Security Testing (DAST).
Stars: ✭ 427 (-0.23%)
Mutual labels: security-tools, security-scanner
Recon Pipeline
An automated target reconnaissance pipeline.
Stars: ✭ 278 (-35.05%)
Mutual labels: security-tools, scanner
Bandit
Bandit is a tool designed to find common security issues in Python code.
Stars: ✭ 3,763 (+779.21%)
Mutual labels: security-tools, security-scanner
Salt Scanner
Linux vulnerability scanner based on Salt Open and Vulners audit API, with Slack notifications and JIRA integration
Stars: ✭ 261 (-39.02%)
Mutual labels: security-tools, security-scanner
Shodansploit
🔎 shodansploit > v1.3.0
Stars: ✭ 342 (-20.09%)
Mutual labels: security-tools, security-scanner
Taipan
Web application vulnerability scanner
Stars: ✭ 359 (-16.12%)
Mutual labels: security-tools, security-scanner
evilscan
Nodejs Simple Network Scanner
Features
- individual IP or IP range scan
- individual port, ports list, or ports range
- banner grabbing (not fully implemented, works with native verbose ports only)
- IAC negotiation for telnet
- reverse dns
- geolocation information
- stdout or json output
- optional progress details (event based)
Install
npm install -g evilscan
Usage: in your code, using events only
const Evilscan = require('evilscan');
const options = {
target:'127.0.0.1',
port:'21-23',
status:'TROU', // Timeout, Refused, Open, Unreachable
banner:true
};
const evilscan = new Evilscan(options);
evilscan.on('result',data => {
// fired when item is matching options
console.log(data);
});
evilscan.on('error', err => {
throw new Error(data.toString());
});
evilscan.on('done', () => {
// finished !
});
evilscan.run();
Usage: in your code, using callback and events
const Evilscan = require('evilscan');
const options = {
target:'127.0.0.1',
port:'21-23',
status:'TROU', // Timeout, Refused, Open, Unreachable
banner:true
};
new Evilscan(options, (err, scan) {
if (err) {
console.log(err);
return;
}
scan.on('result', data => {
// fired when item is matching options
console.log(data);
});
scan.on('error', err => {
throw new Error(data.toString());
});
scan.on('done', () => {
// finished !
});
scan.run();
});
Usage: command line
Usage: evilscan <fqdn|ipv4|cidr> [options]
Example:
evilscan 192.168.0.0/24 --port=21-23,80
Options
--port port(s) you want to scan, examples:
--port=80
--port=21,22
--port=21,22,23,5900-5902
--reverse display DNS reverse lookup
--reversevalid only display results having a valid reverse dns, except if
ports specified
--geo display geoip (free maxmind)
--banner display banner
--bannerlen set banner length grabing
default 512
--bannerraw display raw banner (as a JSON Buffer)
--progress display progress indicator each seconds
--status ports status wanted in results (example --status=OT)
T(timeout)
R(refused)
O(open, default)
U(unreachable)
--scan scan method
tcpconnect (full connect, default)
tcpsyn (half opened, not yet implemented)
udp (not yet implemented)
--concurrency max number of simultaneous socket opened
default 500
--timeout maximum number of milliseconds before closing the connection
default 2000
--display display result format (json,xml,console)
default console
--infile fetch fqdn/ipv4/ipv6 target from a file
--outfile dump result in a file
--json shortcut for --display=json
--xml shortcut for --display=xml
--console shortcut for --display=console
--help display help
--about display about
--version display version number
Samples output
- Every ports on localhost, grab banner, display only opened ports
[email protected]:~# evilscan 127.0.0.1 --port=0-65535 --banner
127.0.0.1|111||open
127.0.0.1|53||open
127.0.0.1|23|Debian GNU/Linux jessie/sid\r\ndebian login:|open
127.0.0.1|5432||open
127.0.0.1|27017||open
127.0.0.1|28017||open
127.0.0.1|35223||open
127.0.0.1|35491||open
127.0.0.1|39619||open
done, 9 result(s)
- Every ports on localhost, grab banner, display only opened ports, json output, progress status each seconds
[email protected]:~# evilscan 127.0.0.1 --port=0-65535 --banner --isopen --istimeout --progress --json
{"_timeStart":"N/A","_timeElapsed":"N/A","_jobsTotal":65535,"_jobsRunning":0,"_jobsDone":0,"_progress":0,"_concurrency":500,"_status":"Starting","_message":"Starting"}
{"_timeStart":1371245901876,"_timeElapsed":1031,"_jobsTotal":65535,"_jobsRunning":500,"_jobsDone":7638,"_progress":11,"_concurrency":500,"_status":"Running","_message":"Scanning 127.0.0.1:8138"}
{"_timeStart":1371245901876,"_timeElapsed":2085,"_jobsTotal":65535,"_jobsRunning":500,"_jobsDone":16137,"_progress":24,"_concurrency":500,"_status":"Running","_message":"Scanning 127.0.0.1:16637"}
{"ip":"127.0.0.1","port":111,"status":"open"}
{"ip":"127.0.0.1","port":53,"status":"open"}
{"ip":"127.0.0.1","port":23,"banner":"Debian GNU/Linux jessie/sid\\r\\ndebian login:","status":"open"}
{"ip":"127.0.0.1","port":5432,"status":"open"}
{"_timeStart":1371245901876,"_timeElapsed":3107,"_jobsTotal":65535,"_jobsRunning":500,"_jobsDone":24656,"_progress":37,"_concurrency":500,"_status":"Running","_message":"Scanning 127.0.0.1:25156"}
{"_timeStart":1371245901876,"_timeElapsed":4166,"_jobsTotal":65535,"_jobsRunning":500,"_jobsDone":33166,"_progress":50,"_concurrency":500,"_status":"Running","_message":"Scanning 127.0.0.1:33666"}
{"_timeStart":1371245901876,"_timeElapsed":5215,"_jobsTotal":65535,"_jobsRunning":500,"_jobsDone":41664,"_progress":63,"_concurrency":500,"_status":"Running","_message":"Scanning 127.0.0.1:42164"}
{"ip":"127.0.0.1","port":27017,"status":"open"}
{"ip":"127.0.0.1","port":28017,"status":"open"}
{"_timeStart":1371245901876,"_timeElapsed":6217,"_jobsTotal":65535,"_jobsRunning":500,"_jobsDone":49682,"_progress":75,"_concurrency":500,"_status":"Running","_message":"Scanning 127.0.0.1:50182"}
{"ip":"127.0.0.1","port":35491,"status":"open"}
{"ip":"127.0.0.1","port":35223,"status":"open"}
{"ip":"127.0.0.1","port":39619,"status":"open"}
{"_timeStart":1371245901876,"_timeElapsed":7234,"_jobsTotal":65535,"_jobsRunning":500,"_jobsDone":57732,"_progress":88,"_concurrency":500,"_status":"Running","_message":"Scanning 127.0.0.1:58232"}
{"_timeStart":1371245901876,"_timeElapsed":8182,"_jobsTotal":65535,"_jobsRunning":0,"_jobsDone":65535,"_progress":100,"_concurrency":500,"_status":"Finished","_message":"Scanning 127.0.0.1:65535"}
Tips :
Concurrency and fast scan
By default, concurrency is 100. Which is slow when you are scanning large ip range or large port range. You can pass a bigger value using --concurrency option. 1000 is fast by example. On some linux, only 1024 opened sockets are allowed in the same time. To break this limit, you have to update ulimit parameter of your linux first :
ulimit -u unlimited
In all cases, due to #25, you will not be able to scan more than 16580355 ipv4 addresses at the moment.
Pause/unpause
You can pause/unpause a running scan by sending SIGUSR2 signal. First time it will pause the process, second time it will unpause it.
kill -SIGUSR2 19859 # where 19859 is the pid of nodejs process running evilscan
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].