nerve Crates.io License

Security scan library with the aim of being lightweight and fast.
nerve provides a cross-platform API for network / security scan
(for security testing, network management, evaluation, education)
using Rust.
It is currently in alpha stage.

Features

Usage

Add nerve to your dependencies
toml:Cargo.toml [dependencies] nerve = "0.2.0" - Structs that provide each function
- PortScanner - HostScanner - UriScanner - DomainScanner - Basic usage of each struct - ::new() returns a Scanner.
- Set up the scanner (see Examples) - ::run_scan() Run scan with current settings.
- Results are stored in ::scan_result
- ::get_result() returns a scan resut.

Example

Port Scan Example Rust extern crate nerve; use nerve::PortScanner; use nerve::PortScanType; fn main() { let mut port_scanner = match PortScanner::new(None, None){ Ok(scanner) => (scanner), Err(e) => panic!("Error creating scanner: {}", e), }; port_scanner.set_target_ipaddr("192.168.1.92"); port_scanner.set_range(1, 1000); port_scanner.set_scan_type(PortScanType::SynScan); port_scanner.run_scan(); let result = port_scanner.get_result(); println!("Open Ports:"); for port in result.open_ports { println!("{}", port); } println!("Scan Time: {:?}", result.scan_time) }

For more details see Examples

Supported platform

Additional Notes

This library requires the ability to create raw sockets. Execute with root user privileges.