Mostrando las entradas con la etiqueta Wireshark. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Wireshark. Mostrar todas las entradas

9/6/17

Medición de Broadcast con Wireshark

Uno de los beneficios de utilizar switches administrables que soportan VLANs, es reducir los broadcast en una red, por su forma de operar un broadcast en una red se propaga por todo el dominio de capa 2, los routers (que operan en capa 3) efectivamente limitan el dominio de broadcast, otra manera de limitarlo es implementando VLANs, el objetivo de este post, no es explicar que es un dominio de broadcast, o como implementar VLANs, sino, asumiendo que se entienden estos términos, como podemos tener una estimación del tráfico de broadcast en una LAN.

Precisamente esta es la duda que planteaba un estimado lector la pregunta literalmente es la siguiente: Como se podría medir que el broadcast se esta reduciendo en la red gracias a la ayuda de las VLAN? mi sugerencia fue utilizar wireshark, para tomar un estimado de la cantidad de broadcast, idealmente antes de implementar VLANs y luego después de implementadas, en este post me gustaría ampliar estos conceptos proponiendo un método con el que podríamos obtener un estimado de la cantidad de broadcast en una LAN y específicamente en un escenario como el planteado por el lector, validar si efectivamente el nivel de broadcast se esta reduciendo.

28/2/17

Wireshark Captura y visualización de Trafico de Red


Wireshark es un analizador de protocolos open source muy popular, en este blog he escrito varios artículos sobre este programa, que aunque basados en versiones anteriores del mismo, aun siguen siendo validos.

En esta oportunidad les comparto un video realizado con la versión más reciente de Wireshark (2.2.4), esta dirigido a personas que tienen un primer contacto con esta aplicación, e ilustra el proceso de captura de paquetes, una explicación de la interfaz en la que se despliegan los paquetes y algunos filtros básicos para el análisis del trafico de red.

1/5/08

Nanspy Worm analizado con Wireshark

Los lectores mas fieles del blog recordaran que en septiembre del 2007, mi laptop fue infectada por el gusano Nanspy, un usuario me pidio colocar algunas pantallas del proceso de deteccion del gusano utilizando Wireshark y eso es lo que ha motivado este post, el cual ademas de ilustrar los pasos que me permitieron detectar la presencia de actividad anomala en mi laptop, tambien permite ver al Wireshark en accion y el uso de Follow TCP Stream una de las funciones muy utiles para en analisis de capturas en Wireshark.

Como se describe en el post original a finales de Agosto del 2007 empeze a obsever un comportamiento extraño en mi laptop (actividad en la tarjeta de red sin tener ninguna conexion a internet abierta), lo que me motivo a ejecutar Wireshark, tratando de encontrar las causas de este comportamiento extraño, practicamente con solo iniciar la captura pude darme cuenta que algo anomalo estaba ocurriendo, ya que se observo el siguiente trafico. Nota: con un click sobre la figura puedes verla en tamaño normal

Lo que se observa en la figura anterior, es el tipico comportamiento de un gusano tratando de encontrar victimas para infectar, la ip 192.168.0.148 es la direccion de la laptop y esta intentando establecer conexion con otros host que pertenecen al mismo rango (asumiendo que la mascara es 255.255.0.0), como se puede observar en la columna info, la laptop esta enviando paquetes con el bit SYN activado, en TCP es la primera accion para establecer contacto con el host de destino, algo mas que se observa en esta figura es que estos intentos son hacia el puerto 135, por la configuracion de mi red, ninguna de estas direcciones era alcanzable, de haberlo sido, se podria haber observado los siguientes pasos del gusano para tratar de infectar a otros hosts. Si esta hubiera sido una red corporativa, la probabilidad de infectar otros hosts hubiera sido muy alta, digo, si infecto a una maquina es muy probable que haya muchas maquinas mas vulnerables en la red. Habiendo visto esto, sabia que la maquina estaba infectada, en un tiempo posterior realize una nueva captura, pero esta vez con la intencion de ver el comportamiento desde el momento que se iniciaba la pc, para ello encendi la maquina sin conexion a la red, ejecute Wireshark y luego conecte el cable de red, de esta manera pude capturar lo que ocurria desde el inicio, vale recordar que esta pc ya estaba infectada, es decir lo que aqui esta ilustrado es el comportamiento de la maquina infectada no el proceso de infeccion. A continuacion se muestra la siguiente captura.


En esta captura se pueden observar al gusano en accion, los paquetes 3, 6 y 7 corresponden al TCP Hand-shake entre la laptop y la direccion 87.118.110.78 (en adelante la direccion sospechosa), es el procedimiento normal de cualquier conexion TCP, no voy a entrar en detalle ya que no es el proposito de este post, en el paquete 7 la conexion ya esta establecida y a continuacion en el 8 se observa algo inquietante, la laptop hace una peticion http HEAD y en el paquete 13 se observa la peticion http GET, esta tratando de obtener de la direccion sospechosa el archivo gate.exe, esto no suena nada bien, para observar con mayor detalle selecciono el paquete trece y a continuacion en el menu de Wireshark selecciono Analyze Follow TCP Stream, con este comando se despliega la data que finalmente es observable por la capa de aplicacion de la pila TCP/IP en un stream en particular, en este caso estoy interesado precisamente en observar que paso con esta peticion GET (y de paso tener mas detalles de la misma), el resultado del Follow TCP Stream se observa a continuacion


Lo que puedo deducir de este seguimiento es que la laptop esta tratando de bajar una actualizacion del archivo gate.exe ya que se trata de un GET condicional, otra pista se observa en la cuarta linea donde se ve User-Agent: mmsvc32.exe, finalmente observo que mi maquina ya tiene instalado este archivo, porque la respuesta al GET fue un HTTP/1.1 304 Not Modified, que es gate.exe y mmsvc32.exe, en estos momentos no tengo ni idea, hay que seguir investigando. Bajando un poco mas en el archivo de captura, encuentro otros GET sospechosos, a continuacion esta la figura que muestra el resultado de ejecutar nuevamente Follow TCP Stream sobre los paquetes que muestran nuevas peticiones GET.


Aqui se observa algo muy similar, nuevamente la laptop reviso para ver si hay alguna actualizacion de los archivos bbot.exe y psvc.exe, nuevamente aparece la linea mmsvc32.exe, como en el caso anterior, los archivos ya existen en la pec porque la respuesta es 304 Not Modified. Poco despues de estas interacciones, la laptop inicia nuevamente un SYN Scan, solo que esta vez ya no es es sobre un rango de direcciones locales sino un rango de direcciones publicas, mmm, este gusano en realidad esta tratando de propagarse, a continuacion la figura de estos intentos (afortunadamente fallidos) de infectar otro rango de direcciones


