Commit Graph
197 Commits
Author SHA1 Message Date
OskarandBee 859eb0e83a Add tests for rustscan scripting engine (#286) (#289)
* Add tests for rustscan scripting engine (#286)

* Increase test coverage

* Add more scripting tests

Co-authored-by: Bee <[email protected]>
2020-10-17 23:43:03 +01:00
Niklas Mohrin 072d7335fd Additional small if let refactors 2020-10-17 13:48:15 +02:00
Niklas Mohrin f057a2113a Fix clippy warnings around under-specific method calls 2020-10-17 13:18:15 +02:00
Niklas Mohrin da6c95f8f1 Fix clippy warnings around return statements that could just be expressions 2020-10-17 13:14:06 +02:00
Niklas Mohrin ea5c120fa7 Fix clippy warnings about syntax 2020-10-17 13:10:44 +02:00
Niklas Mohrin cd86aaf30d Fix clippy warnings around match expressions 2020-10-17 13:03:30 +02:00
bergabman 4614e6bfe9 Scripting Engine Implementation. 2020-10-17 09:22:03 +02:00
Y.Horie da3f34da79 Fix Rlimit breaking change. (#283) (#284)
* Replace rlimit::rlim with rlimit::RawRlim

Signed-off-by: u5surf <[email protected]>
2020-10-16 20:17:39 +01:00
eiffel-flandBee 9bbee9d3ed Add tries to scan_socket. (#266)
By default the number of try is 1, it can be set on the command line by using
--tries option.

This should close RustScan/RustScan#38.

Co-authored-by: Bee <[email protected]>
2020-10-16 17:02:19 +01:00
Bernardo AraujoandBee 4dcd929ba4 Make address an optional instead of a positional argument (#271)
This has the benefit of making the input flexible and fixing an existing
bug that happens when a single port is specified, see #211.

Other benefits:
  - We are now parsing only failures as a file, reducing the amount of
    attempts to open a file.
  - We check if a file exists before trying to open it.

Fixes #211

Co-authored-by: Bee <[email protected]>
2020-10-16 16:59:12 +01:00
Teofilo MonteiroandBee dbc3d510d5 Update documentation to include greppable (#253)
* Update documentation include greppable

* Replace quiet mode for greppable mode

Co-authored-by: Bee <[email protected]>
2020-10-04 16:57:48 +01:00
Bee d5935c4ce7 Added HomeBrew Bump + More CI Tests (#252)
* CI and more tests

* included package name
2020-09-30 13:51:10 +01:00
Brandon 31ed2e8914 building CI 2020-09-29 15:24:36 +01:00
Brandon 0426aa83e3 building CI 2020-09-29 15:19:42 +01:00
Brandon 81ad00dc29 1.10.0 release 2020-09-29 00:29:58 +01:00
Bee 64cac6e0fa Added DNS lookup using Google DNS, refactored IP code (#246)
* Added DNS lookup using Google DNS, refactored IP code

* fixed comments & cargo fmt

* Fixed code review comments, added tests, removed unwrap() panics

* Added assertion to test
2020-09-28 21:19:55 +01:00
Bee 6bf70f0f9a Fixed output error, Warning! ran when file opened (#237)
Take file of addresses as input
2020-09-23 12:42:13 +01:00
Bee fc214a78b4 Increase code coverage (#236)
* Updated code coverage
2020-09-21 17:36:40 +01:00
bergabman 9326fc4a0f Refactored test, intorduced default() in test context for structs for easier test writing, Scanner struct quiet changed to greppable. (#235) 2020-09-21 00:00:11 +01:00
Dmitry SavintsevandBee f74cb456b1 socket_iterator: use itertools.iproducts for ip x ports set (#231)
Replace the current manual iterator-like implementation
with the call to the itertools.iproduct macro
to generate the cartesian product of the IPs and ports.

stdlib reference:
https://docs.rs/itertools/0.9.0/itertools/macro.iproduct.html

Co-authored-by: Bee <[email protected]>
2020-09-20 12:15:46 +01:00
Brandon 492d2fb3b3 fixed accessible issues 2020-09-20 01:25:41 +01:00
bergabmanandBee af53591ccb Added top ports, fixed accessibility. (#230)
* Refactored scanner struct for accessibility, fixed macros

Co-authored-by: Bee <[email protected]>
2020-09-19 18:24:08 +01:00
bergabman 64f4aecacd Runtime measurement implementation, better debugging, and better error handling for unreachable hosts. 2020-09-18 16:14:26 +02:00
Bernardo Chaves 33c9388586 Fix behaviour of --no-nmap flag
At some point we forgot to check for this flag before actually running
our post scanning tasks. I've also adjusted some of our messages for
reporting.
2020-09-14 19:30:30 -04:00
Brandon 7b827991c1 cargo fmt 2020-09-14 12:23:09 +01:00
Brandon f4555ecb98 fixed debug log 2020-09-14 12:20:48 +01:00
Bernardo Chaves 01975d7238 Introduce SocketIterator
The goal of this iterator is to generate sockets based on combinations
of IPs and ports in a memory-bounded way, we only consume the next item
of this iterator when a socket has been processed by our scanner.

Before this change we were generating every combination of IP and port
and storing it in a VecDeque, and while this is fine for a small subset
of IPs and ports it can quickly get out of hand with multiple IPs and
a big port range.
2020-09-12 12:24:30 -04:00
bergabman b0c1ab3177 Logic at adding targets to the FuturesUnordered rolled back to the initial.
In case of batchsize higher than all sockets to scan, we could end up in an infinite loop. Fixed with breaking out of the loop if that's the case.
2020-09-11 19:21:21 +02:00
bergabman c8a8915682 Remove unnecessary comment.
Fix mistake at adding futures to the initial stream.
2020-09-11 01:48:35 +02:00
bergabman d786e24186 Fix format. 2020-09-11 00:48:23 +02:00
Bee 5b536621e6 Merge branch 'master' into master 2020-09-10 23:45:46 +01:00
bergabman c05f40ae70 Small improvement at an if. 2020-09-10 23:29:07 +02:00
bergabman 24b9f8d8d3 Improved scanner engine to work more efficient and consistent with scanning. 2020-09-10 23:27:28 +02:00
Bernardo Chaves 3836480486 Add CIDR support
Add CIDR support for ips_or_hosts argument. This will allow our users to
specify multiple IPs within a network at once which is pretty
convenient.
2020-09-09 19:21:43 -04:00
Bee d95cae6677 Merge branch 'master' into master 2020-09-07 21:41:27 +01:00
Bernardo Chaves 743fa1cad6 Introduce the -no-nmap option
As the name implies this will allow RustScan to to run the scan without
starting an nmap scan with ports that are found.
2020-09-06 22:22:17 -04:00
mulc a0561d4728 Check '.config/rustscan/config.toml' for config
When reading the config file '$CONFIG_DIR/.config/rustscan/config.toml'
should also be checked. If both '~/.rustscan.toml' and
'$CONFIG_DIR/.config/rustscan/config.toml' exist, then later will be
used.
2020-09-05 18:32:08 +02:00
Bernardo Chaves 8e21f3bf8c Add configuration file
This configuration file will be read from the home directory of the
user. Options set within this file will have priority over arguments
from the command line unless the `--no-config` option is passed to the
program.
2020-08-29 18:01:44 -04:00
Brandon 0ab3e53034 Merge branch 'master' into bee-add-submodule 2020-08-27 13:05:19 +01:00
Brandon 56493859cb added submodule 2020-08-27 12:36:56 +01:00
Sandro Jäckel 916be1e4a2 Convert -T to -t 2020-08-26 17:38:58 +02:00
Brandon 5f6457ed7e Merge branch 'master' into patch-1 2020-08-26 15:47:27 +01:00
Ferry 83b23da32b Fixed small typo in a warning message 2020-08-26 11:00:54 +02:00
Phenomite f5064d3d5c 2000 milliseconds not seconds 2020-08-25 18:42:59 -04:00
Bernardo Chaves e069991c8d Allow randomized order for manual ports
Before this change we would always scan manually specified ports in
sequential way, this is not the case anymore. This is an important
change since we are planning to introduce a config file with the top 1K
ports and we would like to scan those in a randomized way.
2020-08-21 13:09:41 -04:00
Brandon e0aa1423ad removed -A from nmap 2020-08-20 00:32:37 +01:00
Bernardo Chaves 90d0b03ba7 Add --port and --range options
These options are mutually exclusive, this means that when a user
selects manual ports we will ignore ranges and vice-versa.

Manually specifying ports won't allow scan randomization for now.
2020-08-17 20:43:44 -04:00
Bernardo Chaves f68abcb955 Add host resolution
For now if we can establish a socket on port 80 we can infer the IP of the
host. This might change in the future if we start considering other
ports like 443.
2020-08-16 11:52:11 -04:00
Brandon c58ac613c9 fixed spelling mistake 2020-08-11 01:47:25 +01:00
Bernardo Chaves 1639aadc54 Update documentation
- README
- Port strategies
2020-08-09 12:29:16 -04:00