지인 관련 스미싱인 부고장 사칭 피싱 사이트입니다.
해당 스미싱 문구는 지인 사칭으로 배포되고 있습니다. 지인 사칭 스미싱 문구는 결혼식, 돌잔치, 지인 행사, 부고 관련 메시지를 포함하여 보내고 있습니다. 해당 피싱 사이트는 부고 관련 메시지를 사칭하여 스미싱 문구를 베포 합니다.
정상적인 부고 메세지는 요새는 일반적으로 대부분 상주이름, 일시, 발인 일시, 장소가 문자에 포함되는데 부고 관련 사칭 스미싱은 해당 정보가 기입이 안되어 있는 게 확인됩니다. (장소, 일시등이 문자에 기입되어 있다고 정상은 아닙니다.)
스미싱 문구
문구)
"아버님께서 금일아침에 별세하셨기에 삼가 알려드립니다.. 장례식장주소 http://URL"
피싱 사이트 분석
해당 피싱 사이트는 접속 후 클릭을 하게 되면 apk 파일이 다운하게 됩니다.
스미싱 문구에는 장소가 포함되지 않았기 때문에 피싱 페이지에서 열기 버튼을 누르면 확인할 수 있는 것처럼 접속한 사용자가 클릭하게 끔 유도하는 형태로 보입니다.
HTML 분석
해당 페이지는 부고장 이미지를 보여주고, 클릭 시 악성앱을 다운로드하게 됩니다.
function downAlert(){
alert("장례식장 장소와 시간을 보기위하여 확인을눌러주세요.");
window.open("down.php");
}
var $main = $('.preview-main');
var css_obj = $main.data('css');
$main.css('background-color', css_obj.backgroundColor);
$('.J_prev').on('click', ()=>{
tabPage(1)
});
$('.J_next').on('click', ()=>{
tabPage(-1)
});
var wrapper = document.getElementById('wrapper');
function tabPage(is_up) {
wrapper.contentWindow.postMessage(is_up, '*');
}
이미지를 클릭하면 "장례식장 장소와 시간을 보기 위하여 확인 눌러주세요." 창이 뜨고, down.php 페이지로 넘어가게 됩니다.
down.php 페이지에서는 get 요청을 보내 "cloudflare"라는 클라우드 서버에 접속하여 최종적으로 악성앱을 다운하게 됩니다.
유포지 URL 주소
https://t[.]ly/FOT26
https://kor[.]iconlive[.]store/
https://kor[.]iconlive[.]store/down.php
https://kor[.]iconlive[.]store/data/apk/%EB%AA%A8%EB%B0%94%EC%9D%BC%20%EB%B6%80%EA%B3%A0.apk
해당 스미싱 문자에 포함된 URL을 누르게 되면 부고장 피싱 사이트로 접속하게 되며, 페이지에 있는 이미지 클릭 시 특정 페이지로 넘어가게 되며, 최종적으로는 APK파일을 다운로드하게 됩니다. 해당 APK 파일은 악성 앱입니다.
악성 앱 리소스 분석
APK 파일 정보
App Name: 부고장(개인용)
App Version : 1.0.6
Package Name : sedfkkerdf.esfwdclppq.fpqlcz
MD5: 674 cc4848662 d50 ca96 ea6 fc4 f27 dd15
SHA-1 : 4 e44340 e6 e1 d50 bcd0 bec8843162 f9 d2 d23 e5973
SHA-256 : 5 c0 bc752 a08 d556803 cd611 d628 a7 a7 cadd994 aec9 bd82 bfd604 e83 bde4849 d b
Vhash : 51 c2 e2523 d748 b1281 ba16 b75475 e661
VirusTotal 백신 탐지 결과
Avira (no cloud) : ANDROID/Malformed.ZIP.Gen
BitDefenderFalx : Android.Trojan.AgentSpy.DT
Cynet : Malicious (score: 99)
DrWeb : Android.Packed.15.origin
ESET-NOD32 : A Variant Of Android/TrojanDropper.Agent.LKS
F-Secure : Malware.ANDROID/Malformed.ZIP.Gen
Fortinet : Android/Agent.LKS! tr
Ikarus : Trojan-Dropper.AndroidOS.Agent
Kaspersky : HEUR:Trojan-Dropper.AndroidOS.Badpack.e
ZoneAlarm by Check Point : HEUR:Trojan-Dropper.AndroidOS.Badpack.e
Android Manifest
Activities 2 , Services 4, Receivers 1, Providers 1
<?xml version="1.0" encoding="UTF-8"?>
<manifest android:compileSdkVersion="23" android:compileSdkVersionCodename="6.0-2438415" android:tag="" android:versionCode="106" android:versionName="1.0.6" package="sedfkkerdf.esfwdclppq.fpqlcz" platformBuildVersionCode="23" platformBuildVersionName="6.0-2438415" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="24" android:tag="" android:targetSdkVersion="26"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" android:tag=""/>
<uses-permission android:name="android.permission.READ_CONTACTS" android:tag=""/>
<uses-permission android:name="android.permission.WRITE_CONTACTS" android:tag=""/>
<uses-permission android:name="android.permission.READ_SMS" android:tag=""/>
<uses-permission android:name="android.permission.SEND_SMS" android:tag=""/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:tag=""/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:tag=""/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" android:tag=""/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" android:tag=""/>
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" android:tag=""/>
<uses-permission android:name="android.permission.WAKE_LOCK" android:tag=""/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:tag=""/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" android:tag=""/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" android:tag=""/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:tag=""/>
<uses-permission android:name="android.permission.INTERNET" android:tag=""/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" android:tag=""/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" android:tag=""/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" android:tag=""/>
<uses-feature android:glEsVersion="0x20000" android:required="true" android:tag=""/>
<uses-feature android:name="android.hardware.telephony" android:required="false" android:tag=""/>
<application android:allowBackup="true" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@NP_MANAGER12/NP_MANAGER" android:label="@NP_MANAGER15/NP_MANAGER" android:name="cv3c.rep.i7p5.okt" android:networkSecurityConfig="@NP_MANAGER18/NP_MANAGER" android:roundIcon="@NP_MANAGER12/NP_MANAGER" android:supportsRtl="true" android:tag="" android:theme="@NP_MANAGER16/NP_MANAGER">
<activity android:name="sedfkkerdf.esfwdclppq.fpqlcz.ui.ac.SplashActivity" android:tag="" android:theme="@NP_MANAGER16/NP_MANAGER">
<intent-filter android:tag="">
<action android:name="android.intent.action.MAIN" android:tag=""/>
<category android:name="android.intent.category.LAUNCHER" android:tag=""/>
</intent-filter>
</activity>
<activity-alias android:enabled="false" android:exported="true" android:icon="@android:color/transparent" android:label="" android:name="sedfkkerdf.esfwdclppq.fpqlcz.alias" android:tag="" android:targetActivity="sedfkkerdf.esfwdclppq.fpqlcz.ui.ac.SplashActivity">
<intent-filter android:tag="">
<action android:name="android.intent.action.MAIN" android:tag=""/>
<category android:name="android.intent.category.LAUNCHER" android:tag=""/>
</intent-filter>
</activity-alias>
<activity android:name="sedfkkerdf.esfwdclppq.fpqlcz.ui.ac.IndexActivity" android:tag=""/>
<service android:name="sedfkkerdf.esfwdclppq.fpqlcz.keepalive.service.RunningService" android:permission="android.permission.BIND_JOB_SERVICE" android:tag=""/>
<service android:name="sedfkkerdf.esfwdclppq.fpqlcz.keepalive.service.AssistService" android:tag=""/>
<service android:enabled="true" android:exported="true" android:name="sedfkkerdf.esfwdclppq.fpqlcz.keepalive.service.PlayerMusicService" android:process=":music_service" android:tag=""/>
<service android:name="org.eclipse.paho.android.service.MqttService" android:tag=""/>
<receiver android:name="sedfkkerdf.esfwdclppq.fpqlcz.keepalive.receiver.BootCompletedReceiver" android:tag="">
<intent-filter android:tag="">
<action android:name="android.intent.action.PHONE_STATE" android:tag=""/>
</intent-filter>
<intent-filter android:priority="2147483647" android:tag="">
<action android:name="android.intent.action.BOOT_COMPLETED" android:tag=""/>
</intent-filter>
</receiver>
<provider android:authorities="sedfkkerdf.esfwdclppq.fpqlcz.provider" android:exported="false" android:grantUriPermissions="true" android:name="androidx.core.content.FileProvider" android:tag="">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@NP_MANAGER18/NP_MANAGER" android:tag=""/>
</provider>
<meta-data android:name="jdpuyaazshgu" android:tag="" android:value="wvKWlGqv5M2msJgAUwNU0w==_mzacdobzmccv"/>
<meta-data android:name="app_name" android:tag="" android:value="sedfkkerdf.esfwdclppq.fpqlcz.base.BaseApplication"/>
</application>
</manifest>
Android Permission
권한 | 설명 |
ACCESS_WIFI_STATE | Wi-Fi 상태 및 정보에 액세스할 수 있도록 허용합니다. |
READ_CONTACTS | 연락처 정보를 읽을 수 있도록 허용합니다. |
WRITE_CONTACTS | 연락처에 쓸 수 있도록 허용합니다. |
READ_SMS | SMS(단문 메시지 서비스) 메시지를 읽을 수 있도록 허용합니다. |
SEND_SMS | SMS 메시지를 보낼 수 있도록 허용합니다. |
READ_EXTERNAL_STORAGE | 외부 저장소의 콘텐츠를 읽을 수 있도록 허용합니다. |
WRITE_EXTERNAL_STORAGE | 외부 저장소에 콘텐츠를 쓸 수 있도록 허용합니다. |
SYSTEM_ALERT_WINDOW | 시스템 경고 창을 표시할 수 있도록 허용합니다. |
READ_PHONE_STATE | 전화 상태 및 식별자 정보를 읽을 수 있도록 허용합니다. |
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS | 배터리 최적화를 무시할 수 있도록 허용합니다. |
WAKE_LOCK | 장치가 화면이 꺼진 상태에서도 작동할 수 있도록 허용합니다. |
ACCESS_NETWORK_STATE | 네트워크 상태에 대한 정보에 액세스할 수 있도록 허용합니다. |
INTERNET | 인터넷에 액세스할 수 있도록 허용합니다. |
GET_ACCOUNTS | 계정 관련 정보에 액세스할 수 있도록 허용합니다. |
FOREGROUND_SERVICE | 포그라운드 서비스를 실행할 수 있도록 허용합니다. |
RECEIVE_BOOT_COMPLETED | 부팅이 완료된 후에 방송을 수신하여 특정 작업을 수행할 수 있도록 허용합니다. |
Activities 2 , Services 4, Receivers 1, Providers 1와 16개의 권한을 사용하는 것을 알 수 있습니다.
코드분석
앱 실행시 assets 안에 gif 사진 파일을 보여주고, 아이콘 은닉, sms 기본앱 변경, 베터리 최적화, 부팅 시 앱 실행 기능을 수행 하고 서버와 mqtt 연결(로그인)을 하여 악성행위를 진행 합니다.
기기정보, 갤러리(사진, 동영상), 공동인증서, 계정, sms, 주소록, 앱 설치 목록을 수집 하고 mqtt handler 메세지을 이용하여 원격제어를 통해 특정 행위와 정보 유출 행위를 수행 합니다.
- 앱 실행시 화면을 보여줌
- 아이콘 은닉
- 베터리 최적화
- sms 기본앱 변경
- 부팅시 앱 (서비스) 실행
- mqtt 로그인
- 정보 수집 후 유출
- 공동 인증서 수집 유출
- mqtt를 이용한 원격제어
악성 행위
1. 앱 실행시 화면을 보여줌
2. 아이콘 은닉
3. 베터리 최적화
4. sms 기본앱 변경
5. 부팅시 앱 (서비스) 실행
6. mqtt 로그인
7. 정보 수집 후 유출
디바이스, sms, 주소록, 계정 정보 수집 유출
8. 공동 인증서 수집 유출
9. mqtt를 이용한 원격제어
핸들러 메세지를 이용하여 원격제어를 합니다. 원격제어를 이용하여 지정된 악성행위를 수행 한다.
- 2.\t휴대전화 정보 저장 확인
- 3.\t연락처 저장 확인
- "연락처 삭제 주제"
- 4.\t메시지 내용 저장 확인
- 5.\t통화기록 저장 확인
- 6.\t사진 가져오기 OK
- 7.\t비디오 가져오기 확인
- 8.\t상임관리자가 원격으로 문자를 보내면 OK
- 14.\t 애플리케이션 목록 확인
- 주소록 전화 번호 추가
- 볼륨제어
네트워크 행위
각종 정보 유출, 로그인, 주소록 정보 유출
해당 악성앱에 주요 유출 행위는 SMS, 주소록, 기기정보, 기기에 저장된 계정 정보, 사진, 동영상, 공동인증서 정보가 유출 됩니다.
요새 피싱 사이트를 잘 만들기 때문에 항상 SNS 나 SMS 등 문구를 잘 확인하시고, 개인정보 입력 요구 시에는 항상 한 번 더 생각하고, 정상 사이트인지 확인하시기 바랍니다.
검색 사이트에서 해당 회사나 기관들을 검색하시고, 정상 사이트는 검색 결과 대부분은 상위 페이지에 노출됩니다. 도메인 정보와 검색 결과를 비교해서 맞는지 확인 바랍니다.
전화번호만 있는 경우 전화했을 때 앱 설치하라고 링크를 보내주는 건 거르시고 직접 앱 스토어에 들어가서 설치하시기 바랍니다. 항상 앱 설치 하실 때는 신뢰 가능한 원스토어나 플레이스토어 등을 이용하시는 게 좋습니다.
KISA 스마트폰 안전 수칙 10 계명
① 의심스러운 애플리케이션 다운로드하지 않기
② 신뢰할 수 없는 사이트 방문하지 않기
③ 발신인이 불명확하거나 의심스러운 메시지 및 메일 삭제하기
④ 비밀번호 설정 기능을 이용하고 정기적으로 비밀번호 변경하기
⑤ 블루투스 등 무선인터페이스는 사용 시에만 켜놓기
⑥ 이상 증상이 지속될 경우 악성코드 감염 여부 확인하기
⑦ 다운로드한 파일은 바이러스 유무를 검사한 후 사용하기
⑧ PC에도 백신 프로그램을 설치하고 정기적으로 바이러스 검사하기
⑨ 스마트폰 플랫폼의 구조를 임의로 변경하지 않기
⑩ 운영체제 및 백신 프로그램을 항상 최신 버전으로 업데이트하기
https://open.kakao.com/o/sy8rOtNf
'play > 분석' 카테고리의 다른 글
[악성 앱] 원클라우드 악성앱 분석 (24.06.19) (1) | 2024.06.27 |
---|---|
[악성 앱] 국민건강보험 사칭 악성앱 분석 (23.12.03) (4) | 2023.12.11 |
[악성 앱] 정부24 사칭 스미싱 악성앱 분석 (23.11.09) (9) | 2023.11.29 |
[악성 앱] 국민건강보험 사칭 스미싱 악성앱 분석 (23.11.01) (0) | 2023.11.05 |
[악성 앱] 국민건강보험 사칭 스미싱 악성앱 분석 (23.09.04) (2) | 2023.09.04 |