Ahora cuento con informacion suficiente para investigar que esta pasando, una busqueda de bbot.exe en google, me lleva hasta una pagina que me permite concluir que se trata de Nanspy, en la documentacion encontrada se hace referencia a mmsvc32.exe (mm, donde habia oido de este archivo?, por supuesto, lo vi en Wireshark), mi maquina esta infectada!. Esta fue la forma como utilize Wireshark para encontrar que estaba pasando con mi maquina, tal vez no sea la mejor manera, pero me sirvio, si observas un escaneo SYN como el de la figura reciente, investiga mas a fondo, lo mas seguro es que un gusano infecto tu PC.

22/2/08

Wireshark 101 - IO Graphing

Una de las características deseadas en un analizador de paquetes, es la capacidad de visualizar los datos de manera gráfica, esto es especialmente crítico a la hora de presentar un reporte con los hallazgos de un análisis a personas cuya especialidad no son las redes. Una gráfica puede explicar mucho mejor una situación que una serie de números sin sentido.

En este aspecto, mi opinion, es que Wireshark se queda un poco atrás, analizadores comerciales como el sniffer pro de Network General, tiene muy buenas opciones de gráficos para generar reportes que se ven muy bien y que dicen mucho, sin embargo, las opciones para gráficar que tiene Wireshark, si bien no son muy vistosas, si son utiles y vale la pena hecharles un vistazo ya que pueden ayudar, tanto para el análisis, como para el momento de presentar un reporte sobre los hallazgos.

Existen diferentes tipos de gráficos en Wireshark, como el flow graph que permite visualizar gráficamente el flujo de una conexión tcp/ip (como la muestran en los libros), o el TCP Stream Graph, que cuenta con algunos tipos de gráficos orientados más al análisis, pero que también pueden ser utilizados para reportes, sin embargo, en esta oportunidad, como el titulo lo indica, nos concentraremos en las graficas de entrada y salida (IO Graphs), estas nos permiten visualizar, el tráfico total que esta pasando por nuestro punto de medición en un momento dado.

Para activar esta gráfica, es necesario ir al menu statistics -> IO Graphs, como lo muestra la figura abajo, esto por supuesto una vez que hemos realizado una captura, es decir, la gráfica se generara a partir de paquetes previamente capturados.


En la siguiente figura, puede verse el resultado, sobre esta gráfica quiero hacer varias observaciones, en primer lugar, como pueden observar, esta el área de la gráfica, en esta en el eje x se muestra el tiempo, en este caso, la captura fue por aproximadamente dos horas, por lo que para ver la gráfica como esta aca, se modifico el campo tick interval a 1 Min (el default es 1 seg), en general este parametro se puede modificar de acuerdo al nivel de detalle que se desea tener. En el caso del eje Y, también se modifico la unidad, del default (que es Packets/tick) a Bytes/Tick. En el caso del eje Y, también esta una opción avanzada que permite unas opciones de análisis más potentes y que probablemente analizemos en una segunda parte.


Además de poder ajustar los ejes X y Y, para tener una mejor representación del tráfico, el verdadero potencial de estas gráficas, esta en la posibilidad de aplicar filtros, por ejemplo en el caso ilustrado en la figura anterior, se ha aplicado un filtro para ver cuanto del tráfico ilustrado en dicha gráfica es http, como se puede ver a la derecha de la pantalla, la gráfica 2 tiene aplicado el filtro http, los filtros que se utilizan acá, son filtros de visualización, aqui http es un filtro muy sencillo, pero en general se pueden utilizar filtros muy elaborados que permitan una mejor comprensión del problema que se esta analizando, para activar el filtro se presiona el boton correspondiente (Graph 2, en este caso) y como se puede ver en la figura, aparece con color rojo el tráfico http, la Graph 1, muestra el tráfico total en color negro. Se pueden generar hasta 5 gráficas, para activar/desactivar una gráfica, basta con presionar el boton correspondiente a dicha gráfica.

