Liber 000 - Astrum Argentum
Liber 000 - Astrum Argentum Liber 000 - Astrum Argentum
#include #include int send(int Meusocket, const void *msg, size_t len, int flags); Onde : a) nsocket – Declaração de nosso socket; b)*msg – a mensagem propriamente dita alocada em um ponteiro; c) len – é o tamanho da mensagem; d) flags - Parametros adicionais. Já no caso do recv(), declaramos da seguinte maneira : #include #include int recv(int Meusocket, void *buf, int len, unsigned int flags); a) nsocket – Declaração de nosso socket; b)*buf – endereço da área d ebuffer de memória; c) len – é o tamanho do buffer de memória; d) flags - Parametros adicionais. E agora dois exemplos para fecharmos nosso tutorial. O Cliente e o servidor : #include #include #include #include #include #include #include #include #define PORTA 15000 #define MAXDATAM 2000 int main(int argc, char *argv[]) { int nsocket, numbytes; char buf[MAXDATAM]; struct hostent *he; struct sockaddr_in s_endereco; if (argc != 2) { fprintf(stderr,"Uso: cliente hostname\n"); exit(1); } 40
if ((he=gethostbyname(argv[1])) == NULL) { herror("gethostbyname"); exit(1); } if ((nsocket = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } s_endereco.sin_family = AF_INET; s_endereco.sin_port = htons(PORTA); s_endereco.sin_addr = *((struct in_addr *)he->h_addr); bzero(&(s_endereco.sin_zero), 8); if (connect(msocket,(struct sockaddr *)&s_endereco, sizeof(struct sockaddr) ) ==-1) { perror("connect"); exit(1); } if ((numbytes=recv(msocket, buf, MAXDATASIZE, 0)) == -1) { perror("recv"); exit(1); } buf[numbytes] = '\0'; printf("Conectado: %s",buf); close(nsocket); return 0; } E agora o servidor ! #include #include #include #include #include #include #include #include #define PORTA 15000 #define CONEXOES 10 main() { int nsocket, newsocket; struct sockaddr_in server_endereco; struct sockaddr_in endereco_cliente; int tam; if ((nsocket = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } server_endereco.sin_family = AF_INET; 41
- Page 1 and 2: 1 E Q U I N O X G R E E N Volume I
- Page 3 and 4: 2. FAZENDO CÓPIAS EXATAS Você pod
- Page 5 and 6: 10. REVISÕES FUTURAS DESTA LICENÇ
- Page 7 and 8: E Q U I N O X G R E E N O O R G Ã
- Page 9 and 10: E D I T O R I A L “Faze o que tu
- Page 11 and 12: Mensagem ao Estudante : Liber 000 A
- Page 13 and 14: Fraters afim de poder atender a tod
- Page 15 and 16: Este mundo tenta levar o neófito a
- Page 17 and 18: O Manifesto de um Hacker Data do Do
- Page 19 and 20: Seção 002h O Primeiro Portal Agor
- Page 21 and 22: Servidor : Endereço IP eth0 : 10.0
- Page 23 and 24: Quod facis, Fac citius Antes de ter
- Page 25 and 26: Nós iremos explorar nestes nossos
- Page 27 and 28: main(){ int e_socket; struct sockad
- Page 29 and 30: utilizando a função CONNECT(). co
- Page 31 and 32: O Grande exemplo I : Eis aqui o sca
- Page 33 and 34: } /*Declaracao do Socket*/; } msock
- Page 35 and 36: transmitidos e aceitos pelo destino
- Page 37 and 38: SackOK é típico de um cliente FTP
- Page 39: int nsocket, newsocket; struct sock
- Page 43 and 44: O backtcp.c O backdoor aqui apresen
- Page 45 and 46: Apresentando o Código : Finalmente
- Page 47 and 48: ) Protocolo IP (IP Protocol) - Este
- Page 49 and 50: ICMP (Internet Control Message Prot
- Page 51 and 52: # error "Please fix " #endif u_int8
- Page 53 and 54: ip_origem = inet_addr("127.0.0.1");
- Page 55 and 56: if (envia == -1) { perror("sendto()
- Page 57 and 58: Por Frater Q.V.I.F. 196 O E Q U I N
- Page 59 and 60: de Crowley, não exatamente a tradu
- Page 61 and 62: shellcodes, mas não quer dizer que
- Page 63 and 64: } shellcode/cwrite.c OBS: Sempre d
- Page 65 and 66: Vamos analisar o que fizemos e comp
- Page 67 and 68: da próxima instrução que no caso
- Page 69 and 70: Provavelmente você verá uma mensa
- Page 71 and 72: Type "show copying" to see the cond
- Page 73 and 74: oot@motdlabs:~/IP_FIX/shellcode# gc
- Page 75 and 76: * MotdLabs . * Compilação: # gcc
- Page 77 and 78: oot@motdlabs:~/IP_FIX/shellcode# gc
- Page 79 and 80: * Criamos um ponteiro para uma fun
- Page 81 and 82: 0x8048317 : sub $0x8,%esp 0x804831a
- Page 83 and 84: in/sh; */ (0). */ main() { "\x89\xe
- Page 85 and 86: Lembre-se: Se você tiver alguma d
- Page 87 and 88: */ "push $0x6E69622F \n" /* ...a ou
- Page 89 and 90: main() { "\x89\xe1" /* mov %esp,%ec
if ((he=gethostbyname(argv[1])) == NULL) {<br />
herror("gethostbyname");<br />
exit(1);<br />
}<br />
if ((nsocket = socket(AF_INET, SOCK_STREAM, 0)) == -1) {<br />
perror("socket");<br />
exit(1);<br />
}<br />
s_endereco.sin_family = AF_INET;<br />
s_endereco.sin_port = htons(PORTA);<br />
s_endereco.sin_addr = *((struct in_addr *)he->h_addr);<br />
bzero(&(s_endereco.sin_zero), 8);<br />
if (connect(msocket,(struct sockaddr *)&s_endereco, sizeof(struct<br />
sockaddr)<br />
) ==-1) {<br />
perror("connect");<br />
exit(1);<br />
}<br />
if ((numbytes=recv(msocket, buf, MAXDATASIZE, 0)) == -1) {<br />
perror("recv");<br />
exit(1);<br />
}<br />
buf[numbytes] = '\0';<br />
printf("Conectado: %s",buf);<br />
close(nsocket);<br />
return 0;<br />
}<br />
E agora o servidor !<br />
#include <br />
#include <br />
#include <br />
#include <br />
#include <br />
#include <br />
#include <br />
#include <br />
#define PORTA 15<strong>000</strong><br />
#define CONEXOES 10<br />
main()<br />
{<br />
int nsocket, newsocket;<br />
struct sockaddr_in server_endereco;<br />
struct sockaddr_in endereco_cliente;<br />
int tam;<br />
if ((nsocket = socket(AF_INET, SOCK_STREAM, 0)) == -1) {<br />
perror("socket");<br />
exit(1);<br />
}<br />
server_endereco.sin_family = AF_INET;<br />
41