[그림 2] 악성 앱(음성지원), 앱 정보 확인
'몸또' 피싱에 대한 분석은 apk 파일 자체에 대한 분석과 이를 통한 공격자 피싱서버에 대한 분석 두 단계로 나눠 진행하다.
1) APK 분석
2-1)소스코드 분석
해당 APK파일을 디컴파일(decompile) 하여 추출한 AndroidManifest.xml파일로 개략적인 앱 구성형태를 살펴보았다. Manifest.xml파일에는 기능 동작을 위한 권한 요구라든지, 활성화될 액티비티명이 기술되어 있어 전체적인 동작 형태를 미리 파악해볼 수 있다.
AndroidManifest.xml파일을 살펴본 결과, 해당 악성 앱은SMS에 접근 하며, 전화번호부를 읽고 쓸 수 있는 기능을 요구하고 있는 것을 파악할 수 있다.
[그림 3] AndroidManifest.xml
이제부터는 디컴파일 한 APK소스코드 구조를 살펴볼 것이다. 전체적인 클래스들의 흐름을 살펴보면 MainActivity에서는 com.m.android.data의 action 클래스 패키지(BaseAction, UpcontentAction, UpSmsAction)를 이용하게 된다.
BaseAction
클래스에는 해당 주소록에 저장된 내용을 가져오는 (getSystemService(“phon”).getLineNumber)함수가 동작하는 것을 확인 할
수 있다.
[그림 5] 주요 기능을 구현한 클래스(BaseAction.class)
앞선 동작의 결과로 획득한 기기의 이름과 전화번호부를 POST형태로
웹 서버에 전송하는 것을 확인할 수 있다.
[그림 6] 외부로 중요정보 전송(doUpload함수)
전달된 정보를
수신하는 서버는 소스코드 상에 노출이 되어 있으며, [그림 7]처럼
‘saves.ashx’ 페이지에 전달된다. 전달받은 값을
저장하는 페이지일 것이라는 추측이 가능하다.
앱은 백그라운드에서 실행되어 화면상에서는 출력되는 UI는 없다. 실행과 동시에 로그가 실시간으로 기록되는 것을 확인한 결과, Socket 통신을 시도하는 것을 확인 할 수 있었다. (현재는 서버가 닫혀있기 때문에 “Socket deconnection”메시지 발생)
[그림 8]과 같이Post 형태로 data값에 기기에 저장된 전화번호부와 피해자의 메일주소가 저장되어 전달되는 것을 확인 할 수 있다.
2) 피싱서버 분석
불법행위에 사용되는 시스템이더라도 해당 시스템에 대한 공격은 실정법 위반에 해당한다. 아래 기술된 내용은 테스트서버에서 동일한 환경을 구축하여 시연한 내용임을 미리 밝힌다.
공격자는 악성 apk 파일을 통해 피해자의 핸드폰에서 주소록을 추출한 후 자신의 서버에 해당 정보를 전송하게 된다. apk 파일 분석을 통해 공격자 서버를 특정화할 수 있었으며, 해당 서버에는 몇 가지 취약점이 있는 것으로 분석되었다.
피싱서버에서 제공하는 웹 페이지의 인증 화면은 다음과 같다.
[그림 9] 웹 페이지 접속
RDP를 이용하여 해당 서버에 접근해 본 결과 피싱서버의 운영체제는 "중문" 언어팩을 사용하는 Windows Server 2003임을 확인할 수 있었다.
[그림 10] RDP – 원격 접속
그 외 정보로는 피싱 서버의 웹서비스가 IIS 6.0으로 운영되고 있는 것임을 확인할 수 있었다.
[그림 11] 웹 서버 정보 노출
피싱서버에 설치된 IIS 6.0의 WebDAV설정 취약점을 이용할 경우 악성파일(웹쉘)업로드가 가능하고, 웹쉘을 통해 권한을 획득하면 공격자의 서버에서 악성 apk 파일을 이용해 탈취한 자신의 주소록 정보를 삭제할 수 있다.
[그림 12] (테스트 서버에서 재현한)smb 버전 취약점을 이용 시스템 정보 획득
[그림 13] (테스트 서버에서 재현한) IIS WebDAV 취약점 공략 –웹쉘 업로드 성공
맺음말
금전적 이익을 얻기 위한 피싱공격 방법은 계속적으로 진화하고 있다. '몸또' 피싱을 예방하기 위해서는 출처가 불분명한 앱은 함부로 설치하여서는 안 되며,
공식 앱마켓에 등록된 앱일지라도
역시 주의를 기울여 설치할 필요가 있다. 앱 설치 시 안드로이드 경우 권한
요청메시지를 확인 하고 불필요한 권한 요청이 있는 경우 한 번 더 판단하고 다운로드 받는 것이 필요하다.