
Инструмент для сбора информации и сканирования мобильных устройств (Android, iOS, WEB, H5, статические сайты), предназначенный для сценариев HW-операций/красных команд/команд пентеста. Помогает инженерам по тестированию на проникновение, участникам атакующих групп, членам красных команд быстро собирать ключевую информацию об активах на мобильных устройствах или статических веб-сайтах и предоставлять базовый вывод информации, такой как: Title, Domain, CDN, данные отпечатков, статусная информация и т.д.
На данный момент проект представляет собой лишь верхушку айсберга запланированных возможностей. Если вы заинтересованы в проекте или хотите участвовать в дальнейшей разработке или переводе, отправьте письмо на [email protected] с описанием ваших навыков и пожеланий.
Инструмент для сбора информации о мобильных приложениях (Android, iOS, WEB, H5, статические сайты), ориентированный на сценарии Red Team / пентестов / HW-операций. Помогает инженерам по тестированию на проникновение, участникам атакующих групп и членам Red Team быстро собирать ключевые активы из мобильных приложений или статических веб-сайтов и предоставлять базовый вывод информации, такой как: Title, Domain, CDN, отпечатки, статус и т.д.
Не используйте технологии или код этого проекта для создания вредоносного ПО, кражи авторских прав/интеллектуальной собственности или других незаконных целей. Выполнение указанных действий или использование данного проекта для перехвата данных программ, не принадлежащих вам, может повлечь нарушение статей 217 и 286 Уголовного кодекса КНР, Закона КНР о кибербезопасности, Закона КНР о защите компьютерного программного обеспечения и других нормативных актов. Технологии, описанные в данном проекте, предназначены только для личного обучения и тестирования в законных целях. Любое неправомерное использование данной технологии влечёт уголовную и гражданскую ответственность, и автор проекта не несёт за это ответственности.

