Perun – 网络资产漏洞扫描器

Perun介绍

Perun是一款主要适用于乙方安服、渗透测试人员和甲方RedTeam红队人员的网络资产漏洞扫描器/扫描框架,它主要适用于内网环境,加载漏洞检测Vuln模块后能够快速发现安全问题,并根据需要生成报表,以方便安全人员对授权项目完成测试工作。

Perun由Python2.7和Python标准库开发,所有功能(端口扫描,漏洞检测,控制台输出,生成Html报告)兼容Windows系统和*nix系统,Html报告采用Vue+Element,支持对扫描结果的排序、搜索、分页

在内网环境中只需上传Perun的启动器文件(未安装Python的主机环境下可以使用Pyinstaller打包生成的单个控制台exe二进制启动器文件,大小在3-5M),其余文件可以部署在云端,也可以部署在目标内网中,既可用作普通的端口扫描器,又可用作漏洞扫描器,方便安全人员在内网环境中进行工作。

Perun - 网络资产漏洞扫描器
Perun控制台
Perun - 网络资产漏洞扫描器
Perun扫描报告

Perun工作流程

  • 加载-l参数指定路径下的项目代码
  • 解析-t参数指定的目标
  • 进行ping扫描活跃主机(使用--skip-ping参数将跳过ping扫描阶段)
  • 根据默认扫描端口或-p参数对指定端口进行端口扫描,默认扫描178个端口,详见Perun/conf/globallistconf.py
  • 解析--vuln和--search(包括--filter和--exclude)参数指定的漏洞检测Vuln模块
  • 根据各Vuln模块默认扫描端口或--set-port指定各Vuln模块扫描端口,匹配目标主机开放端口,生成待扫描目标列表
  • 加载各漏洞扫描Vuln模块Payload,进行漏洞扫描
  • 生成报告(使用--skip-report参数将跳过生成报告)

Perun启动和加载

Perun由Perun.py(或是由Perun.py打包生成的二进制文件)启动,有两种方式加载,远程加载和本地加载,通过-l/--load-file-path参数指定本地文件路径或者远程地址url后,Perun.py将会加载其他代码和漏洞检测Vuln模块并执行。

这样可以在保证项目开发目录结构清晰的同时,只需要一个启动器文件在内网环境中即可工作,其余文件可部署在公网云端或内网环境本地,单个启动器文件方便打包成更小的exe二进制文件,且更新插件不需要重新打包(如导入新的Python库则需要重新打包),一劳永逸。

更多参数介绍

https://github.com/WyAtu/Perun