目录
4、Nmap全端口扫描(使用昨日搭建的pikachu靶场),加分项:能够说明SYN半开扫描的原理和跳过主机存活检测扫描使用常见。
1、DNS解析详细步骤。
第一步
本地电脑会检查浏览器缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。如果浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。
第二步
前述过程无法解析时,就要用到我们网络配置中的"DNS服务器地址"了。操作系统会把这个域名发送给这个本地DNS服务器。配置方法如下:
windows | 控制面板-》网络和共享中心-》更改适配器设置-》选中目标适配器右键选择属性-》Internet协议版本4(TCP/IPv4)-》配置DNS地址。 |
Linux | /etc/resolv.conf |
第三步
如果本地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解析过程中。
补充说明
可能还不止这9步,如Name Server可能有很多级,或者有一个GTM来负载均衡控制,这都有可能会影响域名解析过程。
2、绕过CDN查找主机真实IP的方法。
方法1 查询历史DNS记录
1)查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录。
2)利用SecurityTrails平台,攻击者就可以精准的找到真实原始IP。他们只需在搜索字段中输入网站域名,然后按Enter键即可,这时“历史数据”就可以在左侧的菜单中找到。
方法2 查询子域名
很多子站点跟主站在同一台服务器或者同一个C段内,此时可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。收集子域名后尝试以解析ip不在cdn上的ip解析主站,真实ip成功被获取到。
方法3 网络空间引擎搜索法
常见的有:
钟馗之眼 | https://www.zoomeye.org |
shodan | https://www.shodan.io |
fofa | https://fofa.so |
方法4 利用SSL证书寻找真实原始IP
证书颁发机构(CA)必须将他们发布的每个SSL/TLS证书发布到公共日志中,SSL/TLS证书通常包含域名、子域名和电子邮件地址。因此SSL/TLS证书成为了攻击者的切入点。SSL证书搜索引擎:https://search.censys.io/search
方法5 利用HTTP标头寻找真实原始IP
借助SecurityTrails这样的平台,任何人都可以在茫茫的大数据搜索到自己的目标,甚至可以通过比较HTTP标头来查找到原始服务器。特别是当用户拥有一个非常特别的服务器名称与软件名称时,攻击者找到你就变得更容易。
方法6 利用网站返回的内容寻找真实原始IP
如果原始服务器IP也返回了网站的内容,那么可以在网上搜索大量的相关数据。浏览网站源代码,寻找独特的代码片段。在JavaScript中使用具有访问或标识符参数的第三方服务(例如Google Analytics,reCAPTCHA)是攻击者经常使用的方法。
方法7 网站漏洞查找
1)目标敏感文件泄露,例如:phpinfo之类的探针、GitHub信息泄露等。
2)XSS盲打,命令执行反弹shell,SSRF等。
3)无论是用社工还是其他手段,拿到了目标网站管理员在CDN的账号,从而在从CDN的配置中找到网站的真实IP。
方法8 用 Zmap 扫全网
需要找网站的真实 IP,首先获取 IP 段,然后使用 Zmap 的 banner-grab 扫描出来 80 端口开放的主机进行 banner 抓取.
3、子域名信息收集常用手段。
可以直接上网搜,或者用字典进行爆破访问。也可以使用常用的子域名查找的网站和工具如下:
网站 | 子域名查询 - 站长工具 (chinaz.com) |
工具 | GitHub - euphrat1ca/LayerDomainFinder: Layer子域名挖掘机 |
4、Nmap全端口扫描(使用昨日搭建的pikachu靶场),加分项:能够说明SYN半开扫描的原理和跳过主机存活检测扫描使用常见。
4.1 Nmap全端口扫描
启动环境
启动zenmap,确定扫描目标并进行扫描:
4.2 SYN半开扫描的原理
SYN半开扫描,也称为TCP SYN扫描,是一种广泛使用的网络扫描技术。其原理基于TCP连接的三次握手过程,但扫描过程中并不完成完整的三次握手,因此得名“半开扫描”。具体原理如下:
发送SYN数据包:扫描器向目标主机的指定端口发送一个带有SYN(同步序列编号)标志位的TCP数据包,表示希望建立连接。这个数据包不包含数据部分,仅用于探测端口是否开放。
接收响应:根据目标端口的响应,扫描器可以判断端口的状态:
如果目标端口开放,服务器会返回一个SYN-ACK(同步确认)数据包,表示愿意建立连接。然而,在SYN半开扫描中,扫描器不会继续发送ACK(确认)数据包完成三次握手,而是直接发送RST(复位)数据包中断连接;如果目标端口关闭,服务器会返回一个RST数据包,直接拒绝连接;如果目标主机不存在或端口被防火墙等安全设备过滤,扫描器可能收不到任何响应。
判断端口状态:通过接收到的响应(或缺乏响应),扫描器可以判断目标端口的开放状态。这种方法的好处在于速度快,且不易被目标主机察觉,因为扫描器没有完成完整的TCP连接。
4.3 跳过主机存活检测扫描的使用
在进行网络扫描时,通常需要先确认目标主机是否存活,然后再进行端口扫描。然而,在某些情况下,如果已经知道目标主机是存活的,或者为了加快扫描速度,可以选择跳过主机存活检测直接进行端口扫描。这通常通过特定的Nmap参数来实现,如-Pn
(不能ping,跳过主机发现)。
跳过主机存活检测扫描的常见使用场景包括:
已知目标存活:当已经通过其他方式(如手动确认、DNS解析等)确认目标主机存活时,可以直接跳过存活检测,节省扫描时间。
大规模扫描:在进行大规模网络扫描时,跳过主机存活检测可以显著提高扫描效率,尽管这可能会增加扫描过程中的误报率(即错误地将不存在的主机视为存活主机)。
绕过防火墙限制:某些情况下,防火墙可能会阻止ICMP Echo请求(即ping命令),导致无法通过常规方式确认主机存活。此时,跳过存活检测可以绕过这一限制,直接对目标主机进行端口扫描。
5、dirmap目录探测工具实践(使用昨日搭建的pikachu靶场),要求讲述为什么dirmap每次扫描条数不一样,加分项:dirmap高级应用,详细见项目文档,项目链接:https://github.com/H4ckForJob/dirmap
5.1 对pikachu的扫描结果
5.2 不一样的原因
动态内容:网站的内容和服务可能随着时间动态变化,比如新页面或目录的添加、旧页面的删除或移动等。这些变化会直接影响Dirmap扫描时能够发现的条数。
负载与响应:网站在不同时间段的负载情况也会影响扫描结果。如果网站在扫描时负载较高,响应速度可能变慢,甚至某些页面或目录无法及时响应,导致扫描条数减少。
5.3 高级应用
自定义dirmap配置,采用加载配置文件的方式编辑项目根目录下的dirmap.conf
进行配置。
6、Fscan实践(使用昨日搭建的pikachu靶场)
7、课上所演示插件安装成功截图。