一WAF防火墙检测工具
在进行渗透测试或者网络攻击时往往需要对目标防火墙进行检测,毕竟每个安全厂商拦截的规则策略都不尽相同,WAFW00F就是一款设计用来检测目标防火墙的厂商类型,理论上可以检测153种不同的WAF厂商产品
检测原理
WAFW00F主要利用xssAttack
, sqliAttack
, lfiAttack
等方法模拟常见的网络攻击类型,用来测试 WAF 的反应,再检测返回包中响应头、状态码、Cookie、响应原因和响应内容是否符合特定厂商格式。
安装方法及使用
DOCKER镜像指令:docker build . -t wafw00f
docker run --rm -it wafw00f https://example.com
使用指令
1. -a, --findall
功能:查找与签名匹配的所有 WAF,而不是在找到第一个后停止测试。
用法:在想要检测多个可能存在的 WAF 时使用。
2. -r, --noredirect
功能:不跟随由 3xx 响应给出的重定向。
用法:当你想要观察原始请求的响应时使用,而不是最终重定向的结果。
3. -t TEST, --test=TEST
功能:测试特定的 WAF。
用法:当你想要检测特定的 WAF 是否存在时使用,例如 -t ModSecurity。
4. -o OUTPUT, --output=OUTPUT
功能:将输出写入 csv、json 或文本文件,具体取决于文件扩展名。对于标准输出,请指定 - 作为文件名。
用法:用于保存测试结果到文件,例如 -o results.json。
5. -i INPUT, --input-file=INPUT
功能:从文件中读取目标 URL。输入格式可以是 csv、json 或文本。对于 csv 和 json,需要一个 url 列名或元素。
用法:当你有多个 URL 需要测试时使用,例如 -i targets.csv。
6. -l, --list
功能:列出 WAFW00F 能够检测的所有 WAF。
用法:用于查看工具能识别的所有 WAF 类型。
7. -p PROXY, --proxy=PROXY
功能:使用 HTTP 代理执行请求,例如:http://hostname:8080, socks5://hostname:1080, http://user:pass@hostname:8080。
用法:当你需要通过代理发送请求时使用,例如 -p http://localhost:8080。
8. -V, --version
功能:打印出 WafW00f 的当前版本并退出。
用法:用于查看正在使用的 WAFW00F 版本。
源码地址:Release WAFW00F v2.2 Release! · EnableSecurity/wafw00f · GitHub
二scan4all网络漏洞全自动扫描
用了都说好的漏洞扫描工具,结合了vscan、nuclei、ksubdomain、subfinder漏扫工具,针对网站一把梭pyload,而且支持几乎全平台运行,总结起来就是各种端口扫描器,密码爆破,网络指纹扫描仪,POC验证等工具的大杂烩。
安装方式
编译
sudo apt install -y libpcap-dev golang git
git clone https://github.com/hktalent/scan4all.git
cd scan4all
go build
安装/运行
# ubuntu、linux
apt update
apt install -yy libpcap0.8-dev
sudo apt install -y libpcap-dev
# cent os
yum install -yy glibc-devel.x86_64
yum install -yy libpcap
# mac os
brew install libpcap
使用指令介绍
输入(Input):
-host string[]
功能:指定要扫描端口的主机(以逗号分隔)。
用法:-host "192.168.1.1,192.168.1.2"
-list, -l string
功能:指定一个文件,其中包含要扫描端口的主机列表。
用法:-list "hosts.txt"
-exclude-hosts, -eh string
功能:指定要从扫描中排除的主机(以逗号分隔)。
用法:-exclude-hosts "192.168.1.3,192.168.1.4"
-exclude-file, -ef string
功能:指定一个文件,其中包含要从扫描中排除的主机列表。
用法:-exclude-file "exclude_hosts.txt"
端口(Port):
-port, -p string
功能:指定要扫描的端口(以逗号分隔,支持范围)。
用法:-port "80,443,100-200"
-top-Ports, -tp string
功能:指定要扫描的常见端口(默认为http端口)。
用法:-top-Ports "top"
-exclude-Ports, -ep string
功能:指定要从扫描中排除的端口(以逗号分隔)。
用法:-exclude-Ports "8080,8081"
-Ports-file, -pf string
功能:指定一个文件,其中包含要从扫描中排除的端口列表。
用法:-Ports-file "exclude_ports.txt"
-exclude-cdn, -ec
功能:跳过CDN的完整端口扫描(只检查80和443端口)。
用法:-exclude-cdn
速率限制(Rate-Limit):
-c int
功能:设置通用 nclruner 工作线程数(默认为25)。
用法:-c 30
-rate int
功能:设置每秒发送的数据包数量(默认为1000)。
用法:-rate 500
输出(Output):
-o, -output string
功能:指定输出文件的名称(可选)。
用法:-o "results.txt"
-json
功能:以 JSON 行格式写入输出。
用法:-json
-csv
功能:以 csv 格式写入输出。
用法:-csv
配置(Configuration):
-ceyeapi
功能:ceye.io 的 API 密钥。
用法:-ceyeapi "your_api_key"
-ceyedomain
功能:ceye.io 的子域名。
用法:-ceyedomain "your_subdomain"
-np
功能:跳过 POC 检查。
用法:-np
-scan-all-ips, -sa
功能:扫描与 DNS 记录相关联的所有 IP。
用法:-scan-all-ips
-scan-type, -s string
功能:端口扫描类型(SYN/CONNECT)(默认为 "s")。
用法:-scan-type "CONNECT"
-source-ip string
功能:指定源 IP 地址。
用法:-source-ip "192.168.1.100"
-interface-list, -il
功能:列出可用接口和公网 IP。
用法:-interface-list
-interface, -i string
功能:用于端口扫描的网络接口。
用法:-interface "eth0"
-nmap
功能:对目标执行 nmap 扫描(需要安装 nmap)- 已弃用。
用法:-nmap
-nmap-cli string
功能:在发现的结果上运行的 nmap 命令。
用法:-nmap-cli 'nmap -sV'
-r string
功能:自定义解析器 DNS 解析列表(逗号分隔或来自文件)。
用法:-r "8.8.8.8,8.8.4.4"
-proxy string
功能:socks5 代理。
用法:-proxy "socks5://127.0.0.1:1080"
-resume
功能:使用 resume.cfg 恢复扫描。
用法:-resume
-stream
功能:流模式(禁用恢复、nmap、验证、重试、随机化等)。
用法:-stream
优化(Optimization):
-retries int
功能:端口扫描的重试次数(默认为3)。
用法:-retries 2
-timeout int
功能:超时前等待的毫秒数(默认为1000)。
用法:-timeout 1500
-warm-up-time int
功能:扫描阶段之间的间隔时间(秒)(默认为2)。
用法:-warm-up-time 3
-ping
功能:用于验证主机的 ping 探针。
用法:-ping
-verify
功能:使用 TCP 验证再次验证端口。
用法:-verify
调试(Debug):
-debug
功能:显示调试信息。
用法:-debug
-verbose, -v
功能:显示详细输出。
用法:-verbose 或 -v
-no-color, -nc
功能:在 CLI 输出中禁用颜色。
用法:-no-color
-silent
功能:只在输出中显示结果。
用法:-silent
-version
功能:显示 naabu 的版本。
用法:-version
-stats
功能:显示正在运行的扫描的统计信息。
用法:-stats
-si, -stats-interval int
功能:显示统计更新之间等待的秒数(默认为5)。
用法:-si 10