안드로이드 모의해킹/동적 분석 5

프리다를 이용한 후킹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 파일은 서명이 되어 있지 않아서 직접 설치할 수 없는 상황이..