1.5
环境说明
环境概览
10.1.6.105
v0.4.3 Latest
python3.8.0
软件版本
v0.4.3 Latest
// 下载地址
https://github.com/maurosoria/dirsearch/archive/master.zip
依赖环境
python3.8.0 // 低于此版本编译可能会抛出异常
/usr/bin/python3
/usr/bin/pip3
Python环境安装
yum install libffi-devel -y
yum install sqlite-devel
// 安装openssl
# mv /usr/bin/openssl /usr/bin/openssl.old
# mv /usr/lib64/openssl /usr/lib64/openssl.old
# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# ln -s /usr/local/openssl/include/openssl /usr/include/openssl
# ln -s /usr/local/openssl/lib/libssl.so /usr/lib64/libssl.so
# echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
# openssl version
# ./configure --prefix=/usr/local/python3 -with-openssl=/usr/local/openssl
# make && make install
# ./configure --prefix=/usr/local/python3 -with-openssl=/usr/local/openssl
# make && make install
# ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
dirsearch依赖下载
pip3 install -r requirements.txt
// 可能涉及到饿安装
pip3 install psycopg-binary==3.1.18
pip3 install pysqlite3
命令执行示例
# pwd
/home/opt/dirsearch/dirsearch
# ls
CHANGELOG.md CONTRIBUTORS.md dirsearch.py __init__.py nohup.out README.md requirements.txt setup.py testing.py
config.ini db Dockerfile lib options.ini reports setup.cfg static tests
// 交互命令行执行
# python3 dirsearch.py -r -u https://rdp.zznode.com
// 后台执行
# nohup python3 dirsearch.py -r -u https://rdp.zznode.com &
# pwd
./reports/https_rdp.zznode.com
# du -sh *
640K _24-04-28_16-39-00.txt
644K _24-04-28_18-21-44.txt
# ll
total 1284
-rw-r--r-- 1 root root 655137 Apr 28 18:19 _24-04-28_16-39-00.txt
-rw-r--r-- 1 root root 656832 Apr 28 21:12 _24-04-28_18-21-44.txt
# more _24-04-28_18-21-44.txt
# Dirsearch started Sun Apr 28 21:12:41 2024 as: dirsearch.py -r -u https://rdp.zznode.com
301 162B https://rdp.zznode.com/js -> REDIRECTS TO: http://rdp.zznode.com/js/
404 92B https://rdp.zznode.com/api/
401 99B https://rdp.zznode.com/api/api-docs
……此处省略……
此处执行了将近三个小时
命令参数
最基本:
python dirsearch.py -u URL
后面选项:
-h, --help 显示此帮助消息并退出
Mandatory:
-u URL, --url=URL URL目标
-L URLLIST, --url-list=URLLIST
URL列表目标
-e EXTENSIONS, --extensions=EXTENSIONS
以逗号分隔的扩展列表(示例:php、asp)
-E, --extensions-list
使用公共扩展的预定义列表
Dictionary Settings:
-w WORDLIST, --wordlist=WORDLIST
自定义单词表(用逗号分隔)
-l, --lowercase
-f, --force-extensions
强制扩展每个单词表条目(如DirBuster)
常规设置:
-s DELAY, --delay=DELAY
请求之间的延迟(浮点数)
-r, --recursive 递归暴力
-R RECURSIVE_LEVEL_MAX, --recursive-level-max=RECURSIVE_LEVEL_MAX
最大递归级别(子目录)(默认值:1[仅限根目录+1目录])
--suppress-empty, --suppress-empty
--scan-subdir=SCANSUBDIRS, --scan-subdirs=SCANSUBDIRS
扫描给定-u |--url的子目录(分开逗号)
--exclude-subdir=EXCLUDESUBDIRS, --exclude-subdirs=EXCLUDESUBDIRS
在递归过程中排除下列子目录扫描(用逗号分隔)
-t THREADSCOUNT, --threads=THREADSCOUNT
线程数
-x EXCLUDESTATUSCODES, --exclude-status=EXCLUDESTATUSCODES
排除状态代码,用逗号分隔(例如:301,500个)
--exclude-texts=EXCLUDETEXTS
用逗号分隔的文本排除响应(示例: "Not found", "Error")
--exclude-regexps=EXCLUDEREGEXPS
按regexp排除响应,用逗号分隔(示例: "Not foun[a-z]{1}", "^Error$")
-c COOKIE, --cookie=COOKIE
--ua=USERAGENT, --user-agent=USERAGENT
用户代理
-F, --follow-redirects
--遵循重定向
-H HEADERS, --header=HEADERS 页眉,--页眉=页眉
要添加的标题 (example: --header "Referer:
example.com" --header "User-Agent: IE"
--random-agents, --random-user-agents
随机代理,--随机用户代理
连接设置:
--timeout=TIMEOUT 连接超时
--ip=IP 将名称解析为IP地址
--proxy=HTTPPROXY, --http-proxy=HTTPPROXY
Http代理 (example: localhost:8080
--http-method=HTTPMETHOD
要使用的方法,默认值:GET,也可能是:HEAD;POST
--max-retries=MAXRETRIES
最大重试次数
-b, --request-by-hostname
默认情况下,dirsearch将通过IP请求速度。
这将强制按主机名请求
报告:
--simple-report=SIMPLEOUTPUTFILE 简单输出文件
只找到路径
--plain-text-report=PLAINTEXTOUTPUTFILE 纯文本输出文件
找到带有状态代码的路径
--json-report=JSONOUTPUTFILE JSON输出文件
扫描效率
命令执行示例,执行了将近三个小时
在使用dirsearch进行目录扫描工具时,默认的线程(或称为并发连接数)通常是X个线程,也就是说,dirsearch一次只会对X个目标发起扫描请求。如果你想要改变默认的线程数,可以在命令行中使用-t参数来指定。
python dirsearch.py -u http://example.com -t 10
扫描日志
// 流水线启动
[2024-04-29 12:33:49] Running
// 代码检出
[2024-04-29 12:33:56] Checking out
[2024-04-29 12:38:04] At revision 595211
// 代码编译阶段
[2024-04-29 12:38:19] + npm install
[2024-04-29 12:55:03] 构建成功.
// 制品打包阶段
[2024-04-29 12:55:16] + tar
[2024-04-29 12:55:19] + lftp
// 部署阶段
[2024-04-29 12:56:15] TASK [dev : 启动服务]
主要耗时阶段:
代码检出:4分钟左右
编译阶段:16分钟左右
总计22分钟,这两个阶段占用近20分钟。
异常排错
ModuleNotFoundError: No module named '_sqlite3'
ModuleNotFoundError: No module named '_ctypes'
// 依赖如下环境
yum install libffi-devel -y
yum install sqlite-devel
历史事件
2024-04-28|创建说明文档