6. 취약한 인증 매커니즘 액티비티 노출 취약점
·
프로젝트/AOS 모바일 앱 모의해킹
1. 취약점 소개○ 정상적인 인증 절차를 우회하여 비정상적으로 인증 권한 획득○ OWASP Mobile Top 10 2024-M3: Insecure Authentication/Authorization 에 해당    ● 적절하지 않은 앱 퍼미션 설정 여부    ● 서비스 권한 상승 행위에 대한 통제 여부     ● 기능에 대한 제한 또는 우회 금지 여부     ● 불필요하거나 사용하지 않는 액티비티 제거 여부    ● 인텐트 사용에 대한 안정성 여부    ● 마스터 키 취약점 대응 여부  ○ android:exported는 다른 어플에 의해서 현재 만들고 있는 앱의 액티비티 실행 여부를 설정○ exported의 값이 true인 경우에는 모든 앱에서 접근이 가능○ false인 경우에는 모든 앱에서 접근이 불..
12. Drozer에 대한 이해
·
기반 지식/Android
1. 드로저(Drozer)○ Drozer는 MWR InfoSecurity에서 개발한 모바일 애플리케이션 취약점 진단 프레임워크인 Mercury의 업데이트 버전○ 가상 디바이스 뿐 아니라 실제 안드로이드 디바이스에 테스트가 가능하며, 자동화된 테스팅 가능○ 다양한 시나리오를 통해 취약점 점검이 가능능  2. 설치○ nox_adb.exe 파일인 될 수 있으면, path에 등록해 놓는 것이 좋음 ○ drozer의 모듈이 존재하지 않을 경우, drozer 명령어 설치 디렉터리에서 실행 권장 Drozer Windows : https://github.com/WithSecureLabs/drozer GitHub - WithSecureLabs/drozer: The Leading Security Assessment Fra..
5. 통신 과정 취약점 진단
·
프로젝트/AOS 모바일 앱 모의해킹
1. 통신 과정 파라미터 조작을 통한 인증 우회○ 클라이언트와 서버가 통신할 때 중간에 패킷을 가로채서 파라미터를 변조하는 취약점○ 정상적인 요청 값을 공격자가 변조하여 정보 유출 등의 피해가 발생○ 또한, 파라미터 조작을 통해 인증 우회도 가능     2. 통신 과정 암호화 여부 확인  3. 대응방안○ 파라미터 값을 암호화하여 조작 불가능하도록 해야 함○ 세션 값 검증을 통해 다른 사용자 계정에 대한 조작이 불가능하도록 해야 함○ 파라미터 조작을 통한 입력 값에 대한 유효성 검증은 서버에서 검증하도록 해야 함○ 비밀번호 변경 기능을 사용할 때 아이디로만 인증하는 것이 아닌, 이전 비밀번호도 포함해 인증하도록 강화○ 또한, 비밀번호 변경 시 통신은 HTTP가 아닌 HTTPS로 통신하도록 암호화 적용 필수
11. 녹스(Nox)에서 앱 SSL 자격증명 설치
·
기반 지식/Android
OpenSSL 설치 : https://github.com/openssl/openssl GitHub - openssl/openssl: TLS/SSL and crypto libraryTLS/SSL and crypto library. Contribute to openssl/openssl development by creating an account on GitHub.github.com   openssl x509 -inform DER -in burp.der -out burp.pem openssl x509 -inform PEM -subject_hash_old -in burp.pem  nox_adb root nox_adb remount nox_adb push 9a5ba575.0 /system/etc/security..
10. 안드로이드 dumpsys 패키지 정보 확인
·
기반 지식/Android
○ nox_adb.exe shell dumpsys activity activities | findstr com.android.insecurebankv2    ● 액티비티 정보 확인 가능
4. 취약한 로깅 메커니즘
·
프로젝트/AOS 모바일 앱 모의해킹
1. 로그캣(Logcat) 메시지 유형 및 설명○ 로그는 실행 중에 발생하는 프로그램의 이벤트, 통신 기록 등을 나타냄○ 로그를 사용하여 장애 원인 분석이나, 프로그램을 개발 또는 유지보수 하는데 유용하게 사용 됨○ 취약한 로깅 메커니즘은 로그 기록에 노출되면 안되는 중요한 데이터가 기록되는 경우가 발생○ 안드로이드 스튜디오에서 제공하는 logcat을 사용해 진단 메시지 유형설명V● Verbos (중요하지 않은 정보)D● Debug ( 디버그 정보 )I● Information ( 일반 정보 )W● Warning ( 경고 정보 )E● Error ( 에러 정보 )F● Fatal ( 중요한 정보 )S● Silent ( 가장 높은 우선 순위 정보 ) 옵션설명-s● 모든 태그의 우선 순위를 'silent'로 설정..
3. 앱 내부/외부 저장소 취약점 진단
·
프로젝트/AOS 모바일 앱 모의해킹
1. 응용 프로그램의 권한 관리○ 안드로이드에 설치된 모든 응용 프로그램은 일반 사용자 권한으로 실행됨○ 응용 프로그램이 사용자의 데이터에 접근할 때 모든 사항을 응용프로그램사양에 명시○ 접근 시 사용자의 동의를 받도록 하고 있음(응용 프로그램 설치 시 동의 절차)○ 모든 응용 프로그램은 설치 시 자신의 고유한 사용자 ID를 할당 받아서 동작함 ○ 개인방 : /data/data    ● Interal storage (내부 저장소)    ● 중요한 정보가 포함이 된 것은 정상    ● 대신 강한 암호를 이용해 암호화가 이뤄져야 함 (SHA 256 이상) 디렉터리설명/data/data/● 설치 앱 패키지 경로, 루트 권한으로 접근 가능/data/data//files● 애플리케이션이 소유한 데이터 또는 파일 ..
9. 로컬 암호화 이슈 & 취약한 SD카드 스토리지
·
기반 지식/Android
1. 취약점 소개○ 안드로이드에서 온라인/오프라인을 통해 데이터를 처리할 수 있도록 로컬 스토리지 제공 ○ 애플리케이션 환경설정 정보, 외부 API 연동 및 인증을 위한 토큰 값, 연동 서버 정보 등을 로컬 스토리지에 저장○ 로컬 스토리지에 데이터를 저장하는 경우 보안을 고려하지 않으면 평문 형태의 파일로 저장○ 애플리케이션에서 저장되는 파일이나 데이터는 소유자만 접근 하도록 제한○ 공격자가 접근 제한을 우회하거나 권한 상승에 성공하는 경우 평문으로 저장된 데이터 획득 가능  2. 데이터 저장저장소설명 Shared Preferences ● 안드로이드 앱 설정(ID/PASS, 사용자 토큰 정보 등)들이 저장되는 저장소 SQLite Databases ● 데이터베이스(컨텐츠 목록, 사용자 목록 등)에 데이터가..
8. GDA를 활용한 디컴파일 코드 분석 사례
·
기반 지식/Android
1. GDAGDA4 출처 : https://github.com/charles2gan/GDA-android-reversing-Tool/releases/tag/GDA4.11 Release Bugs fix · charles2gan/GDA-android-reversing-ToolFixed the bug that the right-click menu can't display the frida menu. Fixed the bug that code blocks are lost during TRY-CATCH structure restoration. #154 Fixed the bug that API cross-reference res...github.com ○ 달빅 파일을 디컴파일 하는 도구○ 일부 난독화가 되어 있는 ..
7. Adroid 앱 코드 정적 분석 tool
·
기반 지식/Android
○ apk > dex > smali > class > java목록설명apk 파일압축해제 시 모바일 전용 dex 파일 생성apktoolapk 파일을 smali 파일로 디컴파일dex2jarapk 파일을 class 파일로 디컴파일jadx-guiapk 파일을 java 파일로 디컴파일Bytecode Viewerapk 파일을 java 파일 및 smali 파일로 디컴파일 1. apk 파일 압축 해제java 설치 : https://www.java.com/en/download/ Download Java for LinuxLinux RPM filesize: 102.35 MB Instructions After installing Java, you will need to enable Java in your browser.www..