Rustscan是一款用Rust语言开发的高速端口扫描器,它可以在3秒内扫描所有65535个端口,并支持脚本引擎和自适应学习功能。它还可以自动将扫描结果导入Nmap,或者使用自定义的脚本进行进一步的操作。Rustscan的开发语言是Rust,这是一种现代的、安全的、并发的、实用的编程语言,它具有高性能、内存安全、类型安全、零成本抽象等特点。Rustscan使用Rust的优势来实现快速、智能、有效的端口扫描。
官方声称可以实现3秒扫描全端口,经过实测虽说达不到3秒,但是相对速度要比Nmap和Masscan快很多的。目前Github上Star数以达到10.4k。
RustScan 通过内置的 Rust sockets模块使用完整的 TCP 3次握手连接,可以说很少存在误报。
mkdir Rustscan
cd rustscan
64位地址:
wget https://github.com/RustScan/RustScan/releases/download/2.0.1/rustscan_2.0.1_amd64.deb
32位地址:
wget https://github.com/RustScan/RustScan/releases/download/2.0.1/rustscan_2.0.1_i386.deb
sudo dpkg -i rustscan_2.0.1_amd64.deb
rustscan -V
上述安装命令可能会提示一些依赖关系问题,其中可能包括缺少的软件包。使用以下命令来解决这些依赖关系问题。
sudo apt update
sudo apt install -f
使用docker安装rustscan的方法,前置条件是必须必须安装docker,请自行查阅网上安装教程。
docker pull rustscan/rustscan:latest
echo $SHELL
以下是一些常见的终端程序及其配置文件的示例:
Bash(Bourne Again Shell):
- 终端程序:gnome-terminal、konsole、xterm 等
- 配置文件: ~/.bashrc、 ~/.bash_profile、/etc/profile、/etc/bash.bashrc 等
Zsh(Z Shell):
- 终端程序:gnome-terminal、konsole、xterm 等
- 配置文件:~/.zshrc、/etc/zsh/zshrc 等
Fish(Friendly Interactive Shell):
- 终端程序:fish、gnome-terminal、konsole 等
- 配置文件:/.config/fish/config.fish、/.config/fish/fish.config 等
Tmux:
- 终端程序:tmux
- 配置文件:~/.tmux.conf
Terminator:
- 终端程序:terminator
- 配置文件:~/.config/terminator/config、/etc/terminator/config 等
echo "alias rustscan='docker run -it --rm --name rustscan rustscan/rustscan:latest'" >> ~/.zshrc
source ~/.zshrc
alias
rustsacn -V
注:我这里和dpkg安装方法的命令冲突,故将docker方法调用命令更改为rustscan_docker
使用方式:
rustscan [标识] [选项] [--
标识:
--accessible 可访问模式。关闭对屏幕阅读器有负面影响的功能。
-g, --greppable Greppable 模式,仅输出端口。无 Nmap,适用于 grep 或输出到文件。
-h, --help 显示帮助信息。
-n, --no-config 是否忽略配置文件。
--top 使用前 1000 个端口。
-V, --version 显示版本信息。
选项:
-a, --addresses ... 要扫描的 CIDR、IP 或主机的逗号分隔列表。
-b, --batch-size 端口扫描的批量大小,它会增加或减慢扫描速度。
取决于您的操作系统的最大文件句柄数。如果您使用 65535,它将同时扫描所有端口。
但是,您的操作系统可能不支持此操作。[默认值:4500]
-p, --ports ... 要扫描的端口列表。示例:80、443、8080
-r, --range 端口范围,格式为 start-end。示例:1-1000
--scan-order 要执行的扫描顺序。"serial" 选项将按升序扫描端口
而"random" 选项将随机扫描端口。
[默认值:serial][选项值:Serial、Random]
--scripts RustScan 运行所需的脚本级别。
[默认值:default] [选项值:None、Default、Custom]
-t, --timeout 在假定端口已关闭之前的超时时间(以毫秒为单位) [默认值:1500]
--tries 在假定端口已关闭之前的尝试次数。如果设置为 0
rustscan 将将其更正为 1。[默认值:1]
-u, --ulimit 自动将 ULIMIT 增加到您提供的值。
释义:(nmpa联动)
‘rustscan -T 1500 127.0.0.1 – -A -sC’。此命令会自动将 -Pn -vvv -p $PORTS 添加到 nmap。对于像 --script ‘(safe and vuln)’ 这样的内容,请用引号将其括起来。
rustscan -a 192.168.16.34
rustscan -a 192.168.16.34,192.168.16.58
rustscan -a www.example.com
rustscan -a 192.168.16.0/24 -u 5000
文件名:1.txt
192.168.16.34
www.example.com
www.kali.org
rustscan -a ./1.txt
rustscan -a 192.168.16.34 -p 445 -g
rustscan -a 192.168.16.34 -p 445,3306,80 -g
rustscan -a 192.168.16.34 -r 1-1000 -g
使用该功能必须安装nmap扫描工具,目前,RustScan 默认运行 Nmap,参数“-g”是关闭nmap联动
rustscan -a 192.168.16.34 -- -A
实际上就等于要运行:
nmap -Pn -vvv -p $PORTS -A 192.168.16.34
Rustscan文档:英文-rustscan使用方法
Namp 命令手册:Nmap中文手册 - Nmap中文网