Un peu d'automatisation autour d'un appareil Android 7.1.2 sur Corellium, habitué à vaincre (la plupart) des packers du marché.
Cette méthode cible art::DexFile::OpenMemory
pour Android 7.1.12 tout en utilisant un appareil Corellium pour fournir un appareil toujours allumé et toujours prêt pour le déballage. Bien que cette démo actuelle n'utilise qu'un seul périphérique, celle-ci peut essentiellement être étendue de manière transparente au frontal, car toutes les "tâches" sont gérées par nsqd
.
Le backend
configure un tunnel VPN vers le serveur Corellium, qui redémarre automatiquement en cas d'échec et ouvre un proxy inverse sur le réseau Docker. Celui-ci est ensuite utilisé par le unpacker-worker
qui l'utilise pour communiquer de manière transparente avec l'appareil.
backend/vpn-profile.ovpn
par le profil OpenVPN de votre appareil Corellium.env
comme ceci ; INSTANCE_ID=7cc6ca2a-6622-479b-aa4b-8394aa9d9475-instance-for-unpacker
CORELLIUM_URL=testinstance.corellium.com
CORELLIUM_USERNAME=unpackeruser
CORELLIUM_PASSWORD=unpackerpassword
GIN_MODE=debug
SERVE_PORT=3000
ADB_PROXY=5555
Ensuite, utilisez simplement docker-compose build
suivi de docker-compose up
.
Frapper l'API backend avec un apk entraînera la mise en file d'attente d'un binaire pour le décompresser ; curl 0.0.0.0:3000/unpack/SHA1_OF_APK --data-binary @/path/to/apk
Après une minute ou deux, vérifiez à nouveau l'état de l'actif ; curl 0.0.0.0:3000/unpack/SHA1_OF_APK/status
Ensuite, lorsque des actifs intéressants sont trouvés, téléchargez-les ; curl 0.0.0.0:3000/unpack/SHA1_OF_APK/SHA1_OF_ASSET
Cette présentation et ce code sont destinés uniquement à des fins d'éducation et de recherche. Faites ce que vous voulez, mais acceptez toute responsabilité pour vos actes. Les outils ont été créés spécifiquement pour faciliter l’inversion et l’analyse des logiciels malveillants – soyez prudent. Ils n’ont pas été durcis pour une consommation publique externe, ce n’est probablement pas une bonne idée d’exposer un service comme celui-ci à l’Internet public sans y réfléchir longuement et sérieusement.
Copyright 2020 Tim 'diff' Strazzere <[email protected]>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.