AppInfoScanner
|-- libs Основной код программы
|-- core
|-- __init__.py Глобальные настройки
|-- parses.py Парсинг статической информации в файлах
|-- download.py Автоматическая загрузка приложений или H5-страниц
|-- net.py Сетевой сниффинг и получение базовой информации
|-- task
|-- __init__.py Файл инициализации каталога
|-- base_task.py Центральный диспетчер задач
|-- android_task.py Обработка задач для Android
|-- download_task.py Обработка задач автоматической загрузки приложений или H5
|-- ios_task.py Обработка задач для iOS
|-- net_task.py Обработка задач сетевого сниффинга
|-- web_task.py Обработка задач для Web (исходный код сайта, H5 статика)
|-- tools Зависимые инструменты
|-- apktool.jar Для декомпиляции APK (может потребоваться замена для разных платформ)
|-- baksmali.jar Для декомпиляции DEX (может потребоваться замена для разных платформ)
|-- strings.exe Для получения строк из IPA под Windows 32
|-- strings64.exe Для получения строк из IPA под Windows 64
|-- __init__.py Файл инициализации каталога
|-- app.py Главный исполняемый файл
|-- config.py Конфигурационный файл программы
|-- README.md Инструкция по использованию
|-- requirements.txt Список необходимых библиотек Python
|-- update.md История версий
git clone https://github.com/kelvinBen/AppInfoScanner.git
Или скопируйте ссылку в браузер для загрузки последней стабильной версии:
https://github.com/kelvinBen/AppInfoScanner/releases/latest
Быстрый канал внутри Китая:
git clone https://gitee.com/kelvin_ben/AppInfoScanner.git
cd AppInfoScanner
python -m pip install -r requirements.txt
python app.py android -i <Your APK File or DEX File or APK Download Url or Save File Dir>
python app.py ios -i <Your IPA file or Mach-o File or IPA Download Url or Save File Dir>
python app.py web -i <Your Web file or Save Web Dir or Web Cache Url>
python app.py [TYPE] [OPTIONS] <The URL or directory to scan>
<> Указывает сканируемый файл, каталог или URL-адрес
| Или (выбор одного)
[] Указывает параметр
Этот параметр соответствует [TYPE] в базовой команде. В настоящее время поддерживаются только три типа: android/ios/web. Один из них должен быть указан.
android: Сканирование файлов Android-приложений
ios: Сканирование файлов iOS-приложений
web: Сканирование файлов веб-сайтов или H5-содержимого
Поддерживается автоматическая корректировка по расширению: если указан ios, но в -i передан файл с расширением .apk, то будет выполнено сканирование для Android.
Этот параметр соответствует [OPTIONS] в базовой команде. Можно использовать несколько параметров одновременно.
-i или --inputs: Указывает файл, каталог или URL-адрес для сканирования. Если путь длинный, используйте кавычки. Обязательный параметр.
-r или --rules: Временные правила для сканирования содержимого файла.
-s или --sniffer: Включение сетевого сниффинга. По умолчанию включён.
-n или --no-resource: Игнорировать все ресурсные файлы (включая ресурсы при сниффинге; необходимо предварительно настроить sniffer_filter в config.py). По умолчанию ресурсы не игнорируются.
-a или --all: Вывод всех результатов, соответствующих правилам сканирования. По умолчанию включён.
-t или --threads: Количество потоков. По умолчанию 10.
-o или --output: Каталог для вывода результатов и временных файлов. По умолчанию — каталог скрипта.
-p или --package: Имя пакета Java для сканирования в APK/DEX. Этот параметр доступен только для типа android.
python app.py android -i <Your apk file>
Пример:
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk
python app.py android -i <Your DEX file>
Пример:
python app.py android -i C:\Users\Administrator\Desktop\Demo.dex
python app.py android -i <APK Download Url>
Пример:
python app.py android -i "https://127.0.0.1/Demo.apk"
Если URL-адрес слишком длинный, используйте двойные кавычки (").
python app.py ios -i <Your ipa file>
Пример:
python app.py ios -i "C:\Users\Administrator\Desktop\Demo.ipa"
python app.py ios -i <Your Mach-o file>
Пример:
python app.py ios -i "C:\Users\Administrator\Desktop\Demo\Payload\Demo.app\Demo"
python app.py ios -i <IPA Download Url>
Пример:
python app.py ios -i "https://127.0.0.1/Demo.ipa"
Если URL-адрес слишком длинный, используйте двойные кавычки. Сканирование IPA-файлов из Apple Store временно не поддерживается.
python app.py web -i <Your web file>
Пример:
python app.py web -i "C:\Users\Administrator\Desktop\Demo.html"
python app.py web -i <Web Download Url>
Пример:
python app.py web -i "https://127.0.0.1/Demo.html"
Все примеры ниже для типа android:
python app.py android -i <Your Dir>
Пример:
python app.py android -i C:\Users\Administrator\Desktop\Demo
python app.py android -i <Your apk> -r <the keyword | the rules>
Пример:
Сканирование доменов, содержащих baidu
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -r ".*baidu.com.*"
python app.py android -i <Your apk> -s
Пример:
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -s
python app.py android -i <Your apk> -n
Пример:
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -n
python app.py android -i <Your apk> -a
Пример:
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -a
python app.py android -i <Your apk> -t 20
Пример:
Установить 20 потоков
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -t 20
python app.py android -i <Your apk> -o <output path>
Пример:
Вывод в каталог Temp на рабочем столе
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -o C:\Users\Administrator\Desktop\Temp
python app.py android -i <Your apk> -p <Java package name>
Пример:
Фильтр содержимого пакета com.baidu
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -p "com.baidu"
Программа представляет собой базовый каркас с некоторыми встроенными правилами. Не все входные данные могут быть успешно просканированы. Вы можете настроить правила в соответствии со своими потребностями; правильная настройка может значительно повысить эффективность.
filter_components: Компоненты для фильтрации, например JSON или XML компоненты
filter_strs: Строки для поиска в файлах. Например, для поиска номеров портов: "r'.*://([\d{1,3}\.]{3}\d{1,3}).*'"
filter_no: Шаблоны для игнорирования нежелательного содержимого
shell_list: Признаки оболочек Android
web_file_suffix: Расширения файлов для сканирования веб-сайтов
sniffer_filter: Расширения файлов для игнорирования при сетевом сниффинге
headers: Заголовки запросов для автоматической загрузки
data: Тело запроса для автоматической загрузки
method: Метод запроса для автоматической загрузки
Метод 1: Настройте правила в config.py в соответствии с реальной ситуацией
Метод 2: Игнорируйте ресурсные файлы
Сканируемое приложение имеет оболочку. Требуется удаление оболочки (decrypt/dump) перед сканированием. Можно использовать следующие инструменты:
Android:
Модуль Xposed: dexdump
Модуль Frida: FRIDA-DEXDump
BlackDex (не требует root)
iOS:
Модуль Frida:
Windows: frida-ipa-dump
macOS: frida-ios-dump
Не удалось загрузить файл.
1) Проверьте правильность URL-адреса
2) Проверьте сетевое подключение или настройте заголовки (headers), тело запроса (data) и метод (method) в config.py, затем повторите попытку.
Не удалось декомпилировать файл.
Отправьте скриншот ошибки и соответствующий APK-файл по адресу https://github.com/kelvinBen/AppInfoScanner/issues. Автор рассмотрит и обработает.
Путь для отправки пользовательских правил:
Нажмите, чтобы добавить пользовательское правило
Формат отправки:
1. Добавление пользовательского компонента приложения
Например: правило для fastjson:
Компонент приложения: fastjson com.alibaba.fastjson
2. Строка для поиска
Например: правило для AK Alibaba Cloud:
Строка:
AK Alibaba Cloud .*accessKeyId.*".*"
3. Расширение файла для поиска на веб-сайтах
Например: правило для файлов jsp:
Сайт: язык Java jsp
4. Правило для оболочки Android
Например: правило для оболочки компании X:
Оболочка: компания X com.stub.StubApp
WeChat: bromomo (при добавлении укажите: GitHub)
Группа в WeChat:

Если не удаётся присоединиться, добавьте друга в WeChat и попросите пригласить.
Email: [email protected]
Для отправки запросов, отчётов об ошибках, технического общения, делового сотрудничества — добавляйтесь в друзья.

AppInfoScanner является частью StarLink 2.0 от 404Team. Если у вас есть вопросы по AppInfoScanner или вы хотите пообщаться с другими пользователями, обратитесь к разделу о способах вступления в группу StarLink.