안드로이드 모의해킹 10

프리다를 이용한 후킹2

이번에도 프리다를 이용해서 후킹을 해볼 것이다.이전 글에서는 연결 실행방식이었지만 이번에는 생성 실행 방식이다. 다만 기존에 있던 DIVA앱 말고 learnFrida 앱을 사용할 계획이다.https://github.com/azurda/com.learn.frida/releases Releases · azurda/com.learn.fridaApp for learnfrida.info. Contribute to azurda/com.learn.frida development by creating an account on GitHub.github.com이 앱은 프리다를 활용하는 실습 앱이다.이번 실습에서는 첫 번째 버튼을 눌렀을떄 나오는 것에 대해서 후킹을 해볼 것이다. not correct를 correct로 바꿔..

프리다를 이용한 후킹

프리다는 동적 바이너리 조사 도구로 앱의 프로세스에 사용자가 작성한 자바스크립트 코드나 라이브러리를 삽입할 수 있게 해 준다. 프리다를 사용하기 위해서는 루팅된 단말과 진단 PC에 모두 설치가 되어야 한다.PC에 프리다 설치터미널에서 설치해주면 된다.프리다 설치프리다 tools 설치이러면 PC에 프리다 설치는 끝이다. 이제 단말에도 설치를 해보자.단말에 프리다 서버 설치루팅된 단말(필자는 Nox)에 프리다 서버를 실행해야 한다. 우선 PC에 설치한 프리다 버전과 동일한 버전의 서버를 다운받아야 한다.단말의 버전은 이렇게 확인할 수 있다.https://github.com/frida/frida/releases Releases · frida/fridaClone this repo to build Frida. C..

TCP 패킷 스니핑

