본문 바로가기

ios 탈옥탐지4 - 루프백 테스트 (서비스 탐지) ios 탈옥탐지4 - 루프백 테스트 장치를 탈옥시키고 가장먼저 하는 행위가 Cydia 설치 및 OpenSSH 설치. 따라서 127.0.0.1:22 로 루프백 테스트 했을 때 정상 연결된다면 탈옥으로 간주할 수 있다. 다만 공격자 입장에서는 그냥 ssh 포트를 바꾸면 그만이다... 이외에도 탈옥장치에서는 정상장치에서 돌릴 수 없는 각종 서비스들도 돌릴 수 있다. 앞서 말한 ssh가 대표적인 예시이고, 이같은 방법으로 다른 서비스들도 탐지 목록에 추가하면 된다.
ios 탈옥탐지3 - system(0) (ios 11이후 사용불가) 탈옥탐지3 - system(0) system(0); 함수 호출 시 반환값을 보고 탈옥여부를 판단한다. /bin/sh가 있는지 여부에 따라서 return 값이 달라지므로 이걸 보고 판단하는 것. return 0 : 비탈옥장치 (정상장치) return 1 : 탈옥장치 예시코드(앱에 적용) +(BOOL)doShell{ if(system(0))//system(0) 호출결과를 보고 탈옥판단 return YES; return NO; } 우회코드(MobileSubstrate로 후킹) static int (*old_system)(char *) = NULL; int st_system(char* cmd){ if(!cmd) return nil; return old_system(cmd); } __attribute__((con..
arm64 어셈블리어 학습 참조 링크 https://modexp.wordpress.com/2018/10/30/arm64-assembly/ A Guide to ARM64 / AArch64 Assembly on Linux with Shellcodes and Cryptography Introduction The Cortex-A76 codenamed “Enyo” will be the first of three CPU cores from ARM designed to target the laptop market between 2018-2020. ARM already has a monopoly on handheld… modexp.wordpress.com
ios 탈옥탐지2 - 파일시스템 검사 ios 탈옥탐지2 - 파일시스템 검사 1. 탈옥 관련 파일 존재 여부 확인 샌드박스된 앱도 샌드박스 외부에 존재하는 파일의 상태정도는 조회할 수 있다. ==> 대표적인 서드파티 앱과 탈옥 시 설치되는 다양한 파일들의 존재 여부를 확인하여 탈옥 상태를 판단한다. * 로우레벨의 C함수 사용 fopen(), stat(), access() * NSFileManager 클래스 fileExistsAtPath:, changeCurrentDirectoryPath: 메소드 등 ex) stat() 함수를 이용한 파일존재여부 판단 예시 //Cydia 설치여부를 확인하여 탈옥 감지 struct stat s; int is_jailbroken = stat("/Applications/Cydia.app", &s) == 0; ex) ..
ios 탈옥탐지1 - 샌드박스 무결성 검사 (잘못 알려진 내용) ios 탈옥탐지1 - 샌드박스 무결성 검사 (sandbox check) ios 앱 경로는 크게 두가지다. 1. 앱 샌드박스 내에 설치 기본적으로 서드파티 앱들은 신뢰할 수 없다고 가정하고 다양한 기능을 제한함. 2. 루트 파티션의 애플리케이션 폴더에 설치 ( /Applications ) 기본 탑재 앱은 샌드박스 없이 루트 경로 아래인 /Applications 에 설치된다. (샌드박스의 제한을 받지 않는다.) 물론 Cydia 등에서 받은 앱들도 웬만하면 굳이 샌드박스에 설치되지 않고 /Applications에 설치한다. 샌드박스 무결성 검사 ( "X" - 잘못 알려진 내용 ) 알려진 내용 : 샌드박스에선 fork()가 금지되므로, 제대로 동작했다면 샌드박스 제한을 받지 않는 상태다! --> 샌드박스 밖에 ..
ios 디컴파일 성능 비교 Ida, Hopper, Cutter(ghidra) ios 디컴파일 성능 비교 Ida, Hopper, Cutter(ghidra) 1. 대표적인 디스어셈블러인 IDA에는 Hexray라는 디컴파일러가 있다. 2. Hopper는 IDA에 비해 훨씬 저렴하며 mac과 ios에 초점이 맞춰져 있다. 3. Radare2에서 디스어셈블러로 Cutter를 만들고 있는데, 여기서 r2dec과 ghidra로 디컴파일 옵션을 제공한다. 3가지 툴의 디컴파일 성능을 비교해보자 (ios 기준) DVIA JB 테스트 분석겸 개인적으로 주석을 달아놓았는데, 이걸 빼고 보더라도 다소 난해해 보이기는 하나, 런타임 라이브러리에 익숙하다면 어셈블리어로 보는 것보다야 훨씬 편하다. (x86부터 익숙해진 단축키도 한몫..) ios와 mac에서는 확실히 hopper가 공을 들였다는 게 느껴진..
아드레날린 SEH 취약점 분석 1 아드레날린 POC exploit-db에 올라온 exploit poc이다. POC 내용을 보면 [BOF유발’A’*2140개 + SEH overwrite + 쉘코드]로 심플하게 구성돼있다. POC 파이썬 스크립트를 실행하면 .wvx 파일이 생성된다. 아드레날린을 열고 .wvx파일을 드래그하면 계산기가 팝업된다. 왜 그런지, 실제로 어떻게 동작하게 되는 건지 원인으 분석해보자. 2 POC 실행 테스트 아무 BP없이 무작정 poc파일을 올려보았다. 앞서 POC 스크립트를 봐서 SEH 취약점이라는 것을 알고있기도 하지만, 쉘코드가 진행되지 않고 예외처리를 묻는 과정에서 멈춘다는 점에서 다시한번 SEH 취약점이구나를 짐작할 수 있다. 우측 스택을 보면 이미 수 많은 "AAAA"들로 가득차서 BOF가 진행된 상태..
맥(MAC) 터미널 명령어 컬러 입히기 - Terminal Color 맥(MAC) 터미널 명령어 컬러 입히기 - Terminal Color sudo vim ~/.bash_profile ~/.bash_profile 파일 열기 (아마 설정 안하셨던 분이라면 해당 파일이 없음. 만들면 됨.) export CLICOLOR=1 export LSCOLORS=GxFxCxDxBxegedabagaced export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' 내용 입력하고 저장 후 터미널 재시작 참조 : https://ljs93kr.tistory.com/53