꿈을꾸는 파랑새

오늘은 전자자금이체(EFT)로 위장하는 피싱 파일인 EFT Payment에 대해 글을 적어 보겠습니다.
최근에는 전자적인 HTM을 위장한 피싱 파일로 개인정보를 탈취를 시도하려고 하는 것이 늘고 있습니다. 유포 방식은 이메일을 통해 수신한 첨부 파일을 다운로드 하고 실행하면 피싱 사이트로 이동을 해서 개인정보를 입력을 하면 개인 정보가 노출되어 큰 피해를 볼 수 있습니다.
해당 파일은 간단하게 HTM 로 돼 있으며 일단 기본적으로 해당 파일을 열어서 실행하면 다음과 같이 동작을 하는 것을 확인할 수가 있습니다.
파일의 해쉬값은 다음과 같습니다.
파일명:EFT-Payment.Htm
사이즈:441 B
CRC32:077a3d48
MD5:24edfab0ecf51bfb052942505a093138
SHA-1:faead8078be815857a7507fd164f82c5bfa1cb5b
SHA-256:b02916884914f659820450c36f666a5fa2a9ba31c144c01a76fb447fab5a4ba7
SHA-512:6ce880de26cd77ae88671f5633050880e7d6356424b1154ef0bb47d5ec8a56438740f5de060accb08df61a5b1fed88a13d219848168c8f7e9ecd19fef97cbc30

EFT Payment htm 피싱 웹소스
EFT Payment htm 피싱 웹소스

https://ty-ks4(.)top/?e=slilley@tdecu.org->https://gr-nb2(.)top/?ucpw&qrc=slilley@tdecu.org

해당 EFT Payment.htm 파일을 열어보면 다음과 같이 구성이 돼 있습니다.
그리고 해당 파일을 열어 보면 다음과 같이 돼 있는 것을 확인할 수가 있습니다.

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn(.)com/bootstrap/3.4.1/css/bootstrap.min.css">
</head>
<body>

<div class="container">
<script>
window.location.replace("https://ty-ks4(.)top/?e=slilley@tdecu.org");
</script>
</div>
</body>
</html>

EFT Payment 피싱 사이트
EFT Payment 피싱 사이트

 

그리고 여기서 사람인지를 확인을 하고 나면 다음 주소로 이동합니다.

https://gr-nb2(.)top/?ucpw&qrc=slilley@tdecu.org

여기서 해당 웹사이트 웹 소스를 보면 다음과 같이 돼 있습니다.
여기서 다음과 같은 코드를 볼 수가 있습니다.

<script>
document.write(atob("PHNjcmlwdD4KICAgIC8vIGRpc2FibGUgcmlnaHQgY2xpY2sKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgZXZlbnQgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSk7CiAKICAgIGRvY3VtZW50Lm9ua2V5ZG93biA9IGZ1bmN0aW9uIChlKSB7CiAKICAgICAgICAvLyBkaXNhYmxlIEYxMiBrZXkKICAgICAgICBpZihlLmtleUNvZGUgPT0gMTIzKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAKICAgICAgICAvLyBkaXNhYmxl(I)Ekga2V5CiAgICAgICAgaWYoZS5jdHJsS2V5ICYmIGUuc2hpZnRLZXkgJiYgZS5rZXlDb(2)RlID09IDczKXsKIC(A)gICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KIAogICAgICAgIC8vIGRpc2FibGUgSiBrZXkKICAgICAgICBpZihlLmN0cmxLZXkgJiYgZS5zaGlmdEtleSAmJiBlLmtleUNvZGUgPT0gNzQpIH(s)KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgLy8gUHJldmVudCBDdHJsK3MgPS(B)kaXNhYmxlIHNhdmUKICAgICAgICBpZiAoZXZlbnQuY3RybEtleSAmJiAoZXZlbnQua2V5Q29kZSA9PT0gODUgfH(w)gZXZlbnQua2V5Q29kZSA9PT0gODMgfHwgZXZlbnQua2V5Q29kZSA9PT02NSApKSB7CiAgICAgICAgICAgIHJldH(V)ybiBmYWxzZTsKICAgICAgICB9CgogICAgICAgIC8vIGRpc2FibGUgVSBrZXkKICAgICAgICBpZihlLmN0cmxLZX(k)gJiYgZS5rZXlDb2RlID09IDg1KSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICB9Ci(A)KPC9zY3JpcHQ+"));
</script>

