子域名发现:是看 DNS 还是主机头?

在渗透测试中,子域名发现是一项基础且重要的任务,常见的两种方法分别基于 DNS(域名系统)主机头(Host Header)。在真实环境中,我们通常依赖 DNS 查询或爆破技术来发现目标的子域名。然而,在打靶机环境中,这种方法可能不适用,更多情况下需要依赖主机头爆破(如使用 gobuster vhost)来进行子域名发现。本文将深入解析两种方法的区别,并阐明在打靶机场景下选择 gobuster vhost 的原因和使用技巧。


一、通过 DNS 发现子域名

1. 方法原理

DNS 是负责将域名与 IP 地址映射的系统。通过 DNS 查询,可以获取目标域的子域名信息。主要方法包括:

DNS 枚举
  • 查询 DNS 服务器的记录以获取子域名。
  • 目标记录类型包括:
    • SOA(起始授权机构)记录:提供域名的基本信息。
    • NS(域名服务器)记录:列出负责解析该域的 DNS 服务器。
    • MX(邮件交换)记录:与邮件服务相关的子域。
    • AXFR(区域传输):从 DNS 服务器复制整个域的 DNS 区域文件(需权限)。
DNS 爆破
  • 利用字典攻击尝试常见的子域名前缀,如 wwwmailftp 等。

2. 使用的协议与端口

  • 协议:DNS 协议。
  • 端口
    • 默认使用 UDP 的 53 端口。
    • 在某些情况下也可以使用 TCP 的 53 端口(如 AXFR 请求)。

3. 优势与劣势

  • 优点
    • 能发现公开的子域名以及配置不当导致泄露的子域。
    • 不依赖目标 IP 地址,适用于广泛的网络环境。
  • 缺点
    • 如果目标服务器没有开放 53 端口,DNS 爆破将无法进行。
    • 需要强大的字典支持,容易漏掉非标准化的子域名。

二、通过主机头发现子域名

1. 方法原理

主机头是 HTTP 请求中的一部分,服务器根据 Host 头内容返回不同的资源。因此,通过修改 Host 头可以探索服务器是否支持其他子域名。常用方法包括:

基于响应内容的变化
  • 发送 HTTP 请求到目标服务器的 IP 地址。
  • 修改 Host 头为不同的子域名,观察服务器响应内容是否有显著差异。
基于错误信息
  • 某些服务器会在 Host 头不匹配时返回特定的错误信息。
  • 分析这些错误信息,可以推断潜在的子域名。

2. 使用的协议与端口

  • 协议:HTTP/HTTPS 协议。
  • 端口
    • HTTP 使用 TCP 的 80 端口。
    • HTTPS 使用 TCP 的 443 端口。

3. 优势与劣势

  • 优点
    • 适用于没有公开 DNS 记录的内部子域名发现。
    • 能检测到实际运行在目标服务器上的虚拟主机。
  • 缺点
    • 依赖于目标服务器的 IP 和具体的配置。
    • 如果服务器配置严格且无错误信息泄露,效果会受限。

三、两种子域名发现方法的对比

特性DNS 爆破主机头爆破
使用协议DNS 协议HTTP/HTTPS 协议
依赖端口UDP/TCP 53 端口TCP 80/443 端口
适用场景公开域名或企业配置的 DNS 系统没有 DNS 服务的靶机或隐藏子域的虚拟主机
原理通过字典枚举常见子域名并查询 DNS 解析记录修改 HTTP 请求的 Host 头以发现虚拟主机配置
工具gobuster dnsdnsrecongobuster vhost
优劣势优点:适用公开子域,支持更多记录类型
缺点:依赖 DNS 服务
优点:适用隐藏子域,不依赖 DNS
缺点:需目标服务支持 HTTP

四、gobuster vhost 的工作原理与使用方法

1. 工作原理

gobuster vhost 是基于 HTTP/HTTPS 协议的主机头爆破工具:

  • 它向目标服务器的 IP 地址发送 HTTP 请求。
  • 在请求中动态修改 Host 头的值,尝试不同的子域名。
  • 根据服务器的响应判断是否存在该子域名(例如响应内容不同或状态码变化)。

