IP 信息收集
IP 信息收集
查找域名的 IP 地址
通过 DNS 查询获取域名的 IP 地址是信息收集的起点。
方法:使用
nslookup
命令查询 DNS 解析。命令示例:
nslookup [域名] [DNS服务器] #示例 nslookup www.baidu.com 223.5.5.5
说明:可以指定公共 DNS 服务器(如 223.5.5.5)以避免本地 DNS 缓存或 TUN 的干扰。
CDN 服务的判断与绕过
CDN 介绍
定义:内容分发网络(CDN)通过在各地部署服务器缓存静态资源,提升网站访问速度并降低延迟。
与攻击的关系:
- SQL 注入:与后端漏洞相关,CDN 不影响。
- DDoS 攻击:CDN 可有效防御 DDoS 攻击。
常见 CDN 服务商:
CDN 服务商 CNAME 后缀 阿里云 CDN .kunlunca.com
,.aliyunddos.com
腾讯云 CDN .cdn.dnsv1.com
百度云 CDN .bdydns.com
华为云 CDN .c.cdnhwc1.com
网宿科技 (ChinaCache) .wscdns.com
Cloudflare .cdn.cloudflare.net
Akamai .edgesuite.net
Fastly .edgekey.net
AWS CloudFront .cloudfront.net
Microsoft Azure CDN .vo.msecnd.net
判断 CDN
方法:
DNS 解析:通过
nslookup
检查是否存在以下特征:- 解析结果包含疑似 CDN 的 CNAME 记录。
- 解析结果返回多个 IP 地址。
多地 Ping:
- 使用不同地理位置的服务器 ping 目标域名。
- 观察是否返回多个 IP 地址且具有地理分布特征。
工具:
nslookup
- 在线工具:https://ping.chinaz.com
CDN 绕过
[!note]
现在 CDN 绕过在现实中基本不可行,但是面试可能问!
CDN 绕过的目标是找到网站的真实服务器 IP 地址。以下是常见方法:
方法 | 描述 | 说明 & 适用场景 |
---|---|---|
DNS 历史记录 | 查询域名历史解析记录,可能包含未使用 CDN 时的真实 IP。 | 早期设置解析时,没有购买 CDN 服务 |
子域名解析 | 查找未使用 CDN 的子域名(如 blog.example.com),推测主域名 IP。 | 子域名与主域名同服务器,且有子域名使用 CDN |
多地 Ping | 在不同地区 ping 域名,部分 CDN 服务仅在特定区域生效。 | 例如以前部分国内的 CDN 服务商,只在境内提供 CDN 服务 |
邮件原始头分析 | 检查邮件服务器 IP,部分网站邮件服务与 Web 服务器同 IP。 | 未使用阿里云、腾讯云等厂商提供的 SMTP 服务,而是在同服务器自建 SMTP 服务 |
网站信息泄露 | 存在漏洞,如检查 phpinfo 等页面泄露的 server_addr,可能暴露真实 IP。 | 现在的网站基本都有反向代理,server_addr 看到的都是反代之前的 IP,无用 |
全网 IP 碰撞 | 使用工具扫描全网 IP,匹配域名。 | 费时费力 |
CDN 配置缺陷 | 利用 CDN 配置错误(如不当的 DNS 设置)直接访问后端。 | CDN 服务商配置失误 |
工具推荐:
- DNS 历史记录查询:https://site.ip138.com、https://securitytrails.com
- 全网 IP 碰撞:hackcdn
C 段查询
[!tip]
只有网站没有 CDN 的情况下,才可以进行 C 段扫描
定义:C 段指同一网段(/24)内的 IP 地址。例如,若
baidu.com
解析为182.61.244.181
,则扫描182.61.244.1
至182.61.244.254
,该网段中可能存在属于 baidu 的 IP 地址。工具:
工具 特点 下载链接 kscan 轻量级,支持快速 C 段扫描 https://github.com/lcvvvv/kscan Goby 图形化界面,适合综合扫描 https://github.com/gobysec/Goby/releases Shell 脚本 自定义脚本,灵活性高 ——
端口扫描
[!tip]
只有网站没有 CDN 的情况下,才可以进行端口扫描
nmap 工具
- 主要使用
nmap
,支持 Windows 和 Linux。
常用命令:
常用扫描选项:快速 TCP 端口扫描(默认只会扫描周知端口)
nmap -sT -T4 [IP或网段] #-sT scan TCP TCP扫描 #-T4 time 4 快速扫描 nmap time 0-5 0最慢 5最快
指定端口扫描
#使用 TCP 快速扫描 80 端口 nmap -sT -T4 -p80 [IP或网段] #使用 TCP 快速扫描 1-10000 端口 nmap -sT -T4 -p1-1000 [IP或网段] #使用 TCP 快速扫描全端口 nmap -sT -T4 -p1-65535 [IP或网段] nmap -sT -T4 -p- [IP或网段]
nmap 在扫描一个 IP 地址的端口之前,首先会 ping 这个 IP,如果 ping 不通,nmap 将不会进行端口扫描,因此扫描端口之前,禁用 ping。
nmap -sT -T4 -p80 -Pn [IP或网段] #-Pn nmap 在扫描端口之前,不再 ping 测试,直接扫描端口
扫描服务的具体版本(不一定准)
nmap -sT -T4 -p80 -Pn -sV [IP或网段] #-sV scan version 扫描版本信息
扫描操作系统版本
nmap -O [IP或网段] #-O 扫描操作系统版本
关闭端口扫描,C 段扫描
nmap -sn -PE [IP或网段] #-sn 关闭端口扫描 #-PE 开启 ICMP 扫描
UDP 扫描
nmap -sU -T4 [IP或网段] #-sU scan UDP UDP扫描
TCP 半开扫描
nmap -sS -T4 [IP或网段] #-sS scan SYN TCP 半开扫描,没有完成三次握手 nmap -sA -T4 [IP或网段] #-sA scan ACK TCP 半开扫描
调用 nmap 脚本
nmap --script=xxx.nse [IP或网段] #kali 中 nse 脚本的位置:/usr/share/nmap/scripts #nse 脚本涵盖漏洞检测、密码爆破、漏洞攻击等等 #netbios 扫描 nmap -sU -p137 --script=nbstat.nse [IP或网段] #netbios 是主机名对应 IP 地址,端口 UDP 137
nmap 检测状态说明:
- open:端口开启。
- filtered:端口可能开启但被防火墙拦截。
- closed:端口关闭。