Finalmente menciono el boton Save, este esta disponible a partir de la versión 0.99.7 (la más reciente, que dicho de paso, si aun no has bajado, hazlo ya, puedes encontrala en el sitio de wireshark. Esta opción permite salvar la gráfica, en varios formatos gráficos, en una prueba que hice me dio un error, pero igual salvo la gráfica.

Este no es ni por mucho un tutorial avanzado de gráficas de Wireshark, el propósito es dar a conocer esta opción (para aquellos que aun no la conocian), en futuros post se estara haciendo referencias a las gráficas IO, por lo que vale la pena conocerlas, por lo demás te animo a experimentar con ellas.

Para los que quieren ver aplicaciones de esta gráficas en acción, hay un par de recursos interesantes, lamentablemente en Ingles, para los que lo entienen, perfecto, los invito a revisarlos, para los que no, también los invito a ver este par de videos, veran que las gráficas IO de Wireshark, tienen mucho potencial, estos son videos de Laura Chappel, la fundadora de WiresharkU, asi que insisto, vale la pena verlos, a continuación los enlaces:

IO Graphing

Advanced IO Graphing

Eso es todo por el momento, gracias a los estimados lectores que han permanecio fieles al blog pese a la larga ausencia y espero encontrarlos por acá en futuros posts, como siempre, los comentarios son bienvenidos.

3/9/07

Nanspy Worm en mi laptop

Este post, es lo que llamaria un Estudio de Caso, sobre la detección y eliminación de un virus tipo Worm (gusano), y de paso un ejemplo práctico del uso de Wireshark en una situación de la vida real.

Resulta que la semana pasada la laptop de mi casa fue infectada por un virus, la conexión a Internet, empezo a dar problemas de manera intermitente, por lo que como acostumbro, decidi ejecutar Wireshark, para tratar de determinar el problema, al hacerlo, pude observar que la pc establecia conexión a algunos sitios en internet, y además estaba tratando de establecer conexión con todo el rango de Ips de la subnet de mi PC (es una red clase B, por lo que facilmente podría pasar varias horas escaneando las 65,534 posibles host y efectivamente dejando mi conexión a Internet practicamente inutilizable).

Inmediatamente desconecte el cable de red, y como no tenia el tiempo suficiente para lidiar con el problema, salio al rescate una distribución de linux en livecd, si eres lector frecuente de este blog, podrás imaginar, que lo que utilice fue Backtrack 2.0 por supuesto, no podia ser otro, con este estuve navegando en internet (que en realidad resulta ser la función principal de esta laptop), hasta que el sabado finalmente tuve tiempo para lidiar con el problema.

Pero antes de describir como logre solucionar el problema, quisiera comentar, porque un virus tuvo chances de infectar mi pc, la respuesta es muy sencilla, recientemente tuve que formatear la PC, y por ser algo viejita (Pentium III 650 MHZ, con 384 MB de RAM), decidi instalarle Windows 2000, con Service Pack 3 (que era el que tenia disponible) y pues aun no había tenido tiempo de instalar un antivirus, ni patchs de seguridad que fueran pertinentes, asi que utilizar un sistema operativo que para estas alturas ya esta casi obsoleto, y sin todos los parches de seguridad apropiados, es una invitación al desastre.

Valga decir, que estoy conciente de los riesgos y no tenia información trascendental en la PC, asi que la posibilidad de un virus era un riesgo que podía correr (aunque honestamente no estaba en mis planes que un virus infectara la máquina).

En cuanto a la desinfección, la estrategia fue sencilla, encendi la máquina sin conexión a la red y active el wireshark, luego conecte el cable y observe el tráfico que estaba capturando, nuevamente pude ver que la PC se estaba conectando a algunos sitios de red, bajo algunos archivos y luego empezo a escanear una subnet clase B buscando otros hosts para infectar (el tipico comportamiento de un worm), uno de los archivos que la pc bajo se llamaba bbot.exe (suena intimidamente no?), así que con esta información volvi a encender la máquina esta vez ejecutando Windows ME (si, esta laptop tiene los dos sistemas operativos, por razones que no vale la pena discutir en este post), ejecute internet explorer e hice una busqueda en Google, en poco tiempo, descubri que este es un archivo asociado al virus Nanspy, y esto me llevo a una página en Trend Micro donde se explicaba que hacía el virus y lo más importante como desinfectarlo.

Al infectar una PC, este virus instala un archivo en la carpeta del systema este archivo se llama mmsvc32.exe, también crea una llave en el registro, para asegurar su ejecución cada vez que se reinicie el sistema. Para eliminar el virus, es necesario detener el proceso MMSVC32.EXE, y también desinstalarlo del registro, el proceso se puede detener ejecutando el taskmgr (en mi caso, el proceso no se estaba ejecutando o no era visible desde el taskmgr), para eliminar el archivo seguir las siguientes instrucciones:


1. Ejecutar regedit

2. Localizar la llave HKEY_LOCAL_MACHINE>SOFTWARE>Microsoft>Windows>CurrentVersion>Run

3. En el panel derecho encontrar y eliminar la siguiente entrada:

Microsoft Network Services Controller = "%System%\mmsvc32.exe"


Con esto el virus se ha eliminado del sistema, pero el sistema sigue siendo vulnerable, y en cualquier comento puede ser infectado de nuevo, asi que el paso final, es instalar el parche pertinente, de acuerdo con la información proporcionada por Trend Micro, este virus se vale de una vulnerabilidad descrita en el boletin de seguridad de Microsoft MS03-039, donde también esta disponible el parche.


Siguiendo los pasos anteriores, logre eliminar el virus de la PC, he estado monitoreando el tráfico y ahora todo se ve bien, sin embargo, esta experiencia recuerda muchos puntos importantes que hay que tomar en cuenta, sobre todo, cuando las computadoras estan en un ambiente crítico.


1. Es imporante mantener el sistema operativo con los parches de seguridad al día, suena tedioso, a veces hasta imposible mantenerse al día con la aplicación de parches de seguridad, pero es inevitable, aún con los parches al día es probable que tengamos problemas, pero es necesario hacerlo.


2. Se debe ejecutar al menos un antivirus en la PC, y actualizarlo frecuentemente, nuevamente, podría no ser suficiente, pero es necesario hacerlo.


3. Extremar precauciones cuando se trata de sistemas operativos obsoletos, o para los que el soporte ya es limitado.


4. Es imporante disponer de alguna herramienta como Wireshark, que permita visibilidad en el tráfico y ejecutarla periodicamente.

5. Utilizar un Firewall para protección de la red, obviamente esto por si solo no es una solución, como mínimo debe ir acompañado de adecuadas políticas de uso de Internet y de recursos de red y debe monitorearse constante los logs.

6. Es necesario contar con un sistema de detección de intrusos, como Snort, que puede detectar actividad sospechosa en la red, especialmente para redes con un significativo número de computadoras.


Finalmente quiero aclarar que no soy experto en seguridad, conocimientos básicos en redes y sentido común, pueden ayudar a detectar problemas con gusanos informáticos, sin embargo, si no tienes mucha experiencia, y tu red tiene aplicaciones críticas, o información delicada, que puede representar la vida o la bancarrota de tu organización, lo mejor es buscar ayuda profesional y tomarse muy en serio el tema de la seguridad informática.

9/8/07

Wireshark 101 - Estadísticas Parte I

Continuando con la serie de post sobre Wireshark, en esta oportunidad me gustaría comentar sobre las estadísticas disponibles en Wireshark, estas tienen muchas aplicaciones prácticas para conocer por ejemplo que protocolos hay presentes en la red, o que hosts son los que estan consumiendo el mayor ancho de banda.

En esta primera parte, se describen dos tipos de estadística, reservando algunos más para futuros postst, el primero de ellos es la opción Protocol Hierarchy y Conversations, ambas disponibles desde el menú Statitiscs.

La opción de Protocol Hierarchy despliega todos los protocolos detectados en la captura, indicando el porcentaje encontrado de cada uno, por ejemplo en la figura abajo, muestra que para esta captura en particular, el 100% del trafico es ethernet, lo cual no es de sorprender ya que ethernet es el protocolo dominante, aunque si se captura con una máquina que tenga la capacidad de tener visibilidad en una red WLAN se encontraria un porcentaje diferente.



En el caso ilustrado en esta figura, también se puede ver que el protocolo dominante es IP con el 97.3%, el otro 0.3% corresponde a ARP (no mostrado en la figura). En el siguiente nivel, el protocolo dominante es el TCP con 94.87%, el resto es tráfico UDP, desglosando el TCP, se observa que el http ocupa casí el 10% del tráfico.

Espero que este breve ejemplo sirva para ilustrar el potencial de esta estadística, para identificar que protocolos son los que más estan consumiendo el ancho de banda, también podríamos detectar protocolos que en realidad no deberían estar pressentes, por ejemplo si se tiene restricción sobre algun protocolo específico, acá se puede detectar con mayor facilidad y observar el impacto que tiene sobre la red.

La segunda estadística a describir en este post, es la de conversations, esta proporciona información sobre las conversaciones presentes en la red, con quien se esta comunicando cada host, en el caso especifico ilustrado se puede observar que se detectaron 25 conversaciones ethernet, 197 conversaciones ipv4, 1141 conversaciones tcp y 779 conversaciones udp.



En el ejemplo ilustrado se pueden ver las conversaciones de ipv4, para cada conversación es posible ver la cantidad de packetes y byte transmitidos en cada dirección, esto puede ayudar a identificar que hosts son los que estan acaparando más el ancho de banda, es posible ordenar en orden ascendente o descendente, en este caso, se ordeno por la mayor cantidad de bytes (observar el pequeño triangulo en el campo bytes), con un clic en cualquiera de los campos se ordena en basea a ese parametro, otro click en ese mismo campo invierte el orden, por ejemplo otro click en bytes, ordeara en forma ascendente.

En la parte inferior aparece un boton de copy, con este se copia el contenido de estadisticas y se puede pegar en un documento de texto con todos los valores separados por comas, por lo que posterioremente es posible abrir el archivo en excel o en cualquier hoja de calculo, para genera gráficas, o hacer un análisis más a fondo.

Para que las estadísticas tengan sentido, es importante situar a wireshark en una ubicación que haga sentido y hay que recordar que estas estadísticas serán utilies de acuerdo al contexto de captura, por ejemplo, si unicamente se esta capturando tráfico entre dos hosts, la estadística será valida para estos dos hosts, si se esta capturando tráfico en un enlace de salida, esta estadística tendrá sentido en el contexto del tráfico que esta pasando por ese enlace, el mensaje aquí es que hay que interpretar las estadísticas de acuerdo a su contexto.

Eso es todo por el momento, en al menos dos post futuros se discutiran más opciones para análizar estadísticas de la red con Wireshark.

20/7/07

Wireshark 101 - Time Display Format

En este post, voy a describir de manera breve, las opciones disponibles en Wireshark, para las referencias de tiempo, estas son de mucha utilidad a la hora de analizar los paquetes, de manera predeterminada Wireshark despliega el tiempo, tomando como referencia el tiempo en el que se inicio la captura, dependiendo de lo que estemos analizando, podría no haber necesidad de cambiar esto, sin embargo, cuando el tiempo de referencia es crítico, se necesitan otras formas de poder expresar el tiempo, y es lo que se analizara en este post.

Las opciones de tiempo, se encuentran en el menú View -> Time Display Format esto despliega un cuadro adicional donde se muestran las diferentes opciones que se describen a continuación



Date and Time of Day - Muestra la fecha y la hora, puede ser de utilidad, cuando le fecha y hora en la que ocurrio el evento son importantes, por ejemplo en análisis forense de paquetes.

Time of Day - Unicamente muestra la hora del día, para utilizarlo en casos en los que estamos analizando un evento que ocurre a determinadas horas del día

Seconds Since Beginning of Capture - Esta es la opción predeterminada, muestra el tiempo tomando como referencia el inicio de la captura.

Seconds Since Previous Captured Packet - Muestra el tiempo transcurrido tomando como referencia el paquete previo, es decir, muestra las diferencias de tiempo entre cada paquete capturado, muy útil para troubleshooting de problemas de desempeño en la red, ya que se puede identificar que equipos están respondiendo con tiempos altos.

Seconds Since Previous Displayed Packet - Sin filtros de visualización aplicados, no hay diferencia entre la opción anterior y esta, sin embargo, es de utilidad cuando tenemos aplicado un filtro ya que permite analizar diferencias de tiempo entre los paquetes que se están desplegando en pantalla.

Seconds Since Epoch - Muestra el tiempo transcurrido tomando como referencia inicial el 1 de enero de 1970, esta es una opción relativamente nueva en Wireshark, la verdad no le he utilizado antes, se me ocurre que puede ser de utilidad al comparar capturas en diferentes tiempos, ya que provee un tiempo de referencia común, puede ser de utilidad en análisis forenses.

Adicionalmente se puede variar la precisión de la medición de tiempo, en segundos, decimas de segundo, centesimas de segundo, milisegundos, microsegundos y nanosegundos.

Otra característica de mucha utilidad en la medición de tiempo, es la posibilidad de establecer referencias en puntos determinados, por ejemplo al inicio de una transferencia de archivos, o de una petición de una página web, para esto, selecccionar el paquete que queremos establecer como referencia y luego ir a menú Edit -> Time Reference (toggle) o alternativamente ctrl + T, la ventaja es que se pueden establecer diferentes referencias de tiempo, esta opción únicamente tiene sentido utilizarla con la opción Seconds Since Beginning of Capture, de hecho si esta selecciónada otra opción al tratar de establecer un Time Reference, aparece un cuadro de dialogo que da la opción de volvera setear Seconds Since Beginning of Capture.

Así que sin más, los invito (si no lo han hecho antes), a experimentar con los diferentes formatos de despliegue del tiempo, les aseguro que lo utilizarán con más frecuencia de lo que se imaginan, si has usado antes estas opciones y han encontrado combinaciones para despliegue de tiempo o escenarios en los que una combinación en particular puede ser de utilidad para otros lectores, pueden dejar un comentario, será bienvenido.

11/7/07

Wireshark 101 - Capturando tráfico utilizando una maquina en medio

Una de las claves en el uso de Wireshark, es donde ubicarlo para poder capturar tráfico, en el artículo Wirshark 101 – Como capturar tráfico, se describen tres opciones dependiendo de lo que se tenga disponible, un hub, un switch administrable o un network tap.

Los anteriores, no son los únicos métodos de capturar tráfico, en el Wiki de Wireshark se describen algunos más y en esta oportunidad quisiera profundizar en uno de estos métodos, capturar tráfico, utilizando una maquina en medio (MIM - Machine in the Middle), utilizando la opción de conexión de puentes (bridging) de Windows XP.

Con este método, una laptop con dos tarjetas de red, se convierte en un puente (bridge), o en otras palabras en un switch de dos puertos, y podremos ver el tráfico que pasa a través de cada tarjeta, y capturarlo con Wireshark, este escenario esta ilustrado en la siguiente figura.



En la figura anterior, en a, se ilustra un escenario muy común, desaeamos analizar el tráfico entre una PC, y un servidor, que estan conectadas a través de un switch no administrable (o es un switch administrable, pero no tenemos acceso a configurarlo o no soporta el port mirroring), la primera opción sería instalar el wireshark en la pc, o en el servidor, pero en muchos casos esto no es posible, en esta situación, podemos utilizar las conexiones de puente de XP, en una laptop con dos tarjetas de red, en este caso, la laptop se convierte escencialmente en un switch de dos puertos, el unico requisito es que el switch tenga dos puertos ethernet, en mi caso, probe la configuración en una laptop con un ethernet integrado, y una tarjeta pcmcia.

La configuración de esta solución es bastante sencila, se ingresa a conexiones de red, se seleccionan las dos tarjetas con las que se hará el puente, se da un click con el botón derecho y en el menú emergente, se selecciona, conexiones de puentes (o bridge connections si el OS está en ingles), al dar este click aparece el siguiente mensaje.


Despues de unos segundos, nuestro puente esta listo, y lo podemos comprobar ya que en conexioines de red, muestra un nuevo elemento, como se ilustra en la siguiente figura.



Finalmente, debemos configura wireshark para poder capturar el tráfico en esta interface virtual, en las opciones de captura de wireshark, el puente aparece como una interface adicional, en la siguiente figura, la interface del puente es la marcada como Microsoft MAC Bridge Virtual NIC, capturando en modo promiscuo con esta interface, se podrá ver el tráfico que pasa de una tarjeta a otra, en otras palabras, el tráfico que queremos capturar.


Luego de la captura, podemos desactivar el puente, (click derecho sobre el icono del puente en conexiones de red y click en desactivar), o eliminarlo definitivamente (click derecho y luego la opción eliminar).

La opción de conexiones de puentes, esta disponible en Windows XP y Windows 2003, supongo que también en Windows Vista, pero no he tenido la oportunidad de verificarlo, si deseas conocer más sobre este opción y diferentes usos prácticos para una red casera, puedes consultarlo directamente en el sitio de Microsoft.

6/7/07

Wireshark 0.99.6 Disponible

Para todos los usuarios de Wireshark, el día 5 de julio fue liberada la versión más reciente de Wireshark, la nueva es la versión 0.99.6.

Esta nueva versión no introduce cambios revolucionarios, los detalles específicos se puden encontrar aquí, si bien no hay cambios tan trascendentales, sugiero a los usuarios del programa, actualizar a la nueva versión, ya que siempre introduce corrección de bugs, algunas características nuevas, soporte para nuevos protocolos y actualización del soporte de algunos protocolos.

Entre las características nuevas que me llamarón la atención, esta la posibilidad de guardar macros de filtros de visualización, en corto esto significa poder resumir un comando de filtrado muy extenso en una frase corta significativa, más detalles se pueden encontrar aquí.

Adicionalmente, esta versión nueva, tiene soporte para otros formatos de archivos de captura, ahora es posible abrir archivos mp3, interesante, esto no lo he probado, pero seguro que lo voy a hacer pronto.

Así que sin pensarlo más, los invito a bajar esta actualización de Wireshark.

20/6/07

Wireshark 101 - Recursos del Wiki

En este Post, me gustaría comentar sobre algunos recursos del Wiki de Wireshark que considero que pueden ser de mucha utilidad para los lectores de este blog.

Por su propia naturaleza, un Wiki permite a muchos autores editar un documento, asi que este es un recurso vivo, con mucha información interesante, y si no lo habías hecho antes, recomiendo darle una visita. a Continuación se describen algunos de los documentos que he encontrado interesantes y con toda seguridad hay más.

El primero que voy a mencionar es la página con información sobre Capture Setup (como en otras oportunidades las páginas del wiki estan en inglés), acá se proporcionan 4 pasos para poder iniciar la captura de paquetes, el paso 3 aplica para capturar el tráfico de la máquina en la que se tiene instalado el wireshark, el paso 4 para capturar tráfico destinado a otras máquinas y el paso 5 da algunas sugerencias para capturar tráfico remotamente, al final hay varios links para más información, por ejemplo el setup para capturar tráfico Wireless, capturar tráfico en VLANs y algunos otros interesantes, capturar tráfico de Bluetooth? bueno, de acuerdo con el wiki, no esta soportado del todo, pero algo se puede analizar

Otra página recomendable, es la que describe como setear el Wireshark para capturar tráfico en una red ethernet (por muchisimo la técnología LAN más utilizada), este es un buen recurso para los que encontraron interesante mi post como capturar tráfico, ya que describe métodos adicionales para poder capturar tráfico, uno que me parecio muy interesante y que espero poner a prueba próximamente es el de capturar insertando una pc (con dos tarjetas de red), entre las dos fuentes de tráfico (referido como Capture using a machine-in-the-middle, en esta página del wiki). También se describen algunos métodos más propios de hackers que otra cosa, recomiendo muchisima precaución al utilizar estos métodos (Capture using a MITM (Man-In-The-Middle) software y MAC Flooding) ya que sus resultados pueden ser impredecibles.

Probablemente estas con todo el deseo de abrir el wireshark y empezar a examinar paquetes, pero también es probable que no cuentes con el permiso para hacerlo en tu red, o simplemente no hay tráfico interesante que examinar, pues bien, no hay más excusas ya que en el Wiki también puedes bajar capturas de paquetes, hay un bonito listado y links hacia donde se pueden obtener más, es una manera interesante de estudiar diferentes protocolos. Conocer como se comporta un protocolo normalmente ayuda para detectar comportamientos anómalos a la hora de resolver problemas.

Hay muchos recursos más, sin embargo por razones de tiempo y espacio, unicamente voy a mencionar una más, y es una página con links de ayuda para resolución de problemas de redes, no es muy amplia, pero puedes encontrar algun recurso que sea de utilidad.

Si encuentras algún recurso que te sea de utilidad y consideras que puede ayudar a otros, no dudes en compartir tus experiencias dejando un comentario.

18/6/07

Wireshark 101 - Filtros de Visualización Parte II

Como se menciono en la parte I, los filtros de visualización son muchisimos, sin embargo existen muchas facilidad para poder construir filtros muy potentes, y encontrar esos paquetes sospechosos o que nos estan generando problemas en la red.

En esta parte, se describen algunas opciones que nos proporciona Wireshark, que nos facilitan mucho construir filtros.

Existe una manera muy fácil de determinar que filtros se pueden aplicar para un campo específico dentro de un paquete, como habrán notado, la pantalla principal de Wireshark consta de tres areas, en la parte superior, estan los paquetes capturados, con información sobre el tiempo, el origen, destino, protocolo y una línea con información básica del paquete, cuando un paquete se selecciona en la la parte superior, en la parte media se muestra el detalle de los protocolos presentes y en la parte inferior, se muestran los valores hexadecimales contenidos en el paquete.



Supongamos que quisieramos determinar, que páginas web se han accesado utilizando el método GET de http, como lo muestra la figura a continuación se tiene seleccionado el paquete No 7, que muestra la petición de una página web con el método GET. Desglosando el protocolo http en la parte media de la pantalla, se observa como parte del paquete el "Request Method", al seleccionar esto, se observa en la parte inferior izquierda de la pantalla de Wireshark (que he resaltado con un ovalo para facilidad), se observa el filtro que reconoce Wireshark para esta porción del paquete, en este caso se ve que el filtro apropiado sería http.request.method y nos indica que es de 3 bytes.






Así que ahora podríamos aplicar el filtro http.request.method == GET y obtendríamos todas las peticiones http de páginas web, utilizando el método GET.


Una forma alterna de llegar al mismo resultado, es utilizando el botón Expression que aparece a la derecha del área para escribir el filtro de visualización, al hacerlo nos abre una pantalla enl a que se pueden construir expresiones de filtrado, a continuación se muestra esta pantalla.


En el área izquierda aparece el Field Name, es un listado bastante grande, pero si sabemos que protocolo estamos buscando, se facilita encontrar lo que queremos, por ejemplo en este caso, escribiendo http me desplego este listado donde pude seleccionar http.request.method, al tener esto seleccionado, en la columna Relation aparecen todas las expresiones disponibles para este campo especifico, finalmente en la parte derecha se puede escribir el valor del filtro, en este caso en la columna de enmedio seleccione == y en la derecha escribi el valor GET, con esto obtenemos la expresión de filtrao http.request.method == GET, luego dar un clic en OK, y al regresar a la pantalla principal, dar un clic en Apply para aplicar el filtro.

Como en el caso de los filtros de captura, es posible guardar las expresiones más utilizadas, esto se puede hacer dando un clic en el boton Filter ubicado a la izquierda del área donde se escribe el filtro, por ejemplo si tenemos aplicado el filtro anterior, y deseamos guardarlo, unicamente dar un clic en Filter, poner un nombre al filtro, en el campo filter string ya debe aparecer el filtro que tenemos aplicado, un clic en Apply y listo.

Así que de esta manera sencilla podemos construir filtros de visualización, como lo he mencionado en oportunidades anteriores, en realidad el potencial de Wireshark solo lo vamos a poder aprovechar en la medida que estemos familiarizados con los protocolos, ya que al conocer las interioridades de cada protocolo, nos ayudara a construir expresiones de filtrado más especificas y podremos realizar análisis más efectivos.

12/6/07

Wireshark 101 - Filtros de visualización Parte I

Es tiempo de reanudar el tutorial sobre Wireshark, el silencio de las ultimas semanas ha sido por cuestiones de trabajo, si bien no puedo prometer actualizaciónes tan frecuentes, al menos voy a hacer mi mejor esfuerzo.

En esta oportunidad es el turno de los filtros de visualización (display filters), estos son los filtros que nos sirven para analizar el tráfico capturado, y son diferentes a los filtros de captura, én este caso, los filtros de visualización son más amplios y más potentes, incluso son más fáciles de aplicar, y son de mucha utilidad, para analizar el tráfico capturado.

En esta primera parte, quisiera mencionar los aspectos básicos de los filtros de visualización, empezando por el área donde podemos escribir un filtro, esto se ilustra en la siguiente figura:





Como puede verse en la figura, el área para escribir un filtro de captura es la ubicada abajo de la barra de herramientas. Para los filtros de visualización Wireshark nos proporciona una retroalimentación visual, si la expresión de filtrado que escribimos es correcta, el area se colorea en verde (como el caso del filtro ilustrado en la figura previa) si la expresión es incorrecta, el area se colorea en rojo, y al tratar de aplicarlo obtendremos un mensaje de error.

Los operadores que podemos utilizar para construir expresiones de filtro son los siguientes:

> ó gt Mayor que
< ó lt Menor que >= ó ge Mayor o igual que
<= ó le Menor o igual que == ó eq Igual a != ó ne No igual a Hay otro par de operadores, contains y matches que los reservaremos para otra oportunidad.

Dicho lo anterior, solo nos resta empezar a escribir filtros de visualización, hay busquedas que pueden ser muy sencillas y similares a los filtros de captura, por ejemplo:

arp - Para visualizar todos los paquetes de arp
http - Para visualizar paquetes cuyo protocolo de aplicación es http
tcp - Para visualizar todos los paquetes tcp
udp - Para visualizar todos los paquetes udp
icmp - Para visualizar paquetes icmp por ejemplo paquetes de ping.

Si lo que deseamos es filtrar direcciones especificas podemos utilizar los siguientes filtros:

ip.addr == 192.168.0.1 - Buscar paquetes cuyo ip de origen o destino es 192.168.0.1
ip.src == 192.168.01 - Buscar paquetes cuyo ip de origen es 192.168.0.1
tcp.port == 80 - Buscar paquetes tcp cuyo puerto de origen o destino es el 80
tcp.srcport == 80 - Buscar paquetes tcp cuyo puerto de origen es el 80

Los filtros de visualización son muchos, así que no tiene mucho sentido listarlos, sin embargo en la segunda parte vamos a estudiar como facilitarnos la vida al escribir filtros de visualización para poder encontrar justo ese paquete que estamos buscando.

2/5/07

Wireshark - Filtros de Captura Parte III

Para esta tercera parte, en lugar de entrar en detalladas explicaciones, sobre la construcción de filtros, únicamente me gustaría hacer mención de algunas fuentes donde se puede obtener más información, y también notar algunos filtros predeterminados que tiene Wireshark.

Como se podrá haber visto en la segunda parte de este tutorial, los filtros pueden convertirse en algo complejo, para evitar estar escribiendo una y otra vez, largos filtros de captura, Wireshark nos proporciona la opción de asignarle un nombre y guardarlo, esto se puede hacer dando un click en la ventana de opciones de captura, en el botón Capture Filter: el cual despliega el siguiente cuadro de dialogo:




Para agregar un filtro personalizado, escribir un nombre descriptivo en el campo Filter name, luego escribir la sintaxis del filtro en Filter string, y finalmente dar un click en New, en este momento se agrega el nuevo filtro al listado de filtros disponibles, Wireshark ya incluye los que se muestran en esta pantalla.

Finalmente quiero agregar un par de links de lugares donde se puede obtener información, en la página principal de Wireshark, hay un link hacía el Wiki, en este puede encontrarse bastante información sobre el uso de wireshark, esta disponible una página con información sobre filtros de captura, que incluye algunos ejemplos interesantes, por ejemplo como construir un filtro para observar el tráfico de la red en busca de virus tipo worm.

Otro lugar muy interesante es un tutorial sobre filtros de captura, de Mike Horn (lamentablemente al momento de editar este post la página no esta disponible, estaré monitoreandola porque supongo que es algo temporal, ya que ayer estuve navegando en esta página), en este tutorial, se presentan ejemplos desde filtros sencillos, hasta filtros avanzados de varías lineas, en realidad la información esta muy interesante, para aquellos interesados en filtros complicados de captura.

Así que por los momentos eso es todo de mi parte referente a filtros de captura, por supuesto que si la demanda lo justifica, podríamos continuar con este tema en futuras oportunidades, de momento creo que enfocare los esfuerzos en la otra parte de filtrado, los filtros de visualización sobre los que estaré publicando algunos post en los próximos días.

26/4/07

Wireshark - Filtros de Captura Parte II


He tenido una semana un tanto ocupada, pero acá estoy con toda la intención de completar el tema de los filtros de captura de Wireshark, algo que es de mucha utilidad, para capturar unicamente el tráfico que nos interesa para el análisis. Como recomendaba en la parte I, muchas veces lo mejor, es capturar todo el tráfico, pero en algunas ocasiones no es posible, o no es deseable y debemos aplicar algunos filtros, asi que sin más, iniciamos:

La sintaxis soportada por Wireshark, permite capturar algunos protocolos unicamente especificandolo, de esta manera podemos detectar la presencia de este protocolo o hacer un troubleshoting de algo específico, algunos de los más relevantes son:

arp - Para capturar tráfico del Address Resolution Protocol

icmp
- Para capturar tráfico icmp, por ejemplo captura de paquetes de ping

ip
- Captura todo el tráfico IP

ipx - Capturar tráfico ipx, este comando puede ser util para determinar si este protocolo esta corriendo en la red (algo que ya no es nada comun en estos días).

netbeui - Capturar tráfico de NetBIOS extendede user interface

stp - Capturar tráfico de spanning tree protocol (a veces es útil usar la forma no stp para evitar este tráfico que pudiera no ser relevante para el análisis)

tcp - Captura todo el tráfico tcp

udp - Captura todo el tráfico udp

Por supuesto, existen algunos otros protocolos, pero considero que estos son los más relevantes, también recordar, que se puede utilizar operaciones lógicas, por ejemplo arp or icmp para capturar tráfico de arp y de icmp.

Existen opciones de filtrado aun más avanzadas, por ejemplo, vimos que se puede capturar todo el tráfico icmp, que nos permitira capturar paquetes de ping, sin embargo, ping no es el único tipo de tráfico icmp, a continuación se muestran los campos de un paquete icmp como estan definidos en la rfc 792.


Destination Unreachable Message

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type Code Checksum
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
unused
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Internet Header + 64 bits of Original Data Datagram
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



Como puede verse en este diagrama, los primeros 8 bits (primer byte), tiene el campo Type,
que define el tipo de paquete icmp, para referencia sobre los diferentes valores de icmp ver la rfc 792 anteriormente mencioanda.

En el caso particular de ping el type 8 indica un echo request y el type 0 indica un echo replay, asi que si queremos capturar exclusivamente paquetes de ping, el comando sería:

icmp [0] == 8 or icmp [0] == 0

El valor dentro de [] indica que estamos evaluando el byte 0, y que su valor sea igual a 8 o igual a 0, de esta manera estaríamos capturando exactamente el tráfico de ping.

Este ejemplo nos abre nuevas posibilidades, ya que posible probar bytes especificos de otros protocolos aunque no de todos, de la lista de protocolos desplegada previamente ipx, netbeui y stp no lo soportan es decir no podemos usar el comando ipx[0], pero los demás si.

En el fitrlo de ejemplo anterior, se utilizo == para designar igual a, otros operadores que se pueden utilizar en la extracción de bits son:

> Mayor que
< Menor que
>= Mayor o igual
<= Menor o igual
!= No igual a


Esto también nos lleva a otro asunto muy importante a considerar, para el análisis efectivo de una red, es importante conocer los protocolos que estamos analizando, si estas interesado en conocer la estructura de paquetes de los protocolos más importantes, un buen recurso es Protocols.com, en este sitio se da una descripción básica de una gran cantidad de protoclos, así como línks hacia los RFCs, que son la autoridad final en cuanto a como esta definido cada protocolo.

En una tercera parte, me gustaría profundizar sobre la extracción de bits, por ejemplo en el protocolo tcp, de momento por acá nos quedamos, espero que este tutorial este siendo de utilidad en tu trabajo, si deseas dejar tu comentario no dudes en hacerlo, igualmente si tienes alguna duda, estoy a la orden, en la dirección lmunguia [arroba] soportederedes.com

21/4/07

Packet school de Chris Sanders

Uno de los objetivos de este sitio, es proporcionar información de utilidad para administradores de redes, como otras veces he mencionado, Wireshark es una herramienta de mucha utilidad y en las próximas semanas seguire trabajando en un tutorial de esta herramienta.

Sin embargo, hay muchas otras fuentes de información, una de ellas es el excelente tutorial preparado por Chris Sanders, sobre wireshark, se llama packet school 101 y esta dividido en 5 partes, un inconveniente es que esta en ingles, pero para los que no tienen problemas con este idioma, es un tutorial de muy buena calidad con usos prácticos para esta herramienta.

Además de cubrir lo básico, el tutorial también discute algunos usos para seguridad, como en la parte 4, en cada parte se ofrecen capturas de paquetes para ilustrar lo enseñado.

Además del tutorial, este autor esta terminando un libro que será publicado pronto y que ya se puede reservar en Amazon.

Otro recurso interesante, es un podcast packet sniffing con ethereal/wireshark disponible con audio y diapositivas, asi que también vale la pena darle un vistazo.

Este tutorial no es nuevo, asi que al inicio se describe como ethereal, ya para el final de la parte 3, se hace el cambio por wireshark, sin embargo, el tutorial es igualmente válido, ya que wireshark es el mismo ethereal con diferente nombre.

Asi que sin más, si te interesa aprender más sobre wireshark, no dudes en darle un vistazo a este excelente tutorial

18/4/07

Wireshark 101 - Filtros de Captura parte I

En esta nueva entrega, de Wireshark 101, me gustaría discutir sobre los filtros de captura, un tema de utilidad a la hora de analizar una red.

En Wireshark, existen dos tipos de filtros, de captura que son los que vamos a discutir hoy, y de visualización, que discutiremos en otra oportunidad. Para filtros de captura Wireshark depende de los mecanismos de filtrado provistos en las librerías pcap, por lo que cualquier programa que utilice estas librerías utilizarán el mismo tipo de filtros, uno de los programas más famosos en utilizar estas librerías, es tcpdump, así que como referencia para profundizar sobre los filtros de captura, se puede visitar la página del manual de tcpdump o la documentación de la versión para Windows winpcap.

Para que nos puede servir el filtrado de paquetes?, normalmente lo más sencillo es capturar todo el tráfico y posteriormente utilizar filtros de visualización, para analizar mejor el tráfico, sin embargo, hay diferentes situaciones, en las que los filtros de captura pueden ser de mucha utilidad, por ejemplo si solo estamos interesados en la comunicación entre un cliente y un servidor, podemos eliminar tráfico innecesario y capturar solo lo necesario y relevante, también si estamos utilizando una PC que no es muy potente, en ambientes de altos volúmenes de tráfico, es posible que la pc no sea capaz de capturar todo el tráfico, en estos casos, lo ideal es establecer un filtro de captura para obtener unicamente el tráfico relevante para nuestro análisis. Otra opción es hacer una captura inicial de todo el tráfico y después de un análisis preliminar, utilizar filtros para capturar el tráfico que consideremos relevante para el problema espécifico que se este resolviendo.

Para escribir un filtro, antes de capturar data, desde el menu de wireshark escoger capture, luego options, y se abre la pantalla siguiente:



El filtro de captura, se escribe en el espacio indicado a la par del boton capture filter, si hay un error en la sintaxis del filtro, wireshark indicara un mensaje de error y no iniciara la captura. Dejando este espacio en blanco, se capturara todo el tráfico.

A continuación se detallan los principales comandos con los que se puede filtrar tráfico, lo que se debe escribir en la pantalla, es la parte resaltada con negrilla:


host 192.168.1.1 - Captura tráfico cuyo origen o destino sea la dirección 192.168.1.1

src 192.168.1.1 - Captura todos los paquetes que tienen a 192.168.1.1 como ip de origen.

dst 192.168.1.1 - Captura todos los paquetes que tienen a 192.168.1.1 como ip de destino.

host www.wireshark.org - Captura todos los paquetes que se origina o tienen como destino el host wireshark.org

net 192.168.1.1/24 - Captura todo el tráfico destinado a la subnet 192.168.1.1 con máscara 255.255.255.0, (en este caso, el número después de / depende de la máscara utilizada)

src net 192.168.1.1/24 - Captura todo el tráfico cuyo ip de origen esta en la
subnet 192.168.1.1/24

dst net 192.168.1.1/24 - Captura todo el tráfico cuyo ip de destino pertenece a la
subnet 192.168.1.1/24

También es posible (y en ocaciones bastante útil), realizar capturas basdas en la MAC address, esto con el comando ether, de esta manera el filtro sería

ether host ff:ff:ff:ff:ff:ff - Captura datos desde y hacia la dirección MAC ff:ff:ff:ff:ff:ff

Nuevamente, es posible utilizar ether src o ether dst para definir si unicamente se desea capturar tráfico de origen o de destino.

Si lo que se desea es capturar tráfico destinado a algun puerto especifico, esto puede ser realizado con el comando port, por ejemplo:

port 80 - Captura todo el tráfico udp o tcp cuyo origen o destino es el puerto 80 (http)

tcp port 80 - Captura unicamente el tráfico tcp cuyo origen o destino es el puerto 80

udp port 53 - Captura todo el tráfico udp cuyo origen o destino es el puerto 53 (Este filtro es útil para capturar unicamente el tráfico DNS).

También es posible utilizar src y dst ejm. udp src port 53.

Además es posible realizar las operaciones lógicas not and y or para construir filtros más especificos, a continuación algunos ejemplos

not udp port 53 - Para capturar todo el tráfico excepto UDP

host 192.168.1.1 and tcp port 80 - Capturar todo el tráfico cuyo origen o destino sea el host 192.168.1.1 y el puerto sea el 80 (http)

host 192.168.1.1 or host 192.168.1.2 - Capturar todo el tráfico cuyo origen y destino es el host 192.168.1.1 o el host 192.168.1.2

Estos son los comandos básicos para filtros de captura, aún hay más temas interesante para construir filtros efectivos, los cuales se discutirán en la parte 2, asi que si te interesa este tema, regresa pronto, espero tener lista la segunda parte, en pocos días.

28/3/07

Wireshark University Announced

Hace algunos días, inice un tutorial sobre Wireshark, esta mañana visitando el sitio oficial de esta herramienta, me encuentro con el anuncio de Wireshark University!, parece que se me adelantaron en la idea :-), bueno, no es que mi tutorial pretenda estar al nivel de esta oferta educativa de Wireshark, de hecho, creo que demuestra que este software a llegado a un nivel de madurez tal, que genera la necesidad de una capacitación más formal.

