Rustscan端口扫描工具
Rustscan是一款用Rust语言开发的高速端口扫描器,它可以在3秒内扫描所有65535个端口,并支持脚本引擎和自适应学习功能。它还可以自动将扫描结果导入Nmap,或者使用自定义的脚本进行进一步的操作。Rustscan的开发语言是Rust,这是一种现代的、安全的、并发的、实用的编程语言,它具有高性能、内存安全、类型安全、零成本抽象等特点。Rustscan使用Rust的优势来实现快速、智能、有效的端口扫描。
官方声称可以实现3秒扫描全端口,经过实测虽说达不到3秒,但是相对速度要比Nmap和Masscan快很多的。目前Github上Star数以达到10.4k。
RustScan 通过内置的 Rust sockets模块使用完整的 TCP 3次握手连接,可以说很少存在误报。
文章目录
安装方法
- 🔗项目地址:RustScant项目地址
dpkg安装(简单)
- 地址:https://github.com/RustScan/RustScan/releases/tag/2.0.1
- 🔗64位下载地址:rustscan_2.0.1_amd64.deb
- 🔗32位下载地址:rustscan_2.0.1_i386.deb
- 创建Rustscan文件夹
mkdir Rustscan
cd rustscan
- 下载 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
- 安装 RustScan
sudo dpkg -i rustscan_2.0.1_amd64.deb
- 验证版本
rustscan -V
- 解决依赖关系问题:
上述安装命令可能会提示一些依赖关系问题,其中可能包括缺少的软件包。使用以下命令来解决这些依赖关系问题。
sudo apt update
sudo apt install -f
docker安装(推荐)
使用docker安装rustscan的方法,前置条件是必须必须安装docker,请自行查阅网上安装教程。
- 安装 rustscan
rustscan提供两种镜像:- rustscan/rustscan:alpine: 这是基于 Alpine Linux 发行版的 rustscan 镜像。Alpine Linux 是一个轻量级的 Linux 发行版,以其小巧、高效和安全而著名。使用该镜像可以获得较小的镜像大小和较快的启动时间,适合需要精简环境的应用场景。
- rustscan/rustscan:latest: 这是最新版本的 rustscan 镜像标签。“latest” 标签通常表示最新的可用版本。它可能是基于不同的操作系统或基础镜像构建的,并且在逐步更新过程中可能会有不同的特性和改进。
- 根据你的使用需求,可以选择适合的镜像标签。如果你有特定的环境要求或对镜像大小和性能敏感,可以选择 rustscan/rustscan:alpine。如果你只关心最新版本,并且不依赖于特定的基础镜像,可以选择 rustscan/rustscan:latest。
- 一般都选择rustscan/rustscan:latest,docker在安装时也默认latest版本
dockerhub—rustscan详细版本信息
docker pull rustscan/rustscan:latest
- 查看shell配置地址
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 等
- 将docker运行rustscan的命令写入到shell的配置中
注意修改自己的配置文件地址,以下是~/.zshrc:
echo "alias rustscan='docker run -it --rm --name rustscan rustscan/rustscan:latest'" >> ~/.zshrc
- 重新打开控制台或者输入命令
source ~/.zshrc
- 验证是否将命令写入到alias中
alias
- 验证版本
rustsacn -V
注:我这里和dpkg安装方法的命令冲突,故将docker方法调用命令更改为rustscan_docker
使用教程
参数介绍
-
使用方式:
rustscan [标识] [选项] [-- <command>…] -
标识:
--accessible 可访问模式。关闭对屏幕阅读器有负面影响的功能。 -g, --greppable Greppable 模式,仅输出端口。无 Nmap,适用于 grep 或输出到文件。 -h, --help 显示帮助信息。 -n, --no-config 是否忽略配置文件。 --top 使用前 1000 个端口。 -V, --version 显示版本信息。
-
选项:
-a, --addresses <addresses>... 要扫描的 CIDR、IP 或主机的逗号分隔列表。 -b, --batch-size <batch-size> 端口扫描的批量大小,它会增加或减慢扫描速度。 取决于您的操作系统的最大文件句柄数。如果您使用 65535,它将同时扫描所有端口。 但是,您的操作系统可能不支持此操作。[默认值:4500] -p, --ports <ports>... 要扫描的端口列表。示例:80、443、8080 -r, --range <range> 端口范围,格式为 start-end。示例:1-1000 --scan-order <scan-order> 要执行的扫描顺序。"serial" 选项将按升序扫描端口 而"random" 选项将随机扫描端口。 [默认值:serial][选项值:Serial、Random] --scripts <scripts> RustScan 运行所需的脚本级别。 [默认值:default] [选项值:None、Default、Custom] -t, --timeout <timeout> 在假定端口已关闭之前的超时时间(以毫秒为单位) [默认值:1500] --tries <tries> 在假定端口已关闭之前的尝试次数。如果设置为 0 rustscan 将将其更正为 1。[默认值:1] -u, --ulimit <ulimit> 自动将 ULIMIT 增加到您提供的值。
-
释义:(nmpa联动)
<command>… 要运行的脚本参数。要使用参数 -A,请在 RustScan 的参数后加上“-- -A”。示例:
‘rustscan -T 1500 127.0.0.1 – -A -sC’。此命令会自动将 -Pn -vvv -p $PORTS 添加到 nmap。对于像 --script ‘(safe and vuln)’ 这样的内容,请用引号将其括起来。
IP扫描
单IP扫描
rustscan -a 192.168.16.34
多IP 扫描
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
与Namp联动
使用该功能必须安装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中文网