暗黑领域的探索:终极枚举指南!!!

admin 2024年8月4日16:49:51评论29 views字数 33682阅读112分16秒阅读模式

暗黑领域的探索:终极枚举指南!!!

简介 🧐

dirsearch

  • 项目地址:https://github.com/maurosoria/dirsearch

安装方式

  • 使用git安装:git clone https://github.com/maurosoria/dirsearch.git --depth 1 (推荐)
  • 使用Docker安装:docker build -t "dirsearch:v0.4.3" .
  • 使用PyPi安装:pip3 install dirsearch  or  pip install dirsearch

---### 参数选项

用法: dirsearch.py [-u|--url] 目标 [-e|--extensions] 扩展名 [选项]

选项:
  --version             显示程序的版本号并退出
  -h, --help            显示此帮助信息并退出

  必要:
    -u URL, --url=URL   目标URL,可以使用多个标志
    -l PATH, --url-file=PATH
                        URL列表文件
    --stdin             从标准输入读取URL
    --cidr=CIDR         目标CIDR
    --raw=PATH          从文件加载原始HTTP请求(使用'--scheme'标志设置方案)
    -s SESSION_FILE, --session=SESSION_FILE
                        会话文件
    --config=PATH       配置文件路径(默认:
                        'DIRSEARCH_CONFIG'环境变量,否则为'config.ini'

  字典设置:
    -w WORDLISTS, --wordlists=WORDLISTS
                        自定义字典(用逗号分隔)
    -e EXTENSIONS, --extensions=EXTENSIONS
                        扩展名列表,用逗号分隔(例如php,asp)
    -f, --force-extensions
                        将扩展名添加到每个字典条目的末尾,传递斜杠变成目录 / 。默认情况下,dirsearch只用扩展名替换%EXT%关键字
    -O, --overwrite-extensions
                        用您的扩展名覆盖字典中的其他扩展名(通过`-e`选择)
    --exclude-extensions=EXTENSIONS
                        排除扩展名列表,用逗号分隔(例如asp,jsp)
    --remove-extensions
                        从所有路径中删除扩展名(例如admin.php -> admin)
    --prefixes=PREFIXES
                        为所有字典条目添加自定义前缀(用逗号分隔)
    --suffixes=SUFFIXES
                        为所有字典条目添加自定义后缀,忽略目录(用逗号分隔)
    -U, --uppercase     大写字典
    -L, --lowercase     小写字典
    -C, --capital       首字母大写字典

  常规设置:
    -t THREADS, --threads=THREADS
                        线程数
    -r, --recursive     递归暴力破解
    --deep-recursive    对每个目录深度执行递归扫描(例如api/users -> api/)
    --force-recursive   对每个找到的路径进行递归暴力破解,不仅仅是目录
    -R DEPTH, --max-recursion-depth=DEPTH
                        最大递归深度
    --recursion-status=CODES
                        进行递归扫描的有效状态码,支持范围(用逗号分隔)
    --subdirs=SUBDIRS   扫描给定URL的子目录(用逗号分隔)
    --exclude-subdirs=SUBDIRS
                        在递归扫描期间排除以下子目录(用逗号分隔)
    -i CODES, --include-status=CODES
                        包含状态码,用逗号分隔,支持范围(例如200,300-399
    -x CODES, --exclude-status=CODES
                        排除状态码,用逗号分隔,支持范围(例如301,500-599
    --exclude-sizes=SIZES
                        按大小排除响应,用逗号分隔(例如0B,4KB)
    --exclude-text=TEXTS
                        按文本排除响应,可以使用多个标志
    --exclude-regex=REGEX
                        按正则表达式排除响应
    --exclude-redirect=STRING
                        如果此正则表达式(或文本)匹配重定向URL,则排除响应(例如'/index.html'
    --exclude-response=PATH
                        排除与此页面响应类似的响应,路径作为输入(例如404.html)
    --skip-on-status=CODES
                        每当命中这些状态码之一时跳过目标,用逗号分隔,支持范围
    --min-response-size=LENGTH
                        最小响应长度
    --max-response-size=LENGTH
                        最大响应长度
    --max-time=SECONDS  扫描的最大运行时间
    --exit-on-error     发生错误时退出

  请求设置:
    -m METHOD, --http-method=METHOD
                        HTTP方法(默认:GET)
    -d DATA, --data=DATA
                        HTTP请求数据
    --data-file=PATH    包含HTTP请求数据的文件
    -H HEADERS, --header=HEADERS
                        HTTP请求头,可以使用多个标志
    --header-file=PATH  包含HTTP请求头的文件
    -F, --follow-redirects
                        跟随HTTP重定向
    --random-agent      为每个请求选择一个随机用户代理
    --auth=CREDENTIAL   认证凭证(例如user:password或bearer token)
    --auth-type=TYPE    认证类型(basic, digest, bearer, ntlm, jwt, oauth2)
    --cert-file=PATH    包含客户端证书的文件
    --key-file=PATH     包含客户端证书私钥的文件(未加密)
    --user-agent=USER_AGENT
    --cookie=COOKIE

  连接设置:
    --timeout=TIMEOUT   连接超时
    --delay=DELAY       请求之间的延迟
    --proxy=PROXY       代理URL(HTTP/SOCKS),可以使用多个标志
    --proxy-file=PATH   包含代理服务器的文件
    --proxy-auth=CREDENTIAL
                        代理认证凭证
    --replay-proxy=PROXY
                        用找到的路径重放的代理
    --tor               使用Tor网络作为代理
    --scheme=SCHEME     原始请求的方案或URL中没有方案时的方案(默认:自动检测)
    --max-rate=RATE     每秒最大请求数
    --retries=RETRIES   失败请求的重试次数
    --ip=IP             服务器IP地址
    --interface=NETWORK_INTERFACE
                        要使用的网络接口

  高级设置:
    --crawl             爬取响应中的新路径

  查看设置:
    --full-url          输出中的完整URL(在安静模式下自动启用)
    --redirects-history
                        显示重定向历史
    --no-color          无彩色输出
    -q, --quiet-mode    安静模式

  输出设置:
    -o PATH, --output=PATH
                        输出文件
    --format=FORMAT     报告格式(可用:simple, plain, json, xml, md, csv, html, sqlite)
    --log=PATH          日志文件
  • 常用组合:dirsearch -u http://localhost:8000 -w word_list -r -f -O --full-url --crawl

---### 配置文件

默认情况下,dirsearch 目录中的 config.ini 被用作配置文件,但您可以通过 --config 标志或 DIRSEARCH_CONFIG 环境变量选择其他文件。

❯ bat --no-pager /usr/share/dirsearch/config.ini
───────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: /usr/share/dirsearch/config.ini
───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ # If you want to edit dirsearch default configurations, you can
   2   │ # edit values in this file. Everything after `#` is a comment
   3   │ # and won't be applied
   4   │
   5   │ [general]
   6   │ threads = 25
   7   │ recursive = False
   8   │ deep-recursive = False
   9   │ force-recursive = False
  10   │ recursion-status = 200-399,401,403
  11   │ max-recursion-depth = 0
  12   │ exclude-subdirs = %%ff/,.;/,..;/,;/,./,../,%%2e/,%%2e%%2e/
  13   │ random-user-agents = False
  14   │ max-time = 0
  15   │ exit-on-error = False
  16   │ # subdirs = /,api/
  17   │ # include-status = 200-299,401
  18   │ # exclude-status = 400,500-999
  19   │ # exclude-sizes = 0b,123gb
  20   │ # exclude-texts = [
  21   │ #   "Not found",
  22   │ #   "404"
  23   │ # ]
  24   │ # exclude-regex = "^403$"
  25   │ # exclude-redirect = "*/error.html"
  26   │ # exclude-response = 404.html
  27   │ # skip-on-status = 429,999
  28   │
  29   │ [dictionary]
  30   │ default-extensions = php,aspx,jsp,html,js
  31   │ force-extensions = False
  32   │ overwrite-extensions = False
  33   │ lowercase = False
  34   │ uppercase = False
  35   │ capitalization = False
  36   │ # exclude-extensions = old,log
  37   │ # prefixes = .,admin
  38   │ # suffixes = ~,.bak
  39   │ # wordlists = /path/to/wordlist1.txt,/path/to/wordlist2.txt
  40   │
  41   │ [request]
  42   │ http-method = get
  43   │ follow-redirects = False
  44   │ # headers = [
  45   │ #   "Header1: Value",
  46   │ #   "Header2: Value"
  47   │ # ]
  48   │ # headers-file = /path/to/headers.txt
  49   │ # user-agent = MyUserAgent
  50   │ # cookie = SESSIONID=123
  51   │
  52   │ [connection]
  53   │ timeout = 7.5
  54   │ delay = 0
  55   │ max-rate = 0
  56   │ max-retries = 1
  57   │ ## By disabling `scheme` variable, dirsearch will automatically identify the URI scheme
  58   │ # scheme = http
  59   │ # proxies = ["localhost:8080"]
  60   │ # proxies-file = /path/to/proxies.txt
  61   │ # replay-proxy = localhost:8000
  62   │ # network-interface = eth0
  63   │
  64   │ [advanced]
  65   │ crawl = False
  66   │
  67   │ [view]
  68   │ full-url = False
  69   │ quiet-mode = False
  70   │ color = True
  71   │ show-redirects-history = False
  72   │
  73   │ [output]
  74   │ ## Support: plain, simple, json, xml, md, csv, html, sqlite, mysql, postgresql
  75   │ report-format = plain
  76   │ autosave-report = True
  77   │ autosave-report-folder = reports/
  78   │ # log-file = /path/to/dirsearch.log
  79   │ # log-file-size = 50000000
───────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

FFUF

  • 项目地址:https://github.com/ffuf/ffuf

安装方式

  • brew install ffuf
  • go install github.com/ffuf/ffuf/v2@latest
  • git clone https://github.com/ffuf/ffuf ; cd ffuf ; go get ; go build
  • yay -S ffuf
  • apt install ffuf
  • https://github.com/ffuf/ffuf/releases/latest 直接下载对应系统二进制包运行

---### 参数选项

Fuzz Faster U Fool - v2.1.0-dev

HTTP 选项:
  -H                  Header `"Name: Value"`,用冒号分隔。可以接受多个 -H 标志。
  -X                  使用的 HTTP 方法
  -b                  Cookie 数据 `"NAME1=VALUE1; NAME2=VALUE2"`,用于复制为 curl 功能。
  -cc                 用于认证的客户端证书。还需要定义客户端密钥才能工作
  -ck                 用于认证的客户端密钥。还需要定义客户端证书才能工作
  -d                  POST 数据
  -http2              使用 HTTP2 协议(默认:false
  -ignore-body        不获取响应内容。(默认:false
  -r                  跟随重定向(默认:false
  -raw                不对 URI 进行编码(默认:false
  -recursion          递归扫描。仅支持 FUZZ 关键字,URL (-u) 必须以它结尾。(默认:false
  -recursion-depth    最大递归深度。(默认:0
  -recursion-strategy 递归策略:“default” 基于重定向,“greedy” 对所有匹配项递归(默认:default
  -replay-proxy       使用此代理重放匹配请求。
  -sni                目标 TLS SNI,不支持 FUZZ 关键字
  -timeout            HTTP 请求超时,以秒为单位。(默认:10
  -u                  目标 URL
  -x                  代理 URL(SOCKS5 或 HTTP)。例如:<http://127.0.0.1:8080> 或 socks5://127.0.0.1:8080

常规选项:
  -V                  显示版本信息。(默认:false
  -ac                 自动校准过滤选项(默认:false
  -acc                自定义自动校准字符串。可以多次使用。暗示 -ac
  -ach                每个主机自动校准(默认:false
  -ack                自动校准关键字(默认:FUZZ)
  -acs                自定义自动校准策略。可以多次使用。暗示 -ac
  -c                  彩色输出。(默认:false
  -config             从文件加载配置
  -json               JSON 输出,打印换行分隔的 JSON 记录(默认:false
  -maxtime            整个过程的最大运行时间,以秒为单位。(默认:0
  -maxtime-job        每个任务的最大运行时间,以秒为单位。(默认:0
  -noninteractive     禁用交互式控制台功能(默认:false
  -p                  请求之间的 `延迟` 秒数,或随机延迟范围。例如 "0.1" 或 "0.1-2.0"
  -rate               每秒请求数(默认:0
  -s                  不打印其他信息(静默模式)(默认:false
  -sa                 在所有错误情况下停止。暗示 -sf 和 -se。(默认:false
  -scraperfile        自定义爬取文件路径
  -scrapers           活动爬取组(默认:all)
  -se                 在虚假错误时停止(默认:false
  -search             从 ffuf 历史中搜索 FFUFHASH 负载
  -sf                 当 > 95% 的响应返回 403 禁止时停止(默认:false
  -t                  并发线程数。(默认:40
  -v                  详细输出,打印带结果的完整 URL 和重定向位置(如果有)。(默认:false

匹配选项:
  -mc                 匹配 HTTP 状态码,或 "all" 表示所有。(默认:200-299,301,302,307,401,403,405,500
  -ml                 匹配响应中的行数
  -mmode              匹配器集合运算符。可选:and, or(默认:or)
  -mr                 匹配正则表达式
  -ms                 匹配 HTTP 响应大小
  -mt                 匹配第一个响应字节的毫秒数,可以大于或小于。例如:>100 或 <100
  -mw                 匹配响应中的单词数

过滤选项:
  -fc                 从响应中过滤 HTTP 状态码。用逗号分隔的代码和范围列表
  -fl                 按响应中的行数过滤。用逗号分隔的行数和范围列表
  -fmode              过滤器集合运算符。可选:and, or(默认:or)
  -fr                 过滤正则表达式
  -fs                 过滤 HTTP 响应大小。用逗号分隔的大小和范围列表
  -ft                 按第一个响应字节的毫秒数过滤,可以大于或小于。例如:>100 或 <100
  -fw                 按响应中的单词数过滤。用逗号分隔的单词数和范围列表

输入选项:
  -D                  DirSearch 字典兼容模式。与 -e 标志一起使用。(默认:false
  -e                  扩展名的逗号分隔列表。扩展 FUZZ 关键字。
  -enc                关键字编码器,例如 'FUZZ:urlencode b64encode'
  -ic                 忽略字典注释(默认:false
  -input-cmd          生成输入的命令。使用此输入方法时需要 --input-num。覆盖 -w。
  -input-num          要测试的输入数。与 --input-cmd 一起使用。(默认:100
  -input-shell        用于运行命令的 shell
  -mode               多字典操作模式。可用模式:clusterbomb(多对多), pitchfork(一对一), sniper(默认:clusterbomb)
  -request            包含原始 http 请求的文件
  -request-proto      与原始请求一起使用的协议(默认:https)
  -w                  字典文件路径和(可选)关键字用冒号分隔。例如 '/path/to/wordlist:KEYWORD'

输出选项:
  -debug-log          将所有内部日志记录写入指定文件。
  -o                  将输出写入文件
  -od                 存储匹配结果的目录路径。
  -of                 输出文件格式。可用格式:json, ejson, html, md, csv, ecsv(或 'all' 表示所有格式)(默认:json)
  -or                 如果没有结果,则不创建输出文件(默认:false

示例用法:
  从 wordlist.txt 模糊测试文件路径,匹配所有响应,但过滤掉内容大小为 42 的响应。
  彩色,详细输出。
    ffuf -w wordlist.txt -u <https://example.org/FUZZ> -mc all -fs 42 -c -v

  模糊测试 Host 头,匹配 HTTP 200 响应。
    ffuf -w hosts.txt -u <https://example.org/> -H "Host: FUZZ" -mc 200

  模糊测试 POST JSON 数据。匹配所有不包含文本 "error" 的响应。
    ffuf -w entries.txt -u <https://example.org/> -X POST -H "Content-Type: application/json" \
      -d '{"name": "FUZZ", "anotherkey": "anothervalue"}' -fr "error"

  模糊测试多个位置。仅匹配反映 "VAL" 关键字值的响应。彩色显示。
    ffuf -w params.txt:PARAM -w values.txt:VAL -u <https://example.org/?PARAM=VAL> -mr "VAL" -c

  更多信息和示例:<https://github.com/ffuf/ffuf>

交互模式

通过在 ffuf 执行期间按下 ENTER ,进程暂停,用户进入类似shell的交互模式:可以重新配置参数选项

进入交互模式
键入 "help" 以获取命令列表,或按 ENTER 继续。

> help

可用命令:
 afc  [value]             - 添加到状态码过滤器
 fc   [value]             - (重新)配置状态码过滤器
 afl  [value]             - 添加到行数过滤器
 fl   [value]             - (重新)配置行数过滤器
 afw  [value]             - 添加到单词数过滤器
 fw   [value]             - (重新)配置单词数过滤器
 afs  [value]             - 添加到大小过滤器
 fs   [value]             - (重新)配置大小过滤器
 aft  [value]             - 添加到时间过滤器
 ft   [value]             - (重新)配置时间过滤器
 rate [value]             - 调整每秒请求的速率(当前:0
 queueshow                - 显示任务队列
 queuedel [number]        - 删除队列中的任务
 queueskip                - 跳到下一个队列任务
 restart                  - 重新启动并继续当前的 ffuf 任务
 resume                   - 继续当前的 ffuf 任务(或:ENTER)
 show                     - 显示当前任务的结果
 savejson [filename]      - 将当前匹配项保存到文件
 help                     - 显示帮助信息
>

使用案例

  • ffuf -w wordlist.txt:MYCUSTOMKEYWORD -u 'https://ffuf.io.fi/MYCUSTOMKEYWORD’ 单个字段
  • ffuf -w domains.txt:DOMAIN -w wordlist.txt:WORD -u 'https://DOMAIN/WORD’ 多个字段

  • ffuf -w wordlist.txt -request raw_req.txt 通过请求文件爆破
  • ffuf -w /path/to/wordlist -u https://target/FUZZ 目录爆破
  • ffuf -w /path/to/wordlist -u https://FUZZ.target.com 子域名爆破
  • ffuf -w /path/to/wordlist -u https://target/FUZZ -e .bak,.php,.txt 文件后缀爆破
  • ffuf -w /path/to/vhost/wordlist -u https://target -H "Host: FUZZ" -fs 4242 虚拟主机爆破
  • ffuf -w /path/to/paramnames.txt -u https://target/script.php?FUZZ=FUZZ -fs 4242 参数爆破
  • ffuf -w /path/to/postdata.txt -X POST -d "username=admin&password=FUZZ" -u https://target/login.php -fc 401 post 数据爆破
  • ffuf -u https://codingo.io/FUZZ -w ./wordlist -recursion 扫描子目录
  • seq 1 1000 | ffuf -w - -u http://ffuf.me/cd/pipes/user?id=FUZZ 管道,可配合加密各种操作
  • ffuf -w word_list -u http://127.0.0.1:8000/FUZZ -enc FUZZ:b64encode 字典内容编码

「Gobuster」

  • 项目地址:https://github.com/OJ/gobuster

安装

  • docker pull [ghcr.io/oj/gobuster:latest](http://ghcr.io/oj/gobuster:latest) docker
  • go install [github.com/OJ/gobuster/v3@latest](http://github.com/OJ/gobuster/v3@latest) golang
  • yay -S gobuster arch
  • apt install gobuster kali/debian 等
  • brew install gobuster mac 等
  • winget install gobuster windows

参数选项

「主参数选项(全局)」

❯ gobuster version
3.6
❯ gobuster --帮助
用法:
  gobuster [命令]

可用命令:
  completion  为指定的 shell 生成自动补全脚本
  dir         使用目录/文件枚举模式
  dns         使用 DNS 子域名枚举模式
  fuzz        使用模糊测试模式。在 URL、Headers 和请求体中替换关键字 FUZZ
  gcs         使用 gcs 存储桶枚举模式
  help        关于任何命令的帮助
  s3          使用 aws 存储桶枚举模式
  tftp        使用 TFTP 枚举模式
  version     显示当前版本
  vhost       使用 VHOST 枚举模式(你最可能想用 IP 地址作为 URL 参数)

标志:
      --debug                 启用调试输出
      --delay 持续时间        每个线程在请求之间等待的时间(例如 1500ms)
  -h, --help                  显示帮助
      --no-color              禁用彩色输出
      --no-error              不显示错误
  -z, --no-progress           不显示进度
  -o, --output 字符串         写入结果的输出文件(默认为 stdout)
  -p, --pattern 字符串        包含替换模式的文件
  -q, --quiet                 不打印横幅和其他噪音
  -t, --threads 整数          并发线程数(默认 10
  -v, --verbose               详细输出(错误)
  -w, --wordlist 字符串       字典路径。设置为 - 使用 STDIN。
      --wordlist-offset 整数  从字典中的给定位置恢复(默认为 0

使用 "gobuster [命令] --help" 获取更多关于命令的信息。
  • 「常用参数」gobuster -q -w wordlists/rockyou.txt -t 1

dir 参数选项

使用目录/文件枚举模式

用法:
  gobuster dir [参数]

参数:
  -f, --add-slash                         在每个请求后追加 /
      --client-cert-p12 string            用于 TLS 客户端证书的 p12 文件
      --client-cert-p12-password string   p12 文件的密码
      --client-cert-pem string            用于可选 TLS 客户端证书的 PEM 格式公钥
      --client-cert-pem-key string        用于可选 TLS 客户端证书的 PEM 格式私钥(此密钥不需要密码)
  -c, --cookies string                    请求中使用的 Cookies
  -d, --discover-backup                   通过追加多个备份扩展名也搜索备份文件
      --exclude-length string             排除以下内容长度(完全忽略状态)。多个长度可以用逗号分隔,并支持像 203-206 这样的范围
  -e, --expanded                          扩展模式,打印完整 URL
  -x, --extensions string                 要搜索的文件扩展名
  -X, --extensions-file string            从文件中读取要搜索的文件扩展名
  -r, --follow-redirect                   跟随重定向
  -H, --headers stringArray               指定 HTTP 头,-H 'Header1: val1' -H 'Header2: val2'
  -h, --help                              dir 的帮助信息
      --hide-length                       在输出中隐藏主体的长度
  -m, --method string                     使用以下 HTTP 方法(默认 "GET"
      --no-canonicalize-headers           不规范化 HTTP 头名称。如果设置,头名称将按原样发送。
  -n, --no-status                         不打印状态代码
  -k, --no-tls-validation                 跳过 TLS 证书验证
  -P, --password string                   基本认证的密码
      --proxy string                      用于请求的代理 [http(s)://host:port] 或 [socks5://host:port]
      --random-agent                      使用随机的用户代理字符串
      --retry                             请求超时时是否重试
      --retry-attempts int                超时请求时的重试次数(默认 3 次)
  -s, --status-codes string               正面状态代码(如果设置,将被 status-codes-blacklist 重写)。还可以处理范围,如 200,300-400,404
  -b, --status-codes-blacklist string     负面状态代码(如果设置,将重写状态代码)。还可以处理范围,如 200,300-400,404。 (默认 "404"
      --timeout duration                  HTTP 超时(默认 10 秒)
  -u, --url string                        目标 URL
  -a, --useragent string                  设置用户代理字符串(默认 "gobuster/3.6"
  -U, --username string                   基本认证的用户名

全局参数:
      --debug                 启用调试输出
      --delay duration        各线程在请求之间等待的时间(例如 1500 毫秒)
      --no-color              禁用颜色输出
      --no-error              不显示错误
  -z, --no-progress           不显示进度
  -o, --output string         输出结果的文件(默认为标准输出)
  -p, --pattern string        包含替换模式的文件
  -q, --quiet                 不打印横幅和其他信息
  -t, --threads int           并发线程数(默认 10
  -v, --verbose               详细输出(错误)
  -w, --wordlist string       单词列表的路径。设为 - 以使用标准输入。
      --wordlist-offset int   从单词列表中的给定位置恢复(默认为 0
  • 「常用参数组合」gobuster dir -e -r -x wocao,txt,php --random-agent -w word_list -u http://localhost:8000/

dns 参数选项

使用 DNS 子域枚举模式

用法:
  gobuster dns [标志]

标志:
  -d, --domain string      目标域名
  -h, --help               帮助信息
      --no-fqdn            不自动在域名后添加点 "**."**,因此解析器将使用 DNS 搜索域
  -r, --resolver string    使用自定义 DNS 服务器(格式为 server.com 或 server.com:port)
  -c, --show-cname         显示 CNAME 记录(不能与 '-i' 选项同时使用)
  -i, --show-ips           显示 IP 地址
      --timeout duration    DNS 解析器超时(默认 1 秒)
      --wildcard            当发现通配符时强制继续操作

全局标志:
      --debug                 启用调试输出
      --delay duration        每个线程在请求之间等待的时间(例如 1500 毫秒)
      --no-color              禁用彩色输出
      --no-error              不显示错误
  -z, --no-progress           不显示进度
  -o, --output string         输出文件以写入结果(默认为 stdout)
  -p, --pattern string        包含替换模式的文件
  -q, --quiet                 不打印横幅和其他噪音
  -t, --threads int           并发线程数(默认 10
  -v, --verbose               详细输出(错误信息)
  -w, --wordlist string       字典文件路径。设置为 - 以使用标准输入(STDIN)。
      --wordlist-offset int   从字典中的指定位置恢复(默认 0
  • 常用参数组合:gobuster dns -q -i -w wordlists/subdomains-spanish.txt -d target.com

fuzz 参数选项

使用模糊测试模式。替换 URL、头部和请求正文中的关键词 FUZZ。

用法:
  gobuster fuzz [标志]

标志:
  -B, --body string                       请求体
      --client-cert-p12 string            用于 TLS 客户端证书的 p12 文件
      --client-cert-p12-password string   p12 文件的密码
      --client-cert-pem string            可选 TLS 客户端证书的 PEM 格式公钥
      --client-cert-pem-key string        可选 TLS 客户端证书的 PEM 格式私钥(此密钥无需密码)
  -c, --cookies string                    请求中使用的 Cookies
      --exclude-length string             排除以下内容长度(完全忽略状态)。可以用逗号分隔多个长度,也支持范围,如 203-206
  -b, --excludestatuscodes string         排除的状态码。也可以处理范围,如 200,300-400,404
  -r, --follow-redirect                   跟随重定向
  -H, --headers stringArray               指定 HTTP 头部,格式为 -H 'Header1: val1' -H 'Header2: val2'
  -h, --help                              显示帮助信息
  -m, --method string                     使用以下 HTTP 方法(默认 "GET"
      --no-canonicalize-headers           不规范化 HTTP 头部名称。如果设置该选项,头部名称将原样发送。
  -k, --no-tls-validation                 跳过 TLS 证书验证
  -P, --password string                   基本认证的密码
      --proxy string                      请求中使用的代理 [http(s)://host:port] 或 [socks5://host:port]
      --random-agent                      使用随机的 User-Agent 字符串
      --retry                             请求超时后是否重试
      --retry-attempts int                超时后重试的次数(默认 3
      --timeout duration                  HTTP 超时(默认 10s)
  -u, --url string                        目标 URL
  -a, --useragent string                  设置 User-Agent 字符串(默认 "gobuster/3.6"
  -U, --username string                   基本认证的用户名

全局标志:
      --debug                 启用调试输出
      --delay duration        每个线程在请求之间等待的时间(例如 1500ms)
      --no-color              禁用彩色输出
      --no-error              不显示错误
  -z, --no-progress           不显示进度
  -o, --output string         输出结果的文件(默认为标准输出)
  -p, --pattern string        包含替换模式的文件
  -q, --quiet                 不打印横幅和其他噪音
  -t, --threads int           并发线程数(默认 10
  -v, --verbose               详细输出(错误)
  -w, --wordlist string       字典路径。设置为 - 以使用标准输入。
      --wordlist-offset int   从字典中的给定位置恢复(默认为 0
  • 常用参数组合:gobuster fuzz --url [https://example.com/?FUZZ=](https://example.com/?FUZZ=value)FUZZ --wordlist path/to/file

gcs 参数选项

使用 GCS 存储桶枚举模式

用法:
  gobuster gcs [标志]

标志:
      --client-cert-p12 string            用于 TLS 客户端证书的 p12 文件
      --client-cert-p12-password string   p12 文件的密码
      --client-cert-pem string            用于可选 TLS 客户端证书的 PEM 格式公钥
      --client-cert-pem-key string        可选 TLS 客户端证书的 PEM 格式私钥(该密钥不需要密码)
  -h, --help                              gcs 的帮助
  -m, --maxfiles int                      列出存储桶时最多列出文件数(仅在详细模式下显示)(默认 5
  -k, --no-tls-validation                 跳过 TLS 证书验证
      --proxy string                      用于请求的代理 [http(s)://host:port] 或 [socks5://host:port]
      --random-agent                      使用随机的 User-Agent 字符串
      --retry                             在请求超时时应重试
      --retry-attempts int                请求超时重试的次数(默认 3
      --timeout duration                   HTTP 超时(默认 10秒)
  -a, --useragent string                  设置 User-Agent 字符串(默认 "gobuster/3.6"

全局标志:
      --debug                             启用调试输出
      --delay duration                     每个线程在请求之间等待的时间(例如 1500毫秒)
      --no-color                           禁用颜色输出
      --no-error                           不显示错误
  -z, --no-progress                        不显示进度
  -o, --output string                     输出文件以写入结果(默认为 stdout)
  -p, --pattern string                    包含替换模式的文件
  -q, --quiet                             不打印横幅和其他噪声
  -t, --threads int                       并发线程数(默认 10
  -v, --verbose                           详细输出(错误)
  -w, --wordlist string                   单词列表的路径。设置为 - 以使用标准输入。
      --wordlist-offset int               从单词列表中的给定位置恢复(默认为 0
  • 例如:gobuster gcs -w bucket-names.txt

s3 参数选项

使用 AWS 存储桶枚举模式

用法:
  gobuster s3 [标志]

标志:
      --client-cert-p12 string            用于 TLS 客户端证书的 p12 文件
      --client-cert-p12-password string   p12 文件的密码
      --client-cert-pem string            用于可选 TLS 客户端证书的 PEM 格式公钥
      --client-cert-pem-key string        用于可选 TLS 客户端证书的 PEM 格式私钥(此密钥不需要密码)
  -h, --help                              s3 的帮助信息
  -m, --maxfiles int                      列出存储桶时最大文件数(仅在详细模式下显示)(默认值 5
  -k, --no-tls-validation                 跳过 TLS 证书验证
      --proxy string                      请求使用的代理 [http(s)://host:port] 或 [socks5://host:port]
      --random-agent                      使用随机的 User-Agent 字符串
      --retry                             请求超时时是否重试
      --retry-attempts int                请求超时时重试的次数(默认 3
      --timeout duration                  HTTP 超时(默认 10 秒)
  -a, --useragent string                  设置 User-Agent 字符串(默认 "gobuster/3.6"

全局标志:
      --debug                 启用调试输出
      --delay duration        每个线程在请求之间等待的时间(例如 1500 毫秒)
      --no-color              禁用颜色输出
      --no-error              不显示错误
  -z, --no-progress           不显示进度
  -o, --output string         输出文件以写入结果(默认输出到 stdout)
  -p, --pattern string        包含替换模式的文件
  -q, --quiet                 不打印横幅和其他噪音
  -t, --threads int           并发线程数(默认 10
  -v, --verbose               详细输出(错误)
  -w, --wordlist string       单词列表的路径。设置为 - 使用 STDIN。
      --wordlist-offset int   从单词列表中的给定位置恢复(默认值 0
  • 例如:gobuster s3 -w bucket-names.txt

tftp 参数选项

使用 TFTP 枚举模式

用法:
  gobuster tftp [标志]

标志:
  -h, --help               帮助信息
  -s, --server string      目标 TFTP 服务器
      --timeout duration   TFTP 超时(默认 1s)

全局标志:
      --debug                 启用调试输出
      --delay duration        每个线程在请求之间等待的时间(例如 1500ms)
      --no-color              禁用彩色输出
      --no-error              不显示错误
  -z, --no-progress           不显示进度
  -o, --output string         输出文件以写入结果(默认输出到标准输出)
  -p, --pattern string        包含替换模式的文件
  -q, --quiet                 不打印横幅和其他杂音
  -t, --threads int           并发线程数(默认 10
  -v, --verbose               详细输出(错误信息)
  -w, --wordlist string       字典文件的路径。设置为 - 使用标准输入。
      --wordlist-offset int   从字典文件的给定位置恢复(默认 0
  • 例如:gobuster tftp -s tftp.example.com -w common-filenames.txt

vhost 模式

使用 VHOST 枚举模式(您可能希望将 IP 地址用作 URL 参数)

用法:
  gobuster vhost [标志]

标志:
      --append-domain                     将 URL 的主域附加到字典中的单词。否则,需要在字典中指定完全合格的域名。
      --client-cert-p12 string            用于选项 TLS 客户端证书的 p12 文件
      --client-cert-p12-password string   p12 文件的密码
      --client-cert-pem string            用于可选 TLS 客户端证书的 PEM 格式公钥
      --client-cert-pem-key string        用于可选 TLS 客户端证书的 PEM 格式私钥(该密钥不需要密码)
  -c, --cookies string                    要用于请求的 Cookies
      --domain string                     使用 IP 地址作为 URL 时要附加的域名。如果为空且您指定了基于域名的 URL,则从 URL 中提取主机名
      --exclude-length string             排除以下内容长度(完全忽略状态)。您可以用逗号分隔多个长度,也支持如 203-206 的范围
  -r, --follow-redirect                   跟随重定向
  -H, --headers stringArray               指定 HTTP 头,-H 'Header1: val1' -H 'Header2: val2'
  -h, --help                              vhost 的帮助信息
  -m, --method string                     使用以下 HTTP 方法(默认 "GET"
      --no-canonicalize-headers           不规范化 HTTP 头名称。如果设置了,头名称将按原样发送。
  -k, --no-tls-validation                 跳过 TLS 证书验证
  -P, --password string                   用于基本身份验证的密码
      --proxy string                      请求使用的代理 [http(s)://host:port] 或 [socks5://host:port]
      --random-agent                      使用随机 User-Agent 字符串
      --retry                             在请求超时时应重试
      --retry-attempts int                请求超时重试的次数(默认 3 次)
      --timeout duration                  HTTP 超时(默认 10 秒)
  -u, --url string                        目标 URL
  -a, --useragent string                  设置 User-Agent 字符串(默认 "gobuster/3.6"
  -U, --username string                   基本身份验证的用户名

全局标志:
      --debug                 启用调试输出
      --delay duration        每个线程在请求之间等待的时间(例如,1500 毫秒)
      --no-color              禁用彩色输出
      --no-error              不显示错误
  -z, --no-progress           不显示进度
  -o, --output string         输出结果到的文件(默认为标准输出)
  -p, --pattern string        包含替换模式的文件
  -q, --quiet                 不打印横幅和其他杂音
  -t, --threads int           并发线程数量(默认 10
  -v, --verbose               详细输出(错误信息)
  -w, --wordlist string       字典的路径。设置为 - 以使用标准输入。
      --wordlist-offset int   从字典中的给定位置恢复(默认 0

  • 例如:gobuster vhost -u https://mysite.com -w common-vhosts.txt

Feroxbuster

  • 项目地址:https://github.com/epi052/feroxbuster

安装方式

  • yay -S blackarch/feroxbuster
  • brew install feroxbuster
  • apt install feroxbuster
  • choco install feroxbuster
  • cargo install feroxbuster

参数选项

  • feroxbuster -h
feroxbuster 2.10.4

快速、简单的递归内容发现工具。

用法:feroxbuster [选项]

选项:
  -h, --help          打印帮助信息(使用 '--help' 查看更多)
  -V, --version       打印版本信息

目标选择:
  -u, --url <URL>                       目标 URL(必需,除非使用 [--stdin || --resume-from])
      --stdin                           从 STDIN 读取 URL
      --resume-from <STATE_FILE>        从部分完成的扫描中恢复的状态文件(例如:--resume-from ferox-1606586780.state)

复合设置:
      --burp         将 --proxy 设置为 http://127.0.0.1:8080,并将 --insecure 设置为 true
      --burp-replay  将 --replay-proxy 设置为 http://127.0.0.1:8080,并将 --insecure 设置为 true
      --smart        将 --auto-tune、--collect-words 和 --collect-backups 设置为 true
      --thorough     使用与 --smart 相同的设置,并将 --collect-extensions 设置为 true

代理设置:
  -p, --proxy <PROXY>                     用于请求的代理(例如:http(s)://host:port, socks5(h)://host:port)
  -P, --replay-proxy <REPLAY_PROXY>       仅通过重放代理发送未过滤的请求,而不是所有请求
  -R, --replay-codes <REPLAY_CODE>...     找到时通过重放代理发送的状态码(默认:--status-codes 值)

请求设置:
  -a, --user-agent <USER_AGENT>           设置用户代理(默认:feroxbuster/2.10.4
  -A, --random-agent                       使用随机用户代理
  -x, --extensions <FILE_EXTENSION>...     要搜索的文件扩展名(例如:-x php -x pdf js);如果输入以 @ 开头,则从文件中读取值(例如:@ext.txt)
  -m, --methods <HTTP_METHODS>...         应发送哪些 HTTP 请求方法(默认:GET)
      --data <DATA>                       请求体;如果输入以 @ 开头,则可以从文件中读取数据(例如:@post.bin)
  -H, --headers <HEADER>...               指定每个请求中使用的 HTTP 头(例如:-H Header:val -H 'stuff: things'
  -b, --cookies <COOKIE>...               指定每个请求中使用的 HTTP cookie(例如:-b stuff=things)
  -Q, --query <QUERY>...                  请求的 URL 查询参数(例如:-Q token=stuff -Q secret=key)
  -f, --add-slash                          在每个请求的 URL 末尾添加 /

请求过滤:
      --dont-scan <URL>...   要排除在递归/扫描中的 URL 或正则表达式模式

响应过滤:
  -S, --filter-size <SIZE>...                过滤出特定大小的消息(例如:-S 5120 -S 4927,1970
  -X, --filter-regex <REGEX>...              通过在响应的主体/头部上进行正则表达式匹配过滤消息(例如:-X '^ignore me$'
  -W, --filter-words <WORDS>...              过滤出特定字数的消息(例如:-W 312 -W 91,82
  -N, --filter-lines <LINES>...              过滤出特定行数的消息(例如:-N 20 -N 31,30
  -C, --filter-status <STATUS_CODE>...       过滤状态码(拒绝列表)(例如:-C 200 -C 401
      --filter-similar-to <UNWANTED_PAGE>...  过滤出与给定页面相似的页面(例如:--filter-similar-to http://site.xyz/soft404)
  -s, --status-codes <STATUS_CODE>...        包含的状态码(允许列表)(默认:所有状态码)

客户端设置:
  -T, --timeout <SECONDS>          客户端请求超时之前的秒数(默认:7
  -r, --redirects                  允许客户端跟随重定向
  -k, --insecure                   禁用客户端的 TLS 证书验证
      --server-certs <PEM|DER>...  为未知证书的服务器添加自定义根证书
      --client-cert <PEM>          添加用于双向身份验证(mTLS)的 PEM 编码证书
      --client-key <PEM>           添加用于双向身份验证(mTLS)的 PEM 编码私钥

扫描设置:
  -t, --threads <THREADS>          并发线程数(默认:50
  -n, --no-recursion               不进行递归扫描
  -d, --depth <RECURSION_DEPTH>    最大递归深度,深度为 0 表示无限递归(默认:4
      --force-recursion            强制对所有“发现”的端点进行递归尝试(仍然遵循递归深度)
      --dont-extract-links         不从响应主体中提取链接(html、javascript 等...)
  -L, --scan-limit <SCAN_LIMIT>    限制总的并发扫描数量(默认:0,即无限制)
      --parallel <PARALLEL_SCANS>  运行并行的 feroxbuster 实例(每个通过 stdin 传递的 URL 一个子进程)
      --rate-limit <RATE_LIMIT>    限制每秒请求数量(每个目录)(默认:0,即无限制)
      --time-limit <TIME_SPEC>     限制所有扫描的总运行时间(例如:--time-limit 10m)
  -w, --wordlist <FILE>            单词列表的路径或 URL
      --auto-tune                  当遇到过多错误时自动降低扫描速率
      --auto-bail                  当遇到过多错误时自动停止扫描
  -D, --dont-filter                不自动过滤通配符响应

动态收集设置:
  -E, --collect-extensions                       自动发现扩展名并将其添加到 --extensions(除非在 --dont-collect 中)
  -B, --collect-backups [<collect_backups>...]   自动请求“发现” URL 可能的备份扩展名(默认:~,.bak,.bak2,.old,.1)
  -g, --collect-words                            自动从响应中发现重要单词并将其添加到单词列表
  -I, --dont-collect <FILE_EXTENSION>...         在收集扩展名时要忽略的文件扩展名(仅与 --collect-extensions 一起使用)

输出设置:
  -v, --verbosity...           增加详细级别(使用 -vv 或更多以获得更大效果。[注意] 4 个 -v 可能太多)
      --silent                 仅打印 URL(或 JSON 使用 --json)+ 关闭日志记录(适合将 URL 列表传递给其他命令)
  -q, --quiet                  隐藏进度条和横幅(适合带有通知的 tmux 窗口)
      --json                   将 JSON 日志输出到 --output 和 --debug-log,而不是普通文本
  -o, --output <FILE>          输出文件以写入结果(使用 --json 以获取 JSON 条目)
      --debug-log <FILE>       输出文件以写入日志条目(使用 --json 以获取 JSON 条目)
      --no-state               禁用状态输出文件 (*.state)

更新设置:
  -U, --update       更新 feroxbuster 到最新版本

  • 常用参数组合:feroxbuster -u http://localhost:8000/ -A -r -E -g -q --force-recursion -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt
  • 「默认字典」 /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt

配置文件

# Example configuration for feroxbuster
#
# If you wish to provide persistent settings to feroxbuster, rename this file to ferox-config.toml and make sure
# it resides in the same directory as the feroxbuster binary.
#
# After that, uncomment any line to override the default value provided by the binary itself.
#
# Any setting used here can be overridden by the corresponding command line option/argument
#
# wordlist = "/wordlists/seclists/Discovery/Web-Content/raft-medium-directories.txt"
# status_codes = [200500]
# filter_status = [301]
# threads = 1
# timeout = 5
# proxy = "http://127.0.0.1:8080"
# replay_proxy = "http://127.0.0.1:8081"
# replay_codes = [200302]
# verbosity = 1
# parallel = 8
# scan_limit = 6
# rate_limit = 250
# quiet = true
# silent = true
# auto_tune = true
# auto_bail = true
# json = true
# output = "/targets/ellingson_mineral_company/gibson.txt"
# debug_log = "/var/log/find-the-derp.log"
# user_agent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0"
# random_agent = false
# redirects = true
# insecure = true
# extensions = ["php""html"]
# methods = ["GET""POST"]
# data = [1112131415]
# url_denylist = ["http://dont-scan.me""https://also-not.me"]
# regex_denylist = ["/deny.*"]
# no_recursion = true
# add_slash = true
# stdin = true
# dont_filter = true
# extract_links = true
# depth = 1
# filter_size = [5174]
# filter_regex = ["^ignore me$"]
# filter_similar = ["https://somesite.com/soft404"]
# filter_word_count = [993]
# filter_line_count = [3536]
# queries = [["name","value"], ["rick""astley"]]
# save_state = false
# time_limit = "10m"

# headers can be specified on multiple lines or as an inline table
#
# inline example
# headers = {"stuff" = "things"}
#
# multi-line example
#   note: if multi-line is used, all key/value pairs under it belong to the headers table until the next table
#         is found or the end of the file is reached
#
# [headers]
# stuff = "things"
# more = "headers"

字典列表

  • https://github.com/six2dez/OneListForAll
  • https://github.com/danielmiessler/SecLists

Refences 😜

  • https://github.com/maurosoria/dirsearch
  • https://github.com/ffuf/ffuf
  • http://ffuf.me/ ffuf 练习靶场
  • https://codingo.io/tools/ffuf/bounty/2020/09/17/everything-you-need-to-know-about-ffuf.html#other-sources---credit ffuf 可参考教程
  • https://epi052.github.io/feroxbuster-docs/docs/overview/

原文始发于微信公众号(人遁安全):暗黑领域的探索:终极枚举指南!!!

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月4日16:49:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   暗黑领域的探索:终极枚举指南!!!https://cn-sec.com/archives/3033851.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息