들어가기 앞서 통신 포트 검사를 통한 Frida 탐지 방안과 우회 기법 들어가기 앞서 Frida 실행 시 생성되는 파일 검사를 통한 탐지 방안과 우회 기법 들어가기 앞서 이번 포스팅부터는 모바일 데이터 위·변조 목적 및 분석 도구로 사용되는 후킹 도구인 Frida를 탐지 naro-security.tistory.com 이전 "통신 포트 검사를 통한 Frida 탐지 방안과 우회 기법" 포스팅에 이어서 이번 포스팅에서는 앱에서 사용중인 라이브러리를 검사하여 Frida를 탐지하는 방안과 우회 기법을 다뤄보도록 하겠다. ※ 실습 진행에 사용되는 ANDITER 앱은 아래의 GitHub에서 다운로드 가능하다. GitHub - naroSEC/Anditer Contribute to naroSEC/Anditer devel..
개요보안 사고 사례를 살펴보면, 공격자들은 관리되지 않는 페이지나 에디터 샘플 페이지와 같은 경로에서 취약점을 찾아내어 서버 내부로 침투하는 경우가 있다. 이러한 페이지들은 종종 담당자나 개발자가 인지하지 못해 문자열 필터링과 같은 보안 메커니즘 적용이 미약한 경우가 많다. 필자 또한, 웹 취약점 진단 시 이와 같은 케이스를 통해 파일 업로드, SQL 인젝션(SQLi) 등의 취약점을 익스플로잇하여 서버 내부까지 침투하는 경우가 있었다. 다만, 이처럼 불필요한 페이지들은 웹 페이지 내에서 직접 노출되지 않으므로, 디렉터리 및 파일 브루트 포스 공격을 통해 찾아야 한다. 이번 포스팅은 이와 같이 불필요한 페이지들(Sample Page 등)을 찾을 때 유용하게 활용할 수 있는 URL 브루트 포스 도구들을 소개..
개요 모의 침투 테스팅이나 웹 취약점 진단 시 취약점(RCE, Web Shell 등)을 통해 셸 권한을 획득하여 시스템까지 침투하는 경우가 종종 있다. 다만, 시스템 영역에 진입하더라도 진단자가 무엇을 해야 할지 모른다면 침투에 성공한 의미가 없다. 따라서, 진단자는 웹 영역 뿐만 아니라 시스템 침투 시를 대비한 정보 수집 방법에 관한 기본 지식은 숙지하고 있어야 한다. 이번 포스팅은 시스템 침투 시 활용할 수 있는 자동화 스크립트를 소개하고 또, 수동으로 시스템에 대한 정보를 수집하는 방법에 관하여 기술하고자 한다. 정보 수집 자동화 스크립트 GitHub - rebootuser/LinEnum: Scripted Local Linux Enumeration & Privilege Escalation Check..
합격 후기2022년 제 37회 개인정보관리사(CPPG) 시험에 합격함으로써, 시험을 준비하는 수험생 분들이 참고할 수 있도록 합격까지의 공부 기간과 공부 방법에 관하여 포스팅하고자 한다.공부 기간4주 소요 필자의 경우 개인정보 쪽은 이번 시험을 준비하면서 처음 접해봤으며, 현업에서 업무를 맡고 계시는 분들이라면 2~3주, 필자와 같이 이 쪽 분야를 처음 접하는 분들은 3~4주 정도 공부하면 충분히 합격할 수 있을 거라고 생각한다.공부 방법[ 이론 및 연습 문제 ] 원큐패스 CPPG : 네이버 도서'원큐패스 CPPG'의 네이버 도서 검색 결과입니다.search.shopping.naver.com개인정보관리사(이하 CPPG) 시험의 경우 개인정보 법과 관련된 시험이다 보니 분량이 방대하고 참고해야할 자료와 서..
개요 치트 엔진을 이용한 정적 메모리 값을 변조하는 방법 개요 치트 엔진을 이용한 동적 메모리 값을 변조하는 방법 개요 게임 관련 애플리케이션을 대상으로 코드 분석 및 변조 시 가장 많이 활용되는 도구를 뽑으라고 한다면 치트 엔진(Cheat Engine)이 naro-security.tistory.com 이전 "치트 엔진을 이용한 정적 메모리 값을 변조하는 방법" 포스팅에 이어서 이번 포스팅에서는 "어썰트 큐브" 게임을 대상으로 내부 동작의 로직을 변조하고 코드를 삽입하는 방법에 대해서 다뤄보도록 하겠다. 실습 준비 [ 치트 엔진 다운로드 ] Cheat Engine Cheat Engine Trouble installing/running Cheat Engine? Check out the known githu..
개요 치트 엔진(Cheat Engine)은 주로 게임 내에서 값을 조작하거나 게임 내부 동작 로직을 수정하는 데 사용되는 프로그램으로 주 타겟은 PC 게임이다. 물론 모바일 디바이스에도 연결해 사용할 수 있지만, 모바일 쪽은 "Game Guardian"이 꽉 잡고 있어 치트 엔진은 잘 쓰이지 않는다. 그렇다고 치트 엔진이 Game Guardian 보다 성능이 떨어지느냐? 그건 절대 아니다. 오히려 더 정밀한 기능은 치트 엔진이 한 수 위지만, 편의성 및 접근성의 이유 등으로 모바일 분야 쪽에서는 많이 쓰이지 않는다. 이번 포스팅은 치트 엔진을 모바일 디바이스에 연결하는 방법에 대해서 기술하고자 한다. 다운로드 치트 엔진을 모바일 디바이스에 연결해 사용하기 위해서는 Frida 서버와 같이 디바이스에서 실행..
들어가기 앞서 Frida 실행 시 생성되는 파일 검사를 통한 탐지 방안과 우회 기법 들어가기 앞서 이번 포스팅부터는 모바일 데이터 위·변조 목적 및 분석 도구로 사용되는 후킹 도구인 Frida를 탐지하는 방안과 우회 기법에 대해서 다뤄보도록 하겠다. 실습 진행에 사용되는 ANDI naro-security.tistory.com 이전 "Frida 실행 시 생성되는 파일 검사를 통한 탐지 방안과 우회 기법" 포스팅에 이어서 Frida 클라이언트와 서버가 통신 시 사용하는 포트를 검사하여 Frida를 탐지하는 방안과 우회 기법을 다뤄보도록 하겠다. 실습 진행에 사용되는 ANDITER 앱은 아래의 GitHub에서 다운로드 가능하다. GitHub - naroSEC/Anditer Contribute to naroSE..
개요smali 코드는 안드로이드 애플리케이션의 Dalvik 가상 머신 코드를 표현한 언어이다. Dalvik VM은 안드로이드 앱의 실행을 위한 가상 머신이며(지금은 ART를 사용한다.), smali는 이 VM에서 동작하는 바이트 코드를 사람이 읽기 쉽고 이해하기 쉬운 형태로 변환하여 나타낸다. 즉, Smali는 Dalvik VM이나 ART(안드로이드 런타임)에서 동작하는 바이트 코드의 어셈블리어로 Java 코드(Java 실행 코드가 들어있는 Dex)를 디컴파일한 결과물이다. 따라서, 안드로이드 앱을 대상으로 내부 동작 조작을 위한 소스코드를 변조할 때 Java 코드를 디컴파일한 산출물인 smali 코드를 수정하게 되며, 이러한 일련의 과정을 "리패키징"이라고 한다. 이번 포스팅에서는 smali 코드 분석..
개요보안이 잘 된 안드로이드 앱은 Java 코드뿐만 아니라 C/C++ 언어로 작성된 네이티브 코드를 활용하여 루팅, 무결성, 디버깅과 같은 보안 위협을 탐지한다. 이러한 네이티브 코드로 작성된 파일은 라이브러리(.so) 형태로 제공되며 또한, ollvm이나 링킹과 같은 라이브러리 보호 매커니즘이 적용된 경우 분석이 어려워진다. 그 일례로 ollvm이 적용된 라이브러리는 코드 내에 존재하는 문자열이 모두 암호화되어 있어 평문 값이 노출되지 않는다. 따라서, 이는 분석 시 검사에 사용되는 문자열을 검색하는 방식으로 탐지 로직을 찾는게 어렵다는 뜻이다. 하지만, 이때 Frida 백트레이스를 활용한다면 어렵지 않게 보안 탐지 로직을 찾을 수 있다. 이번 포스팅에서는 Frida 백트레이스 사용 방법을 기술하고자 ..
개요 안드로이드에서 C/C++ 언어로 작성된 코드를 네이티브(Native) 코드라고 하며, 이러한 네이티브 코드는 ".so" 파일로 컴파일되어 라이브러리 형태로 제공된다. 특히나, 보안이 잘 된 안드로이드 앱을 진단하다 보면 Java 코드를 분석하는 상황보다 네이티브 코드로 작성된 라이브러리 파일을 분석하는 일이 더욱 빈번하다. 이번 포스팅에서는 네이티브 코드로 작성된 라이브러리(.so) 파일 분석 시 알아야 할 기초 지식에 관하여 기술하고자 한다. 라이브러리 로드 프로세스 [그림 1]의 도식도는 안드로이드 앱에서 라이브러리가 호출되어 로드되는 과정을 표현한 것으로 해당 프로세스를 통해 앱이 어떠한 함수를 사용하여 라이브러리를 불러와 Java로 작성된 코드와 C/C++ 로 작성된 네이티브 코드를 연결하여..
개요 안드로이드 앱 진단 시 루팅, 무결성, 디버깅 등과 같은 보안 위협에 탐지될 때, 별도의 우회 과정 없이 ADB를 이용하여 액티비티를 강제 실행함으로써, 탐지 프로세스가 무력화되는 경우가 종종 있다. 실제 필자가 진단 했던 A사의 앱의 경우에는 루팅 디바이스로 탐지될 경우 팝업을 사용자에게 표시하고 출력된 팝업 내에 "확인" 버튼을 클릭하면 앱 종료 프로세스가 동작하는 방식이었다. 그런데 여기서 "확인" 버튼을 누르지 않고 메인 화면에 해당하는 액티비티를 호출하면 앱이 종료되지 않고 정상 이용이 가능했다. 물론, 보안이 잘되어 있는 곳은 탐지 후 일정 시간이 지난 후에 앱이 자동으로 종료되게끔 설정한다. 하지만, 그러지 않은 곳은 간단한 조작을 통해 보안 탐지 프로세스를 무력화 시킬 수 있기 때문에..
개요 모바일 디바이스에서 Burp Suite를 사용하기 위해서는 Proxy 서버 인증서를 디바이스에 설치해야 하며, 인증서를 설치하지 않고 네트워크 통신 시 높은 확률로 SSL/TLS 관련 오류가 발생하게 된다. PC 단에서는 인증서를 설치하지 않고 Burp Suite를 사용해도 큰 문제가 없지만 모바일 앱의 경우는 다르다. 일반적으로 앱에서는 API 서버와 통신을 시도할 때 okhttp3 모듈을 사용한다. 해당 모듈의 경우 내부 코드에서 자체적으로 인증서 체인 검증을 진행하며 이때, 검증 체인 키 값을 디바이스에 설치된 Root CA에서 가지고 온다. 그리고 인증 키가 존재하지 않는다면 통신에 실패하게 된다. 따라서, Burp Suite를 이용할 때 해당 Proxy 서버의 인증서(PostSwigger)..