Esta universidad esta fundada por Laura Chappell, muy conocida y respetada en el ambiente de análisis de paquetes y protocolos, Gerald Combs, el autor original de Ethereal (ahora Wireshark), John Bruno, cofundador de CACE Technologies (el lugar donde ahora trabaja Gerald Combs), y Loris Degioanni, confundador de CACE y también creador original de WinPcap (componente fundamental para que Wireshark pueda capturar paquetes en Windows).

De acuerdo con el sitio, además de cursos estan trabajando en una certificación WSCNA (Wireshark Certified Network Analyst), además para mediados de este año estan planificando la publicación de una revista FIN Bit Magazine, también estan planificando entrentamiento presencial y para esto han hecho una alianza con Executrain, así que probablemente en un futuro próximo tengamos estos cursos disponibles en Guatemala (y en otros paises de centro america), al menos el caso de Guatemala aparece listado, asi que eso da alguna esperanza.

Lamentablemente a diferencia del software que es open source, los cursos no lo son, cada curso (de un total de 4) de autoestudio esta disponible a un costo de $300, pero esta disponible una muestra de uno de los cursos (estoy pensando bajarla el fin de semana ya que son 74 Mb).

Así que si te interesa incorporar esta herramienta a tu arsenal de soporte, y tu presupuesto lo permite, Wireshark University te espera.

