作业一、DNS解析详细步骤
DNS解析是将域名转换为IP地址的过程
DNS解析的基本步骤:
1. 客户端查询
客户端发起请求:当用户在浏览器中输入一个网址时,客户端(通常是用户的电脑或移动设备)会向其配置的本地DNS解析器发送一个DNS查询。
2. 本地DNS解析器查询
检查缓存:本地DNS解析器(可能是ISP提供的DNS服务器或手动设置的如Google DNS、Cloudflare DNS等)首先会检查其缓存中是否有该域名对应的IP地址记录。如果存在,则直接返回给客户端,结束查询。
递归查询:如果缓存中没有找到答案,本地DNS解析器会代表客户端执行递归查询,即它将负责获取完整的答案,并将其返回给客户端。
3. 根DNS服务器查询
根服务器定位:如果本地DNS解析器无法直接找到答案,它会向根DNS服务器发起查询。根DNS服务器保存着顶级域(TLD)服务器的信息。
获取TLD服务器信息:根DNS服务器返回给本地DNS解析器一个或多个顶级域服务器的IP地址。
4. 顶级域服务器查询
TLD服务器定位:本地DNS解析器使用从根DNS服务器得到的信息,向相应的顶级域服务器发起查询。
获取权威名称服务器信息:顶级域服务器返回给本地DNS解析器一个或多个权威名称服务器的IP地址,这些权威名称服务器负责具体的域名。
5. 权威名称服务器查询
权威服务器定位:本地DNS解析器根据顶级域服务器提供的信息,向权威名称服务器发起查询。
获取IP地址:权威名称服务器拥有最终的答案——域名对应的IP地址,并将其返回给本地DNS解析器。
6. 返回结果
结果返回给客户端:本地DNS解析器将获取到的IP地址返回给客户端,客户端就可以使用这个IP地址与目标服务器建立连接了。
缓存结果:同时,本地DNS解析器也会将这条记录缓存起来,以便后续相同域名的查询可以直接使用缓存中的数据。然后DNS解析过程就完成了。
作业二、绕过CDN查找主机真实IP的方法
1.WHOIS查询:
可以通过WHOIS数据库查询域名的注册信息,有时候能获取到相关联的IP地址。
2.DNS记录分析:
通过查看DNS记录,特别是TXT、MX、NS记录等,可能会找到与网站有关的线索。
3.子域扫描:
使用工具扫描目标域名下的所有子域,某些子域可能直接指向服务器的IP地址。
4.SSL证书:
分析SSL证书中的信息,有时可以发现指向真实服务器的线索。
5.Web服务器指纹识别:
利用工具探测Web服务器的信息,如操作系统、Web服务器软件版本等,这些信息有时可以帮助定位服务器。
6.网络扫描:
使用端口扫描工具(如Nmap)对特定范围内的IP地址进行扫描,寻找开放端口来推测真实服务器的位置。
7.错误消息分析:
诱导网站返回错误页面,分析错误消息中可能泄露的真实IP地址。
8.社交媒体和公开资源
有时候在社交平台上或者通过搜索引擎可以找到有用的信息。
9.历史DNS记录:
使用历史DNS记录查询服务,如Wayback Machine等,来查看过去该域名曾经解析过的IP地址。
10.第三方服务:
有些第三方工具和服务专门用于查找隐藏的服务器IP地址
作业三、子域名信息收集常用手段
1. 使用子域名枚举工具
Sublist3r: 一个开源的Python脚本,用于枚举子域名。
Amass: 一个强大的子域名枚举工具,支持递归搜索和智能枚举。
Subfinder: 一款快速且先进的子域名枚举工具。
SubDomain Takeover Checker (SDTC): 用于检查是否存在子域名接管漏洞。
2. 利用搜索引擎
Google Dorks: 使用特殊查询语法来搜索特定格式的信息,例如 site:example.com intext:".com" 可以用来查找包含.com的子域名。
Bing: 类似于Google,Bing也支持类似的高级搜索语法。
3. 域名注册信息查询 (WHOIS)
查询WHOIS数据库可以获取域名注册信息,包括相关的子域名。
4. DNS记录查询
使用在线DNS查询工具或命令行工具(如 nslookup, dig)来查询DNS记录,特别是A记录、CNAME记录等。
5. 子域名爆破
枚举常见子域名列表,并尝试将它们附加到目标域名上,看是否有效。
工具如 Gobuster 或 Fierce 可以帮助自动化这一过程。
6. 社会工程学
通过观察和研究目标组织的命名模式,猜测可能存在的子域名。
7. 第三方服务
有些第三方服务提供了子域名查找功能,例如Censys、Shodan等。
8. 网络扫描
使用端口扫描工具(如Nmap)结合子域名列表进行扫描,寻找开放端口的子域名。
9. 内部文档和代码审查
检查内部文档、备份文件或源代码,可能会发现未公开的子域名。
10. 历史DNS记录
使用历史DNS记录查询服务,如Wayback Machine等,来查看过去该域名曾经解析过的子域名。
作业四、nmap全端口扫描
扫描本机环回地址,设置选项为quick scan(快扫),扫描结果如图
注:
1.SYN半开扫描的原理
发送SYN数据包:扫描程序向目标主机的目标端口发送一个SYN数据包。
1.接收响应:
如果端口是开放的,目标主机将发送一个SYN+ACK数据包作为响应。
如果端口是关闭的,目标主机将发送一个RST(复位)数据包。
如果端口被过滤(防火墙等),可能不会有任何响应,或者扫描程序可能收到一个RST数据包。
2.处理响应:
对于收到的SYN+ACK响应,表明端口是开放的。
对于收到的RST响应,表明端口是关闭的或被过滤。
如果没有接收到任何响应,端口可能是被防火墙过滤的。
2.Nmap 中跳过主机存活检测
1.使用 -Pn 参数:
在 Nmap 命令行中添加 -Pn 参数可以跳过存活检测。这意味着Nmap将假定所有的主机都是存活的,并对这些主机进行进一步的扫描。
示例命令:nmap -Pn <target>
2.使用 -sn 参数进行存活检测:
首先使用 -sn 参数进行一次简单的存活检测,然后根据结果手动选择活跃的主机进行更详细的扫描。
示例命令:nmap -sn <target>,之后根据输出的结果手动选择活跃的主机进行进一步的扫描。
作业五、dirmap目录探测工具实践
注:
1.为什么dirmap每次扫描条数不一样
Dirmap每次扫描条数不一样的原因主要与扫描过程中的数据变化和字典迭代器的工作原理有关。在扫描过程中,如果网站目录结构发生变化,例如新增或删除文件/文件夹,这可能导致扫描结果中的条目数量发生变化。
作业六、Fscan实践
使用fscan扫描本机ip