Вы находитесь на странице: 1из 8

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/240614123

Analisis de protocolos TCP con sniffer Wireshark

Data · June 2013

CITATIONS READS

0 3,297

2 authors, including:

Cristian Ulloa
Universidad Técnica Federico Santa María
12 PUBLICATIONS   0 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Implementation of CMDB Open Source for improve management of IT services View project

All content following this page was uploaded by Cristian Ulloa on 26 May 2014.

The user has requested enhancement of the downloaded file.


                            

Análisis de comunicaciones y protocolos TCP/IP utilizando


herramientas de software para la captura de paquetes

Miguel Ruiz M.
miguel.ruiz.13@sansano.usm.cl
Cristian Ulloa F.
cristian.ulloa.13@sansano@usm.cl

Santiago, 23 de Mayo de 2013

Resumen

Se  realiza  el  estudio  de  los  protocolos  que  intervienen  en  las redes  de datos,  estudiando el funcionamiento
del  stack  de  protocolos  TCP/IP,  se  describen las  relaciones  de  dependencias  que existen,  a través  del  uso
de la herramienta de software “Wireshark”, para la captura y análisis de paquetes en una red de datos.

Palabras claves: sniffer, protocolo, paquete, trama

1. Introducción

La  base  de  los  protocolos  que  soportan  Internet  se  encuentran definidos en  el  stack TCP/IP que  permite la
transmisión  de  datos  entre  nodos.  Entre  los  protocolos  más  conocidos  se  encuentran  HTTP  (HyperText
Transfer  Protocol)  que  se  utiliza  para  acceder  a  páginas  web,  TCP  (Transfer  Control  Protocol)  encargado de
controlar   la  transferencia  de  segmentos  e  IP  (Internet  Protocol)  responsable  de  la  comunicación  de
datagramas.

Utilizando  el  software  de  captura  de paquetes  (sniffer)  WireShark,  se  estudiaron los  protocolos  involucrados
en  la   comunicación  de   un  cliente   web  (browser)  y  un  servidor   web;  como  complemento  se   analizó  una
transferencia de archivos mediante FTP.

2. Conceptualización
2.1 Protocolo

1
                            

Un  protocolo  define   el  formato  y  el  orden   de  los  mensajes  intercambiados,  entre  dos o más  entidades que
se  tratan  de  comunicar,  como  así  de   las  acciones   asociadas,  a  la  transmisión  y/o  la  recepción  de  un
mensaje u otro evento.

2.2 HTTP

El   protocolo  HTTP  (HyperText  Transfer  Protocol)  es  un  protocolo  de  la  capa  de   aplicación,  basado  en
solicitudes  y  respuestas  entre  un  cliente  y  un  servidor  que  poseen  implementaciones  distintas  del  mismo
protocolo.

Un  cliente  envía  una  solicitud  a  un  servidor   en  forma  de  un  método   de  Request,  URI  (identificador  de
recurso),  y  una  versión  del  protocolo,  seguido  por  un  mensaje  del  tipo  MIME  (Multipurpose  Internet  Mail
Extension)  que  contiene  modificadores  de  la  solicitud,  información   del  cliente  y  posiblemente  un  área  de
contenido,  todo  esto  sobre  una  conexión  al  servidor;  el  servidor  responde  con   su  status,  la  versión  del
protocolo  y un  mensaje  de  éxito  o error, seguido  con  un mensaje del  tipo  MIME  conteniendo información  del
servidor, metadata de la entidad y posiblemente un área para contenido.

Si   la  comunicación  HTTP  es  no­persistente,  una   nueva  conexión TCP debe crearse  cada  vez que  el  cliente
contacta  al  servidor.  Al  contrario,  cuando   la  comunicación  HTTP  es persistente,  múltiples  mensajes HTTP
del  tipo  GET/POST  pueden  enviarse   mediante  la  misma  conexión  TCP.  Esto  se  traduce  en una  mejora  de
rendimiento.

HTTP  utiliza  por  defecto   el  puerto   TCP   80  del  lado  del  servidor,  y es  definido por el RFC  1945,  RFC 2616 y
RFC 2774.

2.3 HTTPS

El   protocolo  HTTPS  corresponde  a  una  implementación  segura  de  HTTP.  Utiliza  SSL/TLS  para  crear  un
túnel  cifrado  por  donde  circula  información.   De  este  modo  se  consigue  que  la  información  sensible
(generalmente  contraseñas)  no  se  transmita  en  forma  natural  (texto   plano);  si  alguien  llegara  a  interceptar
una  comunicación  HTTPS,  lo   único   que  obtendrá   será  un  flujo  de  datos  cifrados  que le resultará  imposible
de descifrar.

El puerto estándar para este protocolo es el  TCP 443.

2.4 DNS

En  la  capa  de  aplicación  también  se  encuentra  un  servicio  muy  importante  para  el  funcionamiento  de
internet:  DNS  (Domain   Name  System).   Éste   corresponde  a  un  sistema  de  nomenclatura  jerárquica   para
cualquier  recurso  conectado  a  Internet  o  a  una   red  privada.   Ofrece  el servicio de  traducción  de nombres  de
dominios a direcciones IP con el propósito de poder localizar y direccionar estos equipos mundialmente.

En  la  capa  de  transporte  se  utiliza  TCP  y  UDP  para  el  envío  de   datos  (UDP  sólo  se  utiliza  cuando   el
tamaño  del  paquete  es  menor  a   512  bytes).  El  puerto  por  defecto  es  UDP  53  y  el  estándar  que   lo  define
está descrito en el RFC 1034 y RFC 1035.

2
                            

2.5 FTP

FTP   (File  Transfer  Protocol),  es   un  protocolo   de  aplicación para la transferencia  de  archivos entre  sistemas
conectados  a  una  red  TCP,  basado  en  una  arquitectura  cliente­servidor.  Desde   un  nodo  cliente   se  puede
conectar a un servidor para descargar archivos desde él o para usarlo como almacén.

Un  problema  básico  de FTP  es  que está  pensado  para  ofrecer la máxima  velocidad  en la conexión,  pero  sin
mayor  control;  el  intercambio  de   toda  la  información  entre  el  cliente  y  servidor  ­   inclusive  las  credenciales
del  usuario  ­  se  realiza  en texto plano sin  ningún  tipo  de cifrado,  con  lo  que  cualquier  persona podría revisar
qué se transmite;

Utiliza  normalmente  el  puerto  de  red  TCP  21  en  el   lado  del  servidor;  el  estándar  que  lo  define  es  el  RFC
959.

3. Resultados relevantes
3.1 Descripción actividades realizadas

1. Instalación y configuración del software sniffer WireShark, para la captura de paquetes.
2. Revisión de la documentación asociada al uso del software WireShark. [1]
3. Inicio de la aplicación y ejecución de la captura de datos.
4. Ingreso a la página web www.itau.cl.
a. Inicio de sesión y posterior logout.
5. Análisis de conexiones FTP (como complemento).
a. Inicio de sesión.
b. Descarga de un archivo.
c. Finalización de sesión.
6. Revisión de capturas.
a. Análisis de los protocolos involucrados, su composición e interacción.
7. Análisis de datos. Obtención de conclusiones.

3.2 Interacción de protocolos involucrados en la comunicación HTTP y HTTPS

1. Se  realiza  la  instalación  del  software  de  captura  Wireshark   en  una  máquina con  sistema  operativo
Linux,  se  deshabilitan  las  funciones  de   firewall  del  router  de  forma  que  no  existan  restricciones  de
tráfico desde Internet hacia la red interna.  La topología de la red usada es la siguiente.

3
                            

Imagen 1: Diagrama de red utilizada. Fuente: elaboración propia

2. Se inicia la captura de paquetes de Wireshark.
3. Se digita en el web browser del host la dirección HTTP: www.itau.cl
4. Se  emite  la  consulta  DNS  en  la  cual  se  solicita  la  dirección  IP  asociada  al  dominio  consultado;
esta   petición  se  realiza  usando  el  protocolo  UDP  y   va  dirigido  al  servidor   de  nombres  de  dominio
(DNS Server) que se encuentra registrado en el host en el puerto 53.
5. Se  recibe  la  respuesta   de  consulta  DNS,  en  la  cual  se  recibe  la  dirección  IP, asociada  al  dominio
anteriormente consultado.
6. Se establece una conexión TCP entre el host y el servidor, utilizando la IP del paso anterior.
7. El navegador web realiza una petición GET.
8. El servidor analiza la solicitud y envía una respuesta al cliente.
9.  El cliente recibe una respuesta exitosa (HTTP 200 OK). [Imagen 2]

Imagen 2: Captura de una comunicación HTTP exitosa. Fuente: Captura Wireshark

10.  Cookies fueron encontradas en los requests. [Imagen 3]

4
                            
Imagen 3: Captura de una comunicación HTTP exitosa. Fuente: Captura Wireshark

11.  Se ingresa  a un  módulo seguro del sitio  web ­  login ­ y se  proporcionan  las credenciales de  usuario