2. 常用参数与示例

以下命令演示了如何使用 gobuster vhost

sudo gobuster vhost -u http://10.129.25.171 --domain crafty.htb \-w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-110000.txt \--append-domain -k -r -t 100
参数详解:
  • -u:目标 URL,通常使用 IP 地址。
  • --domain:目标域名,将被附加到字典中的前缀。
  • -w:字典路径,用于爆破子域。
  • --append-domain:自动将域名附加到子域前缀。否则,完整限定域名需要在单词列表中指定。
  • -k:忽略 SSL/TLS 证书验证错误。
  • -r:追踪重定向。
  • -t:线程数,用于加快测试速度。

五、使用中的注意事项

  1. 靶机 IP 的正确性
    确保目标服务器的 IP 地址是可访问的,可以使用 pingcurl 测试连接性。

  2. 字典选择
    使用适合的字典至关重要。推荐使用 Seclists 提供的子域名列表,如:

    /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-110000.txt
    
  3. 观察 HTTP 响应
    通过分析不同子域的响应内容,可能发现隐藏服务、敏感页面或其他线索。


六、总结

在靶场中,由于环境的隔离性和配置的简化,传统 DNS 爆破往往无法发挥作用。这种情况下,主机头爆破工具(如 gobuster vhost)成为发现子域的首选方法。通过主机头测试,能够高效发现虚拟主机配置的子域名,为后续的渗透测试打下坚实的基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/35159.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Python和Java后端开发技术对比

在当今互联网技术飞速发展的时代,后端开发扮演着至关重要的角色。Python和Java作为两大主流的后端开发语言,各自具备独特的优势和应用场景。让我们深入了解这两种技术的特点和选择建议。 Java后端开发一直是企业级应用的首选方案。它以强大的类型系统、…

Java HashMap

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。 HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。 HashMap 是无序的&#x…

模型案例:| 帐篷检测模型!

导读 2023年以ChatGPT为代表的大语言模型横空出世,它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力,为人工智能技术的发展开辟了新的可能性。同时,人工智能技术正在进入各种应用领…

实验日志——DETR

DETR训练日志 1. 代码来源 代码源自作者的Github: https://github.com/facebookresearch/detr?tabreadme-ov-file 2. 数据来源 在DETR中只使用了COCO2017数据集,其中训练集有118288张图像,验证集有5001张数据,测试集有40671张数据&#…

18、IO流:

18、IO流: 这一章很枯燥无聊~ 文件: 什么是文件: 文件,对我们并不陌生,文件时保存数据的地方,比如我们经常使用的word文档,txt文档,excel文档…都是文件。它既可以保存一张图片&…

24.两两交换链表中的节点 python

两两交换链表中的节点 题目题目描述示例 1:示例 2:示例 3:提示:题目链接 题解解题思路python实现代码解读提交结果 题目 题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须…

解决 git 报错 “fatal: unable to access ‘https://github.com/.../.git‘: Recv failure Connection was rese

目录 前言 方法一:取消代理设置 方法二:设置系统代理(推荐) 方法三 方法四:不挂梯子时 前言 在使用 Git/Git小乌龟 进行代码管理的过程中,经常会遇到各种各样的问题,其中之一就是在执行 g…

推荐8款自动化软件测试必备工具

在现代软件测试开发领域,自动化测试工具的使用已经变得至关重要。 这些工具不仅提高了测试效率,还确保了软件质量和稳定性。 本文将向您介绍8款自动化软件测试必备工具,它们涵盖了各个层面的测试需求,从而助力测试团队更好地应对…

MySQL聚合函数查询

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

Vue3 完结

组合式API - setup选项 组合式API可理解为一系列函数,通常需要调用这些函数去编写将来的组件逻辑; 而setup为组合式API的入口(只有先写了setup才能往里写组合式API的函数) setup选项的写法及执行时机 执行时机在beforeCreate之前…

