이번에 지인 관련 스미싱인 부고장 사칭 악성 앱 입니다.
해당 스미싱은 지인 사칭으로 배포되고 있다. 비슷 한 문구로는 결혼식, 돌잔치, 지인 행사 등이 있지만 이번에는 부고장 관련 문구로 배고 되고 있는 듯하다. 해당 URL 접속 시 부고장 피싱 페이지가 보인다. 생각보다 페이지를 잘 만들었다고 생각이 든다. 해당 페이지에서 "장례절차 확인하기" 버튼 클릭 시 악성앱이 다운된다.
문구)
[Web발신] [부고]18일 저녁 10시경 부친께서 별세하셨습니다. 안내 http://xn02[.]h8gd[.]hair
악성앱 다운로드 과정
피싱 메인 페이지
해당 스미싱에 있는 주소를 접속하게되면 모바일 부고장 피싱 사이트에 접속 하게 된다. 해당 사이트를 보면 상당히 잘 만들어 진걸 볼 수 있다.
이번 스미싱은 스미싱 문구나 해당 페이지 접속 할 때 고인의 정보나 상주의 정보를 확인할 수 없다. 상주나 고인의 정보를 확인 하기 위해서는 "장례절차 확인하기" 버튼를 눌러야 확인 할 수 있는것 처럼 만든거 같다. 이때 해당 버튼을 누르게 되면 악성앱을 다운로드하게 된다.
고인의 정보나 상주 정보를 확인을 위해 버튼 클릭(악성 앱 다운)을 유도 하는 페이지인것으로 확인 할 수 있다.
※ 정상 배포방식은 원스토어, 구글플래이 해당 사이트(어플)를 통해서만 배포합니다.
※ 대부분의 정상 앱은 일반 사용자에게 특별한 접근 출처를 알 수 없는 앱 설치 권한을 요구 하지 않습니다.
HTML 분석
해당 페이지는 버튼 클릭을 위한 부고장 이미지를 보여주고, 버튼 클릭 시 특정 주소로 연결되어 악성앱을 다운로드 하게 되는 것을 확인 할 수 있다.
function click_download() {
var link = document.createElement("a");
link.download = "부고장";
link.href = '/download/the.apk';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
delete link;
$.ajax({
type: "POST",
url: `xinde/update_download.php`,
data: { "ipaddr": ipaddr, "hostname": window.location.hostname },
success: function(resp) {
if(resp.success) {
sessionStorage.setItem("page", 3);
} else {
}
},
error: function() {
}
});
}
유포지 : https://xn02[.]h8gd[.]hair/
최종 유포지 : https://xn02[.]h8gd[.]hair/download/the.apk
APK 파일 정보
App Name : 모바일 부고장
package : com.xguvpaxbfeua.slr
MD5 : E334D0415B39167AD575FCF5B0226389
SHA-1 : 46411E6011AD611DE892EC118138FA58C7EA9670
Android Manifest
Activities 1 , Services 1, Receivers 1, Providers 1
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" android:compileSdkVersion="33" android:compileSdkVersionCodename="13" package="com.xguvpaxbfeua.slr" platformBuildVersionCode="33" platformBuildVersionName="13">
<uses-sdk android:minSdkVersion="24" android:targetSdkVersion="33"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<uses-feature android:name="android.hardware.telephony" android:required="false"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_MMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" android:maxSdkVersion="29"/>
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<permission android:name="com.xguvpaxbfeua.slr.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" android:protectionLevel="signature"/>
<uses-permission android:name="com.xguvpaxbfeua.slr.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"/>
<application android:theme="@style/Theme.App17" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:debuggable="true" android:allowBackup="true" android:supportsRtl="true" android:extractNativeLibs="false" android:fullBackupContent="@xml/backup_rules" android:usesCleartextTraffic="true" android:networkSecurityConfig="@xml/network_security_config" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:dataExtractionRules="@xml/data_extraction_rules">
<activity android:name="com.xguvpaxbfeua.slr.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.xguvpaxbfeua.slr.LoopService" android:enabled="true" android:exported="true"/>
<receiver android:name="com.xguvpaxbfeua.slr.Mopiotal" android:exported="true">
<intent-filter android:priority="2147483647">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
<provider android:name="androidx.startup.InitializationProvider" android:exported="false" android:authorities="com.xguvpaxbfeua.slr.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>
Android Permission
권한 | 설명 |
android.permission.INTERNET | 인터넷에 연결하여 네트워크 통신을 수행할 수 있도록 합니다. |
android.permission.ACCESS_NETWORK_STATE | 네트워크 상태에 대한 정보를 액세스하고, 연결 가능 여부 등을 확인할 수 있도록 합니다. |
android.permission.READ_PRIVILEGED_PHONE_STATE | 특권화된 권한으로, 기기의 통화 상태와 관련된 정보를 읽을 수 있습니다. |
android.permission.READ_SMS | SMS 메시지를 읽을 수 있도록 합니다. |
android.permission.RECEIVE_SMS | SMS 메시지를 수신할 수 있도록 합니다. |
android.permission.RECEIVE_MMS | MMS(Multimedia Messaging Service) 메시지를 수신할 수 있도록 합니다. |
android.permission.SEND_SMS | SMS 메시지를 발신할 수 있도록 합니다. |
android.permission.READ_PHONE_STATE | 기기의 전화 상태와 관련된 정보를 읽을 수 있습니다. |
android.permission.READ_PHONE_NUMBERS | 기기에 저장된 전화 번호를 읽을 수 있도록 합니다. |
android.permission.VIBRATE | 기기 진동 변경 할 수 있도록 합니다. |
코드 분석
모바일 부고장 사칭 앱은 각종 기기정보, 개인정보, sms 정보 수집을 하고, 수집된 정보를 특정 C&C 서버 주소로 유출 행위를 한다. 또한 사용자를 속이기 위해 정상 사이트를 보여준다.
- UUID 생성 및 저장
- Web View(정상 사이트)
- 각종 정보 수집
- sms 정보수집
- sms 수신시 진동 및 소리 제어
- 정보 유출
1. 앱 실행 시 UUID 생성 및 저장
서버에서 식별자 역할을 할 것으로 추정된다
2. 앱 실행 시 정상 사이트를 보여줌
정상 사이트 "부고장.kr" 페이지의 화면을 보여주며 정상 앱인것 처럼 사용자를 속인다.
3. 앱 권한 요청
3. 각종 정보 수집
핸드폰번호, sim 번호, IMEI 번호, 통신사 정보 수집
4. SMS 수신 시 볼륨 설정 및 진동 제어 기능
5. SMS 정보 수집 및 유출
6. 유출지 (C&C)정보
7. 유출 시 사용되는 API
8. 정보 유출
사용 되는 API에 따라 유출되는 정보
KISA 스마트폰 안전 수칙 10 계명
① 의심스러운 애플리케이션 다운로드하지 않기
② 신뢰할 수 없는 사이트 방문하지 않기
③ 발신인이 불명확하거나 의심스러운 메시지 및 메일 삭제하기
④ 비밀번호 설정 기능을 이용하고 정기적으로 비밀번호 변경하기
⑤ 블루투스 등 무선인터페이스는 사용 시에만 켜놓기
⑥ 이상 증상이 지속될 경우 악성코드 감염 여부 확인하기
⑦ 다운로드한 파일은 바이러스 유무를 검사한 후 사용하기
⑧ PC에도 백신 프로그램을 설치하고 정기적으로 바이러스 검사하기
⑨ 스마트폰 플랫폼의 구조를 임의로 변경하지 않기
⑩ 운영체제 및 백신 프로그램을 항상 최신 버전으로 업데이트하기
'play > 분석' 카테고리의 다른 글
[악성 앱] 국민건강보험 사칭 스미싱 악성앱 분석 (23.11.01) (0) | 2023.11.05 |
---|---|
[악성 앱] 국민건강보험 사칭 스미싱 악성앱 분석 (23.09.04) (2) | 2023.09.04 |
[악성 앱] 쿠팡 사칭 악성앱 분석 (23.07.24) (0) | 2023.07.24 |
[reversing.kr] challenge Easy_CrackMe.exe (0) | 2023.06.18 |
[악성 앱] Chrome 사칭 악성앱 분석 (23.05.06) (2) | 2023.05.06 |