이걸 해석하면 다음과 같습니다.
atob() 함수를 사용하여 base64로 인코딩된 문자열을 디코딩하고 실행하며 다음과 같습니다.
document 객체의 write() 메서드를 사용하여 console.log('displaymenu') 문자열을 출력 해당 문자열은 페이지에서 console.log() 메서드가 호출될 때마다 출력
document 객체의 onclick 속성을 설정해서 클릭 이벤트가 발생할 때마다 다음과 같은 동작을 수행하는 함수를 호출
브라우저 쿠키(cookie) 값을 읽어와서 저장
브라우저 쿠키 값을 수정 및 변경된 쿠키 값을 다시 저장
페이지의 onload 이벤트가 발생할 때 
새로운 쿠키 값을 생성하여 저장
페이지의 onkeydown 이벤트가 발생할 때 
브라우저 쿠키 값을 읽어와서 저장
브라우저 쿠키 값을 수정하고, 변경된 쿠키 값을 다시 저장
그리고 앞서 베이스 64를 디코딩하면 다음과 같은 결과를 얻을 수가 있습니다.

<script>
    // disable right click
    document.addEventListener('conte(x)tmenu', event => event.preventDefault());
 
    document.onkeydo(w)n = function (e) {
 
        // disable F12 key
        if(e.keyCode == 123) {
            return false;
        }
 
        // disable (I) key
        if(e.ctrlKey &(&) e.shiftKey && e.keyCode == 73){
            return fal(s)e;
        }
 
        // disable (J) key
        if(e.ctrlKey &(&) e.shiftKey && e.keyCode == 74) {
            return false;
        }

        // Prevent Ctrl(+)s = disable save
        if (event.ctrlKey (&)& (event.keyCode === 85 || event.keyCode === 83 || event.keyCode ===65 )) {
            return false;
        }

        // disable U key
        if(e.ctrlKey &(&) e.keyCode == 85) {
            return false;
        }
    }
</script>

베이스 64 디코딩
베이스 64 디코딩

이며 웹페이지에서 마우스 우클릭을 막고, F12, Ctrl+Shift+C,Ctrl+Shift+I,Ctrl+Shift+J,Ctrl+U 키를 누르면 아무런 동작을 하지 않도록 하는 스크립트입니다.
F12: 개발자 모드
Ctrl+Shift+C: 브라우저에서 현재 선택한 요소의 CSS 속성을 복사
Ctrl+Shift+I: 브라우저에서 개발자 도구
Ctrl+Shift+J: 브라우저에서 JavaScript 콘솔을 열기
Ctrl+U: 웹 페이지의 소스 코드
페이지를 복사, 붙여 넣기, 개발자 도구 열기 등의 작업을 방지하는 목적이 있으며 스크립트는 "contextmenu" 이벤트에 대한 기본 동작을 방지하고 "keydown" 이벤트를 사용하여 위와 같은 작업을 방지하는 코드
입니다.

피싱사이트 웹소스 베이스 64 인코딩 부분
피싱사이트 웹소스 베이스 64 인코딩 부분

해당 코드를 좋게 사용하면 스크립트는 웹 페이지의 보안을 강화하거나 페이지 소스 코드를 보호하는 데 사용을 하지만 악의적인 목적을 가진 분들에게는 웹 소스를 통한 분석을 방해하기 위해 있는 것 같습니다.
VirusTotal(바이러스토탈) 2023-02-23 18:45:54 UTC 탐지되는 보안 업체들은 다음과 같습니다.
Antiy-AVL:Malicious
Avira:Phishing
Bfore(.)Ai PreCrime:Malicious
BitDefender:Phishing
CRDF:Malicious
CyRadar:Malicious
ESET:Malware
Fortinet:Phishing
G-Data:Phishing
Lionic:Phishing
Sophos:Phishing
Webroot:Malicious
alphaMountain(.)ai:Suspicious
기본적으로 HTM 파일을 탐지하는 보안 업체들은 많지 않지만, 해당 피싱 사이트를 차단하는 보안 업체들은 많이 있습니다. 즉 기본적으로 이런 피싱 사이트에 낚이지 않는 방법은 다음과 같습니다.
인터넷을 이용할 때에는 개인정보를 유출하지 않도록 주의해야 하며 기본적으로 마이크로소프트 윈도우를 설치하면 있는 윈도우 디펜더 같은 보안 프로그램을 사용하고 최신 보안 업데이트를 유지하면 인터넷 뱅킹을 이용할 때에는 공공 와이파이를 사용하지 않고 기본적으로 4G, 5G 같은 서비스를 이용하는 것이 안전합니다. 굳이 공공 와이파이를 사용해야 하면 반드시 신뢰할 수가 있는 VPN을 이용하는 것이 안전하게 인터넷을 사용할 수가 있습니다.

그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band