一、CDN(内容分发网络)
1、基本定义
CDN(Content Delivery Network,内容分发网络) 是一种通过在全球部署节点服务器,将用户请求导向最近节点的技术,其核心目标是通过缩短数据传输距离,减少网络延迟,提升用户体验。
工作流程:
a、用户发起DNS解析请求时,被引导至CDN的智能DNS服务器
b、智能DNS根据用户地理位置、网络状况、节点负载等因素,返回最优CDN节点的IP地址
c、浏览器向该CDN节点请求内容;如节点有缓存则直接返回,无缓存则回源站获取并缓存
关键组件:
a、源站:存储原始内容的真实服务器
b、边缘节点:全球分布的缓存服务器,存储热门内容副本
c、智能DNS:根据用户地理位置返回最近的边缘节点IP
d、负载均衡:动态分配请求到最优节点,避免单点过载
2、以蓝队的视角如何看待CDN
a、如何配置CDN
基础配置步骤:
a、域名接入:将加速域名解析到CDN服务商提供的CNAME地址
b、源站配置:设置源站IP或域名,指定回源端口和协议
c、缓存策略配置:根据业务需求设置不同路径的缓存规则(如静态资源缓存7天,动态页面不缓存)
d、HTTPS配置:上传SSL证书,开启HTTPS加速和安全传输
安全加固配置:
a、源站IP访问控制:配置防火墙规则,仅允许CDN节点的IP段访问源站,拒绝任何直接访问源站的请求
b、Referer防盗链:配置访问控制,识别和过滤非法访客,防止流量盗刷和恶意攻击
c、Rate Limiting:配置严格限流规则,防止CC攻击
d、WAF开启:启用Web应用防火墙,拦截SQL注入、XSS等应用层攻击
b、配置CDN后有何作用
a、隐藏源站真实IP:用户始终只与CDN节点交互,源站真实IP完全不可见,攻击者难以直接攻击源站
b、防御DDoS攻击:CDN的分布式架构拥有巨大带宽,可将海量攻击流量分散到全网节点吸收消化
c、减轻源站压力:边缘节点缓存大量静态内容,源站请求量可大幅下降
d、提升访问速度:用户就近访问,减少网络传输延迟
e、高可用性保障:节点冗余设计,源站故障时缓存内容仍可为用户提供服务
f、防御应用层攻击:配合WAF功能,在CDN节点层面拦截恶意请求
c、为什么要配置CDN
a、安全需求:防止源站IP泄露后被DDoS攻击、CC攻击或漏洞扫描直接命中
b、性能需求:提升用户体验,减少页面加载时间
c、稳定性需求:应对突发高流量,防止源站过载崩溃
d、成本优化:通过就近访问减少跨区域带宽传输成本
e、合规需求:部分行业监管要求具备一定的DDoS防护能力
3、以红队视角如何看待CDN
1、如何识别CDN
方法一:多地Ping检测
使用在线Ping工具(如ITDOG、站长工具、Ping.pe)对目标域名进行全球多节点Ping:
未使用CDN:各地区返回的IP地址完全一致
已使用CDN:不同地区、不同运营商返回多个截然不同的IP地址
常用在线工具:
方法二:Nslookup/Dig检查
通过命令行查询域名的DNS记录,观察CNAME记录:
bash
dig target.com如输出包含 *.w.kunlunsl.com(阿里云CDN)、*.cloudfront.net(AWS CloudFront)等明显的CDN厂商CNAME别名,则说明开启了CDN
2、如何绕过CDN识别真实资产
方法一:子域名枚举
原理:很多网站主站配置了CDN,但子域名(如mail.xxx.com、dev.xxx.com、oa.xxx.com)因运维疏忽未配置CDN,直接暴露源站IP
工具:Subfinder、OneForAll、Layer子域名挖掘机
操作:枚举所有子域名后逐个解析IP,发现未上CDN的子域名
局限性:如配置了泛解析加速(*.example.com),该方法失效
方法二:DNS历史解析记录查询
原理:CDN部署前,域名曾直接解析到源站IP,这些历史A记录可能仍被DNS缓存服务保留
工具:ViewDNS、dnsdumpster、SecurityTrails
操作:查询域名的历史DNS记录,找到CDN部署前的源站IP
方法三:SSL证书查询
原理:源站IP通常与SSL证书绑定,通过证书信息可发现源站IP。即便源站隐藏于CDN之后,SSL证书中仍可能包含真实IP信息
工具:crt.sh、Censys
操作:搜索目标域名的SSL证书历史记录,提取证书中的IP地址
方法四:国外节点访问(利用地域配置差)
原理:国内中小网站为节约成本,仅购买“中国大陆加速”套餐,海外请求绕过CDN直接回源
操作:使用海外VPS或海外代理节点进行解析和访问,获取真实源站IP
方法五:C段扫描
原理:找到目标域名解析出的IP后,扫描其所在C段的IP,可能发现其他关联资产或源站
工具:FOFA、ZoomEye、Nmap
操作:通过空间引擎搜索,寻找可能未受WAF保护的Nginx反向代理或其他边缘设备
方法六:邮件头分析
原理:目标服务器发送的邮件(如密码重置邮件、注册确认邮件)的原始邮件头中,可能包含源站真实IP
操作:注册目标网站账号,触发邮件发送,查看邮件完整Header中的
Received字段
3、如何确定真实资产
确认步骤:
a、IP验证:找到可疑真实IP后,直接访问该IP,观察返回内容是否与目标网站一致
b、端口扫描:对确认的源站IP进行端口扫描,发现更多开放服务和潜在攻击面
c、关联分析:通过FOFA、ZoomEye等空间引擎,搜索该IP关联的其他域名和资产
d、C段扩展:扫描源站IP所在C段,发现同一网络内其他潜在目标
防御建议(蓝队篇,红队需知):
蓝队可采取以下措施防止源站IP泄露:
a、只允许CDN节点IP访问源站,配置严格的ACL白名单
b、定期更换源站IP(建议每月轮换)
c、禁止源站直接对外发送邮件,或使用第三方邮件服务代理
d、子域名统一接入CDN,避免出现防护死角
e、开启WAF的IP信誉库防护和严格限流规则
二、蜜獾(主动欺骗防御系统)
1、基本定义
注意:在网络安全领域,“蜜獾”常与“蜜罐”(Honeypot)混用,形成“主动欺骗防御体系”,包含以下概念:
蜜罐(Honeypot) 的核心定义:蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机。
在蜜罐防御体系中,有三个层次的概念:
蜜饵(Honeytoken) :最轻量级的诱饵,如假API密钥、假数据库账号、假员工邮箱等,一旦被访问或使用,立即触发安全告警
蜜罐(Honeypot) :模拟真实服务的主机或虚拟系统,伪装成Web服务器、数据库、SSH服务等,吸引攻击者攻击并记录行为
蜜网(Honeynet) :由多个蜜罐组成的仿真网络环境,模拟真实企业网络拓扑,诱使攻击者深入探索
蜜獾(HoneyBadger) 的两种指代含义:
a、开源主动防御框架HoneyBadger:这是一个针对目标地理定位的开源框架。不同于传统的蜜罐被动检测恶意行为,HoneyBadger是一个主动防御工具,用于确定恶意行为者的身份及其地理位置。它通过代理技术收集目标主机信息,实现主动地理定位和多平台支持。
b、“高交互蜜獾” :在蜜罐基础上的升级概念,指在传统蜜罐中预先注入反击代码,当攻击者触发时,反方向获取攻击者终端设备上的信息,进行主动的网络追踪和溯源。
2、以蓝队的视角如何看待蜜獾/蜜罐
a、如何配置蜜罐
部署位置选择:
公网蜜罐:尽早部署以便被FOFA、鹰图等空间引擎收录,让红队尽早发现并攻击
内网蜜罐:在内网调试后再部署,模拟脆弱服务捕获攻击者的横向探测行为
部署层次策略(分层部署):
外层蜜罐:开放常见端口,诱捕自动化扫描和初级攻击者
中层蜜罐:高仿真业务系统,诱捕高级攻击者
深层蜜罐:结合真实系统伪装,用于反制溯源
常见蜜罐工具:
HFish:国内流行的免费蜜罐平台,支持多种服务模拟和告警
OpenCanary:最流行的灵活蜜罐守护进程,可触发系统日志、邮件告警
Honeyd:在网络中创建虚拟主机的小守护进程
Canary Tokens:轻量级蜜饵工具
配置示例(HFish部署):
bash
git clone https://github.com/hacklcx/HFish.git
cd HFish && pip3 install -r requirements.txt
python3 hfish.pyb、如何使蜜罐合理化(伪装)
核心原则:蜜罐不能太假。部署的蜜罐系统应尽可能与业务相关,且需要模拟出相对应的网络、服务器和终端设备。
a、服务模拟:同一蜜罐的多个端口开启不同的Web服务,给攻击者一种“靠自己努力获取成果”的假象
b、诱饵文件投放:在蜜罐文件系统中放置伪装的“敏感文件”(如fake_passwords.xlsx),诱捕攻击者下载并触发告警
c、高仿真蜜罐:部署高仿真WebLogic、SSH服务等,模拟真实业务环境
d、异构伪装:使用与真实系统不同的技术栈部署蜜罐,防止攻击者通过指纹识别判断
e、蜜网构建:构建包含Web服务器、数据库、域控的仿真内网,诱捕高级攻击者
f、分层混淆:
第一层:伪装成真实系统的蜜罐,尽可能还原业务功能
第二层:将真实系统伪装成蜜罐,让攻击者产生误判
c、在红蓝对抗中如何使用
蓝队战术价值:
a、早期预警:部署蜜罐捕获攻击者的横向扫描行为,第一时间发现入侵
b、攻击溯源:通过蜜罐获取攻击者的IP地址、攻击工具和手法,进行溯源反制
c、反制红队:高交互蜜罐注入反击代码,反向获取攻击者终端设备信息
d、消耗攻击时间:精心设计的高交互蜜罐可以拖延红队数天时间,消耗其攻击精力
e、情报收集:收集攻击者的IP、工具样本、攻击路径,丰富威胁情报库
3、以红队视角如何看待蜜獾/蜜罐
a、如何识别蜜罐
手动识别:
a、端口与服务异常:蜜罐通常同时开放多个看似相关的端口服务,需判断是否符合业务逻辑
b、响应延迟差异:某些蜜罐响应请求存在固定的延迟模式,与真实服务有差异
c、命令行交互异常:在SSH/Telnet蜜罐中执行复杂命令时,响应可能不符合真实系统行为
d、低交互蜜罐特征:低交互蜜罐仅开放一些简单的服务或端口,用来检测扫描和连接,这种容易被识别
通过查看Web指纹识别常见的蜜罐:
a、开源蜜罐指纹:开源蜜罐通常保留版权信息或特定返回格式,可通过手动验证收集指纹库
b、商业蜜罐JS特征:知名商业蜜罐会在首页加载特定JS文件,可通过分析JS代码中的混淆变量进行识别
c、前端请求特征:当访问某个应用系统时有大量对各大主流厂商的ajax/jsonp请求时,大概率就是遇到蜜罐了
d、管理端指纹识别:蜜罐管理端通常有特定的页面结构和JS代码特征,可通过URL路径和响应码判断
e、Banner信息:某些蜜罐返回的Server头、Banner信息具有明显特征
b、如何确认蜜罐,或确定蜜罐后不被记录
确认蜜罐:综合多种识别方法交叉验证,如发现多个可疑特征(异常端口+异常JS请求+低交互特征),即可确认。
不被记录的策略:
a、代理链跳转:多级代理跳转,隐藏真实攻击来源
b、使用专用渗透环境:攻击方必须使用纯净的专用渗透环境进行攻击,完全与日常工作环境区分开来,并做测试环境的定期还原
c、浏览器防护:
使用隔离的浏览器进行渗透,与日常浏览器区分
开启无痕模式,避免本地Cookie泄露
安装反蜜罐插件(如Bypass Honeypot),拦截可疑的XSSI请求和JS指纹采集
d、虚拟机隔离:渗透操作在虚拟机中进行,每次项目完成后回滚镜像
e、禁用或绕过fingerprintjs:蜜罐中常使用fingerprintjs库根据不同IP和浏览器的特定标识判断访客身份
f、抓包分析:通过抓包方式获取外域的请求链接,发现蜜罐特征后及时中断访问
c、蜜罐的基本特征有哪些
a、无业务流量特征:蜜罐没有正常的业务用途,所有流入/流出蜜罐的流量都预示着扫描或攻击行为
b、低交互特征:低交互蜜罐仅模拟部分服务协议,不支持执行复杂命令
c、高仿真但有瑕疵:高仿真蜜罐虽有较高迷惑性,但在细节上总有瑕疵(如配置文件路径、版本号、命令返回格式等)
d、JS指纹采集特征:蜜罐常利用jsonp/xss漏洞收集攻击者身份信息,表现在前端会有大量指向主流厂商的ajax请求
e、端口开放特征:蜜罐开放特定端口的组合常具有规律性,不符合真实业务部署逻辑
f、配置失真特征:部分蜜罐系统在配置层面存在异常,如使用了真实业务中不存在的默认口令组合
d、在红蓝对抗中如何快速测试是否是蜜罐
快速测试清单:
a、试探端口开放:使用Nmap扫描目标端口,判断端口开放组合是否符合常规业务逻辑
b、发送异常请求:发送格式错误或超长的请求数据包,观察响应是否过于规范或出现蜜罐特有错误页
c、检查JS请求:打开浏览器开发者工具查看Network面板,观察是否存在大量指向非目标域名的jsonp/ajax请求
d、测试低交互行为:尝试执行需要高交互的命令(如NC反弹Shell、上传文件等),观察是否被限制
e、延迟差异测试:多次发送相同请求,测量响应时间是否存在固定规律(蜜罐可能存在模拟延迟)
f、Banner特征对照:收集常见蜜罐的Banner指纹,快速对照识别
g、子域名试探:访问看似高风险的高价值服务(如xxl-job、zabbix、WebLogic管理后台),若发现存在明显弱口令但系统表现异常,极可能是蜜罐
CDN和蜜獾
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法