Программы для пентеста android
За десять лет существования Android разработчики приложений и те, кто эти приложения взламывает, обзавелись массой инструментов, направленных друг против друга. О том, какими способами можно защитить свое приложение, мы уже поговорили, а сегодня у нас обзор инструментов для взлома и реверса приложений.
Условно все инструменты анализа и реверса приложений (не только для Android) можно разделить на две группы:
- статический анализ — дизассемблеры, декомпиляторы, деобфускаторы и любые другие утилиты, которые работают с кодом, не запуская его;
- динамический анализ — инструменты, с помощью которых приложение можно запустить на виртуальном или реальном устройстве и проанализировать его поведение.
В обеих группах есть утилиты и для самых маленьких (запустил — получил список уязвимостей), и для матерых пентестеров. Мы рассмотрим их все.
Статический анализ
Итак, для начала поговорим об инструментах статического анализа. Каждый пентестер должен иметь в своем арсенале хотя бы два из них. Это декомпилятор и дизассемблер.
Декомпилятор нужен, чтобы перегнать байт-код Dalvik обратно в код Java и с его помощью разобраться, как работает приложение. Дизассемблер транслирует байт-код в гораздо более низкоуровневый код Smali (местный ассемблер), в котором труднее разобраться, но зато он всегда корректен настолько, что его можно собрать обратно в приложение. Этой особенностью можно воспользоваться, например, чтобы внедрить в приложение собственный код, как мы это сделали во второй части статьи о взломе приложений для Android .
Также пригодится деобфускатор. Он сделает декомпилированный код немного более читаемым. О том, что такое обфускация и деобфускация, мы также уже писали в третьей части статьи о взломе приложений .
Jadx
Первый инструмент в нашем списке — декомпилятор Jadx . Это активно развиваемый открытый декомпилятор, который выдает достаточно неплохой код Java на выходе и даже имеет функцию деобфускации кода. Работать с ним просто: запускаешь Jadx-gui, с его помощью выбираешь APK-файл приложений и видишь иерархию пакетов и файлы с исходниками на Java.
Jadx может работать и в режиме командной строки. Например, следующая команда декомпилирует приложение example.apk и поместит полученный код Java в каталог out:
$ jadx -d out example.apk
Более того, Jadx может дополнительно сгенерировать файлы build.gradle, чтобы исходники можно было импортировать в Android Studio:
$ jadx -e -d out example.apk
Собрать приложение из них не получится, зато анализировать код будет гораздо удобнее.
Apktool
Второй инструмент, который должен обязательно быть на твоем диске, — это Apktool . Его назначение — разборка и сборка приложений. При этом термин «разборка» подразумевает дизассемблирование кода приложения в файлы формата Smali, а также декомпрессию ресурсов и файла AndroidManifest.xml.
С помощью Apktool можно разобрать приложение, проанализировать дизассемблерный код, внести в него правки и собрать обратно. О том, как это сделать, мы подробно писали в статье « Ломаем Android ».
APKiD
Эта небольшая утилита понадобится тебе, когда ты заметишь, что Jadx не в состоянии декомпилировать приложение. В большинстве случаев это значит, что приложение было обфусцировано или упаковано с помощью специальных инструментов. APKiD позволяет узнать, какие конкретно инструменты были использованы, выяснить, было ли приложение пересобрано с помощью Apktool и используются ли в нем какие-то другие техники для защиты от дизассемблирования/декомпиляции и запуска в виртуальной машине.
APKiD далеко не всегда работает корректно, а в некоторых случаях вообще не выводит никакой информации на экран. Но он может помочь, если ты в тупике — вывод утилиты понятный. Например:
- anti_debug : Debug.isDebuggerConnected() check — проверка, подключен ли дебаггер с помощью метода isDebuggerConnected;
- anti_vm : Build.MANUFACTURER check — проверка производителя смартфона, чтобы понять, что находишься в виртуальной машине.
Но есть одно неочевидное поле: compiler. Оно обычно содержит dx или dexlib. Dx — стандартный компилятор Android SDK, а dexlib — это библиотека сборки файлов DEX из Apktool. Проще говоря, если в поле compiler находится dexlib, значит, приложение было пересобрано с помощью Apktool или аналогичного инструмента.
Simplify
Что, если APKiD сообщает о применении обфускатора, а при попытке изучить код ты сталкиваешься с зашифрованными строками? В этом случае тебе нужен деобфускатор, который сможет сделать код более читаемым. Абсолютное большинство деобфускаторов, которые ты найдешь в интернете, умеют бороться только с одним или несколькими обфускаторами, зачастую устаревших версий.
Simplify — универсальный деобфускатор. Вместо того чтобы искать в коде знакомые паттерны, он запускает код в виртуальной среде и дает ему возможность сделать все самому. В процессе исполнения код сам расшифрует зашифрованные строки, укажет на места, которые никогда не будут исполнены (обфускация с помощью мертвого кода), и укажет на реальный тип объектов, полученных с помощью рефлексии (а это позволит выполнить дерефлексию).
Из-за особенностей реализации виртуальной машины Simplify редко способен проанализировать все приложение целиком. Поэтому его стоит использовать для деобфускации отдельных методов и классов (это можно сделать с помощью флага -it):
$ java -jar simplify.jar -it 'org/cf/obfuscated' simplify/obfuscated-app.apk
DeGuard
Simplify поможет, если приложение было пропущено через мощный обфускатор. Однако большинство программистов не обременяют себя применением чего-то более сложного, чем входящий в состав Android Studio ProGuard. А ProGuard — это оптимизатор, в котором функция обфускации появилась как побочный эффект. Единственное, чем он запутывает реверсера, — это измененные на бессмысленный набор букв имена классов, методов и полей.
Разобраться в обфусцированном с помощью ProGuard коде не так уж и сложно, но сложнее, чем в совсем не обфусцированном (в два раза сложнее, если верить исследованиям). Поэтому даже для ProGuard существуют деобфускаторы.
DeGuard — наиболее интересный из них. Это веб-сервис, созданный в Высшей технической школе Цюриха. С помощью нейросетей он способен восстановить (а точнее, предсказать) оригинальные имена пакетов, классов, методов и полей. Одна проблема: нередко деобфусцированный код запутывает еще больше, чем оригинал.
Bytecode Viewer
А это решение класса «все в одном». Bytecode Viewer сочетает в себе функции Jadx, Apktool и еще нескольких инструментов. Он умеет дизассемблировать приложения, декомпилировать их с помощью пяти различных движков декомпиляции (JD-Core, Procyon, CFR, Fernflower, Krakatau), расшифровывать строки с помощью трех движков дешифрования, компилировать приложение обратно из декомпилированного кода (с помощью Ranino Compiler) и даже искать зловредный код!
Многие реверсеры рекомендуют использовать именно этот инструмент для анализа приложений. Их аргумент в том, что любой другой декомпилятор (тот же Jadx или популярный JD-GUI ) может сломаться об обфусцированный или специальным образом написанный код и просто не покажет его. В то же время Bytecode Viewer, благодаря наличию сразу пяти движков декомпиляции, имеет больше шансов декомпилировать такое приложение.
На самом же деле не все так радужно. Bytecode Viewer — это кое-как работающая сборная солянка из различных открытых инструментов. Да, в нем множество движков декомпиляции, но, похоже, автор перестал следить за своим произведением. Текущая версия Bytecode Viewer уже не может открыть большинство APK.
Скриншота не будет по причине неработоспособности инструмента.
QARK
Закончим рассказ о статическом анализе на инструменте QARK . Это утилита для автоматического поиска уязвимостей в приложениях. Достаточно натравить ее на нужный APK или каталог с исходниками, и QARK проанализирует манифест, декомпилирует и проанализирует исходники и даже попробует создать эксплоит для взлома приложения с помощью найденных уязвимостей.
Пользоваться QARK очень просто: запускаешь QarkMain.py, отвечаешь на несколько вопросов и получаешь отчет в формате HTML в каталоге quark/report.
Как и другие автоматизированные инструменты, QARK не может точно предсказать наличие уязвимости, он лишь высказывает предположение о ее существовании и дает реверсеру намек, в какую сторону следует копать. Поэтому не стоит надеяться, что ты просто установишь QARK и сразу начнешь стричь купоны на пентесте приложений. Без матчасти никуда.
Динамический анализ
Статический анализ приложения не всегда позволяет раскрыть все подробности его поведения. Код может быть зашифрован упаковщиком, приложение может докачивать свои компоненты из интернета, расшифровывать строки только во время исполнения и делать другие вещи, которые нельзя увидеть, читая код.
Обнаружить такие вещи можно с помощью динамического анализа, то есть запустив приложение на реальном устройстве или в эмуляторе и изучив его поведение с помощью специальных инструментов. Именно это, кстати, происходит в Google Play, когда разработчик заливает новую версию приложения. Серверы Google запускают его в виртуальной среде и, если приложение делает какие-то неправомерные действия, запрещает его публикацию.
Frida
Начнем с короля всех инструментов динамического анализа, трассировки и модификации приложений — с Frida . Это так называемый Dynamic Instrumentation Toolkit, набор инструментов, позволяющих на лету внедрять собственный код в другие приложения. Внедрив код, можно выполнить полную трассировку приложения, перехватить функции шифрования, записи файлов на диск и вообще сделать с приложением все что угодно.
В «Хакере» уже была подробная статья о Frida , поэтому не будем повторяться. Скажем только, что у Frida есть репозиторий с готовыми скриптами, которые могут тебе пригодиться:
- fridantiroot — комплексный скрипт, позволяющий отключить проверки на root;
- Universal Android SSL Pinning Bypass — обход SSL Pinning;
- dereflector — скрипт Frida для дерефлексии Java-кода (превращения непрямых вызовов методов в прямые).
- frida —codeshare pcipolloni/universal-android-ssl-pinning-bypass-with-frida -f com.example.app
Objection
Frida — очень популярный инструмент. На его основе было создано множество более высокоуровневых утилит. Objection — одна из них. Она позволяет внедриться в приложение iOS или Android и провести анализ его приватного каталога, памяти, классов, методов, извлечь содержимое базы SQLite, обойти SSL-пиннинг.
Главное преимущество Objection в том, что она дает возможность «войти» в приватный каталог приложения точно так же, как это позволяет сделать устройство с root-доступом. Но в этом же ее недостаток: большинство задач, для которых предназначена Objection, легко решаются с помощью adb, команды sqlite (при наличии root) и общедоступных скриптов Frida.
Inspeckage
Все это можно сделать, используя удобный веб-интерфейс. Но перед этим на смартфоне необходимо получить права root, а затем установить Xposed Framework (который как раз и позволяет Inspeckage выполнять перехват управления).
Drozer
Типичный воркфлоу drozer выглядит так. Сначала получаем информацию о приложении:
dz> run app.package.list
dz> run app.package.info -a com.example.app
Затем выводим список активностей и пробуем запустить их (возможно, некоторые из них не должны торчать наружу):
dz> run app.activity.info -a com.example.app
dz> run app.activity.start --component com.example.app
Получаем информацию о ContentProvider’ах приложения:
dz> run app.provider.info -a com.example.app
dz> run scanner.provider.finduris -a com.example.app
Пробуем выудить из них информацию разными способами. Например, при помощи прямого запроса данных:
dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Password/ --vertical
Проверяем на наличие уязвимостей к инъекции и directory traversal:
dz> run scanner.provider.injection -a com.example.app
dz> run scanner.provider.traversal -a com.example.app
dz> run app.service.info -a com.example.app
dz> run app.service.start --action --component com.example.app
dz> run app.service.send com.example.app --msg
За десять лет существования Android разработчики приложений и те, кто эти приложения взламывает, обзавелись массой инструментов, направленных друг против друга. О том, какими способами можно защитить свое приложение, мы уже поговорили, а сегодня у нас обзор инструментов для взлома и реверса приложений.
Условно все инструменты анализа и реверса приложений (не только для Android) можно разделить на две группы:
- инструменты для статического анализа — дизассемблеры, декомпиляторы, деобфускаторы и любые другие утилиты, которые работают с кодом, не запуская его;
- инструменты для динамического анализа — инструменты, с помощью которых приложение можно запустить на виртуальном или реальном устройстве и проанализировать его поведение.
В обеих группах есть утилиты и для самых маленьких (запустил — получил список уязвимостей), и для матерых пентестеров. Мы рассмотрим их все.
Статический анализ
Итак, для начала поговорим об инструментах статического анализа. Каждый пентестер должен иметь в своем арсенале хотя бы два из них. Это декомпилятор и дизассемблер.
Декомпилятор нужен, чтобы перегнать байт-код Dalvik обратно в код Java и с его помощью разобраться, как работает приложение. Дизассемблер транслирует байт-код в гораздо более низкоуровневый код Smali (местный ассемблер), в котором труднее разобраться, но зато он всегда корректен настолько, что его можно собрать обратно в приложение. Этой особенностью можно воспользоваться, например, чтобы внедрить в приложение собственный код, как мы это сделали во второй части статьи о взломе приложений для Android.
Также пригодится деобфускатор. Он сделает декомпилированный код немного более читаемым. О том, что такое обфускация и деобфускация, мы также уже писали в третьей части статьи о взломе приложений.
Первый инструмент в нашем списке — декомпилятор Jadx. Это активно развиваемый открытый декомпилятор, который выдает достаточно неплохой код Java на выходе и даже имеет функцию деобфускации кода. Работать с ним просто: запускаешь Jadx-gui, с его помощью выбираешь APK-файл приложений и видишь иерархию пакетов и файлы с исходниками на Java.
Jadx может работать и в режиме командной строки. Например, следующая команда декомпилирует приложение example.apk и поместит полученный код Java в каталог out:
Более того, Jadx может дополнительно сгенерировать файлы build.gradle, чтобы исходники можно было импортировать в Android Studio:
Собрать приложение из них не получится, зато анализировать код будет гораздо удобнее.
Jadx в черном
Apktool
Второй инструмент, который должен обязательно быть на твоем диске, — это Apktool. Его назначение — разборка и сборка приложений. При этом термин «разборка» подразумевает дизассемблирование кода приложения в файлы формата Smali, а также декомпрессию ресурсов и файла AndroidManifest.xml.
С помощью Apktool можно разобрать приложение, проанализировать дизассемблерный код, внести в него правки и собрать обратно. О том, как это сделать, мы подробно писали в статье «Ломаем Android».
Разбираем приложение с помощью Apktool
APKiD
Эта небольшая утилита понадобится тебе, когда ты заметишь, что Jadx не в состоянии декомпилировать приложение. В большинстве случаев это значит, что приложение было обфусцировано или упаковано с помощью специальных инструментов. APKiD позволяет узнать, какие конкретно инструменты были использованы, выяснить, было ли приложение пересобрано с помощью Apktool и используются ли в нем какие-то другие техники для защиты от дизассемблирования/декомпиляции и запуска в виртуальной машине.
APKiD далеко не всегда работает корректно, а в некоторых случаях вообще не выводит никакой информации на экран. Но он может помочь, если ты в тупике — вывод утилиты понятный. Например:
- anti_debug : Debug.isDebuggerConnected() check — проверка, подключен ли дебаггер с помощью метода isDebuggerConnected;
- anti_vm : Build.MANUFACTURER check — проверка производителя смартфона, чтобы понять, что находишься в виртуальной машине.
Но есть одно неочевидное поле: compiler. Оно обычно содержит dx или dexlib. Dx — стандартный компилятор Android SDK, а dexlib — это библиотека сборки файлов DEX из Apktool. Проще говоря, если в поле compiler находится dexlib, значит, приложение было пересобрано с помощью Apktool или аналогичного инструмента.
Результат работы APKiD для нескольких образцов малвари
Продолжение доступно только участникам
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.
Тесты на проникновение — легальный способ заниматься настоящим взломом, да еще и получать за это деньги. Продвинутый аудит безопасности обычно выполняется на ноутбуке с (Kali) Linux и специфическим оборудованием, но многие бреши легко обнаружить и с помощью обычного смартфона. В этой статье мы рассмотрим 14 утилит, которые позволят тебе выполнить пентест, не доставая ноутбук из сумки.
WARNING
Статья написана в исследовательских целях. Вся информация носит ознакомительный характер. Ни автор, ни редакция не несет ответственности за неправомерное использование упомянутых в статье программ.
Сканеры веб-ресурсов
Начнем со сканеров веб-приложений. Здесь у нас три утилиты, которые позволят тебе найти открытые админки, сбрутить пароль, протестировать сайт на XSS-уязвимости, возможность SQL-инъекций, составить листинги каталогов и многое другое.
Kayra the Pentester Lite
- Где взять: Google Play
- Протестированная версия: 1.4.0
- Размер: 4,7 Мбайт
- Версия Android: 4.1 и выше
- Требуется root: нет
Мобильный сканер уязвимостей веб-приложений. Ищет типичные ошибки в конфигурации указанного веб-сервера и пытается получить листинг каталогов (обычно — успешно). Среди дополнительных инструментов есть генератор хешей и дешифровщик AES.
Сканирование выбранного сайта и настройки |
Отчет Kayra и экран About |
По каждому пункту, отмеченному в настройках сканирования, создается подробный отчет. На скриншоте видно лишь его малую часть. Бесплатная версия довольно функциональна, но иногда раздражает рекламой (если у тебя не стоит AdAway или другой блокировщик). В платной версии нет рекламы и ограничений, ее стоимость на момент написания статьи составляет 159 рублей.
DroidSQLi
Компактная утилита для проверки веб-сайтов на уязвимость к SQL-инъекциям четырех разновидностей:
Утилита автоматически подбирает метод инжекта, а также использует техники обхода фильтрации запросов.
Для начала тестирования сайта необходимо вручную найти точку входа. Обычно это адрес веб-страницы, содержащий запрос вида ?id=X или ?p=X , где X — целое положительное число. В нашем примере пейлоад для параметра id выглядит так:
В Сети очень много сайтов, уязвимых к SQL-инъекциям. Думаю, ты легко найдешь несколько таких, просто посмотрев историю своего браузера. Подробнее об SQL-инъекциях читай в нашей статье.
Droidbug Admin Panel Finder FREE
- Где взять: Google Play
- Протестированная версия: 1.4
- Размер: 6,3 Мбайт
- Версия Android: 2.1 и выше
- Требуется root: нет
Однако на менее популярных сайтах с безопасностью все очень тоскливо, и валидная админская панелька находится за считаные секунды. В платной версии, стоимостью 139 рублей, убрана реклама и разблокирована возможность перебора по смешанному шаблону для сайтов с поддержкой PHP/ASP/CGI/CFM/JS.
Ищем админки на сайтах |
Комбайны
Интернет состоит не только из веб-приложений, и дыры находят не только в них. Следующая подборка инструментов позволит тебе искать уязвимости (и эксплоиты для них) в софте и железе, выполнять сниффинг, MITM-атаки, оставлять бэкдоры и делать много других интересных вещей.
Продолжение доступно только участникам
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Drozer — мастхев в арсенале любого пентестера. Это армейский швейцарский нож для выполнения типичных задач тестирования на проникновение. Drozer позволяет получить информацию о приложении, запустить его активности, подключиться к ContentProvider’у, отправить сообщения сервису — в общем, все, чтобы вытащить из приложения информацию или заставить его сделать то, что нам нужно, через стандартные API и каналы коммуникации.
Сегодня Drozer считается устаревшим инструментом, но он до сих пор отлично помогает быстро получить информацию о приложении и его слабых местах. Рекомендуемый способ запускать drozer — используя Docker:
Drozer работает в связке с агентом, установленным на устройстве или эмуляторе, скачать его можно здесь. Его следует установить на устройство:
Далее запускаем агент и нажимаем кнопку Embedded Server внизу экрана. После этого к серверу можно подключиться, перейдя в консоль Drozer:
Консоль Drozer
В качестве подопытного приложения будем использовать DIVA (Damn Insecure and Vulnerable App). APK не имеет цифровой подписи, поэтому перед установкой его необходимо подписать, например c помощью uber-apk-signer.
Активности
Типичный воркфлоу Drozer выглядит так. Сначала получаем информацию об установленных приложениях:
dz> run app.package.list
Находим в списке подопытное приложение и получаем информацию о нем:
dz> run app.package.info -a jakhar.aseem.diva
Затем выясняем, какие компоненты можно попытаться использовать для эксплуатации:
dz> run app.package.attacksurface jakhar.aseem.diva
Attack Surface:
3 activities exported
0 broadcast receivers exported
1 content providers exported
0 services exported
is debuggable
Обращаем внимание, что в приложении включен флаг отладки. Далее получаем список активностей:
dz> run app.activity.info -a jakhar.aseem.diva
Package: jakhar.aseem.diva
jakhar.aseem.diva.MainActivity
Permission: null
jakhar.aseem.diva.APICredsActivity
Permission: null
jakhar.aseem.diva.APICreds2Activity
Permission: null
Пробуем их запустить:
dz> run app.activity.start --component jakhar.aseem.diva
Смысл этого действия в том, чтобы проверить, не торчат ли наружу внутренние активности приложения, которые не должны быть доступны извне. Возможно, эти активности содержат конфиденциальную информацию.
dz> run app.activity.start --component jakhar.aseem.diva jakhar.aseem.diva.APICredsActivity
Действительно, активность APICredsActivity содержит некий ключ API, имя пользователя и пароль. Активность APICreds2Activity содержит окно с полем для ввода ПИН‑кода.
| |
Две активности DIVA |
Обе эти активности явно должны использоваться только внутри приложения, но по «невнимательности» разработчик забыл сделать их неэкспортируемыми (android:exported="false").
Если активности не запускаются
Начиная с Android 9 запуск активностей в фоне запрещен. Поэтому, чтобы Drozer работал корректно, следи за тем, чтобы он всегда был на экране, а экран смартфона — включен.
Перехват интентов
Еще интереснее, когда программист не только забывает сделать внутреннюю активность приложения неэкспортируемой, но и работает с ней не напрямую, а используя широковещательные интенты. Допустим, в приложении есть такой код, который использует широковещательный интент "com.example.ACTION", чтобы запустить активность (передав ей при этом конфиденциальные данные):
Продолжение доступно только участникам
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.
Тесты на проникновение — легальный способ заниматься настоящим взломом, да еще и получать за это деньги. Продвинутый аудит безопасности обычно выполняется на ноутбуке с (Kali) Linux и специфическим оборудованием, но многие бреши легко обнаружить и с помощью обычного смартфона. В этой статье мы рассмотрим 14 утилит, которые позволят тебе выполнить пентест, не доставая ноутбук из сумки.
Сканеры веб-ресурсов
Начнем со сканеров веб-приложений. Здесь у нас три утилиты, которые позволят тебе найти открытые админки, сбрутить пароль, протестировать сайт на XSS-уязвимости, возможность SQL-инъекций, составить листинги каталогов и многое другое.
Kayra the Pentester Lite
Мобильный сканер уязвимостей веб-приложений. Ищет типичные ошибки в конфигурации указанного веб-сервера и пытается получить листинг каталогов (обычно — успешно). Среди дополнительных инструментов есть генератор хешей и дешифровщик AES.
Сканирование выбранного сайта и настройки
Отчет Kayra и экран About
По каждому пункту, отмеченному в настройках сканирования, создается подробный отчет. На скриншоте видно лишь его малую часть. Бесплатная версия довольно функциональна, но иногда раздражает рекламой (если у тебя не стоит AdAway или другой блокировщик). В платной версии нет рекламы и ограничений, ее стоимость на момент написания статьи составляет 159 рублей.
- Сайт
- Протестированная версия: 1.4.0
- Размер: 4,7 Мбайт
- Версия Android: 4.1 и выше
- Требуется root: нет
DroidSQLi
Компактная утилита для проверки веб-сайтов на уязвимость к SQL-инъекциям четырех разновидностей:
Демонстрация error based SQL-инъекции
Утилита автоматически подбирает метод инжекта, а также использует техники обхода фильтрации запросов.
Для начала тестирования сайта необходимо вручную найти точку входа. Обычно это адрес веб-страницы, содержащий запрос вида ?id=X или ?p=X, где X — целое положительное число. В нашем примере пейлоад для параметра id выглядит так:
id=(SELECT 4777 FROM(SELECT COUNT(*),CONCAT(0x71626b6a71,(SELECT (ELT(4777=4777,1))),0x7170767871,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a)
В Сети очень много сайтов, уязвимых к SQL-инъекциям. Думаю, ты легко найдешь несколько таких, просто посмотрев историю своего браузера. Подробнее об SQL-инъекциях читай в нашей статье .
- Сайт
- Протестированная версия: 1.1
- Размер: 705 Кбайт
- Версия Android: 4.2 и выше
- Требуется root: нет
Droidbug Admin Panel Finder FREE
Однако на менее популярных сайтах с безопасностью все очень тоскливо, и валидная админская панелька находится за считаные секунды. В платной версии , стоимостью 139 рублей, убрана реклама и разблокирована возможность перебора по смешанному шаблону для сайтов с поддержкой PHP/ASP/CGI/CFM/JS.
Ищем админки на сайтах
- Сайт
- Протестированная версия: 1.4
- Размер: 6,3 Мбайт
- Версия Android: 2.1 и выше
- Требуется root: нет
Комбайны
Интернет состоит не только из веб-приложений, и дыры находят не только в них. Следующая подборка инструментов позволит тебе искать уязвимости (и эксплоиты для них) в софте и железе, выполнять сниффинг, MITM-атаки, оставлять бэкдоры и делать много других интересных вещей.
cSploit
Один из самых функциональных инструментов для сканирования сетей и поиска уязвимостей на обнаруженных хостах. Составляет карту сети и отображает сведения обо всех найденных в ней устройствах. Умеет определять их IP/MAC и вендора (по первым трем октетам MAC-адреса), определять установленную на них ОС, искать уязвимости с помощью Metasploit framework RPCd и брутфорсить пароли.
Поиск клиентов и MITM-атака
Выполняет MITM-атаки разного типа через спуфинг DNS (возможна замена медиафайлов в трафике на лету, JS-инжекты, угон сессий и захват cookie для авторизации без ввода пароля). Также умеет дисконнектить отдельные устройства (или отключать их скопом от точки доступа). Перехватывает трафик и сохраняет его в формате .pcap или перенаправляет, куда скажешь.
Модули cSploit
cSploit содержит инструмент для создания и отправки на выбранный хост любого TCP/UDP-пакета. По ссылке взлом роутера перенаправляет на онлайн-сервис для выбора и эксплуатации уязвимостей под определенную модель. База перестала обновляться в 2015 году, но все еще сохраняет актуальность. В моем кратком тесте на роутере ASUS, который выпускается с конца 2016 года, в свежей прошивке (апрель 2018 года) была обнаружена уязвимость, впервые описанная в 2009 году.
Открытые порты и подборка эксплоитов для выбранной цели
Дополнительно cSploit помогает создать на взло… не прошедшем аудит безопасности хосте удаленный шелл и получить над ним полный контроль. В общем, это однозначный must have для пентестеров, и не только для них.
- Сайт
- Протестированная версия: 1.6.6 RC2
- Размер: 3,5 Мбайт
- Тестовые сборки cSploit Nightly доступны здесь
- Версия Android: 2.3 и выше
- Требуется рут: ДА!
- Дополнительные требования: установить BusyBox в /system/bin
INFO
cSploit, Intercepter-NG и другие мощные ][-утилиты заслуживают более подробного рассмотрения в отдельных статьях. Мы предлагаем сперва освоиться с базовыми принципами пентеста на примере простых приложений, а уже затем переходить на хардкор. Следи за обновлениями в рубрике «Взлом»!
Нужно ли пентестеру рутировать смартфон?
- Нет! Это лишает гарантии и создает угрозы, а многие утилиты работают и без рута
- Да, иначе как раскрыть его возможности?
- Рутировать, поставить BusyBox и терминал. ну и ядро бы еще пропатчить
dSploit
Форк cSploit от Симоне Маргарителли (Simone Margaritelli), приказавший долго жить в 2014 году. Проект так и остался в стадии бета-версии с очень сырым кодом. Если cSpoit у меня работал без нареканий, то последние три версии dSploit вываливались с ошибкой почти сразу после запуска.
С тех пор как Маргарителли устроился в компанию Zimperium, наработки dSploit вошли в состав фирменной утилиты zAnti.
Сканирование беспроводной сети и обнаружение хостов
- Сайт
- Протестированная (не вполне удачно) версия: 1.1.3с
- Размер: 11,4 Мбайт
- Версия Android: 2.3 и выше
- Требуется root: ДА!
- Дополнительные требования: установить BusyBox в /system/bin, проявить склонность к мазохизму
zAnti
Мобильное приложение для пентеста от Zimperium. Более современный, стабильный и наглядный аналог dSploit.
Интерфейс zAnti разделен на две части: сканирование и MITM. В первой секции он, подобно dSploit и оригинальному cSploit, мапит сеть, определяет все хосты, их параметры и уязвимости.
Nmap’им сеть
Отдельная функция — определение уязвимостей на самом смартфоне. Согласно отчету программы, наш тестовый Nexus 5 содержит 263 дыры, которые уже не будут закрыты, поскольку срок жизни девайса истек.
Обнаружение уязвимостей
zAnti помогает взламывать роутеры и получать к ним полный доступ (с возможностью сменить пароль админа, задать другой SSID, PSK и так далее). Используя MITM-атаки, zAnti выявляет небезопасные элементы на трех уровнях: в ОС, приложениях и настройках устройства.
Расширенный поиск уязвимостей
Ключевая особенность — формирование подробного отчета по всем просканированным элементам. Отчет содержит пояснения и советы по устранению найденных недостатков.
- Сайт
- Протестированная версия: 3.18
- Размер: 24 Мбайт
- Версия Android: 2.3 и выше
- Требуется рут: ДА!
- Примечания: zAnti не работает на устройствах с процессорами архитектуры x86 и x86_64
Снифферы
Ни одному пентестеру не обойтись без хорошего сниффера. Это такой же обыденный инструмент, как нож на столе повара. Поэтому следующий раздел статьи посвящен приложениям для перехвата и анализа трафика.
Intercepter-NG
Продвинутый сниффер, ориентированный на выполнение MITM-атак. Захватывает трафик и анализирует его на лету, автоматически определяя в нем данные авторизации. Умеет сохранять перехваченный трафик в формате .pcap и анализировать его позже.
Сканирование и ARP spoofing
Capture, hijack, injections
Вдобавок он умеет определять ARP-спуфинг в отношении тебя (полезно при подключении к публичным хотспотам) и защищать от него. При нажатии иконки в виде зонтика проверяется ARP-кеш.
- Сайт
- Протестированная версия: 2.1 (консольная — 0.8)
- Размер: 5,2 Мбайт
- Версия Android: 2.3 и выше
- Требуется рут: ДА!
- Дополнительные требования: установить BusyBox в /system/bin
Packet Capture
Читайте также: