GitHub - RustScan/RustScan: 🤖 The Modern Port Scanner 🤖

RustScan可以将17分钟的Nmap扫描变为19秒。使用Rustscan 快速查找所有打开的端口,然后将它们自动传输到Nmap。
当您可以在不到一分钟的时间内完成所有65535个端口扫描时,为什么还要花时间运行快速扫描和手动复制端口,或等待20分钟的扫描?

RustScan - 图1

RustScan特色

①在8秒钟内扫描所有端口65535(批量为10k时)
②自动将其传输到Nmap中可以节省您的时间。不再需要手动复制和粘贴!
③做一件事,做得很好。唯一的目的就是改善Nmap,而不是取代它!

完整安装指南

您需要Nmap。如果您已安装Kali Linux或Parrot OS,则您已经具有Nmap。如果不是,请遵循nmap安装指南

安装RustScan的最简单方法是使用系统提供的软件包之一,例如HomeBrew或Yay for Arch Linux

使用

RustScan - 图2

  1. 用法:
  2. rustscan [设置] <i>
  3. FLAGS:
  4. -h, --help 帮助信息
  5. -V, --version 版本信息
  6. OPTIONS:
  7. -T, --timeout <T> 假定端口关闭之前的超时。默认值为250,但可以增加到1000。[默认值:250]
  8. -t, --threads <t> 您想使用多少个线程?默认值1000
  9. ARGS:
  10. <i> 要扫描的ip地址

格式是rustcan -b 500 -T 1500 192.168.0.1使用1500ms的超时扫描,500线程
超时是RustScan等待响应多长时间,直到它假定端口已关闭。

批处理大小决定RustScan的速度。将其设置为65535,它将同时扫描所有端口。
这意味着如果批量大小为65535,RustScan将花费TIMEOUT长时间扫描所有端口。本质上,如果超时为1000ms,RustScan可以在1秒内扫描。

nmap

要运行您自己的nmap命令,请在RustScan命令结尾加上— -A,—指示“ RustScan标志的结尾,请不要进一步解析”,此后的任何标志都将输入nmap。

RustScan自动运行nmap -vvv -p $PORTS $IP 要使其运行-A,请执行命令rustscan 127.0.0.1 — -A。

注意:由于Nmap的行为,有时您无法SIGINT ctrl + c 结束扫描,其行为就像它在后台运行,而是打印到STD :: OUT。除非我仅为运行Nmap的目的创建一个TTY shell,否则我无能为力。抱歉?我将尝试修复即将发布的版本。如果有任何Rust专家想要帮助,请执行!

提高速度/精度

  • 批处理大小通过允许我们一次处理更多内容,这提高了速度。我正在进行的实验工作,正在更改打开文件的限制。您可以使用手动执行此操作,ulimit -n 70000然后使用来运行rustscan -B 65535。这应该在完全相同的时间扫描所有65535端口。但这是实验性质的。

为了提高非实验速度,请缓慢增加批处理大小,直到不再打开端口或它崩溃为止。

  • 准确性(和某些速度)要提高准确性,最简单的方法是增加超时时间。默认值为1.5秒,通过将其设置为4秒(4000),我们告诉RustScan“如果4秒钟内未从端口收到回音,则假定它已关闭”。

精度的降低会带来一些速度上的好处,但是我的测试发现,批处理量极大地改变了速度,而超时却确实改变了速度,但并没有那么大。

注意:版本1.1在8秒内以10,000的批处理量运行,版本1在1k线程上以〜26秒运行,或平均1-2分钟。我正在更新其他软件包,但要获得最大速度和最新支持,请使用Cargo