전체 글(333)
-
Santoku: Exposed Content provider Vulnerability (using Drozer)
CSipSimple 앱 파일에 내포되어 있는 취약점 분석 drozer 툴을 활용해 제 3자의 입장에서 해당 앱에 어떤 기능을 사용할 수 있고 어떤 데이터에 접근이 가능한지 확인한다. #1 drozer, CSipSimple installation (파일들은 github, google에서 구할 수 있음) $ adb install drozer.apk $ adb install CSipSimple.apk #2 Connection 디바이스에서 drozer앱을 실행시킨 뒤 31415포트를 열어 listening을 시작한다. $ adb forward tcp:31415 tcp:31415 $ drozer console connect [ Drozer Command ] 1. dz> list 2. dz> run app.pack..
2020.02.02 -
Santoku: Drozer
Drozer 도구 사용에 있어서 몇 가지 명령어를 정리하고자 한다. Desktop과 drozer server(device)의 연결 #1 디바이스에서 drozer서버를 동작시킨다. #2 $ adb forward tcp:31415 tcp:31415 (기본포트) #3 $ drozer console connect dz> ls : 모든 명령어를 확인할 수 있따. dz> run app.package.list dz> run app.package.attacksurface [PackageName] dz> run app.provider.finduri -a [PackageName] dz> run app.provider.query content://PackageName/uri 아래 그림은 Path travel취약점이 성공한 ..
2020.02.01 -
Santoku: Bypass SSL Pinning using Frida
사용자가 앱을 설치하고 해당 앱을 통해서 인터넷에 접속한다. 앱이 인터넷 서버에 접속할 때 서버와 통신을 하는데 암호 키를 교환하고 암호화 방식을 결정하고 서버의 인증서를 확인한다. 앱에서는 SSL Pinning이라고 하는 앱 내부에 신뢰할 수 있는 인증서들을 저장해놓고 (hard-code)접속하려는 서버의 인증서와 비교한다. Frida를 통해 앱을 Hooking하여 앱이 인증서를 검증하는 과정에서 내가 가진 서버의 인증서를 유효한 인증서로 인식하도록 한다. 먼저 인증서가 필요하니 인증서를 다운 받도록 하자. Burp suite의 인증서를 사용할 것이다. #1 Desktop에서 Burp Suite 실행 #2 인터넷에서 프록시 연결 설정을 진행한다. #3 http://burp에 접속한 뒤 인증서를 다운받는..
2020.02.01 -
Smali Code
1. move vA, vB (A = B ) A: target register (4bits), B: source register (4bits) 2. move-result vAA ★★★★ A: target register (8bits) 해당 명령 직전의 invoke-X 함수 호출의 결과를 A에 저장한다. 3. return-void invoke-X 함수 실행 후에 void값을 리턴한다. move-result명령 필요 X 4. return vAA A: target register (8bits) 4byte까지의 데이터를 리턴한다. 5. return-object vAA 단순 변수가 아닌 Object를 리턴할 때 사용한다. 6. const/4 vA, #+B A(4bits), B(4bits) B에 지정된 값을 A에 저..
2020.02.01 -
Santoku: Reversing an Application
1. Decompile an app 2. Inspecting the source code (Java code, Smali code) key_val변수의 값이 0이기 때문에 다음과 같은 화면을 보여진다. key_val값을 선언하는 코드를 조작하자. 3. Manipulate the code cocon>smali.coc>on>cocon.smali 4. Repackaging and Signing the app and Install it. 이전 포스팅에 keystore 생성과 앱에 등록하는방법 있습니다. $ jarsigner -verbose -sigalg MD5withRSA -digalg SHA1 -keystore my_release_key.keystore [AppName] alias_name 5. Run the..
2020.01.31 -
Santoku: Static Analysis Log 확인
1. Decompile an App $ apktool d [App] $ apktool d firefox.apk 2. 앱의 소스코드가 저장된 디렉토리로 이동 3. grep을 이용해 소스코드에 존재하는 로그관련 코드를 검색한다 $ grep -iRn "Log.d" . -i: 대소문자 구별x -R: 하위 디렉토리 + 심볼릭링크까지 타고들어가서 검색한다 -n: 해당 문자를 찾은 파일명+ 라인번호를 출력 .
2020.01.31 -
Santoku: 안드로이드 앱 소스코드 변환 Dex->Jar (dex2jar, jd-gui)
dex파일은 사람이 알아볼 수 없는 코드이기에 jar형식으로 변환하여 안드로이드의 소스코드를 살펴본다. dex2jar을 이용해 안드로이드 앱 자체를 jar형식으로 변환해서 확인할 수 있다. >>> dex2jar.bat Filename.apk 명령어로 jar파일을 획득할 수 있다.
2020.01.31 -
Santoku: Signing an Application using keytool and jarsigner
#1 Create Keystore $ keytool -genKey -v -keystore [keyStoreName] -alias [AliasName] -keyalg [Algorithm] -keysize [size] -validity [유효기간] keystore password:123456 key password for : 654321 alias: 프로젝트를 구분할 수 있는 변수 #2 Signing an Application $ jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my_release_key.keystore newCocon.apk alias_name digest: 해시 함수를 통해 암호화된 데이터의 형태 # Verification..
2020.01.31 -
Santoku: Decompile an Application using apktool
# Decompile $ apktool d [App] [DirName] # Compile $ apktool b [DirName] [AppName]
2020.01.31 -
Frida 사용법
Frida Native apps들에 JavaScript코드를 실행시킬 수 있는 동적 분석 툴 킷이다. Installing Frida (Window환경) $ pip install frida-tools https://github.com/frida/frida/releases/ - frida-server-12.8.6-android-x86.xz 설치 후 디바이스에 넣어준다. $ adb push frida-server /data/local/tmp/ $ adb shell 접속 # chmod 755 /data/local/tmp/frida-server # ./frida-server & 이후 데스크탑에서 cmd> frida-ps -U 로 동작중인 프리다 서버를 확인할 수 있다 Using Frida on Android $ ..
2020.01.28