일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- SQL Injection
- Strings
- CTF-d
- igoat
- Reflected XSS
- lord of sql injection
- NTFS
- vulnhub
- MFT
- XSS
- beebox
- foremost
- Openstack
- base64
- logstash
- kibana
- Docker
- otter
- 안드로이드
- elasticsearch
- 2018
- frida
- InsecureBank
- ctf
- Suninatas
- 파이썬
- ESXi
- 인시큐어뱅크
- Volatility
- diva
- Today
- Total
목록모바일/악성코드 APP 분석 (7)
Information Security
실행될 수 있는 서비스는 몇 개인가? 리시버는 몇 개인가? intent-filter의 action에 대해서 조사해보자. 어떻게 동작할 것이라고 예상되는가? 암호화를 실제 진행하는 클래스는 어떤 클래스인가? 대칭키는 무엇인가? 암호화를 진행하는 서비스명은 무엇인가? 어떤 암호화 방식을 사용하는가?
Main Activity 찾기. 등록된 브로드캐스트 리시버 찾기 등록된 서비스 찾기 사용권한을 살펴보고 악성 앱의 행위 유추하기 VIBARATE = 안드로이드 단말기 진동 허용 READ_SMS = 저장된 SMS 읽을 수 있음 WRITE_SMS = SMS 내용을 쓸 수 있음 RECEIVE_SMS = 새로 수신되는 SMS을 확인할 수 있음 SEND_SMS = SMS 보낼 수 있는 권한 READ_CONTACTS = 연락처를 가져올 수 있음 WIRTE_CONTACTS = 연락처를 쓸 수 있음 WRITE_SETTINGS = 애플리케이션에서 시스템 읽기 쓰기 허용하는 권한 READ_PHONE_STATE = 휴대폰 상태 정보를 읽을 수 있음 CALL_PHONE = 전화를 할 수 있는 권한 READ_CALL_LOG =..
AVD Manager 프로그램을 실행시킨다. Create 버튼을 클릭 후 AVD Name, Device, Skin, Size를 설정해준다. TEST라는 Device과 생성된 것을 알 수 있다. adb를 이용하여 해당 Device에 App을 설치했다. Device를 실행시켜 APPS을 보면 악성 앱이 설치된 것을 알 수 있다. package name으로 해당 앱을 삭제할 수 있다. LgFilter 프로그램을 실행시켜 해당 Device emulator로 설정하며 해당 Device의 로그들을 출력해준다. 악성 앱의 PID를 확인하기 위해 프로세스를 확인했다. 악성 앱 PID를 설정 하면 해당 앱 관련된 로그들만 확인할 수 있다.
WebActivity Manifest에서 Permissions 메뉴를 보면 권한을 자동으로 보여준다. 인터넷 접속 권한을 사용하는 것을 알 수 있다. 컴포넌트와 권한을 볼 수 있다. MAIN과 LAUNCHER가 App 실행 시 처음으로 동작하는 것이다. App 실행 시 onCreate 부분이 처음으로 동작하는 부분이다. super.onCreate는 미리 구현된 Activity를 사용한다는 의미다. requestWindowFeature은 Full Screen으로 앱을 실행하는 것을 의미한다. webview는 웹 페이지를 보여주는 화면이다. progressbar는 어떤 작업 진행 상황을 알려준다. setLayoutParams은 어떤 컴포넌트 Layout을 설정해준다.
e877c46.apk 파일을 디컴파일 했다. e877c46.apk 파일을 jar 파일을 추출했다. Java Decompiler 프로그램을 이용해 해당 jar 파일을 소스코드를 추출했다. 해당 파일 압축을 풀고 디컴파일된 폴더에 src 파일 명으로 이동시켰다. 이클립스를 이용해 해당 파일을 Import 했다.
dex2jar 프로그램을 이용하여 HelloWorld.apk 파일을 jar 파일을 추출된 것을 알 수 있다. MainActivity 소스코드를 보면 코드가 제대로 보이는 것을 알 수 있다. jd-gui 프로그램을 이용하여 File 메뉴에서 Save All Sources를 통해 압축파일을 생성했다. apktool 프로그램을 이용하여 HelloWorld.apk 파일을 디컴파일 했다. HelloWorld_dex2jar.src를 압축을 풀고 src 파일로 변경 후 HelloWorld 디컴파일 폴더로 이동시킨다. 이클립스 Window 메뉴에서 Preferences Android 부분에 SDK 경로를 넣어준다. 이클립스에서 Import를 하기 위해 Android - Existing Android Code Into ..
apktool을 이용해 HelloWorld.apk 파일을 디컴파일 했다. AndoridManifest 파일을 보면 package는 앱의 고유한 이름이고 activity는 컴포넌트의 정보고 intent-filter 해당 앱이 시스템으로부터 실행시킬 수 있는지 처리해주는 것이다. apk 파일을 압축을 풀면 .dex 확장자 파일을 확인할 수 있다. Dalvik Excutable File은 Dalvik 가상머신에서 동작하는 코드다. dex2jar 파일을 이용해 classes.dex 파일을 jar 파일로 변환시켰다. classes_dex2jar 파일이 생성된 것을 알 수 있다. jd-gui 프로그램을 이용해 classes_de2jar 파일을 열어 MainActivity 코드를 확인했다. (com.example.h..