<?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</title>
	<atom:link href="http://www.aprendoencasa.com/index.php/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.1</generator>
		<item>
		<title>Practicas y ejercicios de programaci&#243;n en c ( 11 )</title>
		<link>http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-11/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-11/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 19:52:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2010]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Lenguaje C]]></category>
		<category><![CDATA[Lenguaje C++]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[soluciones]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[estudios online]]></category>
		<category><![CDATA[gratuitos]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[Sistemas]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-11/</guid>
		<description><![CDATA[2º Programa que lea dos números por teclado y calcule el valor de la suma, resta producto y división. Solución 1. // Inclusion de librerias #include &#60;stdio.h&#62; #include &#60;stdlib.h&#62; &#160; // Funcion principal int main(int argc, char *argv[]) { &#160; // Definicion de variables &#160; int A; &#160; int B; &#160; long int Suma; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>     </p>
<p><strong>2º Programa que lea dos números por teclado y calcule el valor de la suma, resta producto y división.</strong></p>
<p><strong>Solución 1.</strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p>// Inclusion de librerias</p>
<p>#include &lt;stdio.h&gt;</p>
<p>#include &lt;stdlib.h&gt;</p>
<p>&#160;</p>
<p>// Funcion principal</p>
<p>int main(int argc, char *argv[])</p>
<p>{</p>
<p>&#160; // Definicion de variables</p>
<p>&#160; int A;</p>
<p>&#160; int B;</p>
<p>&#160; long int Suma;</p>
<p>&#160; int Resta;</p>
<p>&#160; float Division;</p>
<p>&#160; long int Multiplicacion;</p>
<p>&#160;</p>
<p>&#160; // Solicitud de datos por consola</p>
<p>&#160; printf(“Numero A ……: “);</p>
<p>&#160; scanf(“ %d”,&amp;A);</p>
<p>&#160; printf(“Numero B ……: “);</p>
<p>&#160; scanf(“ %d”,&amp;B);</p>
<p>&#160; // Realizar calculos</p>
<p>&#160;&#160; Suma=A+B;</p>
<p>&#160;&#160; Resta=A-B;</p>
<p>&#160; Division=A/B;</p>
<p>&#160; Multiplicacion = A*B;</p>
<p>&#160; // Visualización de resultados</p>
<p>&#160; printf(“\nLa suma es igual a %d”,Suma);</p>
<p>&#160; printf(\nLa resta es igual a %d”,Resta);</p>
<p>&#160; printf(“\nLa division es %.2f”,Division);</p>
<p>&#160; printf(“\nLa multiplicacion es %d”,Multiplicacion);</p>
<p>&#160; system(“PAUSE”);</p>
<p>&#160; return 0;</p>
<p>}</p>
<p>&#160;</p>
<p>Si observas detenidamente el programa en su ejecución podrás observar que la división es posible no salga correctamente y eso es debido a que una división entre enteros produce un entero, por lo tanto quizás para resolver mejor este programa deberías emplear otro tipo de dato para los números y que la resolución del mismo sea mas adecuada.</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:07cbad9a-fc0c-40fe-9f1f-58c6d33cd974" class="wlWriterSmartContent">Etiquetas de Technorati: <a href="http://technorati.com/tags/ejercicios" rel="tag">ejercicios</a>,<a href="http://technorati.com/tags/resueltas" rel="tag">resueltas</a>,<a href="http://technorati.com/tags/programaci%c3%b3n" rel="tag">programación</a>,<a href="http://technorati.com/tags/c" rel="tag">c</a>,<a href="http://technorati.com/tags/gratuitos" rel="tag">gratuitos</a>,<a href="http://technorati.com/tags/cursos" rel="tag">cursos</a>,<a href="http://technorati.com/tags/practicas" rel="tag">practicas</a>,<a href="http://technorati.com/tags/aprendoencasa" rel="tag">aprendoencasa</a></div>
<p>     </p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<item>
		<title>Practicas y ejercicios de programaci&#243;n en c ( 10 )</title>
		<link>http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-10/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-10/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 19:46:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2010]]></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[gratuitos]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[soluciones]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-10/</guid>
		<description><![CDATA[Iniciamos los ejercicios y practicas resueltas en el lenguaje de programación C. &#160; 1º Realizar un programa que pide un dato de entrada que se ha de corresponder a la longitud de un radio, calcula y visualiza la longitud de la circunferencia, el área del círculo y el volumen de la esfera que se corresponda [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<p>Iniciamos los ejercicios y practicas resueltas en el lenguaje de programación C.</p>
<p>&#160;</p>
<p><strong>1º Realizar un programa que pide un dato de entrada que se ha de corresponder a la longitud de un radio, calcula y visualiza la longitud de la circunferencia, el área del círculo y el volumen de la esfera que se corresponda con el radio dado.</strong></p>
<p>Formulas a emplear:</p>
<p>Siendo r = radio y ^= elevado</p>
<p>Longitud circunferencia = <strong>2·PI·r</strong></p>
<p>Área círculo = <strong>PI·r^2</strong></p>
<p>Volumen esfera = <strong>4/3 · PI · r ^3</strong></p>
<p>&#160;</p>
<p><strong>Solución (1)</strong></p>
<p>#include &lt;stdio.h&gt;</p>
<p>#include &lt;stdlib.h&gt;</p>
<p>int main(int argc,char *argv[])</p>
<p>{</p>
<p>&#160; // Creación de variables a utilizar</p>
<p>&#160; int radio;</p>
<p>&#160; float longitud;</p>
<p>&#160; float area;</p>
<p>&#160; float volumen;</p>
<p>&#160; // Solicitar el radio por teclado</p>
<p>&#160; printf(“Introduzca radio…: “);</p>
<p>&#160; scanf(“ %d”,&amp;radio);</p>
<p>&#160; // Realizar los calculos</p>
<p>&#160; longitud = 2*PI*radio;</p>
<p>&#160; area = PI*(radio*radio);</p>
<p>&#160; volumen = (4/3)*PI*(radio*radio*radio);</p>
<p>&#160; // Visualizar los resultados</p>
<p>&#160; printf(“\nLongitud del radio = %.2f”,longitud);</p>
<p>&#160; printf(“\nArea = %.2f”,area);</p>
<p>&#160; printf(“\nVolumen = %.2f”,volumen);</p>
<p>&#160; system(“PAUSE”);</p>
<p>&#160; return 0;</p>
<p>}</p>
<p>&#160;</p>
<p>Si quieres realizar tu aporte hazlo utilizando los comentarios</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:91131efc-d22b-4440-bf27-b44e1829322c" class="wlWriterSmartContent">Etiquetas de Technorati: <a href="http://technorati.com/tags/cursos" rel="tag">cursos</a>,<a href="http://technorati.com/tags/programaci%c3%b3n" rel="tag">programación</a>,<a href="http://technorati.com/tags/c" rel="tag">c</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/resueltas" rel="tag">resueltas</a>,<a href="http://technorati.com/tags/soluci%c3%b3n" rel="tag">solución</a>,<a href="http://technorati.com/tags/gratuitos" rel="tag">gratuitos</a>,<a href="http://technorati.com/tags/aprendoencasa" rel="tag">aprendoencasa</a></div>
<p>     </p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<item>
		<title>Ejercicios y practicas de programaci&#243;n en c ( 9 )</title>
		<link>http://www.aprendoencasa.com/index.php/2010/06/01/ejercicios-y-practicas-de-programacin-en-c-9/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/06/01/ejercicios-y-practicas-de-programacin-en-c-9/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 16:53:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2010]]></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[practicas]]></category>
		<category><![CDATA[resueltas]]></category>
		<category><![CDATA[soluciones]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2010/06/01/ejercicios-y-practicas-de-programacin-en-c-9/</guid>
		<description><![CDATA[&#160; Nuevo articulo para que sigas tus estudios online con nosotros, solucionando problemas, practicas y ejercicios realizados con el lenguaje de programación c. &#160; Saber si un numero es primo o no Planteamiento del ejercicio: Se ha de solicitar por teclado un numero entero positivo, para finalizar el programa se ha de teclear el valor [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<h2>&#160;</h2>
<p>Nuevo articulo para que sigas tus <strong>estudios online </strong>con nosotros, solucionando problemas, practicas y ejercicios realizados con el lenguaje de programación c.</p>
<h2>&#160;</h2>
<h2>Saber si un numero es primo o no</h2>
<p>Planteamiento del ejercicio:</p>
<blockquote><p>Se ha de solicitar por teclado un numero entero positivo, para finalizar el programa se ha de teclear el valor –1, en caso de ser el numero valido se ha de indicar si el numero es primo o no.</p>
</blockquote>
<p>Solución al ejercicio propuesto:</p>
<pre class="brush:c">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
int main()
{
    // Variables a utilizar en el programa
    int numero=0;
    int divisores=0;
    int primo=0; // primo = 0 no primo = 1

    // Solicitar numero entero hasta valor -1
    do
    {
        printf(&quot;\nNumero.....: &quot;);
        scanf(&quot; %d&quot;,&amp;numero);
        if(numero!=-1 &amp;&amp; numero&gt;0)
        {
            // el numero es valido comprobar si es primo
            primo=0;
            divisores=2;
            while(divisores&lt;numero  &amp;&amp; primo!=1)
            {
                if(numero%divisores==0) primo=1;
                divisores++;
            }
            // Si primo vale 0 es que el numero es primo
            if (primo==0)
            {
                printf(&quot;\nEl numero %d es primo&quot;,numero);
            }
            else
            {
                printf(&quot;\nEl numero %d no es primo&quot;,numero);
            }
        }
    } while(numero!=-1);
    return 0;
}
</pre>
<p><br/><br />
<br />
<br/><br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/06/01/ejercicios-y-practicas-de-programacin-en-c-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<item>
		<title>Ejercicios y practicas de programaci&#243;n en ( 8 )</title>
		<link>http://www.aprendoencasa.com/index.php/2010/05/25/ejercicios-y-practicas-de-programacin-en-8/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/05/25/ejercicios-y-practicas-de-programacin-en-8/#comments</comments>
		<pubDate>Tue, 25 May 2010 11:37:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2010]]></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[gratuitos]]></category>
		<category><![CDATA[Lenguaje]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[resueltas]]></category>
		<category><![CDATA[Sistemas]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2010/05/25/ejercicios-y-practicas-de-programacin-en-8/</guid>
		<description><![CDATA[Nuevo ejercicio de programación en c, para que puedas practicar este lenguaje base en el aprendizaje de programación. Los ejercicios resueltos no tienen un orden especifico en su complejidad, por lo tanto te puedes encontrar con ejercicios que para personas noveles en la programación resulten dificiles de comprender, busca las practicas que mas se ajusten [...]]]></description>
			<content:encoded><![CDATA[<p><br />
<br/></p>
<p>Nuevo ejercicio de programación en c, para que puedas practicar este lenguaje base en el aprendizaje de programación. Los ejercicios resueltos no tienen un orden especifico en su complejidad, por lo tanto te puedes encontrar con ejercicios que para personas noveles en la programación resulten dificiles de comprender, busca las practicas que mas se ajusten a tus necesidades en base a tu nivel. Gracias por visitar el sitio web, un saludo y aprende desde tu casa.</p>
<h3>Planteamiento de la practica de programación</h3>
<blockquote><p>El ejercicio planteado hoy es que el programa realice una serie de peticiones de notas de alumnos, hasta que se teclee un valor –1 para finalizar la introducción de notas. Una vez finalizada la introducción de notas se han de visualizar cuantos alumnos han aprobado y suspendido, asi como cuantos han sacado notas englobadas de la siguiente forma:</p>
<p>de 5 a 6 – suficiente</p>
<p>de 6 a 7 – bien</p>
<p>de 7 a 8 – notable</p>
<p>de 9 o superior – sobresaliente</p>
<p>Vuelvo a recordaros, que no pretendo dar lecciones de como se ha de programar un ejercicio, ya que puede haber muchas formas de resolverlo, esto no significa que la practica resuelta que aqui planteamos sea la mas correcta, de hecho siempre estoy dispuesto a añadir correcciones o nuevos planteamientos a la misma, si me los dejais en un comentario…</p>
</blockquote>
<h3>Practica resuelta de programacion en c</h3>
<p> 
<pre class="brush:c">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
int main()
{
    // Declaracion de variables
    int nota=0;
    int positivos=0;
    int negativos=0;
    int aprobados=0;
    int suspendidos=0;
    int bien=0;
    int notable=0;
    int sobresaliente=0;
    int suficiente=0;

    // Solicitar notas hasta teclear -1
    printf(&quot;\nNotas de los alumnos. (Para finalizar -1 )\n&quot;);
    do
    {
        printf(&quot;Nota...: &quot;);
        scanf(&quot; %d&quot;,&amp;nota);
        // controlar si se quiere finalizar o no
        if(nota!=-1)
        {
            // controlar valores positivos y negativos
            if(nota&gt;0)
                positivos++;
            else if(nota&lt;0)
                negativos++;
            // controlar aprobados suspendidos
            if(nota&lt;5)
                suspendidos++;
            else
                aprobados++;
            // controlar calificaciones
           if(nota&gt;=5 &amp;&amp; nota&lt;6)
                suficiente++;
            else if(nota&gt;=6 &amp;&amp; nota&lt;=7)
                bien++;
            else if(nota&gt;=7 &amp;&amp; nota&lt;9)
                notable++;
            else if(nota&gt;=9)
                sobresaliente++;
        }
    } while(nota!=-1);

    // Visualizar resultados
    printf(&quot;\nNOTAS DE LOS ALUMNOS&quot;);
    printf(&quot;\nAlumnos aprobados ...............: %d&quot;,aprobados);
    printf(&quot;\nAlumnos suspendidos .............: %d&quot;,suspendidos);
    printf(&quot;\nAlumnos con nota suficiente .....: %d&quot;,suficiente);
    printf(&quot;\nAlumnos con nota bien ...........: %d&quot;,bien);
    printf(&quot;\nAlumnos con nota notable ........: %d&quot;,notable);
    printf(&quot;\nAlumnos con nota sobresaliente ..: %d&quot;,sobresaliente);
    // Realizar calculos correspondientes

    return 0;
}</pre>
<div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0b9d34b5-104b-4797-a8d1-9bedc0e75908" 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/programaci%c3%b3n" rel="tag">programaci&#243;n</a>,<a href="http://technorati.com/tags/resueltas" rel="tag">resueltas</a>,<a href="http://technorati.com/tags/soluciones" rel="tag">soluciones</a>,<a href="http://technorati.com/tags/ejercicios" rel="tag">ejercicios</a>,<a href="http://technorati.com/tags/gratuitos" rel="tag">gratuitos</a>,<a href="http://technorati.com/tags/lenguaje" rel="tag">lenguaje</a>,<a href="http://technorati.com/tags/sistemas" rel="tag">sistemas</a></div>
<p><br/><br />
<br/><br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/05/25/ejercicios-y-practicas-de-programacin-en-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<item>
		<title>Ejercicios y practicas de programaci&#243;n en c ( 7 )</title>
		<link>http://www.aprendoencasa.com/index.php/2010/05/17/ejercicios-y-practicas-de-programacin-en-c-7/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/05/17/ejercicios-y-practicas-de-programacin-en-c-7/#comments</comments>
		<pubDate>Mon, 17 May 2010 11:57:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2010]]></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[Sistemas]]></category>
		<category><![CDATA[soluciones]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/?p=899</guid>
		<description><![CDATA[Un ejercicio nuevo de c sobre ficheros, para complementar tu formación en nuestro portal de cursos online y de teleformacion. El ejercicio consiste en realizar un programa el cual ha de leer de un archivo 10 valores numéricos y a continuación crear un vector en memoria de forma dinámica. Se ha de solicitar un valor [...]]]></description>
			<content:encoded><![CDATA[<p><br/><br />
<br />
<br/></p>
<p>Un ejercicio nuevo de c sobre ficheros, para complementar tu formación en nuestro portal de cursos online y de teleformacion.</p>
<blockquote><p>El ejercicio consiste en realizar un programa el cual ha de leer de un archivo 10 valores numéricos y a continuación crear un vector en memoria de forma dinámica. Se ha de solicitar un valor numérico por consola y multiplicar cada uno de los elementos del vector por dicho valor numérico, una vez realizado todos los procesos cerrar el archivo y liberar la memoria utilizada por el vector.</p>
</blockquote>
<p>&#160;</p>
<p>Solución al ejercicio planteado:</p>
<pre class="brush:c">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
int main()

{

    // Variables a utilizar

    int cuantos;
    int *Vector;
    FILE *fichero;
    int numero;
    int contador;

    // Crear array dinamico de memoria
    cuantos=10;
    Vector=(int *)malloc(sizeof(int)*cuantos);

    // leer archivo de datos y asignar los valores al array dinamico
    fichero=fopen(&quot;archivo.dat&quot;,&quot;rt&quot;);
    if(!fichero) {
        printf(&quot;\nError en la apertura del archivo archivo.dat. Compruebe que exista.&quot;);
        exit(1);
    }

    // prelectura
    fscanf(fichero,&quot;%d\n&quot;,&amp;numero);
    contador=0;
    while(!feof(fichero) &amp;&amp; contador&lt;10)
    {
        Vector[contador]=numero;
        contador++;
        fscanf(fichero,&quot;%d\n&quot;,&amp;numero);
    }

    // Cerrar archivo
    fclose(fichero);

    // pedir valor numerico

    printf(&quot;\nTeclee valor numerico ...: &quot;);
    scanf(&quot; %d&quot;,&amp;numero);

    for(contador=0;contador&lt;10;contador++) {
        Vector[contador]*=numero;
        printf(&quot;\n-&gt; %d &quot;,Vector[contador]);
    }

    // liberar memoria y salir del programa
    free(Vector);

    return 0;

}</pre>
<p><br/><br />
<br/><br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/05/17/ejercicios-y-practicas-de-programacin-en-c-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<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 />
<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 />
<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 (9)</title>
		<link>http://www.aprendoencasa.com/index.php/2010/05/03/seguridad-sistemas-y-redes-9/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/05/03/seguridad-sistemas-y-redes-9/#comments</comments>
		<pubDate>Mon, 03 May 2010 08:11:23 +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[internet]]></category>
		<category><![CDATA[practicos]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/?p=876</guid>
		<description><![CDATA[Cadenas identificativas y otros recursos (5) Dos de las herramientas mas utilizadas para realizar rastreo de redes son: Nmap y Hping. Nmap es uno de los rastreadores de puertos mas utilizados por los responsables de seguridad, existen versiones para varios sistemas operativos entre ellos linux y windows. Nmap esta disponible a través de la pagina [...]]]></description>
			<content:encoded><![CDATA[<h2>Cadenas identificativas y otros recursos (5)</h2>
<p>Dos de las herramientas mas utilizadas para realizar rastreo de redes son: Nmap y Hping. Nmap es uno de los rastreadores de puertos mas utilizados por los responsables de seguridad, existen versiones para varios sistemas operativos entre ellos linux y windows.</p>
<p>Nmap esta disponible a través de la pagina <a title="nmap de www.insecure.org" rel="nofollow" href="http://www.insecure.org">www.insecure.org</a>, siendo la descarga del mismo gratuita, ya que utiliza la licencia GPL. En caso de utilizar linux puede utilizar también para su descarga e instalación el gestor de paquetes de su distribución ya que es un programa muy utilizado en los sistemas linux. Aunque se maneja desde una consola en modo texto, también existen interfaces gráficos para el programa en las diferentes versiones del programa según el sistema operativo.</p>
<p>Hping es otra herramienta muy utilizada en entornos linux, aunque también existe para sistemas windows, proporciona el envío de paquetes de tipo TCP, UDP y ICMP. Permitiendo posteriormente analizar las respuestas obtenidas. La ultima versión del programa se denomina Hping2 y es descargable desde la web de Hping <a title="hping programa de escaneo de redes" rel="nofollow" href="http://www.hping.org">www.hping.org</a>.</p>
<h5>Rastrear redes</h5>
<p>Muchas de las técnicas de escaneo de redes se basan en en el envío de paquetes tcp con ciertos flags o banderas activados. Para resaltar este apartado veamos un ejemplo de cabecera TCP.</p>
<p><a href="http://www.aprendoencasa.com/wp-content/uploads/2010/05/CabeceraTCP.jpg"><img style="display: inline; border-width: 0px;" title="Cabecera-TCP" src="http://www.aprendoencasa.com/wp-content/uploads/2010/05/CabeceraTCP_thumb.jpg" border="0" alt="Cabecera-TCP" width="489" height="247" /></a></p>
<p><strong>Banderas (flags) de comunicación de TCP</strong></p>
<p>La comunicación estándar del protocolo de control de transmisión (TCP) es controlada por banderas en la cabecera de los paquetes TCP (TCP Packet Header). Estas banderas gobiernan la conexión entre hosts o computadoras, dándoles instrucciones al sistema.</p>
<p>Las banderas son las siguientes:</p>
<p>1. <strong>Synchronize </strong>– alias “<strong>SYN</strong>”, se usa para iniciar una conexión entre hosts o computadoras.<br />
2. <strong>Acknowledgement</strong> – alias “<strong>ACK</strong>”, se usa para establecer una conexión entre hosts.<br />
3. <strong>Push</strong> – alias “<strong>PSH</strong>”, le indica al sistema recibidor a enviar toda la data almacenada inmediatamente.<br />
4. <strong>Urgent</strong> – alias “<strong>URG</strong>”, le indica al sistema que la data contenida en el encabezado (header) se procese de inmediato.<br />
5. <strong>Finish</strong> – alias “<strong>FIN</strong>”, le indica al sistema remoto que no hay mas transmisiones.<br />
6. <strong>Reset</strong> – alias “<strong>RST</strong>”, se usa para reajustar (reset) la conexión.</p>
<h6>Envío TCP de tipo connect()</h6>
<p>Esta es la técnica más simple para verificar si un puerto de una maquina esta activo, ya que la función connect() es la que utiliza cualquier programa para conectarse a un puerto TCP, ya que es la forma estándar de establecer una conexión entre dos maquinas.</p>
<p><em>Envío con el puerto cerrado</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; SYN &#8212;&#8212;&#8212;&#8212;&#8211;&gt; Equipo B</p>
<p>Equipo A &lt;&#8212;&#8212;&#8212;&#8212; RST/ACK &lt;&#8212;&#8212;- Equipo B</p>
<p><em>Envío con el puerto abierto</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; SYN &#8212;&#8212;&#8212;&#8212;&#8211;&gt; Equipo B</p>
<p>Equipo A &lt;&#8212;&#8212;&#8212;&#8212; SYN /ACK &lt;&#8212;&#8212;- Equipo B</p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; ACK &#8212;&#8212;&#8212;&#8212;&#8211;&gt; Equipo B</p>
<p>Entre las ventajas a destacar de este tipo de análisis es que es muy rápido y que no se necesitan privilegios de superusuario o root. Las contramedidas necesarias para evitar este tipo de ataque consiste en una buena configuración del firewall o cortafuegos. Se ha de tener en cuenta que como se establece una conexión entre las dos maquinas es fácilmente detectable.</p>
<p>Un ejemplo de envío de este paquete utilizando Nmap seria el siguiente:</p>
<pre class="brush:bash">
usuario:-# nmap –sT 192.168.1.1

Starting Nmap 5.10BETA1 at 2010-02-07 20:00 Hora estándar romance 

Nmap scan report for 192.168.1.1 

Host is up (0.0067s latency). 

Not shown: 989 filtered ports 

PORT     STATE SERVICE 

25/tcp   open  smtp 

80/tcp   open  http 

110/tcp  open  pop3 

119/tcp  open  nntp 

143/tcp  open  imap 

465/tcp  open  smtps 

563/tcp  open  snews 

587/tcp  open  submission 

993/tcp  open  imaps 

995/tcp  open  pop3s 

1723/tcp open  pptp 

MAC Address: 00:16:B6:XX:XX:XX (Cisco-Linksys) 

Nmap done: 1 IP address (1 host up) scanned in 46.69 seconds
</pre>
<p><br/><br />
<br/><br />
<br />
<br/><br />
<br/></p>
<h6>Envío de paquetes TCP SYN</h6>
<p>Al enviar un paquete con la bandera SYN activada un puerto que este escuchando, el puerto ha de responder a la petición de conexión. La forma de trabajo de este paquete es enviar un paquete TCP con la bandera SYN activa a un puerto que este escuchando, la maquina destino responderá con otro paquete con SYN/ACK al que la maquina origen no responderá, no finalizando así la conexión.</p>
<p><em>Envío con el puerto cerrado</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; SYN &#8212;&#8212;&#8212;&#8212;&#8211;&gt; Equipo B</p>
<p>Equipo A &lt;&#8212;&#8212;&#8212;&#8212; RST/ACK &lt;&#8212;&#8212;- Equipo B</p>
<p><em>Envío con el puerto abierto</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; SYN &#8212;&#8212;&#8212;&#8212;&#8211;&gt; Equipo B</p>
<p>Equipo A &lt;&#8212;&#8212;&#8212;&#8212; SYN /ACK &lt;&#8212;&#8212;- Equipo B</p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; RST &#8212;&#8212;&#8212;&#8212;&#8211;&gt; Equipo B</p>
<p>Un ejemplo de envío de este paquete utilizando nmap seria el siguiente:</p>
<pre class="brush:bash">
Starting Nmap 5.10BETA1 ( <a href="http://nmap.org">http://nmap.org</a> ) at 2010-03-01 09:37 Hora estándar romance 

Nmap scan report for 192.0.3.1 

Host is up (0.000032s latency). 

Not shown: 996 closed ports 

PORT     STATE SERVICE 

21/tcp   open  ftp 

23/tcp   open  telnet 

80/tcp   open  http 

1723/tcp open  pptp 

MAC Address: 00:0E:40:XX:XX:XX (Thomson Telecom Belgium) 

Nmap done: 1 IP address (1 host up) scanned in 10.98 seconds
</pre>
<p>Ejemplo utilizando hping:</p>
<pre class="brush:bash">
root@nacho-desktop:~# hping3 -c 4 -S -p 80 192.0.3.1
  HPING 192.0.3.1 (eth0 192.0.3.1): S set, 40 headers + 0 data bytes

len=50 ip=192.0.3.1 ttl=64 id=39718 sport=80 flags=SA seq=0 win=4096 rtt=1.2 ms
  len=50 ip=192.0.3.1 ttl=64 id=39719 sport=80 flags=SA seq=1 win=4096 rtt=1.2 ms
  len=50 ip=192.0.3.1 ttl=64 id=39720 sport=80 flags=SA seq=2 win=4096 rtt=1.2 ms
  len=50 ip=192.0.3.1 ttl=64 id=39721 sport=80 flags=SA seq=3 win=4096 rtt=1.2 ms 

--- 192.0.3.1 hping statistic ---
  4 packets transmitted, 4 packets received, 0% packet loss

round-trip min/avg/max = 1.2/1.2/1.2 ms
</pre>
<p>Entre las ventajas de este tipo de análisis se ha de destacar que es un tipo de análisis muy rápido y por otra parte que los paquetes con el flag (bandera) SYN activado suelen pasar más desapercibidos que cualquier otro flag. Por el contrario la desventaja es que se ha de tener permisos de superusuario para generar este tipo de paquetes en linux.</p>
<h6></h6>
<h6>Envío de paquetes por medio de TCP ACK</h6>
<p>Al enviar paquetes con este tipo de escaneo se pretende saber si una maquina esta en funcionamiento, mas que para descubrir sus puertos activos. Ya que en cualquier caso la maquina destino siempre va a retornar un paquete con el flag RST, lo cual hace que este indicando su presencia.</p>
<p><em>Envío con el puerto cerrado</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; ACK &#8212;&#8212;&#8212;&#8212;&#8211;&gt; Equipo B</p>
<p>Equipo A &lt;&#8212;&#8212;&#8212;&#8212;       RST       &lt;&#8212;&#8212;- Equipo B</p>
<p><em>Envío con el puerto abierto</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; ACK &#8212;&#8212;&#8212;&#8212;&#8211;&gt; Equipo B</p>
<p>Equipo A &lt;&#8212;&#8211; RST: win&lt;&gt;0 ttl&lt;64 &lt;&#8211; Equipo B</p>
<p>Ejemplo utilizando hping:</p>
<pre class="brush:bash">
root@nacho-desktop:~# hping3 -c 4 -A -p 135 192.0.3.1
  HPING 192.0.3.1 (eth0 192.0.3.1): A set, 40 headers + 0 data bytes

len=50 ip=192.0.3.1 ttl=64 id=39556 sport=135 flags=R seq=0 win=0 rtt=1.1 ms
  len=50 ip=192.0.3.1 ttl=64 id=39557 sport=135 flags=R seq=1 win=0 rtt=1.0 ms
  len=50 ip=192.0.3.1 ttl=64 id=39559 sport=135 flags=R seq=2 win=0 rtt=1.0 ms
  len=50 ip=192.0.3.1 ttl=64 id=39560 sport=135 flags=R seq=3 win=0 rtt=1.0 ms

--- 192.0.3.1 hping statistic --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 1.2/1.2/1.2 ms 

 

<span style="color: #333333;"> </span></pre>
<p>Las ventajas de este tipo de escaneo es que se suele utilizar para realizar firewalking,</p>
<p>es decir intentar averiguar cuales son las políticas de reglas de un cortafuegos, dependiendo de las maquinas y puertos que se encuentren detrás del mismo. Una buena contramedida es hacer que el cortafuegos rechace cualquier tipo de conexión que no empiece por un paquete tcp con el flag SYN activado. La  desventaja es que no funciona igual dependiendo del fabricante de software.</p>
<h6>Escaneo de puertos mediante TCP SYN ACK</h6>
<p>Este tipo de escaneo es variable en su funcionamiento ya que depende de la implementación de la pila TCP de cada fabricante de sistemas operativos. El envío consiste en enviar un paquete TCP con los flag SYN y ACK activados, de esta forma se salta la norma de inicio de conexión de protocolo tcp, cuyo primer paquete ha de ser uno con el flag SYN activado. Si el puerto esta cerrado en la maquina destino se devuelve un paquete con el flag RST y no devolverá nada si el puerto esta abierto, aunque se ha de tener en cuenta que es posible que la conexión este filtrada por un cortafuegos y las respuestas no sean correctas.</p>
<p><em>Envío con el puerto cerrado</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; SYN/ACK &#8212;&#8212;&#8212;&#8212;&#8211;&gt; Equipo B</p>
<p><em>Envío con el puerto abierto</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; SYN/ACK &#8212;&#8212;&#8212;&#8212;&#8211;&gt; Equipo B</p>
<p>Equipo A &lt;&#8212;&#8212;&#8212;&#8211; RST &lt;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- Equipo B</p>
<p>Ejemplo utilizando hping:</p>
<pre class="brush:bash">
root@nacho-desktop:~# hping3 -c 4 –S -A -p 2049 192.0.3.1
  HPING 192.0.3.1 (eth0 192.0.3.1): SA set, 40 headers + 0 data bytes

len=50 ip=192.0.3.1 ttl=128 id=39556 sport=2049 flags=R seq=0 win=0 rtt=1.1 ms
  len=50 ip=192.0.3.1 ttl=128 id=39557 sport=2049 flags=R seq=1 win=0 rtt=1.0 ms
  len=50 ip=192.0.3.1 ttl=128 id=39559 sport=2049 flags=R seq=2 win=0 rtt=1.0 ms
  len=50 ip=192.0.3.1 ttl=64 id=39560 sport=2049 flags=R seq=3 win=0 rtt=1.0 ms

--- 192.0.3.1 hping statistic --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 1.2/1.2/1.2 ms
</pre>
<p>Entre las ventajas cabe destacar que este tipo de paquetes puede llegar a pasar a través de cortafuegos o ids sencillos y entre las desventajas se ha de indicar que no es fiable a la hora de determinar los puertos abiertos o silenciosos, también hay familias de sistemas operativos que ignoran este tipo de paquetes como OpenBSD, NetBSD, etc.</p>
<h6>Envío de paquetes TCP FIN</h6>
<p>El envío con el flag FIN es el ultimo que se envía en una conexión TCP normal, siendo utilizado para cerrar la conexión. Por lo general cuando un puerto cerrado recibe un paquete con el flag FIN activado, responde con un paquete RST contestando que el puerto esta cerrado, en caso de no recibir respuesta se puede deducir que el puerto esta abierto o en modo silencioso (el modo silencioso por definición ignora cualquier tipo de paquete recibido). Utilizando esta información se realiza un mapeo inverso, es decir saber o averiguar todos los puertos cerrados y de esta forma deducir los puertos abiertos. Este tipo de escaneo también conocido como Stealth scan y es uno de los escaneos silenciosos mas conocido.</p>
<p><em>Envío con el puerto cerrado</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; FIN &#8212;&#8212;&#8212;&#8212;&#8211;&gt; Equipo B</p>
<p>Equipo A &lt;&#8212;&#8212;&#8212;&#8212; RST/ACK &lt;&#8212;&#8212; Equipo B</p>
<p><em>Envío con el puerto abierto</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; FIN &#8212;&#8212;&#8212;&#8212;&#8211;&gt; Equipo B</p>
<p>Ejemplo utilizando Nmap:</p>
<pre class="brush:bash">
root@nacho-desktop:~# nmap –sF 192.0.3.1

Starting Nmap 5.00 ( <a href="http://nmap.org">http://nmap.org</a> ) at 2010-03-03 10:42 CET

Interesting ports on 192.0.3.1:

Not shown: 997 filtered ports

PORT   STATE SERVICE

21/tcp open  ftp

23/tcp open  telnet

80/tcp open  http

MAC Address: 00:0E:50:XX:XX:XX (Thomson Telecom Belgium)

Nmap done: 1 IP address (1 host up) scanned in 12.04 seconds
</pre>
<p>Ejemplo utilizando hping:</p>
<pre class="brush:bash">
root@ubuntu:~# hping3 -c 4 -F -p 777 192.0.2.1
  HPING 192.0.2.1 (eth0 192.0.2.1): F set, 40 headers + 0 data bytes

len=50 ip=192.0.2.1 ttl=255 DF id=0 sport=777 flags=RA seq=0 win=0 rtt=0.6 ms

len=50 ip=192.0.2.1 ttl=255 DF id=0 sport=777 flags=RA seq=1 win=0 rtt=0.6 ms

len=50 ip=192.0.2.1 ttl=255 DF id=0 sport=777 flags=RA seq=2 win=0 rtt=0.5 ms

len=50 ip=192.0.2.1 ttl=255 DF id=0 sport=777 flags=RA seq=3 win=0 rtt=0.6 ms 

--- 192.0.2.1 hping statistic ---
  4 packets transmitted, 4 packets received, 0% packet loss

round-trip min/avg/max = 0.5/0.6/0.6 ms
</pre>
<p>Entre las ventajas a destacar esta que este tipo de paquetes son capaces de atravesar un cortafuegos que filtre paquetes SYN a puertos dirigidos, ya que si pasan los paquetes SYN, lógicamente en algún momento se habrá de cerrar la conexión. Entre sus desventajas están que no es un método fiable ya que puertos que figuren como abiertos es posible que estén en modo silencioso. Otra desventaja de este tipo de paquetes es que en los sistemas windows un puerto cerrado ignora los paquetes FIN, por lo que hacer un escaneo con SYN FIN generara una lista enorme de puertos abiertos aunque estén cerrados o en modo silencioso.</p>
<h6>Envío de paquetes TCP NULL Flag</h6>
<p>Este tipo de paquetes también se utilizan para realizar un mapeo inverso, ya que consiste en enviar al destino todos los flags (URG,ACK,PSH,RST,SYN,FIN) de un paquete con estado desactivado. De esta forma la maquina destino ha de responder a esta situación con el flag RST si el puerto se encuentra cerrado.</p>
<p><em>Envío con el puerto cerrado</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; FLAG NULL  &#8212;&#8212;&#8212;&gt; Equipo B</p>
<p>Equipo A &lt;&#8212;&#8212;&#8212;&#8212;  RST/ACK  &lt;&#8212;&#8212;&#8212;&#8211; Equipo B</p>
<p><em>Envío con el puerto abierto</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; FLAG NULL &#8212;&#8212;&#8212;-&gt; Equipo B</p>
<p>Ejemplo utilizando NMap:</p>
<pre class="brush:bash">
root@ubuntu:~# nmap -sN 192.0.2.1 

Starting Nmap 5.00 ( <a href="http://nmap.org">http://nmap.org</a> ) at 2010-05-03 10:31 CEST
  Interesting ports on 192.0.2.1:
  Not shown: 996 closed ports
  PORT   STATE         SERVICE
  21/tcp open|filtered ftp
  22/tcp open|filtered ssh
  23/tcp open|filtered telnet
  80/tcp open|filtered http
  MAC Address: 00:30:DA:XX:XX:XX (Comtrend CO.) 

Nmap done: 1 IP address (1 host up) scanned in 1.98 seconds
</pre>
<p>Ejemplo utilizando Hping:</p>
<pre class="brush:bash">root@ubuntu:~# hping3 -c 4 -p 777 192.0.2.1
HPING 192.0.2.1 (eth0 192.0.2.1): NO FLAGS are set, 40 headers + 0 data bytes
len=50 ip=192.0.2.1 ttl=255 DF id=0 sport=777 flags=RA seq=0 win=0 rtt=0.6 ms
len=50 ip=192.0.2.1 ttl=255 DF id=0 sport=777 flags=RA seq=1 win=0 rtt=0.6 ms
len=50 ip=192.0.2.1 ttl=255 DF id=0 sport=777 flags=RA seq=2 win=0 rtt=0.6 ms
len=50 ip=192.0.2.1 ttl=255 DF id=0 sport=777 flags=RA seq=3 win=0 rtt=0.6 ms

--- 192.0.2.1 hping statistic ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.6/0.6/0.6 ms</pre>
<p>Entre las ventajas a destacar hay ids que no son capaces de detectar la existencia de este tipo de paquetes, por lo tanto es fácil hacer escaneos sin ser detectados  y como desventajas no funciona igual en todos los fabricantes y si no se recibe respuesta del puerto no quiere decir que este abierto ya que puede estar filtrado.</p>
<h6></h6>
<h6>Envío de paquetes TCP XMAS</h6>
<p>Este tipo de envío también es conocido como Christmas (Navidad), y consiste en enviar todos los flags TCP activados (URG,ACK,PSH,RST,SYN,FIN) y su funcionamiento es igual al ataque NULL Flag, en caso de que el puerto este cerrado se recibe una respuesta RST y se utiliza también para realizar mapeos inversos.</p>
<p><em>Envío con el puerto cerrado</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt;  XMAS &#8212;&#8212;&#8212;&#8211;&gt; Equipo B</p>
<p>Equipo A &lt;&#8212;&#8212;&#8211;  RST/ACK  &lt;&#8212;&#8212;&#8212;&#8211; Equipo B</p>
<p><em>Envío con el puerto abierto</em></p>
<p>Equipo A &#8212;&#8212;&#8212;&#8212;&gt; XMAS &#8212;&#8212;&#8212;-&gt; Equipo B</p>
<p>Ejemplo con Nmap:</p>
<pre class="brush:bash">root@ubuntu:~# nmap -sX 192.0.2.1

Starting Nmap 5.00 ( http://nmap.org ) at 2010-05-03 10:39 CEST
Interesting ports on 192.0.2.1:
Not shown: 996 closed ports
PORT   STATE         SERVICE
21/tcp open|filtered ftp
22/tcp open|filtered ssh
23/tcp open|filtered telnet
80/tcp open|filtered http
MAC Address: 00:30:DA:XX:XX:XX (Comtrend CO.)

Nmap done: 1 IP address (1 host up) scanned in 1.92 seconds</pre>
<p>Ejemplo con hping:</p>
<pre class="brush:bash">root@ubuntu:~# hping3 -c 4 -F -S -R -P -A -U -X -Y -p 777 192.0.2.1
HPING 192.0.2.1 (eth0 192.0.2.1): RSAFPUXY set, 40 headers + 0 data bytes

--- 192.0.2.1 hping statistic ---
4 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms</pre>
<p>Entre las ventajas a destacar hay ids que no son capaces de detectar la existencia de este tipo de paquetes, por lo tanto es fácil hacer escaneos sin ser detectados  y como desventajas no funciona igual en todos los fabricantes y si no se recibe respuesta del puerto no quiere decir que este abierto ya que puede estar filtrado.<br />
<br/><br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/05/03/seguridad-sistemas-y-redes-9/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 />
<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 />
<br />
<br/><br />
</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 />
<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 />
<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>
	</channel>
</rss>
