一. DNS解析详细步骤
我们首先要了解域名和IP地址的区别。IP地址是互联网上计算机唯一的逻辑地址,通过IP地址实现不同计算机之间的相互通信,每台联网计算机都需要通过IP地址来互相联系和分别。
但由于IP地址是由一串容易混淆的数字串构成,记忆困难,所以人们在IP地址的基础上又发展出了一种更易识别的符号化标识。这种符号化标识就是域名。
域名虽然更易被用户所接受和使用,但计算机只能识别纯数字构成的IP地址,不能直接读取域名。因此要想达到访问效果,就需要将域名翻译成IP地址。而DNS域名解析承担的就是这种翻译效果。
DNS解析的详细步骤可以归纳如下,这个过程主要涉及到用户、本地DNS服务器、根域名服务器、顶级域名服务器以及权威域名服务器之间的交互:
1. 用户发起请求:
当用户在浏览器中输入一个域名(如www.example.com)并尝试访问时,浏览器会首先检查本地缓存中是否已经存在该域名的解析记录。
2. 查询本地缓存:
接下来浏览器会查看自身的缓存(浏览器缓存)以及操作系统的缓存(如Windows的C:\Windows\System32\drivers\etc\hosts文件,Linux的/etc/hosts文件),看是否有该域名的IP地址记录。如果有,则直接使用该IP地址访问网站,解析过程结束。
3. 向本地DNS服务器发起请求:
如果本地缓存中没有找到对应的记录,浏览器会将域名解析的请求发送给本地网络中的DNS服务器(通常是由互联网服务提供商ISP提供的)。
4. 本地DNS服务器处理:
本地DNS服务器首先检查自己的缓存中是否有该域名的解析记录。 如果没有,本地DNS服务器会向上一级DNS服务器(如根域名服务器或顶级域名服务器)发起查询请求。
5. 查询根域名服务器:
如果本地DNS服务器无法解析该域名,它会向根域名服务器发起查询。根域名服务器是DNS系统的最顶层,它并不直接存储域名的IP地址,但会返回负责该顶级域名(如.com、.net等)的顶级域名服务器的地址。
6. 查询顶级域名服务器:
本地DNS服务器根据根域名服务器提供的信息,向相应的顶级域名服务器发起查询请求。顶级域名服务器会返回负责该具体域名(如example.com)的权威域名服务器的地址。
7. 查询权威域名服务器:
本地DNS服务器再向权威域名服务器发起查询请求。权威域名服务器存储着该域名对应的IP地址或其他记录类型,它会将查询结果返回给本地DNS服务器。
8. 返回解析结果并缓存:
本地DNS服务器将权威域名服务器提供的解析结果(IP地址)返回给用户的计算机。同时,本地DNS服务器也会将解析结果缓存起来,以便将来对同一域名的查询能够更快地响应。
9. 用户访问网站:
用户的计算机收到IP地址后,会使用该地址来建立与服务器的连接,从而访问目标网站。 需要注意的是,DNS解析的过程并非总是严格按照上述步骤进行,特别是在缓存命中的情况下,整个解析过程可能会非常迅速。此外,DNS系统还涉及到递归查询和迭代查询两种方式,但在大多数情况下,用户无需关心这些技术细节,因为DNS系统会自动完成这些工作。
二. 子域名信息收集常用手段
子域名信息收集是为了发现目标组织或网站的潜在漏洞和未公开资源,以下是一些常用的手段:
1. 搜索引擎查询
直接搜索:通过百度、谷歌等搜索引擎直接搜索目标组织的名称,通常可以找到其官网,进而获取主域名。
Site语法:使用搜索引擎的site:语法(如site:example.com)来限制搜索结果,从而获取目标域名的子域名信息。这种方法简单快捷,但可能无法覆盖所有子域名。
2. 官方备案网站查询
通过工信部ICP备案系统、chinaz等官方备案网站,输入主域名查询备案信息,获得域名所属公司名称。然后搜索该公司名称,以获取其所有注册域名,包括子域名。
3. 企业信息查询平台
利用天眼查、爱企查、企查查等企业信息查询平台,通过查看股权穿透图来查找子公司,并收集其子公司的域名。这种方法可以间接获取与目标组织相关的子域名信息。
4. Whois查询网站
使用Whois查询网站(如Whois.chinaz.com),通过同一公司的域名可能使用同一邮箱注册的信息进行反查,从而发现其他子域名。
5. 自动化工具与在线服务
子域名查询网站:如SecurityTrails、IP138、Chinaz、dnsscan.cn等,输入域名即可获取子域名列表。
威胁情报平台:如ThreatBook、VirusTotal、AlienVault OTX、RiskIQ、ThreatMiner等,这些平台提供了丰富的威胁情报数据,包括子域名信息。
自动化工具:如Subfinder、OneForAll、Layer子域名挖掘机等,这些工具通过多个API和字典枚举的方式自动化收集子域名,大大提高了收集效率。
6. DNS历史记录查询
使用如SecurityTrails、DNSdumpster.com、WhoisXML、PassiveTotal等服务,通过查询过去DNS解析记录的服务,可以查找目标组织过去使用过的子域名。这种方法有时能发现已被删除但仍解析到目标组织的子域名。
7. 爬虫技术
编写爬虫程序,爬取目标网站的所有页面、robots.txt文件、crossdomain.xml文件、sitemap文件等,从中筛选出子域名。这种方法需要一定的编程能力,但可以获取到较为全面的子域名信息。
8. 证书透明度查询
由于许多企业域名使用HTTPS协议,TLS证书中通常包含域名信息。因此,可以通过证书透明度查询网站(如crt.sh、Censys、SSLmate、Facebook CT等)来收集子域名。这种方法可以发现通过HTTPS协议保护的子域名。
9. 子域名爆破
使用如Sublist3r、Amass、Subfinder、Assetfinder等工具,通过字典或其他方法生成可能的子域名列表,并对列表中的每个子域名进行DNS解析以确定其是否存在。这种方法依赖于字典的强大性和准确性,适合进行深度挖掘。
三. 绕过CDN获取真实IP的方法
-
使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN。
-
查询历史DNS记录。
-
查询子域名。
-
利用SSL证书寻找真实原始IP。
-
利用HTTP标头寻找真实原始IP。
-
利用网站返回的内容寻找真实原始IP。
-
使用国外主机解析域名。
-
利用网站漏洞查找。
四. Nmap全端口扫描
1. nmap扫描
-
环境准备
确保nmap已下载,pikachu靶场正常访问。
-
打开命令行
win+R,输入cmd回车。
-
使用nmap进行全端口扫描
命令:nmap -p 1-1000 127.0.0.1
结果说明:
开放的端口:
80/tcp:HTTP服务端口,状态为开放。
135/tcp:Microsoft RPC服务端口,状态为开放。
445/tcp:Microsoft-DS(目录服务)端口,状态为开放。
903/tcp:ISS RealSecure服务端口,状态为开放。
913/tcp:APEX endpoint-relay服务端口,状态为开放。
关闭的端口: 在扫描的1-1000号端口范围内,除了上述开放的端口外,其余端口均为关闭状态
过滤的端口: 137/tcp:NetBIOS服务端口,当前处于被过滤或限制的状态。
2. 使用扫描工具Zenmap
Zenmap是一个开源的网络扫描器,它是Nmap的图形用户界面(GUI)版本。
3. 加分项:SYN半开扫描的原理
SYN半开扫描,也被称为TCP SYN扫描或半开放扫描,是一种网络扫描技术,其原理基于TCP(传输控制协议)三次握手过程中的前两步。以下是SYN半开扫描的详细原理:
基本原理
在TCP连接建立过程中,通常需要完成三次握手:
-
SYN(同步序列编号)包发送:客户端向服务器发送一个带有SYN标志的TCP数据包,并包含一个随机的初始序列号(ISN)。
-
SYN/ACK(同步/应答)包回复:服务器收到SYN包后,如果端口开放,则回复一个SYN/ACK包,其中包含对客户端SYN包的确认(ACK),并发送自己的初始序列号(ISN)。
-
ACK包确认:客户端收到SYN/ACK包后,发送一个ACK包进行确认,此时TCP连接建立完成。
SYN半开扫描则只完成前两步,即发送SYN包并接收SYN/ACK包(如果收到),但不发送第三步的ACK包。
工作流程
-
发送SYN包:扫描器向目标主机的某个端口发送一个SYN包,尝试建立连接。
-
接收响应:
-
如果目标端口开放,扫描器将收到一个SYN/ACK包作为响应。
-
如果目标端口关闭,扫描器将收到一个RST(重置)包作为响应,表示端口不可达。
-
如果目标主机存在但端口被防火墙等安全设备过滤,扫描器可能收不到任何响应。
-
-
判断端口状态:
-
收到SYN/ACK包:表明该端口开放。
-
收到RST包:表明该端口关闭。
-
未收到任何响应:可能表明该端口被防火墙等安全设备过滤。
-
优点:
-
速度快:由于不需要完成三次握手的全过程,SYN半开扫描可以快速地扫描大量端口。
-
隐蔽性:由于不建立完整的TCP连接,SYN半开扫描可能更难被目标主机或网络设备检测到。
缺点:
-
可能引发防火墙警告:一些防火墙或入侵检测系统可能会将大量的SYN包视为潜在的攻击行为,并触发警告或阻断措施。
-
准确性受限:在某些情况下,如目标主机存在防火墙或复杂的网络配置时,SYN半开扫描的准确性可能受到影响。
4. 跳过主机存活检测扫描的使用场景
1. 已知目标主机存活
-
已知活跃状态:当您已经通过其他方式(如直接的网络连接、管理界面或先前的扫描结果)确认目标主机处于活跃状态时,可以跳过主机存活检测,直接进行端口扫描、服务探测等后续操作。
2. 提高扫描效率
-
减少时间消耗:主机存活检测(如Ping扫描)会消耗一定的时间,尤其是在大规模扫描时。如果时间紧迫或希望快速获取扫描结果,可以跳过此步骤。
-
避免网络延迟:在网络条件不佳或目标主机响应较慢的情况下,跳过主机存活检测可以减少扫描过程中的延迟,加快扫描速度。
3. 绕过网络限制
-
避免被检测:在某些情况下,目标网络可能配置了防火墙或入侵检测系统(IDS/IPS),对Ping等探测包进行过滤或记录。跳过主机存活检测可以降低被检测到的风险,使得扫描过程更加隐蔽。
-
应对特定安全策略:某些安全策略可能限制了对Ping请求的响应,导致正常的主机存活检测无法成功。此时,跳过此步骤并直接进行端口扫描可能是唯一的选择。
4. 自动化脚本和批量扫描
-
脚本化操作:在自动化脚本和批量扫描任务中,为了提高效率和简化流程,通常会跳过不必要的主机存活检测步骤。
-
大规模网络环境:在大型企业网络、数据中心或云环境中,由于目标主机数量众多且分布广泛,跳过主机存活检测可以显著减少扫描时间和资源消耗。
使用方法
在Nmap中,可以使用-Pn
参数来跳过主机存活检测。例如:
nmap -Pn -p 80,443 target.example.com
这条命令会跳过对target.example.com
的主机存活检测,直接扫描其80和443端口。
五. dirmap目录探测工具实践(使用pikachu靶场)
1. 扫描命令和结果
在dirmap目录下使用命令:python dirmap.py -i http://127.0.0.1/ -lcf,探测指定网址
扫描结果:
2. 为什么dirmap每次扫描条数不一样
Dirmap每次扫描条数不一样的原因可能涉及多个方面,以下是一些可能的原因分析:
1. 扫描配置的差异
Dirmap作为一个高级web目录和文件扫描工具,支持高度的自定义配置。不同的扫描配置,如扫描模式(字典模式、爆破模式、爬虫模式、Fuzz模式等)、字典文件的选择、扫描线程数、递归深度等,都会直接影响扫描的结果和条数。因此,如果在不同的扫描任务中使用了不同的配置,那么扫描条数自然会有所不同。
2. 目标网站的变化
目标网站本身的内容、结构或安全措施可能会随时间发生变化。例如,网站可能更新了目录结构、添加了新的文件或删除了旧的文件,这些都可能导致Dirmap在扫描时发现的条数发生变化。此外,网站的安全策略也可能影响扫描结果,如增加了对扫描请求的过滤或限制。
3. 网络环境的影响
网络环境的不稳定性也可能导致扫描条数的变化。例如,网络延迟、丢包或目标网站的服务器响应速度等因素都可能影响扫描的准确性和效率。在某些情况下,这些因素可能导致Dirmap无法完全扫描目标网站的所有内容,从而导致扫描条数减少。
4. Dirmap的更新和改进
Dirmap作为一个不断发展和更新的工具,其内部算法和机制可能会随着版本的更新而发生变化。这些变化可能包括改进扫描效率、增加新的扫描模式或优化对特定类型网站的扫描能力等。因此,不同版本的Dirmap在扫描同一目标网站时,可能会产生不同的扫描条数。
5. 其他因素
除了以上几点外,还有一些其他因素也可能影响Dirmap的扫描条数,如扫描任务的优先级、系统资源的占用情况、扫描任务的并发数等。这些因素虽然不是主要原因,但在某些特定情况下也可能对扫描结果产生影响。
3. 加分项:dirmap高级应用
Dirmap作为一款高级Web目录扫描工具,其高级应用主要体现在以下几个方面:
1. 高度可定制性和并发处理能力
-
多模式支持:Dirmap支持字典模式、爆破模式、爬虫模式和Fuzz模式等多种扫描模式,可以根据不同的扫描需求选择合适的模式进行扫描。
-
并发扫描:Dirmap支持多目标和多payload的并发扫描,能够显著提高扫描效率。这种并发处理能力使得Dirmap在处理大规模扫描任务时更加高效。
2. 丰富的配置选项
-
自定义请求:Dirmap允许用户自定义请求头、User-Agent、请求延时、请求超时时间等,以满足特定的扫描需求。
-
自定义响应处理:用户可以自定义响应状态码的处理逻辑,例如自定义要处理的响应状态码、自定义正则表达式匹配假性404页面等。
-
递归扫描:Dirmap支持递归扫描,能够自动递归扫描发现的目录,深入挖掘隐藏内容。用户还可以自定义需要递归扫描的状态码。
3. 强大的自定义字典和爆破功能
-
字典扫描:Dirmap支持使用自定义字典进行扫描,用户可以将自己的字典文件放入指定目录,并在配置文件中指定字典路径。
-
爆破功能:除了字典扫描外,Dirmap还支持爆破模式,用户可以自定义字符集进行爆破扫描,以发现潜在的隐藏目录或文件。
4. 自动化和集成能力
-
自动化扫描:Dirmap提供了命令行界面和API接口,可以轻松地与自动化框架(如Ansible)或CI/CD管道(如Jenkins或GitLab CI)集成,实现自动化扫描和测试。
-
结果去重和保存:Dirmap能够自动去除重复结果,确保输出结果的准确性和可用性。扫描结果将自动保存在指定目录下,每个目标生成一个独立的文件,便于后续分析和处理。
5. 深入分析和理解网站结构
-
目录概览:Dirmap通过从每个目录的Markdown或源代码中提取部分内容,作为该目录概览,极大地方便了对网站结构的理解与分析。
-
结合其他工具:Dirmap可以与其他安全工具(如漏洞扫描器、Web应用防火墙等)结合使用,形成更全面的安全测试方案。
6. 适用场景广泛
-
渗透测试:在进行网站渗透测试时,Dirmap可以帮助发现隐藏的目录和文件,为后续的漏洞挖掘提供线索。
-
安全审计:在企业安全审计中,Dirmap可以用于检查网站的目录结构,发现潜在的安全风险。
-
漏洞挖掘:对于专业的漏洞挖掘人员,Dirmap的多模式扫描功能可以帮助他们快速定位可能存在漏洞的目录。
六. Fscan实践(使用pikachu靶场)
命令:
fscan.exe -h 127.0.0.1/24 -np -p 80,3306 -t 1000