HW防守 | 记一次供应链钓鱼事件的分析

admin 2024年9月10日22:30:18评论16 views字数 3232阅读10分46秒阅读模式

关注我们❤️,添加星标🌟,一起学安全!
作者:zero@Timeline Sec
本文字数:3088
阅读时长:3~5mins
声明:仅供学习参考使用,请勿用作违法用途,否则后果自负

01 事件介绍

这条短信,当时企业很多员工都收到的。所以这次是一次有针对性的钓鱼。

02 网站分析

我先分析网站,进行短链恢复

HW防守 | 记一次供应链钓鱼事件的分析

是一个登陆网站,访问一下看看

HW防守 | 记一次供应链钓鱼事件的分析

个人吐糟一下,这个网页真的粗糙,我们先看看这个网站钓鱼的逻辑

HW防守 | 记一次供应链钓鱼事件的分析

随便输入一个账号,然后我们就会进入下一个页面

HW防守 | 记一次供应链钓鱼事件的分析

我们发现,前端你输入什么会跳转到“验证码已发送;当前网络拥堵,请等待1-2分钟,然后,其他功能都是摆设(PS:这个网站从上报到我们这里到关闭中间只有20分钟

我们真实系统输入账号密码时需要验证码的,这里也出现了填写验证码,但是如果你在这里填写验证码,你会发现你点击登陆,是没有任何响应的,证明这个钓鱼网站有点太水了。我们看一下源代码

HW防守 | 记一次供应链钓鱼事件的分析
var isValicode = false;
$("#loginbtn").click(function(){
    if ($("#username").val().length<4 || $("#password").val().length <4){
        alert("用户名或密码错误");
        return false;
    }
    if (!isValicode){      
      $.ajax({
        type"POST",
        url'/search/998a1628-93d8-4e12-bc4b-6a3eccf2b27d',
        data'data='+encodeURIComponent($("#username").val()+","+$("#password").val()),
        successfunction()
          $("#passwordinput").hide();
          $("#valicodeinput").show();
        }
      });
      isValicode = true;
    }else{
      if($("#vcode").val().length < 2){
        $("#warmingtxt").text("验证码错误");
        $("#warmingtxt").css("color","red");
        return false;
      }else{
        $.ajax({
        type"POST",
        url'/search/998a1628-93d8-4e12-bc4b-6a3eccf2b27d',
        data'data='+encodeURIComponent($("#username").val()+","+$("#password").val()+","+$("#vcode").val()),
        successfunction(){
          var info = '系统繁忙请稍后再试。';
          if (!info.startsWith('{__') && !info.endsWith('__}') && info !== ""){
              alert(info);
          }
          var rurl = '';
          if (!rurl.startsWith('{__') && !rurl.endsWith('__}') && rurl !== ""){
              window.location.href = rurl;
          }
          return true;
        }
      });
      }
      return false;
    }
    
});

给大家拉出来,这代码确实还不如扔给chatgpt来写,当用户名或密码长度小于4时,给出的错误提示是“用户名或密码错误”

如果isValicodefalse,则通过AJAX请求发送用户名和密码到服务器,请求验证码。请求成功后,隐藏密码输入框,显示验证码输入框,并将isValicode设置为true

如果isValicodetrue,则检查验证码输入框的内容长度。如果长度小于2,显示验证码错误消息;如果长度足够,则再次通过AJAX请求发送用户名、密码和验证码到服务器进行验证

但是,ajax异步性未处理,还有那死逻辑混乱的不要不要的,所以本来是先验证账号密码输入正确,才会弹出验证码。但是,现在输入什么都直接跳转到输入验证码

OK,钓鱼网站就这些,然后当我们去反查这个网站域名的时候,我发现是一家不小的供应商公司,哦吼!

HW防守 | 记一次供应链钓鱼事件的分析
HW防守 | 记一次供应链钓鱼事件的分析

这里查到是个云服务器47.100.XXX.XXX

然后,进入这个网站官网我发现,官网下面有个客户案例上面就有我们单位(没有图片,保密),所以立马与单位沟通,发现是我们的某个下面部分的供应商

好家伙,现在供应链攻击确实多,但是如何应对,其实和普通钓鱼还是有一些区别的

然后我去排查钓鱼网站的ip是不是跟主站用的是一个服务器

HW防守 | 记一次供应链钓鱼事件的分析

他用的是47.102.XXX.XXX,不过两个都是云服务器

当时急,网站就先查到这里,然后网站下线了,我们转头查询手机号

03 手机号分析

对发送短信的手机号进行分析

1.手机进行呼叫转移,任何人都无法回拨

2.然后就是微信支付宝都未注册

HW防守 | 记一次供应链钓鱼事件的分析

3.然后我将这个手机号加到我通讯录里面,去各大平台去搜索了,都是无所收获

4.通过sgk查询了也只能查到这个手机号的归属地

归属地: 江苏 徐州

运营商: 中国移动

有一个小突破就是他有钉钉号,能够得到最后一个字(注册有钉钉的话,我们到时候可以配合着警方,进行深入调查)

HW防守 | 记一次供应链钓鱼事件的分析

然后,当时就把所有材料整理,与供应商联系。我怀疑是供应商云服务器被黑了,才导致红队能利用这个域名,搭建一个和我们单位长的很像的钓鱼网站,来进行钓鱼。

如果事情这么简单就好了,供应商那边回复,钓鱼短信不是他们发的,钓鱼网站不是他们开发的,并且,云服务器IP不一样,然后这个二级域名,他们没有,所以跟他们无关!

短信和网站肯定不是他们搭建的,这是肯定的。

05 历史数据分析

1.查备案

我又去查一下子域名,发现这个域名下备案的只有四个子域名,其中就有我们的钓鱼网站

HW防守 | 记一次供应链钓鱼事件的分析

2.查空间搜索引擎

我通过fofa鹰图等,去查询了这个云服务器的IP

HW防守 | 记一次供应链钓鱼事件的分析

得到这个IP,下有54个域名,然后我统一跑了一遍存活,发现全部都访问不了

HW防守 | 记一次供应链钓鱼事件的分析

然后,我导出仔细分析,发现了端倪

HW防守 | 记一次供应链钓鱼事件的分析

就是这个云服务器,在2023年底的时候就已经把他们之前搭建的环境全部关停的,但是里面有他们公司业务,能证明这个云服务器是他们公司使用过的,但是在当时环境关的时候,留下了22端口,我推测应该是红队通过22端口进去了,然后在7月29号搭建钓鱼网站来针对我们钓鱼。

然后还有一个问题就是,红队是利用这个主站创建的二级域名(这个已经确认了),如果拿不到主域名解析账号的管理权限(只有此账号才有权限添加二级域名的解析)他是无法用这个网站去钓鱼的。利用这个网站钓鱼,非常具有迷惑性。

06 总结

供应链钓鱼,与之前有一点区别就是,我们防守人员很多时候要借助供应链厂商那边的支持。因为钓鱼网站,是供应商的网站,和之前溯源IP的思路是不一样的,我们要对网站进行分析,看他后台发送到哪里了。

我们很多时候无法保证供应商的那边的安全的水平,很多软件开发的公司,可能就没有安全的概念。并且,我们作为安全人员,也要取得供应商那边的全力支持,否则我们溯源的所花费的时间很精力就会非常大,成效也就一般。

原文始发于微信公众号(哈拉少安全小队):HW防守 | 记一次供应链钓鱼事件的分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月10日22:30:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   HW防守 | 记一次供应链钓鱼事件的分析https://cn-sec.com/archives/3151416.html

发表评论

匿名网友 填写信息