【教程】Rustscan端口扫描工具,3秒扫描6w+端口

Rustscan是一款用Rust语言编写的快速端口扫描器,它可以快速扫描大量端口,比Nmap和Masscan速度更快。文章介绍了Rustscan的安装(dpkg和Docker)以及使用教程,包括不同类型的IP和端口扫描,并提到了与Nmap的联动功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Rustscan端口扫描工具

Rustscan是一款用Rust语言开发的高速端口扫描器,它可以在3秒内扫描所有65535个端口,并支持脚本引擎和自适应学习功能。它还可以自动将扫描结果导入Nmap,或者使用自定义的脚本进行进一步的操作。Rustscan的开发语言是Rust,这是一种现代的、安全的、并发的、实用的编程语言,它具有高性能、内存安全、类型安全、零成本抽象等特点。Rustscan使用Rust的优势来实现快速、智能、有效的端口扫描。

官方声称可以实现3秒扫描全端口,经过实测虽说达不到3秒,但是相对速度要比Nmap和Masscan快很多的。目前Github上Star数以达到10.4k。

RustScan 通过内置的 Rust sockets模块使用完整的 TCP 3次握手连接,可以说很少存在误报。



安装方法

dpkg安装(简单)

  1. 创建Rustscan文件夹
mkdir Rustscan
cd rustscan
  1. 下载 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
  1. 安装 RustScan
   sudo dpkg -i rustscan_2.0.1_amd64.deb
  1. 验证版本
 rustscan -V
  1. 解决依赖关系问题:

上述安装命令可能会提示一些依赖关系问题,其中可能包括缺少的软件包。使用以下命令来解决这些依赖关系问题。

   sudo apt update
   sudo apt install -f

docker安装(推荐)

使用docker安装rustscan的方法,前置条件是必须必须安装docker,请自行查阅网上安装教程。

  1. 安装 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
  1. 查看shell配置地址
echo $SHELL

以下是一些常见的终端程序及其配置文件的示例:

  1. Bash(Bourne Again Shell):

    • 终端程序:gnome-terminal、konsole、xterm 等
    • 配置文件: ~/.bashrc、 ~/.bash_profile、/etc/profile、/etc/bash.bashrc 等
  2. Zsh(Z Shell):

    • 终端程序:gnome-terminal、konsole、xterm 等
    • 配置文件:~/.zshrc、/etc/zsh/zshrc 等
  3. Fish(Friendly Interactive Shell):

    • 终端程序:fish、gnome-terminal、konsole 等
    • 配置文件:/.config/fish/config.fish、/.config/fish/fish.config 等
  4. Tmux:

    • 终端程序:tmux
    • 配置文件:~/.tmux.conf
  5. Terminator:

    • 终端程序:terminator
    • 配置文件:~/.config/terminator/config、/etc/terminator/config 等
  1. 将docker运行rustscan的命令写入到shell的配置中
    注意修改自己的配置文件地址,以下是~/.zshrc:
 echo "alias rustscan='docker run -it --rm --name rustscan rustscan/rustscan:latest'" >> ~/.zshrc
  1. 重新打开控制台或者输入命令
source ~/.zshrc
  1. 验证是否将命令写入到alias中
alias
  1. 验证版本
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中文网

### 替代 Nmap 的端口扫描工具 除了广泛使用的Nmap外,还有多种高效的端口扫描工具可供选择。以下是几种常见的替代方案: #### 1. Masscan Masscan 是一款超快速的网络端口扫描器,能够每发送超过一百万个数据包。其设计目标是在短时间内完成大规模网络空间的扫描工作。 ```bash masscan -p80,443 0.0.0.0/0 --rate=1000 ``` 该命令会以每一千个数据包的速度对整个IPv4地址范围内的第80和443端口进行扫描[^1]。 #### 2. ZMap ZMap是一款开源的大规模互联网研究工具,能够在很短的时间内扫描全网IP地址并返回开放特定端口的信息。它特别适合用于学术研究和技术调查场景下。 ```bash zmap -p 80 -o open_http_ports.txt ``` 此命令将针对全球范围内所有可能存在的HTTP服务(即监听于TCP 80端口的服务)执行一次全面普查,并把结果保存到文件`open_http_ports.txt`中[^2]。 #### 3. RustScan RustScan是一个基于Rust编写的高性能端口扫描程序,具有极高的速度优势以及良好的易用性和扩展性特点。它可以轻松集成进自动化脚本里作为批量处理任务的一部分来运行。 ```bash rustscan -a scanme.nmap.org -p 0-65535 -- -A ``` 上述指令让RustScan去探测指定主机上所有的已知端口号区间(从0至65535),并且附加了额外参数使能更详细的输出模式[^3]。 #### 4. Unicornscan Unicornscan专注于提供一种分布式框架来进行安全评估活动中的主动信息收集过程。通过采用异步I/O机制实现了高效的数据传输能力,在面对复杂环境下的应用表现尤为出色。 ```bash unicornscan -mT -r 1000 192.168.1.0/24 ``` 这条语句指示Unicornscan利用TCP协议方式对局域网内部的一个C类子网实施高速率的端口状态检测操作[^4]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值