一、DNS解析详细步骤
DNS(域名系统)解析是将我们易读的域名转换为计算机可读的IP地址的过程。
1、用户输入网址
用户在浏览器的地址栏中输入域名(例如www.example.com),浏览器开始DNS解析过程,寻找该域名对应的IP地址。
2、浏览器缓存检查
浏览器首先会检查自身的缓存,如果缓存中有该域名的IP地址,DNS解析过程在此结束,浏览器直接使用该IP地址访问目标服务器。
3、查询本地hosts文件
操作系统会在本地的hosts文件(其中包含域名与IP地址的含有的映射关系,可以进行手动编辑配置),若找到匹配则解析过程结束。没有匹配,则继续向DNS服务器请求。
4、发送请求到本地DNS服务器
如果操作系统的缓存中也没有找到匹配记录,系统会向本地配置的DNS解析器发送查询请求。
5、DNS递归查询
本地DNS解析器收到请求后,会先检查自己的缓存。如果缓存中没有记录,它会开始递归查询,通常按根域名服务器、顶级域名服务器、权威DNS服务器的顺序进行查询,最终得到该域名的IP地址。
6、返回IP地址
权威DNS服务器返回IP地址给本地DNS解析器,解析器将结果缓存并将IP地址返回给操作系统。
7、浏览器访问目标服务器
操作系统将IP地址提供给浏览器,浏览器使用该IP地址建立与目标服务器的连接,开始加载网页内容。
8、记录缓存
整个过程中,各级缓存都可能会保存查询结果,以便在后续的DNS请求中查找域名对应的IP地址。
二、绕过CDN查找主机真实IP的方法
1、DNS历史解析记录
查询域名的历史解析记录,可能会找到网站使用CDN前的解析记录,从而获取真实ip。
2、查找子域名
通过查找子域名可以帮助绕过CDN,尤其是当某些子域名未加入 CDN,而这些子域名与主站点共享相同的 IP 段(C段)时,可以借此找到网站的真实IP地址。
以下是一些常见的子域名查找方法和工具:
搜索引擎查询:利用Google、Baidu、Bing 等常规搜索引擎,使用例如site:baidu.com inurl:baidu.com。
在线子域名查询工具以及子域名爆破工具
3、网站邮件头信息
当出现邮箱注册,邮箱找回密码、RSS邮件订阅等功能场景,通过网站给自己发送邮件,从而让目标主动暴露他们的真实的IP,查看邮件头信息,获取到网站的真实IP。
4、扫描全网
通过Zmap、masscan等工具对整个互联网发起扫描,针对扫描结果进行关键字查找,获取网站真实IP。
5、利用SSL证书寻找真实IP
证书颁发机构(CA)必须将他们发布的每个SSL/TLS证书发布到公共日志中,SSL/TLS证书通常包含域名、子域名和电子邮件地址。因此SSL/TLS证书成为了攻击者的切入点。
6、配置不当导致绕过
在配置CDN的时候,需要指定域名、端口等信息,有时候小小的配置细节就容易导致CDN防护被绕过。
三、子域名信息收集常用手段
1、搜索引擎
用 Google、Bing 或 Baidu 这样的搜索引擎来挖掘公共索引中的子域名信息。
2、暴力破解
通过字典攻击对目标域名进行子域名爆破,发现隐藏的子域名。常用工具:
Sublist3r:集成了多种子域名收集工具,自动化查找。、
Amass:子域名枚举工具,支持被动和主动信息收集。
2、网络爬虫
使用爬虫工具抓取网站页面,分析内部链接、JavaScript文件、配置文件等,找到未公开的子域名。
3、在线工具
一些在线服务专门用于子域名收集
SecurityTrails:提供子域名查询和DNS历史记录。
CRT.sh:通过SSL证书公共数据库查找子域名。
4、历史 DNS 记录查询
使用历史DNS记录服务查询目标网站的历史解析情况,从中获取到以前公开的子域名。
四、Nmap端口扫描
1、全端口扫描,使用昨日搭建的pikachu靶场
打开安装好的nmap工具在profile中选择全端口扫描Intense scan, all TCP ports,输入pikachu靶场的地址。
2、SYN半开扫描的原理
SYN半开扫描是一种高效且隐蔽的端口扫描技术,常用于检测目标主机上的开放端口,而不会建立完整的TCP连接。它的工作原理基于TCP三次握手过程:
(1)发送SYN包:扫描器向目标主机发送一个SYN(同步)包,表示请求建立连接。
(2)等待响应:
如果端口开放:目标主机会返回一个SYN-ACK(同步-确认)包,表示准备建立连接。
如果端口关闭:目标主机会返回一个RST(重置)包,表示端口不可用。
(3)发送RST包:如果目标返回SYN-ACK包,扫描器会立即发送一个RST包来终止连接,而不会完成三次握手。这就是为什么这种扫描称为"半开"——因为它只执行了握手的前两步。
3、为什么主机存活检测扫描使用常见
Nmap 通常会在执行高强度扫描之前,先进行主机存活检测(如使用 ping 或其他探测方法),确定目标主机是否在线。默认情况下,Nmap 只对被确认在线的主机执行进一步的探测,比如端口扫描、版本检测和操作系统检测等。
如果想跳过这个主机存活检测,可以使用 -P0(注意第二个字符是数字0,而不是字母O)。这样相当于告诉Nmap假设所有目标主机都是存活的,无论实际在线状态如何,都要直接执行我们要求的功能。所以可以使用-P0禁用ping的探测,从而跳过主机发现即存活的检测。
五、dirmap目录探测工具实践
1、dirmap扫描昨日搭建的pikachu靶场
在pikachu-master目录下打开powershell输入扫描命令python .\dirmap.py -i 192.168.147.16/pikachu-master/ -lcf 对网站进行目录探测。
结果输出值在output文件夹下
2、为什么dirmap每次扫描条数不一样
dirmap具备一些高级功能,比如可以自动爬取网页并动态生成字典。在扫描过程中,它会根据目标网站的实际结构和内容进行调整,动态生成新的请求。这种动态调整的机制可能会导致扫描的请求数量发生变化。
3、dirmap高级应用
1、自定义字典和路径
dirmap支持加载自定义字典文件,可以根据特定系统或框架定制字典文件,更容易发现隐藏的路径。
2、并发扫描
对于大型站点或多个子域,可以通过调整并发数提高扫描速度。这个方法可以让扫描更加高效。例如
dirmap -u http://example.com -t 50 # -t参数控制线程数。
3、使用代理进行扫描
如果需要隐藏请求来源或绕过防火墙,dirmap可以通过http、https或socks代理发送请求。例如
dirmap -u http://example.com --proxy http://127.0.0.1:8080
4、结合burpsuite进行分析
通过dirmap 将流量导入burpsuite,可以详细查看每个请求和响应,或者结合 burp的插件进行深入的漏洞分析。例如
dirmap -u http://example.com --proxy http://127.0.0.1:8080
六、Fscan实践
在fscan文件夹下打开终端,执行.\fscan.exe -h 127.0.0.1扫描使用昨日搭建的pikachu靶场