Sploitus

Exploit for zscan

kitploit · 2026-08-27

Exploit Code

MARKDOWN176 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-ZCYBERSECLAB-ZSCAN
# zscan

![Go Report Card](https://goreportcard.com/badge/github.com/zcyberseclab/zscan) ![GoDoc](https://godoc.org/github.com/zcyberseclab/zscan?status.svg) ![License](https://img.shields.io/github/license/zcyberseclab/zscan)

一个快速、可定制的服务检测工具,由灵活的指纹系统驱动。帮助你识别基础设施中的服务、API和网络配置。

####  文档 | 功能特性 | 安装 | 使用方法

## ✨功能特性

  * **主动扫描引擎** :高性能并发端口扫描和服务检测
  * **智能检测** : 
    * MAC 厂商识别(200+ OUI 映射)
    * 虚拟机检测(VMware、VirtualBox、Hyper-V、KVM 等)
    * 操作系统指纹识别
  * **精确的 POC 定位** : 
    * 通过指纹识别实现高精度 POC 定位
    * 比传统扫描器更快更准确
  * **灵活的指纹系统** : 
    * 支持自定义指纹定义
    * 支持多种协议(HTTP、HTTPS、TCP、UDP)
    * 模式匹配与响应分析
  * **服务检测** : 
    * Web 服务识别
    * 常见应用框架检测
    * TLS/SSL 配置分析
  * **输出格式** : 
    * JSON 输出便于集成
    * 人类可读的控制台输出
    * 通过 HTTP API 远程报告



## 📦 安装

### 从二进制文件安装

从 Releases 下载最新版本

## 🚀 使用方法

### 主动扫描

root@kitploit:~
    
    
    # 扫描单个 IP
    zscan -target 192.168.1.1
    
    # 扫描 CIDR 范围
    zscan -target 192.168.1.0/24
    
    # 扫描多个目标(用 ; 或 , 分隔)
    zscan -target "192.168.1.0/24;10.0.0.0/24"
    zscan -target "192.168.1.1,192.168.1.2,192.168.1.3"
    
    # 扫描指定端口
    zscan -target 192.168.1.1 -port 80,443,8080
    
    # 保存结果到 JSON 文件
    zscan -target 192.168.1.1 -output results.json
    
    # 将结果上报到远程服务器
    zscan -target 192.168.1.0/24 -report http://server/api/assets
    

### 可用选项

### 作为 Go 库使用

root@kitploit:~
    
    
    package main
    
    import (
    	"flag"
    	"log"
    	"os"
    	"time"
    
    	"github.com/zcyberseclab/zscan/pkg/stage"
    )
    
    func main() {
    	target := flag.String("target", "", "要扫描的 IP 地址或 CIDR 范围")
    	configPath := flag.String("config", "config/config.yaml", "配置文件路径")
    	templatesDir := flag.String("templates-dir", "templates", "模板目录路径")
    	enableGeo := flag.Bool("geo", false, "启用地理位置和 IP 信息查询")
    	enableCensys := flag.Bool("censys", false, "启用 Censys 数据增强")
    	censysAPIKey := flag.String("censys-api-key", "", "Censys API 密钥")
    	censysSecret := flag.String("censys-secret", "", "Censys API 密钥 Secret")
    	flag.Parse()
    
    	if *target == "" {
    		log.Fatal("需要目标 IP 或 CIDR 范围")
    	}
    
    	// 如果未提供,则从环境变量获取 Censys 凭据
    	if *enableCensys {
    		if *censysAPIKey == "" || *censysSecret == "" {
    			*censysAPIKey = os.Getenv("CENSYS_API_KEY")
    			*censysSecret = os.Getenv("CENSYS_SECRET")
    		}
    		if *censysAPIKey == "" || *censysSecret == "" {
    			log.Printf("警告:已启用 Censys 集成但未提供凭据。跳过 Censys 数据增强。")
    			*enableCensys = false
    		}
    	}
    
    	// 创建扫描器
    	scanner, err := stage.NewScanner(*configPath, *templatesDir, *enableGeo, *enableCensys, *censysAPIKey, *censysSecret)
    	if err != nil {
    		log.Fatalf("创建扫描器失败:%v", err)
    	}
    	defer scanner.Close()
    
    	// 执行扫描
    	startTime := time.Now()
    	results, err := scanner.Scan(*target)
    	if err != nil {
    		log.Fatalf("扫描失败:%v", err)
    	}
    
    	// 打印结果
    	if err := stage.PrintResults(results); err != nil {
    		log.Printf("打印结果时出错:%v", err)
    	}
    
    	duration := time.Since(startTime)
    	log.Printf("\n扫描完成耗时:%v\n", duration)
    }
    

### 使用 Dockerfile 构建 Docker

运行 `docker build -t zscan .` 来构建镜像。

运行 `docker run zscan --target 127.0.0.1 --config /app/config/config.yaml` 启动一个容器。

## 🔍 编写 POC

ZScan 支持以 YAML 格式编写自定义 POC。关于 POC 编写的详细信息,请参考我们的 POC 编写指南。

示例 POC:

root@kitploit:~
    
    
    type: Path Traversal
    cve-id: CVE-2021-41773
    severity: critical
    rules:
      - method: GET
        path: /icons/.%2e/%2e%2e/etc/passwd
        expression: "response.status==200 && response.body.bcontains(b'root:')"
    

更多示例和详细语法,请查看我们的 POC 编写指南。

## 我们的使命

传统的资产或漏洞扫描器是几十年前构建的。它们是闭源的、极其缓慢且由厂商驱动。如今的攻击者在互联网上大规模利用新发布的 CVE,只需几天时间,而过去需要数年。这种变化需要一种全新的方法来应对互联网上流行的漏洞利用。

我们构建 ZScan 就是为了解决这个挑战。我们将整个扫描引擎框架开放并自定义——让全球安全社区能够协作应对互联网上流行的攻击向量和漏洞。ZScan 现已得到众多企业、政府机构和大学的使用和贡献。

你可以通过贡献代码、模板库或加入我们的团队来参与其中。

## 贡献者

感谢所有了不起的社区贡献者提交 PR 并保持此项目更新。❤️  ![](https://contrib.rocks/image?repo=zcyberseclab/zscan)

## 许可证

ZScan 采用 MIT 许可证发布。