
一款适用于HW行动/红队/渗透测试团队场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具,可帮助渗透测试工程师、攻击队成员、红队成员快速收集移动端或静态WEB站点中的关键资产信息,并提供基本的信息输出,如:Title、Domain、CDN、指纹信息、状态信息等。
이 프로젝트는 현재 계획된 프로젝트의 극히 일부에 불과합니다. 이 프로젝트에 관심이 있거나 후속 개발 작업 또는 번역 작업에 참여하고 싶다면 [email protected]으로 귀하의 역량과 요청을 설명하는 이메일을 보내주시기 바랍니다.
HW 작전/레드팀/침투 테스트 팀을 위한 모바일(Android, iOS, WEB, H5, 정적 웹사이트) 정보 수집 스캐너 도구입니다. 침투 테스트 엔지니어, 공격팀 구성원, 레드팀 구성원이 모바일 또는 정적 WEB 사이트에서 중요한 자산 정보를 빠르게 수집하고 기본 정보(Title, Domain, CDN, 지문 정보, 상태 정보 등)를 출력할 수 있도록 도와줍니다.
이 프로젝트의 기술이나 코드를 악성 소프트웨어 제작, 소프트웨어 저작권/지식 재산권 도용, 부당한 이익 창출 등 불법적인 목적으로 사용하지 마십시오. 위와 같은 행위를 하거나 본 프로젝트를 사용하여 자신이 저작권을 소유하지 않은 프로그램의 데이터를 스니핑하는 것은 중화인민공화국 형법 제217조, 제286조, 중화인민공화국 사이버 보안법, 중화인민공화국 컴퓨터 소프트웨어 보호 조례 등 법률 위반에 해당할 수 있습니다. 본 프로젝트에 언급된 기술은 개인 학습 테스트 등 합법적인 상황에서만 사용할 수 있으며, 이 기술을 부적절하게 사용하여 발생하는 형사 또는 민사상의 책임은 본 프로젝트 작성자와 무관합니다.

