目录
主动收集定义
主动信息收集是指通过直接与目标系统进行交互通信,主动探测目标系统的信息。这种方式可能会留下访问痕迹,并且可能会被目标系统检测到。主动信息收集的目的是为了获取目标系统的详细信息,包括主机存活状态、开放端口、服务类型、操作系统类型等,以便进行后续的渗透测试或安全评估。
一、子域名主动收集(被动在信息收集一)
既然是主动收集,那就免不了脚本探测。
1.灯塔信息收集工具:
安装教程就不写了,详情参考:
ARL-Plus灯塔搭建教程【Kali-另辟蹊径】-CSDN博客
非常全的教程
第一步:
先打开ARL,我这里直接安装在根目录的ARL路径下,如果没有需要先进入ARL目录,启动命令:
docker-compose up -d
这时打开浏览器输入网址:https://localhost:5003/(没有创建用户需要创建用户)
点击添加任务
其中:
任务名称:随意,最好填写要测试目标网站的名称
目标:填写被动信息收集到的域名信息(被动收集在信息收集一中,建议先进行去重再进行存活测试最后进行扫描)
域名爆破类型:因为子域名收集,基本上是使用字典进行爆破,还有一个类型是DNS智能生成字典,原理是根据已有的域名信息,通过一定的算法和规则自动生成可能的域名组合,然后进行爆破尝试,这种可能会有遗漏,最后还有一个测试模式是少量访问进行网站测试用。
端口扫描类型:有ALL(扫描全部端口),top100(扫描最常用的前100个端口),top1000(扫描最常用的前1000个端口),测试(仅扫描少量端口进行网站测试用),这里推荐使用top1000进行扫描。
勾选扫描方向建议除了最后两行,其它全部勾选,因为最后的nuclei调用是漏洞扫描器,需要专门进行配置,WIH调用是在网页的JavaScript代码中查找并提取各种敏感信息,会增加大量扫描时间,这里建议看我的信息收集一(空间测绘)有过举例。
这里可以配置api进行扫描,这里以fofa的api举例:
使用命令:
vim config-docker.yaml
配置api的话扫描出来的东西会更多。
另外这里可以删除掉一些不让探测的域名类型:
把这些全删。
1、策略配置:
配置如下:
1.域名和ip配置
域名爆破类型、端口扫描类型和之前创建任务一样,端口扫描的选项全选。
2.ip高级配置:
默认即可,关键在于对网站的每秒访问量超过多少会导致banIP。
3.站点和风险配置:
和创建任务选项一样,除了后两个不点,其它全选。
4.PoC配置:
这个建议不点,因为如果有安全设备,网站很可能会ban。
5.弱口令探测:
全选,因为一般不会ban。
6.资产组配置:
什么都不写。
确定即可。
然后选择任务下发,将刚才的目标域名再填入一遍。
2、指纹管理
使用arl-finger-add进行指纹添加,附下载安装链接:
ARL 灯塔 | ARL 灯塔 — 指纹添加_arl添加指纹-CSDN博客
下载完成后进行arl-finger-add文件夹,打开cmd,输入:
python3 ARL-Finger-ADD.py https://kaliIP:5003/ admin arlpass
然后就会自己导入进去。
3、全局查看
配置完成后进入任务管理点击全局查看。
进入后点击子域名即可查看跑出的全部子域名信息。
4、信息整理(主被动收集到的全部信息整合并排除无用信息)
把所有信息导出来后要对其进行整理,将主被动收集到的信息进行整合,因为我配置了fofa的api,所以被动收集的信息和主动收集的信息应该相差不大,如果没有配置fofa的api的话,在excel里可以将fofa导出的子域名信息和灯塔导出的子域名信息合并,再进行去除响应码不为200的网页,最后去重即可,不再演示了。
导出后先进行排序(我这里仅导出www.huazhu.com的子域名信息),将title字段和状态码字段进行排序筛选
将所有有title,且状态码为200的网站全部打开,并一个一个分析网页并备注。
这里推荐一个插件open multiple urls at once,在拓展——插件——获取拓展中搜索open multiple urls at once,下载即可。
一个一个查看后进行备注,
再点击下面的域名信息,将dns解析类型为cname的全部丢掉,因为cname大概率配置了cdn,其解析结果还是域名。
最后把挑选出来的数据整合起来。(我也不太会,以后学习中不断更新吧)
如果数据量过大,推荐一款工具ehole:
【web指纹识别】Ehole简介、下载、使用方法、命令-CSDN博客
输入指令:
ehole_windows.exe finger -l <IP文本文件>
收集到有用信息会标红。
二、IP信息收集
因为一个IP可以绑定很多域名信息,可能前面收集的很多域名信息全部都解析到一台电脑上,并且IP信息可以确定目标服务器的网络位置,是信息收集最关键的一步。
这里直接使用刚才灯塔获取的ip地址,导出即可。
1、端口信息:
在收集到IP信息后就可以进行渗透测试了,渗透测试的第一步就是端口扫描。端口扫描也分主被动,在得知目标IP后,可以使用:
1.使用namp收集端口信息
在kali里直接输入(kali自带namp):
nmap -iL <保存ip地址的txt文件>
或
namp <目标IP>
这里就用到之前进行信息整理获得的IP信息了。
可以看到其打开了443端口
2.使用fofa被动收集端口信息
ip = "120.133.61.6"
可以看到开发了443端口。
最后再整合进excel中。
端口对应攻击方法表:
2、C段
C段扫描是指对IP地址中第三个字节相同的所有IP地址进行扫描。例如,对于IP地址192.168.1.0/24,C段扫描将扫描从192.168.1.0到192.168.1.255的所有IP地址。
通过扫描C段,可以找到局域网内的所有主机,从而确定目标主机的位置。
这里直接使用灯塔主动收集到的c段信息即可。
点击IP数对应列即可查看对应IP的c段扫描结果。然后继续使用namp扫端口即可。
也可以使用fofa进行被动收集
命令:
ip="目标IP/24"
3、DNS历史解析记录
可以通过查看dns历史记录来寻找真实IP,具体方法在信息收集一。
链接:
三、绕过坑点(在收集IP信息时)
1.泛解析:
域名配置时,将主机名配置为了*,那么访问该域名的任意子域名,均会有解析,需要人工进行排除,就是一个一个打开看,能够正常访问就是正常的域名网站。
2.SaaS软件即服务
定义:软件公司将甲方的系统搭建在自己的服务器上,甲方只负责运营,不再负责服务器相关运维。
如果目标存在第三方服务,有可能使用的是非目标的域名。
在遇见SaaS时,需要核对资产,不能打偏了。
查找资产(谷歌语法或fofa):
1.查找公司名称相关资产
谷歌语法示例
如果要查找名为“华住”的相关资产,可以使用以下语法: “site:华住 -tech.com”:这个语法会在谷歌搜索结果中显示华住 -tech.com域名下的所有页面,有助于发现该公司的官方网站、子域名等资产。 “intitle:华住酒店”:此语法会查找标题中包含“华住酒店”的网页,可能找到该公司的产品宣传页、新闻报道等相关资产。
FOFA语法示例
如果知道“华住酒店”的一些特征,比如使用了特定的服务器技术。假设他们使用了Nginx服务器,在FOFA中可以使用: “app = "Nginx" && title = "华住酒店"”:这个语法会查找使用Nginx服务器并且标题中包含“华住”的资产,可能会发现该公司运行在Nginx服务器上的网站或应用等相关资产。
2.查找系统名称相关资产(园区、食堂、门禁、一体化、办公)
谷歌语法示例
对于名为“XYZ园区系统”: “site:xyz -park.com intext:园区系统”:该语法会在xyz -park.com域名下查找包含“园区系统”文本的页面,可能找到该园区系统的登录页面、使用说明页面等相关资产。 “filetype:pdf 园区系统 xyz -park.com”:如果想查找关于该园区系统的PDF文档(可能包含操作手册、架构图等),这个语法会在xyz -park.com域名下搜索PDF类型且包含“园区系统”的文件。
FOFA语法示例
假设“XYZ园区系统”使用了MySQL数据库并且是基于Java开发的: “app = "MySQL" && body = "XYZ园区系统" && lang = "Java"”:这个语法会查找使用MySQL数据库、页面内容包含“XYZ园区系统”并且是用Java开发的相关资产,可能找到该园区系统的服务器、相关应用等资产。
供应链攻击也是这样。
3.政务云/集约化
政府级别单位会统一管理信息化系统,所有单位和部门全部使用同样的域名和同样的IP,
在做政府等单位渗透测试时,注意不要打偏了。(还是一个一个打开看看是否是要攻击的目标范围)
4.cdn绕过
1、CDN 原理
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输得更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
2、CDN特点
1.第三方部署
CDN服务通常由专业的第三方提供商提供,如阿里云、腾讯云、网宿等。这些提供商在全球范围内拥有大量的服务器节点,能够为用户提供高效的内容分发服务。
2.反向代理
cdn服务器相当于反向代理服务器,反向代理服务器位于源服务器之前,对于客户端而言,反向代理服务器就像是原始服务器,从而隐藏了真实服务器的IP地址,提高了源服务器的安全性,防止恶意攻击。
3.缓存静态资源
CDN会在全球各地的边缘节点服务器上缓存静态资源,当用户请求访问这些资源时,直接从距离用户最近的CDN节点获取,大大缩短了数据传输距离,提高了访问速度。
4.云WAF(web应用防火墙)
云WAF可以对HTTP/HTTPS请求进行深度检测,识别并阻断SQL注入、跨站脚本攻击、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC攻击、恶意爬虫扫描、跨站请求伪造等多种Web应用攻击,保护网站的安全。
云WAF可以与CDN服务无缝集成,在CDN加速的基础上,对网站流量进行安全检测和防护,实现内容加速与安全防护的一体化解决方案
3、CDN解析原理
4、为什么要绕过CDN
- 可以找到更多的旁站资产
- 可以找到更多的ip信息
- 可以找到更多的端口开放信息
- 可能可以绕过云WAF
5、发现CDN
1.旁站验证:
查找有无无关目标的旁站,如果有很多其它公司的旁站,那么很可能是cdn。
同IP网站查询,C段查询,IP反查域名,在线C段,旁站工具 - WebScan
2.多地ping
如果多地ping出来的IP不一样,那么基本上就是cdn了。
3.微步查看归属
微步会直接标明cdn(不一定)。
4.域名解析结果为别名 而不是ip(不一定)
ping出来是别名就基本认定为cdn。
6、绕过CDN
1.子域名/ 非web端口(常用)
有些网站的主域名配置了cdn,但是没有给子域名配置。
通过在空间测绘引擎上搜索目标域名的子域名, 和非80/443端口 有可能会发现与子域名关联的网站并未部署CDN服务器。然后使用上述所写判断是否为cdn。
具体为fofa的c段收集。
2.邮箱服务器
一些网站在提供邮箱注册、邮箱找回密码、RSS邮件订阅等功能时,会使用真实服务器发送邮件。可以通过注册账号、请求找回密码等操作,让网站给自己发送邮件,然后查看邮件头信息,使用burpsuite从中提取出真实IP。
条件: 得是自己的搭建的,并且在本地的. 由于传统CDN无法代理邮件服务, 所以部署在本地的邮件服务器有可能是真实IP。
3.证书
CDN的证书信息和IP的证书信息比对
因为CDN提供商会将CDN提供给很多个厂商,但是每个厂商的证书可能不一样,所以CDN提供商可能会在其服务器上使用与源服务器相同的SSL/TLS证书,或者使用域名解析证书,这样证书中可能包含源服务器的相关信息。攻击者可以通过分析证书的详细信息,如证书的颁发机构、有效期、公钥等,获取源服务器的真实IP地址。在信息收集一。
4.查询历史DNS记录
许多网站在使用CDN之前,会将域名直接解析到真实IP上。通过查询域名的历史解析记录,有可能找到网站未使用CDN时的真实IP。在信息收集一。
5.使用国外主机解析域名
部分CDN厂商主要针对国内线路进行优化,而在国外的线路部署较少。可以利用国外的DNS服务器进行域名解析,通过国外主机访问目标网站,有较大概率获取到真实IP。
使用Cloudflare 注册并添加站点:
在Cloudflare官网注册账号,添加要解析的域名,选择免费套餐。
修改域名解析服务器:在域名注册商处将域名的解析服务器修改为Cloudflare提供的服务器。
配置DNS记录:在Cloudflare的DNS设置界面,添加域名解析记录,如A记录,将域名指向服务器的IP地址。
6.APP/小程序
需要拥有小程序或者APP才可以,通常厂商不会给APP/小程序配置cdn。
具体在信息收集一的主机信息收集中。