Beruflich Dokumente
Kultur Dokumente
1.- INTRODUCCION
Y bien, antes de comenzar supongo que tienes nociones bsicas sobre el protocolo TCP/IP, y si no
te recomiendo leer "TCP/IP Illustrated Volume 1" de Richard Stevens[1]. Tambin es bueno leer
parte del RFC correspondiente al protocolo TCP [2] ya que ser de utilidad.
Para no comenzar desde cero, dar una pequea explicacin sobre el byte de FLAGS en el
encabezado (header) del protocolo TCP, he aqu la estructura de un header:
SOURCE PORT */
DESTIN. PORT */
/* SEQUENCE NUMBER */
/* ACKNOWLEDGE NUMBER*/
/* UNUSED */
/* FLAGS */
WINDOW SIZE */
CHECKSUM */
URGENT POINTER */
Para obtener la descripcin de cada uno de estos campos leer los documentos antes mencionados ya
que en este documento el campo que nos interesa es el byte de FLAGS, digo byte por que en un
encabezado el campo de FLAGS tiene asignados 8 bits, 6 de los cuales son utilizados y los 2
restantes no. Es posible ver los valores de cada FLAG en /usr/include/netinet/tcp.h :
#
#
#
#
#
define
define
define
define
define
TH_FIN
TH_SYN
TH_RST
TH_PUSH
TH_ACK
0x01
0x02
0x04
0x08
0x10
define TH_URG
0x20
#include<stdio.h>
#include<netinet/in.h>
#include<netdb.h>
/* gethostbyname() */
#include<sys/types.h>
#include<sys/socket.h>
main(int argc, char **argv)
{
struct sockaddr_in target;
struct hostent *target_name;
int socket_fd;
if(argc!=3)
exit(printf("Uso: %s host|ip puerto\n",argv[0]));
target_name=gethostbyname(argv[1]);
/*estructura hostent*/
Richard Stevens
[2] RFC N. 793
http://www.rfc-es.org/getfile.php?rfc=0793
[3] Apache Web Server
www.apache.org
[4]
Ethereal Network protocol Analyzer
www.ethereal.com
[5] Aztek-onnect Scanner
http://www.danitrous.org/code/nitrous/AzteK-onnect_scanner_v1.0.c
[6] IDS Intrusion Detection System
http://www.danitrous.org/papers/VF-ids-protoloco.txt
[7] A brief programming tutorial in C for raw sockets
http://mixter.void.ru/rawip.html
[8] Nmap - Network exploration tool and security scanner
www.insecure.org/nmap
[9] Hping Network analyzer tool
www.hping.org