AppInfoScanner
|-- libs 프로그램 핵심 코드
|-- core
|-- __init__.py 전역 설정 정보
|-- parses.py 파일 내 정적 정보 분석
|-- download.py APP 또는 H5 페이지 자동 다운로드
|-- net.py 네트워크 스니핑 및 기본 정보 획득
|-- task
|-- __init__.py 디렉터리 초기화 파일
|-- base_task.py 통합 작업 스케줄링 센터
|-- android_task.py Android 관련 작업 처리
|-- download_task.py APP 또는 H5 자동 다운로드 작업 처리
|-- ios_task.py iOS 관련 작업 처리
|-- net_task.py 네트워크 스니핑 관련 작업 처리
|-- web_task.py Web 관련 작업 처리 (예: 웹 페이지 오른쪽 클릭 소스 코드, H5 관련 정적 정보)
|-- tools 프로그램 의존 도구
|-- apktool.jar APK 파일 역컴파일용, 플랫폼에 따라 교체 필요 가능
|-- baksmali.jar DEX 파일 역컴파일용, 플랫폼에 따라 교체 필요 가능
|-- strings.exe Windows 32비트에서 IPA 문자열 정보 획득용
|-- strings64.exe Windows 64비트 시스템에서 IPA 문자열 정보 획득용
|-- __init__.py 디렉터리 초기화 파일
|-- app.py 메인 실행 프로그램
|-- config.py 전체 프로그램 설정 파일
|-- README.md 프로그램 사용 설명
|-- requirements.txt 설치 필요한 의존 라이브러리 목록
|-- 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: WEB 사이트 또는 H5 관련 파일 내용 스캔
확장자에 따라 자동으로 수정됩니다. ios를 입력했지만 실제 -i 매개변수에 입력된 파일명이 XXX.apk인 경우 android 관련 스캔을 실행합니다.
이 매개변수 유형은 기본 명령 형식의 [OPTIONS]에 해당하며, 여러 매개변수를 함께 사용할 수 있습니다.
-i 또는 --inputs: 스캔할 파일, 디렉터리 또는 자동 다운로드할 파일 URL 주소를 입력합니다. 경로가 긴 경우 따옴표(")로 감싸 주세요. 필수 항목입니다.
-r 또는 --rules: 스캔할 파일 내용에 대한 임시 스캔 규칙을 입력합니다.
-s 또는 --sniffer: 네트워크 스니핑 기능을 활성화합니다. 기본값은 활성화 상태입니다.
-n 또는 --no-resource: 모든 리소스 파일을 무시합니다(네트워크 스니핑 기능의 리소스 파일 포함, 먼저 config.py에서 sniffer_filter 관련 규칙을 설정해야 함). 기본값은 리소스를 무시하지 않습니다.
-a 또는 --all: 모든 스캔 규칙에 맞는 결과 집합을 출력합니다. 기본값은 활성화 상태입니다.
-t 또는 --threads: 스레드 동시 실행 개수를 설정합니다. 기본값은 10개 스레드 동시 실행입니다.
-o 또는 --output: 스캔 결과 및 스캔 과정에서 생성된 임시 파일의 출력 디렉터리를 지정합니다. 기본값은 스크립트가 있는 디렉터리입니다.
-p 또는 --package: Android APK 파일 또는 DEX 파일에서 스캔할 JAVA 패키지명을 지정합니다. 이 매개변수는 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 주소가 긴 경우 큰따옴표(")로 감싸야 합니다. Apple Store의 IPA 파일 스캔은 현재 지원하지 않습니다.
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>
예:
바이두 도메인 스캔 추가
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: 스캔할 WEB 파일 확장자를 구성합니다.
sniffer_filter: 네트워크 스니핑에서 무시할 파일 확장자를 구성합니다.
headers: 자동 다운로드 과정에 필요한 요청 헤더 정보를 구성합니다.
data: 자동 다운로드 과정에 필요한 요청 본문을 구성합니다.
method: 자동 다운로드 과정에 필요한 요청 메서드를 구성합니다.
방법 1: 실제 상황에 따라 config.py의 규칙 정보를 조정합니다.
방법 2: 리소스 파일을 무시합니다.
스캔하려는 애플리케이션에 쉘이 있음을 의미하므로, 스캔 전에 언쉘/탈쉘 처리가 필요합니다. 현재 다음 도구를 사용하여 언쉘/탈쉘 처리를 할 수 있습니다.
Android:
xposed 모듈: dexdump
frida 모듈: FRIDA-DEXDump
루트 없는 언쉘: blackdex
iOS:
frida 모듈:
Windows 시스템: frida-ipa-dump
MacOS 시스템: frida-ios-dump
파일 다운로드 실패.
1) 입력한 URL 주소가 올바른지 확인하십시오.
2) 네트워크에 문제가 있는지 확인하거나 설정 파일 config.py에서 요청 헤더 정보(headers), 요청 본문(data), 요청 메서드(method)를 구성한 후 다시 실행하십시오.
파일 역컴파일 실패.
오류 스크린샷과 해당 APK 파일을 https://github.com/kelvinBen/AppInfoScanner/issues에 제출해 주십시오. 작성자가 확인 후 신속히 처리하겠습니다.
사용자 정의 규칙 제출 경로:
제출 형식:
1. APP 사용자 정의 컴포넌트 추가
예: fastjson 규칙:
APP 컴포넌트: fastjson com.alibaba.fastjson
2. 검색할 문자열
예: 알리바바 클라우드 AK 규칙:
문자열:
阿里云AK .*accessKeyId.*".*"
3. 검색할 웹 파일 확장자
예: jsp 파일 규칙:
웹사이트: Java 언어 jsp
4. Android 쉘 규칙
예: 어느 디지털 회사의 쉘 규칙:
쉘: 어느 디지털 회사 com.stub.StubApp
WeChat: bromomo (친구 추가 시 GitHub라고 메모해 주세요)
WeChat 그룹:

참여가 안 되실 경우 WeChat 친구를 추가한 후 그룹에 초대해 드립니다.
이메일: [email protected]
요청 제출, 버그 수정 제출, 기술 교류, 비즈니스 협력 모두 작성자 친구 추가 후 가능합니다.

AppInfoScanner는 404Team 별자리 프로젝트 2.0의 일부입니다. AppInfoScanner에 대해 문의사항이 있거나 다른 사용자와 교류하고 싶다면 별자리 프로젝트의 그룹 참여 방법을 참조하십시오.