一、DNS解析详细步骤。
- 本地缓存查找:客户端(通常是浏览器或应用程序)会先检查本地缓存(如浏览器缓存、操作系统缓存)中是否存在该域名的记录。
- 如果缓存中有有效的记录,那么解析过程结束,客户端直接使用缓存中的 IP 地址。
- 本地 DNS 服务器查询:
- 如果本地缓存中没有记录,客户端会向其配置的本地 DNS 服务器发送查询请求。
- 本地 DNS 服务器也会先检查自己的缓存。若在缓存中找到了对应的记录,它会直接返回给客户端。
- 递归或迭代查询:
- 递归查询:本地 DNS 服务器负责执行完整的查询过程,直到找到正确的 IP 地址,然后将结果返回给客户端。
- 迭代查询:本地 DNS 服务器向根 DNS 服务器发起查询,根 DNS 服务器不会直接给出 IP 地址,而是返回下一个应该查询的权威 DNS 服务器的信息。本地 DNS 服务器继续向这些权威服务器查询,直到找到正确的 IP 地址。
- 权威 DNS 服务器查询:经过一系列的递归或迭代查询,最终会到达权威 DNS 服务器,这是管理特定域名的服务器,它拥有最准确的记录,会返回具体的 IP 地址给上一级的 DNS 服务器。
- 结果返回与缓存:一旦 IP 地址被找到,它会沿着查询链路反向返回,直到达到客户端。沿途的 DNS 服务器会将这个结果缓存起来,这样未来的相同查询就可以更快地得到响应。
- 客户端使用 IP 地址:最终,客户端接收到 IP 地址后,可使用这个地址发起 TCP/IP 连接,从而访问目标网站或服务。
二、绕过CDN查找主机真实IP的方法。
- 查询域名历史解析记录:
- 原理:域名在使用 CDN 之前的解析记录可能会保留,通过查询这些历史记录,有可能找到网站未使用 CDN 时的真实 IP 地址。
- 相关网站:ViewDNS.info(https://viewdns.info/iphistory/ )、微步在线(微步在线X情报社区-威胁情报查询_威胁分析平台_开放社区 )、DNSDB.io(https://dnsdb.io/zh-cn/ )、域名查询(ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名 )、DNS 历史查询(https://securitytrails.com/ )等。
- 查找子域名:
- 原理:有时候主站使用了 CDN,但一些子域名可能没有配置 CDN,或者子域名与主站在同一个 C 段内,通过查找子域名对应的 IP,可以辅助查找网站的真实 IP。
- 方法和工具:
- 搜索引擎查询:如 Google、百度、Bing 等,使用语法如
site:http://baidu.com inurl:http://baidu.com
或搜target.com|公司名字
等。 - 在线查询工具:如
http://tool.chinaz.com/subdomain/
、http://i.links.cn/subdomain/
、http://subdomain.chaxun.la/
、http://searchdns.netcraft.com/
、https://www.virustotal.com/
等。 - 子域名爆破工具:layer 子域名挖掘机、wydomain(GitHub - ring04h/wydomain: to discover subdomains of your target domain)、subdomainsbrute(https://github.com/lijiejie/sublist3r)、sublist3r(GitHub - aboul3la/Sublist3r: Fast subdomains enumeration tool for penetration testers)等。
- 搜索引擎查询:如 Google、百度、Bing 等,使用语法如
- 查看网站邮件头信息:
- 原理:在邮箱注册、找回密码、RSS 邮件订阅等功能场景中,网站给自己发送邮件时,邮件头信息中可能会包含网站的真实 IP 地址。
- 步骤:进行相关操作获取邮件,查看邮件头中的 “X-Originating-IP” 等字段显示的 IP 地址。但如果 Web 跟 Email 属不同服务器,通过邮件得到的可能只是邮件服务器的 IP 地址。
三、子域名信息收集常用手段。
- 使用专业的子域名查询网站,如:
http://tool.chinaz.com/subdomain/
:输入目标域名后,该工具会尝试通过网络爬虫和数据库搜索相关子域名信息。http://i.links.cn/subdomain/
:提供子域名查询服务,可以快速列出与目标域名相关的子域名。http://subdomain.chaxun.la/
:能够扫描并发现目标域名下的子域名,具有一定的准确性和效率。
- 网络安全信息查询平台,例如:
https://www.virustotal.com/
:不仅可以用于分析文件和 URL 的安全性,还可以提供与目标域名相关的子域名信息,通过其关联分析和用户提交的数据来查找子域名线索。
四、Nmap全端口扫描(使用昨日搭建的pikachu靶场),加分项:能够说明SYN半开扫描的原理和跳过主机存活检测扫描使用常见。
SYN 半开扫描过程
- 扫描者(通常是攻击者或安全测试人员)向目标主机的特定端口发送一个 SYN 包。
- 这个 SYN 包就像是在敲门,询问目标端口是否愿意建立连接。
- 目标主机接收到 SYN 包后:
- 如果目标端口开放,目标主机会回复一个 SYN/ACK 包。
- 如果目标端口关闭,目标主机会回复一个 RST(复位)包。
- 扫描者根据收到的回复判断端口状态:
- 若收到 SYN/ACK 包,则可以推断该端口开放。
- 若收到 RST 包,则该端口关闭。
- 扫描者不会回复 ACK 包完成三次握手,而是直接中断连接。
- 这就是 “半开” 的含义,因为连接没有完全建立,只是进行了一半。
半开扫描优势
- 相对隐蔽:
- 由于没有完成完整的三次握手,被扫描的目标主机上不会建立完整的连接记录,相对全连接扫描(完成三次握手)更加隐蔽,不容易被轻易察觉。
- 高效性:
- 可以快速扫描多个端口,因为不需要进行完整的连接建立和断开过程,节省了时间和资源。
五、dirmap目录探测工具实践(使用昨日搭建的pikachu靶场),要求讲述为什么dirmap每次扫描条数不一样,加分项:dirmap高级应用,详细见项目文档,项目链接:https://github.com/H4ckForJob/dirmap
高级应用:
一、定制化扫描策略
- 深度定制扫描规则:
- 根据目标的特点,编写详细的自定义字典。例如对于一个电商网站,可以专门创建包含常见电商平台管理路径关键词如 “product_manage”“order_process” 等的字典文件,提高对关键业务路径的探测命中率。
- 利用正则表达式来精确匹配特定格式的路径。比如针对可能存在的用户 ID 部分的路径,可以设置正则表达式如 “/user/\d+” 来尝试发现与用户相关的各类隐藏或动态生成的路径。
- 分阶段扫描:
- 初始阶段进行广度优先的快速扫描,使用常见的基础字典对目标的常见路径和目录进行探测,快速了解目标的大致结构。
- 随后根据第一阶段的结果,针对发现的特定模块或疑似关键区域进行深度扫描。例如,如果发现了一个名为 “admin” 的疑似管理后台入口目录,再使用包含更多管理后台相关关键词的字典对该目录及其子目录进行深入挖掘。
二、与其他工具集成
- 与漏洞扫描工具联动:
- 将 dirmap 的扫描结果作为输入提供给专业的漏洞扫描工具。例如,当 dirmap 发现了一个可能存在的未授权访问目录后,立即将该路径信息传递给漏洞扫描工具,让其针对该路径进行详细的漏洞检测,如常见的 SQL 注入、跨站脚本攻击(XSS)等漏洞的探测。
- 结合漏洞扫描工具的反馈,进一步优化 dirmap 的扫描策略。如果漏洞扫描工具在某个特定路径下发现了大量安全漏洞,那么 dirmap 可以围绕该路径的相关上下文进行更细致的扩展扫描,寻找可能存在的其他类似漏洞的路径。
- 与信息收集工具协同工作:
- 与网络爬虫工具配合使用,网络爬虫先对目标网站进行全面的页面抓取和分析,提取出页面中的链接、表单等信息,然后 dirmap 基于这些信息进行针对性的目录和文件扫描。例如,爬虫发现了一个带有参数的表单提交页面,dirmap 可以尝试通过修改参数值来探测是否存在参数注入漏洞或者是否能访问到其他隐藏的后台管理界面。
- 结合域名解析工具,在对一个目标进行扫描时,如果发现目标存在多个子域名或者相关联的域名,dirmap 可以同时对这些域名进行扫描,扩大扫描范围,全面了解目标的整个网络架构下的潜在安全风险。
三、数据分析与报告
- 结果分析与可视化:
- 对扫描结果进行详细的数据分析,统计不同类型路径的出现频率、响应状态码分布等。例如,通过绘制柱状图来直观展示不同状态码(如 200、403、404 等)对应的路径数量,帮助安全人员快速了解目标系统的响应情况和可能存在的安全隐患区域。
- 利用关联分析算法,分析扫描到的路径之间的关联性。比如,如果发现多个路径都包含相似的关键词或者具有类似的目录结构,可能暗示着这些路径属于同一个业务模块或者存在某种内在的逻辑联系,这有助于安全人员更好地理解目标系统的架构和业务流程。
- 生成详细报告:
- 报告中不仅包含扫描到的路径列表,还应提供详细的分析结论和建议。对于每一个发现的疑似安全风险路径,在报告中注明可能存在的风险类型(如未授权访问、信息泄露等)以及相应的证据和参考案例。例如,如果发现一个可以直接访问的包含敏感信息的文件路径,在报告中详细描述该文件可能包含的信息类型以及可能导致的后果,并提供类似案例中攻击者如何利用此类漏洞进行攻击的说明。
- 报告还应包括对目标系统整体安全状况的评估,根据扫描结果给出一个综合的安全评分或风险等级,以便管理人员能够快速了解目标系统的安全态势,并据此做出决策。
原因:
dirmap 每次扫描条数不一样可能有以下几个原因:
- 网络环境波动:网络的稳定性和速度时刻在变化。如果在扫描过程中网络出现卡顿、延迟甚至短暂中断,可能会影响数据的传输和接收,导致扫描进程受到干扰,进而使扫描到的条数不稳定。例如,网络延迟高时,可能导致部分请求超时,未能成功获取到相应的数据,从而使扫描到的条数减少。
- 目标系统状态变化:目标系统自身的负载、资源占用情况以及其内部的动态变化会影响扫描结果。比如目标系统在某些时段可能正在进行数据备份、系统更新等操作,这会占用系统资源,使得对外部扫描请求的响应能力下降,扫描到的条数也就相应减少。另外,如果目标系统采用了一些动态的防护机制,如在检测到频繁扫描时临时限制访问权限等,也会影响扫描的条数。
- 扫描参数设置差异:每次扫描时可能无意间更改了一些关键参数,如扫描的深度、广度、线程数等。不同的参数设置会直接影响到扫描的范围和效率。例如,增加扫描线程数可能会在短时间内增加扫描到的条数,但同时也可能因系统资源竞争导致不稳定,反而在某些情况下使实际扫描到的条数减少。
- 扫描时间差异:不同时间点进行扫描,目标系统中的数据和结构可能已经发生了变化。比如一些网站会定期更新内容、添加或删除页面,这就导致每次扫描时可发现的资源数量不同。而且一些动态生成的页面或数据,在不同时间可能会有不同的呈现方式和数量。