Un poco de automatización en torno a un dispositivo Android 7.1.2 en Corellium, acostumbrado a derrotar a (la mayoría) de los empaquetadores del mercado.
Este método apunta al método art::DexFile::OpenMemory
para Android 7.1.12 mientras utiliza un dispositivo Corellium para proporcionar un dispositivo siempre encendido y listo para descomprimir. Si bien esta demostración actual solo utilizó un dispositivo, esto esencialmente se puede ampliar de forma transparente al front-end, ya que todas las "tareas" son manejadas por nsqd
.
El backend
configura un túnel vpn hacia el servidor Corellium, que se reinicia automáticamente en caso de falla y abre un proxy inverso a la red acoplable. Luego, el unpacker-worker
lo utiliza para comunicarse de forma transparente con el dispositivo.
backend/vpn-profile.ovpn
con el perfil OpenVPN de su dispositivo Corellium.env
así; 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
Luego simplemente use docker-compose build
seguido de docker-compose up
.
Al acceder a la API de backend con una apk, se pondrá en cola un binario para descomprimirlo; curl 0.0.0.0:3000/unpack/SHA1_OF_APK --data-binary @/path/to/apk
Después de uno o dos minutos, vuelva a verificar el estado del activo; curl 0.0.0.0:3000/unpack/SHA1_OF_APK/status
Luego, cuando encuentre activos de interés, descárguelos; curl 0.0.0.0:3000/unpack/SHA1_OF_APK/SHA1_OF_ASSET
Esta presentación y código están destinados únicamente a fines educativos y de investigación. Haz lo que quieras con él, pero acepta toda la responsabilidad por tus acciones. Las herramientas se crearon específicamente para ayudar a revertir y analizar el malware; tenga cuidado. No han sido reforzados para el consumo público externo, probablemente no sea una idea inteligente exponer un servicio como este a la Internet pública sin pensarlo detenidamente.
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.