
모바일 애플리케이션 테스팅 툴킷
Scrounger – 다른 사람에게서 빌리거나 기대어 사는 사람.
이 도구를 설명하는 데 이보다 더 적절한 말은 없습니다. 첫째, 이 도구는 이미 출판된 많은 다른 도구들에서 영감을 받았기 때문이고, 둘째, 모바일 애플리케이션의 취약점에 기대어 살아가기 때문입니다.
여러 모바일 애플리케이션 분석 도구들이 개발되었음에도 불구하고, 안드로이드와 iOS 모두에 사용할 수 있고 모든 모바일 애플리케이션 평가에 반드시 사용해야 하는 "표준"이라고 불릴 만한 도구는 없습니다.
Scrounger의 아이디어는 침투 테스터의 작업을 대신하는 것이 아니라, 모든 평가에서 수행해야 하는 지루한 작업을 실행하여 침투 테스터의 평가를 돕는 metasploit과 유사한 도구를 만드는 것입니다.
Scrounger가 제공하는 다른 도구에는 없는 주요 기능:
Scrounger는 다른 도구들에서 영감을 받았으며, 다음 개발자분들께 큰 감사를 드립니다:
면책 조항으로, Scrounger에 의해 식별된 모든 발견 사항은 항상 수동으로 재확인해야 합니다.
Android 또는 iOS 기기가 필요한 모듈을 사용할 때, Scrounger는 각각 Rooted 또는 Jailbroken 기기가 필요합니다.
Scrounger는 iOS 11 및 Android 8.1에서 작동하도록 테스트되었습니다.
Scrounger는 python 2.7 전용으로 빌드되었습니다.
git clone https://github.com/nettitude/scrounger.git cd scrounger bash setup.sh pip install -r requirements.txt python setup.py install
## 개발```
git pull https://github.com/nettitude/scrounger.git
cd scrounger
bash setup.sh
pip install -r requirements.txt
python setup.py develop
cd scrounger git pull python setup.py install --upgrade
## 필수 바이너리
### 안드로이드 모듈용
* java (<http://www.oracle.com/technetwork/java/javase/downloads/index.html>)
* jd-cli (<https://github.com/kwart/jd-cmd>)
* apktool (<https://ibotpeaches.github.io/Apktool/>)
* d2j-dex2jar (<https://github.com/pxb1988/dex2jar>)
* adb (<https://developer.android.com/studio/releases/platform-tools>)
* 기타 (선택 사항):
* avdmanager (<https://developer.android.com/studio/#downloads>)
### iOS 모듈용
* jtool (Linux) (<http://www.newosxbook.com/tools/jtool.html>)
* otool (MacOS) (<https://developer.apple.com/xcode/>)
* ldid (<https://github.com/daeken/ldid.git>)
* iproxy (패키지: libimobiledevice)
* lsusb (패키지: usbutils)
* unzip
### iOS 바이너리
* 번들 바이너리:
* dump_backup_flag
* dump_file_protection
* dump_keychain
* dump_log
* listapps
* Cydia Karen's 저장소 (https://cydia.angelxwind.net) (선택 사항):
* AppSync Unified (패키지: net.angelxwind.appsyncunified)
* appinst (패키지: com.linusyang.appinst)
* Cydia Shmoo419's 저장소 (https://shmoo419.github.io/) (선택 사항):
* uncrypt11 (패키지: com.shmoo.uncrypt11)
* gdb (패키지: gdb71050)
* Cydia Ichitaso's 저장소 (http://cydia.ichitaso.com/) (선택 사항):
* clutch (패키지: com.kjcracks.clutch2)
## 설치 스크립트
### Linux```
# install iproxy lsusb
sudo apt-get install libimobiledevice usbutils
# install jd-cli
if [ ! -x "$(which jd-cli)" ]; then
curl -L -o /tmp/jdcli.zip https://github.com/kwart/jd-cmd/releases/download/jd-cmd-0.9.2.Final/jd-cli-0.9.2-dist.zip
unzip /tmp/jdcli.zip /usr/local/share/jd-cli
ln -s /usr/local/share/jd-cli/jd-cli /usr/local/bin/jd-cli
ln -s /usr/local/share/jd-cli/jd-cli.jar /usr/local/bin/jd-cli.jar
rm -rf /tmp/jdcli.zip
fi
# install apktool
if [ ! -x "$(which apktool)" ]; then
mkdir /usr/local/share/apktool
curl -L -o /usr/local/share/apktool/apktool https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/osx/apktool
curl -L -o /usr/local/share/apktool/apktool.jar https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.3.3.jar
chmod +x /usr/local/share/apktool /usr/local/share/apktool/apktool.jar
ln -s /usr/local/share/apktool /usr/local/bin/apktool
ln -s /usr/local/share/apktool.jar /usr/local/bin/apktool.jar
fi
# install dex2jar
if [ ! -x "$(which d2j-dex2jar)" ]; then
curl -L -o /tmp/d2j.zip https://github.com/pxb1988/dex2jar/files/1867564/dex-tools-2.1-SNAPSHOT.zip
unzip /tmp/d2j.zip -d /tmp/d2j
dirname=$(ls --color=none /tmp/d2j)
mv /tmp/d2j/$dirname /usr/local/share/d2j-dex2jar
ln -s /usr/local/share/d2j-dex2jar/d2j-dex2jar.sh /usr/local/bin/d2j-dex2jar.sh
ln -s /usr/local/share/d2j-dex2jar/d2j-apk-sign.sh /usr/local/bin/d2j-apk-sign.sh
rm -rf /tmp/d2j.zip
fi
if [ ! -x "$(which d2j-dex2jar)" ]; then
ln -s /usr/local/bin/d2j-dex2jar.sh /usr/local/bin/d2j-dex2jar
fi
# install adb
if [ ! -x "$(which adb)" ]; then
curl -L -o /tmp/platform-tools.zip https://dl.google.com/android/repository/platform-tools-latest-linux.zip
unzip /tmp/platform-tools.zip -d /tmp/pt
mv /tmp/pt/platform-tools /usr/local/share/
ln -s /usr/local/share/platform-tools/adb /usr/local/bin/adb
ln -s /usr/local/share/platform-tools/fastboot /usr/local/bin/fastboot
fi
# install ldid
if [ ! -x "$(which ldid)" ]; then
git clone https://github.com/daeken/ldid.git /tmp/ldid
cd /tmp/ldid
./make.sh
mv ldid /usr/local/bin/
cd /tmp
rm -rf /tmp/ldid
fi
# install jtool
if [ ! -x "$(which jtool)" ]; then
curl -L -o /tmp/jtool.tar http://www.newosxbook.com/tools/jtool.tar
mkdir /tmp/jtool
tar xvf /tmp/jtool.tar -C /tmp/jtool
mv /tmp/jtool/jtool.ELF64 /usr/local/bin/jtool
rm -rf /tmp/jtool.tar /tmp/jtool
fi
# install scrounger
git clone [email protected]:nettitude/scrounger.git
cd scrounger
pip install -r requirements.txt
python setup.py install
brew tap jlhonora/lsusb && brew install lsusb libimobiledevice ldid
if [ ! -x "$(which jd-cli)" ]; then curl -L -o /tmp/jdcli.zip https://github.com/kwart/jd-cmd/releases/download/jd-cmd-0.9.2.Final/jd-cli-0.9.2-dist.zip unzip /tmp/jdcli.zip /usr/local/share/jd-cli ln -s /usr/local/share/jd-cli/jd-cli /usr/local/bin/jd-cli ln -s /usr/local/share/jd-cli/jd-cli.jar /usr/local/bin/jd-cli.jar rm -rf /tmp/jdcli.zip fi
if [ ! -x "$(which apktool)" ]; then mkdir /usr/local/share/apktool curl -L -o /usr/local/share/apktool/apktool https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/osx/apktool curl -L -o /usr/local/share/apktool/apktool.jar https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.3.3.jar chmod +x /usr/local/share/apktool /usr/local/share/apktool/apktool.jar ln -s /usr/local/share/apktool /usr/local/bin/apktool ln -s /usr/local/share/apktool.jar /usr/local/bin/apktool.jar fi
if [ ! -x "$(which d2j-dex2jar)" ]; then curl -L -o /tmp/d2j.zip https://github.com/pxb1988/dex2jar/files/1867564/dex-tools-2.1-SNAPSHOT.zip unzip /tmp/d2j.zip -d /tmp/d2j dirname=$(ls --color=none /tmp/d2j) mv /tmp/d2j/$dirname /usr/local/share/d2j-dex2jar ln -s /usr/local/share/d2j-dex2jar/d2j-dex2jar.sh /usr/local/bin/d2j-dex2jar.sh ln -s /usr/local/share/d2j-dex2jar/d2j-apk-sign.sh /usr/local/bin/d2j-apk-sign.sh rm -rf /tmp/d2j.zip fi
if [ ! -x "$(which d2j-dex2jar)" ]; then ln -s /usr/local/bin/d2j-dex2jar.sh /usr/local/bin/d2j-dex2jar fi
if [ ! -x "$(which adb)" ]; then curl -L -o /tmp/platform-tools.zip https://dl.google.com/android/repository/platform-tools-latest-darwin.zip unzip /tmp/platform-tools.zip -d /tmp/pt mv /tmp/pt/platform-tools /usr/local/share/ ln -s /usr/local/share/platform-tools/adb /usr/local/bin/adb ln -s /usr/local/share/platform-tools/fastboot /usr/local/bin/fastboot fi
xcode-select --install
git clone [email protected]:nettitude/scrounger.git cd scrounger pip install -r requirements.txt python setup.py install
## 사용자 정의 모듈 추가하기
애플리케이션을 설치하면 `~/.scrounger` 폴더가 생성됩니다.
`~/.scrounger` 안에는 기본 scrounger 모듈과 동일한 구조를 가진 `modules/custom` 폴더가 있습니다(예: `analysis/android/module_name`).
새 사용자 정의 모듈을 만들려면 원하는 모듈 이름으로 새 파일을 추가하기만 하면 다음에 scrounger를 실행할 때 포함됩니다.
### 예시