(RUT y password).
12.  La captura de wireshark muestra que el protocolo HTTPS se está ocupando.
13.   Los  datos  asociados  a   la  solicitud  ya  no  son  visibles  (texto  claro)  [Imagen  4];  no  hay  forma  de
obtener el nombre de usuario y contraseña ingresados previamente.

Imagen 4: Captura paquete HTTPS. Fuente: Captura Wireshark

3.3 Transferencia de archivos mediante FTP

1. Se inicia la captura de paquetes de Wireshark.
2. Por  medio  de  un   cliente  FTP  se  establece  conexión  con  el  servidor  ftp.oracle.com, autenticándose
con un usuario y contraseña.
3. Se  emite  la  consulta  DNS  en  la  cual  se  solicita   la  dirección  IP  asociada  al  dominio  consultado;
esta   petición  se  realiza  usando  el  protocolo  UDP  y   va  dirigido  al  servidor   de  nombres  de  dominio
(DNS Server) que se encuentra registrado en el host en el puerto 53.
4. Se  recibe  la  respuesta   de  consulta  DNS,  en  la  cual  se  recibe  la  dirección  IP,  asociada  al  dominio
anteriormente consultado.
5. Se establece  una  conexión  TCP  entre el  host  y  el  servidor,  utilizando la  IP  del paso anterior. (puerto
local y puerto remoto)
6. Se  puede  apreciar  que  los  datos  de   nombre  de  usuario  y  password  son  visibles  en  el  paquete
capturado, transmitiendo la información en texto claro. [Imagen 5] [Imagen 6]

5
                            
7. Se carga un archivo de 100KB desde el cliente hacia el servidor.
8. Es posible apreciar que también se realiza una petición ARP.

Imagen 5: Vista de nombre de usuario.Fuente: Captura Wireshark

Imagen 6: vista de password en usuario.Fuente: Captura Wireshark

4. Conclusiones

Esta  experiencia  nos  permitió  darnos  cuenta  de  varios  aspectos  de  la  comunicación  en  Internet  que están
ocultos.  Por  ejemplo,  revisamos  el   caso  de  una  petición  HTTP  asociada  a  una  consulta  Web;   si  bien
estamos  interactuando  con  un  servidor   en  particular,  muchos  nodos  de   la  red  participan indirectamente  de
esta   solicitud.  En  muchas   ocasiones  proveen  servicios  de  apoyo,  como  lo  es  DNS,  permitiendo  que  la
comunicación se realice.

Con  respecto  a  los   tiempos  de   respuesta  observados,  el   servicio  que  más  tiempo  demoró  en  entregar
resultados  fue  DNS.  Esto  se  produce  dado  que  la   resolución  del  nombre  de  dominio  no  se  encontraba  en
caché  del  nodo  local  y  tampoco  se encontraba en  el  router  de la red local,  por lo cual se  escaló  la  solicitud
a  un  nodo   en  internet.  La   lentitud  en  la  respuesta  está  dada   por  la  latencia  de  los  nodos  y  los  múltiples
“hoops” que se debieron realizar.

La  comunicación  atraviesa  todas  las  capas  del  modelo  TCP/IP;  no  sólo   intervienen  los  protocolos  de
aplicación  HTTP,  HTTPS  y  FTP  respectivamente,  también  se  utilizan  los  protocolos  TCP  (con  sus
correspondientes estados) [Imagen 7] y UDP (servicio de DNS), junto al protocolo IP.

6
View publication stats

                            

Imagen 7: Diagrama simplificado de estados TCP[4]. Fuente: Wikipedia

El   protocolo  HTTP no  es  un protocolo  seguro por defecto. La  transferencia  de información  es en  texto  plano,
comprobable  en  la  Imagen  6.  En  este  ejemplo,   el  método  GET  contiene  un  RUT  como  uno   de  sus
parámetros:  “index.php?search=15309967&title=Special”;  por  el  contrario,  el  protocolo   HTTPS  provee  una
infraestructura  capaz  de  permitir   la  transmisión  de  información  cifrada,  lo   que  al  final  se  traduce  en  más
seguridad para el usuario final.

 
Imagen 8: captura de información HTTP. Fuente: Captura Wireshark

Lo  anterior   también  fue  replicado  en  la  comunicación  FTP,  ya  que  las credenciales se  transmiten  en “texto
plano”.

5. Referencias
[1] Wireshark User's Guide http://www.wireshark.org/docs/wsug_html_chunked/index.html
[2] Computer networking A top a down approach, sexta edición, Kurose Ross.
[3] Referencias a RFC’s, The Internet Engineering Task Force (IETF), http://www.ietf.org/rfc/
[4] Diagrama de estados TCP, Wikipedia, http://en.wikipedia.org/wiki/Transmission_Control_Protocol

Вам также может понравиться