信息收集问题
[[信息收集/打点-信息收集|打点-信息收集]]
信息收集问题
根据目标的不同选择不同的收集方式,信息收集不是一个明确的流程,第一步干啥第二步干啥。注意:具体情况具体分析,eg:你不可能对一个个人的网站去企查查进行信息收集搜索。
^6e49dd
操作系统
- Web 大小写区分(Windows 对大小写区分不明显,Linux 对大小写区分较为明显)
- 端口服务的特征(eg:远程服务 Windows 3389 ,Linux 22)
- TTL 值进行判断(一般 Windows 的 TTL 值较大)
IP 资产
归属地、云厂商、IP 反查机构/域名、C 段查询
端口资产
网络资产引擎、在线端口扫描、本地离线工具。
端口扫描可能存在的问题:
- 扫描不到:防火墙、白名单或入站策略等原因导致的通讯不上; -> 更换扫描协议(几率性绕过)
- 扫描错误:例如目标在内网环境,扫描的实际看到的只是一个转发机器,和目标的上面端口不一致; -> 借助漏洞进行反连,eg:ssrf(不过好像没必要,有其他漏洞直接用其他漏洞干就完了,反连回来找端口干什么)
应用服务
[[常用端口介绍及利用/常用端口介绍及利用收集|常用端口介绍及利用收集]]
角色定性判定
网站服务器、数据库服务器、邮件系统服务器、文件存储服务器、网络通信服务器、安全系统服务器等。[[#^6e49dd|具体情况具体分析]]
子域名收集
注意对子域名进行筛选整理,太多垃圾子域名会影响后续工作,这点同时也受收集域名的方式的影响;
对域名做进一步的验证,验证其可用性,对收集到的信息进行整理。
指纹识别
- 平台
- 项目
https://github.com/AliasIO/wappalyzer
https://github.com/HackAllSec/hfinger
https://github.com/Tuhinshubhra/CMSeeK
https://github.com/lemonlove7/EHole_magic
https://github.com/emo-crab/observer_ward
- 使用网安引擎搜索 ico 图标识别
源码泄露&获取
总结和示例:
https://www.secpulse.com/archives/124398.html
https://mp.weixin.qq.com/s/QgLDdaefXlZtvlSiFQShZw
https://mp.weixin.qq.com/s/zhjxW2mUEgq6dFAp3kBcgQ
可能得原因:源码本身的特性,管理员的意识、配置等。
Webpack 打包泄露、composer.json、GitHub 源码泄露、Git、svn、DS_Store、swp、备份压缩文件、hg 源码泄露、cvs 泄露、Bzr 泄露、WEB-INF/web.xml 泄露。
指纹识别平台获取源码、开源平台(GitHub、Gitee、oschina等)等来获取。
GIT: https://github.com/lijiejie/GitHack
SVN: https://github.com/callmefeifei/SvnHack
DS_Store: https://github.com/lijiejie/ds_store_exp
另类目标源码获取
从目标转到寻找源码系统上,从源码系统上找应用目标
JS 相关信息收集
一般收集:接口 URL 提取、后端地址提取、敏感信息提取、配置信息提取、其他(环境、注释、用途等);在 JS 中寻找 URL 地址,分析代码逻辑(加密算法、APIkey 配置、验证逻辑等)进行后期安全测试。
- 可能存在的问题
- 源码泄露(代码审计、JS 逆向分析);
- 未授权访问(JS 里的分析更多的访问 URL 接口路径);
- 敏感 Key 泄露(JS 文件中配置接口信息,云应用、短信、邮件、数据库等)
- API 接口安全(代码中加密提交参数传递等)
流行 JS 框架:Vue、NodeJS、JQuery、Angular等
判断 JS 开发的应用
- 插件 wappalyzer
- 源程序代码简短
- 引入多个 js 文件
- 一般有
/static/js/app.js等顺序的 js 文件 - 一般 cookie 中有
connect.sid
获取有价值的信息
1 | src= |
CDN
- 传统访问:用户访问域名 -> 解析服务器 IP -> 访问目标主机;
- 普通 CDN :用户访问域名 -> CDN 节点 -> 真实服务器 IP -> 访问目标主机;
- 带 WAF 的 CDN :用户访问域名 -> CDN 节点(WAF)-> 真实 IP -> 访问目标主机;
一些不同的配置可能带来不同的问题:
- 加速域名 - 仅加速了部分指定的域名(eg:子域名没有进行配置,可以访问子域名直接访问到真实 IP)
- 加速区域 - 国内/国外
- 加速类型 - 启用加速的资源
- 其他 SSL 证书,DNS 解析记录等;
超级Ping: http://www.17ce.com/
超级Ping: https://ping.chinaz.com/
接口查询: https://get-site-ip.com/
CDN厂商查询: https://cdn.chinaz.com/
CDN厂商查询: https://tools.ipip.net/cdn.php
(有点老旧,需要配置好里面的文件)
结合关键字固定 IP 段找真实 IP :判断加速厂商;IP 库筛选地址段;借助全网扫描工具,配置范围扫描;找到最有可能得真实 IP 地址;
(很多都是根据已有的解析记录来得出真实 IP 的一个可能结果;)
参考学习:
https://mp.weixin.qq.com/s/M_tdPxhtOm9XPoVq721FPg
常见方法:
子域名,邮件系统,国外访问,证书查询,APP抓包,网络空间、通过漏洞或泄露获取,扫全网,以量打量,第三方接口查询等
1. 查询历史DNS记录:通过查询历史DNS记录,可以找到使用CDN前的IP地址。常用网站有DNSDB、微步在线、Netcraft、ViewDNS等。
2. 查询子域名:一些网站可能只对主站或流量大的子站点使用CDN。通过查询子域名对应的IP地址,可以辅助找到网站的真实IP。常用工具包括微步在线、Dnsdb查询法、Google搜索等。
3. 网络空间引擎搜索:利用网络空间搜索引擎(如Shodan、Fofa、ZoomEye)搜索特定关键词或特征,可以找到使用CDN的网站的真实IP地址。
4. SSL证书:扫描互联网获取SSL证书,进而找到服务器的真实IP。Censys是一个用于搜索联网设备信息并扫描整个互联网的强大工具。
5. HTTP标头:通过比较HTTP标头来查找原始服务器。例如,使用SecurityTrails平台搜索特定HTTP标头。
6. 网站源代码:浏览网站源代码,寻找独特的代码片段或隐藏的IP地址信息。
7. 国外主机解析域名:由于一些CDN服务在国外地区可能无法提供完整的保护,使用国外的主机直接访问目标网站可能会获取到真实IP地址。
8. 遗留文件:如phpinfo页面泄露,可能会显示服务器的外网IP地址。9. 漏洞探针:利用网站上的漏洞(如SSRF漏洞)让VPS获取对方反向连接的IP地址。
9. 网站邮件订阅:查看RSS邮件订阅的邮件源码,通常包含服务器的真实IP地址。查看邮件原文。
10. 全网扫描:使用Zmap、Masscan等工具对整个互联网进行扫描,针对扫描结果进行关键字查找,获取网站真实IP。
11. 解码F5 LTM负载均衡器:当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码,可以获取到真实IP地址。
12. 利用MX记录:如果网站在与web相同的服务器和IP上托管自己的邮件服务器,那么原始服务器IP将在MX记录中。
13. 利用favicon.ico:查看网站的favicon.ico文件,通过其唯一的hash值进行识别,有时可以找到与网站相关的真实IP地址。
14. 配置错误:检查CDN的配置细节,有时小小的配置错误就可能导致CDN防护被绕过。例如,CDN只配置了www域名,而直接访问非www域名可能获取到真实IP。
15. 协议差异:如果站点同时支持http和https访问,而CDN只配置了https协议,那么访问http可能获取到真实IP。
16. 利用网站功能:通过网站提供的某些功能(如邮箱注册、找回密码等),让网站主动暴露真实IP地址。
17. 搜索引擎查询:利用搜索引擎的特定查询语法(如site:和inurl:),结合目标网站的信息,可能找到与网站相关的真实IP地址。
18. 子域名挖掘机:输入域名即可基于字典挖掘子域名,通过查找子域名的IP地址来辅助找到网站的真实IP。20. IP库查询:使用IP库(如纯真数据库)来查询IP段,结合网站特征进行爆破,可能找到真实IP地址。
APP 应用
APP中收集资产:通讯抓包,静态提取,动态调试;
通过获取App配置、数据包,去获取 url、api、osskey、js 等敏感信息;
- 资产信息:IP 域名 网站 - 转到对应 Web 测试 API 接口测试 服务测试;
- 泄露信息:配置 key 资源文件 - key(osskey 利用,密钥配置等);
- 代码信息:代码安全 HOOK 绕过限制(证书,代理,脱壳等)- 逆向相关;
APP 名称、版本、开发者、下载量等。名称获取APP信息(爱企查/小蓝本/七麦/点点);
- 查备案信息在搜;
- 网站上有APP下载;
- 市场直接搜单位名称;
微信小程序
^7ec163
基本所收集的信息和 app 差不多;
微信小程序 - 源码架构解析
- 主体结构
小程序包含一个描述整体程序的 app 和多个描述各自页面的 page 。
一个小程序主体部分(即 app )由三个文件组成,必须放在项目的根目录,如下:
- app.js - 必需 - 小程序逻辑
- app.json - 必需 - 小程序公共配置
- app.wxss - 非必需 - 小程序公共样式表
- 一个小程序页面由四个文件组成,分别是:
- xxx.js - 页面逻辑
- xxx.json - 页面配置
- xxx.wxml - 页面结构
- xxx.wxss - 页面样式
- 项目整体目录结构
- pages - 页面文件夹
- index - 首页
- logs - 日志
- utils
- util - 工具类(mina 框架自动生成,你也可建立:api )
- app.js - 入口 js (类似于 java 类中的 main 方法)、全局 js
- app.json - 全局配置文件
- app.wxss - 全局样式文件
- project.config.json - 跟你在详情中勾选的配置一样
- sitemap.json - 用来配置小程序及其页面是否允许被微信索引
供应链&公众号&多渠道信息泄露
- GitHub/其他渠道(搜索引擎、网盘、文档等)上的信息泄露
例如:搜索 fofa-key;sql&学号&password;等一些用户大意的上传项目文件,导致一些数据或原始配置信息泄露;(特征、文件、密码、文档、人员等)
- 监控:eg:对期望目标的 GitHub 项目进行监控追踪,对实时更新状态进行监控。
监控项目:
https://github.com/madneal/gshark
- 供应链
利用商业购买系统、软件开发商、外包、代理商、招标文件、ico 图标等来搜集;
项目工具
一些集成化的项目将各种信息收集工具集成到一块,仅需配置 API key 即可,无需一个一个工具去搜索运行。(一般对系统要求较高,需要多线程的运行工具,集成化的搜索)
登录验证码绕过
万能/静态验证码
验证码重复使用
验证码在客户端/前端(eg:JS 中)生成
验证码不与会话绑定,不同会话使用同一验证码,验证码失去防重放作用,可爆破
OCR
模型识别
人工打码平台
API 接口,登录 API 与验证码接口分开,若登录 API 未强制验证码参数,或运行未空时依旧处理请求
不安全的登录逻辑,多次错误登录观察服务器响应,若只在第一次登录尝试时或在多册失败后才返回验证码,可以用时间差进行快速尝试
登录时使用某种令牌 token,但验证码没有与其绑定,进行会话劫持