简洁的移动端登录注册界面

非常简洁的登录、注册界面模板&#xff0c;使用uni-app编写&#xff0c;直接复制粘贴即可&#xff0c;无任何引用&#xff0c;全部公开。 废话不多说&#xff0c;代码如下&#xff1a; login.vue文件 <template><view class"content"><view class&quo…

2024NIPS | 在目标引导下利用强化学习范式进行图像冲印调优

文章标题&#xff1a;Goal Conditioned Reinforcement Learning for Photo Finishing Tuning 原文链接&#xff1a;RLPixTuner 本文是上海AI Lab联合香港中文大学&#xff08;薛天帆等人&#xff09;发表在2024NIPS上的论文。 1. Abstract 图像冲印调优旨在自动化对图像冲印管…

【Spring】Cookie与Session

一、Cookie是什么&#xff1f; Cookie的存在主要是为了解决HTTP协议的无状态性问题&#xff0c;即协议本身无法记住用户之前的操作。 “状态” 的含义指的是: 默认情况下 HTTP 协议的客端和服务器之间的这次通信&#xff0c;和下次通信之间没有直接的联系 但是实际开发中&…

【最新】linux安装docker并配置加速源

我这边之前本地创建了个虚拟机&#xff0c;linux系统的&#xff0c;用于部署服务器。有时安装一些常用工具或者中间件&#xff0c;还是用docker安装方便&#xff0c;而且docker还有编排服务等功能&#xff0c;实际使用中还是会省不少事的&#xff0c;这里记录下安装docker的过程…

SpringBoot动态配置Nacos

重要知识点 Nacos属性的简单使用将SpringBoot中的所有配置全部放入到Nacos中开发人创建单独的命名空间,修改互不影响Nacos经常变动的配置抽离到外部文件中 将项目中的所有配置全部放到到 1. 首先引入包 <!-- nacos 接入--><!-- https://mvnrepository.com/artifact…

【每天一篇深度学习论文】轻量化自适应提取模块LAE

目录 论文介绍题目&#xff1a;论文地址&#xff1a; 创新点方法模型总体架构核心模块描述1. 轻量级自适应提取&#xff08;LAE&#xff09;模块&#xff1a;2. 多路径旁路特征匹配&#xff08;MSFM&#xff09;模块&#xff1a;3. RFABlock&#xff08;感受野注意力卷积&#…

Linux中文件操作

文件由文件内容和文件属性构成&#xff0c;因此对文件的操作就是对文件内容或文件属性的操作。所谓的“打开一个文件”就是将文件的属性或内容加载到内存中&#xff0c;而没有被打开的文件存在于磁盘上。打开的文件称作“内存文件”&#xff0c;未被打开的文件称作“磁盘文件”…

hhdb数据库介绍(10-42)

安全 SQL防火墙 管理平台提供的SQL防火墙功能可为用户拦截高危SQL、误操作SQL等&#xff0c;提升系统安全性。 同时防火墙提供观测功能&#xff0c;可在开启新规则前&#xff0c;通过开启观测状态&#xff0c;判断新规则对业务的影响程度。开启观测状态后&#xff0c;计算节…

白嫖VMware ESXi 8.0 U3新功能Live Patch、无需重启零中断修复漏洞

哈喽大家好&#xff0c;欢迎来到虚拟化时代君&#xff08;XNHCYL&#xff09;&#xff0c;收不到通知请将我点击星标&#xff01;“ 大家好&#xff0c;我是虚拟化时代君&#xff0c;一位潜心于互联网的技术宅男。这里每天为你分享各种你感兴趣的技术、教程、软件、资源、福利…

JavaSE学习心得(API与算法篇)

常用API和常见算法 前言 常用API Math System Runtime Object ​编辑浅克隆 深克隆 Objects Biginteger 构造方法 成员方法 底层存储方式 Bigdecimal 构造方法 Bigdecimal的使用 底层存储方式 ​编辑正则表达式 两个判断练习 两个爬取练习 贪婪爬取和非贪…