Переведено специально для xss.pro by Stalker
Ссылка на ориг. статью
MobileHunter Анализ с использованием glorifiedgrep
Это быстрое и краткое описание того, как модуль Python "glorifiedgrep" можно использовать для быстрого анализа приложений Android. Это не полный анализ приложения. Анализ проводился с использованием glorifiedgrep версии 0.9.3. Анализ можно посмотреть в следующем asciinema. Пожалуйста, поймите, что это не полный анализ, а очень краткое введение в glorifiedgrep.
Прочитать полный анализ тут и тут.
Класс GlorifiedAndroid для glorifiedgrep предлагает более 200+ различных методов для анализа Android, но здесь показаны только очень немногие. Обратитесь к полной документации для всего анализа.
Также имейте в виду, что glorifiedgrep не является модулем обнаружения уязвимостей. Это помогает быстро определить области, представляющие интерес, что следует дополнительно изучить.
glorifiedgrep
Анализ
Для использования glorifiedgrep, во-первых, нам нужно создать экземпляр класса GlorifiedAndroid.
Получение хэш приложения.
Мы можем получить хеш приложения, используя:
Опасные разрешения
Мы можем получить список опасных разрешений, которые используются приложением, используя :
Типы файлов
Наши поиски указали на то, что этот apk файл находится с несколькими исполняемыми файлами. Давайте использовать glorifiedgrep, чтобы получить все типы файлов, которые связаны с этим приложением.
Используя один простой метод, мы можем увидеть различные двоичные файлы, которые включены в приложение вместе с файлом приложений, занесенным в черный список.
Выполнение команд оболочки
Вместо использования JNI, приложение непосредственно выполняет некоторые из предварительно упакованных двоичных файлов в оболочке. Мы можем видеть случаи исключения оболочки здесь, используя следующий код
Чтение конфиденциальной информации
Поиски также указали, что приложение будет читать различную конфиденциальную информацию о пользователях, включая SMS, записи календаря и журналы вызовов. Как правило, эта информация получается из средств разрешения контента. glorifiedgrep предлагает удобный метод получения URL-адресов для различного содержимого. Используя небольшое понимание списка, давайте соберем все средства разрешения контента, к которым обращается это приложение. Мы также включим в наш анализ только код приложения.
Запросы приложений для установленных пакетов
Собственный класс PackageManager и его метод getInstalledPackages из Android SDK могут использоваться приложением для перечисления установленных приложений на устройстве. Мы можем видеть это, используя:
Приложение делает POST-запросы
Исследования показали, что это приложение будет публиковать все перечисленные данные. Мы можем увидеть запросы POST в
Кодированный IP-адрес
Мы знаем, что приложение попытается отправить данные на локальный 192 IP-адрес. Мы можем увидеть те, в
Переменные среды
Мы также видим, что приложение пытается получить доступ к внешнему хранилищу, чтобы сохранить свои данные. Мы можем сделать это, проверив, к каким переменным среды он пытается получить доступ.
Заключение
Как мы видим, мы можем выполнить анализ приложений Android с помощью glorifiedgrep очень быстро.
P.S. Поддержать переводы печеньками к чаю:
QIWI +380999543560
Yandex.Money 410018707581713
Ссылка на ориг. статью
MobileHunter analysis using glorifiedgrep
MobileHunter Analysis using glorifiedgrep
www.securisec.com
MobileHunter Анализ с использованием glorifiedgrep
Это быстрое и краткое описание того, как модуль Python "glorifiedgrep" можно использовать для быстрого анализа приложений Android. Это не полный анализ приложения. Анализ проводился с использованием glorifiedgrep версии 0.9.3. Анализ можно посмотреть в следующем asciinema. Пожалуйста, поймите, что это не полный анализ, а очень краткое введение в glorifiedgrep.
Прочитать полный анализ тут и тут.
Класс GlorifiedAndroid для glorifiedgrep предлагает более 200+ различных методов для анализа Android, но здесь показаны только очень немногие. Обратитесь к полной документации для всего анализа.
Также имейте в виду, что glorifiedgrep не является модулем обнаружения уязвимостей. Это помогает быстро определить области, представляющие интерес, что следует дополнительно изучить.
glorifiedgrep
Анализ
Для использования glorifiedgrep, во-первых, нам нужно создать экземпляр класса GlorifiedAndroid.
Код:
g = GlorifiedAndroid('/tmp/base.apk')
Получение хэш приложения.
Мы можем получить хеш приложения, используя:
Код:
>>> g.file_hash_of_apk()
{'md5': '155945a28c2b0158f47eb6a6351d795d',
'sha1': 'ac9516e7cb14dced53504a93ef36b7a1edc6e017',
'sha256': 'dc12d5c78117af8167d8e702dd131f838fe86930187542cf904b2122ba32afd1'}
Опасные разрешения
Мы можем получить список опасных разрешений, которые используются приложением, используя :
Код:
>>> g.manifest_dangerous_permission()
['android.permission.READ_CALENDAR',
'android.permission.READ_SMS',
'android.permission.READ_CONTACTS',
'android.permission.READ_PHONE_STATE',
'android.permission.WRITE_EXTERNAL_STORAGE',
'android.permission.RECEIVE_SMS',
'android.permission.CAMERA',
'android.permission.RECORD_AUDIO',
'android.permission.ACCESS_COARSE_LOCATION']
Типы файлов
Наши поиски указали на то, что этот apk файл находится с несколькими исполняемыми файлами. Давайте использовать glorifiedgrep, чтобы получить все типы файлов, которые связаны с этим приложением.
Код:
>>> g.file_get_file_types(exclude=['xml', 'png'])
{'application/octet-stream': ['/tmp/GlorifiedAndroid/unzipped/resources.arsc',
'/tmp/GlorifiedAndroid/unzipped/classes.dex',
'/tmp/GlorifiedAndroid/unzipped/META-INF/CERT.RSA',
'/tmp/GlorifiedAndroid/unzipped/assets/xbin/bk_samples.bin'],
'image/png': [],
'audio/x-wav': ['/tmp/GlorifiedAndroid/unzipped/res/raw/beep.wav'],
'text/plain': ['/tmp/GlorifiedAndroid/unzipped/META-INF/MANIFEST.MF',
'/tmp/GlorifiedAndroid/unzipped/META-INF/CERT.SF',
'/tmp/GlorifiedAndroid/unzipped/assets/xbin/id.conf',
'/tmp/GlorifiedAndroid/unzipped/assets/xbin/terrorism_apps.csv'],
'application/x-sharedlib': ['/tmp/GlorifiedAndroid/unzipped/assets/xbin/getVirAccount',
'/tmp/GlorifiedAndroid/unzipped/assets/xbin/gen_wifi_cj_flag_pie',
'/tmp/GlorifiedAndroid/unzipped/assets/xbin/wifiscan_pie'],
'application/x-executable': ['/tmp/GlorifiedAndroid/unzipped/assets/xbin/wifiscan',
'/tmp/GlorifiedAndroid/unzipped/assets/xbin/gen_wifi_cj_flag']}
Используя один простой метод, мы можем увидеть различные двоичные файлы, которые включены в приложение вместе с файлом приложений, занесенным в черный список.
Выполнение команд оболочки
Вместо использования JNI, приложение непосредственно выполняет некоторые из предварительно упакованных двоичных файлов в оболочке. Мы можем видеть случаи исключения оболочки здесь, используя следующий код
Код:
>>> g.code_command_exec().out
[{'file': 'sources/com/fenghuo/utils/ShellCommands.java',
'line': '43',
'match': '.exec(str)'},
{'file': 'sources/com/fenghuo/utils/ShellCommands.java',
'line': '76',
'match': '.exec(str)'},
{'file': 'sources/com/fenghuo/utils/ShellCommands.java',
'line': '89',
'match': '.exec("chmod 777 " + str).waitFor()'}]
Чтение конфиденциальной информации
Поиски также указали, что приложение будет читать различную конфиденциальную информацию о пользователях, включая SMS, записи календаря и журналы вызовов. Как правило, эта информация получается из средств разрешения контента. glorifiedgrep предлагает удобный метод получения URL-адресов для различного содержимого. Используя небольшое понимание списка, давайте соберем все средства разрешения контента, к которым обращается это приложение. Мы также включим в наш анализ только код приложения.
Код:
>>> [x['match'] for x in g.other_content_urlhandler().in_file('feng').out]
['content://com.android.calendar/events',
'content://calendar/events',
'content://sms',
'content://sms/icc',
'content://sms/sim',
'content://com.android.contacts/contacts',
'content://com.android.contacts/contacts/',
'content://icc/adn',
'content://sim/adn',
'content://sim/adn',
'content://icc/adn']
Запросы приложений для установленных пакетов
Собственный класс PackageManager и его метод getInstalledPackages из Android SDK могут использоваться приложением для перечисления установленных приложений на устройстве. Мы можем видеть это, используя:
Код:
>>> g.code_package_installed()
[{'file': 'sources/com/fenghuo/qzj/WelcomeActivity.java', 'line': '715', 'match': '.getInstalledPackages(8192)'}]
Приложение делает POST-запросы
Исследования показали, что это приложение будет публиковать все перечисленные данные. Мы можем увидеть запросы POST в
Код:
>>> g.code_apache_http_post_request()
[{'file': 'sources/com/fenghuo/http/HttpManager.java', 'line': '65', 'match': 'new HttpPost(reqEvent.getReqUrl())'}]
Кодированный IP-адрес
Мы знаем, что приложение попытается отправить данные на локальный 192 IP-адрес. Мы можем увидеть те, в
Код:
>>> g.other_ip_address().out
[{'file': 'sources/com/fenghuo/utils/Global.java',
'line': '554',
'match': '192.168.43.1'},
{'file': 'sources/com/fenghuo/utils/Util.java',
'line': '1045',
'match': '0.0.0.0'}]
Переменные среды
Мы также видим, что приложение пытается получить доступ к внешнему хранилищу, чтобы сохранить свои данные. Мы можем сделать это, проверив, к каким переменным среды он пытается получить доступ.
Код:
>>> g.code_get_environment_var().out
[{'file': 'sources/com/fenghuo/qzj/WelcomeActivity.java',
'line': '322',
'match': 'getenv("EXTERNAL_STORAGE")'},
{'file': 'sources/com/fenghuo/qzj/WelcomeActivity.java',
'line': '325',
'match': 'getenv("SECONDARY_STORAGE")'}]
Заключение
Как мы видим, мы можем выполнить анализ приложений Android с помощью glorifiedgrep очень быстро.
P.S. Поддержать переводы печеньками к чаю:
QIWI +380999543560
Yandex.Money 410018707581713
Последнее редактирование: