一、DNS解析详细步骤
(一)、本地查询
1.浏览器缓存查询
在浏览器中输入一个域名时,浏览器会首先检查缓存中是否已经存在该域名的解析记录。如果存在,则使用缓存中的IP地址进行访问,解析过程结束。
2.操作系统缓存查询
如果浏览器缓存中没有找到对应的解析记录,浏览器会进一步查询操作系统的缓存。
3.本地DNS服务器查询
如果操作系统缓存中也没有找到对应的解析记录,操作系统会将查询请求发送给本地配置的DNS服务器。
(二)、DNS服务器查询
1.根域名服务器查询
如果本地DNS服务器缓存中没有找到对应的解析记录,它会向根域名服务器发起查询。根域名服务器是DNS系统的顶级服务器,负责管理所有顶级域名的解析。
2.顶级域名服务器查询
根域名服务器会返回给本地DNS服务器一个或多个顶级域名服务器的地址。本地DNS服务器会向这些顶级域名服务器发起查询,请求解析目标域名。
3.权威域名服务器查询
顶级域名服务器会返回目标域名的权威域名服务器地址。权威域名服务器是负责管理该域名解析的服务器,它存储着域名与IP地址的映射关系。本地DNS服务器会向权威域名服务器发起查询,请求解析目标域名的IP地址。
(三)、返回解析结果
1.权威域名服务器返回解析结果
权威域名服务器会返回目标域名的IP地址给本地DNS服务器。
2.本地DNS服务器缓存并返回结果
本地DNS服务器会将解析结果缓存起来,并将IP地址返回给用户的计算机。用户的计算机可以使用这个IP地址来建立与服务器的连接,访问网站。
二、绕过CDN查找主机真实IP的方法
(一)、DNS历史解析记录查询
可以使用在线的DNS历史解析记录查询工具,如ViewDNS、IP138等,输入域名查询其历史IP记录。
(二)、 多地PING或国外PING
使用在线的多地PING工具,如站长工具、爱站网等,从多个地理位置对网站进行PING操作,观察返回的IP地址是否一致。若不一致,则可能是使用了CDN,而某个特定地理位置(如国外)返回的IP可能是真实IP。
(三)、 查询子域名
使用子域名挖掘工具或搜索引擎(如Google)查找目标网站的子域名,然后查询这些子域名的IP地址,可能会找到真实IP。
(四) 、利用SSL证书
使用在线的SSL证书查询工具,输入域名查询其SSL证书信息,从而获取真实IP。
(五)、 利用HTTP标头
使用网络抓包工具或HTTP请求分析工具捕获和分析HTTP请求和响应,查找可能包含真实IP的标头字段。
(六)、网站邮件订阅或邮箱服务器
尝试访问网站的邮箱系统或邮件订阅页面,查看其IP地址或发送邮件并查看邮件头信息中的发送者IP。
(七)、网络空间搜索引擎
在搜索引擎中输入与目标网站相关的关键词或特征,如网站标题、网站内容等,进行搜索并查找可能的真实IP。
(八)、全网扫描
使用扫描工具对目标网站的IP段进行扫描,注意遵守法律法规和道德规范,避免对目标服务器造成不必要的负担或损害。
三、子域名信息收集常用手段
(一)、使用子域名查询工具
在线工具:如Subdomain Finder、DNSdumpster、SecurityTrails等,这些工具通过输入主域名即可快速查找相关的子域名。
命令行工具:如Sublist3r、Amass等,这些工具在命令行界面下运行,通过枚举和解析DNS记录来收集子域名。
综合工具:如OneForAll、Layer子域名挖掘机等,这些工具集成了多种搜索方式和API接口,能够更全面地收集子域名信息。
(二)、利用搜索引擎
直接搜索:在百度、谷歌等搜索引擎中直接搜索目标组织的名称或相关关键词,可能会在其官网或相关页面中找到子域名的信息。
高级搜索:使用搜索引擎的高级搜索功能,结合site:语法来限制搜索结果只来自特定的网站,从而获取其子域名信息。
(三)、网络爬虫
编写爬虫程序来抓取目标网站及其相关页面,提取出其中的子域名信息。这需要一定的编程技能和对网站结构的了解。爬虫可以抓取robots.txt文件、crossdomain.xml文件、sitemap文件等,从中筛选出子域名。
(四)、官方备案网站和企业信息查询平台
官方备案网站:如工信部ICP备案系统,通过主域名查备案,获得域名所属公司名称,再搜索该公司名称以获取其所有注册域名。
企业信息查询平台:如天眼查、爱企查、企查查等,通过查看股权穿透图来查找子公司,并收集其子公司的域名。
(五)、Whois查询和证书透明度查询
Whois查询:通过Whois查询网站查询同一公司的域名可能使用同一邮箱注册的信息,进行反查以获取子域名。
证书透明度查询:由于许多企业域名使用HTTPS协议,TLS证书中通常包含域名信息,可以通过查询证书透明度来收集子域名。
(六)、DNS历史记录查询
使用如SecurityTrails、DNSdumpster.com、WhoisXML、PassiveTotal等DNS历史记录查询服务,通过查询过去DNS解析记录的服务,可以查找目标组织过去使用过的子域名。这种方法有时能发现已被删除但仍解析到目标组织的子域名。
(七)、暴力破解和子域名爆破
暴力破解:尝试通过猜测可能的子域名来枚举它们。这可以通过使用字典或生成算法来生成可能的子域名,并逐一检查它们是否存在。虽然这种方法可能会找到一些子域名,但效率较低且可能不全面。
子域名爆破工具:如Subfinder、Sublist3r、KSubdomain等,这些工具通过字典或其他方法生成可能的子域名列表,并对列表中的每个子域名进行DNS解析以确定其是否存在。
四、Nmap全端口扫描
(一)、nmap扫描
下载并安装nmap
运行PHP,启动环境
打开nmap,确定目标
(二)、SYN半开扫描原理和跳过主机存活扫描使用常见
1、SYN半开扫描原理
发送SYN数据包
扫描器向目标主机的特定端口发送一个TCP SYN数据包。这个数据包不包含ACK标志位,而是只包含SYN标志位,表示希望与目标端口建立连接。
接收响应
目标主机收到SYN数据包后,会根据端口的状态给出不同的响应:
如果端口开放,目标主机会回复一个SYN-ACK数据包,表示愿意建立连接。
如果端口关闭,目标主机会回复一个RST数据包,表示拒绝连接。
如果端口被防火墙等安全设备过滤,则可能不会收到任何响应,或者收到ICMP不可达消息。
判断端口状态
扫描器根据接收到的响应来判断端口的状态:
收到SYN-ACK数据包,说明端口开放。
收到RST数据包,说明端口关闭。
未收到任何响应或收到ICMP不可达消息,说明端口可能被过滤。
中断连接
在SYN半开扫描中,扫描器通常不会发送ACK数据包来完成三次握手,而是直接中断连接。这是因为扫描器的主要目的是探测端口状态,而不是建立实际的TCP连接。
2、跳过主机存活扫描使用常见
已知目标主机在线:当扫描者确信目标主机正在运行并可通过网络访问时,可以跳过存活扫描以节省时间。
快速扫描:在进行大规模网络扫描时,为了快速获取结果,可能会选择跳过存活扫描步骤。
特定扫描需求:在某些情况下,扫描者可能只对特定端口的开放状态感兴趣,而不关心主机的存活状态。
五、dirmap目录探测工具实践
对pikachu扫描结果
dirmap每次扫描不一样原因:
目标网站的变化:目标网站的结构和内容可能会随着时间的推移而发生变化。例如,网站管理员可能会添加新的目录、删除旧的目录或更改文件路径。这些变化都会导致Dirmap的扫描结果不同。
六、Fscan实践
在GitHub - shadow1ng/fscan中下载ZIP文件,解压缩
在文件位置打开cmd运行 go build -ldflags="-s -w" -trimpath 命令
成功后在文件中出现fscan.exe
在fscan.exe的位置打开cmd运行.\fscan -h 127.0.0.1,对pikachu靶场进行扫描
七、插件安装
在Firefox中安装插件