포스팅 내용

악성코드 분석 리포트

Trojan.Android.HiddenApp 악성코드 분석 보고서

안녕하세요? 이스트시큐리티입니다.


텔레그램을 이용하는 새로운 형태의 안드로이드 악성 앱이 등장하였습니다. 이전에도 텔레그램을 봇을 악용한 악성앱은 있었지만, MS사의 Xamarin을 활용한 C#으로 제작된 앱으로서는 처음입니다. 이 앱은 텔레그램 봇을 활용하여 원격으로 명령을 보냅니다. 원격 명령은 악성 행위와 관련되어 있고 오디오 제어, 카메라 제어, 메시지 탈취 등 개인의 사생활과 관련된 악성 행위를 합니다.


본 분석 보고서에서는 'Trojan.Android.HiddenApp'를 상세 분석하고자 합니다.



악성코드 상세 분석


1. 앱 은닉

앱을 처음 실행하면 앱이 삭제됐다는 문구를 띄우고 아이콘을 숨겨 사용자를 속입니다. 그러나 실제로는 서비스 형태로 실행되어 악성 행위를 시작합니다. 해당 문구는 페르시아어이며 이란을 주 대상으로 함을 알 수 있습니다.

   

[그림 1] 앱 은닉



2. Xamarin을 바탕으로 텔레그램을 활용한 악성행위

Xamarin은 MicroSoft사의 C#과 .NET Framework를 리눅스에서도 쓸 수 있도록 해주는 Mono 프로젝트에서 시작된 프레임워크입니다. 해당 악성 앱은 “android.os.dll”에 악성 행위와 관련된 메소드가 저장되어 있고 텔레그램 봇 API가 저장된 “TeleSharp.dll”을 통하여 악성 행위와 관련된 명령을 확인합니다.


 

[그림 2] 악성행위 관련 dll 파일


악성 앱의 “/data/data/System.OS(패키지명)/shared_prefs/”폴더에 텔레그램 봇과 관련된 정보가 저장되어 있습니다. 해당 텔레그램 봇은 생성자, 즉 해커에 의해서 매니저로 등록되어야 활용할 수 있습니다. 

 

[그림 3] 텔레그램 봇


3.  원격 명령을 통한 악성 행위

3.1 명령어 목록

텔레그램 봇을 활용하여 악성 행위를 진행합니다. 20가지 이상의 다양한 원격 명령이 있습니다.

 

[그림 4] 명령어 목록


3.2 SMS 메시지 제어

텔레그램 원격 명령을 통해 SMS 메시지와 관련된 악성 행위를 합니다. 메시지를 해커에게 전송할 수도 있고 메시지를 삭제할 수도 있습니다. SMS 발신함 및 수신되는 메시지를 감시하는데 “+98”을 “0”으로 변경하여 저장합니다. 이는 이란의 국가 코드이며 이란을 주 대상으로 함을 알 수 있습니다. 시간, 번호, 내용을 탈취하고 탈취된 정보는 “/SDcard/Android/data/com/systemprocess.android/System/tmp_s/” 폴더에 저장됩니다. 

 

[그림 5] 원격 명령을 통해 탈취되는 SMS 메시지

 

[그림 6] 원격 명령을 통해 삭제되는 SMS 메시지 


[그림 7] 발신함의 SMS 메시지 감시

 

[그림 8] 수신되는 SMS 메시지 감시


3.3 통화목록 탈취

번호, 이름, 날짜, 통화시간 등을 포함하여 통화 목록을 탈취합니다.

 

 

[그림 9] 통화 목록 탈취


3.4 오디오 제어

명령어를 통하여 녹음을 시작하거나 종료 할 수 있습니다. “/SDcard/Android/data/com/systemprocess.android/System/tmp_vc/”경로에 “rec.vc”파일로 저장됩니다.

 

[그림 10] 녹음 시작 명령


3.5 통화 녹음

기기의 통화 내용을 녹음합니다. “/SDcard/Android/data/com/systemprocess.android/System/tmp_c/”폴더에 “시간+NUM=번호.vc”파일로 저장됩니다. 


