网络扫描 day02

  1. DNS解析协议

本地缓存查询:

用户在浏览器中输入域名。

操作系统检查本地DNS缓存,查看是否有该域名的IP地址记录。

如果有,则直接使用缓存中的IP地址,DNS解析结束。

本地hosts文件查询:

如果本地缓存中没有找到对应记录,操作系统会检查C盘中的hosts文件。

hosts文件中可以直接指定域名和对应的IP地址,如果找到匹配项,则使用该IP地址,解析结束。

查询本地DNS服务器:

如果以上步骤都没有找到对应记录,操作系统会将DNS查询请求发送给配置在本地的DNS服务器。

本地DNS服务器会有一个缓存区域,如果查询在此缓存中,则返回IP地址给用户,解析结束。

根域名服务器查询:

如果本地DNS服务器没有找到对应记录,它会向根域名服务器发起请求。

根域名服务器是互联网DNS架构的顶部,它不直接提供域名到IP的映射,而是提供顶级域名(TLD,如.com、.net等)的名称服务器地址。

顶级域名服务器查询:

本地DNS服务器根据根域名服务器的响应,向顶级域名服务器的名称服务器发起请求。

顶级域名服务器查询其记录,并将该域名对应的权威域名服务器(Authoritative Name Server)地址返回给本地DNS服务器。

权威域名服务器查询:

本地DNS服务器接着向权威域名服务器发送请求。

权威域名服务器拥有该域名的详细记录,包括A记录(域名到IPv4地址的映射)、AAAA记录(域名到IPv6地址的映射)等。

获取IP地址:

权威域名服务器根据查询的类型(如A记录)返回相应的IP地址给本地DNS服务器。

返回结果并缓存:

本地DNS服务器将获取到的IP地址返回给用户的设备。

同时,为了加快后续的解析速度,本地DNS服务器会缓存这个域名和对应的IP地址。通常,这个缓存有一个时间限制,称为TTL(生存时间)。

更新本地缓存:

用户的设备将IP地址缓存到本地系统缓存中,通常这个缓存的时间周期也是由TTL值决定的。

  1. 绕过CDN

DNS查询:

通过查询DNS记录,可以找到原始服务器(不经过CDN)的IP地址。

使用工具如dig、nslookup等可以查询到域名的DNS服务器信息。

HTTP头部信息分析:

某些情况下,HTTP响应头部可能会泄露服务器的真实IP地址。

检查HTTP响应中的某些字段,如X-Forwarded-For,可能会包含真实IP地址。

网络侦察:

通过发送特定类型的网络请求(如TCP SYN请求)来分析回应,可能揭示真实IP。

使用工具如nmap进行端口扫描,根据回应判断服务器真实IP。

WHOIS查询:

对于拥有自己域名的服务器,可以通过WHOIS查询来获取注册的域名持有者的联系信息,可能会包括真实的IP地址。

反向DNS查询:

对已知的IP地址进行反向DNS查询,可能会找到与该IP地址关联的域名。

  1. 子域名收集

DNS查询:

使用工具如nslookup、dig或host等命令行工具进行DNS查询,可以获取特定域名的DNS记录,包括A记录(IPv4地址)、AAAA记录(IPv6地址)、MX记录(邮件交换服务器)、TXT记录(文本记录)等,这些记录可能指向子域名。

WHOIS查询:

通过WHOIS查询可以获取域名的注册信息,包括管理员联系信息、域名注册商、域名注册和到期时间等,这些信息有助于识别域名的所有者和管理结构。

子域名列举工具:

使用专门的子域名列举工具,如Sublist3r、 assetnote、GitHub的子域名枚举工具等,这些工具可以自动化地收集一个域名下的所有子域名。

搜索引擎查询:

通过搜索引擎搜索域名的相关关键词,可能会发现一些子域名,特别是那些对外发布内容的子域名。

网络空间测绘工具:

使用网络空间测绘工具如Censys、Shodan等,可以搜索特定子域名或其对应的IP地址,并获取相关的网络资产信息。

HTTP响应头分析:

对目标子域名进行HTTP请求,分析响应头中的信息,如Link标签(用于指示相关的资源链接)、X-Frame-Options、X-Content-Type-Options等,可能揭示额外的子域名或资源。

社交工程和信息收集:

通过社交媒体、专业网络平台、论坛等渠道搜索域名的相关人物或公司信息,可能会发现一些子域名。

被动DNS分析:

使用被动DNS分析工具,如PassiveDNS,可以收集域名在不同时期的DNS记录,这有助于追踪子域名的变化。

安全信息共享平台:

参与安全信息共享平台,如威胁情报社区,可以获取其他安全研究人员分享的子域名信息。

  1. Nmap全端口扫描

Nmap ip 扫描目标地址

主机存活,且能看到80、445、3306等端口开启

TCP三次握手:

TCP的三次握手过程是建立一个TCP连接的三个步骤。首先,客户端发送一个带有SYN标志的TCP段给服务器,以开始一个新的连接。然后,服务器接收到客户端的SYN段后,会发送一个带有SYN/ACK标志的TCP段作为响应,其中SYN标志用于同步序列编号,ACK标志用于确认客户端的SYN段,并将确认号设置为客户端的序列号加1。最后,客户端接收到服务器的SYN/ACK段后,会发送一个带有ACK标志的TCP段作为响应,以确认服务器的SYN/ACK段,并将确认号设置为服务器的序列号加1。通过这三次握手过程,TCP连接得以建立,客户端和服务器可以使用序列号来保证数据的可靠传输。

SYN半开扫描:

申请方首先发送的是一个SYN数据包,服务方在接到这个SYN数据包后,如果该端口处于侦听状态,则会回复一个SYN|ACK的数据包;如果该端口没有处于侦听状态,则会回复一个RST的数据包。而此时如果对方处于侦听状态,申请方还需要再向对方回复一个ACK数据包以示建立连接。此时对方就认为连接建立,并记入日志。

跳过主机存活检测扫描使用常见:

Nmap的-Pn选项:

使用-Pn选项可以跳过主机存活检测,直接进行端口扫描。这在目标主机不响应Ping请求时非常有用。

例:nmap -Pn ip

Masscan的--ping选项:

Masscan是一种高速端口扫描工具,可以使用--ping选项跳过Ping探测。.

fscan工具:

fscan是一款综合扫描工具,可以使用-np选项跳过存活检测。

  1. Dirmap

使用git clone下载dirmap工具

安装完成即可对目标网络扫描

使用dirmap.py -I ip/pikachu-master/ 对目标网站扫描

注意:在使用命令时在网站文件路径下加上“/”

Dirmap的扫描结果会直接存到output文件夹下并以目标地址为文件名

为什么dirmap扫描条数会不一样?

首先网站会有随机内容,在爬取过程中可能会遇到不同的网站拓扑结构,还有可能在不同网络结构下网络发包的时延不一致使得扫描的内部递归结构会不同。

  1. Fscan

使用fscan首先要安装go环境

参考fscan安装及用法2023.7(kali)_kali fscan-CSDN博客

同样使用git clone方法下载fscan

使用基础功能,验证安装成功

扫描本地网络,输出并查看结果

可以看到本地网络只有一台主机,相关端口已打开

附:插件下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值