要求
1、DNS解析详细步骤。
2、绕过CDN查找主机真实IP的方法。
3、子域名信息收集常用手段。
4、Nmap全端口扫描(使用昨日搭建的pikachu靶场),加分项:能够说明SYN半开扫描的原理和跳过主机存活检测扫描使用常见。
5、dirmap目录探测工具实践(使用昨日搭建的pikachu靶场),要求讲述为什么dirmap每次扫描条数不一样,加分项:dirmap高级应用,详细见项目文档,项目链接:https://github.com/H4ckForJob/dirmap
6、Fscan实践(使用昨日搭建的pikachu靶场)
7、课上所演示插件安装成功截图。
注意:每个加分项加0.5分,除布置任务除外,如果其他信息收集建议、好方法,经研判会额外加分。
1:DNS域名解析过程
当我们在浏览器地址栏中输入www.baidu.com时,DNS解析将会有将近10个步骤,这个过程大体大体由一张图可以表示:
整个过程大体描述如下,其中前两个步骤是在本地电脑内完成的,后8个步骤涉及到真正的域名解析服务器:
第一步、
本地电脑会检查浏览器缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长和太短都不太好,如果时间太长,一旦域名被解析到的IP有变化,会导致被客户端缓存的域名无法解析到变化后的IP地址,以致该域名不能正常解析,这段时间内有一部分用户无法访问网站。如果设置时间太短,会导致用户每次访问网站都要重新解析一次域名。
第二步、
如果浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。其实操作系统也有一个域名解析的过程,在Linux中可以通过/etc/hosts文件来设置,而在windows中可以通过配置C:\Windows\System32\drivers\etc\hosts文件来设置,用户可以将任何域名解析到任何能够访问的IP地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地DNS解析的规程,所以有黑客就可能通过修改用户的域名来把特定的域名解析到他指定的IP地址上,导致这些域名被劫持。
第三步、
前两个过程无法解析时,就要用到我们网络配置中的"DNS服务器地址"了。操作系统会把这个域名发送给这个本地DNS服务器。每个完整的内网通常都会配置本地DNS服务器,例如用户是在学校或工作单位接入互联网,那么用户的本地DNS服务器肯定在学校或工作单位里面。它们一般都会缓存域名解析结果,当然缓存时间是受到域名的失效时间控制的。大约80%的域名解析到这里就结束了,后续的DNS迭代和递归也是由本地DNS服务器负责。
第四步、
如果本地DNS服务器仍然没有命中,就直接到根DNS服务器请求解析。
第五步、
根DNS服务器返回给本地DNS域名服务器一个顶级DNS服务器地址,它是国际顶级域名服务器,如.com、.cn、.org等,全球只有13台左右。
第六步、
本地DNS服务器再向上一步获得的顶级DNS服务器发送解析请求。
第七步、
接受请求的顶级DNS服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server服务器就是我要访问的网站域名提供商的服务器,其实该域名的解析任务就是由域名提供商的服务器来完成。 比如我要访问www.baidu.com,而这个域名是从A公司注册获得的,那么A公司上的服务器就会有www.baidu.com的相关信息。
第八步、
Name Server服务器会查询存储的域名和IP的映射关系表,再把查询出来的域名和IP地址等等信息,连同一个TTL值返回给本地DNS服务器。
第九步、
返回该域名对应的IP和TTL值,本地DNS服务器会缓存这个域名和IP的对应关系,缓存时间由TTL值控制。
第十步、
把解析的结果返回给本地电脑,本地电脑根据TTL值缓存在本地系统缓存中,域名解析过程结束在实际的DNS解析过程中,可能还不止这10步,如Name Server可能有很多级,或者有一个GTM来负载均衡控制,这都有可能会影响域名解析过程
什么是 CDN?
内容分发网络(CDN)是一个互连服务器网络,可加快数据密集型应用程序的网页加载速度。CDN 可以表示内容分发网络或内容分配网络。当用户访问某个网站时,来自该网站服务器的数据必须通过互联网传输到用户的计算机。如果用户距离该服务器较远,则加载大文件(例如视频或网站图像)将需要很长时间。相反,如果网站内容存储在距离用户较近的 CDN 服务器上,就可以更快到达他们的计算机。
2、绕过CDN查找主机真实IP的方法。
- 查询历史DNS记录:通过查看DNS记录的历史记录,可能存在使用CDN前的记录。这些记录可以揭示原始的IP地址。一些常用的查询网站包括dnsdb.io、x.threatbook.cn、toolbar.netcraft.com和viewdns.info。
- 查询子域名:一些网站可能使用子域名来提供内容。通过查询这些子域名对应的IP地址,可以辅助找到网站的真实IP地址。常用的工具包括微步在线、Dnsdb查询法和Google搜索等。
- 网络空间引擎搜索法:利用网络空间搜索引擎(如zoomeye、shodan和fofa)搜索特定关键词,可以找到使用CDN的网站的真实IP地址。这些搜索引擎能够扫描全球的网络空间,提供丰富的信息。
- 利用网站返回的内容:通过查看网站源代码,结合人工判断,可以找到隐藏在网页内容中的真实IP地址。例如,查看网站的favicon.ico文件,通过其唯一的hash值进行识别。
- 使用国外主机解析域名:尝试使用国外的主机直接访问目标网站,可能会获取到真实IP地址。这是因为一些CDN服务在国外地区可能无法提供完整的保护。
- 网站邮件订阅查找:很多网站会通过邮件订阅发送内容。查看这些邮件的源码,可能包含服务器的真实IP地址。通过订阅RSS邮件或联系网站管理员,获取邮件源码进行分析。
- 使用Zmap扫全网:利用Zmap的banner-grab功能扫描开放的网络主机,获取目标网站的80端口信息。然后结合特定的标识信息,如Host字段,进行进一步分析,找到真实IP地址。
- F5 LTM解码法:当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码,可以获取到真实IP地址。具体操作步骤包括将set-cookie中的数值进行十进制转十六进制、取特定段位的数值以及将这些数值转为对应的IP地址。
以上8种方法可以帮助您绕过CDN,找到隐藏在背后的真实IP地址。在网络安全领域中,这些信息对于防范网络攻击、了解网站安全状况和发现潜在的安全威胁非常重要。然而,需要提醒的是,获取他人的IP地址可能会涉及法律问题,务必确保您的行为符合法律法规的要求。
4、Nmap全端口扫描(使用昨日搭建的pikachu靶场)
Nmap全端口扫描
启动环境
启动zenmap进行扫描:
SYN半开扫描的原理
TCP SYN扫描又称“半开扫描”。回顾TCP连接的三次握手,申请方首先发送的是一个SYN数据包,服务方在接到这个SYN数据包后,如果该端口处于侦听状态,则会回复一个SYN|ACK的数据包;如果该端口没有处于侦听状态,则会回复一个RST的数据包。而此时如果对方处于侦听状态,申请方还需要再向对方回复一个ACK数据包以示建立连接。此时对方就认为连接建立,并记入日志。
无论服务方回复SYN|ACK的数据包,还是回复RST的数据包,申请方其实已经能够判断对方端口是否为“开”的状态。之后的ACK数据包发送则被对方监视,如果此时不发送ACK数据包,而是发一个RST数据包,则不仅关闭了这个未完成的连接过程,并且也会因为连接未建立而不会被对方记录。这种扫描方式因为使用了SYN标志位,所以被称为TCP SYN扫描。这种扫描技术的优点在于一般不会在目标计算机上留下记录,有时即使在用netstat命令也显示不出来;但这种方法的一个缺点是必须要有管理员权限才能建立自己的SYN数据包。
跳过主机存活检测扫描的使用
在进行网络扫描时,通常需要先确认目标主机是否存活,然后再进行端口扫描。然而,在某些情况下,如果已经知道目标主机是存活的,或者为了加快扫描速度,可以选择跳过主机存活检测直接进行端口扫描。这通常通过特定的Nmap参数来实现,如-Pn(不能ping,跳过主机发现)。
跳过主机存活检测扫描的常见使用场景包括:
已知目标存活:当已经通过其他方式(如手动确认、DNS解析等)确认目标主机存活时,可以直接跳过存活检测,节省扫描时间。
大规模扫描:在进行大规模网络扫描时,跳过主机存活检测可以显著提高扫描效率,尽管这可能会增加扫描过程中的误报率(即错误地将不存在的主机视为存活主机)。
绕过防火墙限制:某些情况下,防火墙可能会阻止ICMP Echo请求(即ping命令),导致无法通过常规方式确认主机存活。此时,跳过存活检测可以绕过这一限制,直接对目标主机进行端口扫描。
5、dirmap目录探测工具实践(使用昨日搭建的pikachu靶场),要求讲述为什么dirmap每次扫描条数不一样,
不一样的原因
动态内容:网站的内容和服务可能随着时间动态变化,比如新页面或目录的添加、旧页面的删除或移动等。这些变化会直接影响Dirmap扫描时能够发现的条数。
负载与响应:网站在不同时间段的负载情况也会影响扫描结果。如果网站在扫描时负载较高,响应速度可能变慢,甚至某些页面或目录无法及时响应,导致扫描条数减少。
dirmap高级应用
权限管理:可以设置访问权限,只允许特定用户或组访问指定的远程目录,增强数据安全性。
自动化脚本:通过编写shell脚本或者配置文件,可以自动同步、备份或更新远程目录,提升运维效率。
分布式协同工作:在团队开发环境中,dirmap支持多人共享项目目录,实时查看和编辑对方的修改,提高协作效率。
环境隔离:对于需要不同环境的开发者,可以为每个环境创建独立的映射,避免环境变量冲突。
动态路由:能够根据条件动态改变映射,比如根据时间、URL模式等规则,实现灵活的资源访问路径。
API集成:一些高级dirmap工具提供API接口,可用于自动化工具或与其他软件系统集成,如CI/CD流程。
6.Fscan实践(使用昨日搭建的pikachu靶场)
1.扫描pikachu
在fscan目录下打开cmd,输入fscan -h 127.0.0.1/24 -np ,-np :跳过存活检测;
2.扫描主机
7.课上所演示插件安装成功截图。