文章目录
一、DNS解析详细步骤
DNS(域名系统)是将域名解析为IP地址的系统。DNS域名解析的详细步骤如下:
- 用户输入域名:用户在浏览器或应用程序中输入一个域名,例如
www.example.com
。 - 本地缓存检查:计算机会首先检查本地DNS缓存(如果有)是否已经缓存了该域名的IP地址。如果缓存中存在,计算机直接使用这个IP地址进行访问,无需进一步查询。
- DNS递归查询:
查询本地DNS服务器:如果本地缓存中没有结果,计算机将向配置的本地DNS服务器(通常是ISP提供的DNS服务器)发送查询请求。
递归查询:如果本地DNS服务器也没有缓存结果,它将会发起递归查询。递归查询是指本地DNS服务器会代表用户继续查询直到找到最终的答案。 - 根域名服务器:
查询根域名服务器:本地DNS服务器首先向根域名服务器(全球共有的根DNS服务器)发起查询请求。根域名服务器的职责是将查询请求引导到正确的顶级域(TLD)服务器。 - 顶级域(TLD)服务器:
查询TLD服务器:根域名服务器会将请求转发到对应的顶级域服务器(例如.com
、.net
、.org
等),TLD服务器会指向更具体的权威域名服务器。 - 权威域名服务器:
查询权威域名服务器:TLD服务器将查询请求转发到权威域名服务器,权威域名服务器持有域名的最终解析记录(A记录或其他记录)。 - 返回结果:
获取IP地址:权威域名服务器返回域名对应的IP地址到本地DNS服务器。本地DNS服务器会将这个IP地址缓存起来,以便将来查询时使用。 - 响应用户请求:
返回结果到客户端:本地DNS服务器将解析出的IP地址返回给用户的计算机,用户的计算机使用这个IP地址与目标服务器建立连接。 - 访问目标网站:计算机通过得到的IP地址访问目标网站,完成数据传输和页面显示。
二、绕过CDN查找主机真实IP的方法
-
要绕过CDN(内容分发网络)查找主机的真实IP地址,可以使用以下几种方法:
-
DNS绕过技巧:
使用nalookup:利用nslookup命令检测域名解析的IP地址数量。如果解析结果中有多个IP地址,说明使用了CDN。示例如下:
nslookup www.baidu.com
nslookup xiaodi8.com
查看DNS历史记录:一些DNS历史查询服务(如 SecurityTrails、DNSdumpster)可以显示域名的历史DNS记录,这些记录可能包括真实IP地址。
常用的查询网站有:
DNSDB
微步在线
Netcraft
ViewDNS
IPIP这些平台提供详细的历史DNS记录,攻击者可以输入网站域名并查看其历史IP地址。例如,利用SecurityTrails平台,输入网站域名后,点击“历史数据”即可查看过去的DNS记录。
除了过去的DNS记录,即使是当前的记录也可能泄漏原始服务器IP。例如,MX记录是一种常见的查找IP的方式。如果网站在与web相同的服务器和IP上托管自己的邮件服务器,那么原始服务器IP将在MX记录中。
-
IP扫描:
端口扫描:通过扫描域名对应的IP地址的开放端口,找出与真实服务器相关的端口。CDN通常不使用特定的端口,某些服务可能会暴露服务器的真实IP。
子域名扫描:扫描与目标域名相关的子域名,尤其是那些没有经过CDN保护的子域名,可能会发现真实IP地址。
CDN成本较高,很多站长只对主站或流量大的子站点使用CDN。通过查询子域名找到其真实IP。常用工具:
Google搜索:使用
site:``baidu.com`` -www
进行查询子域名挖掘机:输入域名即可基于字典挖掘子域名 Subdomainbrute:利用Python脚本收集子域名
-
社交工程:
查找泄漏信息:有时在网站、论坛或社交媒体上,目标公司或组织可能会无意中泄露真实IP地址。利用这些信息可以找到真实IP。
-
安全漏洞利用:
利用Web应用程序漏洞:如果目标网站存在安全漏洞(如反向代理配置错误、应用程序错误等),攻击者可以利用这些漏洞获取真实IP地址。
-
利用缓存和日志:
查看缓存数据:某些CDN可能会将请求日志或缓存文件暴露在公开访问的目录中,这些日志文件可能包含真实IP地址。
三、子域名信息收集常用手段
子域名信息收集是网络安全和渗透测试中的重要环节。以下是一些常用的手段:
-
DNS查询:
使用命令行工具如
nslookup
或dig
查询域名的DNS记录,获取子域名信息。 -
搜索引擎:
2.1 利用搜索引擎(如Google、Bing)进行高级搜索,使用特定的搜索语法(如
site:example.com
)查找子域名。2.2 常用的搜索引擎有Google和百度,基础的搜索语法:
2.3
site:*.baidu.com
2.4 一般用作工具搜集的补充,也可以编写脚本进行批量操作
-
在线工具:
使用在线子域名查找工具,如 VirusTotal、Sublist3r、crt.sh 等。
-
DNS暴力破解:
使用工具如
dnsrecon
或dnsgen
进行字典攻击,尝试猜测子域名。 -
证书透明度日志:
查询证书透明度日志(如 crt.sh)来发现与域名相关的SSL证书,从中提取子域名。
常用证书透明查询网站:
censys:https://censys.io/certificates
crtsh:https://crt.sh/
spyse:https://spyse.com/search/certificate
certspotter:https://sslmate.com/certspotter/api/
entrust:https://www.entrust.com/ct-search/
facebook:https://developers.facebook.com/tools/ct
google:https://developers.facebook.com/tools/ct
-
WHOIS查询:
查询WHOIS信息,查看域名注册信息,可能会包含子域名的线索。
-
网络爬虫:
使用网络爬虫工具(如 Burp Suite、Scrapy)抓取目标网站,分析HTML页面中的链接。
-
API接口:
使用一些公共DNS服务的API(如 Cloudflare、Google DNS)进行查询。
-
GitHub和代码库:
搜索GitHub等代码托管平台,查找可能泄露的配置文件和源码,其中可能包含子域名信息。
四、Nmap全端口扫描(使用昨日搭建的pikachu靶场)
先打开昨天搭建的pikachu靶场
4.1 使用命令行powershell扫描(nmap -p 1-1000 127.0.0.1)
下载好nmap,并将pikachu靶场搭建在可访问的网络环境
开放的端口为:
21/tcp open ftp
80/tcp open http
135/tcp open msrpc
137/tcp filtered netbios-ns
445/tcp open microsoft-ds
902/tcp open iss-realsecure
912/tcp open apex-mesh
4.2 使用Nmap扫描(扫描单个地址)
扫描完发现与powershell扫描结果一样
4.3 SYN半开扫描的原理和跳过主机存活检测扫描使用场景
4.3.1 SYN半开扫描的原理
SYN半开扫描(也称为半开放扫描或SYN扫描)是一种用于检测目标主机上开放端口的网络扫描技术。其原理如下:
- 发送SYN包:扫描器向目标主机的特定端口发送一个SYN(同步)包,表示请求建立连接。
- 响应分析:
- 开放端口:如果目标端口开放,目标主机会回应一个SYN-ACK(同步-确认)包,表示可以建立连接。
- 关闭端口:如果目标端口关闭,目标主机会回应一个RST(重置)包,表示拒绝连接。
- 过滤器或防火墙:如果目标端口被过滤(例如,防火墙阻止了该端口的访问),则可能不会收到任何响应。
- 不完成三次握手:扫描器不会发送ACK包来完成三次握手,因此目标主机不会记录该连接,从而实现“半开放”状态的扫描。
4.3.2 跳过主机存活检测的使用场景
在某些情况下,SYN半开扫描可以用于跳过主机存活检测,主要适用于以下场景:
- 隐蔽性需求:在目标网络中进行渗透测试时,可能希望降低被检测到的风险。SYN半开扫描由于不完成TCP连接,因此较难被入侵检测系统(IDS)或防火墙记录。
- 快速扫描:在大型网络中,使用SYN半开扫描可以快速识别开放的端口,而不需要逐一检查每个主机的存活状态,从而节省时间。
- 绕过防火墙:某些防火墙可能会对ICMP(如ping)请求进行过滤,而SYN半开扫描可以通过TCP协议直接探测端口,绕过这些过滤。
- 目标主机不响应ICMP:在一些网络中,主机可能配置为不响应ICMP请求(如ping),而SYN半开扫描仍然可以探测到开放的端口。
- 针对特定服务的扫描:在需要针对特定服务进行快速扫描时,SYN半开扫描可以直接探测目标端口的状态,避免了完整的主机存活检测。
五、dirmap目录探测工具实践
5.1 dirmap目录探测实践
从drimap目录中打开cmd
输入“python dirmap.py -i 127.0.0.1/pikachu -lcf”即可查看dirmap的相关操作指南
扫描结果如下
同理使用powershell也可以
5.2 为什么dirmap每次扫描条数不一样?
- 目标网站的变化:如果目标网站的文件或目录结构在不同时间进行了更改(例如,新增或删除了某些文件和目录),那么不同时间的扫描结果可能会有所不同。
- 扫描参数和设置:dirmap的扫描参数(如使用的字典文件、深度、线程数等)不同,可能导致扫描到的结果不一样。
- 网络状况:在不同的时间段,网络延迟、带宽和其他网络条件的变化可能会影响扫描的完整性和速度。
- 网站的防护机制:一些网站可能会对扫描行为进行监控和限制,例如通过防火墙、速率限制或IP被封禁等,从而影响到扫描结果。
- 时间窗口和爬虫策略:有些网站可能会在特定时间进行维护,或者根据流量情况自动调整内容可见性,这可能导致扫描结果的不一致。
六、Fscan实践
在fscan.exe文件目录下打开cmd,并执行“.\fscan -h 127.0.0.1”,结果如下