TCP패킷은 HTTP 패킷과 다른 네트워크 계층에서 동작하기 때문에 스니핑의 범위가 다르다.HTTP는 주로 웹 서버와 단말 사이에서 이뤄지는 패킷이고 TCP는 네트워크 트래픽의 전체 TCP 스택을 대상으로 한다. 이번 글에서는 실습으로 TCP 패킷을 스니핑 해볼 것이다.실습우선 TCP 서버부터 구현해야 한다. 서버는 Node.js로 구축할 것이다.const net = require('net');let clients = [];let tServer = net.createServer(function (client) { clients.push( { name: client.remotePort, client: client } ); co..

통신 취약점 진단

앱에서 통신과 관련된 취약점을 진단하기 위해서 패킷을 수집하고 변조를 하기 위해서는 단말의 프록시 연결이 필요하다.여기서는 중간자공격을 한다고 가정하고 통신하는 패킷을 분석해볼 것이다. 우선 윈도우에 burp suite를 설치하자https://portswigger.net/burp/communitydownload Download Burp Suite Community Edition - PortSwiggerBurp Suite Community Edition is PortSwigger's essential manual toolkit for learning about web security testing. Free download.portswigger.net 중간자 공격을 하기 위해서 공격자가 인증서를 등록해야 ..

앱 코드 패치

이번에는 DIVA앱의 코드를 수정해서 토스트 메시지를 띄우는 코드를 추가해서 앱의 동작을 변조해 볼 것이다.우선 자바 코드를 수정하기 위해서 APK Studio를 이용해서 메인 액티비티 코드를 분석해 보자. 액티비티 생명주기에서 가장 먼저 작동하는 함수인 onCreate 함수에 토스트 메시지를 출력하는 코드로 수정을 해보자.이렇게 코드 수정이 완료됐다면 코드를 다시 빌드하고 설치할 수 있는 APK파일로 만들어야 한다.상단에 Project를 누르고 build를 눌러주자빌드가 성공적으로 됐는지 확인하기 위해서는 터미널에서 종료 코드가 0으로 출력됐는지 확인하면 된다.이제 disk 경로에 파일을 보면이렇게 APK 파일이 생성됐을 것이다.생성된 APK 파일은 서명이 되어 있지 않아서 직접 설치할 수 없는 상황이..

하드코딩된 정보 진단

하드코딩된 중요 정보에 대한 취약점 진단은 소스코드에서 식별 가능한 중요 정보를 진단자가 직접 판단하는 과정이다.이 방법은 기술적으로 복잡한 건 아니지만 소스코드가 많은 앱이라면 시간이 많이 걸릴 수 있다. 그래서 이번엔 하드코딩된 정보를 진단하기 위해서 도구를 사용해 볼 것이다. 자바 코드 내에서 하드코딩된 정보 진단https://github.com/skylot/jadx/releases Releases · skylot/jadxDex to Java decompiler. Contribute to skylot/jadx development by creating an account on GitHub.github.com위의 링크에서 다운로드해주면 된다. 다운로드가 완료됐다면 jdax-gui를 실행시키자.여기서 ..

AndroidManifest.xml 분석

이번에는 설치한 DIVA앱에 대한 정적분석을 해볼 것이다.정적분석을 하기 전에 간단하게 용어를 정리하고 가보자. 정적분석안드로이드 앱에서 정적 분석은 앱의 실행 없이 소스 코드나 바이너리 파일을 분석하여 코드 품질, 보안 취약점, 성능 문제 등을 파악하는 과정이다. 코딩 에러는 앱 취약점을 유발하는 주요 원인이기 때문에 정적분석 단계에서 다양한 취약점을 찾아내는 것이 중요하다. 컴파일과 디컴파일컴파일 : 안드로이드 앱을 개발한 소스코드를 기계어로 변환하는 과정이다. 디컴파일 : 컴파일의 반대 과정이다.파일은 분석할때 앱의 원래 코드가 아닌 컴파일된 기계어 코드만 확인할 수 있기 때문에 디컴파일 과정을 거쳐서 앱을 분석하게 된다. 디컴파일된 코드는 개발할 때 작성한 코드와 다른 모습인 경우가 많기 때문에 ..

안드로이드 아키텍처

잘 설계된 아키텍처를 구성하는 것은 안드로이드 앱 보안을 강화하는 중요한 요소이다. 이번 글에서는 안드로이드 앱의 아키텍처 설계 패턴에 대해서 공부해 보자. 안드로이드 앱 설계 패턴안드로이드 앱 개발에서 사용되는 주요 아키텍처 패턴은 MVC, MVP 등이 있다. MVCMVC는 안드로이드 개발에서 가장 많이 쓰이는 패턴이다.Model : 앱의 데이터와 비즈니스 로직을 담당하고 데이터페이스, 네트워크 요청, 파일 입출력 등의 작업을 처리하며 데이터의 상태에 따라 전달한다. View : 사용자에게 데이터를 시각적으로 제공한다. activity, fragments, XML, layout 파일 등을 포함한다.Controller : 모델과 뷰 사이에서 데이터 흐름을 관리하고, 사용자의 행동에 따라 적절한 작업을 수..

객체지향 언어

안드로이드는 객체지향 언어를 활용하는 환경에서 동작한다. 이번 글에서는 객체지향 프로그램의 특징에 대해서 정리해 볼 것이다.  객체지향 프로그램객체지향의 특징에 대해서 설명하기 전에 객체지향 프로그래밍이란 무엇일까?객체지향 프로그래밍은 프로그램을 독립적인 객체(Object)라는 단위로 구성하고 이 각각의 객체들이 상태를 가지며 동작하는 것을 의미한다.  첫 번째 특징대표적인 객체지향 언어인 자바는 클래스와 객체를 사용해서 프로그램을 구성한다. 여기서 클래스란?쉽게 말하자면 객체를 만들기 위한 설계도이다. 다시말해, 객체가 가져야 할 속성과 메서드를 정의하는 것이다. 만약 자동차라는 클래스를 정의한다면 이 클래스는 자동차의 특성(색, 모델)과 동작(주향, 정지)을 정의하는 것이다. public class ..

DIVA앱 설치하기

DIVA란?안드로이드 모의해킹용 앱으로  "DIVA: Damn Insecure and Vulnerable App"이라는 이름의 교육용 앱이다. 이 앱은 보안 전문가, 개발자, 그리고 보안에 관심이 있는 사람들을 대상으로 만들어졌으며, 주로 안드로이드 앱의 보안 취약점을 학습하고 실습하는 데 사용된다. 이번 글에서는 DIVA앱을 안드로이드 스튜디오로 가져오고 이것을 녹스에다가 컴파일할 것이다.(이미 설치와 실행까지 한 상황에서 글을 쓴 거라 틀린 부분이 있을 수 있다..)https://github.com/sabareeshkumaresan/diva GitHub - sabareeshkumaresan/diva: latest diva working with android studiolatest diva worki..