首页 渗透工具 正文
  • 本文约3337字,阅读需17分钟
  • 231
  • 0

Dirscan

Dirscan 是一款由 go 编写的高并发的目录扫描器,现在已经支持基础扫描功能,后续努力实现更多功能;
大佬们勿喷,有什么建议或者 bug 可以提 issues 。
欢迎一起讨论,提供思路或者字典。
 

Corun项目成员: getin63 & goout2

新增功能变化:

[+] 新增反向递归扫描:

可反向对每级目录进行扫描;

./Dirscan -u http://xxx.xxx.xxx.xxx/aaa/bbb/ccc/ddd/eee -Ar
 

  • 已实现功能:
Version--> V1.5.2 :
1. 支持并发快速扫描,可设置线程,延迟时间;
2. 过滤状态码;
3. 设置字典;
4. 批量扫描;
5. 结果文件写入,只保存 20x、30x、403 的扫描结果;
6. 302 跳转结果显示;
7. 递归扫描,支持 GET/HEAD ;
8. 结果文件默认为 日期+url 命名;
9. 使用加载配置设置默认参数;
10. 状态码排除;
11. 随机UA头
12. 进度条显示
13. 代理支持
14. 扫描前验证存活
15. 指定类型扫描
16. 指定Cookie
17. 添加爬虫爬取页面url
18. 对扫描的结果进行综合判断,提高准确性
19, 进行随机代理
20,添加反向递归扫描
 
  • 计划实现:
1. 设置代理 ✔️
2. 设置忽略状态码  ✔️
3. 添加爬虫爬取页面url ✔️
4. 进度条显示 ✔️
5. 图形化显示
6. 随机UA头 ✔️
7. 反递归扫描✔️
 

0x02 编译

linux/mac: 
1. 终端翻墙,同步:go mod tidy
2. 一键编译4个版本的二进制文件,编译:make all 

windows: 
1. 终端翻墙,同步:go mod tidy
2. 编译:CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags="-s -w " -trimpath -o Dirscan.exe main.go
 

0x03 使用方式

3.1 扫描参数

  -Ar    进行反递归扫描
  -C    进行爬虫
  -Cs       进行每5秒检查网站存活,默认是开的
  -R string
        指定Get扫描还是Head扫描 (default "GET")
  -T int
        设置线程,默认30 (default 30)
  -c string
        设置Cookie,默认不加cookie (default "null")
  -ei string
        忽略指定状态码,示例:200,403,404,500或者200-400 (default "404")
  -f string
        指定目录字典 (default "./dic/dicc.txt")
  -i string
        筛选指定状态码,示例:200,403,404,500或者200-400 (default "100-403,405-599")
  -m string
        根据指定类型进行扫描,可设置php,asp,aspx,jsp
  -o string
        保存扫描结果,默认输出日期+地址
  -p string
        proxy,可设置http代理或socks5代理,socks5://admin:[email protected]:1080
  -pf string
        指定Proxy列表,进行随机切换
  -r    进行递归扫描
  -t int
        设置延时时间,默认5s (default 5)
  -u string
        指定url
  -uf string
        指定url列表
 

3.2 参数详解

GET 扫描:

./Dirscan -u http://xxx.xxx.xxx.xxx 
默认以 日期+url 进行结果记录的文件名。
 

HEAD 扫描:

./Dirscan -u http://xxx.xxx.xxx.xxx -R HEAD
 

筛选状态码:

./Dirscan -u http://xxx.xxx.xxx.xxx -i 200,302
筛选状态码可支持单个/多个,和区间筛选,区间可为 -i 200-302
 

递归扫描:

./Dirscan -u http://xxx.xxx.xxx.xxx -r -i 200 
默认对状态码200、301、302、403的目录进行递归扫描。
 

线程控制:

默认 30 线程,5 秒延迟
./Dirscan -u http://xxx.xxx.xxx.xxx -T 100 -t 10
 

状态码排除

