某QQ盗号网站的技术分析

某QQ盗号网站的技术分析
不是炒米线近期,我们观察到一个域名为 rb.ootits.com 的钓鱼网站,该网站通过一套精心设计的流程来窃取用户的QQ凭证。本文将从纯技术的角度,对其前端实现、数据交互及攻击链进行详细的剖析。
攻击流程总览
该钓鱼攻击并非单页面作战,而是构成了一个完整的、自动化的攻击链,大致可分为四个阶段:
- **诱饵阶段 (Lure)**:通过特定主题的页面吸引用户交互。
- **钓鱼阶段 (Phish)**:在高度仿真的页面上诱导用户输入凭证。
- **窃取阶段 (Exfiltrate)**:在后台将凭证数据编码并发送至服务器。
- **收尾阶段 (Redirect)**:将用户重定向至合法网站以掩盖攻击行为。
核心技术细节剖析
1. 场景化社会工程学:双层诱导设计
攻击的入口是一个伪装页面,而非直接的登录表单。
- 初始页面 (
index.html):- 主题伪装: 页面
<title>设置为“学生资料”,并使用School.png作为背景,构建了一个特定场景,旨在降低特定人群(如学生、家长)的警惕性。 - 交互诱导: 整个页面是一个可点击区域,触发
gout()JavaScript函数。该函数弹出一个提示:“当前文档过大,需要登录QQ才能查看”,为后续的登录请求制造了一个看似合理的理由。 - 流程跳转: 用户点击确认后,
window.location.href将页面导航至下一步的钓鱼表单/step_in/。
- 主题伪装: 页面
2. 前端规避技术:自定义虚拟键盘
这是本次钓鱼攻击中技术实现上最为关键的一环。
- 目的: 旨在绕过现代浏览器、密码管理器及终端安全软件的防护机制。
- 实现:
- 通过HTML和CSS构建了一套完整的屏幕虚拟键盘。
- 核心的密码输入框被设置为
readonly属性:1
<input id="p" class="inputstyle" maxlength="16" type="password" name="pass" placeholder="密码" readonly>
readonly属性使得用户无法通过物理键盘或操作系统弹出的软键盘进行输入,强制用户必须使用页面提供的虚拟键盘。这可以有效防止浏览器插件的密码自动填充、安全警告以及基于键盘事件的监控。
3. 数据外泄:编码与隐蔽通信
用户凭证的发送过程是静默的,通过后台AJAX请求完成,用户不会察觉到页面刷新。
- 数据封装与编码:
- 构造JS对象: 首先,脚本获取账号和密码,构造成一个JavaScript对象。
1
{ user: "114514", pass: "qwwedtb" }
- JSON序列化: 接着,该对象被转换成一个JSON格式的字符串。
1
'{"user":"114514","pass":"qwwedtb"}'
- Base64编码: 最后,整个JSON字符串被进行Base64编码,形成最终用于传输的载荷。
- 构造JS对象: 首先,脚本获取账号和密码,构造成一个JavaScript对象。
- 数据传输:
- 编码后的字符串作为GET请求的参数,由一个名为
ds()的函数通过XMLHttpRequest发送到后台的data.php脚本。 - 请求示例如下,其中
sv参数的值即为Base64编码后的载荷:1
GET /app/data.php?sv=ZXlKaFkzUWlPaUp6ZGlJc0ltUmhkR0VpT25zaWRYTmxjaUk2SWpFeE5EVXhOQ0lzSW5CaGMzTWlPaUp4ZDNkbFpIUmlJbjE5 HTTP/2
- 这种方式将恶意数据隐藏在看似随机的编码字符串中,增加了流量检测的难度。
- 编码后的字符串作为GET请求的参数,由一个名为
4. 受害者追踪:设备指纹采集
在发送凭证的同时,另一个脚本 cess/index.php 负责采集详细的受害者设备指纹。
采集信息: 通过URL参数,该脚本收集了大量客户端环境信息,包括:
- IP 地址与地理位置
- 操作系统 (
IOS) - 浏览器类型 (
Safari) - 屏幕分辨率
- 设备类型 (手机)
- 来源页面与当前页面标题
用途: 这些数据为攻击者提供了详尽的统计视图,用于评估钓鱼活动的有效性及分析受害者画像。
5. 攻击收尾:动态重定向
数据窃取成功后,攻击流程并未中止,而是进入了精心设计的收尾阶段。
- 服务器端指令:
data.php在成功接收凭证后,其响应体中包含下一步指令:1
2
3
4{
"err": 0,
"location": "../step_code/"
} - 中间页跳转: 浏览器根据
location指令跳转到一个临时的中间页面/step_code/。 - 最终跳转: 该中间页面会再次向
data.php?sv=js发起请求,获取最终的跳转配置。服务器返回的JavaScript中定义了最终的跳转目标:1
2
3
4var conf = {
// ...其他配置
"readyJump": "[https://docs.qq.com/](https://docs.qq.com/)"
}; - 完成欺骗: 浏览器最终被重定向到合法的腾讯文档官网。这一步操作极具欺骗性,它销毁了钓鱼现场,并让受害者感觉自己成功完成了一次正常的登录操作,从而最大程度地避免了嫌疑。
4. 你他喵的:怎么收拾你捏
尝试sql注入无果,
最后写暴力请求程序秒了,现在网站已经挂了,dns解析也置空了233333
1 | package main |
GPT写的,好使!





