1. 概述#
攻防演练中的溯源一般是:还原攻击链条,溯源到黑客的虚拟身份、真实身份,溯源到攻击队员,反控攻击方主机
一般来说,蓝队队员获取到的数据大多来源于以下几种:
- 蜜罐平台
- 流量检测平台
- WAF、IDS、IPS
- 钓鱼邮件
在我们拿到数据信息后需要对数据进行分析
重点关注的信息:
- IP 地址
- DNSLOG、C2 地址
- 钓鱼邮件中的信息
- 蜜罐抓到的 Hacker ID
不同的设备有不同的分析思路
2. 溯源一般流程#
攻击源捕获
- 安全设备报警 (扫描出的 IP,入侵事件)
- 日志流量分析
- 服务器资源异常 (异常的文件,进程,端口,计划任务等)
- 邮件钓鱼 (获取恶意文件样本)
- 蜜罐系统 (获取攻击者行为)
溯源反制手段
- IP 定位技术
- ID 追踪术 (搜索引擎,社交平台等)
- 网站 url (whois 查询等)
- 恶意样本 (提取样本特征,用户名 ID 等信息)
攻击者画像
- 还原攻击路径
- 攻击目的
- 用什么网络代理
- 攻击手法 (web 渗透,近源渗透,社会工程等)
- 得出攻击者的:虚拟身份,真实身份,联系方式,组织情况等信息
3. WAF、流量检测设备#
- 请求数据包 -> 可能包含反弹的 C2 地址或 DNSLOG 地址
- 某些可注册的网站 -> 获取攻击者注册手机号、身份证等信息
- IP 地址 -> 分析攻击行为路径 -> 过滤国外肉鸡 IP
- 重点关注来自于阿里、腾讯等云服务器的攻击流量
4. 威胁情报分析#
拿到攻击 IP 后我们可以在威胁情报分析平台上进行搜索,获取到如:主机信息、近期活动情况、域名解析
可利用网站:
4.1 主机信息#
重点关注端口信息
- 存在 web 应用端口 -> 反制(查看端口服务,masscan、nmap 扫描端口,端口对应漏洞)
- CS TeamServer 50050 -> 脚本爆破、DDOS 搅屎(批量上线钓鱼马,启几百个进程,DDOS 红方的 cs 端)
4.2 域名解析记录#
最近解析到该 IP 上的域名
- 存在 -> 继续分析
- 不存在,并且 ping 该域名的结果非攻击 IP,则停止分析
.cn 的域名
- 直接获取域名注册信息
5. IP & 域名溯源#
在某些情况下,攻击者可能会留下自己使用的 IP 或者域名,通常用于下载恶意代码、反向代理等,在获取到攻击者所使用的 IP 或域名后我通常会采用以下办法溯源:
5.1 IP#
- 通过威胁情报查询,可能会获取到 IP 的定位、运营商、解析的域名
- Nmap 全端口扫描该 IP 所开放的端口,对提供服务的端口进行漏洞扫描,尝试拿下攻击服务器
- 使用网络资产测绘引擎搜索攻击溯源 IP,获取该 IP 提供的服务
- 查询该 IP 的精确定位数据
- 对该 IP 上提供的服务进行 Dos 攻击,防止继续进行攻击
- 大部分的攻击者会使用 VPS 进行代理转发,或者直接使用 VPS 进行攻击,可以向该 VPS 提供商提交工单,说明该 IP 的攻击行为,服务提供商可能会禁止该 IP 的攻击行为,或者封禁该攻击者账户
5.2 域名#
- 通过 Whois 查询,获得邮箱、姓名
- 在工信部 ICP 查询域名备案信息
- 查询该域名的历史 Whois 信息
- 在搜索引擎中搜索该域名,可能会发现攻击者的其他账号信息
地理位置查询:
红队攻击者会借助手机热点发起攻击,我们可以通过地理位置查询到他们所处的位置
6. 蜜罐溯源#
在现代浏览器中,同源策略是保证用户访问安全的核心,为了允许跨域请求,诞生了 JOSNP。
在 HTML 中,script
标签的 src
属性不受同源策略的影响,通过 script
引用一个不同域名的 JavaScript 文件来实现跨域请求,这就是 JSONP。
蜜罐获取社交信息也基于此原理。
蜜罐通过 JSONP 实现获取社交信息相对来说比较困难,一般需要满足以下两个条件:
- 需要获取的第三方网站允许跨域,且跨域信息中包含敏感信息
- 攻击者登录过第三方网站,且未退出登录
通过蜜罐获取到社交信息后,一般会通过以下几个方面入手:
6.1 QQ 号#
- 获取的信息为 QQ 号,通过 QQ 号大额转账实现获取 QQ 号绑定银行卡的个人信息,基本可以实现获取姓和名中的一个字
- 在百度贴吧等论坛中搜索该 QQ 号或者 QQ 号所属邮箱,可能会获取百度贴吧账号
- 使用 Whois 反查 QQ 邮箱,可能会获取姓名或域名
- 在微信中搜索该 QQ 号,可能会获得该攻击者微信账号
- 使用小号添加该 QQ,尝试通过社工手段套取更多信息(建立在获取大量个人信息的情况)
6.2 手机号#
- 在支付宝中向该账号转账,尝试获取手机号对应的真实用户姓名
- 在微信中搜索该手机号,尝试获取微信账号
- 在钉钉上搜索该手机号,可能会获得部分真实姓名和工作单位
- 通过搜索引擎搜索该手机号,可能会获得其他账号信息
- 查询该手机号注册过的网站信息
6.3 贴吧账号#
- 使用贴吧工具箱获得该账号主页和发帖内容
- 查看发帖内容,或许能够找到 QQ 号、手机号、邮箱、大致的年龄、姓名等
6.4 社工库#
在我看来,社工库更多用于交叉验证,并非直接获取数据的一种途径,所以应该在获取到足够多的信息后再与社工库比较,以证实真实信息
6.5 其他账号信息#
- 搜索 QQ 昵称、微信昵称、支付宝昵称、贴吧昵称等信息,可能会获得其他平台的信息,如:微博、知乎、GitHub 以及其他论坛和 SNS 社区
- 详细查看账号中的信息,以提取更多有用信息,如:姓名、性别、年龄、住址、工作单位、就读学校等
6.6 学校#
- 如果获取到学校信息和姓名,可以在搜索引擎中获取该攻击者的专业信息、班级、入学时间、毕业时间、学号等
- 可以通过该学校贴吧、QQ 群询问等,获取更多个人信息
- 硕士及以上学位,可以通过知网搜索论文,确认研究方向
6.7 邮箱#
- 查询该邮箱注册过的网站信息
6.8 HackerID 溯源#
- 搜索引擎
- 各大 SRC
- 社群咨询
7. 总结#
溯源的结果一般如下:
-
姓名 / ID:
-
攻击 IP:
-
地理位置:
-
QQ:
-
IP 地址所属公司:
-
IP 地址关联域名:
-
邮箱:
-
手机号:
-
微信 / 微博 / SRC/ID 证明:
-
人物照片:
-
跳板机:
-
关联攻击事件:
在溯源过程中最重要的是社工库,其次才是上述的溯源分析思路
如果有蜜罐设备,尽量设置成高交互的