¿Qué es KitHack?
Kithack es un framework diseñado para automatizar el proceso de descarga e instalación de diferentes herramientas para pruebas de penetración, con una opción especial que permite generar puertas traseras multiplataforma mediante Metasploit Framework. El kit de herramientas está clasificado de la siguiente forma:
- Android
- Windows
- Phishing
- Wifi Attacks
- Passwords Attacks
- Web Attacks
- Spoofing
- Information Gathering
- Others
En cada sección se encuentran las diferentes herramientas que podemos instalar junto con una pequeña descripción que nos beneficia en saber de que tratan o que funciones tienen.
¿Cómo es el proceso de instalación de las herramientas?
KitHack de manera automatizada se encarga tanto de la clonación del repositorio como de la instalación de sus dependencias o requerimientos especiales. Una vez terminada la instalación de su herramienta, esta se almacenará en la carpeta tools, y dentro de esta carpeta nos vamos a encontrar con otras subcarpetas con los nombres de cada categoría.
Por ejemplo, si la herramienta que usted eligió se encuentra dentro de la categoría Android, esta se almacenará en el directorio KitHack/tools/Android/mi_herramienta.
Puede ejecutar sus herramientas directamente desde kithack a pesar de que ya se encuentren instaladas.
Generador de backdoors.
Una de las funciones más atractivas que tiene KitHack es el generador de puertas traseras que funciona mediante Metasploit Framework.
Podemos generar puertas traseras tanto para Linux, Windows, Android y Mac OS. Tambien contiene 4 formatos multiplataforma los cuales son; PHP, python, bash y perl.
Las principales caracteristicas que tiene este generador de puertas traseras son las siguientes:
- Disponibilidad de payloads por etapas y sin etapas.
- Conexiones publicas mediante ngrok.
- Inyección de aplicaciones android legitimas.
- Personalización de payloads para android.
- Persistencia automatizada.
Tipos de payloads.
Metasploit en su conjunto de herramientas nos proporciona una gran variedad de payloads los cuales se clasifican por 2 tipos:
- Payloads por etapas: Este tipo de payload se mantiene de manera muy compacta y solo se encarga de proporcionar los medios para realizar los escenarios de explotación.
Cada vez que utilizamoswindows/meterpreter/reverse_tcp
,linux/meterpreter/reverse_tcp
,android/meterpreter/reverse_tcp
y entre otros, estamos indicandole a metasploit que prepare un tipo de payload que se divida en 2 etapas. Este en varios escenarios de explotación puede funcionar muy bien. Sin embargo, existen otros escenarios donde este tipo de payload es lo menos ideal a realizar por el tamaño de memoria que utilizan los bufer y los DLL.
El ejemplo más común de este tipo de escenarios es donde nosotros como atacantes nos encontramos en entornos de bajo ancho de banda o de alta latencia y queremos realizar un ataque fuera de nuestra red local. El costo de datos o tiempo de carga metsrv, stdapi y priv se vuelven dificiles de manejar o practicamente imposibles. En tal escenario, es mejor realizar un ataque de Payload individual. - Payloads individuales: Este tipo de payload es un binario que ya incluye todas las partes requeridas de meterpreter, junto con las extensiones requeridas y todas agrupadas en una sola. Cuando se invoca, la instancia de meterpreter ya tiene todo lo que necesita para funcionar y por lo tanto, metasploit no necesita perder tiempo ni ancho de banda para realizar las cargas habituales que se requieren con el enfoque por etapas.
Payload | Por etapas | Individual |
---|---|---|
Reverse TCP | windows/meterpreter/reverse_tcp |
windows/meterpreter_reverse_tcp |
Reverse HTTPS | windows/meterpreter/reverse_https |
windows/meterpreter_reverse_https |
Bind TCP | windows/meterpreter/bind_tcp |
windows/meterpreter_bind_tcp |
Reverse TCP IPv6 | windows/meterpreter/reverse_ipv6_tcp |
windows/meterpreter_reverse_ipv6_tcp |
Ngrok.
Para poder utilizar ngrok correctamente debemos registrarnos en su pagina oficial y configurar nuestro authtoken en kithack. Una vez configurado, ya podemos crear nuestro backdoor. Kithack como primera instancia nos solicita un LHOST y un LPORT, también nos proporciona nuestra IP local, nuestra IP publica y el enlace TCP generado con ngrok. Si deseamos realizar un ataque fuera de nuestra red local, podemos utilizar ngrok para realizar la conexión con nuestro victima sin necesidad de abrir puertos en nuestro router.
Ejemplo:
Local IP: 192.168.1.223
Public IP: 201.97.221.230
Ngrok TCP: tcp://0.tcp.ngrok.io:15225
SET LHOST:
SET LPORT:
Para realizar el ataque fuera de nuestra red local, en este ejemplo, se coloca como LHOST: 0.tcp.ngrok.io y como LPORT: 15225.
Inyección de payloads en APKs legitimas.
Este nuevo método nos permite onfuscar un payload dentro de una APK legitima. ¿Alguna vez intentaste realizar este proceso con el parametro -x
de msfvenom? Este método mayormente genera algún tipo de error a los usuarios ya que no admite la mayoría de aplicaciones y tampoco realiza un método de certificación valido. El método de KitHack tiene menor margen de error al realizar el mismo proceso. Aún así, cabe mencionar que no todas las aplicaciones son vulnerables a este ataque, aplicaciones como Facebook, WhatsApp, instagram y similares a estas, tienen los suficientes mecanismos de seguridad para evitar este tipo de actividades. Como consejo, se recomienda descargar aplicaciones desde apkpure o similares a esta.
El proceso que realiza KitHack para infectar una APK es el siguiente:
- Genera un payload de forma normal con metasploit.
- Decompila la APK legitima proporcionada.
- Decompila el payload que se generó anteriormente.
- Añade nuevos permisos al archivo
AndroidManifest.xml
de la APK legitima. - Remueve el archivo
MainActivity.smali
de la carpeta stage del payload generado. - Reconfigura los archivos smali del payload generado.
- Copia la carpeta stage del payload generado a la APK original.
- Localiza el punto de entrada dentro del archivo
AndroidManifest.xml
de la APK original. - Modifica el archivo
.smali
del activity para incluir una linea que se encarga de invocar MainService para la sesión meterpreter. - Compila nuevamente el APK ya configurado como backdoor.
- Certifica el archivo APK generado con jarsigner.
Personalización de payloads para android.
Esta nueva función nos permite modificar el nombre e icono predeterminados que nos proporciona metasploit a la hora de generar un payload básico de android. El famoso nombre conocido como MainActivity
lo reemplaza kithack por el nombre que le proporciamos a nuestro archivo de salida. De la misma forma, podemos modificar el icono android predeterminado, este tiene que tener las siguientes caracteristicas:
- Resolución 48x48.
- Formato PNG.
Si desea saber de donde puede descargar sus propios iconos, de click aquí.
Persistencia automatizada para cualquier APK.
Gracias a la persistencia automatizada por parte de kithack, ahora podrás recuperar tus sesiones meterpreter cuando se cierren, y esto es gracias a que kithack genera un archivo de persistencia único por cada APK generada. Este archivo de persistencia se guardará en la carpeta output
y tendrá el mismo nombre que tu archivo de salida pero con la extensión .sh
ya que es un archivo escrito en bash. En este archivo, nosotros podemos modificar el tiempo en el que se va a estar reiniciando nuestra aplicación infectada, para ello, unicamente tenemos que modificar la linea de código sleep 20
de nuestro archivo de persistencia. Kithack de forma predeterminada lo configura en 20 segundos, pero podemos cambiarlo al valor que nosotros queramos.
Preguntas más frecuentes.
- ¿Cómo configuro mi authtoken?
Primero que nada, debemos de registrarnos en la pagina oficial de ngrok con nuestro nombre, correo electronico y una contraseña. Una vez registrados y logueados en la plataforma, debemos ubicar la sección de Connect your account y copiaremos todo el serial alfanumérico que nos proporciona ngrok. Posteriormente, debemos ejecutar kithack y seleccionar la opción número 10 de backdoors with msfvenom, elegimos el tipo de backdoor que deseamos crear con su respectivo payload, y automaticamente kithack va a detectar que su achivo de configuraciónngrok.yml
no existe, por lo tanto le va a solicitar ingresar su authtoken, en ese apartado debe pegar su serial alfanumérico. - ¿Por qué se me cierra muy rapido mi sesión de metasploit?
Pueden ser diversos factores que provoquen que su sesión de metasploit expire muy rápido, depende mucho del LHOST que hayas configurado. Si realizaste una prueba local y la sesión expira muy rápido, puede ser la velocidad de tu internet, si utilizaste tu ip publica, puede ser la velocidad de internet de tu victima, si estas trabajando con ngrok, puede que los servidores de ngrok estén muy lentos, lo recomendable es elegir un buen tipo de payload que se adapte a nuestros objetivos, y realizar persistencia o migrar a otro proceso al obtener nuestra shell meterpreter. - ¿Por qué me da errores el instalador de kithack?
En este caso es necesario verificar que el archivo/etc/apt/sources.list
se encuentre configurado correctamente de acuerdo a la distribución linux instalada.
Atención.
Este programa se distribuye con la esperanza de que sea útil, sin la garantía implícita de comerciabilidad. Es responsabilidad del usuario obedecer todas las leyes locales, estatales y federales aplicables. Yo como desarrollador no asumo ninguna responsabilidad y no seré responsable del mal uso o daño causado con este programa.