play/분석

[악성 앱] 국민건강보험 사칭 스미싱 악성앱 분석 (23.11.01)

카고형 2023. 11. 5. 21:16
728x90

공공기관 사칭 스미싱인 국민건강보험 피싱 사이트입니다.   URL 클릭 금지..

해당 스미싱은 건강검사 통지서 관련으로 국민건강보험 공단에서 보낸 것처럼 건강검진 안내 문구를 사칭해 스미싱 문자를 보내는 형태이다. 기존에 스미싱 문자는 건강보험, 건강검사, 건강검진, 통지서, 통보문, 통보서 등 이러한 문구가 포함된 문자를 보냈는데 이번 문자에서는 [The국민보험] 이란 키워드가 추가된 것을 확인할 수 있다. 이전과 같은 형태로 스미싱 문자를 통해 URL 클릭을 유도하여, 피싱 사이트에 접속하고 악성 앱을 다운로드시키는 방법을 이용한다.

 

 

기존에는 피싱 사이트 접속시 번호 입력 - 개인정보 입력 - 다운로드 버튼 페이지 형태였지만 현재는 피싱 사이트에서 바로 다운로드 버튼이 보이는 방법으로 바뀌었다.


스미싱 문구

[Web발신]

[The국민보험]

건강검사 통보서 전송완료, 내용확인 https://s12.a1hy[.]info

 

건강검진 스미싱 문자

 


정상  배포 방식

건강보험 앱

 

※ 정상 배포방식은 원스토어, 구글플래이 해당 사이트(어플)를 통해서만 배포합니다.

 


피싱 사이트 접속 화면 

 

피싱 사이트 URL 주소

https://s12[.]a1hy.info/ (피싱 페이지)
https://s12[.]a1hy.info/download/the.apk (다운로드 apk 주소)

 

스미싱 문자에 포함된 URL 주소로 접속하면  '국민건강보험' 사칭 피싱 사이트 페이지로 접속된다. 해당 페이지에서는 "검진통지서 받기"라는 버튼이 보이고, 해당 버튼을 클릭하게 되면 APK 파일을 다운로드하게 된다. 다운로드한 APK 파일은 악성앱으로 확인된다.

 


APK 파일 정보

App Name : 국민건강보험.apk
package : kqukkj.eeohspkk.fhxoit
MD5 : C045B3B0CBAB88EC156E837B9876E1A7
SHA-1 : 6CFB4B1CFE71668535CA35D1E11D31973C389370

 

 

Virustotal에 해쉬 검색시 7개에 백신에서 탐지 된것을 확인 할 수 있다.

 

Avira (no cloud) : ANDROID/Malformed.ZIP.Gen
Cynet : Malicious (score: 99)
DrWeb : Android.Packed.13.origin
F-Secure : Malware.ANDROID/Malformed.ZIP.Gen
Ikarus : Trojan-Dropper.AndroidOS.Agent
Kaspersky : HEUR:Trojan-Spy.AndroidOS.FakeApp.q
ZoneAlarm by Check Point : HEUR:Trojan-Spy.AndroidOS.FakeApp.q


Android Manifest

Activities  , Services , Receivers , Providers 

