앱의 액티비티가 보안적으로 취약하게 선언되어 있으면 로직을 무시하고 공격자가 필요한 액티비티를 강제로 호출하며 해당 취약점을 악용하는 경우 권한이 없는 사용자가 특정 액티비티에 접근하여 권한 없이 특정 기능을 활성화할 수도 있음
선언된 액티비티를 확인한 후 ADB와 드로저로 취약하게 선언된 액티비티를 호출하여 해당 앱의 취약성 여부를 확인
취약점 진단 과정
- 선언된 activity에 포함된 exported 속성 중요하게 봐야함
- exported 값이 포함되어 있지 않은 경우에는 기본적으로 false로 설정
- 선언된 액티비티에 intent-filter가 포함되면 true 상태로 변경되어 다른 애플리케이션에서 exported=true 상태인 액티비티 실행
- 인시큐어뱅크 애플리케이션에 선언된 액티비티를 확인하기 위해서는 가장 먼저 애플리케이션을 디컴파일 해야 함 : apktool
- -n [패키지명]/.[액티비티 경로]
- 드로저로 액티비티의 취약점을 공격하기 위해 가장 먼저 애플리케이션에 노출된 액티비티가 있는지 확인
- 이 명령어로 나오는 액티비티들은 exported=true인 경우
- 특정 액티비티 실행
- 화면 변환
- 그러나 현재는 username에 사용자명이 없기 떄문에 비밀번호가 변경이 안 됨
- 소스코드 확인 결과 uname에 사용자 이름을 전달하여 액티비티 변환하기 때문에 이를 추가해야함
- 명령어 --extra 로 추가
- 이제 비밀번호 변경 가능
- 서버측 로그 확인 장면
취약점 대응 방안
- exported=false로 변경 필수
- 그러면 run app.activity.info -a [애플리케이션 명] 이 명령어로 보이지 않음
- 부득이하게 공개해야 하는 경우 사용자 인증 절차를 추가하여 인증되지 ㅏㅇㄶ은 사용자의 접근을 차단하는 방법을 추가해야함
'정보보안 > 안드로이드해킹' 카테고리의 다른 글
안드로이드 모의해킹) 안전하지 않은 콘텐츠 프로바이더 접근 (0) | 2020.07.28 |
---|---|
안드로이드 모의해킹) 루팅 탐지 및 우회 (0) | 2020.07.28 |
안드로이드 모의해킹) 로컬 암호화 이슈 (0) | 2020.07.28 |
안드로이드 모의해킹) 취약한 인증 메커니즘 (0) | 2020.07.28 |
안드로이드 모의해킹) 브로드캐스트 리시버 결함 (1) | 2020.07.28 |
댓글