26/3/07

Wireshark 101 - Como capturar trafico


Con este post, estoy dando inicio a lo que se podría llamar un tutorial sobre Wireshark, como he comentado en otros posts, Wireshark es un analizador de protocolos open source y es una de mis herramientas favoritas, que además es de suma utilidad para la resolución de problemas de redes.

Antes que nada, una palabra de advertencia, la captura de tráfico en una red puede ser ilegal, o puede estar prohibida por las reglas de seguridad de la empresa, asi que antes de conectar un analizador de tráfico a cualquier red, favor asegurarse que cuenta con el permiso respectivo y que esta conciente de las implicaciones que puedan derivarse de esta actividad, para efectos de este tuturial, lo mejor es establecer un laboratorio aislado sin conexión a la red de la empresa, o hacerlo desde una red casera.



Una vez hecha la advertencia, el primer aspecto que me gustaría tratar, es sobre como capturar tráfico, especificamente donde ubicar el wireshark para poder capturar el tráfico que se desea ver en la red, para ello estaré haciendo referencia a la siguiente figura

Supongamos que queremos capturar (desde una laptop), el tráfico entre un servidor y la PC de un usuario que esta experimientando problemas para acceder a dicho servidor. Lo más probable es que esten conectados a través de un switch como se muestra en la figura 1a, si este es el caso, al conectar la laptop, no podremos ver el tráfico entre la PC y el Servidor, unicamente será posible ver el tráfico destinado a la laptop y tráfico de Broadcast, para sobreponernos a esto tenemos tres opciones:


Opción 1 El switch es administrable: En este caso, consultar en la documentación del mismo, como configurar un Port Mirroring, suponiendo que el Servidor esta ubicado en el puerto 1, la PC en el puerto 2, y la laptop con wireshark en el puerto 3, debería configurarse el port mirroring para copiar los puertos 1 y 2 en el puerto 3. Como configurar el port mirroring depende de cada fabricante, lo ideal es consultar el manual del switch, o en la página web del fabricante, en el caso de Cisco, el port mirroring se le denomina SPAN (Switch Port Analizer).

Opción 2 El switch es administrable pero no soporta port mirroring, o no es administrable: En este caso, la opción que tenemos es conectar un pequeño hub, como se ilustra en la figura 1b, en este caso, la idea es conectar el hub a un puerto del switch y conectar la PC, el servidor y la laptop al hub, en este caso si se podrá ver todo el tráfico ya que en un hub, el tráfico en cada puerto es visible en todos los demás puertos. Las desventajas de esto, es que el hub no funciona a full duplex, además es muy probable que la velocidad sea a 10 mientras que los puertos del switch funcionen a 100 o aún a 1000, así que si esta es una red en producción el acceso al servidor se puede ver severamente afectado para el resto de usuarios, asi que usar esta opción con mucha precaución y solo despues de haber considerado el impacto que tendrá en los usuarios.