使用 -ei 301-401,404 可排除状态码显示。
 

代理设置

http代理:
./Dirscan -u http://xxx.xxx.xxx.xxx -p http://127.0.0.1:8080

socks5代理:
./Dirscan -u http://xxx.xxx.xxx.xxx -p socks5://127.0.0.1:7891
./Dirscan -u http://xxx.xxx.xxx.xxx -p socks5://admin:[email protected]:1080
 

指定类型扫描

./Dirscan -u http://xxx.xxx.xxx.xxx -m php
可指定类型进行扫描,会将字典中的可变字典转换为指定类型的字典。
 

字典选择:

./Dirscan -u http://xxx.xxx.xxx.xxx -f ./dic/php.txt
 

默认配置加载

可更改 ./default/default.ini 文件中的默认配置信息,以改变默认设置。
 

爬虫:

爬虫爬取页面url(原本想爬取的url进行递归扫描。但是发现爬取的url可能会很多,所以只增加单独的爬取功能,可以自行对爬取的url进行二次扫描)

./Dirscan -u http://xxx.xxx.xxx.xxx -C
 

随机切换代理:

每隔2秒随机切换代理,可用于绕过waf或封ip。

./Dirscan -u  http://xxxxxxxxxxxxxxxxxxx -pf ./proxy.txt -T 5
使用代理时,线程最好不要太高
 

不进行随机代理切换时,每隔5秒验证目标存活,第一时间发现存在waf或网站访问不通。

可使用-Cs关闭探存活功能:
./Dirscan -u  http://xxxxxxxxxxxxxxxxxxx -Cs

 

反向递归扫描

可反向对每级目录进行扫描;

./Dirscan -u http://xxx.xxx.xxx.xxx/aaa/bbb/ccc/ddd/eee -Ar

 

0x04 更新记录:

  • [!] 2022.10.13 修复递归扫描时,302 与 200 时的字典重复扫描;
  • [!] 2022.10.18 修复没有默认配置文件时退出并生成默认配置文件;
  • [+] 2022.10.23 重构并发方式;
  • [+] 2022.10.24 新增扫描时随机UA头;
  • [+] 2022.10.25 新增进度条显示(windows,linux测试均可使用。);
  • [!] 2022.11.9 修复递归扫描已知问题
  • [+] 2022.11.9 重构http请求,使用原生net/http包;新增代理支持,支持http代理,socks5代理;
  • [+] 2022.11.9 新增扫描前探存活;
  • [+] 2022.11.10 新增指定类型扫描;
  • [+] 2022.11.14 新增指定Cookie;
  • [!] 2023.2.7 修复批量探测存活问题;
  • [!] 2023.2.7 修复扫描结果显示200结果的大小;
  • [!] 2023.3.1 修复批量探测存活显示错误问题;
  • [+] 2023.3.2 新增爬虫爬取页面url;
  • [+] 2023.3.8 新增对302页面的网站进行综合判断
  • [+] 2023.3.9 新增针对扫描结果的200,3xx,4xx,5xx页面进行状态码,长度,内容综合判断,排除无效的页面,不用在众多400,500中找200的结果,提高目录扫描准确性。
  • [!] 2023.3.9 修复HEAD扫描时,结果判断不生效。
  • [!] 2023.3.13 修复已知逻辑问题
  • [+] 2023.3.20 新增每隔2秒随机切换代理
  • [+] 2023.3.20 新增不进行随机代理切换时,每隔5秒验证目标存活
  • [!] 2023.3.21 修复已知bug
  • [+] 2023.6.26 新增反向递归扫描
  • [!] 2023.6.26 新增探存活开关
  • [!] 2023.8.13 修复递归扫描已知bug

0x05 声明:

  • 本工具仅用于个人安全研究学习。由于传播、利用本工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,工具作者不为此承担任何责任。

  •  
温馨提示:本文最后更新于2024年1月20日 11:46,若内容或图片失效,请在下方留言或联系博主。
评论
更换验证码