안드로이드 악성 APK 분석
우연한 기회로 악성 안드로이드 APK 파일을 구할 수 있었다.
해당 파일 분석을 진행하였다.
우선 APK 파일을 Virustotal 에 올려주었다.
몇개의 회사에서 해당 파일을 악성 파일로 판단하였다.
AhnLab-V3도 보인다.
대부분 트로이목마로 판단하고 있고 정보를 훔쳐가는 프로그램, SmsThief 등으로 판단하고 있다.
파일의 해시값 정보는 다음과 같다.
자세한 정보를 살펴보면 다음과 같은 Permission을 획득하려는 코드가 있다.
살펴보면 네트워크 관련과 함께 SMS와 관련된 Permission이 많이 보인다.
그럼 디컴파일 하여 코드를 살펴보도록 한다.
apk파일을 .zip으로 바꾸고 압축을 풀어준다.
dex2jar 를 통해 dex 파일을 jar 파일로 변환해주고 jar 파일을 jd_gui를 통해 열어주었다.
Constants.class의 코드이다. Base URL과 함께 두가지 의 문자열이 더 보인다.
웹 페이지의 주소로 보인다.
MainActivity의 코드이다.
자세히 살펴보면 실행 후 여러 정보들을 가져온다.
uuid를 가져와서 Permission을 획득하는 것으로 보이고 run 함수를 통해 TelData, SMSData, PhoneNum 등의 정보를 모아주고 있다.
아래에서 3번째 줄을 보면 stringbuilder를 생성해서 이전에 나온 Base URL을 넣어주었다.
여기에 POST_CONTACT 였던 /api/add_she를 붙여주고 이를 통해 post 요청을 보내 request를 받는다.
정보를 공격자의 서버로 보내는 것으로 보인다.
CiperSuite.class가 있는 것으로 보아 암호화가 사용되었고
Protocol.class 등을 살펴보면 Http, TLS, SSL 등의 프로토콜이 사용되고 있다.
에뮬레이터로 apk를 설치하여 실행시키고 wireshark로 살펴보았다.
에뮬레이터에서는 일반적인 폰에서의 실행이 아닌것을 감지한 듯 긴급서버 점검중이라는 말이 나온다.
wireshark로 살펴보면 다음과 같이 나온다.
ip.addr == 156.233.64.251을 해주어 해당 ip와의 패킷만 잡아주었다.
SYN, SYN+ACK, ACK를 통해 3-way-handshake를 해주어 통신을 연결한다.
다음 HTTP프로토콜을 통해 POST API를 보내고 있다.
자세한 내용을 살펴보자
이전에 찾았던 URI 주소로 POST 요청을 보낸다.
보내는 내용을 보면 SMSData, TelData, TelNum, key, userID, uuid 를 보내고 있다.
follow의 http stream으로 보면 응답으로 온 내용이 있다.
맨 아래줄이 응답 으로 보인다. 자세한 내용은 알 수가 없다.
찾았던 URI에 있던 apphome04.xyz를 들어가보았다.
중국????
중국에서 만든것인가 하는 의심을 해본다.
결론으로는 해당 APK파일은 사용자의 전화번호부, 메세지 정보, 핸드폰 번호, UserID, UUID 등의 정보를 모두 가져다 자기네 웹에 POST 요청을 날린다.
이렇게 모은 정보를 어떤식으로 활용하는지는 파악하지 못했지만
사용자의 정보를 무단으로 확보하기 때문에 좋은 곳에 활용할 것이라고 생각되진 않는다.