Yo también quiero jugar
A continuación les muestro los avances del pequeño proyecto que estoy desarrollando:
Nombre del autor:
Emertech
Nombre de la herramienta/píldora:
BrianaWare
Lenguaje(s) en los que está diseñado:
C/C++, PHP - MySQL, JAVA (Android Studio)
Descripción del trabajo:
Es un sistema compuesto de 2 clientes y un servidor remoto, los clientes utilizan el servidor remoto para comunicarse entre sí e intercambiar órdenes y respuestas.
La técnica de comunicación que se utiliza en Windows será aplicada al SO Android que es el principal objetivo, además de servir incluso para que un Arduino, ESP32, Raspberry o cualquier otra tarjeta con capacidad de conectarse mediante Ethernet o Wifi a internet puede enviar y recibir datos (sea ordenes, imágenes, archivos, etc). -> Véase ejemplo de WebClient para Ethernet de Arduino.
Por el momento el envío de datos solo está soportado solo para archivos .docx y .jpg que tengan un peso menor a 2Mb (solo necesita aumentar unas líneas de código para soportar más tipos de archivos y Mb).
Tiene la posibilidad de controlar millones de equipos infectados con un celular que ni siquiera pierde velocidad al controlarlos.
1era Fase - prototipo:
CLIENTE WINDOWS (Lenguaje C/C++)
Al ejecutarse verifica su ruta actual:
Si está en otra ruta:
- Se conecta al servidor y registra un nuevo usuario.
- Obtiene las rutas de .docx abiertas recientemente.
- Sube los .docx a una carpeta creada con su usuario creado en el servidor.
- Borra los .docx de la PC y copia a las rutas de cada .docx un .exe con el icono de Word que pide permisos de administrador para instalar un MSI que contiene un servicio Windows el cual tiene un servidor local y un cliente, con los cuales puede conectarse al servidor remoto y ejecutar órdenes con permisos de administrador.
- Además busca entre los procesos el nombre del antivirus instalado y de acuerdo a eso crea un reporte.html con la imagen del antivirus instalado y las rutas de los archivos .docx borrados para pedir la instalación de un software “necesario” para recuperar estos archivos, el software es un .MSI que contiene el servicio Windows con servidor local y un cliente para poder recibir órdenes y ejecutarlas con permisos de administrador.
- Se autocopia al inicio y a la carpeta “local” del usuario activo.
- Verifica si tiene permisos de administrador para instalar en ese momento el servicio de Windows (servidor local y cliente) y cumplir órdenes con los permisos de administrador.
Si ya se encuentra en la ruta destinada:
- Se conecta al servidor para recibir órdenes.
- Una vez conectado al servidor puede realizar algunas funciones:
Las funciones incluyen:
- Un explorador de archivos remoto el cual puede acceder a los archivos y carpetas del disco duro o memorias extraíbles.
- Subida de archivos al servidor.
- Un monitor remoto el cual puede transmitir en tiempo real capturas de pantalla al servidor.
SERVIDOR REMOTO (Lenguaje PHP con MySql)
- El servidor remoto (server.php) se encarga de recibir y procesar los datos enviados por el cliente de Windows y añadir y modificar la base de datos organizada para cada cliente Windows que se conecte.
- El servidor remoto (cliente.php) recibe y procesa las órdenes de un cliente para Android en un dispositivo móvil.
- Organiza una base de datos con los usuarios registrados y sincroniza órdenes y respuestas de Windows hacia Android y viceversa.
- Usa un “Cron” cada 5 segundos para colocar como “no conectados” a todos los usuarios registrados, si el usuario está activo al conectarse al servidor modifica la base de datos y se coloca como “conectado”.
- “upload.php” se encarga de recibir los archivos del cliente Windows, hay que mencionar que solo es un ejemplo puesto que fácilmente se puede subir una Shell en PHP y obtener control del servidor remoto.
CLIENTE ANDROID (Lenguaje Java)
- Al iniciarse consulta al servidor remoto los usuarios activos y los muestra en una ListView.
- Se elige el usuario activo en la lista para acceder a sus datos.
- Con el botón de transmisión se puede tener acceso a capturas de pantalla en tiempo real y monitorizar las acciones de la PC u otro con el cliente Windows.
- El Botón de explorar archivos inicia un nuevo activity para poder explorar las unidades activas en el equipo con el cliente Windows.
- Al explorar las unidades si se escoge algún archivo el cliente Windows lo sube al servidor remoto, a la carpeta con su usuario y luego el cliente de Android lo descarga a la carpeta "Music" del dispositivo móvil.
- El botón archivos muestra los archivos subidos al servidor remoto por el cliente Windows, para escoger el o los archivos que se descargara al dispositivo móvil, a la carpeta "Music".
2da Fase
Cliente Windows con permisos de administrador (Lenguaje C/C++)
- El servicio Windows se instala mediante un archivo MSI para simular una instalación válida para los antivirus.
- El servicio se encarga de recibir las órdenes del servidor remoto y ejecutarlas con todos los permisos.
- El servicio Windows puede enviar datos mayores a 2Mb.
- El servicio Windows crea un nuevo hilo con servidor local para conectarse con un cliente local que pueda ejecutar algunas órdenes respecto al usuario de Windows.
- El nuevo cliente local añade funciones como el uso de la WebCam para tomar imágenes del usuario de Windows.
- El nuevo cliente local debe poder monitorizar las acciones del usuario de Windows (Keylogger, páginas web abiertas en tiempo real, historial de navegación, uso de software cotidiano, archivos más utilizados, etc.) usando las APIS de Windows, SqlLite en C++ para el historial de Chrome y demás.
- El nuevo cliente local debe realizar todas las acciones en memoria, es decir no debe utilizar la escritura en disco duro (como lo hace el prototipo en la captura de pantalla).
3ra Fase
IA con la aplicación de Sistemas Expertos con una base de conocimiento.
- Por ejemplo: El cumplimiento de 3 o más características al usar la computadora para clasificarlo en tipo de usuario (hombre, mujer, deportista, delincuente, etc.) o sus combinaciones.
- La clasificación se da de acuerdo a la base de conocimiento creada por un experto en el tema.
4ta Fase
Aplicar el conocimiento obtenido en el SO Android:
Cliente para Android (Lenguaje Java – Android Studio) o Qt-c++
- Utilizando las técnicas de captura de pantalla, envío de datos, uso de servicios y demás, aplicarlo al SO Android (Dada la seguridad de este SO se debe camuflar las funciones de envío de datos con otras funciones que pasen desapercibidas y sean visibles al usuario de Android).
Captura de pantalla (en el caso de tener interfaz):
Funcionamiento y descripción en youtube:
Descarga de codigo fuente y los ejecutables:
Descarga de proyecto en Mega (Password: 15)
https://mega.nz/file/004nhJzA#yar_MxH8L8sP7YQwTVDaqGd3Nuuh-RMBaH68vpPTFM4
Página github (en construcción)
https://github.com/Emertek/BrianaWare
Descripción en PDF
https://mega.nz/file/59hjWRKT#VUvk61HGIwhpkrC0JZS0MamzsQrL5_Bk16La1d039Mg