[그림 11] 통화 녹음


3.6 녹음 파일 탈취

사용자 몰래 녹음된 파일들은 명령어를 통하여 “.zip”파일로 압축되어 해커에게 전송 될 수 있습니다.

 

[그림 12] 녹음 파일 탈취

3.7 카메라 제어

원격 명령을 통하여 카메라 제어가 가능합니다.

   

[그림 13] 원격 명령을 통한 카메라 제어


3.8 메시지 전송

원격으로 SMS 메시지를 전송 할 수 있습니다.


[그림 14] 메시지 전송

3.9 주소록 탈취

주소록을 탈취하여 이름이나 번호로 검색을 할 수 있습니다.

  

[그림 15] 주소록 탈취 및 검색


3.10 위치 정보 탈취

위치 정보를 탈취하고 GPS가 꺼져 있으면 원격 명령을 통해서 GPS 기능을 킬 수 있습니다.

 

[그림 16] 위치 정보 탈취 및 제어


3.11 계정 탈취

기기에 등록된 모든 계정을 탈취합니다.

 

[그림 17] 계정 탈취


3.12 앱 삭제

원격 명령을 통하여 앱 삭제가 가능합니다.

 

[그림 18] 앱 삭제


3.13 파일 제어

파일 삭제, 이름 변경, 경로 변경 등을 할 수 있습니다.

 

[그림 19] 파일 제어


3.14 이미지 파일 탈취

기기의 저장소에 저장된 이미지 파일을 탈취합니다.

 

[그림 20] 이미지 파일 탈취



4. 기타행위

4.1 기기 정보 탈취

기기의 제조사, 빌드 버전, 전화번호, 아이피 주소 등 기기와 관련된 정보들을 탈취합니다.

 

[그림 21] 기기 정보 탈취

4.2 서비스 재시작

기기가 재부팅, 화면 잠금 해제, 데이터 연결 변경과 와이파이 연결이 변경되면 악성 행위의 시작인 “mainservice”가 다시 시작됩니다.


[그림 22] 재부팅 확인

 

[그림 23] 와이파이 상태 확인

 

[그림 24] 데이터 상태 확인

 

[그림 25] 잠금화면 상태 확인


4.3 절전모드 제어

지속적인 악성 행위를 위하여 절전모드를 제어함으로써 앱 종료를 방지합니다.

 

[그림 26] 절전모드 제어


4.4 와이파이 제어

와이파이를 제어하여 지속적인 통신이 가능토록 합니다.


 

[그림 27] 와이파이 제어


4.5 기기 화면 상태 확인

키보드 입력 여부를 확인하여 화면의 켜짐과 꺼짐 상태를 확인합니다.

  

[그림 28] 기기 화면 상태 확인

4.6 루팅 확인

안드로이드 쉘 명령어를 활용하기 위하여 루팅 여부를 확인합니다.

 

[그림 29] 루팅 확인


4.7 기기 스크린샷 제어

안드로이드 쉘 명령어를 통하여 기기 화면의 스크린샷을 찍어 해커에게 전송하고 해당 파일을 바로 지웁니다.

 

[그림 30] 스크린샷 명령


4.8 기기 부팅 제어

안드로이드 쉘 명령어를 통하여 기기를 재부팅 및 종료 할 수 있습니다.

 

[그림 31] 기기 재부팅 및 종료 명령



결론


해당 악성 앱은 사용자를 속이기 위해서 앱이 삭제되었다는 문구를 띄우고 오디오 제어, 카메라 제어, SMS 메시지 등 사용자의 사생활과 관련된 정보를 탈취합니다.


따라서, 악성 앱에 감염되지 않기 위해서는 예방이 중요합니다. 출처가 불명확한 URL과 파일은 실행하지 않아야 합니다. 또한, 주변 기기의 비밀번호를 자주 변경하고 OS와 애플리케이션을 항상 최신 업데이트 버전으로 유지해야 합니다.


현재 알약M에서는 해당 악성 앱을 ‘Trojan.Android.HiddenApp’탐지 명으로 진단하고 있습니다.





티스토리 방명록 작성
name password homepage