【网络安全 | 渗透工具/信息收集/域名爆破】SubDomainsBrute安装及使用详析

SubDomainsBrute是一个子域名爆破工具,该工具使用字典暴力破解的方式来尝试各种可能的子域名,并通过DNS解析来确定是否存在有效的子域名。它还支持通配符测试和HTTPS证书获取功能,可以提供更全面和准确的结果。

本文对SubDomainsBrute安装及使用进行讲解。

安装

SubDomainsBrute可在Kali及Windosw中运行。

Kali

以root权限依次运行以下命令即可:

git clone https://github.com/lijiejie/subDomainsBrute.git
cd subDomainsBrute
pip install dnspython gevent

Windows

下载地址:

https://github.com/lijiejie/subDomainsBrute

下载后解压到Python根目录:

在这里插入图片描述
接着在该目录打开cmd,执行以下语句即可:

pip install dnspython gevent

若回显如下说明网络不稳定:

在这里插入图片描述

切换为镜像源即可:

pip install dnspython gevent -i https://mirrors.aliyun.com/pypi/simple/

在这里插入图片描述

输入以下语句,若出现下图回显则说明安装成功:

SubDomainsBrute -version

在这里插入图片描述

如果出现的回显如下,说明存在一个模块未安装,使用pip安装即可:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple async-timeout

在这里插入图片描述

使用教程

1、命令行参数

D:\Security\Python3\subDomainsBrute>python subDomainsBrute.py -h

Options:
–version 显示程序的版本号并退出
-h, --help 显示帮助信息并退出
-f FILE 指定包含以换行分隔的子域名列表的文件,默认为subnames.txt。
–full 全面扫描模式,将使用subnames_full.txt来进行爆破。
-i, --ignore-intranet 忽略指向私有IP的域名。
-w, --wildcard 在通配符测试失败后强制进行扫描。
-t THREADS, --threads=THREADS 指定扫描线程数,默认为500。
-p PROCESS, --process=PROCESS 指定扫描进程数,默认为6。

–no-https 禁用从HTTPS证书获取域名的功能,这可以节省一些时间。
-o OUTPUT, --output=OUTPUT 指定输出文件名,默认为{target}.txt。

基础POC:

python subDomainsBrute.py 目标IP

2、实战

1)创建50个线程访问百度,将结果保存到baidu.txt,放置于当前目录下:

python subDomainsBrute.py -t 50 baidu.com -o baidu.txt

在这里插入图片描述
扫描结果如下:

在这里插入图片描述
2)创建45个线程访问www.runoob.com,并将扫描结果保存到桌面的runoob.txt中:

python subDomainsBrute.py -t 45 www.runoob.com -o C:\Users\86177\Desktop\runoob.txt

扫描结果如下,显示没有输出:

在这里插入图片描述

这是由于工具的爆破原理为子域名拼接,如将active拼接到我们输入的URL前,所以www.runoob.com只能得到active.www.runoob.com,所以正确的输入应该为runoob.com。

3)承接2,创建60个线程、5个进程访问runoob.com,并指定字典ice.txt,将扫描结果保存到桌面的test.txt中

字典的默认放置路径如下:

在这里插入图片描述

python subDomainsBrute.py -t 45 -p 5 runoob.com -f ice.txt -o C:\Users\86177\Desktop\test.txt

结果如下:

在这里插入图片描述

4)创建70个线程、4个进程访问runoob.com,并指定特殊路径的字典ice.txt,将扫描结果保存到桌面的ABC.txt中

python subDomainsBrute.py -t 45 -p 5 runoob.com -f C:\Users\86177\Desktop\ice.txt -o C:\Users\86177\Desktop\ABC.txt

结果如下:

在这里插入图片描述

5)全扫描模式:

 python subDomainsBrute.py -t 45 -p 5 runoob.com --full -o C:\Users\86177\Desktop\D.txt

由于使用最全的字典subnames_full.txt进行爆破,所以需要更多时间等待:

在这里插入图片描述

Ctrl+C可退出扫描,此时仅得到两个子域名:

在这里插入图片描述

6)禁用从HTTPS证书获取域名的功能:

python subDomainsBrute.py -t 360 -p 3 runoob.com --no-https -o C:\Users\86177\Desktop\A.txt

在这里插入图片描述

结果如下:

在这里插入图片描述

  • 24
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
在Java中,@RequestBody和@RequestParam是用于处理HTTP请求参数的注解。它们之间有一些区别,下面详细解析一下: 1. @RequestBody注解用于获取请求体中的参数,并将其绑定到方法的参数上。通常用于处理POST请求中的表单数据或者JSON数据。当使用@RequestBody注解时,Spring框架会自动将请求体中的数据转换为方法参数所需的对象。例如: ```java @PostMapping("/user") public void addUser(@RequestBody User user) { // 处理user对象 } ``` 在上面的例子中,@RequestBody注解将请求体中的数据转换为User对象,并将其绑定到addUser方法的参数上。 2. @RequestParam注解用于获取URL中的请求参数,并将其绑定到方法的参数上。通常用于处理GET请求或者POST请求中的URL参数。当使用@RequestParam注解时,Spring框架会自动从URL中提取指定名称的参数,并将其转换为方法参数所需的类型。例如: ```java @GetMapping("/user") public void getUser(@RequestParam("id") int userId) { // 处理userId参数 } ``` 在上面的例子中,@RequestParam注解将URL中名为"id"的参数提取出来,并将其转换为int类型,并将其绑定到getUser方法的参数userId上。 总结起来,@RequestBody注解用于获取请求体中的参数,适用于处理POST请求中的表单数据或者JSON数据。而@RequestParam注解用于获取URL中的请求参数,适用于处理GET请求或者POST请求中的URL参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏,祝你平安喜乐。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值