一、介绍
项目简介
ZPScan是一个轻量级、高效的网络扫描工具,由GitHub上的开发者Niudaii打造。该项目旨在帮助网络安全专业人员、系统管理员和普通用户进行网络探测与安全审计。通过简单的命令行界面,用户可以轻松地检测网络上的开放端口、运行的服务,甚至是潜在的安全漏洞。
技术分析
ZPScan的核心是基于Python编程语言,利用其丰富的网络库进行开发。项目的亮点在于其模块化设计,使得扫描功能可以根据不同需求进行组合和扩展。以下是几个关键的技术特性:
- 并行扫描 - ZPScan采用了多线程技术,允许对目标IP范围内的多个地址同时进行扫描,大大提升了效率。
- 自定义配置 - 用户可以通过参数调整扫描速度、指定特定端口范围,或选择扫描特定服务,提供了高度的定制性。
- 结果解析 - 扫描完成后,ZPScan会以清晰易读的格式输出结果,包括开放端口、对应的服务信息等,方便进一步分析。
- 插件支持 - 项目预留了插件接口,允许社区贡献新的扫描模组或功能,增加了工具的功能性和灵活性。
应用场景 ZPScan 可用于多种情况:
- 网络运维 - 系统管理员可以用它定期检查内部网络,确保所有设备的端口处于预期状态。
- 安全评估 - 安全研究员在渗透测试中,可以快速发现目标系统的开放端口和服务,以便进一步挖掘漏洞。
- 教育学习 - 对于学习网络安全的学生,ZPScan提供了一个实战的平台,帮助他们理解网络扫描的基本原理和实践方法。
特点与优势
- 简单易用 - ZPScan拥有简洁的命令行界面,无需复杂的配置即可开始使用。
- 跨平台 - 作为golang项目,ZPScan可在各种操作系统上运行。
- 开源免费 - 作为一个开源项目,ZPScan的所有源代码都是可见的。
- 活跃社区 - 开发者持续更新维护,并鼓励社区参与,意味着问题修复和新功能添加迅速。
二、安装部署
环境:
ZPScan版本 v1.8.39,通过拉取最新代码也可以,ZPScan github地址
安装go环境 go 1.18
下载安装go https://go.dev/dl/go1.18.linux-amd64.tar.gz上传至/home下
sudo tar -C /usr/local -xzf /home/go1.18.linux-amd64.tar.gz
sudo vim /etc/profile
在文件末尾添加以下行(确保路径与你的安装路径一致):
Golang environment
export GOROOT=/usr/local/go
export GOPATH=/usr/local/go export PATH=$PATH:$GOPATH/bin export GOMAXPROCS=16
export GOPROXY=https://goproxy.cn,direct
运行以下命令使刚刚设置的环境变量生效:
source /etc/profile
运行以下命令来检查Golang是否已正确安装:
go version
安装libpcap
库的开发文件依赖
sudo yum install libpcap-devel
具体操作:
上传压缩包到目录:/home/zpscan-1.8.39.zip
解压:
unzip /home/zpscan-1.8.39.zip
下载配置文件
https://niudaii.oss-cn-hangzhou.aliyuncs.com/resource.zip
将下载的resource目录和config.yml文件上传至 zpscan同级目录
/home/zpscan-1.8.39下
执行构建
cd zpscan-1.8.39
go build
编译完成会生成一个zpscan可执行文件,大概81.6M
修改权限
chmod +x zpscan
/home/zpscan-1.8.39下,执行
./zpscan -h
运行成功标识:
清除go缓存
go clean -modcache
若需要在最新golang(如1.22)环境中运行,需要执行以下步骤:
运行以下命令来下载和更新缺少的依赖项,同时更新 go.sum 文件:
go get github.com/imroc/req/v3
go get github.com/projectdiscovery/nuclei/v2/pkg/testutils@v2.7.9
go get github.com/projectdiscovery/nuclei/v2/pkg/protocols/websocket@v2.7.9
清理和重新下载模块:
go clean -modcache
go mod tidy go mod download
重新打包
go build