더보기
Package [kqukkj.eeohspkk.fhxoit] (b0fccb5):
    userId=10055
    pkg=Package{7e5cfd8 kqukkj.eeohspkk.fhxoit}
    codePath=/data/app/kqukkj.eeohspkk.fhxoit-Jbi_RTeeumldEjdFXfQmUA==
    resourcePath=/data/app/kqukkj.eeohspkk.fhxoit-Jbi_RTeeumldEjdFXfQmUA==
    legacyNativeLibraryDir=/data/app/kqukkj.eeohspkk.fhxoit-Jbi_RTeeumldEjdFXfQmUA==/lib
    primaryCpuAbi=null
    secondaryCpuAbi=null
    versionCode=207 minSdk=21 targetSdk=33
    versionName=1.0.2
    splits=[base]
    apkSigningVersion=2
    applicationInfo=ApplicationInfo{305eebb kqukkj.eeohspkk.fhxoit}
    flags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ]
    privateFlags=[ PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION ]
    dataDir=/data/user/0/kqukkj.eeohspkk.fhxoit
    supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
    timeStamp=2023-11-05 20:10:03
    firstInstallTime=2023-11-05 20:10:04
    lastUpdateTime=2023-11-05 20:10:04
    installerPackageName=com.android.packageinstaller
    signatures=PackageSignatures{b3d7f31 version:2, signatures:[275b133c], past signatures:[]}
    installPermissionsFixed=true
    pkgFlags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ]
    declared permissions:
      com.lmhy.gameplane.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION: prot=signature, INSTALLED
    requested permissions:
      android.permission.INTERNET
      android.permission.ACCESS_NETWORK_STATE
      android.permission.READ_PRIVILEGED_PHONE_STATE
      android.permission.READ_SMS
      android.permission.RECEIVE_SMS
      android.permission.RECEIVE_MMS
      android.permission.SEND_SMS
      android.permission.READ_PHONE_STATE
      android.permission.READ_PHONE_NUMBERS
      android.permission.VIBRATE
      com.lmhy.gameplane.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
    install permissions:
      android.permission.INTERNET: granted=true
      android.permission.ACCESS_NETWORK_STATE: granted=true
      android.permission.VIBRATE: granted=true
      com.lmhy.gameplane.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION: granted=true
    User 0: ceDataInode=5832759 installed=true hidden=false suspended=false stopped=false notLaunched=false enabled=0 instant=false virtual=false
      lastDisabledCaller: com.android.packageinstaller
      gids=[3003]
      runtime permissions:
        android.permission.READ_SMS: granted=true
        android.permission.READ_PHONE_NUMBERS: granted=true
        android.permission.RECEIVE_MMS: granted=true
        android.permission.RECEIVE_SMS: granted=true
        android.permission.READ_PHONE_STATE: granted=true
        android.permission.SEND_SMS: granted=true

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 서버 주소로 유출 행위를 한다. 또한 사용자를 속이기 위해 정상 사이트를 보여준다.

  • Web View(정상 사이트)
  • 각종 정보 수집
  • sms 정보수집 및 진동 제어
  • 정보 유출

 

1. 앱 실행 시 정상 사이트를 보여줌

정상 사이트 "www.nhis.or.kr" 페이지의 화면을 보여주며 정상 앱인것 처럼 사용자를 속인다.

 

 

2.  각종 정보 수집

핸드폰번호, sim 번호, IMEI 번호, 통신사 정보 수집

 

3.  SMS 수신시 정보 유출 및 진동 제어

 

4.  유출지 (C&C)정보

 

5.  정보 유출 형태


 

해당 앱은 핸드폰 기기정보, 개인정보, 통신사 정보등이 유출됩니다. 기기정보 같은 경우는 sim 스와핑으로 sim 복제 가능성도 있구요, 개인정보 탈취와 문자 정보 탈취로 인해 악의적으로 사용자 인증 하여 추가 행위를  할 수 있습니다.

 


 

휴대전화 보안 그리고 악성 앱 제거 방법


KISA  스마트폰 안전 수칙 10 계명
 
① 의심스러운 애플리케이션 다운로드하지 않기
  
② 신뢰할 수 없는 사이트 방문하지 않기
  
③ 발신인이 불명확하거나 의심스러운 메시지 및 메일 삭제하기
  
④ 비밀번호 설정 기능을 이용하고 정기적으로 비밀번호 변경하기
  
⑤ 블루투스 등 무선인터페이스는 사용 시에만 켜놓기
  
⑥ 이상 증상이 지속될 경우 악성코드 감염 여부 확인하기
  
⑦ 다운로드한 파일은 바이러스 유무를 검사한 후 사용하기
  
⑧ PC에도 백신 프로그램을 설치하고 정기적으로 바이러스 검사하기
  
⑨ 스마트폰 플랫폼의 구조를 임의로 변경하지 않기
  
⑩ 운영체제 및 백신 프로그램을 항상 최신 버전으로 업데이트하기

 

https://open.kakao.com/o/sy8rOtNf

 

cago_note님의 오픈프로필

cago_note 블로그 운영중!

open.kakao.com

 

728x90