본문 바로가기

해킹

(35)
OWASP-MSTG iOS Crackme 레벨1 풀이 안녕하세요. 이번 글은 iOS 레벨1 Crackme 풀이를 써보려고 합니다. 먼저 앱은 github.com/OWASP/owasp-mstg/tree/master/Crackmes 에서 다운로드받을 수 있습니다. 처음 앱을 시작하면 위와같은 화면을 볼 수 있습니다. 숨어있는 레이블에 비밀이 있다고 합니다. 그래서 soFrida를 이용해 모든 레이블을 뒤져봅니다. 모든 레이블을 확인하기 위해 위와같이 UILabel클래스의 text 함수를 후킹합니다. 그리고 다시 앱에서 인증버튼을 클릭합니다. 인증 버튼을 클릭할 경우 호출되는 함수들을 확인할 수 있으며 위와같이 화면에서 볼 수 없는 문자열을 확인할 수 있습니다. 혹시나 비밀번호일 수 있다는 생각에 인증해봅니다. 아까와는 다르게 비밀번호를 찾았다는 메시지를 확인한..
모바일 앱 딥링크 취약점 퍼징 방법 안녕하세요. 오늘은 모바일 앱에 존재하는 URL Scheme 또는 딥링크를 통한 퍼징방법에 대해 작성합니다. URL Scheme(딥링크)이란 http 또는 https와 같은 URL에 포함되는 프로토콜을 말합니다. 앱에서도 URL Scheme을 등록할 수 있고 공격통로로 사용되어 사용될 수 있습니다. KISA에서도 URL Scheme에 대해 공지사항이 나온 적이 있습니다. www.boho.or.kr/data/guideView.do?bulletin_writing_sequence=35434 KISA 인터넷 보호나라&KrCERT KISA 인터넷 보호나라&KrCERT www.boho.or.kr 공격통로로 사용됨에 따라 퍼징하여 취약점을 찾는 경우도 빈번하게 나타납니다. 오늘 테스트할 앱은 iGoat-Swift앱으..
버그 바운티가 정말 매력적인 이유 안녕하세요. 이번 글은 버그바운티가 정말 매력적인 이유에 대해서 설명해드리려고 합니다. 버그바운티는 버그를 찾아 신고함으로 그에맞는 상금을 받는 재미로 하시거나 목표로 잡으신 분들이 많으실 겁니다. 버그를 찾는 것은 너무 너무 어렵습니다. 작은 패치하나로 여러가지 취약점이 무산되어버리는 일도 많죠 그런데 제목대로 버그 바운티가 정말 매력적인 이유가 있습니다. 1. 상금 버그 바운티를 하는 1번 이유죠 상금을 괜찮게 줍니다. 열심히하면 무직으로 살기는 어렵겠지만 월급을 두번받을 수 있습니다. 2. 개발자들은 제대로된 패치를 하지 않는다. 개발자들은 보안에 대해 잘 모릅니다. 그들은 그들의 일로 하루하루가 바쁘죠 그러기에 개발자들은 어떻게 패치하라고 알려준 방법대로 패치하지 않고 그들만의 방법대로 패치합니다..
리눅스에서 윈도우 바이너리 만드는 방법 안녕하세요. 이번 글에서는 리눅스에서 윈도우 바이너리를 만들기 위한 크로스 컴파일 방법을 작성합니다. 세상에는 굉장히 많은 오픈소스 라이브러리들이 있는데요. 대부분이 리눅스 기반으로 제작된 것들이라서 윈도우에서 사용하려면 꼭 해야하는 작업입니다. 그러므로 만약 필요한 상황이 되면 찾아 볼 수 있도록 정리합니다. 아래의 명령어를 이용하여 윈도우전용 컴파일러를 설치할 수 있습니다. sudo apt-get install mingw-w64 sudo apt-get install gcc-mingw-w64 이제 MXE라는 라이브러리를 이용해 윈도우 전용 컴파일러를 설치할건데요 시간이 많이 걸리는 작업이지만 손쉽게 윈도우 컴파일 환경을 구성할 수 있습니다. # MXE의 소스코드를 내려 받는다. git clone htt..
금융보안원 버그바운티 후기 음.. 이번 금융보안원 버그 바운티는 상금이 너무 짜다. 키사 대비 금액의 1/4 수준 :( 뭐 금액은 그렇다 치고 너무 나에게 실망했다. 취약점은 많이 발견했으나 심각한 취약점에 대해 놓친부분이 많았다. 이제 앱 진단으로 넘어가려 했지만 아직 넘어갈 레벨이 아닌 것 같다. 나의 장점인 광범위하게 볼 수 있는 능력과 또 다른 장점인 프로그래밍 능력을 조합하면 놓치는 취약점은 없을거라고 생각한다. 다시 목표가 생겼군! 화이팅
soFrida를 이용한 IOS 앱 동적 분석 - 파일분석 이번 글에서는 IOS 앱을 동적 분석을 하기 위한 soFrida의 사용법과 파일 처리 관련 함수를 후킹 하여 앱에서 어떤 파일을 사용하는지 확인하는 방법을 설명합니다. 필요한 것은 루팅된 아이폰과 USB 케이블입니다. 아이폰에는 Frida서버를 실행해주시고 PC에는 soFrida를 실행해야 하는데요 Frida서버를 아이폰에 설치하는 방법은 인터넷에 검색하시면 많이 나오니 생략합니다. soFrida를 사용하기위해서는 아래의 깃허브에서 다운로드하고 설명대로 설치해주시면 됩니다. https://github.com/june5079/soFrida june5079/soFrida soFrida - Dynamic Analysis Tool for Mobile Applications - june5079/soFrida gi..
LLDB를 이용하여 IOS(아이폰) 원격 디버깅 세팅하기 취약점을 찾기위해서는 분석은 필수입니다. 그러나 모바일 환경은 PC와 다르기 때문에 약간 다른 방법을 사용하여 디버깅해야 합니다. 이번 글에서는 IOS 앱을 분석하기 위한 원격 디버깅 준비 과정을 설명합니다. 준비물은 아래와 같습니다. 탈옥된 IOS, XCODE가 설치된 맥북, USB케이블 만약 XCODE 또는 맥북이 없다면 아래의 바이너리를 사용해보세요. 아이폰5S IOS 12.4에서 테스트된 바이너리입니다. 다른 버전에서는 동작할지 모르겠습니다. 먼저 XCODE를 켜고 아래와 같이 새로운 프로젝트를 아무 이름으로 생성합니다. 그리고 아래와 같이 연결된 핸드폰으로 설정하고 핸드폰에 맞는 버전에 맞춰줍니다. 그리고 핸드폰 설정하는 부분 왼쪽에 있는 재생 비슷한 버튼을 누르게 되면 USB로 연결된 아이폰에..
KISA 소프트웨어 취약점 보상 테이블 버그바운티를 하게 만드는 가장 큰 이유가 포상금인데요. 이번 글에서는 그동안 취약점을 신고하며 포상금을 받은 경험을 바탕으로 제 개인적인 생각이 포함된 KISA의 버그바운티 포상금에 대해서 작성해보려고 합니다. KISA에서는 보급도와 파급도(취약점으로 인한 피해가 발생하거나, 발생할 수 있다고 보여지는 정도)를 기준으로 포상금을 지급하고 있기 때문에 파급도가 없거나 매우 낮은 경우 포상에서 제외될 수 있습니다. 예시) 다른 취약점과 연계될 수 없는 힙 오버플로우 취약점 포상금을 받을 수 있는 취약점의 종류는 크게 3가지로 볼 수 있습니다. 사용자의 입력없이 발생하는 코드실행 취약점 사용자의 단순한 입력이 필요한 코드실행 취약점 정보 노출 취약점 등 기타 취약점 우선 포상금을 계산하기 전 소프트웨어 보급도..
Frida를 무조건 익혀야 하는 이유(ios, android 앱 분석) 안녕하세요. 오늘은 Frida를 무조건 익혀야 하는 이유에 대해서 작성해보려고 합니다. https://frida.re/ Frida • A world-class dynamic instrumentation framework Inject JavaScript to explore native apps on Windows, macOS, GNU/Linux, iOS, Android, and QNX frida.re Frida는 윈도우, 맥, 리눅스, IOS, ANDROID 기반 바이너리를 분석하기 위한 라이브러리 입니다. 예를 들어 윈도우 실행파일 분석에 많이 쓰이는 올리디버거, IDA 등이 있는데요. 그런데도 왜 Frida가 중요한 것일까요? 바이너리를 분석하는 과정에는 동적 분석과 정적 분석이 있습니다. 두가지 모두..
안드로이드 앱 디컴파일 그리고 빌드하기 안녕하세요 오늘은 안드로이드 앱을 디컴파일하고 수정 후 다시 빌드 하는 과정을 소개해드리려고 합니다. 먼저 앱(APK)파일을 소스코드로 돌리려면 Java와 Apktool 이라는 프로그램이 필요합니다. https://www.oracle.com/java/technologies/javase-downloads.html 위의 사이트에서 JDK를 다운로드할 수 있습니다. 그리고 java --version 명령어를 사용하여 설치된 것을 확인할 수 있습니다. 만약 명령어를 찾을 수 없다는 메시지가 나온다면 JDK가 설치된 경로를 시스템 경로에 등록해주어야 합니다. unknownui-MacBook-Pro:apktools unknown1$ java --version java 14.0.1 2020-04-14 Java(TM)..