<?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/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Centro de estudios en internet - Aprendo en casa &#187; teleformacion</title>
	<atom:link href="http://www.aprendoencasa.com/index.php/tag/teleformacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aprendoencasa.com</link>
	<description>Centro de estudios online con cursos gratuitos de internet, sistemas, diseño, web, programación, xhtml, windows, etc.</description>
	<lastBuildDate>Tue, 01 Jun 2010 19:57:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Seguridad sistemas y redes (10)</title>
		<link>http://www.aprendoencasa.com/index.php/2010/05/03/seguridad-sistemas-y-redes-10/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/05/03/seguridad-sistemas-y-redes-10/#comments</comments>
		<pubDate>Mon, 03 May 2010 10:59:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2010]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[ataques]]></category>
		<category><![CDATA[gratuitos]]></category>
		<category><![CDATA[informatica]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[redes]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/?p=877</guid>
		<description><![CDATA[Cadenas identificativas y otros recursos (6) Rastrear redes Escaneo de puertos con UDP Este tipo de escaneo se realiza utilizando paquetes de tipo UDP  (User Datagram Protocol) en vez de utilizar paquetes TCP. Los puertos UDP abiertos no realizan contestacion con el flag ACK activado a diferencia de los puertos TCP. Los puertos cerrados UDP [...]]]></description>
			<content:encoded><![CDATA[<h1>Cadenas identificativas y otros recursos (6)</h1>
<h6>Rastrear redes</h6>
<h6>Escaneo de puertos con UDP</h6>
<p>Este tipo de escaneo se realiza utilizando paquetes de tipo UDP  (User Datagram Protocol) en vez de utilizar paquetes TCP. Los puertos UDP abiertos no realizan contestacion con el flag ACK activado a diferencia de los puertos TCP. Los puertos cerrados UDP no están obligados a responder con un paquete RST activado, pero responden con un mensaje de tipo ICMP_PORT_UNREACHABLE. Al igual que en los dos últimos tipos de escaneos tcp comentados se utiliza para realizar mapeos inversos y deducir así que puertos están abiertos.</p>
<p><em>Envio con el puerto cerrado</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; UDP &#8212;&#8212;&#8212;&#8212;&#8211;&gt; Equipo B</p>
<p>Equipo A &lt;&#8212;&#8212;&#8212;&#8212; ICMP UNREACHABLE &lt;&#8212;&#8212;- Equipo B</p>
<p>Ejemplo con NMAP:</p>
<pre class="brush:bash">root@ubuntu:~# nmap -sU 192.0.2.1

Starting Nmap 5.00 ( http://nmap.org ) at 2010-05-03 11:35 CEST
Interesting ports on 192.0.2.1:
Not shown: 999 closed ports
PORT   STATE         SERVICE
53/udp open|filtered domain
MAC Address: 00:30:DA:XX:XX:XX (Comtrend CO.)

Nmap done: 1 IP address (1 host up) scanned in 1085.72 seconds</pre>
<p>Ejemplo con Hping:</p>
<pre class="brush:bash">root@ubuntu:~# hping3 -V -c 4 -2 -p 2049 192.0.2.1
using eth0, addr: 192.0.2.245, MTU: 1500
HPING 192.0.2.1 (eth0 192.0.2.1): udp mode set, 28 headers + 0 data bytes
ICMP Port Unreachable from ip=192.0.2.1 name=UNKNOWN
status=0 port=1274 seq=0
ICMP Port Unreachable from ip=192.0.2.1 name=UNKNOWN
status=0 port=1275 seq=1
ICMP Port Unreachable from ip=192.0.2.1 name=UNKNOWN
status=0 port=1276 seq=2
ICMP Port Unreachable from ip=192.0.2.1 name=UNKNOWN
status=0 port=1277 seq=3

--- 192.0.2.1 hping statistic ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.6/250.6/1000.5 ms</pre>
<p>Entre las ventajas de este método se puede destacar que es fácil detectar si una maquina esta activa y que puertos udp tiene abiertos, por el contrario se ha de tener privilegios de superusuario para realizar este tipo de escaneo, son bastante lentos y los paquetes que se envían no tienen porque garantizar respuestas positivas, ya que puede ser que se pierdan los paquetes al enviarlos o recibirlos.<br />
<br/><br />
<br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "0910315320";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/><br />
<br/></p>
<h6>Escaneo utilizando el puerto ECHO</h6>
<p>El puerto ECHO (No. 7) es un tipo de conexión que los sistemas linux actualmente lo traen cerrado ya que no se utiliza, pero en otros sistemas vienen por defecto activado. Se utiliza para realizar comprobaciones de conexión, es decir si la maquina esta activa o no, actualmente se utiliza ping. Se puede utilizar TCP o UDP para realizar la conexión a este puerto. En cualquiera de los casos la función de este puerto ECHO (Eco) es devolver lo que se le envía, de ahí su nombre. En el caso de TCP se puede utilizar el programa telnet para probar si la maquina esta activa, de hecho la conexión a la maquina destino implica una negociación completa en tres pasos (Treeway-handshaking), lo cual significa que la maquina destino se encuentra en la red.</p>
<pre class="brush:bash">Ejemplo tcp con telnet:

#<strong>telnet 192.168.1.1   7</strong>

Trying 192.168.1.1…

Connected to 192.168.1.1.

Escape character is ‘^]’.

Envio de eco

Envio de ecotelnet&gt;close
</pre>
<p>Ejemplo udp con netcat:</p>
<pre class="brush:bash">#nc –v –u <strong>192.168.1.1 echo</strong>

192.168.1.1: inverse host lookup failed: Unknown host

(UNKNOWN) [192.168.1.1] 7 (echo) open

Envio de prueba

Envio de prueba
</pre>
<h6>Envio de ICMP de tipo ECHO</h6>
<p>El protocolo ICMP (Internet Control Message Protocol) es el que informa de posibles errores en la capa de red.  Este tipo de escaneo se puede considerar como la forma mas simple de saber si un equipo responde, ya que se utiliza para realizarlo el conocido comando <em>ping</em>, que genera un mensaje ICMP de tipo <em>echo</em>, al cual también se le llama de tipo 8 o simplemente <em>ping</em>. Al realizar el <em>ping</em> la maquina responde con un mensaje también de tipo ICMP pero esta vez de tipo REPLY, también denominado <em>pong</em>.</p>
<p>Ejemplo utilizando el comando ping:</p>
<pre class="brush:bash">root@ubuntu:~# ping -c 4 192.0.2.1
PING 192.0.2.1 (192.0.2.1) 56(84) bytes of data.
64 bytes from 192.0.2.1: icmp_seq=1 ttl=255 time=0.559 ms
64 bytes from 192.0.2.1: icmp_seq=2 ttl=255 time=0.562 ms
64 bytes from 192.0.2.1: icmp_seq=3 ttl=255 time=0.553 ms
64 bytes from 192.0.2.1: icmp_seq=4 ttl=255 time=0.566 ms

--- 192.0.2.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 0.553/0.560/0.566/0.004 ms</pre>
<h6>Envio ICMP tipo broadcast</h6>
<p>Este tipo de envíos o escaneos realizan una petición ICMP de tipo 8 o <em>ping</em> a broadcast , al realizar este tipo de envió al broadcast se esta solicitando respuesta a toda la red de forma que todos los equipos que la componga enviaran respuesta.  Es un tipo de escaneo peligroso también denominado <em>smurf broadcast</em>, ya que puede dar lugar a un bloqueo de la red por colapso.</p>
<p>Ejemplo utilizando el comando hping:</p>
<pre class="brush:bash">root@ubuntu:~# hping3 -1 -c 5 192.0.255.255
HPING 192.0.255.255 (eth0 192.0.255.255): icmp mode set, 28 headers + 0 data bytes
len=46 ip=192.0.255.255 ttl=32 id=39545 icmp_seq=0 rtt=0.3 ms
DUP! len=46 ip=192.0.3.201 ttl=255 id=25118 icmp_seq=0 rtt=0.4 ms
len=46 ip=192.0.3.201 ttl=255 id=25119 icmp_seq=1 rtt=0.2 ms
DUP! len=46 ip=192.0.255.255 ttl=32 id=39547 icmp_seq=1 rtt=0.2 ms
len=46 ip=192.0.3.201 ttl=255 id=25120 icmp_seq=2 rtt=0.4 ms

--- 192.0.255.255 hping statistic ---
3 packets transmitted, 5 packets received, -66% packet loss
round-trip min/avg/max = 0.2/0.3/0.4 ms</pre>
<p>Una de las ventajas a destacar es que en la mayoría de redes Unix/Linux suelen responder a este tipo de petición, por el contrario en redes Windows este tipo de escaneo es omitido por defecto, en redes unix se puede llegar a producir el colapso de la red debido a este tipo de petición, es recomendable configurar o asegurar la red para que no responda a este tipo de peticiones.</p>
<h6>envio ICMP tipo 10 o router</h6>
<p>Este tipo de envió es el que realizan los routers para que las maquinas de la red detecten su presencia. El router envía mediante <em>multicast</em> o <em>multidifusión</em> (el envió de información en una red a múltiples destinos simultáneamente), una trama ICMP, de esta forma equipos en la red que no hubieran localizado su router darán con el suyo. Este tipo de envió se ha de generar con una aplicación especial, en este caso esta aplicación se denomina <em>icmpush</em> y es bastante fácil de localizar en cualquier distribución linux.</p>
<p>Ejemplo utilizando el comando icmpush:</p>
<pre class="brush:bash">nacho@ubuntu:~$ sudo icmpush -vv -rts 192.0.3.10
 -&gt; Outgoing interface = 192.0.2.245
 -&gt; ICMP total size = 8 bytes
 -&gt; Outgoing interface = 192.0.2.245
 -&gt; MTU = 1500 bytes
 -&gt; Total packet size (ICMP + IP) = 28 bytes
ICMP Router Solicitation packet sent to 192.0.3.10 (192.0.3.10) 

Receiving ICMP replies ...
icmpush: Program finished OK
</pre>
<h6>Envio ICMP de tipo 13 o marcas de tiempo</h6>
<p>Las marcas de tiempo se utilizan como protección para evitar la falsificación de paquetes TCP que alteren la secuencia de conexión, existe un limite de tiempo de espera entre cada paquete de una misma conexión de forma que si se supera este limite de tiempo la conexión queda cancelada. Las marcas de tiempo o <em>timestamps</em> permiten obtener información de las maquinas activas, ya que si se envía una petición de tipo 13 a una maquina esta indicara si esta activa y resolverá también su zona horaria con lo que se puede determinan la zona geográfica a la cual pertenece dicha maquina. Para realizar este tipo de envíos se utiliza también la herramienta mencionada anteriormente denominada <em>icmpush</em>. Los sistemas Unix suelen responder a este tipo de peticiones mientras que los equipos windows no.</p>
<p>Ejemplo utilizando el comando icmpush:</p>
<pre class="brush:bash">nacho@ubuntu:~$ sudo icmpush -vv -tstamp 192.0.2.1
 -&gt; Outgoing interface = 192.0.2.245
 -&gt; ICMP total size = 20 bytes
 -&gt; Outgoing interface = 192.0.2.245
 -&gt; MTU = 1500 bytes
 -&gt; Total packet size (ICMP + IP) = 40 bytes
ICMP Timestamp Request packet sent to 192.0.2.1 (192.0.2.1)

Receiving ICMP replies ...
192.0.2.1       -&gt; Timestamp Reply transmited at 01:00:00
icmpush: Program finished OK</pre>
<h6>Envio ICMP de tipo 15</h6>
<p>Este envió ya es obsoleto pero algunas versiones de sistema Unix antiguas todavía siguen respondiendo al mismo, al realizar el envió la maquina destino respondía con su dirección de red.</p>
<p>Ejemplo utilizando el comando icmpush:</p>
<pre class="brush:bash">nacho@ubuntu:~$ sudo icmpush -vv -mask 192.0.2.1
 -&gt; Outgoing interface = 192.0.2.245
 -&gt; ICMP total size = 16 bytes
 -&gt; Outgoing interface = 192.0.2.245
 -&gt; MTU = 1500 bytes
 -&gt; Total packet size (ICMP + IP) = 36 bytes
ICMP Address Mask Request packet sent to 192.0.2.1 (192.0.2.1)

Receiving ICMP replies ...
icmpush: Program finished OK</pre>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:840e9b48-efb0-4793-9484-dcd901c058b5" class="wlWriterEditableSmartContent" style="display: inline; float: none; margin: 0px; padding: 0px;">Etiquetas de Technorati: <a rel="tag" href="http://technorati.com/tags/cursos">cursos</a>,<a rel="tag" href="http://technorati.com/tags/seguridad">seguridad</a>,<a rel="tag" href="http://technorati.com/tags/sistemas">sistemas</a>,<a rel="tag" href="http://technorati.com/tags/redes">redes</a>,<a rel="tag" href="http://technorati.com/tags/gratuitos">gratuitos</a>,<a rel="tag" href="http://technorati.com/tags/informatica">informatica</a>,<a rel="tag" href="http://technorati.com/tags/ataques">ataques</a>,<a rel="tag" href="http://technorati.com/tags/programaci%c3%b3n">programación</a>,<a rel="tag" href="http://technorati.com/tags/aprendo+en+casa">aprendo en casa</a></div>
<p><br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "6190361313";
google_ad_width = 468;
google_ad_height = 15;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/05/03/seguridad-sistemas-y-redes-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Seguridad Sistemas]]></series:name>
	</item>
		<item>
		<title>Seguridad Sistemas y Redes (8)</title>
		<link>http://www.aprendoencasa.com/index.php/2010/02/07/seguridad-sistemas-y-redes-8/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/02/07/seguridad-sistemas-y-redes-8/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 11:18:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[redes]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2010/02/07/seguridad-sistemas-y-redes-8/</guid>
		<description><![CDATA[Cadenas identificativas y otros recursos 4 Complementando a las herramientas administración y servicios de internet, existen otras técnicas que permiten detectar maquinas en una red. A este tipo de técnicas junto con las herramientas administrativas se les suele conocer con el nombre de fingerprinting, que viene a significar “huella identificativa”. Esta huella identificativa suele ser [...]]]></description>
			<content:encoded><![CDATA[<h2>Cadenas identificativas y otros recursos 4</h2>
<p>Complementando a las herramientas administración y servicios de internet, existen otras técnicas que permiten detectar maquinas en una red. A este tipo de técnicas junto con las herramientas administrativas se les suele conocer con el nombre de <strong>fingerprinting</strong>, que viene a significar “huella identificativa”. Esta huella identificativa suele ser para un atacante toda la información de la implementación de pila TCP/IP, esta información permite descubrir de forma bastante fiable el sistema operativo que esta ejecutando la maquina,&#160; esto junto a otras informaciones permiten averiguar las versiones de los servicios que utiliza el servidor, con lo que se puede consultar si existen vulnerabilidades y herramientas para aprovecharse de las mismas.</p>
<p>La mayoría de las técnicas utilizadas para la obtención de huellas identificativas están basadas en la información de la pila del protocolo TCP/IP. El protocolo TCP es un protocolo de la capa de transporte que asegura que el envió de datos sea correcto, es decir que la información recibida se corresponda con la información enviada.</p>
<p>A la hora de realizar una búsqueda de sistemas, podemos distinguir quizás dos partes, la primera seria simplemente detectar si un dispositivo esta activo en una red y la segunda seria examinar las características de dicho dispositivo, como servicios en funcionamiento, puertos abiertos en el dispositivo y sistema operativo que utiliza el mismo. Para realizar estos tipos de análisis se pueden utilizar dos tipos de análisis:</p>
<ul>
<li><strong>Análisis activo</strong>: Un análisis activo es aquel que envía información a la red para que los sistemas conectados a la misma, detecten dicha información y respondan en base a dicha información. Según la información obtenida de las respuestas de los diferentes sistemas el programa de análisis utilizado o nosotros mismos podemos realizar las deducciones pertinentes. </li>
<li><strong>Análisis pasivo</strong>: A diferencia del anterior tipo de análisis, en este tipo de análisis la maquina que quiere realizar el análisis no envía información a la red, sino que “escucha” la información que viaja por la misma y determina los resultados en base a la captura de dicha información. Lógicamente este tipo de análisis es mas difícil de detectar por parte de las maquinas analizadas. </li>
</ul>
<p><br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "0910315320";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/></p>
<p>Normalmente un intruso después de haber obtenido información de un sistema, intentara un intento de acceso utilizando técnicas de escaneo, estas acciones tendrán como finalidad conocer los servicios que tiene el sistema como ftp, web, telnet, mail, etc&#8230; Estos servicios se interpretan como puertos activos o abiertos en el sistema. La función de saber que puertos están disponibles por parte del&#160; intruso es la de conocer dichos puertos, ya que suelen ser las puertas de entrada al sistema. Si el intruso llegar a conocer el sistema operativo y las versiones de los servicios utilizados, es posible que pueda documentarse sobre alguna vulnerabilidad, herramienta o exploit que permita el acceso a la maquina atacada.</p>
<p>Los puertos disponibles van desde el 1 hasta el 65535 que se pueden clasificar de la siguiente forma:</p>
<p><strong>Puertos estándar</strong>: su rango oscila entre el 1 y 1024.</p>
<p><strong>Puertos registrados:</strong> su rango oscila entre el 1025&#160; hasta el 49151</p>
<p><strong>Puertos dinámicos:</strong> su rango oscila entre el 49152 y el valor 65535</p>
<p>La formas de analizar redes a través de paquetes tcp o udp, se suelen englobar dentro de los análisis activos. Ya que suelen enviar paquetes para determinar que puertos están activos o a la espera de recibir una conexión. Este hecho de cierta forma favorece al encargado de la seguridad del sistema, ya que se puede decir que este tipo de análisis “hacen mucho ruido”, y un sistema de detección de intrusos seria capaz de determinar el ataque y de donde proviene. Aun así ciertas herramientas utilizadas por intrusos son capaces de modificar el ataque para que su detección sea mas problemática por el ids (“sistema de detección de intrusos”), siendo estos distribuidos de la siguiente forma:</p>
<p><em>Análisis lentos</em>:&#160; el análisis realizado de esta forma consiste en demorar o retardar el tiempo de envió entre paquetes aumentando los tiempos de espera, el análisis durara mucho mas tiempo, pero por otra parte el ids no tendrá claro si es un ataque o un acceso normal.</p>
<p><em>Análisis de puertos aleatorios</em>: otra forma de realizar este tipo de ataque para que el ids no lo detecte es realizar el análisis de los puertos aleatoriamente y no siguiendo un orden secuencial, que podría “despertar” sospechas al ids, este tipo de ataque se suele combinar con el análisis lento, por parte del atacante su análisis durara mucho mas tiempo, pero no se notara tanto en la maquina atacada.</p>
<p><em>Análisis distribuidos</em>: Este tipo de análisis consiste en realizar el análisis utilizando varias maquinas distintas, de esta forma y combinando el análisis con los dos anteriores, es prácticamente imposible que el ids detecte el análisis.</p>
<p><em>Análisis a través de proxy</em>: este tipo de análisis lo realiza la maquina atacante utilizando un proxy, es decir una maquina intermedia que hace de proxy entre la maquina atacada y el atacante, así aun cuando se descubra el ataque se obtendrá información sobre el proxy y no sobre la maquina atacante.</p>
<p><em>Análisis fragmentación de paquetes</em>:&#160; en análisis de la maquina atacada se realiza enviando paquetes lo suficientemente pequeños para así dividir la información de cabecera del paquete. Así el ids es posible que no sea capaz de reconstruir el paquete fragmentando y por tanto su identificación o detección se vuelve errónea, este tipo de análisis también puede afectar a los cortafuegos o “firewalls”. Como es lógico los paquetes son reconstruidos por la maquina atacada al llegar a la misma. La fragmentación se suele hacer generando trozos pequeños de 8 bytes, de esta forma los flag de cabecera TCP no van en el primer paquete o se envía un paquete fragmentado, que el segundo fragmento tiene desplazamiento negativo, con lo cual al unirlos en el destino se sobrescribe la información del mismo.</p>
<p><em>Análisis por cebos o señuelos</em>: El envió de señuelos consiste en enviar paquetes a la maquina atacada con direcciones ip falsas y entre una de estas direcciones se envía la verdadera, con lo que el ids cree que no es un ataque y resulta muy difícil que lo detecte.</p>
<p>&#160;</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b117b4ad-0f6a-45e2-9b37-210cdb94ce35" class="wlWriterEditableSmartContent">Etiquetas de Technorati: <a href="http://technorati.com/tags/cursos" rel="tag">cursos</a>,<a href="http://technorati.com/tags/seguridad" rel="tag">seguridad</a>,<a href="http://technorati.com/tags/teleformacion" rel="tag">teleformacion</a>,<a href="http://technorati.com/tags/redes" rel="tag">redes</a>,<a href="http://technorati.com/tags/practicas" rel="tag">practicas</a>,<a href="http://technorati.com/tags/internet" rel="tag">internet</a>,<a href="http://technorati.com/tags/online" rel="tag">online</a>,<a href="http://technorati.com/tags/ejercicios" rel="tag">ejercicios</a></div>
<p><br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "3897459344";
google_ad_width = 200;
google_ad_height = 90;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/><br />
<script type="text/javascript"><!--
window.googleAfmcRequest = {
  client: 'ca-mb-pub-0941526727596297',
  ad_type: 'text_image',
  output: 'html',
  channel: '5886690873',
  format: '320x50_mb',
  oe: 'utf8',
  color_border: '336699',
  color_bg: 'FFFFFF',
  color_link: '0000FF',
  color_text: '000000',
  color_url: '008000',
};
//--></script>
<script type="text/javascript" 
   src="http://pagead2.googlesyndication.com/pagead/show_afmc_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/02/07/seguridad-sistemas-y-redes-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Seguridad Sistemas]]></series:name>
	</item>
		<item>
		<title>Seguridad Sistemas y Redes (7)</title>
		<link>http://www.aprendoencasa.com/index.php/2010/02/02/seguridad-sistemas-y-redes-7/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/02/02/seguridad-sistemas-y-redes-7/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 19:59:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Libros]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2010/02/02/seguridad-sistemas-y-redes-7/</guid>
		<description><![CDATA[Cadenas identificativas y otros recursos 3 &#160; Telnet Telnet (TELecommunication NETwork) es un protocolo que se utiliza para conectar de forma remota a través de una red con otra maquina y manejarla como si se estuviera sentado en la propia maquina. Aparte de recibir el nombre de Telnet el protocolo, también se denomina al programa [...]]]></description>
			<content:encoded><![CDATA[<h2>Cadenas identificativas y otros recursos 3</h2>
<h3>&#160;</h3>
<h3>Telnet</h3>
<p>Telnet (TELecommunication NETwork) es un protocolo que se utiliza para conectar de forma remota a través de una red con otra maquina y manejarla como si se estuviera sentado en la propia maquina. Aparte de recibir el nombre de Telnet el protocolo, también se denomina al programa cliente para conectar al servidor de la misma forma. El puerto utilizado normalmente por el protocolo y sus programas asociados es el numero 23.</p>
<p>El programa cliente permite normalmente acceder en modo consola o terminal, no se utilizan gráficos. Se solía utilizar normalmente para configurar, arreglar o consultar datos de forma remota. Uno de los principales problemas de este protocolo y sus programas asociados, es en si la comunicación que se realiza, ya que esta no es cifrada y por tanto son transmitidas como texto plano, así que si algún intruso consiguiera realizar un sniffer (fisgón), conseguiría fácilmente las contraseñas y nombres de usuarios de la personas que se conecten utilizando este servicio.</p>
<p>Actualmente si se utiliza es conveniente realizar una conexión cifrada SSH, la cual permite tener mas privacidad ante ataques de escuchas de red. Telnet funciona en un entorno de cliente/servidor, lo que significa que el equipo remoto es el que actúa como servidor y por tanto se ha de configurar para ello. En sistemas Unix/Linux este servicio es proporcionado por lo que se conoce como un <em>daemon (demonio)</em>, El demonio utilizado para este servicio se denomina <em>Telnetd</em>.</p>
<p>Entre los programas cliente mas conocidos para acceder a un servidor y teniendo en cuenta de antemano el propio programa <em>telnet</em>, que por regla general esta incluido en todos los sistemas operativos, los mas famosos programas clientes son mTelnet!, NetRunner, Zoc, y quizás uno de los mas utilizados Putty.</p>
<p>Su forma de utilización básica es muy simple, la sintaxis de la orden es la siguiente:</p>
<blockquote><p><strong>telnet nombre_maquina_servidor</strong></p>
<p><strong>telnet dirección_ip_maquina_servidor</strong></p>
</blockquote>
<p>&#160;</p>
<p>Una vez se haya realizado la conexión con la maquina servidor, el equipo remoto solicitara un nombre de usuario y contraseña como medida de seguridad, de esta forma el usuario se ha de identificar sobre los usuarios definidos en el servidor o equipo remoto.</p>
<p>los comandos mas usuales que se pueden utilizar son los que se muestran a continuación, aunque se ha de tener en cuenta que al tener acceso de forma remota a la maquina se tendrá a disposición por parte del usuario todos los comandos que el administrador del sistema haya permitido ejecutar sobre este tipo de conexiones.</p>
<blockquote><p><strong>?</strong></p>
<p>visualiza la ayuda correspondiente al programa.</p>
<p><strong>close</strong></p>
<p>cierra la sesión de telnet</p>
<p><strong>display</strong></p>
<p>muestra información sobre la conexión en pantalla.</p>
<p><strong>logout</strong></p>
<p>cierra la sesión</p>
<p><strong>mode</strong></p>
<p>permite cambiar entre los modos de trasferencia ASCII y BINARIA.</p>
<p><strong>open</strong></p>
<p>Abrir otra conexión a la actual.</p>
<p><strong>quit</strong></p>
<p>Cierra la aplicación de telnet.</p>
<p><strong>set</strong></p>
<p>Cambia la configuración de la conexión.</p>
<p><strong>unset</strong></p>
<p>Cargar la configuración de conexión predeterminada.</p>
<p>&#160;</p>
</blockquote>
<p>&#160;</p>
<p><br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "1837067091";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/>
<p>Los motivos de seguridad por los que no se recomienda actualmente su utilización en sistemas actuales o modernos, pueden ser las siguientes: las aplicaciones de telnet tienen varias vulnerabilidades descubiertas a lo largo de los años. Otro de los motivos es que no cifra los datos transmitidos, por lo cual un “fisgón” podría intervenir la comunicación y conseguir datos relevantes para la seguridad del sistema, otro motivo es que telnet no tiene un sistema de autentificación que permita asegurar que la comunicación se realiza entre los dos anfitriones deseados y no sobre un tercero que haya interceptado la comunicación.</p>
<p>&#160;</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f925d2ab-ec92-4238-aa84-62b62bc2f36b" class="wlWriterEditableSmartContent">Etiquetas de Technorati: <a href="http://technorati.com/tags/cursos" rel="tag">cursos</a>,<a href="http://technorati.com/tags/seguridad" rel="tag">seguridad</a>,<a href="http://technorati.com/tags/sistemas" rel="tag">sistemas</a>,<a href="http://technorati.com/tags/internet" rel="tag">internet</a>,<a href="http://technorati.com/tags/practicas" rel="tag">practicas</a>,<a href="http://technorati.com/tags/online" rel="tag">online</a>,<a href="http://technorati.com/tags/teleformacion" rel="tag">teleformacion</a>,<a href="http://technorati.com/tags/ejercicios" rel="tag">ejercicios</a></div>
<p><br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "5789933828";
google_ad_width = 200;
google_ad_height = 90;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/02/02/seguridad-sistemas-y-redes-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Seguridad Sistemas]]></series:name>
	</item>
		<item>
		<title>Ejercicios y practicas resueltas de c ( 6 )</title>
		<link>http://www.aprendoencasa.com/index.php/2010/01/12/ejercicios-y-practicas-resueltas-de-c-6/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/01/12/ejercicios-y-practicas-resueltas-de-c-6/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 20:24:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Lenguaje C]]></category>
		<category><![CDATA[Lenguaje C++]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[Lenguaje]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[soluciones]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2010/01/12/ejercicios-y-practicas-resueltas-de-c-6/</guid>
		<description><![CDATA[Otro ejercicio de programación en c, para ir completando los ejercicios y practicas a resolver. Enunciado del ejercicio: Realizar un programa que solicite un numero entero por teclado y a continuación visualice por pantalla todos los números primos entre 1 y el numero introducido. El ejercicio y practica resuelta a continuación: #include &#60;stdio.h&#62; #include &#60;stdlib.h&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Otro ejercicio de programación en c, para ir completando los ejercicios y practicas a resolver.</p>
<blockquote><p>Enunciado del ejercicio:</p>
<p>Realizar un programa que solicite un numero entero por teclado y a continuación visualice por pantalla todos los números primos entre 1 y el numero introducido.</p>
</blockquote>
<p>El ejercicio y practica resuelta a continuación:</p>
<pre class="brush:c">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
// Predefinición de funciones

int EsPrimo(int);
// Función principal

int main(int argc,char *argv[])
{
   int numero;
   int valores;
   // Solicitar por pantalla el numero
   printf(“Teclear No.: “);
   scanf(“ %d”,&amp;numero);
   // Visualizar todos los números primos entre 1 y el numero
   // se utilizara una función para saber si un numero es primo o no
   for(valores=1;valores&lt;=numero;valores++)
   {
       if(EsPrimo(valores)==0)
         printf(“El valor %d es primo\n”);
   }
   return 0;
}
// Funciones desarrolladas
// la funcion devuelve 0 si el numero es primo en caso contrario 1
int EsPrimo(int Valor)
{
  int primo=0;
  int divisores=0;
  // Calcular divisores del numero
  for(divisores=2;divisores&lt;Valor-1 &amp;&amp; primo==0;divisores++)
  {
    // Comprobar si existe un divisor
    if(Valor%divisores==0) primo=1;
  }
  return primo;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/01/12/ejercicios-y-practicas-resueltas-de-c-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<item>
		<title>Seguridad Sistemas y Redes ( 6 )</title>
		<link>http://www.aprendoencasa.com/index.php/2010/01/12/seguridad-sistemas-y-redes-6/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/01/12/seguridad-sistemas-y-redes-6/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 19:48:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[gratis]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/?p=849</guid>
		<description><![CDATA[Cadenas identificativas y otros recursos 2 &#160; Ftp FTP son las siglas de File Transfer Protocol (Protocolo de Transferencia de Ficheros), en informática es un protocolo&#160; de red orientado a la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol – Protocolo de control de transmisiones), esta basado en la arquitectura [...]]]></description>
			<content:encoded><![CDATA[<h2>Cadenas identificativas y otros recursos 2</h2>
<h3>&#160;</h3>
<h3>Ftp</h3>
<p>FTP son las siglas de File Transfer Protocol (Protocolo de Transferencia de Ficheros), en informática es un protocolo&#160; de red orientado a la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol – Protocolo de control de transmisiones), esta basado en la arquitectura cliente-servidor, desde un equipo cliente se puede conectar a un equipo servidor para descargar archivos desde el servidor o enviar archivos al mismo, siendo independiente del sistema operativo utilizado. El servicio de FTP utiliza la capa de aplicación del modelo de capas TCP/IP y utiliza normalmente el puerto 20 o 21. Uno de los problemas identificados de este servicio es que esta pensando para ofrecer velocidad en la transferencia de archivos, pero no así seguridad ya que toda la información intercambiada entre los sistemas incluidos contraseñas y usuarios son enviados en formato de texto plano sin cifrado de ninguna clase. Por lo cual realizando sniffing sobre el servicio se podría obtener información valiosa para un atacante del sistema. La recomendación en seguridad seria utilizar un método alternativo como sFtp el cual esta incluido en el paquete SSH y permite cifrar la conexión en la transferencia de archivos.</p>
<h5>Servidor ftp</h5>
<p>Un servidor ftp es un programa que se ejecuta en un sistema servidor estando este ultimo normalmente conectado a internet, aunque también es posible que no tenga conexión a internet y si a una red interna. La función principal del servidor es permitir el intercambio de archivos o ficheros entre distintos sistemas servidores o clientes. Lo normal es que el servidor ftp no este instalado en un equipo personal, por lo cual un usuario normal utilizara el FTP para conectarse de forma remota al servidor y enviar o recibir información. Las funciones principales o para las que normalmente se utiliza un servidor FTP son las de alojamiento web o servidores de backup, de forma que los clientes del servicio puedan acceder al servicio y enviar sus archivos al sistema servidor utilizando el protocolo FTP o SFTP (Secure File Transfer Protocol).</p>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "0910315320";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
</p>
<h5>Cliente ftp</h5>
<p>Si un equipo personal no tiene instalado en su navegador el servicio de FTP, el usuario ha de instalar en su equipo un programa que le permita la transferencia de archivos entre su sistema y un sistema remoto, a este tipo de programas se les denomina clientes FTP, este tipo de programas facilitan el acceso al sistema servidor, teniendo el usuario simplemente que indicar el nombre del servidor, la cuenta de usuario y la contraseña en caso necesario asignada para la conexión, una vez establecida la misma se tendrá acceso al servidor y se podrá realizar la transferencia de archivos con el programa cliente. Los programas cliente pueden ser en modo consola de texto o grafica, siendo lógicamente los de entorno grafico mucho mas cómodos de utilizar, entre ellos se puede destacar Filezilla, CuteFTP, etc.,Mientras que en modo consola se suele utilizar el comando ftp tanto en sistemas linux como windows.</p>
<h5>Modos de conexión</h5>
<p>FTP permite dos modos de conexión del cliente. Los modos se denominan<em>&#160; Activo</em> (también denominado estándar o PORT ya que el cliente envía comandos tipo PORT al servidor por el canal de control al establecer la conexión) y <em>Pasivo</em> o también denominado PASV ya que el cliente envía comandos tipo PASV, tanto en un modo u otro el cliente establece una conexión utilizando el puerto 21 que establece el canal de control.</p>
<h6>Modo Activo</h6>
<p>En el modo activo el servidor crea su canal de datos en el puerto 20, mientras que por parte del cliente el canal de datos se asocia con un puerto aleatorio mayor de 1024. Para realizar este proceso el cliente envía un comando PORT el cual indica al servidor el numero de puerto por el cual realizar la transmisión de datos. Esta acción hace que el cliente este preparado para abrir cualquier puerto aleatoriamente superior al 1024, teniendo en cuenta este hecho es inseguro utilizar el modo activo ya que dejamos expuesto puertos de forma aleatoria a un posible atacante. De hecho casi todos los cortafuegos que se instalan en los sistemas suelen bloquear o rechazar este tipo de conexiones.</p>
<h6></h6>
<h6>Modo Pasivo</h6>
<p>Para suplir la inseguridad del sistema activo se creo el modo pasivo, en este modo cuando el cliente envía un comando PASV sobre el canal de control, el servidor de FTP le indica al cliente por el canal de control el puerto mayor a 1023, por el cual conectarse el cliente.</p>
<h5>Tipos de transferencia de archivos</h5>
<h6>&#160;</h6>
<h6>Ascii</h6>
<p>esta forma de transferencia es útil para transferir archivos que solo contengan caracteres imprimibles, es decir contengan texto ascii puro no transformado por un procesador de textos no ascii. Un ejemplo seria transferir un archivo html, php, código fuente, etc. Pero no se podría enviar una imagen.</p>
<h6>Binary</h6>
<p>esta otra forma de transferencia es la adecuada cuando se ha de transmitir otro tipos de archivos que no sean ascii, como archivos de imagen, comprimidos, audio, etc.</p>
<h5>Comandos mas frecuentes</h5>
<p>Se ha de tener en cuenta la forma de utilizar el cliente de ftp, si este es el incluido normalmente en el sistema operativo, bien sea linux o windows, o es un cliente grafico como filezilla o cuteftp.</p>
<p>la sintaxis para ejecutar el cliente, por ejemplo en windows 7 seria la siguiente:</p>
<blockquote><p><strong>ftp </strong></p>
</blockquote>
<p>los comandos mas frecuentes son los siguientes:</p>
<blockquote><p><strong>open</strong> servidor</p>
<p>Inicia una conexión con el “servidor” especificado.</p>
<p><strong>close, disconnect</strong></p>
<p>Finaliza la conexión con el servidor sin cerrar el programa cliente.</p>
<p><strong>bye, quit</strong></p>
<p>Finaliza la conexión con el servidor cerrando el programa cliente.</p>
<p><strong>cd</strong>&#160; directorio</p>
<p>Cambia de directorio de trabajo en el servidor.</p>
<p><strong>delete </strong>archivo</p>
<p>Borra el archivo especificado en el servidor.</p>
<p><strong>mdelete</strong> patrón</p>
<p>Borra archivos en el servidor según el “patrón” especificado.</p>
<p><strong>dir, ls</strong></p>
<p>Muestra el listado de directorio en el que nos encontramos.</p>
<p><strong>get</strong> archivo</p>
<p>Obtiene o transfiere un archivo desde el servidor al cliente.</p>
<p><strong>mget</strong> archivos</p>
<p>Obtener o transferir múltiples archivos desde el servidor al cliente.</p>
<p><strong>hash</strong></p>
<p>Activa la impresión de caracteres # , mientras se realiza la transmisión de archivos, como si de una barra de progreso se tratara.</p>
<p><strong>lcd </strong>directorio</p>
<p>Cambia el directorio de trabajo local.</p>
<p><strong>prompt</strong></p>
<p>Activa/Desactiva la confirmación por parte del usuario la ejecución de comandos.</p>
<p><strong>put</strong> archivo</p>
<p>Enviar “archivo” al directorio de trabajo del servidor.</p>
<p><strong>mput</strong> archivos</p>
<p>Enviar múltiples “archivos” al servidor.</p>
<p><strong>pwd</strong></p>
<p>Mostrar el directorio activo del servidor.</p>
<p><strong>rename</strong></p>
<p>Cambiar el nombre a un archivo del servidor.</p>
<p><strong>rmdir</strong> directorio</p>
<p>Elimina el “directorio” especificado en el servidor, siempre y cuando este vacio.</p>
<p><strong>status</strong></p>
<p>Muestra el estado actual de la conexión.</p>
<p><strong>bin, binary</strong></p>
<p>Activa el modo de transferencia binario.</p>
<p><strong>ascii</strong></p>
<p>Activa el modo de transferencia ascii.</p>
<p><strong>help</strong></p>
<p>Mostrar la lista de ordenes o comandos disponibles.</p>
<p><strong>append</strong> archivo</p>
<p>Continua la descarga del “archivo” en caso de un corte en la transferencia del mismo.</p>
<p><strong>send</strong> archivo</p>
<p>Enviar el archivo especificado al directorio activo del servidor.</p>
<p><strong>user</strong></p>
<p>Permite cambiar el nombre de usuario y contraseña sin abandonar la sesión.</p>
<p>&#160;</p>
</blockquote>
<p>Ejemplos de obtención de cadenas identificativas con el comando ftp:</p>
<pre class="brush:c">

$ ftp ftp.servidor.com 

Conectado a servidor.com 

220 ProFTPD 1.3.1 Server (ProFTPD) [86.45.123.43] 

Usuario (servidor.com:(none)):
</pre>
<p>De esta forma se puede obtener las cadenas que proporciona el servidor de ftp, y si no están bien configuradas es posible saber la versión del servidor que se esta utilizando y poder consultar si existe algún tipo de vulnerabilidad sobre el mismo.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d8f68beb-36b0-47a7-8b48-3ff5f546f448" class="wlWriterEditableSmartContent">Etiquetas de Technorati: <a href="http://technorati.com/tags/cursos" rel="tag">cursos</a>,<a href="http://technorati.com/tags/sistemas" rel="tag">sistemas</a>,<a href="http://technorati.com/tags/gratuitos" rel="tag">gratuitos</a>,<a href="http://technorati.com/tags/teleformacion" rel="tag">teleformacion</a>,<a href="http://technorati.com/tags/practicas" rel="tag">practicas</a>,<a href="http://technorati.com/tags/seguridad" rel="tag">seguridad</a>,<a href="http://technorati.com/tags/ejercicios" rel="tag">ejercicios</a></div>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "3897459344";
google_ad_width = 200;
google_ad_height = 90;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/01/12/seguridad-sistemas-y-redes-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Seguridad Sistemas]]></series:name>
	</item>
		<item>
		<title>Ejercicios y practicas resueltas de c ( 5 )</title>
		<link>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-5/</link>
		<comments>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-5/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 23:06:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Lenguaje C]]></category>
		<category><![CDATA[Lenguaje C++]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[gratuitos]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-5/</guid>
		<description><![CDATA[Nueva practica o ejercicio resuelto de programación en el lenguaje c, para que completes tu teleformacion con nuestros cursos online gratuitos. Enunciado del ejercicio: Realizar un programa en el lenguaje de programación c, que lea una matriz de un fichero, realiza la traspuesta de dicha matriz y la almacene en un fichero nuevo. Los nombres [...]]]></description>
			<content:encoded><![CDATA[<p>Nueva practica o ejercicio resuelto de programación en el lenguaje c, para que completes tu teleformacion con nuestros cursos online gratuitos.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "1837067091";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<blockquote>
<p>Enunciado del ejercicio:</p>
<p>Realizar un programa en el lenguaje de programación c, que lea una matriz de un fichero, realiza la traspuesta de dicha matriz y la almacene en un fichero nuevo. Los nombres de los archivos se han de solicitar utilizando la línea de comandos como si de un comando ms-dos o Linux se tratara. Se ha de solicitar tanto el nombre del archivo origen como el nombre del archivo destino.</p>
</blockquote>
<p>El ejercicio y practicas resuelta a continuación:</p>
<pre class="brush:c">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
// Predefinición de funciones

int Existe(char *);

// Función principal

int main(int argc,char *argv[])
{
    // Comprobación del numero de parámetros recibido
    if(argc!=3) {
        printf(&quot;\n¡Faltan parámetros&quot;);
        printf(&quot;\nFormato: comando fichero_origen fichero_destino&quot;);
        exit(1);
    }

    // Comprobación de ficheros
    if(Existe(argv[1])==1) {
        printf(&quot;\nEl fichero de origen no se ha encontrado o no existe...&quot;);
        exit(1);
    }

    // Declaración de variables necesarias
    FILE *fichero;
    int filas;
    int columnas;
    float **matriz1=NULL;
    int contador;
    int contador1;

    // Abrir archivo en modo lectura
    fichero=fopen(argv[1],&quot;rt&quot;);
    // Leer filas y columnas
    fscanf(fichero,&quot;%d %d&quot;,&amp;filas,&amp;columnas);
    printf(&quot;%d %d&quot;,filas,columnas);
    // Realizar la reserva de memoria para las matrices
     matriz1=(float **)malloc(sizeof(float *)*filas);
    for(contador=0;contador&#60;filas;contador)
    {
        matriz1[contador]=(float *)malloc(sizeof(float)*columnas);
    }
    // Asignar datos de la matriz
    for(contador=0;contador&#60;filas;contador++)
    {
        for(contador1=0;contador1&#60;columnas;contador1++)
        {
            fscanf(fichero,"%f",&#038;matriz1[contador][contador1]);
        }
    }
    fclose(fichero);
    printf("\n");
    for(contador=0;contador&#60;filas;contador++)
    {
        for(contador1=0;contador1&#60;columnas;contador1++)
        {
            printf("%.2f ",matriz1[contador][contador1]);
        }
        printf("\n");
    }

    // visualizar traspuesta
    printf("\n%d %d\n",columnas,filas);
    for(contador=0;contador&#60;columnas;contador++)
    {
        for(contador1=0;contador1&#60;filas;contador1++)
        {
            printf("%.2f ",matriz1[contador1][contador]);
        }
        printf("\n");
    }

    fichero=fopen(argv[2],"wt");
    if(!fichero)
    {
        printf("\nERROR No se ha podido crear el archivo destino...");
        exit(1);
    }
    // grabar traspuesta
    fprintf(fichero,"%d %d\n",columnas,filas);
    for(contador=0;contador&#60;columnas;contador++)
    {
        for(contador1=0;contador1&#60;filas;contador1++)
        {
            fprintf(fichero,"%.2f ",matriz1[contador1][contador]);
        }
        fprintf(fichero,"\n");
    }
    // cerrar archivo
    fclose(fichero);
    // liberar memoria
    for(contador=0;contador&#60;filas;contador++)
    {
        free(matriz1[contador]);
    }
    free(matriz1);
    return 0;
}

// Funcion Existe

int Existe(char *nombre_fichero)
{
    FILE *fichero;
    int resultado=0;  // 0 = existe 1 = no existe

    fichero=fopen(nombre_fichero,"rt");
    if(fichero!=NULL)
    {
        fclose(fichero);
    }
    else
    {
        resultado=1;
    }
    return resultado;
}
</pre>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:cd455456-00bc-4bc7-8e3c-ca8be79faf53" class="wlWriterEditableSmartContent">Etiquetas de Technorati: <a href="http://technorati.com/tags/cursos" rel="tag">cursos</a>,<a href="http://technorati.com/tags/gratuitos" rel="tag">gratuitos</a>,<a href="http://technorati.com/tags/online" rel="tag">online</a>,<a href="http://technorati.com/tags/teleformacion" rel="tag">teleformacion</a>,<a href="http://technorati.com/tags/ejercicios" rel="tag">ejercicios</a>,<a href="http://technorati.com/tags/practicas" rel="tag">practicas</a>,<a href="http://technorati.com/tags/programacion" rel="tag">programacion</a>,<a href="http://technorati.com/tags/sistemas" rel="tag">sistemas</a></div>
<p>
</p>
</pre>
<p><script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "3897459344";
google_ad_width = 200;
google_ad_height = 90;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<item>
		<title>Ejercicios y practicas resueltas de C ( 4 )</title>
		<link>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-4/</link>
		<comments>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-4/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 22:37:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Lenguaje C]]></category>
		<category><![CDATA[Lenguaje C++]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[gratuitos]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[soluciones]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-4/</guid>
		<description><![CDATA[Otro nuevo ejercicio de c para seguir el curso de teleformacion y así poder practicas con ejemplos uno de tus lenguajes de programación favorito. Enunciado del ejercicio: Realizar un programa que invierta un fichero de texto creando uno nuevo ( es decir el fichero de destino o final ha de tener el contenido del primero [...]]]></description>
			<content:encoded><![CDATA[<p>Otro nuevo ejercicio de c para seguir el curso de teleformacion y así poder practicas con ejemplos uno de tus lenguajes de programación favorito.<br />
<br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "3897459344";
google_ad_width = 200;
google_ad_height = 90;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
</p>
<blockquote><p>Enunciado del ejercicio:</p>
<p>Realizar un programa que invierta un fichero de texto creando uno nuevo ( es decir el fichero de destino o final ha de tener el contenido del primero u origen pero al revés ), en vez de solicitar los nombres de archivos en el programa se utiliza la línea de parámetros como si de una orden de linux o ms-dos se tratara. Se utiliza para leer y grabar las funciones fread y fwrite, realizando una reserva de memoria dinámica con la función malloc, y la función free para liberar la memoria utilizada. El ejercicio se ha realizado utilizando el editor Code Blocks bajo Windows 7 y probado en la consola de comandos de Windows 7.</p></blockquote>
<p><br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "0910315320";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/><br />
El ejercicio resuelto es el siguiente:</p>
<pre class="brush:c">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

// Predefinición de funciones

int Existe(char *);
long int Tamanyo(char *);

// Función principal

int main(int argc,char *argv[])
{
    // Comprobación del numero de parámetros recibido
    if(argc!=3) {
        printf("\n¡Faltan parámetros");
        printf("\nFormato: comando fichero_origen fichero_destino");
        exit(1);
    }

    // Comprobación de ficheros
    if(Existe(argv[1])==1) {
        printf("\nEl fichero de origen no se ha encontrado o no existe...");
        exit(1);
    }

    // Declaración de variables necesarias
    FILE *fichero;
    long int cuantos;
    char *reserva=NULL;
    int contador;

    // Abrir archivo en modo lectura
    fichero=fopen(argv[1],"rt");
    // Averiguar el tamaño del archivo
    cuantos=Tamanyo(argv[1]);
    // Realizar la reserva de memoria correspondiente al tamanyo del fichero
    reserva=(char *)malloc(sizeof(char)*cuantos);
    // leer el archivo completo y almacenarlo en la variable reserva
    fread(reserva,sizeof(char),cuantos,fichero);
    // Cerrar fichero de origen
    fclose(fichero);
    // abrir archivo destino
    fichero=fopen(argv[2],"wt");
    // en caso de error devolver error y salir
    if(!fichero) {
        printf("\nNo se ha podido crear el archivo destino...");
        exit(1);
    }
    // si no existe error recorrer el vector creado en orden inverso
    // y almacenarlo en el archivo destino
    printf("\nInvertir archivo");
    for(contador=cuantos;contador&gt;=0;contador--)
    {
        fwrite(&amp;reserva[contador],sizeof(char),1,fichero);
        printf(".");
    }
    // cerrar el archivo destino
    fclose(fichero);
    // finalizar programa
    printf("Ok\n");
    // Liberar memoria
    free(reserva);
    return 0;
}

// Función Existe

int Existe(char *nombre_fichero)
{
    FILE *fichero;
    int resultado=0;  // 0 = existe 1 = no existe

    fichero=fopen(nombre_fichero,"rt");
    if(fichero!=NULL) {
        fclose(fichero);
    } else {
        resultado=1;
    }
    return resultado;
}

// Función contador

long int Tamanyo(char *nombre_fichero)
{
    FILE *fichero;
    long int contador=0;
    char caracter=0;

    fichero=fopen(nombre_fichero,"rt");
    fread(&amp;caracter,1,sizeof(caracter),fichero);
    while(!feof(fichero))
    {
        contador++;
        fread(&amp;caracter,1,sizeof(caracter),fichero);
    }
    fclose(fichero);
    return contador;
}</pre>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1d3dab55-2cb3-4b4e-8bde-55d35951f8cd" class="wlWriterEditableSmartContent" style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px">Etiquetas de Technorati: <a rel="tag" href="http://technorati.com/tags/cursos">cursos</a>,<a rel="tag" href="http://technorati.com/tags/soluciones">soluciones</a>,<a rel="tag" href="http://technorati.com/tags/practicas">practicas</a>,<a rel="tag" href="http://technorati.com/tags/ejercicios">ejercicios</a>,<a rel="tag" href="http://technorati.com/tags/sistemas">sistemas</a>,<a rel="tag" href="http://technorati.com/tags/gratuitos">gratuitos</a>,<a rel="tag" href="http://technorati.com/tags/teleformacion">teleformacion</a>,<a rel="tag" href="http://technorati.com/tags/online">online</a>,<a rel="tag" href="http://technorati.com/tags/consola">consola</a>,<a rel="tag" href="http://technorati.com/tags/programacion">programacion</a></div>
<p><br/><br />
<br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "6190361313";
google_ad_width = 468;
google_ad_height = 15;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<item>
		<title>Seguridad Sistemas y Redes ( 5 )</title>
		<link>http://www.aprendoencasa.com/index.php/2009/11/27/seguridad-sistemas-y-redes-5/</link>
		<comments>http://www.aprendoencasa.com/index.php/2009/11/27/seguridad-sistemas-y-redes-5/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 12:00:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[gratuitos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/?p=828</guid>
		<description><![CDATA[Cadenas identificativas y otros recursos Una de las formas más artesanales de obtener información sobre una organización, es obtenerla a través del código fuente de sus portales corporativos o páginas Web, es decir revisar manualmente el código xhtml, html, asp o php. De esta forma se puede conocer que aplicaciones corren los servicios web e [...]]]></description>
			<content:encoded><![CDATA[<h2>Cadenas identificativas y otros recursos</h2>
<p>Una de las formas más artesanales de obtener información sobre una organización, es obtenerla a través del código fuente de sus portales corporativos o páginas Web, es decir revisar manualmente el código xhtml, html, asp o php. De esta forma se puede conocer que aplicaciones corren los servicios web e incluso es posible determinar, de una manera bastante aproximada, que sistema operativo esta instalado en la maquina. También es normal buscar los comentarios en el código fuente, para ver si proporcionan alguna información que pueda ser de utilidad. Para realizar este proceso de descargar un portal entero a nuestra maquina para analizarlo existen numerosas herramientas, entre ellas destacamos las siguientes:</p>
<h3>wget (Linux)</h3>
<p>En distribuciones Linux, desde la línea de comandos, existe la herramienta <strong>wget</strong>, que permite descargar a un disco local todas las paginas web de un portal, bien por vía HTTP, o por vía FTP, es una aplicación para ejecutarla desde la consola, aunque existen entornos gráficos. la sintaxis del comando es la siguiente:</p>
<blockquote><p><strong>wget [opciones] [lista de urls]</strong></p>
</blockquote>
<p>Siendo las opciones disponibles para el comando las siguientes:</p>
<blockquote><p>-h      <br />&#8211;help</p>
<p>Muestra la ayuda del comando.</p>
<p>-V</p>
<p>Muestra la versión del programa.</p>
<p>-i nombrefichero      <br />&#8211;input-file=nombrefichero</p>
<p>Lee la lista de urls del fichero especificado en nombrefichero.</p>
<p>-o ficherolog      <br />&#8211;output-file=ficherolog</p>
<p>Escribe los ficheros de log en ficherolog, en vez de utilizar la pantalla.</p>
<p>-a ficherolog      <br />&#8211;append-output=ficherolog</p>
<p>Igual que la opción anterior, pero si el fichero existe añade en el mismo la información, en caso de no existir el fichero lo crea.</p>
<p>-t numero      <br />&#8211;tries=numero</p>
<p>Especifica el numero de veces de intentos a realizar para la descarga, si se especifica el valor 0, indica un numero indefinido.</p>
<p>&#8211;follow-ftp</p>
<p>Sigue los enlaces ftp desde documentos HTML</p>
<p>-g on/off      <br />&#8211;glob=on/off</p>
<p>Activa o desactiva el uso de caracteres especiales como ‘*’ para indicar todos los ficheros.</p>
<p>-r</p>
<p>especifica el modo recursivo.</p>
<p>-U</p>
<p>especifica identificación de navegador. Ya que muchos sitios web deniegan la descarga si no se realiza a través de un navegador.</p>
<p>&#8211;wait=tiempo</p>
<p>Especifica un tiempo de parada o pausa entre descargas.</p>
<p>&#8211;limit-rate=valor</p>
<p>Especifica el valor o velocidad de descarga indicada en valor.</p>
<p>-no-parent</p>
<p>Indica que el comando no descargue por debajo del directorio especificado.</p>
<p>-k</p>
<p>Una vez terminada la descarga convierte los enlaces o links de los documentos a rutas relativas, para poder navegar en modo local con la descarga realizada.</p>
<p>-c</p>
<p>Continua con la descarga desde el punto en el que se haya quedado.</p>
</blockquote>
<p><em>Vea los siguientes ejemplos:</em></p>
<pre class="brush:bash">// Descargar un archivo

wget http://www.aprendoencasa.com/index.php

// Descargar utilizando distintos métodos

wget http://www.aprendoencasa.com/imagen1.jpg ftp://aprendoencasa.com/descargar/cursos.zip

// Descargar utilizando archivo de entrada

// se ha de crear un archivo el cual contendrá la uri de los archivos a descargar

wget –i archivos.txt

// Descargar después de una interrupción continuando por donde se haya quedado

wget –i –c archivos.txt

// Descargar y crear un informe 

wget –o informe.txt  http://www.aprendoencasa.com/index.html

// Descargar un archivo limitando el ancho de banda

wget –o informe.txt –-limit-rate=50k ftp://ftp.aprendoencasa.com/ubuntu910.iso

// Descargar especificando nombre de usuario y contraseña en caso de ser solicitado
// por un sitio

wget –http-user=admin –http-password=secreto http://www.aprendoencasa.com/archivo1.zip

// Descargar aumentando el numero de intentos, útil en casos de sitios con saturacion
// y descargar utilizando accesos infinitos

wget –t 50 http://www.aprendoencasa.com/fedora10.iso

wget –t inf http://www.aprendoencasa.com/suse11.iso

// Descargar pagina web entera con los elementos que incluyen la misma como imágenes,
// estilos, etc.

wget –p http://www.aprendoencasa.com

// Descargar pagina web entera especificando recursividad de hasta cinco niveles

wget –r http://www.aprendoencasa.com

// Descargar pagina web entera especificando nivel de recursividad

wget –r -l10 http://www.aprendoencasa.com

// Descargar pagina web convirtiendo los enlaces a relativas para navegar offline

wget –r ––convert-links http://www.aprendoencasa.com

// Existen mas opciones seria interesante consultar el comando para averiguarlas.
</pre>
<div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6c9de506-efb9-4e3a-bd94-30fbf8960900" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Etiquetas de Technorati: <a href="http://technorati.com/tags/cursos" rel="tag">cursos</a>,<a href="http://technorati.com/tags/gratuitos" rel="tag">gratuitos</a>,<a href="http://technorati.com/tags/sistemas" rel="tag">sistemas</a>,<a href="http://technorati.com/tags/programacion" rel="tag">programacion</a>,<a href="http://technorati.com/tags/seguridad" rel="tag">seguridad</a>,<a href="http://technorati.com/tags/teleformacion" rel="tag">teleformacion</a>,<a href="http://technorati.com/tags/online" rel="tag">online</a>,<a href="http://technorati.com/tags/practicas" rel="tag">practicas</a>,<a href="http://technorati.com/tags/ejercicios" rel="tag">ejercicios</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2009/11/27/seguridad-sistemas-y-redes-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Seguridad Sistemas]]></series:name>
	</item>
		<item>
		<title>Seguridad sistemas y redes ( 4 )</title>
		<link>http://www.aprendoencasa.com/index.php/2009/11/10/seguridad-sistemas-y-redes-4/</link>
		<comments>http://www.aprendoencasa.com/index.php/2009/11/10/seguridad-sistemas-y-redes-4/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 17:54:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[gratuitos]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[redes]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/?p=807</guid>
		<description><![CDATA[Utilización de herramientas de administración ( 2 ) Host,dig,nslookup Estos comandos permiten obtener información relativa a los dominios asociados a la organización, así como a las subredes correspondientes. Esta información se obtiene mediante consultas al servicio de nombre de dominios (DNS). Si el servidor que ofrece la información de dominio no esta correctamente configurado, es [...]]]></description>
			<content:encoded><![CDATA[<h2>Utilización de herramientas de administración ( 2 )</h2>
<p>Host,dig,nslookup</p>
<p>Estos comandos permiten obtener información relativa a los dominios asociados a la organización, así como a las subredes correspondientes. Esta información se obtiene mediante consultas al servicio de nombre de dominios (DNS). Si el servidor que ofrece la información de dominio no esta correctamente configurado, es posible realizar una consulta de transferencia de zona completa, lo que permite obtener toda la información de traducción de direcciones ip a nombres de maquina.</p>
<p>El Domain Name System (DNS) es una base de datos distribuida y jerárquica que<br />
almacena información asociada a nombres de dominio en redes como Internet. DNS es<br />
capaz de asociar a cada nombre de dominio distintos tipos de información, que se<br />
almacena en registros. Los más comunes son los registros de tipo A (que nos indican las<br />
relaciones nombre-IP), CNAME (nombres o alias que tiene esa máquina), MX (servidores<br />
de correo que se deben utilizar para un dominio concreto) y NS (servidores de nombre<br />
asociados), aunque existen otros registros tan curiosos como LOC, que permite introducir<br />
datos sobre la localización geográfica de una máquina sobre la superficie terrestre (latitud<br />
y longitud en grados minutos y segundos) además de otros datos complementarios.<br />
Los usos más comunes son la resolución de nombres, que consiste en la conversión de<br />
nombres de dominio (www.rediris.es) a direcciones IP (130.206.1.2) y la localización de<br />
los servidores de correo electrónico de cada dominio. Otro uso habitual es el proceso de<br />
conversión de direcciones IP (159.237.12.60) a nombres de dominio (www.unav.es),<br />
conocido con el original nombre de resolución inversa.</p>
<p>la sintaxis de los comandos es la siguiente:</p>
<blockquote><p><strong>host dirección_ip</strong></p>
<p><strong>host nombre_dominio</strong></p></blockquote>
<p>Las opciones que se pueden utilizar son las siguientes:</p>
<blockquote><p>-a</p>
<p>Visualiza todos los registros de DNS para el nombre especificado</p>
<p>-C</p>
<p>Visualiza los registros SOA   (Start of Authority, los registros contienen identificadores del servidor de nombres con autoridad sobre la denominación y su operador, así como diversos contadores que regulan el funcionamiento general del sistema de nombres por dominio para la denominación)</p>
<p>-v</p>
<p>resultado detallado por el anfitrión</p>
<p>-d</p>
<p>equivalente a –v</p>
<p>-l</p>
<p>lista de todos los host alojados en un dominio</p>
<p>-W</p>
<p>especifica cuanto tiempo debe esperar una respuesta</p>
<p>-t</p>
<p>se utiliza para seleccionar el tipo de consulta a realizar. CNAME,SOA,NS,etc..</p>
<p>-T</p>
<p>utiliza tcp en vez de utilizar udp</p></blockquote>
<p>la sintaxis de los comandos es la siguiente:</p>
<blockquote><p><strong>dig [@servidor DNS] nombre [opciones] [tipo]</strong></p>
<p>El comando dig (Domain information Groper) permite realizar consultas a los servidores DNS, por lo que es útil para comprobar si el DNS esta correctamente configurado en la maquina. Permite tanto el mapeo  de nombres a IP’s como el mapeo inverso  de IP’s a nombres. Solo se utiliza para internet ya que no consulta el archivo /etc/host del sistema.</p>
<p>los parámetros especificados son los siguientes:</p>
<p>[@servidor DNS]</p>
<p>nombre o ip del servidor DNS al que se quiere  dirigir la consulta. si no se utiliza el parámetro se utilizan los servidores ubicados en el archivo /etc/resolv.conf</p>
<p>nombre</p>
<p>nombre de dominio cuya ip se quiere resolver.</p>
<p>[tipo]</p>
<p>tipo de consulta a realizar siendo los valores posibles los siguientes:</p>
<p>A – IP del servidor que aloja al dominio (por defecto)</p>
<p>NS – servidores DNS</p>
<p>MX – servidores de correo</p>
<p>ANY – todas las opciones anteriores</p>
<p>AAAA – IP en IPV6 (si se tiene)</p></blockquote>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "0910315320";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br />
Ejemplos del comando dig:</p>
<p>mapeo de nombres a IP’s</p>
<pre class="brush: shell">$ dig telefonica.net
;; ANSWER SECTION:
telefonica.net.         10356 IN    A     213.4.130.95</pre>
<p>mapeo inverso de IP’s a nombres</p>
<pre class="brush: shell">$ dig -x 127.0.0.1
;; ANSWER SECTION:
1.0.0.127.in-addr.arpa.  0    IN    PTR     localhost.</pre>
<pre class="brush: shell">$ dig -x 213.4.130.95
;; ANSWER SECTION:
95.130.4.213.in-addr.arpa. 60809 IN PTR  www.telefonica.net.</pre>
<p>servidores DNS de un dominio</p>
<pre class="brush: shell">$ dig telefonica.net. ns
;; ANSWER SECTION:
telefonica.net.         28800 IN    NS    dns2.terra.es.
telefonica.net.         28800 IN    NS    dns1.terra.es.
;; ADDITIONAL SECTION:
dns2.terra.es.          28714 IN    A     213.4.141.1
dns1.terra.es.          28714 IN    A     213.4.132.1</pre>
<p>la sintaxis de los comandos es la siguiente:</p>
<blockquote><p><strong>nslookup</strong></p>
<p><strong>nslookup nombre.del.host</strong></p>
<p><strong>nslookup nombre.del.host –nombre.del.servidor</strong></p>
<p>Es una herramienta que permite consultar un servidor de nombres y obtener información relacionada con el dominio o host y así diagnosticar posibles problemas de configuración que pudieran haber surgido en el DNS.</p>
<p>Si se utiliza sin ningún tipo de argumento el comando muestra el nombre y la ip del servidor de nombres primario y presenta un prompt propio para realizar consultas.</p>
<p>Es posible utilizar el tipo de consulta a realizar utilizando el argumento set de la siguiente forma:</p>
<p>set type=mx</p>
<p>obtiene información relacionada con los servidores de correo de un dominio.</p>
<p>set type=ns</p>
<p>obtiene información del servidor de nombres relacionado al dominio.</p>
<p>set type=a</p>
<p>obtiene información de un host de la red. modo de consulta predeterminado.</p>
<p>set type=soa</p>
<p>muestra la información del campo soa.</p>
<p>set type=cname</p>
<p>muestra información relacionada con el alias.</p>
<p>set type=hinfo</p>
<p>muestra siempre y cuando este disponible información sobre el material y el sistema operativo del host.</p>
<p>Para salir del comando nslookup se ha de teclear la opción exit.</p></blockquote>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "3897459344";
google_ad_width = 200;
google_ad_height = 90;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
</p>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:87f1f708-ccb4-4265-9c56-7fa75a4e6140" class="wlWriterEditableSmartContent" style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px">Etiquetas de Technorati: <a rel="tag" href="http://technorati.com/tags/cursos">cursos</a>,<a rel="tag" href="http://technorati.com/tags/seguridad">seguridad</a>,<a rel="tag" href="http://technorati.com/tags/sistemas">sistemas</a>,<a rel="tag" href="http://technorati.com/tags/software">software</a>,<a rel="tag" href="http://technorati.com/tags/hacking">hacking</a>,<a rel="tag" href="http://technorati.com/tags/redes">redes</a>,<a rel="tag" href="http://technorati.com/tags/gratuitos">gratuitos</a>,<a rel="tag" href="http://technorati.com/tags/teleformacion">teleformacion</a>,<a rel="tag" href="http://technorati.com/tags/online">online</a>,<a rel="tag" href="http://technorati.com/tags/aprendoencasa.com">aprendoencasa.com</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2009/11/10/seguridad-sistemas-y-redes-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Seguridad Sistemas]]></series:name>
	</item>
		<item>
		<title>Seguridad en sistemas y redes ( 2 )</title>
		<link>http://www.aprendoencasa.com/index.php/2009/10/26/seguridad-en-sistemas-y-redes-2/</link>
		<comments>http://www.aprendoencasa.com/index.php/2009/10/26/seguridad-en-sistemas-y-redes-2/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 22:46:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[ataques]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[gratuitos]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/?p=769</guid>
		<description><![CDATA[Seguridad en redes TCP/IP Durante los años de la guerra fría (años 60)  DARPA, la agencia de proyectos de investigación avanzada del departamento de defensa de los Estados Unidos, se planteo la posibilidad de un ataque a su red de comunicaciones e investigo desarrollar una red con administración distribuida. El resultado en los estudios de [...]]]></description>
			<content:encoded><![CDATA[<h5>Seguridad en redes TCP/IP</h5>
<p>Durante los años de la guerra fría (años 60)  DARPA, la agencia de proyectos de investigación avanzada del departamento de defensa de los Estados Unidos, se planteo la posibilidad de un ataque a su red de comunicaciones e investigo desarrollar una red con administración distribuida. El resultado en los estudios de redes de conmutación de paquetes derivo en ARPANET, una red de carácter experimental y tolerable a fallos. A partir de los 70 se empezó a investigar la interconexión de distintas redes y se establecieron las bases de la familia de protocolos TCP/IP.</p>
<p>Esta familia de protocolos se divide en cuatro capas:</p>
<h6>Capa de red.</h6>
<p>formada por una red LAN o WAN homogénea. Todos los equipos conectados a internet  implementan esta capa. Todo lo que se encuentra por debajo de la IP es la capa de red física o simplemente, capa de red.</p>
<h6>Capa de internet</h6>
<p>Es la capa que conforma la unidad de todos los miembros de la red y por tanto la que permite que se puedan conectar entre si, independientemente de su tipo de conexión. la misión principal de esta capa es la de direccionamiento y encaminamiento. Todos los equipos conectados a internet implementan esta capa.</p>
<h6>Capa de transporte</h6>
<p>Es la encargada del control de flujo y errores, solo es implementado por equipos usuarios de internet o por terminales de internet. los encaminadores o routers no la necesitan.</p>
<h6>Capa de aplicación</h6>
<p>Es la capa en la que se encuentran los programas y aplicaciones que utilizan internet como clientes y servidores Web, de FTP, Correo, etc. La implementan los equipos usuarios de internet o los terminales de internet, los encaminadores o routers no la utilizan.</p>
<p>En cada una de las capas pueden existir distintas vulnerabilidades y se pueden explotar por parte de un atacante utilizando los protocolos asociados a cada una de ellas. A continuación</p>
<h6>Vulnerabilidades de la capa de red</h6>
<p>Las vulnerabilidades de esta capa están asociadas a los medios sobre los cuales se realiza la conexión. Esta capa presenta problemas de control de acceso y de confidencialidad. Ejemplos de estas vulnerabilidades son desvió de los cables de conexión hacia otros sistemas, pinchazos de la línea, escuchas en medios de transmisión inalámbricos, etc.</p>
<h6>Vulnerabilidades de la capa Internet</h6>
<p>En esta capa se puede realizar cualquier tipo de ataque que afecte a un datagrama IP. Tipos de ataques que se pueden realizar en esta capa son por ejemplo: técnicas de sniffing o escuchas de red, suplantación de mensajes, modificación de datos, retrasos de mensajes y denegación de mensajes. Cualquier atacante puede suplantar un paquete si indica que proviene de otro sistema. La suplantación de un mensaje se puede realizar, por ejemplo dando una respuesta a otro mensaje antes de que lo haga el suplantado. La autentificación de los paquetes se realiza a nivel de máquina por dirección IP y no a nivel de usuario. Si un sistema da una dirección de maquina errónea, el receptor no detectara la suplantación. Este tipo de ataques suele utilizar técnicas como la predicción de números de secuencia TCP, el envenenamiento de tablas cache, etc.</p>
<h6>Vulnerabilidades de la capa de transporte</h6>
<p>Esta capa trasmite información TCP o UDP sobre datagramas IP. En esta capa se pueden encontrar problemas de autentificación, integridad y de confidencialidad. Los ataques mas conocidos en esta capa son las denegación de servicio de protocolos de transporte.  En el mecanismo de seguridad del diseño del protocolo TCP, existe una serie de ataques que aprovechas las deficiencias en el diseño, entre las mas graves se encuentra la posibilidad de la intercepción de sesiones TCP establecidas, con el objetivo de secuestrarlas y dirigirlas a otros equipos.</p>
<h6>Vulnerabilidades de la capa de aplicación</h6>
<p>Esta capa presenta varias deficiencias de seguridad asociadas a sus protocolos. Ya que esta capa utiliza un gran número de protocolos, la cantidad de vulnerabilidades presentes también es superior al resto de capas. Varios ejemplos son los siguientes:</p>
<p><strong><em>Servicio de nombres de dominio</em></strong>: Cuando un sistema solicita conexión a un servicio, pide la dirección IP de un nombre de dominio y envía un paquete UDP a un servidor DNS. Este responde con la dirección IP del dominio solicitado o una referencia que apunta a otro DNS que pueda suministrar la dirección IP solicitada. Un servidor DNS debe entregar la dirección IP correcta pero también puede entregar un nombre de dominio dada una dirección IP u otro tipo de información. Un servidor DNS actúa como una base de datos accesible desde Internet. Si un atacante puede modificar la información que suministra esta base de datos o acceder a información sensible almacenada en la base de datos por error, pudiendo obtener información relativa a la topología de la red de una organización, teniendo así acceso a una lista de los sistemas de la red. A los ataques de suplantación de DNS se les conoce con el nombre de Spoofing DNS.</p>
<p><strong><em>Telnet</em></strong>: Normalmente el servicio de telnet autentifica al usuario mediante la solicitud del usuario y contraseña, que son transmitidas sin ningún tipo de protección por la red. Por lo cual el servicio queda desprotegido ante un ataque haciendo posible la captura de los datos del usuario con técnicas de escucha o sniffing.</p>
<p><strong><em>File Transfer Protocol (FTP)</em></strong>: al igual que el servicio anterior este servicio también envía la información sin protección, con lo cual también queda expuesto de la misma forma que el anterior. Este servicio también permite el acceso anónimo, aunque por lo general esta forma de conexión solo permite el acceso a una zona restringida en la cual solo se permite la descarga de archivos no comprometiendo así el sistema y permitiendo el uso del servicio de forma optima.</p>
<p><strong><em>Hypertext Transfer Protocol (HTTP)</em></strong>: Este servicio es el responsable del World Wide Web.Una de las vulnerabilidades mas conocidas es la de la posibilidad de entrega de información por parte de los usuarios del servicio. Esta entrega de información por parte de los usuarios del servicio es posible mediante la ejecución de código en la parte del servidor.<br />
<br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "0910315320";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/></p>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d5736bde-9b97-4877-a993-aa07289f86b5" class="wlWriterEditableSmartContent" style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px">Etiquetas de Technorati: <a rel="tag" href="http://technorati.com/tags/cursos">cursos</a>,<a rel="tag" href="http://technorati.com/tags/gratuitos">gratuitos</a>,<a rel="tag" href="http://technorati.com/tags/sistemas">sistemas</a>,<a rel="tag" href="http://technorati.com/tags/seguridad">seguridad</a>,<a rel="tag" href="http://technorati.com/tags/internet">internet</a>,<a rel="tag" href="http://technorati.com/tags/hacking">hacking</a>,<a rel="tag" href="http://technorati.com/tags/online">online</a>,<a rel="tag" href="http://technorati.com/tags/teleformacion">teleformacion</a>,<a rel="tag" href="http://technorati.com/tags/practicas">practicas</a>,<a rel="tag" href="http://technorati.com/tags/ejercicios">ejercicios</a></div>
<p><br/><br />
<br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "3897459344";
google_ad_width = 200;
google_ad_height = 90;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2009/10/26/seguridad-en-sistemas-y-redes-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Seguridad Sistemas]]></series:name>
	</item>
	</channel>
</rss>
