본문 바로가기

security/reverse engineering

(15)
Dreamhack’rev 7번, 8번 풀고 writeup 작성 보호되어 있는 글입니다.
DLL Injection, DLL Ejection 코드 짜보기 보호되어 있는 글입니다.
[악성 앱 분석] InsecureBankv2 분석 insecurebankv2의 공격면을 drozer에게 요청했다. 공격벡터로 작용 가능한 구간이 Activity, broadcast receiver, content provider 이므로, 이것들을 각각 분석한다. 공격 벡터 가능한 것들: 5개의 액티비티(화면),1개의 broadcast receiver, 1개의 content provider(database objects), 1개의 서비스(backgroud worker) is debuggable 출력: 제시된 벡터들은 디버깅이 가능하므로, 디버거가 해당 프로세스에 접근해서 adb를 통해 code를 진행해볼 수 있다. (*앱의 코드에 임의로 코드를 주입 및 변조해서 공격 가능) 1. Flawed Broadcast Receivers broadcast: 다른 앱..
[악성 앱 분석] InsecureBankv2 분석 과정 분석 대상 : InsecureBankv2 분석 툴 : Drozer, Frida, adb -취약점 찾기 -앱 설명에 있는 리스트 하나씩 항목화해서 -각각에 대해 코드 및 설명을 잘 쓰면 됨 -간단한 것들도 많음 -모르는 것들은 남겨두고, 할 수 있는 것 위주로 한다 0. 분석 대상 앱에 대한 간단한 정보 back-end server component is written in python 1. 앱의 기본 동작 동작 방법 앱 설치 → AndroLab 서버 구동 → 방화벽 해제, netcat 열기, 에뮬레이터에 adb → 기본으로 주어진 계정(dinish/Dinesh@123$이나 jack/Jack@123$)을 이용해서 로그인 → 앱 사용 AndroLab 서버 구동 AndroLab 폴더에 진입하여 app.py 파..
[Reversing] 안드로이드 앱 인증 우회 지난 글에서는 앱실행 시 수행되는 루팅 탐지를 우회했었다. 이번 글에서는 루팅 탐지 이후, 텍스트 입력에 올바를 값을 입력해서 우회해보자. 다음은 비밀번호 입력 및 검증 부분에 해당하는 함수이다. findViewById로 가져온 텍스트를 a클래스 a함수에 넣어주면 된다. 가져올 텍스트는 내가 입력해주는 값이므로, 봐야할 것은 하나(a클래스의 a함수)이다. a 클래스의 a 함수는 다음과 같다. a함수의 동작 1단계) base64로 인코딩된 값을 base64로 디코딩하여 var1에 저장 2단계) a.a.a(b("무슨 문자열"), 1단계에서 입력한 문자열) 2단꼐에서 오류가 나지 않고, 해당 값의 리턴 값이 참이면 로그인 성공이다. try문 내에 있는 sg.~의 동작을 분석해보자. 11번째 줄에서 사용된 a함..
[Frida] 안드로이드 앱의 루팅 탐지 우회 [목차] 1. 루팅이란? 2. 루팅(Rooting) 탐지 우회의 필요성 3. Frida란? 4. Frida를 이용한 안드로이드 앱 루팅 탐지 우회 1. 루팅(Rooting)이란? - 시스템의 root권한 획득(특권제어 가능) - root 권한 획득 시 내부저장소 접근 및 권한 변경 등이 가능하므로, 기본적인 안드로이드 기기에서는 일반 사용자의 루트 권한 접근을 막음 2-1. 루팅(Rooting) 탐지 우회의 필요성 - Frida로 앱을 후킹하면 앱의 동작 수정이 가능 - Frida를 이용해 앱을 후킹하기 위해서는 루팅된 시스템이 필요 - 모든 앱은 루팅된 기기에서 실행될 경우, Root detected를 하도록 설정 - 루팅이 적용된 기기를 탐지하는 기법을 사용하는 어플의 경우, 루팅 탐지를 우회한 후에..
[Frida] Frida 설치 Frida 란? - 리버싱 과정에서 DBI(Dynamic Binary Instrumentation - 동적분석)을 가능하게 해주는 도구 - 패키지와 서버로 구성. 장치에는 패키지 설치, 분석의 대상이 되는 모바일이나 에뮬레이터에는 서버를 삽입하여 구동 frida 환경 구축 후 모바일 앱 서비스와 서버-클라이언트 통신으로 앱을 분석하여 모바일 앱 취약점을 진단할 수 있다. 사전 준비 사항 1. 최신 파이썬 3.x 이상 설치 권장 2. Windows 혹은 macOS 혹은 GNU/LINUX 운영체제 1. 최신 파이썬 3.x 이상 설치 권장 현재 로컬 컴퓨터에는 python 2.7.17 version이 환경변수로 설정되어 있다. 기존에 존재하던 파이썬 2의 경로(Python27과 Python27\Scripts)..
[Reversing] drozer 사용 보호되어 있는 글입니다.