工具出处:
https://github.com/a6903147/FingerVulnScanner
FingerVulnScanner 是一个根据目标系统指纹进行专项漏洞扫描的工具,旨在大量资产里快速取得外网权限。该工具使用 CMS 对应的 POC 进行扫描,减少误报并且减小对目标系统的压力。
-
初始化 遍历
pocs
文件夹下的每一个子文件夹,获取.py
文件格式的 poc。 -
指纹识别 根据
./inc/finger.json
中的指纹库,通过inc.cms_detected.scan_rule()
函数对目标站点进行指纹识别,并返回 cms 名称。 -
poc 匹配 通过
./inc/cms_replace.py
将获取到的 CMS 名称和 poc 进行对应(例如:用友NC-Cloud
-->yongyou_nc
),并根据 poc 文件的完整路径名进行匹配。只要yongyou_nc
存在于D:FingerVulnScannerpocswebOAyongyouncyongyou_nc-find-web_fileread.py
中就认为匹配成功。 -
漏洞检测 对匹配到 poc 的目标,调用 poc 文件内的
verify()
方法进行漏洞检测,如存在漏洞则返回True
并返回漏洞路径。
log_info('开始对所有目标进行指纹探测,共计{0}个目标!'.format(len(target_list)))
with ThreadPoolExecutor(max_workers=100) as executor:
future_to_target = {executor.submit(scan_rule, target): target for target in target_list}
for future in as_completed(future_to_target):
target = future_to_target[future]
try:
cms, status_code, title = future.result()
if cms:
output.log_info(
f"检测到 [[{url_color}]{target}[/{url_color}]]的指纹为 [[{info_color}]{cms}[/{info_color}]]")
cms = cms_replace(cms)
else:
output.log_info(f" [[{url_color}]{target}[/{url_color}]]未匹配到指纹。")
except Exception as exc:
pass
# print(f'{target} 生成异常: {exc}')
else:
if cms:
cms_results[target] = cms
获取poc/exp信息:
python3 FingerVulnScanner.py --show
单目标检测:
python3 FingerVulnScanner.py -u http://xxx.xxx.xx
批量检测:
python3 FingerVulnScanner.py -f url.txt -o report.txt
指定poc检测:
python3 FingerVulnScanner.py -f url.txt --poc="xxx.py"
-u, --url 目标url
-f, --file 指定目标url文件
-o, --output 指定生成报告的文件(默认不生成)
-t, --thread 指定线程池最大并发数量(默认30)
-to, --timeout 指定poc最大超时时间(默认13s)
-d, --delay 指定poc休眠时间(默认0s)
--show 展示poc/exp详细信息
原文始发于微信公众号(Undoubted Security):【工具分享】指纹及漏洞扫描工具FingerVulnScanner 渗透测试 攻防工具
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论