wafw00f:
测试多个 URL
wafw00f iqiyi.com mozhe.com
wafw00f ip -a 匹配所有签名特征的WAFS
wafw00f -V 查看版本信息
-p 设置代理
-r 不遵循3xx状态的重定向
-t 测试一个指定的WAF
-o 输出文件,文件类型取决于文件名后缀,支持csv、json、文本
-i 从文件中读取目标。输入格式可以是csv,json或文本。
-l 显示支持探测的所有WAF列表
-H 设定一个头文件信息,用以覆盖默认的头信息
nmap:
open:端口是开放的。
closed:端口是关闭的。
filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。
unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。
open|filtered:端口是开放的或被屏蔽。
closed|filtered :端口是关闭的或被屏蔽
-sTTCP connect()扫描,这是最基本的TCP扫描方式。
-sSTCP同步扫描(TCP SYN),因为不必全部打开一个TCP连接,所以这项技术通常称为半开扫描(half-open)。
-sF,-sX,-sN秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式。这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应RST包,而打开的端口必需忽略有问题的包(参考RFC 793第64页)。-sPping扫描,用ping方式检查网络上哪些主机正在运行。
-sU如果你想知道在某台主机上提供哪些UDP(用户数据报协议,RFC768)服务,可以使用此选项。-sAACK扫描,这项高级的扫描方法通常可以用来穿过防火墙。
-sW滑动窗口扫描,非常类似于ACK的扫描。
-sRRPC扫描,和其它不同的端口扫描方法结合使用。
-bFTP反弹攻击(bounce attack),连接到防火墙后面的一台FTP服务器做代理,接着进行端口扫描。
2. 通用选项
-P0在扫描之前,不ping主机。
-PT扫描之前,使用TCP ping确定哪些主机正在运行。
-PS对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。
-PI设置这个选项,让nmap使用真正的ping(ICMP echo请求)来扫描目标主机是否正在运行。
-PB这是默认的ping扫描选项。它使用ACK(-PT)和ICMP(-PI)两种扫描类型并行扫描。如果防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。
-O这个选项激活对TCP/IP指纹特征(fingerprinting)的扫描,获得远程主机的标志
-I打开nmap的反向标志扫描功能。
-f使用碎片IP数据包发送SYN、FIN、XMAS、NULL。包增加包过滤、入侵检测系统的难度,使其无法知道你的企图。
-v冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息。
-S 在一些情况下,nmap可能无法确定你的源地址(nmap会告诉你)。在这种情况使用这个选项给出你的IP地址。
-g port设置扫描的源端口。一些天真的防火墙和包过滤器的规则集允许源端口为DNS(53)或者FTP-DATA(20)的包通过和实现连接。显然,如果攻击者把源端口修改为20或者53,就可以摧毁防火墙的防护。
-oN把扫描结果重定向到一个可读的文件logfilename中。
-oS扫描结果输出到标准输出。
--host_timeout设置扫描一台主机的时间,以毫秒为单位。默认的情况下,没有超时限制。
--max_rtt_timeout设置对每次探测的等待时间,以毫秒为单位。如果超过这个时间限制就重传或者超时。默认值是大约9000毫秒。
--min_rtt_timeout设置nmap对每次探测至少等待你指定的时间,以毫秒为单位。
-M count置进行TCP connect()扫描时,最多使用多少个套接字进行并行的扫描。
3. 扫描目标
目标地址可以为IP地址,CIRD地址等。如192.168.1.2,222.247.54.5/24-iL filename从filename文件中读取扫描的目标。-iR让nmap自己随机挑选主机进行扫描。-p端口 这个选项让你选择要进行扫描的端口号的范围。如:-p 20-30,139,60000。-exclude排除指定主机。-excludefile排除指定文件中的主机。
whois:
-a:搜寻所有数据库-c:找到最小的包含一个 mnt-irt 属性的匹配-d:同时返回 DNS 反向查询的代理对象(需支持RPSL协议)-F:快速输出原始数据-H:隐藏法律声明内容-i:ATTR 进行一次反向查询-l:将精确度降低一级的查询 (需支持RPSL协议)-L:找到所有低精确度匹配-m:找到第一级较高精确度匹配-M:找到所有较高精确度匹配-r:查询联系信息时关闭递归查询-R:显示本地域名对象副本-x:精确匹配-h[主机]:连接到指定 HOST 服务器-p[端口]:连接到指定 PORT 端口-t[类型]:查询指定类型对象头信息-T[类型]:查找指定类型的对象-v[类型]:查询指定类型对象冗余信息-q [版本|类型]:查询特定的服务器信息(需支持RPSL协议)
whatweb:
1.单个目标whatweb 192.168.1.1002.从外部导入目标数据进行批量探测
whatweb -input-file=路径或者whatweb -i 路径c.根据特定的格式探测的结果导出whatweb 192.168.1.110 -log-xml=result.xml
whatweb的高级使用whatweb -v 192.168.1.100详细输出
whatweb 192.168.1.100/24 -url-suffix=":8080"-url-prefix //添加前缀-url-suffix // 添加后缀-url-pattern //在中间插入内容
whatweb -v -proxy-user admin:password url以指定用户名和密码进行探测
whatweb -v -c=cookie值 url通过-c,指定cookie的值
whatweb -l使用参数-l可以列出插件的列表,包括插件以及插件的描述
nuclei:
dirsearch:
-u,--url 目标urln -l,--url-list=FILE 目标url文件路径 -e,--extensions 包含的文件拓展名(逗号分隔) 如-e php,asp -X,--exclude-extensions 排除的文件拓展名(逗号分隔) 如-X asp,jsp -f,--force-extensions 在字典的每条记录后面添加文件拓展名
字典设置:
-w,--wordlists 自定义wordlist(以逗号分隔) --prefixes 添加自定义前缀 --suffixes 添加自定义后缀 --only-selected 筛选出指定的文件拓展名或无文件拓展名的目录 --remove-extensions 移除所有wordlist的后缀名 (admin.php --> admin) -U, --uppercase 将字典转换为大写 -L, --lowercase 将字典转换为小写 -C, --capital 第一个字母大写剩下字母小写
响应结果的过滤
-i 保留的响应状态码(以逗号分隔,支持指定范围) 如(-i 200,300-399) -x 排除的响应状态码(以逗号分隔,支持指定范围) 如(-x 301,500-599) --exclude-sizes 通过大小排除(以逗号分隔) 如(123B,4KB) --exclude-texts 通过文本内容排除响应('Not found', 'Error') --exclude-regexps 通过正则匹配排除响应('Not foun[a-z]{1}', '^Error$') --exclude-redirects 通过正则跳转目标排除响应('https://okta.com/*') --minimal 最小响应报文长度 --maximal 最大响应报文长度
请求相关设置
-m,--http-method HTTP请求方法 默认为GET -d,--data HTTP请求数据 -H,--header 请求头 如(-H 'Referer: example.com' -H 'Accept: */*') --header-list=FILE 从文件中读取请求头 -F,--follow-redirects 跟随HTTP跳转 --user-agent 设置user-agent字段 --cookie 设置cookie
连接相关设置
--timeout=TIMEOUT 连接超时时间 --ip=IP 服务器ip地址 -s DELAY, --delay=DELAY 每次请求间隔的时间 --proxy=PROXY 代理url 支持HTTP和SOCKS代理 如(localhost:8080, socks5://localhost:8088) --proxy-list=FILE 包含代理服务器的地址 --matches-proxy=PROXY Proxy to replay with found paths --scheme 默认的策略 用于从文件中导入请求或url中不包含协议 --max-retries 最大重连次数 -b,--request-by-hostname 强制通过域名连接,(默认为了速度,使用ip连接) --exit-on-error 出现错误时退出 --debug Debug模式
其余
-r,--recursive 递归爆破 -R,--recursion-depth 最大递归的层数,最大递归级别(子目录)(默认值:0[无限]) -t,--threads 线程数 --subdirs 扫描子目录 如(admin/ 则www.example.com/admin/+字典) --exclude-subdirs 在递归扫描中排除的子目录 -q,--quiet-mode 安静模式 --full-url 打印出完整的url --no-color 无颜色输出信息 --stop-on-error 发生错误时停止 --random-agents, --random-user-agents 随机代理,--随机用户代理 --ua=USERAGENT, --user-agent=USERAGENT 用户代理 -F, --follow-redirects --遵循重定向 --exclude-regexps=EXCLUDEREGEXPS 按regexp排除响应,用逗号分隔(示例: "Not foun[a-z]{1}", "^Error$") -s DELAY, --delay=DELAY 请求之间的延迟(浮点数)
报告
--simple-report=SIMPLEOUTPUTFILE 简单输出文件 只找到路径 --plain-text-report=PLAINTEXTOUTPUTFILE 纯文本输出文件 找到带有状态代码的路径 --json-report=JSONOUTPUTFILE JSON输出文件
nslookup:
- 非交互模式: nslookup -ty=类型 name
- nslookup进入交互模式:
- set all #查看当前option设置
- PTR反响DNS解析:nslookup -ty=ptr (8.8.8.8=DNS服务器)
- 解析不到则会显示 Unknown,解析失败有可能会显示 timeout
- nslookup set 参数
参数 说明
type 请求的记录类型,默认为A+AAAA,非交互模式下可
使用- qt简写代替
port 设置dns server的服务端口,默认是53
[no]recurse 设置请求的递归标志位,默认为递归请求
[no]vc 控制是否使用tcp协议发送dns请求,默认不使用
timeout 设置请求的超时时间,默认2秒
1 / 12retry 重试次数,默认1次
[no]debug 控制是否打印debug信息,默认不打印,非交互模式
下可使用-d简写代替
- nslookup [-opt..] #使用默认服务器的交互模式
- nslookup [-opt..] -server #使用“server”的交互模式
- nslookup [-opt..] host #使用默认服务器的“host"
- nslookup [-opt..] host server #使用“server”的"server"
- [no] defname #将域名附加到每个查询
- [no] recurse #询问查询的递归应答
- [no] search #使用与搜索列表
- domain=? #将默认域名设置为?
- root=? #将根服务器设置为?
- typc=X #设置查询类型
- server ? #将默认服务器设置为? ,使用当前默认服务器
- lserver? #将默认服务器设置为? ,使用初始服务器
- root #将当前默认服务器设置为根服务器
dig
支持的 option 参数如下:
参数 说明
-b 指定请求使用的源地址,示例: dig www.qq.com -b192.168.134.111
-p 指定dns server的服务端口,默认为53,示例: dig@192.168.134.11 www.qq.com -p 5353
-u 改变输出的时间单位为纳秒,默认为毫秒
-x 用于快速查询一个ip对应的域名,即PTR记录,示例:dig -x 114.114.114.1143 / 12设置请求的tsig key,多用在测试多视图时debug,示
-y 例: dig @192.168.134.11 www.test.com -y
view1: 8tExWNndNylRc32cqjT0UQ==
+short 仅打印简化的解析结果,默认打印完整的解析结果
+tcp 使用tcp协议进行dns请求
+trace 模拟一次完整的迭代解析过程
+tries 指定请求的重试次数,默认为3
+timeout 指定一次请求的超时时间,默认为5秒
+norecurse 设置请求的递归标志位,默认为递归请求
+subnet 设置Edns Client Subnet option值,示例: digwww.qq.com +subnet=192.168.134.11/24+yaml
改变输出格式为yaml
finger
source env/bin/activate python3 Finger.py -h
- -u 对单个URL进行指纹识别
- -f 对指定文件中的url进行批量指纹识别
- -i 对ip进行fofa数据查询采集其web资产
- -if 对指定文件中的ip批量调用fofa进行数据查询采集其web资产
- -fofa 调用fofa api进行资产收集
- -quake 调用360 quake进行资产收集
- -o 指定输出方式默认不选择的话是xlsx格式,支持json,xls。
oneForall:
python3 oneforall.py --target example.com run #单个扫描 python3 oneforall.py --targets ./example.txt run #文件扫描
packer-Fuzzer: python3 PackerFuzzer.py
代理: /etc/proxychains4.conf 路径
proxychains -f /etc/proxychains4.conf python3 PackerFuzzer.py -u 网站 -r doc
- -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,
- -j(--js)
- 附加JS文件,可为空,当您认为还有其他JS文件需要本工具分析时
- -b(--base)
- 指定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。
ksubdomain
-api 使用网络接口 -b string 宽带的下行速度,可以5M,5K,5G (default "1M") -check-origin 会从返回包检查DNS是否为设定的,防止其他包的干扰 -csv 输出excel文件 -d string 爆破域名 -dl string 从文件中读取爆破域名 -e int 默认网络设备ID,默认-1,如果有多个网络设备会在命令行中选择 (default -1) -f string 字典路径,-d下文件为子域名字典,-verify下文件为需要验证的域名 -filter-wild 自动分析并过滤泛解析,最终输出文件,需要与'-o'搭配 -full 完整模式,使用网络接口和内置字典 -l int 爆破域名层级,默认爆破一级域名 (default 1) -list-network 列出所有网络设备 -o string 输出文件路径 -s string resolvers文件路径,默认使用内置DNS -sf string 三级域名爆破字典文件(默认内置) -silent 使用后屏幕将仅输出域名 -skip-wild 跳过泛解析的域名 -summary 在扫描完毕后整理域名归属asn以及IP段 -test 测试本地最大发包数 -ttl 导出格式中包含TTL选项 -verify 验证模式