Opción 3 Utilizar un network tap: Esta pienso que es la poción ideal, un network tap, es un dispositivo pasivo que se puede insertar en la red y permite ver el tráfico que esta pasando a través de la misma, por ser un dispositivo pasivo no interfiere en ninguna manera en la configuración, incluso en caso de falla del tap el tráfico sigue pasando por la red. Existen diferentes tipos de taps, pero en esencia la función es la misma, permitirnos visibilidad del tráfico. Aunque esta es la opción ideal, es probable que sea la más dificil de conseguir, sin embargo, si es posible, vale la pena conseguir algunos taps y tenerlos a la mano para cuando se presenten esos problemas extraños en la red, para aprender más sobre taps, y ver lo que es posible con estos, recomiendo visitar la página de algunos fabricantes, normalmente se encontraran descritas las diferentes tecnologías de taps, y como utilizarlos eficientemente, entre los fabricamentes de taps puede mencionar, Datacom Systems, Netoptics, y Network Critical.

Estos son solo algunos de los escenarios, pero en general la idea es la misma, en un hub se puede observar todo el tráfico de la red (sin embargo es muy poco comun hoy en día encontrar una red basada unicamente en hubs), en un switch es necesario configurar port mirroring, y con un tap se pueden establecer puntos de monitoreo permanentes.