Skip to content

Commit

Permalink
readme updates
Browse files Browse the repository at this point in the history
  • Loading branch information
bee-san committed Jul 12, 2020
1 parent b500c8e commit 362f521
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 20 deletions.
30 changes: 12 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,20 @@ Find all open ports <b>fast</b> with Rustscan, automatically pipe them into Nmap
</p>
<hr>

# RustScan
1. Find ports quickly using Rust.
2. Automatically runs `nmap -A -sV -p $ports -vvv` on those ports and IP addresses
3. Profit???

## Explanation
Nmap is the only good portscanner for CTFs. RustScan knows this, and does not try to replace it.

However, in a CTF, nmap scanning all 65k ports is **very** slow.

RustScan **compliements** Nmap. RustScan scns all 65k ports with extreme speed and concurrency, and then it pipes those ports into Nmap.

### Why not Massscan or copy and paste?
It takes time to physically type out the port numbers into Nmap from masscan.
| General Linux | Cargo | Arch |
| ----- | ----- | ----- | ----- |
| img1 | img2 | img3 | img4 |
| Binaries | Cargo install | yay rustscan |

Masscan probably wouldn't add this feature, as they are looking to be a competitor to Nmap.

RustScan will execute Nmap the second it finds all the open ports. RustScan only wants to compliement Nmap, not beat it.
<hr>

# πŸ€” What is this?
If you are a competitive CTF player and often find yourself running masscan / a basic nmap scan before running a more comprehensive scan, this tool is for you.
1. Find ports quickly using Rustscan.
2. Automatically runs `nmap -A -sV -p $ports -vvv` on those ports.
3. Profit???

TL;DR RustScan developers throw away their ego, and understand that no tool will ever come close to Nmap and instead chooses to compliement Nmap.
Rustscans **only** job is to reduce the friction between finding open ports and inputting them into nmap.

# RustScan vs Nmap vs MassScan

Expand All @@ -34,6 +27,7 @@ TL;DR RustScan developers throw away their ego, and understand that no tool will
| Actually useful | ❌ | βœ… | ❌ |
| Realises it's not useful, and pipes the only useful data into the only useful port scanner | βœ… | ❌ | ❌ |


## FAQ
> I think this would be a great port scanner on its own without Nmap!
>
Expand Down
Binary file modified pictures/rustscan.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 9 additions & 2 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,22 @@ fn main() {
// IP address is a required argument
.arg(Arg::with_name("i")
.required(true)
.index(1)
.help("The IP address to scan"))
.arg(Arg::with_name("p")
. index(2)
.help("The port range you want to scan"))
.get_matches();

print_opening();

if matches.is_present("i"){
println!("IP address was used!")
}

// validatses the IP address and turns it into an IpAddr type
let addr = IpAddr::from_str(&matches.free[0])
.expect("IPADDR must be a valid IPv4 or IPv6 address");
//let addr = IpAddr::from_str(&matches.free[0])
// .expect("IPADDR must be a valid IPv4 or IPv6 address");

// if ports not specified, use this:
let ports = 0..MAX;
Expand Down

0 comments on commit 362f521

Please sign in to comment.