| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- InsecureBank
- vulnhub
- igoat
- foremost
- Openstack
- 인시큐어뱅크
- Docker
- elasticsearch
- Reflected XSS
- MFT
- 안드로이드
- ctf
- frida
- lord of sql injection
- diva
- Volatility
- XSS
- SQL Injection
- base64
- 2018
- dreamhack
- beebox
- Strings
- logstash
- CTF-d
- Suninatas
- binwalk
- otter
- kibana
- ESXi
- Today
- Total
목록전체 글 (446)
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 =..
앱 컴포넌트 (구성요소) 앱 컴포넌트는 안드로이드 앱의 필수적인 구성요소로 각 독립된 형태로 존재하며 정해진 역할을 수행 각 구성 요소는 시스템이나 사용자가 앱에 들어올 수 있는 진입점 "인텐트"는 다른 앱 컴포넌트로부터 작업을 요청하는 데 사용할 수 있는 메시징 객체 Activity 사용자와 상호작용하기 위한 진입점 사용자 인터페이스를 포함한 화면 하나를 나타냄 이메일 앱이라면 새 이메일 목록을 표시하는 액티비티 하나, 이메일을 작성하는 액티비티 하나, 이메일을 읽는 데 쓰는 액티비티 하나 등이 존재 이메일 앱에서 허용할 경우 다른 앱에서 이와 같은 액티비티 중 하나를 시작할 수 있음 Service 백그라운드에서 앱을 계속 실행하기 위한 다목적인 진입점 사용자 인터페이스(UI)는 제공하지 않음 사용자가..
목표: 미사일 발사 코드를 알아내는 것이 아닌 애플리케이션을 crash 시키고 해당 원인을 알아내는 것이 목표이다. 임의의 값 1234 입력 시 Acess denied! 메시지를 확인할 수 있다. 소스코드를 보면 DivaJni 메소드를 참조하는 것을 알 수 있다. 소스코드를 보면 '.dotdot'라는 문자열이 하드 코딩된 것을 알 수 있다. 그리고 SIZEMAX가 20으로 설정된 것으로 보아 버퍼오버플로우가 발생할 것 같다. .dotdot 문자열을 입력하면 미사일이 발사 카운트를 보여준다. divajni.c 소스코드 하단을 보면 문자열을 체크하지 않는 strncmp 함수를 사용하는 것을 알 수 있다. A 문자를 40개 입력 시 버퍼오버플로우가 발생하는 것을 알 수 있다.
목표 : 하드 코딩된 정보를 찾아라 1234 입력 시 Access denied! 접근 거부 메시지를 확인할 수 있다. 소스코드를 보면 클래스에서만 접근 가능한 DivaJni djni를 확인할 수 있다. 소스코드를 보면 divajni 라이브러리를 Load 하는 것을 알 수 있다. lib 디렉토리를 확인하면 라이브러리 파일을 확인할 수 있다. adb pull명령어를 통해 libdivajni.so파일을 추출했다. objdump를 이용해 disassemble과정을 거치면 olsdfgad;lh 문자열을 확인할 수 있다. Access granted! 메시지를 확인할 수 있다.
목표 : PIN번호를 설정 후 해당 번호를 통해 접근이 가능한 앱을 PIN번호를 모르는 상태로 앱을 실행하지 않고 접근하기 임의의 PIN 번호를 입력을 하면 PIN 번호가 생성되는 것을 알 수 있다. GO TO PRIVATE NOTES 번튼을 클릭하면 PIN 번호를 입력하라는 화면을 보여준다. 생성된 PIN 번호를 입력 시 정보를 보여주는 것을 알 수 있다. 소스코드를 보면 jakhar.aseem.diva.NotesProvider의 exported가 true로 설정되어 있는 것을 확인할 수 있다. provider를 통해 외부에서 해당 content를 불러올 수 있다. 소스코드에서 provider의 URI의 정보를 확인할 수 있다. 명령어를 실행하면 Private Notes에 저장되어있던 정보가 출력된다.
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을 설정해준다.
