<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" >
<channel>
<title>Seguridad y Redes. Página Personal de Alfon.  </title>
<link>http://seguridadyredes.nireblog.com</link>
<description>Seguridad y Redes. Snort, Wireshark. Análisis de redes, IDS, Windump, Antisniffers... Página personal de Alfon. </description>
<pubDate>Fri, 20 Nov 2009 22:44:44 +0100</pubDate>
<image>
<title>Seguridad y Redes. Página Personal de Alfon.  </title>
<url>http://files.nireblog.com/blogs/seguridadyredes/gravatar.gif</url>
<link>http://seguridadyredes.nireblog.com</link>
</image>
<generator>http://nireblog.com</generator>
	<item>
	<title>Skype. Algunas consideraciones sobre Skype y Bloqueo de tráfico usando Wireshark / Snort. Parte 1</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/11/17/skype-algunas-consideraciones-sobre-skype-y-bloqueo-de-trafico-usando-wireshark-snort-parte-1</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/11/17/skype-algunas-consideraciones-sobre-skype-y-bloqueo-de-trafico-usando-wireshark-snort-parte-1</guid>
		<description><![CDATA[<p>A estas alturas ya todos sabemos qué es <strong>Skype</strong>. No voy a descubrir nada nuevo sobre este software para realizar llamadas (voz), chat, etc, a través de internet desde un PC a otro PC.</p>
<p><img id="image539914" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/logo_skype.png" alt="Logo skype" align="middle" /></p>
<p>Solo comentar, como peqeño resúmen, que hace uso de <strong><em>VoIP</em></strong> gracias a la tecnología <strong>P2P</strong> (algo vimos aquí sobre <strong><a href="http://seguridadyredes.nireblog.com/post/2008/06/23/wireshark-tshark-detectando-trafico-p2p-en-nuestra-red" target="_blank" title="Detectar trafico P2P en nuestra red. Seguridad y  Redes. alfon">detectar P2P en nuestra red</a> </strong>) y usa <strong>cifrado fuerte</strong> para las comunicaciones. <span>Según <strong>Skype</strong>:</span></p>
<p><span> “<em>Skype usa AES (el Estándar de Cifrado Avanzado), también conocido como Rijndel, que también es usado por organizaciones estadounidenses de gobierno para proteger la información sensible. Skype usa el cifrado de 256 bit, que tiene un total de 1.1 x 10E77 llaves posibles, para cifrar los datos activamente en cada llamada de Skype o en cada mensaje instantáneo. Skype usa 1536 a 2048 bit RSA (Algorithm for Public-Key Encryption) para negociar llaves simétricas AES. Las llaves de usuario público son certificadas por el servidor Skype en la conexión.</em>” </span></p>
<p><span>Es decir, que en principio, descifrar una conversación <strong>Skype</strong> es algo <strong>prácticamente imposible</strong>.</span> Además, el software o protocolo de seguridad de Skype es <strong>propietario, cerrado y secreto</strong>.</p>
<p>En este artículo nos centraremos en como bloquear el uso de este software. Eso sí, <strong>haciendo uso de las herramientas de captura de tráfico como <a href="http://seguridadyredes.nireblog.com/cat/wireshark-tshark" target="_blank" title="wireshark en Seguridad y Redes. Alfon">Wireshark</a></strong>, y <a href="http://seguridadyredes.nireblog.com/cat/snort" target="_blank" title="Snort en Seguridad y Redes. Alfon"><strong>Snort</strong></a> en todo lo que nos sea posible. Además no servirá para bloquear otros tipos de tráfico usando la misma "técnica".</p>
<p><strong>NOTA:</strong> <font color="#000099">Iré actualizando con soluciones de bloqueo avanzadas de distintos dispositivos hardare.</font></p>
<p>
<!--more-->
</p>
<p>Para llegar a donde queremos, que menos que saber un poco, muy brevemente, algo sobre la <strong>arquitectura Skype</strong>. Por ejemplo que su red tiene <strong>tres tipos de hosts</strong>:</p>
<ul>
<li><strong>Nodo</strong>. cualquier host cliente</li>
<li><strong>Super-Nodo</strong>. host con IP pública con grandes recursos de ancho de banda, procesamiento y memoria. sirven para lagestión de directorios de usuarios, datos de nodos, etc. Cualquier Nodo se puede converti, si tiene estos recursos mencionados, en Super-Nodo, siempre y cuando no estén detrás de un proxy o firewall/cortafuegos.</li>
<li><strong>Skype Login Server</strong>.host servidor único y solo este es centralizado. Se encarga de la autentificación de usuarios, almacenamiento de usuarios / contraseñas y que los usuarios sean únicos.</li>
</ul>
<p><strong>¿ Como interactúan entre ellos?</strong>. Cada host <strong>Nodo</strong> o cliente debe conectar con un host <strong>Super-Nodo</strong> y registrarse/autentificarse en el  <strong>Skype Login Server</strong>. Aunque existe <strong>un solo servidor</strong> central <strong>Skype Login Server</strong> para las funciones que acabo de comentar, todo el tráfico, información, etc se realiza de forma <strong>descentralizada</strong>.</p>
<p>Como se inicia la conexión, el proceso de conexión, conexión a <strong>Super-Nodos</strong> y <strong>Skype Login Server</strong>, búsqueda de contactos, establecimiento de llamada, obtención de certificado, cifrado y muchos otros aspectos, no entran en el objetivo de este artículo. Para otro.. ya veremos. Son procesos complicados.</p>
<p><strong>¿ Qué puertos usa ?</strong>. Skype usa puertos <a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" target="_blank" title="Protocolo TCP. Seguridad y Redes. Alfon.">TCP</a> y <a href="http://seguridadyredes.nireblog.com/post/2008/02/06/analisis-capturas-trafico-de-red-interpretacion-datagrama-udp-iii" target="_blank" title="Protocolo UDP. Seguridad y Redes. alfon">UDP</a>. La numeración del puerto suele ser, por defecto, alta para las conexiones entrantes. Si en nuestro cortafuegos o firewall, tenemos bloqueados los puertos que usa Skype, este intentará acceder a los puertos <strong>80</strong> y/o <strong>443</strong>.También puede usar proxies <strong>HTTP</strong> / <strong>SOCKS5</strong>, con lo que habrá que indicarle Servidor y Puerto y, en su caso, usuario / contraseña.</p>
<p>Esto ya nos  da una pista de como bloquear <strong>Skype</strong> en una red local:</p>
<ul>
<li>El usuario no tiene acceso a internet.  Solucionado.</li>
<li>El usuario tiene acceso pero solo a determinados puertos o servicios. Los podría usar <strong>Skype</strong>.</li>
<li>El usuario solo tienen acceso a los puertos <strong>80</strong> y/o <strong>443</strong>. Los usa Skype.</li>
</ul>
<p><strong>¿ Eso es todo ?</strong>. Pues no. Lo normal es que los usuarios tengan acceso a internet, y, sobre todo, necesitan el puerto <strong>80</strong> y para algunos servicios <strong>443</strong>, con lo cual, de momento no hemos avanzado gran cosa.</p>
<p><strong>¿ Entonces como bloqueamos Skype ?</strong>. Independientemente de que algunos cortafuegos o firewalls tengan ya implememtados algunos filtros para Skype, que no lo se, vamos a usar <strong>Wireshark</strong> para buscar alguna firma identificativa de Skype, patrón o característica única que nos sirva para crear un filtro o política para nuestro cortafuegos.</p>
<p><font size="4"><strong>Capturando el tráfico Skype.</strong></font></p>
<p><font color="#990000"><strong>NOTA:</strong> Vamos a realizar un estudio no demasiado profundo. Eso lo dejaremos para otra entrega. Se trata de dar una serie de pistas, consideraciones sobtre el bloqueo de este tipo de software</font>.</p>
<p>Nuestro escenario es el siguiente. Un host cliente Skype con salida a internet a través de un cortafuegos sin ningún tipo de restricción a puertos <a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" target="_blank" title="Protocolo TCP. Seguridad y Redes. Alfon.">TCP</a>  / <a href="http://seguridadyredes.nireblog.com/post/2008/02/06/analisis-capturas-trafico-de-red-interpretacion-datagrama-udp-iii" target="_blank" title="Protocolo UDP. Seguridad y Redes. alfon">UDP</a>. Un host cliente remoto cualquiera. Skype está ya instalado y no es la primera vez. De ser el primer uso la captura cambia en algunos aspectos.</p>
<p><font color="#990000"><u><strong>NOTA</strong>:</u> Bajo otros escenarios, como por ejemplo, <strong>habilitar solo el puerto 443</strong>, las capturas cambian. Podemos, además, obtener mucha información sobre las transacciones <strong>SSL</strong>. </font></p>
<p><img id="image538680" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/skype01.png" alt="captura parte trafico skype con wireshark" width="494" height="104" align="middle" /></p>
<p>Lo primero que observamos es una peticion <strong>DNS</strong>. Un<strong> Standard Query request A</strong> para resolver <strong>ui.skype.com</strong>. A lo que se responde con un <strong>Standard query response A</strong> <strong>204.xxx.xxx.158</strong>.</p>
<p>Ya tenemos la primera pista. Skype conecta con un servidor <strong>ui.skype.com</strong>.</p>
<p>Vemos, a continuación, un establecimiento de conexión a tres bandas. Entre el Nodo host cliente con el servidor <strong>ui.skype.com</strong>.</p>
<p>Una vez establecida la conexión se realiza una <strong>petición HTTP GET</strong>. Si realizamos un <strong>Follow TCP Stream</strong> desde <strong>Wireshark</strong>, veremos:</p>
<p><font size="1" color="#000099">GET /<strong>ui</strong>/0/3.8.32.115/es/<strong>getlatestversion</strong>?ver=3.8.32.115&amp;uhash=1540f7874177b01d4df58ee305d933e23 HTTP/1.1</font></p>
<p><font size="1" color="#000099"> User-Agent:</font></p>
<p><font size="1" color="#000099"> Host: <strong>ui.skype.com</strong></font></p>
<p><font size="1" color="#000099"> Cache-Control: no-cache</font></p>
<p>A lo que se responde:</p>
<p><font size="1" color="#000099"><br /> HTTP/1.1 200 OK</font></p>
<p><font size="1" color="#000099"> Date: Tue, 10 Nov 2009 17:11:56 GMT</font></p>
<p><font size="1" color="#000099"> Server: Apache</font></p>
<p><font size="1" color="#000099"> Cache-control: no-cache, must revalidate</font></p>
<p><font size="1" color="#000099"> Pragma: no-cache</font></p>
<p><font size="1" color="#000099"> Expires: 0</font></p>
<p><font size="1" color="#000099"> Set-Cookie: SC=CC=:CCY=:LC=es:TM=1257873116:TS=1257873116:TZ=:VER=0/3.8.32.115/0; expires=Wed, 10-Nov-10 17:11:56 GMT; path=/; domain=.skype.com;</font></p>
<p><font size="1" color="#000099"> Content-Length: 8</font></p>
<p><font size="1" color="#000099"> Connection: close</font></p>
<p><font size="1" color="#000099"> Content-Type: text/html; charset=utf-8</font></p>
<p><font size="1" color="#000099"> Content-Language: en</font></p>
<p><font size="1" color="#000099"> 2.0.32.0 </font></p>
<p>Pues ya lo tenemos bastante más claro.</p>
<ul>
<li><font size="1" color="#000099">GET /<strong>ui</strong>/0/<font color="#990000"><strong>3.8.32.115</strong></font>/es/<strong>getlatestversion</strong></font></li>
<li><font size="1" color="#000099">Host: <strong>ui.skype.com</strong></font></li>
</ul>
<p>En cada una de las conexiones realizadas con <strong>Skype</strong>, estos dos patrones, por poner dos ejemplos, se repiten. Aunque no exactamente, ya que la numeración marcada en <strong><font color="#990000">rojo</font></strong> es la <strong>versión del cliente</strong> y, lógicamente, <strong>puede cambiar</strong>.</p>
<p><strong>¿ Algo más que nos pueda servir ?</strong>. Bueno, tenemos también un número de puerto <strong>UDP</strong>:</p>
<p><img id="image538685" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/skype02.png" alt="captura wireshark udp skype" align="middle" /></p>
<p>Se trata del puerto <strong>59907</strong>, Pero no nos sirve de mucho. Este puerto es configurable desde <strong>Opciones</strong> de <strong>Skype</strong>.</p>
<p>De todas formas ya tenemos suficiente para esta <strong>primera aproximación<br /> </strong> a la <strong> identificación del tráfico de Skype.</strong></p>
<p><font size="4"><strong>Creación de regla Snort para detectar el uso de Skype.  </strong></font></p>
<p>De no tener políticas que impidan la instalación de programas en las máquinas de nuestros usuarios, podríamos, por ejemplo, crear una regla Snort tal como esta:</p>
<p><font size="1" color="#0000cc">alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Uso de GET para nueva version Skype"; flow:to_server,established;<br /> uricontent:"/ui/"; uricontent:"/getnewestversion"; content:"Host|3A|<br /> ui.skype.com"; classtype:policy-violation; rev:1;)</font></p>
<p>Esta regla nos generará una alerta, pero no bloqueará tráfico alguno.</p>
<p><font size="4"><strong>Creación filtro y/o reglas para firewall cortafuegos.</strong></font></p>
<p>Podríamos crear una regla que denegara el acceso si se accede a una URL que contenga  <font size="1" color="#000099"><strong>getlatestversion</strong></font>. Pero no, Skype sigue funcionando.Bueno pues denegamos mediante una regla el acceso al host <font size="1" color="#000099"><strong>ui.skype.com</strong></font>, e incluso detallamos la IP de dicho host. Pero cuando abrimos Skype y capturámos su tráfico vemos que sigue igual. A Skype no le importa mucho no acceder al host <font size="1" color="#000099"><strong>ui.skype.com</strong></font>, al parecer, solo le serive para descargar, si es el caso, la última versión del programa. En nuestra nueva captura ya no aparece:</p>
<p><font size="1" color="#000099">GET /<strong>ui</strong>/0/3.8.32.115/es/<strong>getlatestversion</strong>?ver=3.8.32.115&amp;uhash=1540f7874177b01d4df58ee305d933e23 HTTP/1.1</font></p>
<p><font size="1" color="#000099"> User-Agent:</font></p>
<p><font size="1" color="#000099"> Host: <strong>ui.skype.com</strong></font></p>
<p><font size="1" color="#000099"> Cache-Control: no-cache</font></p>
<p>Pero ya digo, no nos sirve. Tampoco podemos bloquear por puertos porque no tienen ningún puerto predefinido ni servicios. Puede usar <a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" target="_blank" title="Protocolo TCP. Seguridad y Redes. Alfon.">TCP</a> , <a href="http://seguridadyredes.nireblog.com/post/2008/02/06/analisis-capturas-trafico-de-red-interpretacion-datagrama-udp-iii" target="_blank" title="Protocolo UDP. Seguridad y Redes. alfon">UDP</a>, 443, 80, etc. El único puerto que tiene predefinido para las conexiones entrantes lo puede manipular el usuario en el cliente.</p>
<p>Inpeccionar los paquetes en busca de firmas que denoten, por ejemplo, el uso de <strong>SSL</strong> por parte de Skype, ya no vale. Antes, en versiones anteriores, el <strong>handshake SSL/TLS</strong> era facilmente identificable mediante la firma <strong>|16 03 01 00|</strong> (<strong><em>Client Hello</em></strong>) y <strong>|17 03 01 00|</strong> (<strong><em>Server Hello</em></strong>), ahora esto ya no nos vale. Todo la información transferida por <strong>Skype</strong> está cifrada.</p>
<p>En la captura, más adelante, podemos ver (probadlo) que se usa mucho el protocolo <strong><a href="http://seguridadyredes.nireblog.com/post/2008/02/06/analisis-capturas-trafico-de-red-interpretacion-datagrama-udp-iii" target="_blank" title="Protocolo UDP. Seguridad y Redes. alfon">UDP</a></strong> para muchas conexiones, transferencias de voz, etc. Podríamos bloquear el uso de <strong><a href="http://seguridadyredes.nireblog.com/post/2008/02/06/analisis-capturas-trafico-de-red-interpretacion-datagrama-udp-iii" target="_blank" title="Protocolo UDP. Seguridad y Redes. alfon">UDP</a></strong>, ya que no afecta significativamente al uso de internet. Pues bien, tras unos momentos en los que <strong>Skype</strong> inicia, inicia sesión en el  <strong>Skype Login Server</strong>,etc, vemos que no encuentra ninguno de nuestros contactos. Parece que va todo bien. Pero, cuando <strong>Skype</strong> ve que no puede usar <strong><a href="http://seguridadyredes.nireblog.com/post/2008/02/06/analisis-capturas-trafico-de-red-interpretacion-datagrama-udp-iii" target="_blank" title="Protocolo UDP. Seguridad y Redes. alfon">UDP</a></strong> por defecto para estas tareas, usa <strong>TCP</strong>, con lo cual la opción de bloquear <strong><a href="http://seguridadyredes.nireblog.com/post/2008/02/06/analisis-capturas-trafico-de-red-interpretacion-datagrama-udp-iii" target="_blank" title="Protocolo UDP. Seguridad y Redes. alfon">UDP</a></strong> no nos sirve de nada.</p>
<p><font size="4"><strong>¿ Bloqueamos SSDP?</strong></font></p>
<p><strong>Skype</strong> usa<strong> SSDP </strong>para el <strong>descubrimiento de dispositivos UPnP.</strong> Esto lo realiza <strong>enviando 4 paquetes a la dirección Multicast 239.255.255.250 al puerto, por defecto, 1900</strong>. Pues bien, tanto si desahabilitamos el servicio en el host cliente, como si denegamos en nuestro firewall el acceso al puerto <strong>1900</strong> <strong><a href="http://seguridadyredes.nireblog.com/post/2008/02/06/analisis-capturas-trafico-de-red-interpretacion-datagrama-udp-iii" target="_blank" title="Protocolo UDP. Seguridad y Redes. alfon">UDP</a></strong> o a la dirección multicast  <strong>239.255.255.250</strong>, el resultado es el mismo. <strong>Skype </strong>se "adapta" y <strong>no le afecta</strong>. Hay routers que pueden so ser PnP.</p>
<p id="firstHeading" class="firstHeading"><strong><font size="4">NAT Port Mapping Protocol</font></strong></p>
<p id="firstHeading" class="firstHeading">Como vemos en esta serie de paquetes capturados:</p>
<p id="firstHeading" class="firstHeading"><img id="image539911" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/skype03.png" alt="wireshark. NAT Port Mapping Protocol nat-pm skype." align="middle" /></p>
<p id="firstHeading" class="firstHeading"><strong>Skype</strong> usa <strong>NAT-PMP</strong> que le permitere mantener una conexión abierta con el exterior de nuestra red de forma persistente. Aunque se le pueda bloquear su uso, Skype puede usar los <strong>Super Nodos</strong> para esta tarea. En la versions 4.x creo que se puede deshabilitar el uso de <strong>NAT-PMP.</strong></p>
<p><font size="4"><strong>Como bloquear de forma efectiva el uso de Skype.</strong></font></p>
<p>En un entrono de empresa, hay varias formas de bloquear el uso de Skype.</p>
<ul>
<li>Se impide el acceso total a internet y a partir de ahí se da salida <strong>solo a los servicios y/o protocolos necesarios</strong>.</li>
<li>Se impide el acceso acceso total a internet excepto a servicios necesarios (IMAP, SMTP,...) y se da <strong>salida solo a una serie de sitios que establezaca la empresa</strong> para sus usuarios. Sería una especie de lista blanca de acceso.</li>
<li><strong>Uso de políticas de seguridad en la empresa</strong>. Dependiendo del tipo de usuario, uso de directorio activo o grupo de trabajo:</li>
</ul>
<blockquote><ul>
<li><strong>Usuarios sin permiso de instalación de software</strong>. Esto no es válido si los usuarios pueden ejecutar un Skype portable a través de USB o lectos CD/DVD.</li>
<li><strong>Políticas de restricción de software en directivas de seguridad local</strong>. Se crea una regla para impedir el uso de Skype.exe.</li>
<li>En un entorno de<strong> Directorio Activo</strong>, podemos especificar una <strong>restricción al uso de Skype.exe</strong>.</li>
</ul>
</blockquote>
<p>Existen algunos dispositivos Hardware que son capaces de detectar el tráfico de red Skype. No los he probado. Incluso algún firewall avanzados de hardware que puede bloquear <strong>Skype</strong>, pero las técnicas de "evasión" que usa Skype casi siempre va por delante. Además, l<strong>a inspección del contenido de paquetes es practicamente imposible</strong>, debido a que <strong>toda la transferencia de información suscentible de usarse para bloquear, está cifrada</strong>.</p>
<p><strong>Relacionado</strong>: <a href="http://seguridadyredes.nireblog.com/post/2008/06/23/wireshark-tshark-detectando-trafico-p2p-en-nuestra-red">Wireshark. Tshark. Detectando tráfico <strong>P2P </strong>en nuestra red.</a></p>
<p>-----------------------------------------------------------------------------</p>
<p>En la siguiente entrega estudiaremos de forma más profunda como funciona Skype e iremos descubriendo más aspectos muy interesantes sobre este software.</p>
<p><font color="#990000"><strong>También veremos las capturas realizadas bajo otros escenarios como, por ejemplo, dehabilitar todos los puertos y servicios y habilitar solo el puerto 443. Vremos como cambia la captura y la cantidad de datos que podemos obtener, sobre todo las transacciones SSL. </strong></font></p>
<p>-------------------------------------------------------------------------------</p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/11/17/skype-algunas-consideraciones-sobre-skype-y-bloqueo-de-trafico-usando-wireshark-snort-parte-1#comments">Comments</a></p>]]></description>
	<pubDate>Tue, 17 Nov 2009 12:56:44 +0100</pubDate>	</item>
	<item>
	<title>Wireshark. Analizando eventos SMB / CIFS - NetBIOS. Parte 3.</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/11/16/wireshark-analizando-eventos-smb-cifs-netbios-parte-3</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/11/16/wireshark-analizando-eventos-smb-cifs-netbios-parte-3</guid>
		<description><![CDATA[<p>En los dos primeros capítulos de esta serie dedicada a los eventos <strong>SMB / CIFS - NETBIOS</strong>, hemos visto los mensajes del tipo  <a href="http://seguridadyredes.nireblog.com/post/2009/10/29/wireshark-analizando-eventos-smb-cifs-netbios-parte-1" target="_blank" title="Name query NB"><strong>Name query NB</strong></a> y <a href="http://seguridadyredes.nireblog.com/post/2009/11/03/wireshark-analizando-eventos-smb-cifs-netbios-parte-2" target="_blank" title="Name query response"><strong>Name query response NB</strong></a>. En esta tercera parte nos centraremos en los pasos previos a <strong>Negotiate protocol Request</strong> y <strong>Negotiate protocol Response</strong>. Estos pasos previos son, primero:</p>
<ul>
<li><strong>Echo ping request</strong></li>
<li><strong>Echo ping reply</strong></li>
</ul>
<p>que son necesario para obtener la dirección <strong>MAC</strong>, y el segundo: <strong>establecimiento de conexión con el host CLIENTE</strong>, donde se ubica el recurso compartido, mediante <font color="#000080"><strong><a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" title="TCP establecimiento conexión. three-way handshake ">three-way handshake</a> </strong></font>o <a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" title="tcp establecimiento conexion. tres pasos">negociación a tres pasos</a>.</p>
<p>Inmediatemente el host <strong>SERVIDOR</strong> envía una petición de sesion al host <strong>CLIENTE</strong>.... lo vemos todo a continuación.</p>
<p>
<!--more-->
</p>
<p>Partimos, como siempre, de nuestra captura:</p>
<p><img id="image535578" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/smb02.png" alt="wireshark  smb cifs netbios analisis" align="middle" /></p>
<p>y nos centramos en los paquetes:</p>
<ul>
<li>13. <a href="http://seguridadyredes.nireblog.com/post/2008/02/20/analisis-capturas-trafico-de-red-interpretacion-trafico-icmp-i" title="ICMP echo reply y echo request"><strong>Echo (ping) request</strong></a>. Petición que realiza el host SERVIDOR 192.168.1.30</li>
<li>14. <a href="http://seguridadyredes.nireblog.com/post/2008/02/20/analisis-capturas-trafico-de-red-interpretacion-trafico-icmp-i" title="ICMP. Echo request y echo reply. ping"><strong>Echo (ping) response</strong></a>. Responde host CLIENTE 192.168.1.5.</li>
</ul>
<p>este paso se realiza para la obtención de la dirección <strong>MAC</strong> de destino (del host 192.168.1.5).</p>
<p>A continuación se realiza el establecimeinto de conexión mediante  <a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" title="tcp establecimiento conexion. tres pasos">negociación a tres pasos</a> ó <font color="#000080"><strong><a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" title="TCP establecimiento conexión. three-way handshake ">three-way handshake</a></strong></font>: paquetes 15, 16 y 17. Observad que la negociacion para el etablecimiento de conexión se realiza sobre el puerto <strong>139</strong>. Este tipo de paquetes ya lo hemos estudiado <a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" title="Establecimiento de conexión TCP">aquí</a>.</p>
<p>Una vez establecida la conexión, el host servidor envia una <strong>petición de sesion</strong> o <strong>Session request</strong>: lo vemos en el paquete 18:</p>
<ul>
<li>18. <strong>Session request, to CLIENTE(20) from SISTEM(00)<br /> </strong></li>
</ul>
<p><img id="image539604" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/smb32.png" alt="wireshark netbios session request" align="middle" /></p>
<p>En el paquete 19 tenemos la respuesta a esta petición de sesión:</p>
<ul>
<li>19. <strong>Positive session response</strong></li>
</ul>
<p><img id="image539605" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/smb33.png" alt="wireshark netbios session response " align="middle" /></p>
<p>Para estudiar mejor estos dos mensajes, incluimos aquí el formato para <strong>SESSION REQUEST, TO</strong> y <strong>POSITIVE SESSION RESPONSE</strong>:</p>
<p><img id="image539607" src="http://files.nireblog.com/blogs1/seguridadyredes/files/smb31.png" alt="formato para session request to y positive session response" align="left" /></p>
<p>Vemos para <strong>Session request, to CLIENTE(20) from SISTEM(00)</strong> que:</p>
<ul>
<li>Message <strong>Type</strong>: <strong>Session request</strong>. El código es <strong>x81</strong> (en haxadecimal).</li>
<li>Flags: <strong>0x00 </strong>siempre debe ser 0</li>
<li>Length: <strong>68<br /> </strong></li>
<li>Called name <strong>CLIENTE</strong>(20). Se refiere al recurso servidor</li>
<li>Calling name <strong>SISTEM</strong>(00). Se refiere al recurso cliente que accede al servidor del recurso compartido.</li>
</ul>
<p>Para TYPE o message Type, tenemos los mensajes y sus códigos pueden ser:</p>
<ul>
<li>00. Session message.</li>
<li><strong>81</strong>. Session request.</li>
<li><strong>82</strong>. Positive session response</li>
<li>83. Negative session response</li>
<li>84. Retarget session response</li>
<li>85. Session keep alive.</li>
</ul>
<p>Vemos para <strong>Positive session response</strong> que:</p>
<ul>
<li>Message <strong>Type</strong>: <strong>Positive session response</strong>. El código es <strong>x82</strong> (en haxadecimal).</li>
<li>Flags: <strong>0x00 </strong>siempre debe ser 0</li>
</ul>
<p>--------------------------------------------------------------------------</p>
<p>En la cuarta parte de esta serie veremos la negociación <strong>Negotiate protocol Request</strong> y <strong>response</strong>. </p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/11/16/wireshark-analizando-eventos-smb-cifs-netbios-parte-3#comments">Comments</a></p>]]></description>
	<pubDate>Mon, 16 Nov 2009 17:02:01 +0100</pubDate>	</item>
	<item>
	<title>Wireshark / Windump. Analisis capturas tráfico red. Interpretación Datagrama IP. (Actualización).</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/11/05/wireshark-windump-analisis-capturas-trafico-red-interpretacian-datagrama-ip-actualizacian</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/11/05/wireshark-windump-analisis-capturas-trafico-red-interpretacian-datagrama-ip-actualizacian</guid>
		<description><![CDATA[<p><a href="/es/admin/post/borrador/Analisis%20capturas%20tr%C3%A1fico%20red.%20Interpretaci%C3%B3n%20Datagrama%20IP.%20%28Parte%20I%29" target="_blank" title="Analisis capturas tráfico red. Interpretación Datagrama IP. (Parte I)"> </a></p>
<p>Ya vimos en el capítulo <a rel="bookmark" href="http://seguridadyredes.nireblog.com/post/2008/01/17/analisis-capturas-trafico-red-interpretacian-datagrama-ip-parte-i">Analisis capturas tráfico red. Interpretación Datagrama IP. (Parte I)</a> los campos contenidos en la <strong>cabecera de un datagrama IP</strong>. Ante la petición de aclaración y mejor explicación de estos conceptos en comentarios y algún correo, paso a actualizar el mencionado artículo, avanzar y explicar mejor todos los conceptos involucarados.</p>
<p>Decíamos en el artículo de referencia......:</p>
<p>Una de las tareas habituales de un administrador de red es el <strong>análisis de los logs<em> </em>de tráfico de la red</strong>. Análisis que puede ser de rendimiento ó seguridad. Tráfico de la LAN, entrante y saliente a través de cortafuegos, análisis de <a href="http://seguridadyredes.nireblog.com/cat/snort" target="_blank" title="sistemas de detección de Intrusos IDS Snort">Sistemas de Detección de Intrusos</a>, capturas de tráfico de red, etc.</p>
<p>Para ello contamos con variadas herramientas. Entre ellas <strong>Snort, TCPDump/Windump, <a href="http://seguridadyredes.nireblog.com/cat/wireshark-tshark" target="_blank" title="Wireshark en Seguridad y Redes">WireShark</a></strong>, etc. (Destaco estas tres últimas por estar basadas en la librería <strong>libpcap</strong>).</p>
<p>En este artículo vamos a <strong>analizar las capturas en hexadecimal</strong> de estas herramientas para obtener todos los datos posibles de las <strong>cabeceras IP</strong>, <a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" target="_blank" title="SEGMENTO TCP"><strong>segmento TCP</strong></a>, además de comprender de forma más visual los conceptos TCP/IP.</p>
<p>En esta actualización del artículo, veremos también estos conceptos, no solo a través de una captura <a href="http://seguridadyredes.nireblog.com/post/2008/01/17/analizando-la-red-con-windump-tcpdump-iv-parte-avanzando-en-los-filtros" target="_blank" title="tcpdump windump trafico red">tcpdump / windump</a>, tambíen a través de <strong><a href="http://seguridadyredes.nireblog.com/cat/wireshark-tshark" target="_blank" title="Wireshark en Seguridad y Redes">WireShark</a></strong>.</p>
<!--more-->
<p>Las herramientas mencionadas hacen uso de<strong><a href="http://www.tcpdump.org/"> Libpcap</a></strong>, que es una librería de código abierto que ofrece al programador una interfaz desde la que capturar paquetes en la capa de red. La implementación para windows es <strong><a href="http://www.winpcap.org/">Winpcap</a></strong>. Entre las utilidades más importantes de los analizadores de tráfico de red está la que nos proporciona la <strong>salida en hexadecimal</strong> de las capturas.</p>
<p>En este artículo vamos a <strong>analizar dichas capturas en hexadecimal</strong> para obtener todos los datos posibles de las cabeceras IP y segmentos TCP, además de comprender de forma más visual los conceptos TCP/IP.</p>
<p>Para ello usaremos <strong>TCPDump <em>(Linux/Unix)</em></strong> / <strong>Windump <em>(Windows)</em></strong>.También usaremos <strong>Wireshark</strong>.</p>
<p>Antes que nada recordar un poco como funciona TCPDump / Windump:</p>
<ul>
<li><strong>Seguridad y Redes</strong> <a href="http://seguridadyredes.nireblog.com/post/2008/01/11/analizando-la-red-con-windump-tcpdump-i-parte">Analizando la Red con WinDump / TCPDump <em>(I Parte)</em></a></li>
<li><strong>Seguridad y Redes</strong> <a href="http://seguridadyredes.nireblog.com/post/2008/01/11/analizando-la-red-con-windump-tcpdump-ii-parte">Analizando la Red Con WinDump / TCPDump <em>(II Parte)</em></a></li>
<li><strong>Seguridad y Redes</strong> <a href="http://seguridadyredes.nireblog.com/post/2008/01/14/analizando-la-red-con-windumptcpdump-parte-iii">Analizando la Red con WinDump/TCPDump <em>(Parte III)</em></a></li>
</ul>
<p><a href="http://seguridadyredes.nireblog.com/post/2008/11/25/analisis-de-red-con-wireshark-interpretando-las-graficas-i-parte" target="_blank" title="interpretar datos wireshark">Recordamos algo básico sobre el funcionamiento de Wireshak</a>.</p>
<p>Y recordar también los conceptos TCP/IP:</p>
<ul>
<li><a href="http://es.wikipedia.org/wiki/TCP/IP">http://es.wikipedia.org/wiki/TCP/IP</a></li>
<li><a href="http://www.saulo.net/pub/tcpip/">http://www.saulo.net/pub/tcpip/</a></li>
</ul>
<p>Para las salidas en hexadecimal usaremos la opción <strong><em>-x</em></strong> de tcpdump / windump que captura por defecto <strong>68 bytes</strong>.</p>
<p>Para capturar toda la información usamos el <strong>snaplen <em>(-s0)</em></strong>. A cero estamos cogiendo los paquetes completos.</p>
<p>Si hubiéramos puesto <strong>-s 512</strong> se capturarían sólo los primeros <strong>512 bytes</strong> de un determinado paquete.</p>
<p>Comenzamos.</p>
<h3><strong>Interpretación de un Datagrama IP.</strong></h3>
<p>Para mejor referencia tenemos abajo el formato de la cabecera de <strong>datagrama IP</strong>:</p>
<p><img id="image214950" class="imgcentro" src="http://seguridadyredes.nireblog.com/blogs1/seguridadyredes/files/datagrama-ip-alfon.png" alt="Datagrama IP" align="middle" /></p>
<p>Esta es una salida en hexadecimal de cualquiera de los analizadores<br /> de red mencionados más arriba, en este caso tcpdump, aunque podemos usar también Tshark:</p>
<pre><img id="image537324" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/hexa_ip_c.png" alt="captura hexadecimal datos cabecera ip windump tcpdump" align="middle" /></pre>
<p>En la primera línea tenemos ya algunos datos <em>(esto ya lo hemos visto en el artículo de tcpdump)</em>. Si embargo vamos a descifrar la cabecera para obtener los mismos y otros datos importantes.</p>
<p><u><strong>NOTA:</strong></u> Para no perder detalle, observemos al gráfico de la cabecera IP y la captura hexadecimal para ver a que corresponde cada valor quepaso a explicar a continuación. <strong><font color="#990033">Coloreo los primeros valores para que sea más facil localizarlos</font></strong>.</p>
<p><strong>DATAGRAMA IP</strong></p>
<p><strong>VERSION: <font color="#990033">4</font></strong> Tiene una longitud de 4 bits. En este caso 4 (0100 en binario) Se trata de la versión del formato de la cabecera IP. Vemos que 4 corresponde a la versión ipv4. si el valor fuera 6, se trataría de la versión ipv6.</p>
<p><strong>IHL: <font color="#009900">5</font></strong>  ó longitud de la cabecera en palabras de 32 bits. En este caso: 5*32=160 bits. El valor mínimo es <strong>5</strong>. Este campo indica en que punto o bit  termina la cabecera del datagrama. Esto es así porque al ser el datagrama de longitud variable devido a las opciones, también de tamaño variable, se necesita saber donde comenzará la parte de datos del paquete.</p>
<p><strong>TOS: <font color="#003399">00</font></strong> Tipo de servicio respecto a la fiabilidad, velocidad, retardo, seguridad, etc deseados. Tiene un tamaño de 8 bits, en este caso 00000000. Hay que tener en cuenta que algunas redes ofrecen <strong><em>prioridad de servicio</em></strong> para dar mayor importancia a este tipo de tráfico.</p>
<blockquote style="background-color: #ccccff"><p><u><font color="#000066">Tabla de valores para TOS</font></u></p>
<ul>
<li>
<p><font color="#000066"><strong>Bits 0-2</strong>  Prioridad.</font></p>
</li>
<li>
<p><font color="#000066"><strong>Bit    3</strong>  0 = Demora Normal, 1 = Baja Demora.</font></p>
</li>
<li>
<p><font color="#000066"><strong>Bit    4</strong>  0 = Rendimiento Normal, 1 = Alto rendimiento.</font></p>
</li>
<li>
<p><font color="#000066"><strong>Bit    5</strong>  0 = Fiabilidad Normal, 1 = Alta fiabilidad.</font></p>
</li>
<li>
<p><font color="#000066"><strong>Bits 6-7</strong>  Reservado para uso futuro.</font></p>
</li>
</ul>
</blockquote>
<p>En este caso:</p>
<p>prioridad <u>0</u> y demora, rendimiento y fiabilidad: <u>normal</u></p>
<p><strong>TOTAL LENGTH: <font color="#cc6600">0064</font></strong>  Longitud total del datagrama medida en octetos. Se incluyen los datos encapsulados, cabecera y datos.</p>
<p>La longitud del campo es de 16 bits. De esta manera la longitud máxima es (1111111111111111) = 65535 bytes. En este caso 100 bytes.</p>
<p><strong>ID: 8a01</strong> Número de identificación único por cada datagrama que permitirá el reensamblaje posterior al ser dividido en fragmentos más pequeños. Longitud 16 bits. En este caso Id=35329. Lo asigna el remitente en la conexión. El valor de este campo junto a la información de <strong>Source IP</strong> y <strong>Destination IP</strong>, resuelve la identificación única del paquete al que hace referencia.</p>
<p><strong>FLAGS: 4 </strong> Bandera (Flag) Campo de 3 bits.Indicadores de control. Usado en caso de defragmentación.</p>
<ul>
<li>El primer bit esta reservado y es siempre 0.</li>
<li>El segundo es el el bit de indicación de no fragmentación (DF). (010)</li>
<li>El tercero (MF) es de verificación que el datagrama llega a su destino (001) completo, está activo en todos los datagramas enviados excepto en el último para informar que ya no hay más fragmentos.</li>
</ul>
<p><strong>FRAGMENT OFFSET: 000 </strong> Posición. Longitud de 13 bits. Posición del fragmento dentro del datagrama en caso de fragmentación.</p>
<p><strong>TTL: 80 </strong>Tiempo de vida. Longitud 8 bits. Impide que un paquete esté indefinidamente viajando por la red. En este caso 128 indica que cada vez que un datagrama atraviese un router este numero se decrementa en 1. cuando el TTL llege a 0 el datagrama se descarta y se informa de ello al origen con un mensaje de tiempo excedido.</p>
<p><strong>PROTOCOL: 06</strong>  Protocolo. Se refiere al protocolo de siguiente nivel que se usa en la parte de datos. Longitud 8 bits. En este caso hex(06) (00000110) = TCP en decimal sería 6.</p>
<blockquote style="background-color: #ccccff"><p><u><font color="#000099">Valores para los protocolos</font></u></p>
<p><font color="#000099">1 ICMP, 2 IGMP, 6 TCP, 9 IGRP, 17 UDP, 47 GRE, 50 ESP, 51 AH, 88 EIGRP, 89 OSPF, 115 L2TP.</font></p>
</blockquote>
<p><strong>HEADER CHEKSUM: ec4e</strong> (CRC) o Suma de Control de la Cabecera. Longitud 16 bits. Es la suma de comprobación de errores de la cabecera del datagrama. Este número se calcula nuevamente en cada salto del datagrama a través de los routers.</p>
<p><strong>SOURCE ADDRESS: c0.a8  01.f0</strong>  dirección origen: 192.168.1.240  longitud 32 bits.</p>
<p><strong>DESTINATION ADDRESS: c0.a8  01.03</strong>  dirección destino: 192.168.1.3  longitud 32 bits.</p>
<p>Tenemos otro campo que es <strong>Options</strong> <em>(<strong>Opciones</strong>)</em> de <strong>longitud variable</strong> con información opcional para el datagrama. Puede tener 0 o más opciones.  Y <strong>Padding</strong> <em>(Relleno)</em> también de longitud variable. Asegura que la cabecera IP termine en múltiplo de 32 bits.</p>
<p>Según el <strong>RFC0791</strong> Las opciones <strong>Options</strong> pueden o no aparecer en los datagramas. Deben ser implementadas por todos los módulos IP <em>(host y pasarelas)</em>. Lo que es opcional es su transmisión en cualquier datagrama en particular, no su implementación.</p>
<p><strong><u>NOTA</u>: Este campo de opciones lo veremos de forma más detallada en otro artículo. </strong></p>
<p>El último campo es <strong>Data</strong>, de longitud variable, conteniendo los datos a enviar. La longitud máxima es 64 Kbytes y comienza con el contenido de la cabecera del protocolo de siguiente nivel, es decir <a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" target="_blank" title="TCP SEGMENTO">TCP</a> o <a href="http://seguridadyredes.nireblog.com/post/2008/02/06/analisis-capturas-trafico-de-red-interpretacion-datagrama-udp-iii" target="_blank" title="INTERPRETACION DATAGRAMA UDP">UDP</a>. Los datos y encabezamiento del <a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" target="_blank" title="SEGMENTO TCP"><strong>segmento TCP</strong></a> van <strong>dentro del campo Data del datagrama IP</strong>, es lo que llamamos <u><strong>encapsulación</strong></u>.</p>
<p>En este caso el campo <strong>Data </strong>comienza con con los campos de la cabecera del <a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" target="_blank" title="SEGMENTO TCP"><strong>segmento TCP</strong></a> puerto origen y puerto destino:</p>
<p><strong>008b</strong>  Puerto origen 139</p>
<p><strong>044a</strong>  Puerto Destino 1098</p>
<p><strong>Formato de la cabecera TCP <em>(encapsulado en el Data del segmento IP)</em></strong></p>
<p><img id="image214950" class="imgcentro" src="http://seguridadyredes.nireblog.com/blogs1/seguridadyredes/files/datagrama-ip-alfon.png" alt="Datagrama IP" align="middle" /></p>
<h3><strong>Valores Cabecera Datagrama IP en Wireshark.</strong><br /> </h3>
<p>Bien. Vamos ahora a ver los conceptos estudiados sobre la cabecera del datagrama IP, pero en una captura Wireshark cualquiera.</p>
<p><img id="image537326" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/hexa_ip_w.png" alt="cabecera datagrama ip en wireshark " align="middle" /></p>
<p>Vemos en la<strong> ventana de protocolos</strong> señalado el item correspondiente a los datos de la cabecera IP. <strong>Internet Protocol</strong> y su correspondencia (abajo) con los datos en hexadecimal.</p>
<p>Apreciamos valores, <strong>ya explicados al principio de este artículo</strong>, de</p>
<ul>
<li><strong>Version</strong>: 4</li>
<li><strong>Header Length</strong>: 20 bytes, se refiere a IHL de la cabecera.</li>
<li><strong>Differenciated Services Field</strong>. (TOS). Tipo de servicio.</li>
<li><strong>Total Length</strong>: 40</li>
<li><strong>Identification</strong> 0xb680 (46720)</li>
<li><strong>Flags</strong>: 0x04. E nes te caso vemos activado en bit de No fragmentado.</li>
<li><strong>Fragment Offset</strong>: 0</li>
<li><strong>Time to Live</strong>: 128 (TTL)</li>
<li><strong>Protocol</strong>: TCP (0x06) como viemos en el cuadro de protocolos posibles.</li>
<li><strong>Header checksum</strong>:  0x6e36</li>
<li><strong>source</strong> y <strong>destination</strong></li>
</ul>
<p>Apreciamos unos campos para mostrar información de <a href="http://seguridadyredes.nireblog.com/post/2009/10/27/wireshark-estadisticas-y-geoip" title="wireshartk y geolocalizacion IP">geolocalización</a> de las IP <a href="http://seguridadyredes.nireblog.com/post/2009/10/27/wireshark-estadisticas-y-geoip" target="_blank" title="wireshark y geolocalizacion IP">GeoIP</a> (<a href="http://seguridadyredes.nireblog.com/post/2009/10/27/wireshark-estadisticas-y-geoip" target="_blank" title="wireshark y estadisticas geoip">vimos como usar Wireshark y GeoIP en este artículo</a> ):</p>
<p><img id="image535306" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/button_geoip2.gif" alt="geoip golite wireshark" width="159" height="56" align="middle" /></p>
<ul>
<li><strong>no</strong> procede la <a href="http://seguridadyredes.nireblog.com/post/2009/10/27/wireshark-estadisticas-y-geoip" title="wireshartk y geolocalizacion IP">geolocalización</a> de la IP de origen por ser local.</li>
<li><strong>procede</strong> la <a href="http://seguridadyredes.nireblog.com/post/2009/10/27/wireshark-estadisticas-y-geoip" title="wireshartk y geolocalizacion IP">geolocalización</a> de IP destino</li>
</ul>
<p>--------------------------------------------------------------------------------</p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/11/05/wireshark-windump-analisis-capturas-trafico-red-interpretacian-datagrama-ip-actualizacian#comments">Comments</a></p>]]></description>
	<pubDate>Thu, 05 Nov 2009 11:54:07 +0100</pubDate>	</item>
	<item>
	<title>Wireshark. Analizando eventos SMB / CIFS - NetBIOS. Parte 2.</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/11/03/wireshark-analizando-eventos-smb-cifs-netbios-parte-2</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/11/03/wireshark-analizando-eventos-smb-cifs-netbios-parte-2</guid>
		<description><![CDATA[<p>Seguimos avanzando en el análisis de eventos <strong>SMB</strong> / <strong>CIFS</strong> y <strong>NETBIOS</strong>. Ya vimos en la primera parte de esta serie (<font size="2"><strong><a rel="bookmark" href="http://seguridadyredes.nireblog.com/post/2009/10/29/wireshark-analizando-eventos-smb-cifs-netbios-parte-1">Wireshark. Analizando eventos SMB / CIFS - NetBIOS. Parte 1.</a></strong></font>) algunos eventos <strong>SMB</strong>, a través de <strong>Wireshark</strong>, involucrados en una conexión de un host a otro para usar un  determinado recurso compartido. En el primer artículo nos centramos en la petición de resolución de nombre de host mediante <strong>Name query NB</strong>. En esta segunda parte la dedicaremos a la respuesta <strong>Name query response NB</strong>.</p>
<p>
<!--more-->
</p>
<p>volvemos a la captura de la Parte 1 de la serie:</p>
<p><img id="image535578" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/smb02.png" alt="wireshark  smb cifs netbios analisis" align="middle" /></p>
<p><font size="4"><strong>Paquete 11. NAME QUERY RESPONSE NB 192.168.76.1  (00) </strong></font></p>
<p>Comienza la sesión con una petición de de resolución de nombre de host mediante <strong>Name query NB CLIENTE<00></strong> Esto se hace usando NetBios mediante broadcast (192.168.1.255).</p>
<p>Responde <strong>192.168.1.30</strong> con <strong>Name query response NB 192.168.76.1</strong></p>
<p><strong><u>NOTA</u>:</strong> Observad que aparcece la IP <strong>192.168.76.1</strong> en vez de <strong>192.168.1.30</strong> que sería lo lógico. Esto es así porque el host CLIENTE tiene otra interface de red (<strong>virtual</strong>) que corresponde a VMWare. De cualquier forma, vemos que la <strong>NIC física</strong> está indicada en la captura en la columna <strong>Source</strong>: (<strong>192.168.1.30</strong>)</p>
<p>Al igual que <strong>Name query NB, response</strong> también usa el puerto UDP 137:</p>
<p><img id="image536889" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/smb20.png" alt="wireshark name query response" align="middle" /></p>
<p>Vemos muchas más diferencias respecto a<strong> Name query NB</strong>, vamos a verlas.</p>
<p>Antes que nada nos fijamos en el campo <strong>Transaction ID</strong>. (0x8022) que ya vimos que se refería a la identificación del proceso de resolución de nombre. Pues esta identificación es la misma (<strong>0x8022</strong>) tanto para <strong>Name query NB</strong> como para <strong>Name query response</strong>. Esto es así para indentifica un mismo proceso, proceso de petición y de respuesta. Paquetes 7 y 11.</p>
<p>Vamos ahora al resto de campos.</p>
<p>... antes que nada la referencia de la cabecera:</p>
<p><img id="image535843" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/smb05.png" alt="header o cabecera nombre servicio netbios" align="middle" /></p>
<ul>
<li><strong>Opcode</strong>. código de tipo de paquete. Se divide a su vez en dos campos: <strong>Response</strong> (<strong>1</strong>) en este caso inica un <strong>Message is a response</strong> y <strong>Opcode</strong> propiamente dicho (0) que indica un <strong>query</strong>.</li>
</ul>
<ul>
<li><strong>Flags</strong> (0x8500) :</li>
</ul>
<ul>
<ul>
<li><strong>Truncated</strong> (<strong>0</strong>). Indica no truncado. Para establecer si el contenido es mayor que <strong>576</strong> bytes.</li>
<li><strong>Recursion desired</strong> (<em>1</em>) se encuentra activado e indica que se trata de un query o pregunta recurrente.</li>
<li><strong>Broadcast</strong> (<strong>0</strong>) desactivado, indica que no es un paquete broadcas y no se usa.</li>
</ul>
</ul>
<p>Se añaden otros flags / campos que son los siguientes:</p>
<ul>
<ul>
<li><strong>Authoritative</strong> (<strong>1</strong>).</li>
<li><strong>Recursion available</strong> (<strong>0</strong>)</li>
<li><strong>Reply code</strong> (<strong>0</strong>) ó <strong>RECODE </strong>Muestra un código con el resultado de la petición name query (paquete 7de la captura wireshark). En este caso (<strong>0</strong>) indicando <strong>No error</strong>. <u>Otros códigos son</u>:</li>
</ul>
</ul>
<blockquote><blockquote>
<blockquote>
<ul>
<li><strong>0</strong> indica que no hay error</li>
<li><strong>1</strong> error de formato</li>
<li><strong>2</strong> error de servidor</li>
<li><strong>3</strong> error de nombre</li>
<li><strong>4</strong> solicitud no compatible.</li>
<li><strong>5</strong> por politicas de servidor, denegación de respuesta.</li>
<li><strong>6</strong> Active error. </li>
<li><strong>7</strong> error de nombre. Conflico. </li>
</ul>
</blockquote>
</blockquote>
</blockquote>
<p> Seguimos:
<ul>
<li><strong>QUESTION ENTRIES</strong> ó <strong>Questions</strong>. (<strong>0</strong>) Número entero que indica en número de entradas coincidente con una pregunta por nombre. En este caso 0. Se trata de una respuesta.</li>
<li><strong>ANCOUNT</strong> ó <strong>Answer RRs</strong> (<strong>1</strong>). Indica número de recursos o registros que se tratan de una respuesta.</li>
<li><strong>NSCOUNT </strong>ó <strong>Authority</strong> <strong>RRs</strong> (<strong>0</strong>). Número de registros de la sección <em>authority</em> de <strong>Name Serivce packet</strong></li>
<li><strong>ARCOUNT</strong> ó <strong>Additional RRs</strong>. (<strong>0</strong>) Número indicando recursos adicionales.</li>
</ul>
<p>El siguiente campo tratándose de un paquete <strong>Name query response NB</strong>, se llama <strong>Answers</strong>, al contratio de <strong>Queries</strong>, que veíamos en el capítulo anterior para un paquete <strong>Name query NB.</strong></p>
<p>Este campo contiene la respuesta a la petición del <strong>Name query NB.</strong> REsponde con el nombre de host y su IP. Aquí vemos <strong>3</strong> IPs que corresponden a las tres interfaces de red: 2 VMWare y una física <strong>192.168.1.30</strong>:</p>
<p><img id="image537034" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/smb21.png" alt="wireshark. Campo answer netbios con b-node." align="middle" /></p>
<p>Básicamente y de forma sencilla. En el procedimiento de resolución del nombres, que se basan en broadcast, en servidor o en ambos, se pueden usar:</p>
<ul>
<li>broadcast a la red, </li>
<li>usando NETBIOS: NBNS ó WINS (sistemas Windows). </li>
</ul>
<p>por ello, cada host se puede configurar:</p>
<ul>
<li>solo usando broadcast</li>
<li>solo NBNS</li>
<li>primero broadcast y seguidamente NBNS en el  caso de no respuesta al broadcast.</li>
<li>lo contrario de lo anterior. Primero NBNS y en caso de no respuesta broadcasting. </li>
</ul>
<p>Eso lo vemos en nuestra captura en los campos:</p>
<ul>
<li><strong>b-node </strong>(<strong>00</strong>). cuando solo se usa broadcast a la red</li>
<li><strong>p-node</strong> (<strong>01</strong>). cuando solo se usa NBNS</li>
<li><strong>m-node</strong> (<strong>10</strong>). cuando se usa primero broadcast y en caso de no obtenerr respuesta se usa NBNS.</li>
<li><strong>h-node</strong> (<strong>11</strong>). cuando primero se realiza mediante NBNS y en caso de no respuesta broadcasting.</li>
</ul>
<p>Vemos en nuestra captura <strong>que las 3 respuestas obtenidas para las tres IPs, se realizan bajo <u>b-node (00)</u> o broadcast a la red</strong>.</p>
<p> Apreciamos también otras informaciones como <strong>TTL</strong> (Time To Live), <strong>Type NB </strong>(Servicios de nombres de NETBIOS), <strong>Class</strong> (Resource Record Class), en este caso <strong>I</strong>nternet <strong>C</strong>lass.<br /> -----------------------------------</p>
<p>En el siguiente capítulo veremos los siguientes paquetes correspondientes a ICMP Echo request y Echo reply para  obtención de la dirección MAC, el establecimiento de conexión con el recurso, ngoaciación del protocolo Request y Response (SMB), etc. </p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/11/03/wireshark-analizando-eventos-smb-cifs-netbios-parte-2#comments">Comments</a></p>]]></description>
	<pubDate>Tue, 03 Nov 2009 18:01:14 +0100</pubDate>	</item>
	<item>
	<title>Wireshark. Analizando eventos SMB / CIFS - NetBIOS. Parte 1.</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/10/29/wireshark-analizando-eventos-smb-cifs-netbios-parte-1</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/10/29/wireshark-analizando-eventos-smb-cifs-netbios-parte-1</guid>
		<description><![CDATA[<p>Ya vimos en el artículo <a rel="bookmark" href="http://seguridadyredes.nireblog.com/post/2008/05/21/tshark-detectando-borrado-de-archivos-de-la-red-y-otros-eventos">Tshark. Detectando borrado de archivos de la red y otros eventos.</a>, algunos eventos <strong>SMB</strong> a través de <strong>Wireshark</strong>, tales como borrado de archivos y toda la información que se podía extraer capturando sesiones <strong>SMB</strong>, etc. A petición de lectores que me piden este artículo usando <strong>Wireshark</strong> en vez de <strong>Tshark</strong>, aprovecho, también, para <u>explicar y avanzar un poco más en los protocolos <strong>SMB, CIFS Y NETBIOS</strong></u>.</p>
<p><strong>SMB</strong> (<strong><em>Server Message Block</em></strong>), básicamente se trata de un protocolo que permitre <strong>compartir archivos, impresoras, puertos serie, etc entre hosts conectados en red</strong>. Pertenece a la capa de aplicación <strong>OSI</strong> y es un protocolo del tipo cliente-servidor. <strong>SMB</strong> se encuentra por encima de <strong>NETBIOS</strong>, que es la que se encarga de la resolución de Nombre host / IP.</p>
<p><strong>CIFS</strong> (<strong><em>Common Internet File System</em></strong>) es una implementación que supone, también, una evolución de <strong>SMB</strong> para el sistema <strong>Windows</strong> en sus versiones más modernas. Al tratarse de un protocolo de alto nivel, necesita apoyarse en protocolos de transporte como <strong>NETBIOS</strong>. Al ser una evolución e implementación de SMB, es también un protocolo cliente-servidor.</p>
<p><img id="image535843" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/smb05.png" alt="header o cabecera nombre servicio netbios" align="middle" /></p>
<p>La forma de trabajar de <strong>CIFS,</strong> como envía paquetes <strong>request de cliente a servidor</strong>, como responde, etc, etc.</p>
<p>Todo esto lo veremos, como siempre, con ejemplos de capturas <strong>Wireshark</strong>.</p>
<p>
<!--more-->
</p>
<p>Para, en este artículo,  entender <strong>SMB/CIFS</strong>, vamos a centrarnos, en las capturas, a todo lo referente a estos protocolos y las trazas quese ven involucradas.</p>
<p>Comenzamos con la siguiente captura con los filtros adecuados para la ocasión y observemos el intercambio de paquetes entre <strong>CLIENTE</strong> (<strong>192.168.1.30</strong> ) Y <strong>SISTEM</strong> (<strong>192.168.1.5</strong>), los dos host involucrados en una sesión en la que SISTEM se conecta a CLIENTE para usar el recurso compartido <strong>COMPARTIR</strong> y usa los archivos de dicha carpeta editándolos, borrando o creando un nuevo.</p>
<p>Parte de la captura es la siguiente:</p>
<p><img id="image535578" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/smb02.png" alt="wireshark  smb cifs netbios analisis" align="middle" /></p>
<p><font size="4"><strong>Paquete 7. NAME QUERY NB CLIENTE (00) </strong></font></p>
<p>Comienza la sesión con una petición de de resolución de nombre de host mediante <strong>Name query NB CLIENTE<00></strong> Esto se hace usando NetBios mediante broadcast (192.168.1.255).</p>
<p>Responde 192.168.1.30 con <strong>Name query response NB 192.168.76.1</strong></p>
<p><strong>NOTA:</strong> Observad que aparcece la IP 192.168.76.1 en vez de 192.168.1.30 que sería lo lógico. Esto es así porque el host CLIENTE tiene otra interface de red que corresponde a VMWare.</p>
<p><strong>Name query NB</strong> y <strong>Name query response</strong> usan el puerto 137y UDP.</p>
<p><img id="image535590" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/smb03.png" alt="ventana protocolo wireshark NetBIOS Name query" align="middle" /></p>
<p>Vamos a hora a fijarnos en la ventana de protocolos (imagen de arriba). Observamos como hemos indicado ya los puertos usados (137) y nos centramos en <strong>NetBIOS Name Service</strong>.</p>
<p>Y para tener una referencia tenemos aquí el <strong>formato de paquete de Name Service de NETBIOS</strong>:</p>
<p><img id="image535842" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/smb04.png" alt="formato paquete name service (nombre servicio) NETBIOS" align="middle" /></p>
<p>Y, a continuación el <strong>Header o cabecera</strong>:</p>
<p><img id="image535843" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/smb05.png" alt="header o cabecera nombre servicio netbios" align="middle" /></p>
<p>Y ahora a destripar los datos.</p>
<p>Tenemos una sere de <strong>campos y Flags</strong>:</p>
<ul>
<li><strong>NAME_TRN_ID </strong>ó <strong>Transaction ID</strong>. (0x8022) Identificación del proceso de resolución de nombre.</li>
</ul>
<ul>
<li><strong>Opcode</strong>. código de tipo de paquete. Se divide a su vez en dos campos: <strong>Response</strong> (0) en este caso inica un <strong>message is a query</strong> y <strong>Opcode</strong> propiamente dicho (0) que indica un <strong>query</strong>.</li>
</ul>
<ul>
<li><strong>Flags</strong> (0x0110) :</li>
</ul>
<ul>
<ul>
<li><strong>Truncated</strong> (0). Indica no truncado</li>
<li><strong>Recursion desired</strong> (1) se encuentra activado e indica que se trata de un query o pregunta recurrente.</li>
<li><strong>Broadcast</strong> (1) está activado e indica que la resolución se realiza a través de un paquete broadcast.</li>
</ul>
</ul>
<ul>
<li><strong>RCODE</strong>. Muestra un código con el resultado de la petición <strong>name query</strong> (paquete 7 de la captura wireshark). Lógicamentre no aparece aquí, aparecerá en el resultado o <strong>Name query response</strong>.</li>
</ul>
<ul>
<li><strong>QUESTION ENTRIES</strong> ó <strong>Questions</strong>. (1) Número entero que indica en número de entradas coincidente con una pregunta por nombre.</li>
<li><strong>ANCOUNT</strong> ó <strong>Answer RRs</strong> (0). Indica número de recursos que se tratan de una respuesta, en este caso obviamente es 0 porque es una pregunta.</li>
<li><strong>ARCOUNT</strong> ó <strong>Additional RRs</strong>. (0) BNúmero indicando recursos adicionales.</li>
</ul>
<p>Vemos también el campo <strong>Queries</strong> que nos da infomación de la pregunta o consulta solicitada, en este caso preguntamos por la máquina <strong>CLIENTE</strong>.</p>
<p>Y hasta aquí la primera parte en la que hemos tratado de destripar, sacar información, del paquete<strong> Name query NB</strong>, <strong>paquete nº 7</strong> de nuestra captura. En los siguientes cápitulos veremos la resupuesta o <strong>Name query response</strong> (paquete 11) de la captura.</p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/10/29/wireshark-analizando-eventos-smb-cifs-netbios-parte-1#comments">Comments</a></p>]]></description>
	<pubDate>Thu, 29 Oct 2009 13:06:06 +0100</pubDate>	</item>
	<item>
	<title>Wireshark / Tshark. Filtros GeoIP. </title>
	<link>http://seguridadyredes.nireblog.com/post/2009/10/28/wireshark-tshark-filtros-geoip</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/10/28/wireshark-tshark-filtros-geoip</guid>
		<description><![CDATA[<p>En el anterior artículo dedicado a <a href="http://seguridadyredes.nireblog.com/post/2009/10/27/wireshark-estadisticas-y-geoip" title="wireshark geoip geolite estadisticas">Wireshark y GeoIP / GeoLite </a>, tratamos la geolocalización a partir de una determinada <a href="http://seguridadyredes.nireblog.com/post/2008/01/17/analisis-capturas-trafico-red-interpretacian-datagrama-ip-parte-i" target="_blank" title="Datagrama IP "><strong>IP</strong></a>, mostrantdo datos como Paises, Ciudades, Longitud y Latitud, etc, en las estadísticas. Ahora, veremos como <strong><a href="http://seguridadyredes.nireblog.com/cat/wireshark-tshark" target="_blank" title="wireshark tshark">Wireshark y Tshark</a> </strong>disponen de una serie de <a href="http://seguridadyredes.nireblog.com/post/2008/03/24/analisis-de-red-con-wireshark-filtros-de-captura-y-visualizacian" title="wireshark filtros de visualizacion o display filters">Filtros de visualización </a>( <a href="http://seguridadyredes.nireblog.com/post/2008/03/24/analisis-de-red-con-wireshark-filtros-de-captura-y-visualizacian" target="_blank" title="display filters">Display Filters</a> ) para <strong><a href="http://seguridadyredes.nireblog.com/post/2009/10/27/wireshark-estadisticas-y-geoip" target="_blank" title="wireshark y geoip geolite">GeoIP</a></strong>.</p>
<p>
<!--more-->
</p>
<p><strong>Los distintos filtros para GeoIP son los siguientes:</strong></p>
<p>filtro | tipo de cadena | descripción | versión wireshark</p>
<table border="0" class="shaded">
<tbody>
<tr>
<td><font size="1">ip.geoip.asnum</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Source or Destination GeoIP AS Number</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.city</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Source or Destination GeoIP City</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.country</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Source or Destination GeoIP Country</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.dst_asnum</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Destination GeoIP AS Number</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.dst_city</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Destination GeoIP City</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.dst_country</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Destination GeoIP Country</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.dst_isp</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Destination GeoIP ISP</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.dst_lat</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Destination GeoIP Latitude</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.dst_lon</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Destination GeoIP Longitude</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.dst_org</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Destination GeoIP Organization</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.isp</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Source or Destination GeoIP ISP</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.lat</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Source or Destination GeoIP Latitude</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.lon</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Source or Destination GeoIP Longitude</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.org</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Source or Destination GeoIP Organization</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.src_asnum</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Source GeoIP AS Number</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.src_city</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Source GeoIP City</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.src_country</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Source GeoIP Country</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.src_isp</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Source GeoIP ISP</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.src_lat</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Source GeoIP Latitude</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.src_lon</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Source GeoIP Longitude</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
<tr>
<td><font size="1">ip.geoip.src_org</font></td>
<td><font size="1">String</font></td>
<td><font size="1">Source GeoIP Organization</font></td>
<td><font size="1">1.2.1 to 1.2.2</font></td>
</tr>
</tbody>
</table>
<p><strong>La manera de aplicarlos es la misma que para cualquier filtro:</strong></p>
<p><img id="image535433" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/geoip11.png" alt="geoip  geolite wireshark filtros" align="middle" /></p>
<p>Aplicado el filtro aparecerán las trazas correspondientes.</p>
<p>Podríamos usar otro filtro como este para depurar algo más:</p>
<p align="center"><strong><font color="#000099">ip.geoip.country == "Spain" &amp;&amp; ip.geoip.city contains "Barcelona" </font></strong></p>
<p><strong>Wireshark</strong> nos muestra también la información<strong> GeoIP</strong> en la misma <strong>ventana de protocolos</strong>, en un campo denominado <strong>Source GeoIP</strong>:</p>
<p><font color="#ffffff"><a href="http://files.nireblog.com/blogs1/seguridadyredes/files/geoip13.png" title="informacion geoip en ventana de protocolos en wireshark" class="imagelink"><img id="image535448" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/geoip13.png" alt="informacion geoip en ventana de protocolos en wireshark" align="middle" /></a></font></p>
<p><strong>Podemos hacer uso también de los filtros GeoIP con Tshark en línea de comandos:</strong></p>
<p><img id="image535444" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/geoip12.png" alt="geoip con tshark" align="middle" /></p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/10/28/wireshark-tshark-filtros-geoip#comments">Comments</a></p>]]></description>
	<pubDate>Wed, 28 Oct 2009 08:42:09 +0100</pubDate>	</item>
	<item>
	<title>Wireshark. Estadísticas y GeoIP.</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/10/27/wireshark-estadisticas-y-geoip</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/10/27/wireshark-estadisticas-y-geoip</guid>
		<description><![CDATA[<p><strong>GeoIP</strong> es un recurso que nos sirve para, <strong>a partir de una determinada IP, saber la ubicación geográfica correspondiente</strong>. Podemos usar <strong>GeoIP</strong> con ASP, con APIs, puede integrarse en un Web Server, etc. Pero lo más importante para nosotros es su <strong>integración con <a href="http://seguridadyredes.nireblog.com/cat/wireshark-tshark" target="_blank" title="Articulos sobre wireshark y tshark">Wireshark</a></strong>. Para ello usaremos la versión gratuíta <strong>GeoLite</strong>.</p>
<p><img id="image535306" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/button_geoip2.gif" alt="geoip golite wireshark" align="middle" /></p>
<p>
<!--more-->
</p>
<p><font size="3"><strong>Descarga y ubicación de bases de datos GeoIp.</strong></font></p>
<p>Necesitamos las siguientes bases de datos:</p>
<ul>
<li><a href="http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz" target="_blank" title="geoip.dat">Geoip.dat </a></li>
<li><a href="http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz" target="_blank" title="GeoLiteCity.dat">GeoLiteCity.dat</a></li>
<li><a href="http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz" target="_blank" title="GeoIPASNum.dat">GeoIPASNum.dat</a></li>
</ul>
<p><strong>Creamos una carpeta</strong>, por ejemplo <em>C:\Archivos de programa\Wireshark\goip</em> y volcamos ahílos ficheros dat descargados.</p>
<p><strong><font size="3">Configuración  Wireshark para GeoIP.</font></strong></p>
<p>En el menú <u><strong>Edit > Preferences > Name Resolution</strong></u>, a la derecha tenemos <strong>GeoIP database directories</strong>, pulsamos el botón <strong>Edit</strong> y se nos  abre una ventana <strong>GeoIP Database Paths</strong>, pulsamos <strong>New</strong> e introducimos la ruta (<em>C:\Archivos de programa\Wireshark\goip</em>) donde descargamos las base de datos <strong>GeoIP</strong>:</p>
<p><img id="image535319" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/geoip01.png" alt="wireshark preferencias geoip" align="middle" /></p>
<p>Ahora nos situamos dentro de la ventana de <strong>detalles del protocolo</strong>, en <strong>Internet Protocol</strong>,<u> botón derecho del ratón</u> y <strong><a href="http://seguridadyredes.nireblog.com/post/2008/02/14/analisis-de-red-con-wireshark-interpretando-los-datos" target="_blank" title="Wireshark interpretar los datos">Protocol preferences</a>...</strong> marcamos la opción <strong>Enable GeoIP lookups</strong>:</p>
<p><img id="image535322" src="http://files.nireblog.com/blogs1/seguridadyredes/files/geoip02.png" alt="activar geoip en wireshark prefrencias del protocolo" align="left" /></p>
<p>Ya tenemos configurado Wwireshark para <strong>GeoIP</strong>.</p>
<p><strong><font size="3">Visualización de los datos GeoIP de una captura. </font></strong></p>
<p>Realizamos una captura o abrimos un fichero de captura previamente grabado.</p>
<p>En el menú <a href="http://seguridadyredes.nireblog.com/post/2008/05/07/tshark-wireshark-en-linea-de-comandos-iii-parte-estadisticas" target="_blank" title="Estadisticas en wireshark endpoints"><u><strong>Statistics > Endpoints</strong></u></a>, se nos abre la ventana en la cual seleccionamos la pestaña <strong>IPv4</strong>. Veremos como se han añadido a las columnas por defecto, otras como:</p>
<ul>
<li>Country</li>
<li>AS Number</li>
<li>City</li>
<li>Latitude</li>
<li>Longitude</li>
</ul>
<p>todas correspondiente a los datos obtenidos a través de la Geolocalización de <strong>GeoIP</strong> / <strong>GeoLite</strong>.</p>
<p><u><strong>NOTA:</strong></u> En esta captura desplazo la barra para ver solo los datos de GeoIP. pero tenemos las <strong><a href="http://seguridadyredes.nireblog.com/post/2008/01/17/analisis-capturas-trafico-red-interpretacian-datagrama-ip-parte-i" target="_blank" title="datagrama ip">IP </a></strong>(Address), Paquetes, Bytes, etc, etc :</p>
<p><img id="image535323" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/geoip03.png" alt="wirechark geoip geolite endopoints muestra de datos feolocalizacion" align="middle" /></p>
<p>En esta misma ventana de <strong>Endpoints</strong>, vemos un botón: <strong><u>Map</u></strong>. Si pulsamos en <strong>Map</strong>, se nos abrirá nuestro navegador por defecto desplegando un mapa (similar a google maps) con la <strong>localización geográfica</strong> de las IP:</p>
<p><img id="image535324" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/geoip04.png" alt="geoip localizacion en mapa de las ips en wireshark" align="middle" /></p>
<p>----------------------------------------------------------------</p>
<p><font color="#990033">Para la próxima haremos una reseña a los <strong>filtros Geoip</strong> con opciones para filtrar por lo calización ciudad, etc. </font></p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/10/27/wireshark-estadisticas-y-geoip#comments">Comments</a></p>]]></description>
	<pubDate>Tue, 27 Oct 2009 13:45:54 +0100</pubDate>	</item>
	<item>
	<title>Wireshark. Usando multiples archivos de captura.</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/10/26/wireshark-usando-multiples-archivos-de-captura</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/10/26/wireshark-usando-multiples-archivos-de-captura</guid>
		<description><![CDATA[<p>En <strong>Wireshark</strong>, puede ocurrir que realicemos una captura que se prolonge demasiado en el tiempo o que se trate de una captura con gran trasiego de de datos. En ambos casos el archivo de captura .cap será demasiado grande y puede ser intratable.  Para ello disponemos de una serie de opciones que nos facilitará el trabajo.</p>
<p><img id="image535013" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/multi-03.png" alt="lista ficheros de captura wireshark" align="middle" /></p>
<p>Vamos a estudiar estas opciones.</p>
<p>
<!--more-->
</p>
<p>Para usar esta caracterísitica de Wireshark, debemos completar las opciones de <strong>uso de multiples archivos</strong>:</p>
<p><img id="image535003" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/multi-01.png" alt="opciones wireshark multiples archivos" align="middle" /></p>
<p>Vemos las opciones de <strong>Capture File(s)</strong>:</p>
<ul>
<li><strong>File</strong>. Aquí indicamos el archivo y ruta de los archivos .cap de captura.</li>
</ul>
<blockquote><p><strong>El formato resultante del archivo .cap es el siguiente</strong>:</p>
</blockquote>
<div align="center">
<blockquote><strong><font color="#000099">cap___00002_20091026085612</font></strong></p></blockquote>
<blockquote><p>. </p></blockquote>
<blockquote></blockquote>
</div>
<blockquote><blockquote><font color="#000099"><strong>cap</strong></font>__ es el nombre que indicamos en el campo <strong>File</strong>.</p></blockquote>
<blockquote><p><strong><font color="#000099">00002</font></strong> número de serie o de captura</p>
</blockquote>
<blockquote><p><strong><font color="#000099">20091026085612 </font></strong>marca de tiempo: fecha  2009-10-26 tiempo 08:56:12 en horas, minutos y segundos.</p>
</blockquote>
</blockquote>
<ul>
<li><strong>Use multiple files</strong>. Marcamos esta opción para captura a multiples archivos.</li>
<li><strong>Next file every</strong>. Wireshark grabará un archivo nuevo cada <strong><em>n</em></strong> Megabytes, Kilobytes o Gigabytes.</li>
<li><strong>Next file every</strong>. wireshark también grabará un archivo nuevo cada <strong><em>n</em></strong> segundos, minutos, horas o dias.</li>
</ul>
<blockquote><p><strong>NOTA:</strong>  Tanto si usamos la opción de <strong>grabar archivo nuevo cada n tiempo</strong> o <strong>cada n cantidad de bytes</strong>, ambas la podemos usar de forma independiente o marcar las dos. Si marcamos las dos, <strong>Wireshark</strong> grabará un archivo nuevo cada <strong>n</strong> <u>cantidad de bytes</u>, pero  si sobrepada el tiempo que marquemos en la segunda opción (<u>opción de tiempo</u>), entonces grabará un archivo nuevo <strong>aunque no llegue a la cantidad en bytes</strong>.</p>
</blockquote>
<blockquote><p><strong>Lo vemos con un ejemplo</strong>. Fijaos en la captura anterior, tenemos marcado que grabe un archivo nuevo cada 1 Megabyte o cada 15 segundos. Si vemos los archivos .cap grabados:</p>
</blockquote>
<blockquote><p><img id="image535011" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/multi-02.png" alt="Wireshark opciones de multiples capturas. ficheros .cap" align="middle" /></p>
</blockquote>
<blockquote><p><font color="#990033">Podeis observar que, a pesar de indicar que grabemos archivo nuevo cada 1 Megabyte, no llega a tal cantidad, ya que sobrepasa los 15 segundos marcado como límite de captura. Observad las marcas de tiempo, vereis como entre una y otra pasan exactsmente 15 segundos. </font></p>
</blockquote>
<ul>
<li><strong>Stop capture after</strong>. Wireshark parará la captura cuando se graben<strong> n</strong> ficheros .cap.</li>
<li><strong>Ring buffer with. </strong>Wireshark creará una serie de archivos de cáptura (buffer en anillo) cada n ficheros de captura.</li>
</ul>
<p><u><strong>NOTA:</strong></u> En <strong>Capture filter</strong>, podemos establecer un filtro para la captura de los multiples. cap. De esta forma optimizamos el rendimiento y el tamaña de los ficheros.</p>
<p><strong><font size="3">Navegando por los archivos de captura.</font></strong></p>
<p>Podemos navegar a través de los set de archivos de captura de la forma siguiente en el menú de Wireshark: <u><strong>File > File Set > List Files</strong></u>:</p>
<p><img id="image535013" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/multi-03.png" alt="lista ficheros de captura wireshark" align="middle" /></p>
<p>Cuando seleccionemos cualquiera de los archivos de la captura, se visualizarán todos los datos correspondientes en <strong>Wireshark</strong>.</p>
<p>-----------------</p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/10/26/wireshark-usando-multiples-archivos-de-captura#comments">Comments</a></p>]]></description>
	<pubDate>Mon, 26 Oct 2009 10:09:38 +0100</pubDate>	</item>
	<item>
	<title>Jperf. El frontend gráfico de iperf. Rendimiento de la red.</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/10/23/jperf-el-frontend-grafico-de-iperf-rendimiento-de-la-red</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/10/23/jperf-el-frontend-grafico-de-iperf-rendimiento-de-la-red</guid>
		<description><![CDATA[<p>Ya vimos en su día el uso de <a href="http://seguridadyredes.nireblog.com/post/2008/06/18/iperf-midiendo-ancho-de-banda-entre-dos-hosts" target="_blank" title="IPerf. Midiendo ancho de banda entre dos hosts.">Iperf</a>  para <a href="http://seguridadyredes.nireblog.com/post/2008/06/18/iperf-midiendo-ancho-de-banda-entre-dos-hosts" target="_blank" title="Iperf - Medir ancho de babda entre dos host"><strong>medir el ancho de banda entre dos host</strong></a>. En este artículo avanzaremos un poco más y estudiaremo la versión gráfica basada en <strong>Java</strong> de Iperf: <font size="3"><strong>Jperf</strong></font>.</p>
<p><img id="image533924" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/jperf00.png" alt="jperf el interfa grafico de iperf. rendimiento de la red" align="middle" /></p>
<p>
<!--more-->
</p>
<p>Jperf es una interface gráfica para Iperf. Está basado en Java y tiene las mismas funcionalidadesque Iperf. Lo podemos descargar desde aquí: (<a href="http://code.google.com/p/xjperf/" target="_blank" title="jperf">http://code.google.com/p/xjperf/</a>).</p>
<p>Para su instalación, tan solo tenemos que descargar el archivo comprimido, descimprimir y ejecutar el archivo <strong><em>jperf.bat </em></strong></p>
<p>La <strong>filosofia de uso </strong>es la misma que <a href="http://seguridadyredes.nireblog.com/post/2008/06/18/iperf-midiendo-ancho-de-banda-entre-dos-hosts" target="_blank" title="Iperf midiendo ancho de banda entre dos host"><strong>Iperf</strong></a>. Al tratarse de una herramienta <strong>cliente-servidor</strong>, ejecutaremos <strong>Iperf</strong> en dos máquinas, una hará de <strong>Servidor</strong> y otra de <strong>Cliente</strong>. Tanto en una como en otra podemos ejecutar indistintamente <strong>Jperf</strong> o <strong>Iperf</strong>. Es decir, podemos usar en un extremo y en otro <strong>Jperf</strong> como <strong>cliente</strong> y <strong>servidor</strong> o, como lo haremos aquí, <u><strong>Iperf</strong> como servidor y <strong>jperf</strong> como cliente y herramienta de análisis</u>.</p>
<p><font size="3"><strong>IPerf como servidor.</strong></font></p>
<p>La forma más básica de ejecución como servidor es:</p>
<p><font color="#0033cc">>iperf -s<br /> ------------------------------------------------------------<br /> Server listening on TCP port 5001<br /> TCP window size: 8.00 KByte (default)<br /> ------------------------------------------------------------</font></p>
<p>En este momento <strong>IPerf </strong>se encuentra a la "escucha" en le puerto <strong>5001</strong>.</p>
<p><font size="3"><strong>JPerf como cliente.</strong></font></p>
<p>Como ya hemos comentado, tan solo tenemos que  ejecutar <strong><em>jperf.bat</em></strong>, archivo contenido en la carpeta descomprimida del paquete descargado de Jperf. Una vez ejecutado el fichero por lotes mecionado, se nos abrirá el interface gráfico:</p>
<p><img id="image533926" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/jperf01.png" alt="comienzo frontend Jperf" align="middle" /></p>
<p><font size="3">Tenemos en la <strong>interface</strong> los siguientes campos u opciones importantes:</font></p>
<ul>
<li><strong>iperf command</strong>: se rellenará automáticamente al introducir la <strong>IP</strong> del host remoto en el campo <font color="#990033"><strong>server address</strong></font></li>
<li><strong>Choose iPerf Mode</strong>: Indicamos si estamos usando jperf en modo cliente o servidor. En este caso lo haremos como client.</li>
<li><font color="#990033"><strong>Server address</strong></font>: <u>dirección del host remoto</u>. Aquí introducimos la IP del host remoto. Automáticamente se rellenará el campo <strong>iperf command</strong> con unas opciones por defecto que irán cambiando a medida que rellenemos los cuadros <strong>Aplication layer option</strong>s y <strong>Transport layer options</strong>.</li>
</ul>
<p><font size="3"><strong>Transport layer options.</strong></font></p>
<p>Aquí indicaremos el protocolo <a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" target="_blank" title="Segmento TCP">TCP</a> o <a href="http://seguridadyredes.nireblog.com/post/2008/02/06/analisis-capturas-trafico-de-red-interpretacion-datagrama-udp-iii" target="_blank" title="Datagrama UDP">UDP</a>. Podemos ajustar valores como el <strong>Tamaño de la ventana</strong>, <strong>Longitud de buffer</strong> y el<strong> MSS</strong> (<span style="visibility: visible"><span style="visibility: visible">Maximum Segment Size</span></span>) o cantidad de datos enviados en cada paquete. Ajustanto estos valores en nuestras mediciones podemos encontrar los valores óptimos para el mejor rendimiento de la red. <strong>La opción de ajuste más importante es el tamaño de ventana o Window Size.</strong> Lo común es que aumentando el Tamaño de Ventana, aumente el rendimiento, pero no siempre es así.</p>
<p>Pasa lo mismo con la <strong>Longitud de Buffer</strong> o <strong>Buffer Length</strong>. En valores pequeños podemos tener una red con un rendimiento bajo y subir demasiado este valore puede desencadenar retardos.</p>
<p>Respecto al<strong> Max Segment Size</strong> o <strong>Tamaño máximo de Segmento</strong>, cantidad de datos enviados en cada paquete sin fragmentar (expresado en bytes). Extraigo de la <a href="http://es.wikipedia.org/wiki/Tama%C3%B1o_M%C3%A1ximo_de_Segmento" target="_blank" title="Wikipedia Max segment size o tamaño máximo de ventana">Wikipedia esta explicación bastante buena sobre Max Segment Size (MSS).</a>:</p>
<p><font size="1">"Para una comunicación óptima la suma del número de bytes del segmento de datos y la cabecera debe ser menor que el número de bytes de la <a href="http://es.wikipedia.org/wiki/Unidad_m%C3%A1xima_de_transferencia" title="Unidad máxima de transferencia">unidad máxima de transferencia</a> (MTU) de la red.</font></p>
<p><font size="1">El MSS tiene gran importancia en las conexiones en <a href="http://es.wikipedia.org/wiki/Internet" title="Internet">Internet</a>, particularmente en la navegación <a href="http://es.wikipedia.org/wiki/World_Wide_Web" title="World Wide Web">web</a>. Cuando se usa el protocolo <a href="http://es.wikipedia.org/wiki/Transmission_Control_Protocol" title="Transmission Control Protocol">TCP</a><a href="http://es.wikipedia.org/wiki/Unidad_m%C3%A1xima_de_transferencia" title="Unidad máxima de transferencia">MTU</a> que ambos puedan aceptar. El valor típico de MTU en una red puede ser, por ejemplo, 576 ó 1500 <a href="http://es.wikipedia.org/wiki/Byte" title="Byte">bytes</a>. Tanto la cabecera <a href="http://es.wikipedia.org/wiki/Protocolo_de_Internet" title="Protocolo de Internet">IP</a> como la cabecera TCP tienen una longitud variable de al menos 20 bytes. En cualquier caso, el MSS es igual a la diferencia MTU - cabecera TCP - cabecera IP.</font> <font size="1">para efectuar una conexión, los ordenadores que se conectan deben acordar y establecer el tamaño de la </font></p>
<p><font size="1">A medida que los datos son encaminados por la red deben pasar a través de múltiples <a href="http://es.wikipedia.org/wiki/Enrutador" title="Enrutador">routers</a>. Idealmente, cada segmento de datos debería pasar por todos los routers sin ser fragmentado. Si el tamaño del segmento de datos es demasiado grande para cualquiera de los routers intermedios, los segmentos son fragmentados. Esto aminora la velocidad de conexión, y en algunos casos esta bajada de velocidad puede ser muy apreciable. La posibilidad de que ocurra esa fragmentación puede ser minimizada manteniendo el MSS tan pequeño como sea razonablemente posible. En la mayoría de los casos, el MSS es establecido automáticamente por el <a href="http://es.wikipedia.org/wiki/Sistema_operativo" title="Sistema operativo">sistema operativo</a>.</font><font size="1">"</font></p>
<p><font size="3"><strong>Application layer options.</strong></font></p>
<p>De esta ventana destacar las opciones para <strong>cantidad de transmisión</strong> en Bytes o segundos de muestreo. <strong>Formato de Salida</strong> , el <strong>valor de intervalos de tiempo</strong> y el <strong>puerto</strong> al que se dirigirá y en el que escucha el host remoto (por defecto 5001).</p>
<p><strong><font size="3">Ejecutando Jperf </font></strong></p>
<p>Una vez tenemo los valores en los campos correspondientes, tan solo nos resta pulsar el botón <font color="#990033"><strong>Run Iperf!: </strong></font></p>
<p><img id="image533933" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/jperf02.png" alt="Ejecutando jperf" align="middle" /></p>
<p>Una vez realizada las pruebas, podemos ir modificando en el <strong>registro de Windows</strong> los valores más óptimos de rendimiento.</p>
<p><strong>Vamos a realizar una prueba. </strong>Ajustaremos el valor de <strong>tiempo de transmisión</strong> (Transmit) en <strong>30</strong> segundos. En <strong>Transport layer option</strong> > <strong>TCP window Size</strong> ponemos <strong>6 KBytes</strong> y <font color="#990033"><strong>Run Iperf!</strong></font>:</p>
<p><img id="image533937" src="http://files.nireblog.com/blogs1/seguridadyredes/files/jperf03.png" alt="ajustando valores jperf iperf para pruebas rendimiento red" align="middle" /></p>
<p>Vemos que el rendimiento con un <strong>tamaño de ventana de 6 Kbyes</strong> es de unos <strong>75 Mbits / sec.</strong> apreciamos también las <strong>oscilaciones del rendimiento en el Bandwidth</strong>.</p>
<p>Cambiemos ahora el valor del <strong>tamaño de ventana</strong> (<strong>TCP windows Size</strong>) a <strong>56 Kbytes</strong>.Vea mos que ocurre ahora:</p>
<p><img id="image533938" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/jperf04.png" alt="pruebas rendimiento red local jperf iperf" align="middle" /></p>
<p>Vemos ahora como el rendimiento y la estabilidad son mejores. Tanto en  el host remoto como en la ventana de <strong>Bandwidth </strong>de este captura vemos que nos da unos valores de  <strong>93,7 Mbits / sec.</strong></p>
<p>Podeis probar, por ejemplo, cambiando los valores de <strong>Buffer Length</strong>. Vereis como a distintos valores y forma la gráfica va cambiando en función del rendimiento obtenido.</p>
<p>------------------------------------------------------------------------</p>
<p><font color="#990033"><strong>NOTA</strong>: Atualizaré periódicamente este artículo con nuevas pruebas, resolución de problemas, etc.</font></p>
<p>-------------------------------------------------------------------------</p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/10/23/jperf-el-frontend-grafico-de-iperf-rendimiento-de-la-red#comments">Comments</a></p>]]></description>
	<pubDate>Fri, 23 Oct 2009 07:08:55 +0100</pubDate>	</item>
	<item>
	<title>Wireshark / Tshark. Capturar el tráfico de red de forma remota. RPCAPD</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/10/21/wireshark-tshark-capturar-el-trafico-de-red-de-forma-remota-rpcapd</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/10/21/wireshark-tshark-capturar-el-trafico-de-red-de-forma-remota-rpcapd</guid>
		<description><![CDATA[<p>En este artículo vamos a ver otra forma de capturar el tráfico de red. Acostumbrados a usar <strong>Wireshark / Tshark</strong> o cualquier otro software de captura en modo local o usando archivos de captura .pcap, veremos que también podemos conectar nuestro <a href="http://seguridadyredes.nireblog.com/cat/wireshark-tshark" target="_blank" title="Wireshark y Tshark en el blog seguridadyredes">Wireshark o Tshark</a> a un interfaz de red remoto. Esto último usando una utulidad contenida en Winpcap llamada <strong>RPCAPD</strong>.</p>
<p><img id="image533760" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/rpcapd00.png" alt="captura de red en host remoto rpcapd" align="middle" /></p>
<p><strong>RPCAPD</strong> es una herramienta que nos sirve para <strong>conetarnos a una interfaz de red en un host remoto</strong>. Se encuentra por defecto en <em><span>C:\Archivos de programa\WinPcap.</span></em></p>
<p>
<!--more-->
</p>
<p><strong><font size="3">Preparando el host remoto 192.168.1.30<br /> </font></strong></p>
<p>Para capturar desde un<strong> host local A</strong> a nuestro <strong>host remoto B</strong>, necesitamos saber <strong>que dispositivo o interfaz de red vamos a usar</strong> del host remoto <strong>B</strong> en la captura. Para ello tan sencillo como, entre otras formas, usar <a href="http://seguridadyredes.nireblog.com/post/2008/04/30/tshark-wireshark-en-linea-de-comandos-i-parte" target="_blank" title="Tshark wireshark en linea de comandos"><strong>Tshark</strong></a> en el host remoto <strong>B</strong> para el descubrimiento de dicha información:</p>
<p><img id="image533774" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/rpcapd01.png" alt="captura informacion interfaz tshark" align="middle" /></p>
<p>La interfaz que nos interesa es la número <strong>4</strong> que está reseñada. Copiamos o volcamos la información a un archivo de texto para luego usarla en <strong>Wireshark</strong>.</p>
<p>Para terminar la preparación del host remoto<strong> B</strong>, una vez tenemos la información anterior, tan solo nos hace falta dejar <strong>RPCAPD</strong> escuchando en el host remoto <strong>B</strong>:</p>
<p><img id="image533760" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/rpcapd00.png" alt="captura de red en host remoto rpcapd" align="middle" /></p>
<p>Con <strong>-n</strong> le decimos que <strong>no requiera autentificación</strong>. La opción <strong>-p3333</strong> es para indicar el puerto a la escucha.</p>
<p><strong><font size="3">Preparación del host local 192.168.1.5 para la captura con Wireshark.</font></strong></p>
<p>Ahora cargamos <strong>Wireshark</strong>. Introducimos los datos necesarios:</p>
<p><img id="image533780" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/rpcapd02.png" alt="opciones de captura remota Wireshark" align="middle" /></p>
<p>Le damos a <strong>OK</strong>. Y ahora tenemos que <strong>introducir el nombre del dispositivo de red del host remoto B</strong> que descubrimos anteriormente con <strong>Tshark -D</strong>. Lo haremos usando esta forma (en negrita el nombre del dispositivo):</p>
<p><font color="#0000cc">rpcap://192.168.1.30:3333/<strong>\Device\NPF_{58C21E09-0C1F-4F85-9463-12328CA28B9A} </strong></font></p>
<p>Lo vemos mejor:</p>
<p><img id="image533783" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/rpcapd03.png" alt="wireshartk opciones de captura remota rpcap" align="middle" /></p>
<p>Reseñado está lo que hemos introducido en el campo de la interface. <u><strong>Esto lo podemos hacer escribiendo directamente en el campo</strong></u>.</p>
<p>Pulsamos ahora el botón <strong>Remote Setting </strong>y decimos a <strong>Wireshark</strong> que <strong>no </strong><span><strong>capture el tráfico RPCAP</strong>: </span></p>
<p><img id="image533787" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/rpcapd04.png" alt="Nireshark remote capture setting.no capturar trafico RPCAP" align="middle" /></p>
<p><strong>OK</strong> y en el panel principal pulsamos <strong>Start</strong>.</p>
<p>Y capturamos a traves de <strong>Wireshark</strong> todo el tráfico de red de la <strong>interfaz remota</strong> <font color="#0000cc"><strong>Device\NPF_{58C21E09-0C1F-4F85-9463-12328CA28B9A} </strong></font>de forma, también remota; <strong>del host local A a host remoto B</strong> tal como podemos comprobar:</p>
<p><img id="image533790" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/rpcapd05.png" alt="captura remota con wireshark" align="middle" /></p>
<p><u><strong>NOTAS de uso RPCAPD: </strong></u></p>
<p>Si bien en este artículo hemos usado <strong>Wireshark</strong> con la opción <strong>Null Authentication</strong> para comunicarse con <strong>RPCAPD</strong> (usamos la opcion -n de RPCAPD), lo mejor es hacerlo  mediante credenciales (<strong>Password authentication</strong>).</p>
<p>Podemos guardar la configuración de <strong>RPCAPD</strong>  en un archivo (<strong><em>rpcapd.ini</em></strong>) con la opción <strong>-s</strong> y cargar ese mismo fichero con <strong>-f </strong></p>
<p>Con la opción <strong>-b</strong> de <strong>RPCAPD</strong> podemos decir que eschuche y comunique con un determinado <strong>host</strong> o hacerlo a través de una lista blanca <strong>-l</strong></p>
<p>Con la opción -<strong>d</strong> podemos usar <strong>RPCAPD</strong> como servicio en sistemas win32.</p>
<p>-------------------------------</p>
<p><img src="file:///C:/Windows/Temp/moz-screenshot.jpg" alt="" /><img src="file:///C:/Windows/Temp/moz-screenshot-1.jpg" alt="" /></p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/10/21/wireshark-tshark-capturar-el-trafico-de-red-de-forma-remota-rpcapd#comments">Comments</a></p>]]></description>
	<pubDate>Wed, 21 Oct 2009 07:12:00 +0100</pubDate>	</item>
	<item>
	<title>Wireshark / Tshark. Análisis protocolo FTP.</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/10/20/wireshark-tshark-analisis-protocolo-ftp</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/10/20/wireshark-tshark-analisis-protocolo-ftp</guid>
		<description><![CDATA[<p>Siguiendo con los artículos dedicados al análisis de <strong>protocolos de red</strong>, y servicios, como puede ser <a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" target="_blank" title="Análisis de RED. TCP">TCP</a>, <a href="http://seguridadyredes.nireblog.com/post/2008/01/17/analisis-capturas-trafico-red-interpretacian-datagrama-ip-parte-i" target="_blank" title="Análisis e interpretación datagrama IP">IP</a>, <a href="http://seguridadyredes.nireblog.com/post/2008/02/06/analisis-capturas-trafico-de-red-interpretacion-datagrama-udp-iii" target="_blank" title="Análisis datagrama UDP">UDP</a>, <a href="http://seguridadyredes.nireblog.com/post/2008/06/05/tshark-analisis-correo-saliente-smtp" target="_blank" title="Análisis wireshark correo saliente SMTP">SMTP</a>, <a href="http://seguridadyredes.nireblog.com/cat/wireshark-tshark" target="_blank" title="wireshark tshark">problemas de red,</a> etc, en esta ocasión vamos a analizar el <strong>servicio FTP</strong>.</p>
<p>De forma básica, podemos decir que<strong> FTP</strong> es un <strong>protocolo de red</strong> para la <strong>transferencia de archivos</strong> de un sistema a otro conectados a una red <strong>TCP</strong>, basado en la arquitectura <strong>cliente-servidor</strong> y de una forma <strong>fiable y eficiente</strong>.</p>
<p>Dicho esto, vamos, a continuación, estudiar la captura realizada.</p>
<p><img id="image533714" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/ftp00.png" alt="captura wireshark sesion ftp" align="middle" /></p>
<p>
<!--more-->
</p>
<p>Las primeras lineas que observamos en la captura corresponden al <strong>inicio de la comunicación </strong>con el servidor <strong>FTP</strong>. Se trata, como vemos, del establecimiento de conexiónen tres pasos. El número de secuencia incial es relativo y por tanto en este caso <strong>0</strong>.</p>
<p><font size="1" color="#0000cc">cliente       servidor    TCP      2203 > 21 [SYN] Seq=0 Win=64512 Len=0 MSS=1460</font><font color="#0000cc"><br /> </font> <font size="1" color="#0000cc">servidor     cliente      TCP      21 > 2203 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1460</font><font color="#0000cc"><br /> </font> <font size="1" color="#0000cc">cliente       servidor    TCP      2203 > 21 [ACK] Seq=1 Ack=1 Win=64512 Len=0</font></p>
<ol>
<li><strong>cliente</strong> envia <strong>SYN</strong> con un número secuencia <font size="1"> Seq=0</font> y<font size="1"> Ack=0</font></li>
<li><strong>servidor</strong> lo recibe, envia <strong>SYN-ACK</strong> y responde con su propio número de secuencia <font size="1">Seq=0 </font>y con un ACK = al número de  secuencia anterior + 1, es decir: <font size="1">Ack=1</font></li>
<li><strong>cliente </strong>a su vez responde con <strong>ACK</strong> y número de secuencia inicial (<font size="1">Seq=0</font>) +1 y ACK = número de secuecia anterior (<font size="1">Seq=0</font>) +1, es decir: <font size="1">Ack=1</font></li>
</ol>
<p>En la siguiente línea vemos como el servidor responde al cliente con el código <strong>220</strong> que <strong>indica servicio preparado para nuevo usuario</strong> y nuestra información del software/versión del servidor <strong>FTP</strong>:</p>
<p><font size="1" color="#0000cc">Response: 220-FileZilla Server version 0.9.29 beta</font></p>
<p><strong>NOTA:</strong> En la ventana de detalles del paquete, vemos que wireshark nos proporciona más información sobre el sevidor:</p>
<p><img id="image533717" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/ftp01.png" alt="ftp01.png" align="middle" /></p>
<p>Seguimos. Responde le cliente i<strong>niciando el diálogo y sesión FTP con el servidor</strong>. <strong>USER identifica al usuario</strong> para acceder al sistema de ficheros del servidor:</p>
<p><font size="1" color="#0000cc">Request: USER xxxxxxxx</font></p>
<p>El servidor requiere la contraseña del usuario con el código<strong> 331</strong> que indica <strong>OK al usuario</strong> y que necesita contraseña:</p>
<p><font size="1" color="#0000cc">Response: 331 Password required for </font><font size="1" color="#0000cc">xxxxxxxx</font></p>
<p>El cliente responde con la contraseña</p>
<p><font size="1" color="#0000cc">Request: xxxxXxxxxXX</font></p>
<p>En la siguiente linea, el servidor responde con código <strong>230</strong> que indica usuario conectado y que continúe con la sesión:</p>
<p><font size="1" color="#0000cc">Response: 230 Logged on </font></p>
<p>El cliente requiere mostrar el directorio de trabajo con la orden <strong>PWD</strong>:</p>
<p><font size="1" color="#0000cc">Request: PWD </font></p>
<p>El servidor responde a la petición con un código <strong>257</strong> que indica el nombre  de la ruta:</p>
<p><font size="1" color="#0000cc">Response: 257 "/" is current directory.</font></p>
<p>El cliente con la siguiente orden <strong><em>PORT n1,n2,n3,n4,n5,n6</em></strong>  indica al servidor el establecimiento del <strong>modo activo</strong>. Con esta orden, se indica que se espera conexión del servidor en la dirección <strong>IP n1,n2,n3,n4</strong>, en este caso <strong>192.168.1.5</strong> tal como vemos en la captura gráfica de Wireshar, y en el puerto n5 y n6. El puerto se calcula de la siguiente forma:</p>
<p align="center"><strong><em>n5*256+n6 </em></strong></p>
<p align="left">Así pues, siendo n5=8 y n6=156, 8*256+156=<strong>2204</strong>. que, como vemos en la captura un poco más a bajo, es el puerto usado por el cliente. el servidor inicia conexión desde el puerto <strong>20</strong> hacian el puerto "resultante" de la orden<strong> PORT:</strong></p>
<p><font size="1" color="#000099">Request: PORT 192,168,1,5,8,156</font></p>
<p>El servidor responde con un código <strong>200</strong> indicando que la <strong>orden es correcta</strong>:</p>
<p><font size="1" color="#0000cc">Response: 200 Port command successful </font></p>
<p>El cliente con la orden <strong>TYPE A</strong>, indica el tipo de representación de los datos  <strong>A</strong>, es decir <strong>ASCII</strong>. Podría ser también:</p>
<ul>
<li>tipo <strong>ABCDIC (</strong><span style="visibility: visible"><span style="visibility: visible">Código Extendido de Binario Codificado en Decimal</span></span><strong>)<br /> </strong></li>
<li>tipo <strong>imagen</strong></li>
</ul>
<p><font size="1" color="#0000cc">Request: TYPE A</font></p>
<p>El servidor responde con codigo de <strong>orden correcta</strong> y establecimiento de tipo de datos en <strong>TYPE A</strong>:</p>
<p><font size="1"><font color="#0000cc">Response: 200 Type set to A</font> </font></p>
<p>El cliente cursa orden<strong> LIST</strong>. Esta orden hace que el servidor envíe una <strong>listado de los ficheros</strong> a través del proceso de transferencia de datos:</p>
<p><font size="1" color="#0000cc">Request: LIST</font></p>
<p>En las siguientes lineas vemos que se <strong>establece comunicación</strong> en los puertos especficados en <strong>PORT</strong> y el puerto <strong>20</strong>:</p>
<p><font size="1" color="#0000cc">20 > 2204 [SYN] Seq=0 Win=65535 Len=0 MSS=1460</font></p>
<p><font size="1" color="#0000cc">2204 > 20 [SYN, ACK] Seq=0 Ack=1 Win=64512 Len=0 MSS=1460</font></p>
<p><font size="1" color="#0000cc">20 > 2204 [ACK] Seq=1 Ack=1 Win=65535 Len=0 </font></p>
<p>Se <strong>transmiten los datos pedidos por LIST</strong> por parte del servidor:</p>
<p><font size="1" color="#0000cc">FTP Data: 175 bytes </font></p>
<p><strong>NOTA:</strong> En la ventana de detalles del paquete, vemos que Wireshark nos proporciona, en la línea  <font size="1" color="#0000cc">FTP Data: 175 bytes </font>más información sobre el listado <strong>LIST</strong>:</p>
<p><img id="image533727" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/ftp02.png" alt="FTP Data wireshark" align="middle" /></p>
<p>Más abajo responde el servidor con un código <strong>150</strong> indicando <strong>estado del fichero correcto; va a abrirse la conexión de datos</strong>:</p>
<p><font size="1" color="#0000cc">Response: 150 Opening data channel for directory list. </font></p>
<p>Se realiza en las siguientes dos trazas el trasiego de datos de <strong>apertura de conexión de datos</strong> del listado que se pidió y el servidor responde, a su termino con código <strong>226 que cierra la conexión de datos</strong>:</p>
<p><font size="1" color="#0000cc">Response: 226 Transfer OK </font></p>
<p><strong>NOTA</strong>: Se cerró la conexión y el sistema vuelve a establecer comunicación:</p>
<p><font size="1" color="#0000cc">20 > 2204 [SYN] Seq=0 Win=65535 Len=0 MSS=1460<br /> 2204 > 20 [SYN, ACK] Seq=0 Ack=1 Win=64512 Len=0 MSS=1460<br /> 20 > 2204 [ACK] Seq=1 Ack=1 Win=65535 Len=0</font></p>
<p>Se repite el proceso en las siguientes líneas. Hasta la línea:</p>
<p><font size="1" color="#0000cc">Request: RETR 1.psd </font></p>
<p>Esta línea de arriba, con la orden <strong>RETR</strong>, indica petición para transferir una copia del fichero especificado (<strong>1.psd</strong>).</p>
<p>Se transmiten los datos del fichero a transferir del servidor al cliente:</p>
<p><font size="1" color="#0000cc">FTP-DATA FTP Data: 1460 bytes</font></p>
<p><font size="1" color="#0000cc">FTP-DATA FTP Data: 588 bytes </font></p>
<p>El servidor responde con un código <strong>150</strong> que el <strong>estado del fichero correcto; va a abrirse la conexión de datos</strong></p>
<p><font size="1" color="#0000ff">Response: 150 Opening data channel for file transfer. </font></p>
<p>En las líneas siguientes se transfiere el fichero.</p>
<p><font size="1" color="#0000cc">servidor       cliente           FTP-DATA FTP Data: 1460 bytes<br /> servidor       cliente           FTP-DATA FTP Data: 1460 bytes<br /> cliente         servidor       TCP      2206 > 20 [ACK] Seq=1 Ack=4969 Win=64512 Len=0<br /> servidor       cliente           FTP-DATA FTP Data: 1460 bytes<br /> servidor       cliente           FTP-DATA FTP Data: 1460 bytes<br /> cliente         servidor       TCP      2206 > 20 [ACK] Seq=1 Ack=7889 Win=64512 Len=0<br /> servidor       cliente           FTP-DATA FTP Data: 1460 bytes<br /> servidor       cliente           FTP-DATA FTP Data: 1460 bytes<br /> cliente         servidor       TCP      2206 > 20 [ACK] Seq=1 Ack=10809 Win=64512 Len=0</font></p>
<p><font size="1" color="#0000cc">...</font></p>
<p><font size="1" color="#0000cc">... </font></p>
<p>Todo este proceso terminará con un código <strong>226 que cierra la conexión de datos</strong> y que<strong> la transferencia está completada</strong>:</p>
<p><font size="1" color="#0000cc">Response: 226 Transfer OK </font></p>
<p>Observemos las líneas siguientes en las que el cliebnte <strong>cursa petición de establecimiento de datos tipo binario (por tratarse de una imagen la trasferencia</strong>) y las respuesta OK del servidor:</p>
<p><font size="1" color="#0000cc">cliente         servidor       FTP      Request: TYPE I<br /> servidor       cliente         FTP      Response: 200 Type set to I</font></p>
<p>El las siguientes líneas se cierra la conexión.</p>
<p>----------------------------------------------------------------- </p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/10/20/wireshark-tshark-analisis-protocolo-ftp#comments">Comments</a></p>]]></description>
	<pubDate>Tue, 20 Oct 2009 10:13:57 +0100</pubDate>	</item>
	<item>
	<title>Esas pequeñas utilidades. Análisis forense. STRINGS.</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/10/14/esas-pequeaas-utilidades-analisis-forense-strings</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/10/14/esas-pequeaas-utilidades-analisis-forense-strings</guid>
		<description><![CDATA[<p>Seguimos con las pequeñas utilidades o herramientas. En este caso hablaremos de <strong>STRINGS</strong>. Voy a explicar su uso con un ejemplo práctico como puede ser el <strong>análisis de los archivos contenidos en la carpeta Prefetch de Windows</strong>.</p>
<p><a href="http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx" target="_blank" title="String.exe de Sysinternals"><strong>STRINGS</strong> de <strong><span style="visibility: visible"><span style="visibility: visible"><em>Sysinternals</em></span></span></strong></a> es una utilidad que nos sirve <strong>para encontrar cadenas ASCII  o UNICODE en un archivo determinado</strong></p>
<p>Pero, como he dicho, vamos a verlo con un ejemplo....</p>
<p>
<!--more-->
</p>
<p>Haremos un muy sencillo <strong>análisis forense</strong> de la carpeta Prefetch de <strong>Windows XP</strong> ó <strong>Vista</strong>. Pero, antes que nada <strong>¿ qué es la carpeta Prefetch ?</strong>.</p>
<div class="topic_body_partial Conceptual">
<h3 class="title_article">¿Qué es la carpeta Prefetch?</h3>
<p class="para">Explicado de forma muy sencilla. Cada vez que enciende el equipo, <strong><span class="notLocalizable">Windows</span></strong> realiza un seguimiento de la forma en que se inicia el equipo y los programas que se abren habitualmente. <strong><span class="notLocalizable">Windows</span> guarda esta información en una serie de pequeños archivos en la carpeta Prefetch</strong>. La próxima vez que encienda el equipo, <span class="notLocalizable">Windows</span> recurrirá a estos archivos <strong>para acelerar el proceso de inicio</strong>.</p>
<p class="para lastElement">La carpeta Prefetch es una subcarpeta de la carpeta del sistema <span class="notLocalizable">Windows</span>. La carpeta Prefetch no requiere mantenimiento: no es necesario eliminar ni vaciar su contenido. Si vacía la carpeta, <span class="notLocalizable">Windows</span> y los otros programas tardarán más en abrirse la próxima vez que encienda el equipo.</p>
<p class="para lastElement">(<a href="http://windows.microsoft.com/es-ES/windows-vista/What-is-the-prefetch-folder" target="_blank" title="qué es prefetch">http://windows.microsoft.com/es-ES/windows-vista/What-is-the-prefetch-folder</a>)</p>
<p class="para lastElement">Dentro de esta carpeta tenemos unos <strong>archivos con extensión .pf</strong> que son los encargados de almacenar los datos necesario para la tarea encomendada a <strong>Prefecth</strong>.</p>
<p class="para lastElement">Bien, vamos a ver el contenido de uno de estos archivos en un PC cualquiera de nuestra red a administrar. En este caso:</p>
<p class="para lastElement"><strong><em>1BY1.EXE-0B97D9FD.pf </em></strong></p>
<p class="para lastElement">A primera vista vemos que se trata de un archivo relativo al programa 1BY1. Parece que un usuario de nuestra red se dedica a escuchar música. Ahora vamos a ver que contiene:</p>
<p class="para lastElement"><img id="image532436" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/string00.png" alt="contenido archivo pf de prefetch" align="middle" /></p>
<p class="para lastElement">&nbsp;</p>
<p class="para lastElement">Vaya. No sé ustedes, pero yo no entiendo nada.</p>
<p class="para lastElement">Es aquí donde entra en juego nuestra pequeña utilidad <a href="http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx" target="_blank" title="STRINGS.EXE">STRINGS</a>.</p>
<p class="para lastElement">Tiene varias opciones, pero como en esta serie trato solo de dar referencia a las pequeñas utilidades, usaremos STRINGS de la forma más simple:</p>
<p class="para lastElement"><font color="#0000cc">> string  C:\WINDOWS\Prefetch\1BY1.EXE-0B97D9FD.pf </font></p>
<p class="para lastElement">He eliminado algunas partes pero el resultado nos da  algunas pistas : </p>
<p class="para lastElement"><img id="image532442" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/string01.png" alt="resultado string" align="middle" /></p>
<p class="para lastElement">Por ejemplo que <strong>el usuario del PC estaba "como administrador"</strong>, o que había estado <strong>escuchando algunos temas de blues con el software 1By1</strong>.</p>
<p class="para lastElement">Si hacemos lo mismo con  el archivo <strong>EXCEL.EXE-256AADE1.pf</strong>, obtenemos lo siguiente:</p>
<p class="para lastElement"><img id="image532446" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/string02.png" alt="salida strings prefetch" align="middle" /></p>
<p class="para lastElement">Es decir, <strong>tenemos alguno de los últimos archivos .XLS abiertos por el usuario</strong>. </p>
<p class="para lastElement">--------- </p>
<p class="para lastElement">&nbsp;</p>
</div>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/10/14/esas-pequeaas-utilidades-analisis-forense-strings#comments">Comments</a></p>]]></description>
	<pubDate>Wed, 14 Oct 2009 10:57:02 +0100</pubDate>	</item>
	<item>
	<title>Esas pequeñas utilidades. NBTSCAN</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/10/14/esas-pequenas-utilidades-nbtscan</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/10/14/esas-pequenas-utilidades-nbtscan</guid>
		<description><![CDATA[<p>Iniciamos, en esta ocasión, una serie de <strong>referencias</strong> a utilidades que nos ayudarán a realizar tareas de mantenimiento, administración, enumeración, etc, en nuestra red local. Todo esto a sugerencia de mis amables lectores.</p>
<p>Comenzamos con <strong>NBTSCAN</strong> (<a href="http://unixwiz.net/tools/nbtscan.html" target="_blank" title="NETBIOS nameserver scanner"><strong>NETBIOS nameserver scanner</strong></a>).Recalcar que tan solo se trata de referencias y no un manual de uso. Más que nada por la sencillez de uso de las herramientas.</p>
<p>Decir, también, que sigo con las series de articulos ya comenzadas en este blog y profundizando en otros aspectos de la serguridad y las redes con artículos nuevos. </p>
<!--more-->
<h3>
<p><font size="3">NBTSCAN (nameserver scanner)</font><br /> </h3>
<p><img id="image532418" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/nbtscan00.png" alt="NBTSCAN. NETBIOS nameserver scanner" align="middle" /></p>
<p><strong>nbtscan.txt</strong> :</p>
<p><img id="image532419" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/nbtscan01.png" alt="Resultado nbtscan" align="middle" /> </p>
<p><u><strong>Más información:</strong></u> http://unixwiz.net/tools/nbtscan.html</p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/10/14/esas-pequenas-utilidades-nbtscan#comments">Comments</a></p>]]></description>
	<pubDate>Wed, 14 Oct 2009 08:43:54 +0100</pubDate>	</item>
	<item>
	<title>Wireshark / Tshark. TCP segment of a reassembled PDU</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/03/09/wireshark-tshark-tcp-segment-of-a-reassembled-pdu</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/03/09/wireshark-tshark-tcp-segment-of-a-reassembled-pdu</guid>
		<description><![CDATA[<p>Ya vimos algunos mensajes informativos o de error de <a href="http://seguridadyredes.nireblog.com/cat/wireshark-tshark" target="_blank" title="wireshark. Interpretar los datos."><strong>Wireshark</strong></a> tales como <a href="http://seguridadyredes.nireblog.com/post/2009/02/19/wireshark-tshark-error-tcp-bad-checksum" target="_blank" title="wireshark Tshark TCP Bad Checksum">Error TCP Bad Cheksum</a>, <a href="http://seguridadyredes.nireblog.com/post/2009/02/20/wireshark-tshark-usando-io-graph-para-relacionar-acks-duplicados-lost-segment-y-retransmisiones" target="_blank" title="wireshark duplicate ack fast retransmission">TCP fast retransmission,  TCP Dup ACK</a>, <a href="http://seguridadyredes.nireblog.com/post/2009/02/19/tshark-detectando-problemas-en-la-red" target="_blank" title="wireshark detecta rerrores en la red o conexion">etc</a>. Ahora vamos a ver otro muy común: <strong>TCP segment of a reassembled PDU</strong>, información que a muchos induce a pensar que existe algún error en la red o conexión.</p>
<p><img id="image481630" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/pdu-1.png" alt="Wireshark TCP segment of a reassembled " align="middle" /></p>
<p>
<!--more-->
</p>
<p>Tenemos una captura cualquiera con algunas etiquetas de información del tipo <strong>TCP segment of a reassembled PDU</strong>, no sabemos a cuantos paquetes afecta esta información, error o lo que sea, así que aplicamos un <a href="http://seguridadyredes.nireblog.com/post/2008/03/24/analisis-de-red-con-wireshark-filtros-de-captura-y-visualizacian" target="_blank" title="wireshark Tshark filtros de captura y visualización. C">Display Filter</a>:</p>
<p><strong><em>tcp.reassembled_in</em></strong></p>
<p>Ya tenemos todos los paquetes afectados. Elegimos uno cualquiera para <a href="http://seguridadyredes.nireblog.com/post/2008/02/14/analisis-de-red-con-wireshark-interpretando-los-datos" target="_blank" title="wireshark, Ver datos paquetes interpretar datos">ver todos los datos del paquete</a>:</p>
<p><a href="http://files.nireblog.com/blogs1/seguridadyredes/files/pdu-2.png" title="Wireshark TCP segment of a reassembled PDU" class="imagelink"><img id="image481632" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/pdu-2.png" alt="Wireshark TCP segment of a reassembled PDU" align="middle" /></a></p>
<p>Reseñado en rojo vemos <strong>Reassembled PDU in frame 19225</strong>, bien, vamos al frame o <strong>paquete 19225</strong>. quitemos el filtro anterior y buscamos el frame o aplicamos el filtro: <em><strong>tcp.segments</strong></em>:</p>
<p><img id="image481646" src="http://files.nireblog.com/blogs1/seguridadyredes/files/pdu-4.png" alt="pdu-4.png" align="left" /></p>
<p>Y vemos que se nos informa de que el<strong> frame 19255</strong> es un paquete<strong> reensamblado </strong>formado por una lista de segmentos, entre ellos el que elegimos al principio.</p>
<p>¿ Y que significa esto. ?. Sencillamente que en el <strong>paquete 19225</strong>, <strong>Wireshark a concatenado una serie de segmento mostrando en el toda la información completa</strong>.</p>
<p><strong>No se trata de ningún error. </strong></p>
<p>Básicamente. En ocasiones los paquetes vienen "fragmentados" en unidades <a href="http://es.wikipedia.org/wiki/Protocol_Data_Unit" target="_blank" title="wireshark. Protocol Data Units (PDU)"><strong>Protocol Data Units (PDU)</strong></a> y <strong>Wireshark</strong> los reensambla enun nivel más alto, en este caso, <strong>http</strong>.</p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/03/09/wireshark-tshark-tcp-segment-of-a-reassembled-pdu#comments">Comments</a></p>]]></description>
	<pubDate>Mon, 09 Mar 2009 13:40:11 +0100</pubDate>	</item>
	<item>
	<title>Snort. Preprocesadores. frag3</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/03/06/snort-preprocesadores-frag3</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/03/06/snort-preprocesadores-frag3</guid>
		<description><![CDATA[<p>Ya sabemos que son los <a href="http://seguridadyredes.nireblog.com/post/2009/03/03/snort-preprocesadores-i-parte" target="_blank" title="Snort. Preprocesadores. Preprocessors">preprocesadores</a> de <a href="http://seguridadyredes.nireblog.com/cat/snort" target="_blank" title="Snort. IDS"><strong>Snort</strong></a>, como funcionan y donde se sitúan. Ahora vamos a ir estudiendo uno a uno. Empezamos con  <strong>frag3</strong>.</p>
<p>
<!--more-->
</p>
<p>El preprocesador frag3.</p>
<p>Este <a href="http://seguridadyredes.nireblog.com/post/2009/03/03/snort-preprocesadores-i-parte" target="_blank" title="Snort. Preprocesadores. Preprocessors">preprocesador</a> sustituye a <strong>frag2</strong>. Es más rápido y sencillo en su funcionamiento interno.</p>
<p><strong>Frag3</strong> tiene como objetivo principal la <strong>detección de evasión del IDS por fragmentación</strong>. Es decir, se encarga del <strong>reensamblaje de paquetes fragmentados</strong> para que al pasar al motor de detección se pueda comparar el <a href="http://seguridadyredes.nireblog.com/post/2008/06/12/snort-busqueda-de-patrones-reglas-de-contenido" target="_blank" title="Reglas de contenido. Snort">contenido</a> de los paquetes o <em><a href="http://seguridadyredes.nireblog.com/post/2008/06/12/snort-busqueda-de-patrones-reglas-de-contenido" target="_blank" title="Reglas de contenido o payload.">payload</a></em> con las reglas de detección de ataques. Reconstruye el flujo lógico de los datos.</p>
<p>Existen dos directivas de configuración defrag3:</p>
<ul>
<li><strong>frag3_global</strong>. Solo una directiva global.</li>
<li><strong>frag3_engine</strong>. Puede haber varias directiva de engine o motor con configuraciones distintas.</li>
</ul>
<p><strong>frag3_global</strong> tiene las siguientes opciones:</p>
<ul>
<li><strong>max_frags</strong> <em>número</em>. Número máximo de fragmento simultáneos a analizar. Por defecto es 8192.</li>
<li><strong>memcap</strong> <em>bytes</em>. Memoría máxima de alamacenamiento para uso de frag3. Pr defecto es 4 MB.</li>
<li><strong>prealloc_frags</strong> <em>número</em>. Número preasignado máximo de fragmentos individuales que pueden ser procesados a la vez.</li>
</ul>
<p><strong>frag3_engine</strong> tiene las siguientes opciones:</p>
<ul>
<li><strong>timeout</strong> <em>segundos</em>. Cantidad de segundos que se mantiene el fragmento en antes de que expire (por tieme out). Por defecto son 60 segundos.</li>
<li><strong>ttl_limit</strong> <em>valor</em>. Máximo valor <a href="http://seguridadyredes.nireblog.com/post/2008/01/17/analisis-capturas-trafico-red-interpretacian-datagrama-ip-parte-i" target="_blank" title="Campo TTL"><strong>TTL</strong></a> que adepta <strong>frag3</strong>. Por defecto 5.</li>
<li><strong>min_ttl</strong> <em>valor</em>. Mínimo valor aceptable para <a href="http://seguridadyredes.nireblog.com/post/2008/01/17/analisis-capturas-trafico-red-interpretacian-datagrama-ip-parte-i" target="_blank" title="Campo TTL"><strong>TTL</strong></a>  de un paquete fragmentado. Por defecto es 1.</li>
<li><strong>detect_anomalies</strong> si se quiere detectar anomalias en los fragmentos.</li>
<li><strong>bind_to</strong> <em>lista de IPs</em>. Lista de IPs que analiza "frag3". Por defecto entran todas las Ips.</li>
<li><strong>policy</strong> <em>tipo de politica según plataforma</em>. "Plantilla" modo de fragmentación según la plataforma a analizar por <em>frag3</em>, es decir, según la plataforma sea<strong> Windows, Linux, BSD</strong>, etc. Tenemos las siguientes subopciones:</li>
<ul>
<li><strong>bsd</strong></li>
<li><strong>Last</strong></li>
<li><strong>Firs</strong></li>
<li><strong>linux</strong></li>
<li><strong>BSD-right</strong></li>
</ul>
<p>Tabla de opciones según plataforma:</p>
</ul>
<table border="1" cellpadding="3">
<tbody>
<tr>
<th align="left"><strong>Plataforma</strong></th>
<th align="left"><strong>Tipo</strong></th>
</tr>
<tr>
<td align="left">AIX 2</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">AIX 4.3 8.9.3</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">Cisco IOS</td>
<td align="left">Last</td>
</tr>
<tr>
<td align="left">FreeBSD</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">HP JetDirect (printer)</td>
<td align="left">BSD-right</td>
</tr>
<tr>
<td align="left">HP-UX B.10.20</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">HP-UX 11.00</td>
<td align="left">First</td>
</tr>
<tr>
<td align="left">IRIX 4.0.5F</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">IRIX 6.2</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">IRIX 6.3</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">IRIX64 6.4</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">Linux 2.2.10</td>
<td align="left">linux</td>
</tr>
<tr>
<td align="left">Linux 2.2.14-5.0</td>
<td align="left">linux</td>
</tr>
<tr>
<td align="left">Linux 2.2.16-3</td>
<td align="left">linux</td>
</tr>
<tr>
<td align="left">Linux 2.2.19-6.2.10smp</td>
<td align="left">linux</td>
</tr>
<tr>
<td align="left">Linux 2.4.7-10</td>
<td align="left">linux</td>
</tr>
<tr>
<td align="left">Linux 2.4.9-31SGI 1.0.2smp</td>
<td align="left">linux</td>
</tr>
<tr>
<td align="left">Linux 2.4 (RedHat 7.1-7.3)</td>
<td align="left">linux</td>
</tr>
<tr>
<td align="left">MacOS (version unknown)</td>
<td align="left">First</td>
</tr>
<tr>
<td align="left">NCD Thin Clients</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">OpenBSD (version unknown)</td>
<td align="left">linux</td>
</tr>
<tr>
<td align="left">OpenBSD (version unknown)</td>
<td align="left">linux</td>
</tr>
<tr>
<td align="left">OpenVMS 7.1</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">OS/2 (version unknown)</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">OSF1 V3.0</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">OSF1 V3.2</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">OSF1 V4.0,5.0,5.1</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">SunOS 4.1.4</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">SunOS 5.5.1,5.6,5.7,5.8</td>
<td align="left">First</td>
</tr>
<tr>
<td align="left">Tru64 Unix V5.0A,V5.1</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">Vax/VMS</td>
<td align="left">BSD</td>
</tr>
<tr>
<td align="left">Windows (95/98/NT4/W2K/XP)</td>
<td align="left">First</td>
</tr>
</tbody>
</table>
<p><strong><font size="3">Vemos algunos ejemplos de uso de frag3.</font></strong></p>
<pre class="hl"><font size="2" color="#0000cc">preprocessor frag3_global: prealloc_frags 8192 </font></pre>
<pre class="hl"><font size="2" color="#0000cc">preprocessor frag3_engine: policy linux, bind_to 192.168.1.0/24 </font></pre>
<pre class="hl"><font size="2" color="#0000cc">preprocessor frag3_engine: policy first, bind_to [192.168.2.0/24,] </font></pre>
<pre class="hl"><font size="2" color="#0000cc">preprocessor frag3_engine: policy last, detect_anomalies</font></pre>
<p>Vemos que, como ya hemos dicho, solo una directiva <strong>frag3_global</strong>.<br /> Varias directivas <strong>frag3_engine</strong> para plataformas basadas en:</p>
<ul>
<li><strong>linux</strong> con lista de ips</li>
<li><strong>first </strong>(windows)</li>
<li><strong>last</strong> en este caso con detección de anomalias</li>
</ul>
<p>¿ Complicado ?. Puede ser, pero saldremos de dudas más adelante cuando entremos en los ejemplos, frabricando paquetes a medida para ir porbando distintas configuraciones y el funcionamiento de frag3.</p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/03/06/snort-preprocesadores-frag3#comments">Comments</a></p>]]></description>
	<pubDate>Fri, 06 Mar 2009 13:41:26 +0100</pubDate>	</item>
	<item>
	<title>Snort. Preprocesadores ( I ) Parte.</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/03/03/snort-preprocesadores-i-parte</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/03/03/snort-preprocesadores-i-parte</guid>
		<description><![CDATA[<p>Después de varios artículos <a href="http://seguridadyredes.nireblog.com/post/2008/01/23/sistemas-de-deteccion-de-intrusos-y-snort-ii-creacion-de-reglas-ii-opciones-de-las-reglas" target="_blank" title="creacion reglas snort">sobre opciones de la reglas</a> <a href="http://seguridadyredes.nireblog.com/cat/snort" target="_blank" title="Snort. Detección de Intrusiones. IDS">Snort</a>, <a href="http://seguridadyredes.nireblog.com/post/2008/06/12/snort-busqueda-de-patrones-reglas-de-contenido" target="_blank" title="Snort. Reglas relacionadas con el contenido ">relacionadas con el contenido</a> y<a href="http://seguridadyredes.nireblog.com/post/2008/11/18/snort-opciones-reglas-no-relacionadas-con-el-contenido-iii-parte" target="_blank" title="reglas snort rules."> no relacionadas con el contenido</a>, hacemos un paréntesis para hablar de los <strong>proprocesadores</strong>.</p>
<p><img id="image260035" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/snort_sm.jpg" alt="snort_sm.jpg" align="middle" /></p>
<p>Los <strong>preprocesadores</strong>, básicamente, son unos módulos, añadidos o plugins que usa <a href="http://seguridadyredes.nireblog.com/cat/snort" target="_blank" title="Snort. Detección de Intrusiones. IDS">Snort</a> para arreglar, rearmar, modificar tramas que vienen del decodificador de paquetes antes de que pasen por el motor de detección y las <a href="http://seguridadyredes.nireblog.com/post/2008/01/23/sistemas-de-deteccion-de-intrusos-y-snort-ii-creacion-de-reglas-ii-opciones-de-las-reglas" target="_blank" title="reglas snort rules">reglas</a>. Pero donde se sitúan, como actúan, que <strong>preprocesadores</strong> tiene <a href="http://seguridadyredes.nireblog.com/cat/snort" target="_blank" title="Snort. Detección de Intrusiones. IDS">Snort</a> y como funcionan....</p>
<!--more-->
<h3>
<p>Donde se sitúan dentro de la arquitectura Snort.</p>
</h3>
<p>Se sitúan entre el decodificador de paquetes y el motor de detección.</p>
<p><img id="image479434" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/preprocesadores_snort.png" alt="Preprocesadores Snort" align="middle" /></p>
<p>Con lo que son activados después del Decodificador para luego llamar al motor de detección.</p>
<h3>Qué son y como funcionan los preprocesadores.</h3>
<p>Se trata de pequeños plugins programados normalmente en C que sirven para <strong>tratar los paquetes provenientes del Decodificador</strong>. El tratamiento que realiza sobre los paquetes es <strong>para darle forma de manera que se pueda interpretar la información de los paquetes de foma más sencilla y lógica</strong>. Una vez reordenados los paquetes, al pasar por el motor de Detección se le aplicarán las Reglas en busca de patrones de ataques,virus, información, etc.</p>
<p>Los preprocesadores pueden <strong>defragmentar paquetes, ordenarlos, decodificar URLs, reensamblar</strong>, etc.</p>
<p>Estos <strong>preprocesadores</strong> de configuran en el archivo de configuración <strong>etc/snort.conf</strong> que, como ya hemos visto en otros artículos, tiene la forma dentro del epígrafe <strong>3 configure preprocessors</strong>:</p>
<p><img id="image479438" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/preprocesadores_snort01.png" alt="Snort snort.conf preprocessors" align="middle" /></p>
<h3>De qué preprocesadores disponemos en Snort.</h3>
<p>Tenemos varios <strong>preprocesadores</strong> según la tarea a realizar:</p>
<ul>
<li>frag3</li>
<li>stream4</li>
<li>stream4_reassemble</li>
<li>flow</li>
<li>stream5</li>
<li>sfportscan</li>
<li>rpc_decode</li>
<li>bo (Back Orifice detector)</li>
<li><a href="http://seguridadyredes.nireblog.com/post/2007/12/20/detectando-sniffers-en-nuestra-red-redes-conmutadas-y-no-conmutadas" target="_blank" title="arpspoof para detectar sniffers en la red">arpspoof</a></li>
<li>ssh</li>
<li>etc,</li>
</ul>
<p>Los iremos viendo uno a uno, como funcionana y como configurarlos en la parte 2 de <strong>Snort. Preprocesadore</strong>s.</p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/03/03/snort-preprocesadores-i-parte#comments">Comments</a></p>]]></description>
	<pubDate>Tue, 03 Mar 2009 13:13:04 +0100</pubDate>	</item>
	<item>
	<title>Wireshark básico. Expert infos y Expert info Composite.</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/02/24/wireshark-basico-expert-infos-y-expert-info-composite</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/02/24/wireshark-basico-expert-infos-y-expert-info-composite</guid>
		<description><![CDATA[<p>Vamos a estudiar en esta ocasión dos herramientas básicas de <a href="http://seguridadyredes.nireblog.com/cat/wireshark-tshark" target="_blank" title="wwireshark Tshark interpretar los datos"><strong>Wireshark</strong></a>: <strong>Expert Infos</strong> y <strong>Expert Info Composite</strong>. Herramientas con las que podemos ver un resumen de las <strong>anomalías</strong>, <strong>eventos de información</strong> y <strong>errores</strong> aparecidos durante una sesión de captura de funa forma clara y sencilla.</p>
<p><img id="image476425" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/expert_infos.png" alt="Wireshark Expert Info" align="middle" /></p>
<p>
<!--more-->
</p>
<p>Tanto Expert Infos como Expert infos composite nos aparece en el menu: <strong><u>Analize</u></strong> > <u><strong>Expert Infos / Expert Infos composite</strong></u></p>
<h3>Expert Infos.</h3>
<p>Si echamos una visión rápida a la captura de pantalla de la ventana <strong>Expert Infos</strong>, vemos que la primera diferenciación que hace la herramienta es por los <strong>colores </strong>indicando <strong>severidad</strong> (<strong>columna Server.</strong>) de la información.</p>
<ul>
<li><font style="background-color: #cc0000" color="#000000">Rojo</font>. <strong>Error</strong>. Problema serio. Normalmente paquetes malformados.</li>
<li><span style="background-color: #ffff00">Amarillo</span>. <strong>Warn</strong>. Peligro. Problemas de conexión.</li>
<li><span style="background-color: #33ffff">Cian</span>. <strong>Note</strong>. Información. Reporte de errores usuales que no significan un problema serio.</li>
<li><span style="background-color: #33ff66">Verde</span>. <strong>Chat</strong>. Información sobre conversaciones de protocolos.</li>
</ul>
<p>Tenemos también una clasificación por <strong>grupos</strong> (<strong>columna Group</strong>) Entre los más usuales:</p>
<ul>
<li><strong>Cheksum</strong>. Cheksum inválido. Por ejemplo <a href="http://seguridadyredes.nireblog.com/post/2009/02/19/wireshark-tshark-error-tcp-bad-checksum" target="_blank" title="Wireshark TCP Bad Checksum">TCP Bad Checksum</a>.</li>
<li><strong>Secuence</strong>. <a href="http://seguridadyredes.nireblog.com/post/2009/02/20/wireshark-tshark-usando-io-graph-para-relacionar-acks-duplicados-lost-segment-y-retransmisiones" target="_blank" title="IO Graph. problemas en la red con wireshark">Números de secuencias sospechosos o fueran de orden, detección de retransmisiones o retransmisiones rápidas, ACKs duplicados, segmentos perdidos</a>, etc.</li>
<li><strong>Malformed</strong>. Paquetes malformados. Errores graves.</li>
<li><strong>Reassemble</strong>. Problemas de reensamblaje, fragmentación, etc.</li>
<li><strong>Response Code</strong>. Errores o problemas en códigos de respuesta.Por ejemplo código de errores HTTP.</li>
<li><strong>Request Code</strong>. Errores o problemas en códigos de petición.</li>
</ul>
<p><strong>Otras columnas</strong> informativas de la ventana <strong>Expert Infos</strong> son:</p>
<ul>
<li><strong>No.</strong> Número de paquete o frame.</li>
<li><strong>Protocol</strong>. Información del protocolo involucrado. <a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" target="_blank" title="Segmento TCP.">TCP</a>, HTTP, etc.</li>
<li><strong>Summary</strong>. Información del evento. Explicación de lo ocurrido.</li>
</ul>
<p>Podemos, además, filtrar la información con <strong>Severity Filter</strong>:</p>
<p><img id="image476460" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/expert_infos_filtro.png" alt="Wireshark Experto infos filtro" align="middle" /></p>
<p>De esta forma podemos visualizar solo los paquetes con</p>
<ul>
<li><font style="background-color: #cc0000" color="#000000">Rojo</font>. <strong>Error</strong> <strong>Only</strong>. Solo los errores.</li>
<li><font style="background-color: #cc0000" color="#000000">Rojo</font>. <strong>Error</strong> + <span style="background-color: #ffff00">Amarillo</span>. <strong>Warn</strong>. Errores y problemas, situaciones peligrosas en conexión.</li>
<li><font style="background-color: #cc0000" color="#000000">Rojo</font>. <strong>Error</strong> + <span style="background-color: #ffff00">Amarillo</span>. <strong>Warn</strong> + <span style="background-color: #33ffff">Cian</span>. <strong>Note</strong>.La suma de lo anterior y las notas de información y errores usuales.</li>
<li><font style="background-color: #cc0000" color="#000000">Rojo</font>. <strong>Error</strong> + <span style="background-color: #ffff00">Amarillo</span>. <strong>Warn</strong> + <span style="background-color: #33ffff">Cian</span>. <strong>Note + </strong><span style="background-color: #33ff66">Verde</span>. <strong>Chat</strong>. Todos los eventos.</li>
</ul>
<h3>Expert Infos Composite.</h3>
<p><img id="image476470" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/expert_infos_composite.png" alt="Wireshark Expert Infos composite" align="middle" /></p>
<p>En este caso, la información facilitada por Wireshark eá organizada por pestañas atendiendo a la <strong>Severidad del evento</strong>. A la información suministrada por Expert Infos, Expert Infos Composite, ademas, no da información de <strong>cantidad de paquetes que forman parte de cada evento</strong> en la columna <strong>Count</strong>. En details veríamos la <strong>misma información</strong> que en <strong>Expert Infos</strong> con sius diferenciación pro colores, etc.</p>
<p><strong>Expert Infos Composite</strong> nos ofrece una información <strong>más detallada y mejor organizada</strong>, para visualizar de forma más rápida.</p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/02/24/wireshark-basico-expert-infos-y-expert-info-composite#comments">Comments</a></p>]]></description>
	<pubDate>Tue, 24 Feb 2009 13:58:45 +0100</pubDate>	</item>
	<item>
	<title>Wireshark / Tshark. Usando IO Graph para relacionar ACKs duplicados, lost segment y retransmisiones</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/02/20/wireshark-tshark-usando-io-graph-para-relacionar-acks-duplicados-lost-segment-y-retransmisiones</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/02/20/wireshark-tshark-usando-io-graph-para-relacionar-acks-duplicados-lost-segment-y-retransmisiones</guid>
		<description><![CDATA[<p>Ya hemos visto <a href="http://seguridadyredes.nireblog.com/post/2009/02/19/tshark-detectando-problemas-en-la-red" target="_blank" title="Wireshark Tshark. Detectar errores en nuestra red.">como detectar algunos errores en nestra red</a> usando <a href="http://seguridadyredes.nireblog.com/cat/wireshark-tshark" target="_blank" title="Wireshark Tshark"><strong>Wireshark</strong></a> y algunos conceptos como<strong> ACKs duplicado</strong>s, <strong>segmentos fuera de orde</strong>n, <strong>Retransmisiones</strong>, <strong>Retransmisiones rápidas</strong>, etc. Ahora vamos a ver estos mismos coneceptos usando la herramienta <a href="http://seguridadyredes.nireblog.com/post/2008/11/25/analisis-de-red-con-wireshark-interpretando-las-graficas-i-parte" target="_blank" title="Graficas wireshark IO GRaph">IO Graph</a> de <a href="http://seguridadyredes.nireblog.com/cat/wireshark-tshark" target="_blank" title="Wireshark Tshark"><strong>Wireshark</strong></a> y como relacionarlos.</p>
<p><img id="image474917" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/tcp_analysis_000.png" alt="Wireshark IO Graphs" align="middle" /></p>
<p>
<!--more-->
</p>
<p>Tenemos una captura cualquiera. Como ya hemos estudiado en el artículo dedicado a las <a href="http://seguridadyredes.nireblog.com/post/2008/11/25/analisis-de-red-con-wireshark-interpretando-las-graficas-i-parte" target="_blank" title="Wiresharh graficas IO Graph">gráficas Wwireshark</a> abrimos esta herramienta y aplicamos una serie de <a href="http://seguridadyredes.nireblog.com/post/2008/05/13/tshark-wireshark-en-linea-de-comandos-v-parte-avanzando-en-filtros-y-estadisticas" target="_blank" title="Wireshark filtros avanzados y estadísticas">filtros</a> quedando la gráfica de esta forma:</p>
<p><img id="image474923" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/tcp_analysis_01.png" alt="Wireshark IO Graphs" align="middle" /></p>
<p>Como veréis hemos aplicado los siguientes filtros:</p>
<ul>
<li><strong>tcp.analysis.lost_segment</strong> Perdida de paquetes o segmentos</li>
<li><strong>tcp.analysis.retransmission</strong> Mecanismo de rentransmision</li>
<li><strong>tcp.analysis.fast.retransmission</strong> Mecanismo de rentransmision rápida</li>
<li><strong>tcp.analysis.duplicate_ack</strong> Análisis de ACKs duplicados</li>
</ul>
<p>Y como ya hemos vistos en el artículo de <a href="http://seguridadyredes.nireblog.com/post/2009/02/19/tshark-detectando-problemas-en-la-red" target="_blank" title="Detectar problemas en ra red wireshark">detección de problemas en la red</a> comprobamos que, explicado de forma básica:</p>
<p>Si se reciben <strong>tres o más</strong> <strong><font color="#ff33ff">ACKs duplicados</font></strong>, se asume la pérdida de un segmento o paquete <font color="#cc0000"><strong>lost_segment </strong></font>esto desencadenala retransmisión del dicho segmento perdido <strong><font color="#00cc00">fast.retransmission.</font></strong></p>
<p>Vamos ahora a centrarnos en la misma gráfica pero <strong>desactivando Graph 4:</strong></p>
<p><img id="image474927" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/tcp_analysis_02.png" alt="Wireshark IO Graphs" align="middle" /></p>
<p>Vemos entonces, la zona reseñada en rojo, que algunos segmentos llegados <strong><font color="#0000cc">fuera de orden</font></strong> e incluso <strong><font color="#990000">perdidos</font></strong> reseñados en azul en la primera gráfica, generaron también (estaba oculto) <font color="#ff00ff"><strong>ACKs duplicados</strong></font> . Sin embargo observamos que <strong>no hubo Retransmision o Retransmision rápida</strong>. Esto es debido a que, se ve cláramente en la gráfica, tan solo se produjo <strong>1 o 2 </strong><font color="#ff00ff"><strong>ACKs duplicados</strong></font>.<u> </u><strong>Lo vemos de forma muy clara en la zona reseñada con el ciculo rojo.</strong> También vemos que <strong>si</strong> se generó una <strong><font color="#00cc00">retransmision</font></strong> en uno de ellos que si tiene<font color="#ff66ff"><strong> 3 ACKs Duplicados</strong></font>.</p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/02/20/wireshark-tshark-usando-io-graph-para-relacionar-acks-duplicados-lost-segment-y-retransmisiones#comments">Comments</a></p>]]></description>
	<pubDate>Fri, 20 Feb 2009 12:01:44 +0100</pubDate>	</item>
	<item>
	<title>Wireshark / Tshark. Error TCP Bad Checksum</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/02/19/wireshark-tshark-error-tcp-bad-checksum</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/02/19/wireshark-tshark-error-tcp-bad-checksum</guid>
		<description><![CDATA[<p>Ocurre, en ocasiones, que cuando analizamos los paquetes capturados en una sesión <a href="http://seguridadyredes.nireblog.com/cat/wireshark-tshark" title="Wireshark - Tshark">Wireshark / Tshark</a>, nos encontramos una serie de errores que por su número y/o descripción parece que tenemos un problema grave en un <strong>host</strong> o en la <strong>red</strong>.</p>
<p><img id="image474691" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/tcp_bad_chk_0.png" alt="Wireshark Tshark. Error TCP Bad Checksum" align="middle" /></p>
<p>Vamos a estudiar porqué ocurre esto, si es tan grave como parece y como solucionarlo.
</p>
<!--more-->
</p>
<p>Una vez detectado el Error vamos a analizar unos de los paquetes con TCP Bad Checksum:</p>
<p><img id="image474692" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/tcp_bad_chk_3.png" alt="TCP Bad Checksum en Wireshark Tshark" align="middle" /></p>
<p>Tenemos una pista. <strong>Wireshark</strong> interpereta que puede tratarse de <strong>TCP checksum offload</strong>. ¿ Pero que es esto exactamente ?.</p>
<h3><strong>TCP Checksum offload.</strong></h3>
<p>En la gran mayoría de implementaciones de la pila de protocolos el checksum de los <a href="http://seguridadyredes.nireblog.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp" target="_blank" title="Segmento TCP">segmentos TCP</a> o <a href="http://seguridadyredes.nireblog.com/post/2008/02/06/analisis-capturas-trafico-de-red-interpretacion-datagrama-udp-iii" target="_blank" title="Datagramas UDP">datagramas UDP</a> salientes no los realiza la CPU. Esta funciónestá encomendada a la tarjeta de red. Esto es así para reducir la carga de la CPU y que de esta forma aumente el rendimiento de host.</p>
<p>Pero hay un problema y es que <strong>Wireshark</strong> <u>no puede comprobar el checksum de los paquetes salientes</u>. Literalmente no le da tiempo a comprobar este valor. Cuando se coloca el valor del campo el paquete correspondiente ya no se encuentra, así que devuelve un error por incorrecto.</p>
<h3><strong>Como solucionarlo. </strong></h3>
<p>Existen dos métodos. Uno es <strong>desactivar esta función de la tarjeta de red</strong>, pero provocará un rendimiento bajo. El segundo método y el más correcto es <strong>configurar wireshark para que no compruebe este campo</strong>.  Esto lo haremos de la siguiente forma:</p>
<p><u><strong>Edit</strong></u> >  <strong><u>Preferences</u></strong> > Desplegamos la lista de protocolos y elegimos <strong>TCP</strong>:</p>
<p><img id="image474695" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/tcp_bad_chk_4.png" alt="Desactivar checksum offload wireshark" align="middle" /></p>
<p>En las tarjetas de red y en el caso de las <strong>Broadcom NetXtrem Ggigabit </strong>el parámetro "Checksum Offload" (Descarga de suma de comprobación) se desactiva en <strong>las propiedades avanzadas</strong> de la <strong>NIC</strong> o tarjeta de red.</p>
<p>Entre los prosible valores de la propiedad <strong>Checksum Offload </strong>de la Tarjeta tenemos:</p>
<ul>
<li><strong>Rx TCP/IP Checksum</strong> (Suma de comprobación de TCP/IP Rx): activa la recepción de la descarga de suma de comprobación de TCP, IP y UDP</li>
<li><strong>Tx TCP/IP Checksum</strong> (Suma de comprobación de TCP/IP Tx): (valor predeterminado) activa la transmisión de la descarga de suma de comprobación de TCP, IP y UDP</li>
<li><strong>Tx/Rx TCP/IP Checksum</strong> (Suma de comprobación de TCP/IP Tx/Rx): activa la transmisión y recepción de la descarga de suma de comprobación de TCP, IP y UDP </li>
<li><strong><u>None (ninguno)</u></strong> - desactiva la descarga de la suma de comprobación y es la que elegiremos.</li>
</ul>
<p> Aunque, como ya he comentado más arriba, no es la mejor opción por la disminución de rendimiento.
</p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/02/19/wireshark-tshark-error-tcp-bad-checksum#comments">Comments</a></p>]]></description>
	<pubDate>Thu, 19 Feb 2009 18:14:23 +0100</pubDate>	</item>
	<item>
	<title>Tshark Detectando problemas en la red.</title>
	<link>http://seguridadyredes.nireblog.com/post/2009/02/19/tshark-detectando-problemas-en-la-red</link>
	<guid>http://seguridadyredes.nireblog.com/post/2009/02/19/tshark-detectando-problemas-en-la-red</guid>
		<description><![CDATA[<p>Uno de los usos más importantes que podemnos aplicar a <a href="http://seguridadyredes.nireblog.com/cat/wireshark-tshark" title="Wireshark Tshark"><strong>Tshark / Wireshark</strong></a> es el análisis de nuestras conexiones y la detección de posibles problemas en la <strong>transmisión de paquetes</strong>. <strong>La pérdida de paquetes y/o conexión</strong> es uno de estos problemas. Vamos a estudiar en esta ocasión como detectar está pérdida de paquetes.</p>
<p><img id="image474576" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/dp_ack02.png" alt="Tshark. ACKs duplicados" align="middle" /></p>
<p>
<!--more-->
</p>
<p>Veamos parte de la una captura cualquiera:</p>
<p><img id="image314606" class="imgcentro" src="http://seguridadyredes.nireblog.com/blogs1/seguridadyredes/files/tshark_p_0.png" alt="tshark" align="middle" /></p>
<p>Podemos observar que  de momento no hay problema alguno. La transmisión de paquetes entra dentro de lo normal.</p>
<p>Sin embargo, en un momento de la captura, nos encontramos ya con algún problema:</p>
<p><img id="image314608" class="imgcentro" src="http://seguridadyredes.nireblog.com/blogs1/seguridadyredes/files/tshark_p_1.png" alt="Tshark" align="middle" /></p>
<p>Vemos notaciones como <strong>TCP Previous segment lost</strong>, <strong>TCP Dup ACK</strong> y <strong>TCP Retransmission</strong>.</p>
<p>Vamos a analizar la captura.</p>
<p><strong>TCP Previous segmento lost</strong> (frame 188) nos indica que un segmento TCP anterior ha fallado.<strong> Un TCP Dup ACK</strong> (frame 189) puede deberse a un desorden de paquetes que hace que el receptor provoque un ACK duplicado ante un segmento que no sigue la secuencia normal. Vemos la duplicidad de secuencias (Seq=2313). Puede ser también debido a la perdida de algún segmento de datos. Al recibir segmentos no ordenados, se genera ACKs duplicados, reenvía nuevamete el mismo ACK (acuse de recibo), es decir nuevos requerimientos para recibir el segmento de forma correcta. ( Vemos el ACK=4126 repetido).</p>
<p>El problema también puede deberse a incremento de tiempo en la trasmisión del paquete, retraso del paquete, con lo que se espera nuevos <strong>ACKs duplicados</strong>.</p>
<p>Normlamente la pérdida de orden secuencia es notificado por <strong>Tshark</strong> con la notación <strong>TCP Out-Of-Order segment.</strong></p>
<p>Por regla general:</p>
<ul>
<li>Solo se esperan hasta 3 ACKs duplicados.</li>
<li>Uno o dos ACKs duplicados indica una reordenación de los segmentos.</li>
<li>Tres o más ACKs duplicados indica que se perdió el paquete.</li>
</ul>
<p><strong>TCP Retransmission </strong>ocurre, explicado de forma muy básica, cuando el cliente no obtiene respuesta a un requerimiento y vuelve a reintentarlo.</p>
<p>En resúmen podemos decir que cuando ocurre un <strong>TCP Previous segment lost </strong>se indica que durante el curso de transferencia de datos, un paquete se ha perdido o tarda en ser transmitido. En respuesta, el cliente envía un paquetel <strong>TCP Dup ACK</strong> al servidor, solicitando que el paquete perdido sea enviado nuevamente. El cliente seguirán enviando ACKs duplicados hasta que sea atendida la petición.</p>
<p><strong>ACKs Duplicados.</strong></p>
<p>Cuando se pierde algún segmento de datos tanto por errores del canal o por problemas de congestión TCP recibe segmentos fuera de orden y en consecuencia genera ACK duplicados. Puede ser consecuencias de picos de retardo o desorden de paquetes. Podemos decir entonces que los ACKs duplicados son síntomas también de un problema en nuestra red.</p>
<p>Cuando se reciban <strong>3 ACKs</strong> duplicados es entonces cuando aparece el mecanismo de <strong>Fast Retransmit</strong> o Retransmision rápida que vemos en las capturas que consiste en la retransmisión de segmento perdido.</p>
<p><font size="2">Abajo, uso de Expert Info para visualizar los eventos de ACK Duplicados: </font></p>
<p><img id="image474575" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/dp_ack01.png" alt="Expert Info. Dup ACK" align="middle" /></p>
<p>ACKs Duplicados en Tshark:</p>
<p><img id="image474576" class="imgcentro" src="http://files.nireblog.com/blogs1/seguridadyredes/files/dp_ack02.png" alt="Tshark. ACKs duplicados" align="middle" /></p>
<p>Hasta aquí todo explicado de forma muy básica. En próximos capítulos iremos profundizando en estos conceptos y estudiaremos los mecanismo de TCP para evitar la congestión, etc.</p>
<p><a href="http://seguridadyredes.nireblog.com/post/2009/02/19/tshark-detectando-problemas-en-la-red#comments">Comments</a></p>]]></description>
	<pubDate>Thu, 19 Feb 2009 10:02:03 +0100</pubDate>	</item>
</channel>	
</rss>
 
