② 공부
취약점 진단 및 분석 도구(12) - Drozer(모듈 관리, 모듈 설치, 저장소 관리)
모듈 관리 드로저는 모듈 명령어이기 때문에 다양한 기능을 추가하거나 삭제할 수 있고, 몇가지 공격 코드도 제공한다. 모듈들은 파이썬으로 작성되었고, 디바이스에 설치된 드로저 에이전트로 안드로이드 운영체제 안에서 실행할 수 있다. 사용자가 직접 “/drozer/modules” 경로에 추가할 수 있다. 모듈 제작 관련 페이지 아래 사이트에서는 모듈 작성에 필요한 기본 내용을 제공한다. https://github.com/FSecureLABS/drozer/wiki/Writing-a-Module 모듈 명령어에 대한 설명을 보기 위해 “-h” 옵션으로 확인한다. 모듈에서 사용할 수 있는 명령어들 모듈 설치 search 명령어로 현재 연결된 공식 모듈 저장소로부터 다운로드할 수 있는 모듈을 검색하는 기능을 확인했다...
취약점 진단 및 분석 도구(11) - Drozer를 활용한 취약점 진단(Debuggable package 분석)
Debuggable package 분석 패키지 정보 수집에서 발견되었던 마지막 취약점이다. 디버깅이 가능하도록 설정되어 있기 때문에 발생하는 취약점으로, 중요한 정보 노출 위험이 있다. 액티비티 우회 취약점, 콘텐츠 프로바이더 실행 취약점 등이 이에 해당한다. 다음 영령어로 확인이 가능하다. 명령어 : run app.package.debuggable -f inse 옵션을 지정하지 않으면 기본적으로 설치된 모든 앱에서 디버깅이 가능한 앱을 찾는다. 특정 앱을 지정하기 위해서는 “-f” 옵션의 특정 단어로 필터링해줘야 한다.
취약점 진단 및 분석 도구(10) - Drozer를 활용한 취약점 진단(서비스 분석)
서비스 분석 서비스는 앱 구성 요소 중 하나로, 화면에 보이는 액티비티와 반대로 UI가 없고, 백그라운드에서 실행되는 컴포넌트의 종류이다. ex) 음악 앱(사용자가 음악을 재생 후 앱을 끄거나 다른 작업을 할 때에도 음악이 계속 재생된다. 그 이유는 서비스가 계속 실행 중이기 때문이다. 특정 앱의 서비스를 찾는 모듈로 확인이 가능하다. 아래의 명령어는 Email 앱의 서비스 목록 예제이다. 명령어 : run app.service.info -a [패키지명] 해당 모듈에서도 다른 모듈에서 많이 사용했던 숨겨진 서비스를 찾는 “-u” 옵션과 특정 단어로 필터링해주는 “-f” 옵션을 제공한다. 명령어 : run app.service.info -u -f email
취약점 진단 및 분석 도구(9) - Drozer를 활용한 취약점 진단(콘텐츠 프로바이더 분석)
콘텐츠 프로바이더 분석 콘텐츠 프로바이더 : 특정 애플리케이션이 사용하고 있는 데이터베이스를 공유하기 위해 사용된다. 전체 데이터가 아닌 공유를 원하는 데이터만을 공유하기 위한 수단이기도 하다. 앱에 의해 노출된 콘텐츠 프로바이더 정보는 “run app.provider.info” 모듈로 추출할 수 있다. run app.provider.info 옵션 “-a” 옵션으로 어떤 프로바이더가 노출되었는지 확인했다. 명령어 : run app.provider.info -a com.android.insecurebankv2 결과 값으로 “com.android.insecurebankv2.TrackUserContentProvider”가 노출되었다. 콘텐츠 프로바이더는 데이터베이스에 있는 정보를 URI로 공유하기 때문에 데이..
취약점 진단 및 분석 도구(8) - Drozer를 활용한 취약점 진단(브로드캐스트 리시버 분석)
안드로이드 디바이스에서 이벤트가 발생하는 경우 앱들이 브로드캐스트 신호를 주고받으며 시스템상에 일어나는 상황들을 공유한다. 이때 신호를 받기 위해서는 브로드캐스트가 정의되어 있어야 하며, 각각의 신호에 맞는 액션 역시 적용되어 있어야 한다. 명령어 : run app.broadcast.info -a [패키지명] 출력된 내용을 보면 인시큐어뱅크 앱의 브로드캐스트 리시버 이름이 “MybroadCastReciver”인 것을 확인할 수 있다. “app.broadcast.info” 모듈로 다양한 정보를 얻기 위해 다음과 같은 옵션을 사용할 수 있다. app.braodcast.info 명령어 옵션 옵션을 지정하지 않거나 “-u” 옵션 사용 시 추가 옵션을 선택하지 않으면 모든 앱 점검을 실행하기 때문에 각 명령어를 ..
취약점 진단 및 분석 도구(7) - Drozer를 활용한 취약점 진단(액티비티 분석)
앞에서 앱의 취약점 검사 모듈로 얻은 결과 중 액티비티 노출 관련 취약점이 발견되었다. 액티비티에 대해 더 자세하게 알기 위해 다음 명령어를 사용한다. 명령어 : run app.activity.info -a [패키지명] 요약되었던 액티비티 정보들이 정확한 이름으로 출력되었다. 실제로 액티비티 실행이 가능한지 테스트를 해 볼 것이다. 명령어 : run app.activity.start --component [컴포넌트 이름] 명려어를 사용한 결과 패스워드 변경 페이지는 로그인 후 특정 권한이 있어야만 접근이 가능하지만, 이렇게 페이지를 권한 없이 접근할 수 있는 취약점을 갖고 있다.
취약점 진단 및 분석 도구(6) - Drozer를 활용한 취약점 진단(드로저를 활용한 취약점 분석)
드로저의 큰 장점은 자동으로 앱의 취약한 부분을 검색하는 기능을 갖고 있다. 앱의 취약점을 자동으로 분석하는 기능은 “app.package.attacksurface” 모듈로 가능하며 기본적으로 설치되어 있다. “-h” 옵션으로 모듈 설명 페이지 확인이 가능하다. 명령어 : run app.package.attacksurface -h 사용 방법은 명령어 뒤에 패키지명을 입력하면 된다. 점검 항목은 액티비티 노출, 브로드캐스트 취약점, 노출된 콘텐츠 프로바이더, 서비스 노출이다. 명령어 : run app.package.attacksurface [패키지명] 아래의 결과에서는 5개의 액티비티가 노출되었으며, 브로드캐스트 리시버 취약점, 콘텐츠 프로바이더, 디버깅이 가능한 취약점이 발견되었다.
취약점 진단 및 분석 도구(5) - Drozer를 활용한 취약점 진단(드로저를 활용한 앱 패키지 정보 확인)
드로저를 활용한 앱 패키지 정보 확인 앱의 기본적인 정보들부터 취약점을 확인하고, 이 취약점으로부터 어떤 정보를 얻을 수 있는지 살펴본다. 패키지 정보 수집 전 분석하려는 앱이 디바이스에 설치되어 있는지 확인해야 하고, 디바이스 화면에 표현되는 어플 이름과 패키지명이 다르므로 앱의 패키지명을 확인해야 한다. → 명령어 : run app.package.list : 설치된 패키지 목록 옵션 없이 명령어를 실행하면 디바이스에 설치된 모든 앱의 패키지명이 출력되기 때문에 “-f” 옵션을 추가하여 특정 단어가 들어간 패키지 정보를 추출한다. → 명령어 : run app.package.list -f [문자열] 앱의 기본적인 정보를 얻기 위해서는 다음과 같은 명령어를 사용한다. → 명령어 : run app.packa..