El sendero-del-hacker

210
E E l l   S S e e n n d d e e r r o o D D e e l l H H a a c c k k e e r r Por Bli Bli tzK tzK ri ri eg eg 1

description

como y que es un hacker y a que de dedica y mas

Transcript of El sendero-del-hacker

  • 1. ElSenderoDelHackerPor Bli tzK ri eg 1

2. ContenidoLosPuertos76 ServidoresDNS80PrimeraParte:Preliminares SesinClienteServidorMedianteTCP 82Prlogo 4MACyARP84Introduccin6ARPSpoofing 87QuesunHacker?8EscaneadoresdePuertos91ComputerUnderground10 SistemasdeDeteccindeIntrusos97LaActitudHacker 12 IntroduccinaLosSniffers104ElSenderodelHacker 14 LaSuiteDsniff111Filosofa 16 DeteccindeSniffers118ReglasDeSupervivenciaDelHacker18 UsandoTelnet120HackersyDelito19 PruebadePenetracin125 ManipulacindePaquetesconHping2133SegundaParte:AprendiendoelOficio AtaquesdeDenegacindeServicio138UnasPalabrasSobreUNIXyLinux22 LosProxies146MetodologadelHacker39 LosServidoresSocks 149LaIngenieraSocial43 LosExploits 151LoMsBsicoSobreRedes 45 LosTroyanos 152FilosofaClienteyServidor50 Contraseas155EstndaresyNormas 51 PasswordCracking158CapasdeRed52 ConseguirelrootenLinux 163ProtocolodeEthernet 58 CuentasShell169ProtocolosDeRed(Introduccin)60 IntroduccinalNetCat 174IntroduccinalTCP/IP61 LaHoradelaVerdad 199IP(ProtocolodeInternet)63 ConsejosFinales 206TCP(ProtocolodeControldeTransmisin) 67 ElManifiestoHacker 208UtilerasTCP/IP70 PalabrasFinales 209ElProtocolodelosPings:ICMP 74 Referencias210ElProtocoloUDP75 2 3. PRIMERAPARTEPreliminaresJEFEDEPOLICA:Esperaunmomento.Estsdicindomequeestesujetorobalbanco300mildlares,sinusarunasolaarma,sinrecurriralaviolenciaysinsiquierapresentarsefsicamentealbancoyqueademsnadiesupodelsucesohastadosdasdespus?ESOmeestsdiciendoimberbe?ASISTENTE:S,seor.JEFEDEPOLICA:Yqudemoniosesstetipo,unaespeciedefantasmaounsupervillanoconpoderesespeciales?ASISTENTE:No,seor.EsunHACKER.3 4. PrlogoNota De Advertencia del Autor:Yo, BlitzKrieg, no me hago responsable del mal uso que se d a la informacin aqui expuesta ya quesu publicacin tan solo es para fines informativos y didcticos o inclusive, de entretenimiento. Este esun documento de divulgacin, as de simple. Me desligo totalmente de las acciones perpetradas porcualquier persona que utilice la informacin contenida en este documento con fines ilcitos.Los ejercicios propuestos en este documento deben ser ejecutados en una o dos mquinas propias.Usar los conocimientos para fines personales con intencin de penetrar un sistema es ilegal en casi latotalidad del globo terrqueo y yo ni lo condono ni recomiendo.Este documento es gratis y su distribucin es libre. Una gran parte de la informacin fue elaboradacon ejercicios propuestos por personas experimentadas en el rea de la seguridad informtica yhackers de diversos pases.Que Es Este Documento Exactamente?Este documento est enfocado a toda persona que desee conocer la esencia del hacker, peronecesita que sea algo didctica y que abarque desde Unix hasta un poco de Winxx. Est dirigida a losms novatos, como yo, explicado como si tuvisemos cinco aos, quiz porque a m me sucedi queen otros documentos similares pareciera que explican los datos como si furamos expertos.Necesidad de Tener LinuxEs muy aconsejable instalar Linux porque es un sistema que forma parte del pilar de la programacinde UNIX, las herramientas de que dispone este Sistema Operativo son muy tiles para el mundoHack. Se puede tener una particin para Windows y una para Linux en nuestro disco duro. De estemodo, al arrancar la mquina, un sistema nos preguntar qu sistema operativo queremos cargar, yasea Linux o Windows.Para conseguir una distribucin de Linux basta con bajarse una imagen iso desde www.linuxberg.comy hacer un CD propio. O entrar a la pgina de Ubuntu y pedir un CD gratis.Aunque no es necesario tener Linux, si lo recomiendo y mucho, mxime que muchos de los ejemplosestn ms basados en la plataforma de Linux y muchos de los programas, solo existen para Linux.Varios programas para Linux han sido porteados a la plataforma Windows, sin embargo no poseen lapotencia ni la eficacia que se logra en el sistema operativo para el que fueron creados originalmente.Algunas distribuciones de Linux permiten, por medio de un Live CD, probar la funcionalidad delsistema e irnos adaptando al entorno antes de decidirnos a instalarlo. Existe una gran comunidad enInternet dispuesta a ayudarnos cuando se nos atore la carreta. Foros, chats, pginas personales conguas y tutoriales estn a nuestra entera disposicin de manera gratuita y altruista; as que no haypretexto para dejar de lado la oportunidad de manejar un sistema ms flexible y eficiente. Linux esun mundo nuevo y merece la pena de ser explorado.Hay que hacer notar que muchos de los programas para Linux solo pueden instalarse y compilarsesiendo root1. Windows permite alguna soltura de uso pero se pierde control sobre el sistema. Unacosa que pasa, y sta es una gran desventaja, es que al usar una plataforma como Windows nuncasabremos qu sucede exactamente, bien sea porque no se pueda conseguir el cdigo fuente del SO(cosa que nunca va a pasar), o bien, porque su propia estructura as lo requiere. Windows trabaja aespaldas de los usuarios.1root(Raz)Dcesedeldirectorioinicialdeunsistemadearchivos.EnentornosUnixserefieretambinalusuarioprincipaloSperusuario. 4 5. Linux permite llegar a manejar ms libremente el sistema y nos deja conocerlo con profundidad,adems de darnos el control. Linux es ms verstil que su contraparte Windows. Quien use Linux yaha dado el primer paso para convertirse en hacker; por lo tanto, necesita menos ayuda, lo que nosignifica que no la necesite. Hasta los hackers saben que ningn hombre es en s mismo una isla,siempre requeriremos ayuda de quien posee ms experiencia. No hay duda de eso.Linux es un sistema operativo que deriva del sistema UNIX, por lo que muchas caractersticas soncomunes a ambos sistemas. Adems, UNIX es, podramos decir, el lenguaje y la columna vertebral deInternet. En la pgina 22 nos daremos a la tarea de explicar un poco lo que es UNIX y Linux paraconocer un poco cules son sus ventajas.ObjetivoNo es una gua, ni pretende serlo, ciento por ciento completa sobre las actividades hacker (enespaol rebautizado con el espantoso neologismo hackeo), pero para quienes desean echarse unclavado en el rea de la seguridad informtica, es un buen comienzo y puede ser de utilidad paraconocer de qu manera trabajan los hackers. Su lectura nos permitir conocer cmo acta, piensa ycomo se desenvuelve el hacker. Podremos adentrarnos en la mentalidad genial de esta lite deexpertos en seguridad.Al mismo tiempo, el conocimiento adquirido mediante el estudio de los temas, permite que tengamosla capacidad de conocer cmo podemos defendernos de ataques hechos por aquellos hackersmaliciosos que vagan por la red buscando hacer dao y posibilita prevenir futuras incursiones.La necesidad de ProgramarConsejo para el Novato: Todo exploit, cracker, mail bomber y prcticamente todo lo relacionado con elhackeo se ha escrito en Perl o en C. Si es nuestro deseo realmente ser considerados un hacker delite, debemos saber programar.Sin un conocimiento slido en C (o C++) o Perl, no podremos ejercer el Oficio con xito completo ynos quedaramos en el rango de Scriptkiddies. Casi todos los exploits disponibles en Internet tienenuna parte importante editada o perdida sin la cual es intil. Algunos exploits pueden necesitar sereditados para ser ejecutados en su plataforma. Para hacer todo esto se requiere de programacin.Saber programacin nos ayuda no slo en la depuracin de exploits encontrados con anterioridadsino tambin para descubrir agujeros nuevos en Daemons 2 (demonios) populares. Para encontrar unagujero, digamos, en Sendmail, necesitamos examinar a fondo el cdigo repetidas veces y buscar esepedazo diminuto que sea explotable. Es por eso que uno debe saber programar para poder Ejercer elOficio.Hay muchos programas en C que podemos encontrar en la red y que nos prometen establecernos enroot (raz) o sacarte del shell (intrprete de comandos) restringido, etctera. Pero puedo asegurar quela mayor parte de estos programas tienen una parte pequea perdida o editada en el cdigo. Unenorme Exploit de Sendmail fue publicado en la Web y tena comentarios encima de la lnea msimportante y por tanto el exploit no funcion. Vuelvo a enfatizar la necesidad de aprender aprogramar.Convenciones FinalesSe asume que la persona que lee este documento tiene un conocimiento pasable en computadoras.No se exige que sea un experto, pero que al menos sepa como abrir una consola de comandos enWindows o Linux. As mismo, se asume que tiene una conexin a Internet y que se sabe desenvolvercuando navega en busca de informacin.2Undemonio(odaemon)esunprocesoquenotienepropietario(esdecir,noesejecutadoporningnusuarioenparticular)yqueseest ejecutandopermanentemente. 5 6. Cuando se utilice la palabra Winxx, significar que nos estamos refiriendo a la plataforma Windows encualquiera de sus versiones: Win98, Win98SE, WinMe (Windows Milenio), WinXP, WinNT; aunque asmismo, pueden usarse estas nomenclaturas para referirnos a ese Sistema Operativo, sobre todocuando una aplicacin solo pueda usarse en una versin en particular.No se habla de la infinidad de herramientas de que echan mano los hackers, aqu solo menciono lasms importantes o de las que, por ser ms populares, existen manuales de uso en Internet. Dehecho, muchos de los temas fueron creados en base a informacin que hackers experimentados hanpuesto en la Gran Red.Al final de ste documento se hablar del NetCat, herramienta creada por Hobbit, y detallaremos susfunciones bsicas junto con una serie de ejercicios probados tanto en Winxx como en Linux. Toda lainformacin sobre esa utilera fue recopilada y acomodada segn el grado de dificultad, desde lo msbsico, hasta su uso en procedimientos ms complicados.Es posible que algunas direcciones de internet sean obsoletas, no es ms que buscar los programas oherramientas por su nombre en Google.Los comandos usados en las dos plataformas ms importantes, sern escritos tal y como debenusarse. Hasta se pueden copiar y pegar en las consolas de comandos3. El sombreado indicar que esun comando importante. Por ejemplo:ifconfig -aLos comandos se teclean en la ventana de la consola o terminal de la plataforma elegida. Se entiendeque se escribe colgando desde su propio directorio y despus pulsando la tecla o .C: en Winxx y~$ en Linux~# prompt de root en LinuxUn viejo dicho dice Un soldado merece un soldado y extrapolndolo al mundillo hacker, se refiere aque debemos pensar y actuar como el hacker para poder vencerlo en su propia arena.3Seusarnindistintamentelosnombresconsoladecomandos,lneadecomandos,shelloterminalparaindicarlosprogramasquepermitenenWindowsoLinuxingresarcomandos.EnWinxxseusaelprogramacmd.exeparatraernosunaconsolayseabredesdeelmenInicio(Start)eligiendolaopcinEjecutaryenelcuadrodedilogotecleamoscmd.exe. 6 7. IntroduccinExiste una comunidad clandestina que opera y sobrevive en los oscuros rincones de la informtica, esuna cultura compartida de programadores y entusiastas expertos y genios en la creacin de redescuyos origenes se remontan a los tiempos oscuros en que la jungla de silicio era gobernada por losdinosaurios informticos. Eran los tiempos en que no existan los MP3, ni los programas P2P, ni laWikipedia, pero empezaban a hacer su aparicin las primeras microcomputadoras de tiempocompartido y los primeros experimentos con ARPAnet. Los miembros de esta cultura dieronnacimiento al trmino "Hacker".Algunos creen, aunque puede ser una exageracin, que desde que apareci la primera computadoraapareci el primer hacker. Los hackers fueron los que construyeron la Internet. Los hackers crearon elsistema operativo Unix tal y como lo conocemos hoy en da. Los hackers dieron vida a Usenet 4. Loshackers fueron los artfices de la World Wide Web. Incluso Linux est apadrinado por cientos dehackers.Hacker, la sola palabra atrae y subyuga. Son solo seis letras, pero juntas, pareciera que poseenpoderes msticos que influyen y dejan semilla sobre quien la escucha y resuena como eco decampana en los cerebros de miles de adolescentes, la mayora hombres, con espinillas y frenos en ladentadura que vieron por primera vez War Games y empezaron a soar con robar passwords,penetrar sistemas, dominar computadoras remotas y, nada raro, poder tener la capacidad de entraral sistema de calificaciones del colegio o vengar alguna afrenta. Los ms osados desean llegar atumbar el sistema de alguna compaa o modificar a placer una pgina web, etc.Cuando se habla de hackers, siempre viene a la mente la imagen de un hombre. Sin embargo,tambin existen mujeres que se dedican a perfeccionarse en el arte del Oficio del Hacking.Si t eres parte de esta cultura, si te has alimentado de ella y si has contribuido en su beneficio deuna u otra forma y si otras personas te reconocen y te llaman hacker, entonces s puedes llamartehacker y no necesitas leer este documento. Sin embargo, si es tu deseo conocer cul es la esenciadel hacker y su modo de operar; si quieres convertirte en uno, este documento es solo la puerta a esemundo de monitores, teclados, cdigos y programas. Yo solo te muestro la puerta, t eres quien debedecidir cruzarla (Morpheus, The Matrix).En los siguientes apartados se mostrar paso a paso que es lo que se requiere para ser un hacker.Desde el conocimiento elemental a base de teora, hasta el manejo de herramientas informticascreadas por gente especializada; del mismo modo que en el ejrcito se te da teora de guerra yestrategia y te prepara para manejar armas de fuego de alto calibre, an y cuando jams vayas adispararlas. Se te dir como protegerte (igual que los buscadores de minas antipersonales que llevanun traje especial para tal menester) para no ser atrapado tan fcilmente, pero siempre teniendo enmente que todo debe hacerse en una computadora personal y una red propia, nunca una ajena.Dichoso es el hombre que ha adquirido sabidura y es rico en prudencia;cuya adquisicin vale ms que la plata; y sus frutos son ms preciososque el oro acendrado.Proverbios Cap. III; Vers. 13-144Conjuntodemilesdeforoselectrnicosdedebateydiscusinllamadosgruposdenoticias"(Newsgroups);ascomolascomputadorasqueprocesansusprotocolosy,finalmente,laspersonasqueleenyenvannoticiasdeUsenet.NotodoslossistemasanfitrionesestnsuscritosaUsenetnitodoslossistemasanfitrionesUsenetestnenInternet.7 8. Qu es un Hacker?En sus origenes, la palabra hacker defina a un aficionado a las computadoras. Describa a un usuariototalmente cautivado por la programacin y la tecnologa informticas. En la dcada de los ochenta ycon la llegada de las computadoras personales5 (PCs) y las redes de acceso remoto, este trminoadquiri una connotacin peyorativa y comenz a usarse para denominar a cualquier persona que seconecte a una red para invadir subrepticiamente una o varias computadoras con la finalidad deconsultar, robar o alterar los programas o los datos almacenados en las mismas. El trmino tambinse utiliza para referirse a alguien que, adems de programar, disfruta desmenuzando sistemasoperativos y programas para ver cmo funcionan.Los hackers son los sujetos que maquinaron lo que es hoy el Internet tal y como lo conocemos, lamayora de los hackers programan y contribuyen al mundo de Linux y a la mayora de ellos le gustaestudiar la seguridad de la red e irrumpir en los sistemas.Los hackers son usuarios muy avanzados, que por su elevado nivel de conocimientos tcnicos, soncapaces de superar determinadas medidas de proteccin. Su motivacin abarca desde el espionajeindustrial hasta el mero desafo personal. Internet, con sus grandes facilidades de conectividad,permite a un usuario experto intentar el acceso remoto a cualquier mquina conectada, de formaannima. Hay quienes los describen como los ninjas modernos, pero a diferencia de estos, los hackersno llevan artilugios ocultos ni armas para atacar, las ms de las veces se encuentran frente a unacomputadora y un teclado. Casi siempre operan solos.En este documento nos centraremos ms que nada en las habilidades y actitudes de los hackers desoftware y de la ingeniera social y en los programas que regularmente utilizan, adems de lastradiciones en que dan sustento la cultura compartida que origin el trmino hacker.Apreciacin del trminoLa gran mayora de las personas tienden a creer que la actitud del hacker se limita a la cultura delsoftware y nada hay ms lejos de la verdad. Existen personas que aplican la actitud hacker a cosasdiferentes como lo son la electrnica o la msica - en realidad, se puede encontrar en los niveles msaltos de cualquier ciencia o arte. Los hackers de software reconocen a estos espritus en otros lugaresy pueden llamarlos hackers tambin - y algunos sostienen que la naturaleza hacker es realmenteindependiente del medio particular en el cual se trabaja.Lamers y CrackersPero hay que tener cuidado; en el oscuro mundo subterrneo tambin habita un grupo transgresorque trabaja tras las trincheras y que ruidosamente se llaman a s mismos hackers, pero estn muylejos de serlo. Se trata de personas (principalmente varones adolescentes) que gustan de irrumpir encomputadoras y hacer phreaking en el sistema telefnico. Los verdaderos hackers designan a estaspersonas con el trmino de crackers y no quieren ser relacionados con ellos.Los hackers verdaderos piensan que la mayora de los crackers son sujetos perezosos, irresponsables,y no muy inteligentes. Objetan que el ser capaz de romper la seguridad de un sistema no te vuelvems hacker que el ser capaz de moverle a los cables de un automvil para encenderlo no teconvierte en un ingeniero automotriz. Por desgracia, muchos periodistas y escritores tomanerrneamente la palabra hacker para describir a los crackers y esto es algo que los irrita a granescala.En lugares de habla hispana, se le conoce como crack al mejor elemento de un grupo en unaactividad. Es el as, el campen. Sin embargo, la designacin cracker en informtica se aleja de estavisin. La diferencia es esta: los hackers construyen cosas, los "crackers" las rompen.5EnEspaaselesconocecomoordenadores8 9. Los hackers no entran a wikipedias o wikifreaks para vandalizar a sus anchas, esa es tarea de lamers(pronunciado limers) con un valor humano menor que la mancha que queda en la suela del zapatodespus de aplastar un bicho.Un lamer no es ms que un presunto hacker fracasado. Se cree hacker pero no lo es. Presume dehacker, pero no sabe nada y solo pasa su tiempo copiando programas, usando herramientas queverdaderos hackers crearon, solamente para entrar a pginas web pornogrficas que requieranautenticacin. Un lamer cree que por aprender los comandos bsicos de Unix o Linux y saber comousar el NetCat, lo acerca a la categora de Hacker lite y no es as. Dista mucho de serlo.Un hacker comparte su saber porque vive bajo la consigna de que el conocimiento es universal y nodebe tener ni dueo ni ataduras.Si quieres saber lo que es un verdadero hacker, sigue leyendo. Si quieres ser un cracker, ve a leer elgrupo de noticias alt.2600 y preprate a darte de golpes en la cabeza cuando descubras que lossujetos que ah se encuentran no son ms inteligentes que el legendario burro que resopl en unaflauta.Y eso es todo lo que se explicar acerca de los crackers y los lamers. 9 10. Computer UndergroundEl mundo de la informtica es una jungla peligrosa en s misma y est poblada por tribussegmentadas y muy diversificadas. Podemos dividir el mundillo subterrneo de las computadoras en7 ramas principales. Las ramas son (sin ningn orden en particular):PhreaksTambin referidos como "phreakers". (El trmino hace referencia indirecta a freak fenmeno). Estaspersonas se ocupan de la red telefnica. Quieren aprender todo lo que se pueda acerca de ello,quieren controlarlo, lo cual los lleva a hacer llamadas telefnicas gratis (esto es ilegal nios y nias.)Los grupos de Phreakers se acuadrillan a menudo y forman un grupo organizado y publican artculossobre el tema.HackersComo se mencion anteriormente, son las personas que aman los sistemas computacionales y lesencanta saber cmo introducirse en ellos y controlarlos, entre otras cosas. El hacker goza alcanzandoun profundo conocimiento sobre el funcionamiento interno de un sistema o de una red decomputadoras. Un hacker verdadero no es el tipo de sujeto que los medios noticiosos y Hollywoodquieren que uno crea. Este trmino se suele utilizar indebidamente como peyorativo, pero los hackersproclaman tener una tica y unos principios contestatarios e inconformistas pero de ningn mododelictivos.CardersTarjeteros. Estas personas son reconocidamente unos criminales. Roban y hacen uso de nmeros detarjetas de crdito, de cheques o nmeros de cuentas corrientes para obtener lo que quieren sinpagar con su propio dinero. Una de las compaas proveedoras de conexin a internet msimportantes de Estados Unidos, AOL (America On Line), tiene en su base de datos miles de cuentascreadas fraudulentamente con mtodo de pago a tarjetas de crdito. La vctima inocente que llama aservicio al cliente para reclamar los cobros hechos a su tarjeta no es responsable de los cargos noautorizados, as es que el banco tiene que comerse ese mole. Por eso es que estn asegurados.Adems AOL debe reembolsar el dinero mediante un afidvit y terminar la cuenta abierta de manerafraudulenta.AnarquistasUn Anarquista es un individuo al que le gusta jugar con fuego, explosivos, qumicos, etc. Ya es de pors malo elaborar una bomba que se har explotar en el desierto para ver qu ocurrir. Estos sujetostienen su biblia en el libro The Anarchist Cookbook.WarezSon los sujetos que distribuyen software de manera ilegal. Son piratas. La mayora de los warez sondistribuidos por grupos warez que existen con el objeto de sacar software de los BBSs antes de queotro grupo publique ese mismo programa primero. En las pginas web de estos tipos, se ponen adisposicin de quien lo quiera, los programas que son de paga, pero los distribuyen junto con unKeygen (un programa generador de seriales) o crack con el que el usuario podr poner el nmero deserie para evitar que el programa pida el serial o deje de funcionar debido al lmite de tiempo de usodel trial. Los keygens son hechos por los crackers.Sujetos de Virus/TroyanosEstas personas son usualmente programadores (aunque no siempre) interesados en cmo trabajanlos virus y los caballos de Troya y cmo hacerles ms eficientes e indetectables. 10 11. CrackersSon los sujetos que se dedican a romper las contraseas de Sitios Web, programas de pago o deprueba, etc. Regularmente crean programas llamados cracks utilizando desensambladores,volcadores de memoria, etc., para encontrar la forma de reventar la seguridad de los programas ypoder hacerlos full. Muchos hackers utilizan tcnicas empleadas por los crackers como veremos enel apartado de Passwords Crackers, pero eso no significa que comulguen con estas actividades.Como nota a parte debemos decir que la definicin dada por Xandor SymmLeo Xet que en su libroHacking: Whats Legal And Whats Not6 describe al hacker como un sujeto, hombre o mujer, que conuna computadora y un mdem se pasea por los Bulletin Boards, conoce Compuserve y La Fuente yque se pasa el tiempo frente al monitor de su computadora comiendo pizza y rosquillas, adems deconocer los efectos de la cafena, no hace mas que reforzar y perpetuar la idea de un estereotipo delque el hacker real desea desligarse.Es en este punto donde adquiere importancia la "filosofa" del hacker. La diferencia entre un hacker yun cracker, consiste en que un cracker accede al sistema ms que nada para daarlo o corromperlo,mientras que un hacker accede al sistema simplemente para conseguir informacin o por puracuriosidad, pero nunca corromper ni borrar ningn archivo del sistema, sigue el lema de "se vepero no se toca". A esto ltimo hay que hacer una excepcin , naturalmente. Los nicos archivos queel hacker modificar o borrar sern los archivos relativos a los logs que haya podido dejar en elsistema. Por supuesto que esto es una situacin ideal y no realista; en la prctica un hacker puedeque realice otras acciones en el sistema que puedan modificar archivos ya existentes, pero siempreprocurar que los cambios sean mnimos.6Hackeo:loqueeslegalyloquenoloes.198711 12. La Actitud HackerHay que meterse en la cabeza que los verdaderos hackers de lite resuelven problemas y construyencosas, no al revs. Creen en la libertad y la ayuda mutua voluntaria. Rara vez son egoistas y proveena la comunidad con la informacin y el conocimiento adquiridos con la prctica. Para ser aceptadocomo un hacker, tienes que comportarte como si tuvieras este tipo de actitud tu mismo. Y paracomportarte como si tuvieras la actitud, tienes que creer realmente en la actitud. No hay vuelta dehoja.Pero una advertencia, si piensas cultivar las actitudes hacker simplemente como una manera delograr la aceptacin en esta cultura, te pierdas el punto. Cero. Largo de aqu. Convertirse en el tipo depersona que cree en estas cosas debe ser importante para ti - para ayudarte a aprender y a obtenermotivacin. Debes visualizar la clase de persona en que quieres convertirte. Se requiere dejar atrs alhombre y a la mujer vacuos para volverse en seres plenos. Al igual que con todas las artes creativas,la forma ms eficaz de convertirse en un maestro es imitar la actitud de los maestros - no slointelectual sino emocionalmente tambin. En la mitologa Jedi, es primero ser un padawan. Aprenderdel maestro sus tcnicas y habilidades. Escuchar sus consejos y acatar sus rdenes sin chistar. Nuncadebatir nimiedades ni dejarse llevar por banalidades. As, y solo as, podrs convertirte con el tiempoen un maestro y mentor para que en el futuro puedas albergar a un iniciado bajo tu tutela.El siguiente poema zen moderno lo especifica claramente:Paraseguirelcamino:observaalmaestrosiguealmaestro,caminaconelmaestro,miraatravsdelmaestro,convirteteenelmaestro.Encontrar la luz cuando se est rodeado de oscuridad es muy difcil. Pero con paciencia, dedicacin yesfuerzo se puede lograr. Como lo dice el dicho americano: No pain, no gain (hay que sufrir paramerecer). Esa es la clave.Por lo tanto, si quieres ser un hacker, repite las siguientes cosas hasta que se fundan en tuscircunvoluciones cerebrales y te las creas:1.-El mundo est lleno de problemas fascinantes esperando ser resueltosNadie duda que ser un hacker es muy divertido, pero es el tipo de diversin que requiere de unmontn de esfuerzo. Y el esfuerzo requiere motivacin. Los atletas exitosos obtienen su motivacin apartir de una especie de placer fsico al hacer que sus cuerpos realicen ejercicios, empujndose a smismos ms all de sus lmites corporales. Del mismo modo, para ser un hacker tienes que sentir enmente y cuerpo la emocin bsica que da la solucin de los problemas que se hacen presentes.Debes agudizar tus habilidades y ejercitar tu inteligencia.Si no eres la clase de persona que siente de esta manera, naturalmente tendrs que aceptarlo a finde que seas como un hacker. De lo contrario encontrars que tu energa hacker ser minada porbanales distracciones como el sexo, el dinero y la aprobacin social. Sin embargo hay que recalcarque las dos ltimas son necesarias y no son prohibitivas, pero no deben ser lo ms importante en lavida de un hacker, son solo complementos. La tercera podemos considerarla simplemente como unavanidad humana. 12 13. Es de capital importancia tambin aprender a desarrollar una especie de fe en tu propia capacidad deaprendizaje una conviccin de que, aunque es posible que no sepas lo necesario para resolver unproblema, si te enfrascas en un pedazo de l y extraes un algn conocimiento de eso, vers quehabrs aprendido lo suficiente para resolver la siguiente pieza - y as sucesivamente, hasta que hayasterminado.Si sientes que el sendero es demasiado sinuoso y tortuoso y lo quieres todo facilito, entonces estemodo de vida no es para ti. Puedes dejar este documento tirado o enviarlo a la papelera de reciclaje yencender la televisin para ver las telenovelas.2.- Ningn problema debe ser resuelto dos vecesTodos sabemos que los cerebros creativos son un recurso valioso, no renovable y al mismo tiempolimitado. No deben desperdiciarse en redescubrir el hilo negro cuando hay tantos problemasfascinantes esperando su oportunidad de ser resueltos.Acerca de lo anterior, una leyenda urbana cuenta que un cientfico, un profesor eminente, que estabatrabajando con unos colegas en un problema que los traa de cabeza durante semanas,repentinamente di con la solucin mientras cenaba con su esposa. Sin pensarlo dos veces, salt dela mesa y, montando en su automvil, parti en rumbo a su laboratorio tras haber convocado a suscolegas de trabajo. Era tanta la euforia por comunicar su hallazgo que el profesor no advirti la luzroja del semforo. Un triler embisti su pequeo auto matndolo al instante y con l, la solucin alproblema que tantos dolores de cabeza y esfuerzos haban consumido al grupo de cientficos: Lafusin en fro.Para comportarte como un hacker, tienes que convencerte que los hackers lite poseen un tiempoprecioso para pensar, tan es as que podramos decir que es casi un deber moral compartirinformacin, resolver problemas y entonces dar las soluciones para que otros hackers puedanresolver nuevos problemas en lugar de tener que estar perpetuamente regresando a los que yaexistan.Pero hay que tener siempre en mente que la frase ningn problema debe ser resuelto dos veces nodebe implicar que ests obligado a considerar todas las soluciones existentes como si fueran el SantoGrial, o que slo hay una solucin ptima para cualquier problema dado. A veces, se puede aprendermucho ms sobre el problema acerca de lo que no sabamos antes de estudiar la primera solucin.Esto est bien, y con frecuencia es necesario, para mentalizarnos de que podemos hacerlo mejor.Lo que no es aceptable son los artificialismos tcnicos, jurdicos, o las barreras institucionales (comoel cdigo fuente cerrado) que impiden a una buena solucin el ser reutilizada y que obliguen a laspersonas a volver a inventar el hilo negro.T no tienes que creer que ests obligado a regalar todo tu producto creativo, aunque los hackers quelo hacen son los que obtienen lo ms importante de sus colegas: el respeto. Para ellos, el respeto esel mximo reconocimiento y premio. Una vez obtenido el respeto, muchos te buscarn y te pedirnconsejo. Sin embargo, tambin hay que tomar en cuenta que es compatible con los valores delhacker el vender lo suficiente para poner los alimentos en la mesa, pagar el alquiler y lascomputadoras y sacar a su chica al cine y a pasear. Siempre es bueno usar tus conocimientos dehacking para mantener una familia o incluso hacerte rico si as lo deseas y te lo has propuesto comoobjetivo, siempre y cuando no olvides la lealtad que le debes a tu oficio y a tus compaeros hackersmientras ests en ello.Recuerda que existe una tica y una filosofa a las cuales debes atarte. Tienes un vnculo mstico conlos dems compaeros y miembros de esa cofrada que llamamos la Hermandad del Hacker, an ycuando no los conozcas ni de nombre de pila ni en persona.13 14. El Sendero del HackerNavegando una noche por Internet, me encontr por casualidad un texto que fue escrito por alguienque se hace llamar Morgaine y que fue integrado a un documento que lleva por ttulo Libro de lasSombras (Book of Shadows). Aunque el tema de que trata es de misticismo y esoterismo, yo intentadaptarlo a la esencia del hacker haciendo aqu y all algunos pequeos cambios al escrito. A fin decuentas, para las personas comunes y corrientes, la esencia hacker parece estar cubierta de unaextraa aura misteriosa. He decidido llamar al arte del hacker El Oficio y eufemsticamente, as lollamar de aqu en adelante.A menudo me preguntan cmo es que uno se convierte en hacker. Encuentras a alguien que eshacker y te puede convertir mgicamente en uno? O eres un hacker simplemente por pregonar a loscuatro vientos que lo eres? Puedes convertirte t mismo en hacker?El proceso de convertirse en un hacker no sucede de la noche a la maana. Es una lenta y enocasiones, una fatigante metamorfosis. Es un cambio fundamental de vida, de cambiar los hbitos ylas costumbres anteriores. Es un sendero nuevo en el viaje de tu vida. Requiere ponderacin, estudioy trabajo. Si anteriormente has seguido una forma de vida tradicionalista, puede haber cosas quedifcilmente podrs abandonar, y nuevas cosas que te tomar tiempo absorber.He escuchado a muchas personas decir que a menudo es duro, entrar de una vida de honestidad, asentirse cmodo con tus nuevos amores: la informtica y las computadoras. Todas las innovacionestoman su tiempo, pero si eres serio en este derrotero, ya encontrars tu propio camino. Los expertosles llaman su hogar propio.No importa cmo hayas encontrado a la vieja escuela de conocimiento, lo importante es que aquests. Por lo tanto, a dnde debes dirigirte? A la librera. Para un novato, los libros son como el aireque respiras. T debes poseerlos, o de algn modo, tener acceso a ellos, a la informacin quecontienen. Si no puedes pagarlos o no te sientes seguro teniendo libros que hablen del Oficio, elInternet es el siguiente destino.Tanto en los libros como en el Internet, podrs encontrar una gran riqueza de conocimientos que teguiarn en tu nuevo camino. Ciertamente, al igual que con cualquier otra cosa, hay buenainformacin e informacin nociva. Evita cualquier clase de libro o sitio en Internet, que hable decontrolar a otra persona en cualquier forma, daar o hacer alarde de las habilidades. Estos libros y/osites no cumplirn con satisfacer tu necesidad de conocimientos sobre el Oficio y lo ms que lograrnser confundirte.Una vez que hayas ledo una variedad de libros y documentos y sientas que esto es lo tuyo, que stees tu camino, el siguiente paso es encontrarte un maestro. Si tienes acceso a un maestro, a miparecer, ste es el mejor curso de accin. Normalmente podrs encontrar un maestro en algunalibrera que venda libros sobre nuestro Oficio en tu comunidad. Tambin, hay muchos sites dondepuedes encontrar mucha y valiosa informacin sobre el tema que requieras para tu formacin. Hacrecido sumamente durante los ltimos aos y es un recurso valioso en la comunidad del Oficio.Tener a un mentor puede ofrecerte mucho ahora que comienzas a transitar el sendero. Habr cosasque encuentres y que hagan que pases apuros para entenderlas y necesites esclarecimiento. Sitienes a un maestro a la mano, simplemente una llamada telefnica o un email sern suficientes. Sino, debes hacer un intento por descifrar por ti mismo las cosas y, casi seguro, que el resultado noser el esperado pero no hay que desesperar. No siempre se logra el xito a la primera oportunidad.Si no encuentras a un maestro, otra vez, el Internet es el siguiente mejor lugar para buscar. 14 15. Si slo buscas como beneficiarte de tus habilidades o como daar el trabajo por el que a otros lespagan un sueldo, con el cual visten y dan de comer a su familia o simplemente ests en busca deobtener un placer mundano destruyendo los datos que pertenecen a otras personas, entoncesamigo... el Oficio no es para ti. El Oficio hacker es un camino serio, en el cul se culmina elconocimiento adquirido, pero es secundario a la sabidura misma. Te sugiero que pongas enperspectiva tus deseos, tus objetivos y tus opciones alternas.Un par de cosas necesitan decirse referente a dar inicio a este sendero, en vista de las actitudesrecientes acerca de nuestro Oficio. ltimamente puede ser que hayas conocido a algunas personasque, despus de leer algunos libros, se sienten con derecho a ser llamados Maestros del Oficio. Secolocan rpidamente un ttulo como Lord o Master, se estacionan detrs de una computadora, sacanmanuales sobre intrusin de sistemas y manejo de Scripts y se creen que ya estn listos paraempezar. Esto no es de lo que trata nuestro Oficio.Si has consumido tus aos siguiendo un camino en particular, has trabajado duro y estudiado laslecciones que te han sido presentadas, y a travs de esto has logrado la titularidad y la jerarqua,entonces puedes hacer uso de tus habilidades. Pero considera esto: Cmo te sentiras si, despus detodas las penurias que has pasado, te cruzas con un novato con apenas seis meses de aprendizaje y5 libros, yendo de aqu para all, pavonendose y hacindose llamar StarrySki o Lord Thunderbolt?Eso es muy ofensivo.De la misma manera que tus padres te dijeron cuando eras nio o nia (o tal vez todava lo eres) "noprecipites las cosas, todo llegar a su tiempo, y te ser ms dulce la espera", esto es igual de ciertocon el nuestro Oficio.Usando ttulos vanos, llenndote de aire la cabeza, caminando sobre las nubes, y en general dndotemucha importancia, no es como vas a convertirte en un hacker experimentado. Y de eso es de lo quetrata el Sendero. Lo que lograr es alienarte de las personas que realmente desearas encontrar yconocer! Nadie gusta de la compaa de los fanfarrones, as que no te conviertas en uno.Ganarse el respeto de la comunidad es trascendental. Da plenitud mental. Hay que respetar a losdems y a su trabajo y jams caer en triunfalismos baratos.El concepto total sobre la manera de convertirte en hacker es a travs del estudio y la dedicacin.Debes acumular toda la informacin que puedas. Aprovecha al mejor maestro posible queencuentres. Estudia y comprende todo lo que llegue a tus manos y te sirva para ampliar tusconocimientos. Es tu deber sacar partido del conocimiento adquirido y hacer buen uso de l.Un ltimo consejo. Dirgete de vez en cuando afuera y haz comunin con la naturaleza. No solo haybelleza en los interruptores y el baudio. Escucha tambin a los rboles, al viento y a la fuertecorriente del agua del ro, pues ese tambin es el mundo de los hackers.15 16. FilosofaEl hacker no nace siendo hacker, se forma a s mismo con la curiosidad bajo el brazo. No es unaactitud que se aprenda rpidamente. Un hacker hace acopio de los conocimientos, material,herramientas a su alcence y con su habilidad para usarlos en su provecho, estudia, aprende, aplica ycrea. Nunca se queda estancado en lo que ya sabe, sino que desea seguir en bsqueda de mejores ymayores conocimientos. Regularmente nunca se queda con lo aprendido, lo publica y comparte conlos dems.El Oficio es en s mismo una filosofa y una habilidad. La informacin acerca del hacking est dispersapor todo el Internet. Es confusa, la mayor parte de las veces es obsoleta, incompleta, mal redactada,con tecnicismos (material para gures7 le dicen) y en ingls. Mucha informacin es falsa tambin. Dehecho, los datos en este documento se harn viejos en dos aos.De cualquier modo, la filosofa de la enseanza hacker es anloga a transmitir a un aprendiz losconocimientos para el desarrollo de La Fuerza. De la misma manera, bajo esta premisa podemosdeducir que, al igual que con los Jedi y los Sith, existen hackers buenos, los iluminados; y los hackersque solo buscan el beneficio personal, la venganza, la riqueza fcil y el hacer dao. Son stos ltimosquienes estan en el lado oscuro.No existe tal cosa como Aprenda a ser un hacker o Hacking para dummies. Eso, adems de serpretencioso, es falso. Claro que existen guas y tutoriales en internet, pero ninguno posee valor por smismo en virtud de que los datos que proveen dan por sentado conocimientos que la persona quebusca informacin no posee.Ninguna persona puede pretender intentar utilizar un programa para controlar sistemas remotoscuando desconoce el protocolo TCP/IP. Ni pensar en instalar un troyano en una computadora ajenacuando no se comprende cabalmente la filosofa cliente-servidor.Al igual que con los Jedis, el ser hacker implica mucho entrenamiento, horas de estudio y, an cuandolo logras, dijo Qui Gon Jinn, es un camino de trabajo duro y lleno de penurias. Implica ser un expertoen lo que haces. Son interminables horas de recopilacin de informacin y aprendizaje mezclados conhabilidades innatas que nadie puede ensear, si no adquirir. Una cualidad del hacker es que no seconforma con lo que existe, ya que el conformismo empobrece el espiritu del emprendedor.El OficioAl iniciarse en el Sendero del hacker, que llamaremos el Oficio, los verdaderos artfices siguen elconocido aforisma de los mdicos Primum Non Nocere, primero est el no daar. sa es la primeraregla de supervivencia del hacker. Todos los especuladores de Wall Street saben que la informacin -ypor ende, el conocimiento- es poder y es bien cierto que un hacker puede hacer mal uso de lainformacin recibida.Es muy tentador y atrayente, pero los hackers ms avispados saben que actuar maliciosamentepuede desembocar en situaciones ilegales que captarn rpidamente la atencin de las fuerzas de laley. Solo los aprendices ms mezquinos buscan la dulzura del lado oscuro buscando el beneficiopersonal, la diversin insana o para saciar una inmadura sed de venganza.Lo que caracteriza a las personas que presumen de poder penetrar sistemas como si de jovencitasvirginales se tratara, es bsicamente su paciencia, su poder de observacin, su pericia a la hora derecopilar y clasificar la informacin, su capacidad de deduccin, de analisis y de resolucin deproblemas. Los hackers verdaderos dividen los problemas en otros ms pequeos que se irnresolviendo para poder llegar a la meta deseada.7Guru(gur)Personaalaqueseconsideracomoelsumomanantialdesabidurasobreundeterminadotema. 16 17. tica del HackerLo ideal en un hacker que ha descubierto algn tipo de vulnerabilidad, digamos por ejemplo en unapgina web corporativa, es no descargar ningn dato comprometedor, ni archivos en ningun tipo deformato, no imprimir pantallas, no copiar bases de datos indexados; vamos, ni siquiera anotar nadaen un papel.Un hacker con cierta carga tica explicara de manera annima y desde una compuadora en uncibercaf, nunca de la suya propia, a la empresa u organismo que el error descubierto da acceso a losdatos a cualquier persona. Esto se hace asegurndose que el mensaje llega a la persona adecuada.Ahora bien, sI no hacen caso, puede llamarse por telfono pblico al departamento tcnico o deinformtica de la empresa para hacerles saber el riesgo que sufren. Si pasado algn tiempo hacencaso omiso de los mensajes, puedes publicar la vulnerabilidad en algn foro dando los detalles delfallo, de manera que otros puedan verificar el error y procedan de igual forma.Estereotipo del HackerLa palabra hacker se ha desvirtuado a lo largo de muchos aos. En realidad significa ms que unpirata informtico o de lo que la documentacin en los medios noticiosos nos ha hecho creer. Unhacker es un experto porque su curiosidad personal lo ha llevado a ese nivel. Sabe que puede sacarprovecho de aquello sobre lo que tiene poder y controla. Posee una jerarqua elevada y sabe medirse.ltimamente se ha utilizado el trmino experto en seguridad informtica como sinnimo de hacker yas es en realidad. Pirata informtico es un adjetivo peyorativo con el que ningn hacker quiere verserelacionado.Existen muchas descripciones y estereotipos en base a lo que la gente percibe como hacker. Desde eladolescente lleno de espinillas, oculto en su cuarto o sotano, que se la pasa frente a la computadoraen cuyo monitor se ven letras blancas sobre fondo negro hasta el moderno terrorista ciberntico, bienpeinado y que siempre porta a todas partes una laptop, la palabra hacker se ha adoptado por cadapersona que la ha querido usar.A muchos hackers los tachan de geeks8, pero no todos los verdaderos geeks llegan al rango dehackers. Aunque gustan de las computadoras, los geeks abundan ms en el rea electrnica. Lomismo sucede con los nerds, un hacker no es un inadaptado de gran inteligencia. A muchos nerds noles interesa para nada el rea informtica, aunque otras ciencias son sus predilectas, como laqumica, la biologa y las matemticas.La realidad es que la imagen del hacker est muy alejado de las fantasas del populacho. Segnmenciona Eric Steven Raymond, los hackers son personas inteligentes, intensos, muchas vecesabstrados e intelectualmente abiertos. Siempre se interesan por cualquier cosa que les puedaproporcionar estimulacin mental y es comn que se interesen por el hacking donde se desenvuelvenfcilmente. Les agrada tener el control sobre las computadoras o las telecomunicaciones y son estoselementos los objetos sobre los que se apasionan porque son instrumentos de lo interesante y sobrelos que aplican sus propias ideas y no las de otros.Muchos hackers verdaderos prefieren el desafo del conocimiento a una recompensa monetaria porun trabajo. De cualquier manera, los ms inteligentes terminan por dedidirse a poner su propiaempresa o son contratados por compaas que pretenden aprovechar sus conocimientos.8PersonaquesienteunentusiasmoilimitadoporlatecnologaengeneralyporlaInformticaeInternetenparticular.17 18. Reglas De Supervivencia Del Hacker I. Nunca daar intencionadamente ningn sistema. Lo nico que conseguirs es atraerte los problemas y nadiequiere traer cola que le pisen. II. Modificar slo lo estrictamente necesario para entrar y evitar ser detectado, o para poder acceder al sistemaen otras ocasiones. III. No hackear buscando venganza ni por intereses personales. IV. No hackear sistemas de gente que no tenga muchos recursos monetarios. Muchos han trabajado duramentepara comprarse una computadora como para que venga un chico listo y les tumbe el sistema. Para ellos esdifcil reponerse de un ataque fuerte. V. No ataques sistemas de organismos poderosos o de empresas que s puedan darse el lujo de gastar dinero yrecursos en buscarte. VI. Puedes odiar a tu compaa proveedora de Internet, pero nunca tratar de fastidiarla. VII.No hackees dependencias del gobierno. Si alguien tiene los recursos ilimitados para cazarte, son ellos y loharn. Esto es a diferencia de una compaa que tiene que lograr una ganancia, pagarle a sus empleados yjustificar sus gastos. Hay que recordar simplemente que la polica trabaja para ellos. VIII.No confes en nadie las hazaas perpretadas. Hubo hackers que fueron atrapados por haber confiado en susboquiflojas novias. S cuidadoso con quin compartes informacin. Las dependencias gubernamentales quepersiguen crmenes informticos se estn poniendo ms maosas. Hay que ser cauteloso. IX. Cuando charles en Foros o Chats, debes ser lo ms discreto posible ya que todo lo que escribas quedarregistrado (incluyendo tu direccin IP). La mayora de los hackers realmente geniales jams anuncian nadaacerca del sistema en el que estn trabajando actualmente sino es en el sentido ms amplio ("estoydedicndome a un UNIX", "Estoy trabajando en un COSMOS"), o algo genrico. Nunca dicen "Estoyentrando al sistema de Correo de Voz de Soriana Hypermart" o algo tan absurdo y revelador como eso.) X. No Dejes tu nombre real (o el de ningn otro), tu nombre de usuario verdadero o tu propio nmero detelfono en ningn sistema al que hayas accedido de manera poco legal. XI. S paranico. La caracterstica ms notable en los hackers es la paranoia. Nunca digas que eres un hacker.No duele almacenar todo oculto criptogrficamente en tu disco duro, o mantener tus anotaciones sepultadasen el patio trasero de tu casa o en la cajuela del coche. Es posible que te sientas un poco ridculo, es cierto,pero ms ridculo te sentirs cuando conozcas a Pancho Marancho, tu compaero de celda psicpata queelimin a hachazos a su familia porque le recriminaron que gastaba ms en cerveza que en comida. XII.No hay que dejar datos que se puedan rastrear hasta ti o relacionarse contigo (efecto Hansel y Gretel). XIII.Hay que estudiar mucho. El error de los novatos es querer hacer las cosas avanzadas de modo inmediato.Bien dicen que antes de correr hay que aprender a caminar primero. Esto tiene mucho de verdad. XIV.Debes actualizarte constantemente en virtud de que el mundo de la informtica siempre avanza. Igual quelos mdicos que deben estar al da con la nueva informacin, los hackers, incluso los de rango lite, tambindeben aprender sobre los nuevos sistemas que van apariciendo en el universo donde se desenvuelven. XV.No temas hacer preguntas. Para eso estn los hackers ms experimentados. Sin embargo, no esperes quetodo lo que preguntes sea contestado. Hay algunas cosas con las que un hacker incipiente como t nodebera involucrarse. Lo que logrars es ser atrapado y echars todo a perder para los dems o ambas cosas. XVI.Finalmente, tienes que ejercer el Oficio por tu cuenta. Podrs frecuentar los Bulletin Boards todas las vecesque se te antoje, podrs leer todos los archivos de texto en el mundo, pero no ser hasta que realmentecomiences a hacerlo que sabrs de qu trata todo esto. No hay emocin mayor que la de introducirse en tuprimer sistema (est bien, puedo pensar en un par de emociones mayores, pero t me entiendes.)18 19. Hackers y DelitoComo dijo el Merovingio, personaje de la triloga Matrix, basndose en una de las leyes de Newton:Toda accin es correspondida por una reaccin igual y opuesta. Accin y consecuencia. No puedeexistir una accin sin una consecuencia que pagar y esto tambin es cierto en materia deconocimiento hacker.Cualquier experto en cualesquier materia sabe que la informacin es poder y lo peligroso que puedellegar a ser el hacer mal uso de la informacin que se adquiere sin importar el medio por el que stase reciba. Todos los das, muchsimos especuladores en Wall Street ganan miles y miles de dlaressimplemente manipulando a su antojo la informacin, provocando miles de dlares en prdidas aquienes muerden su anzuelo.Crmen y CastigoEs importante saber que entrar a un sistema informtico ajeno, ya sea una computadora encendidaen un cuarto u oficina y sin bloqueo alguno, sin autorizacin del propietario tiene el mismo peso legalque entrar a una casa que no es nuestra. No importa que se hayan quedado las ventanas abiertas oque el cerrojo de la puerta no estuviera puesto. No interesa que solo hayamos entrado y salido sintocar nada de valor. El crimen es haber irrumpido en esa casa sin permiso y es un delito deallanamiento de morada.Hay que dejarlo bien claro y metrnoslo a la cabeza, an con todo y la tica que uno pueda poseer, laintrusin a sistemas ajenos es infringir la ley. Punto.La informacin permite el conocimiento y las habilidades propias para usar esos conocimientos sonlos que dan forma al Oficio del hacker. Captar la informacin, independientemente de su procedencia,analizarla y ponerla en accin es nuestra tarea. A mayor informacin, mayor conocimiento y porende, mayor poder. Pero cuando ese poder se desborda y se vuelve imposible para una personaponderar las acciones basadas en ese poder, es entonces cuando comienza una carrera en espiral ysin fin hacia el delito. Empieza un crculo vicioso del cual difcilmente se puede salir uno.Mientras ms fcil sea cometer un crimen, ms piensa uno que nunca nos van a atrapar, nos creemosms inteligentes que los dems y continuamos cometiendo una y otra vez los actos delictivos. Nosconvertimos en malhechores. Sobre todo cuando el delito cometido nos proporciona beneficiosfinancieros. Pero siempre hay alguien ms listo que nosotros y ah es cuando nuestra carrera termina.A veces, antes de comenzar.Un dicho reza Los criminales caen cuando se vuelven codiciosos. Y es cierto. Los criminales que hantenido un ponderado xito en sus andanzas se vuelven descuidados porque el exceso de confianzales nubla la cabeza con ideas locas y efectan acciones cada vez ms temerarias y van dejandohuellas detrs de ellos. Nada ms que la verdad.En estos das modernos donde ya nadie sabe en dnde est la lnea que divide lo bueno de lo malo nilo correcto y lo incorrecto, los delitos cibernticos estn siendo tipificados como ilegales y acreedoresa penas carcelarias en varios pases del mundo. Dificilmente encontraremos un pas donde los juecessean indulgentes con hackers maliciosos que roban informacin para beneficio propio o de terceros.Todos recordamos al pseudo-hacker londinense atrapado por la polica en agosto de 2008 poringresar al sistema de la NASA. Una de las reglas de los hackers es nunca entrar a un sistema quepertenezca a una entidad que posea los suficientes recursos fsicos y monetarios para perseguir alinfractor y sacarlo de la circulacin por algunos aos. 19 20. PenasLas penas pueden variar segn la modalidad y gravedad del delito y ser diferentes segn el pasdonde se origin el ataque. Existen penas que tras girar el auto de formal prisin, se le impone alinfractor un castigo que puede ir de uno a cinco aos, ms el hecho de que se le emitir una orden derestriccin y no podr acercarse a las inmediaciones de una computadora o dispositivo anlogo porun largo tiempo.Ya visto lo que a uno le espera, hay que evitar andar por ah intentando explotar vulnerabilidades oaprovechndose de datos obtenidos de manera fraudulenta. Hay que recordar tambin que la ley nocontempla el es la primera vez que lo hago. Aunque no es algo que, por ejemplo en Mxico, sepersiga de oficio, la simple denuncia de un ataque o intrusin basta para buscar, enjuiciar yencarcelar al valiente tras el monitor y el teclado.Trabajo en casaPara obtener conocimientos lo bsico es experimentar y se debe hacer en sistemas propios y no enajenos. Siempre se puede montar una pequea red casera bonita y barata. Lo ms bsico es colocaruna computadora viejita, de las de procesador 486 que se puede usar como caja de arena parahacer pruebas inofensivas. De esta manera no hacemos dao a nadie, ni violamos ninguna ley.En esta computadora se puede instalar el software que se quiere examinar y se accede a ella a travsde una computadora personal ms potente. De este modo es como hay que trabajar en procesos deprueba y error, de manera que por un lado se aprenda a descubrir fallos de seguridad y por el otroconfigurar y resolver los problemas de manera rpida y eficaz. De hecho, la mayora de los ejerciciospresentados en este documento fcilmente pueden ser practicados del modo mencionado.Existe en Internet mucha informacin detallada acerca de la instalacin de redes pequeas caserasque nos pueden ayudar.Obligaciones de las entidadesToda entidad oficial o comercial tiene la responsabilidad y la obligacin moral de proteger los datosconfidenciales de sus abonados, suscriptores o clientes por todos los medios posibles. Aqu no haycabida para la negligencia. Deben evitarse fiascos y escndalos como el de la revelacin de datos debsqueda por parte de AOL en agosto de 2006. 20 21. SEGUNDAPARTEAprendiendoelOficio21 22. Unas Palabras Sobre UNIX y LinuxDurante todo este documento haremos mencin a UNIX como el supremo sistema operativo delplaneta; esta aseveracin no carece de verdad y no hay hacker en el mundo que no sepa usarlo. Paraconvertirse en un hacker lite hay que aprender a usar UNIX, punto. Muchos de los conceptosutilizados aqu se pueden aplicar al entorno Linux, aunque con ciertas excepciones.Para hablar de UNIX no nos vamos a detener en contar su historia, que es muy interesante, pero quepuede leerse en la Wikipedia, sino de algunas de las caractersticas importantes que lo han hecho elsistema operativo ms completo y estable.Las caractersticas fundamentales del UNIX moderno son:Memoria Virtual:Memoria grande y lineal: Un programa en una mquina de 32 Bits puede acceder y usar direccionesde un rango de 4GB en un mquina de solo 4MB de RAM. El sistema solo asigna memoria autnticacuando le hace falta, en caso de falta de memoria de RAM, se utiliza el disco duro (swap).Multitarea (Multitasking):Cada programa con su propia idea de la memoria. Es imposible que un programa afecte a otro sinusar los servicios del sistema operativo. Si dos programas escriben en la misma direccin dememoria, cada uno mantiene su propia idea de su contenido.Multiusuario:Ms de una persona puede usar la mquina al mismo tiempo.Programas de otros usuarios continan ejecutndose a pesar de haber entrado en la mquina.Casi todo tipo de dispositivo puede ser accedido como un archivo.Existen muchas utilidades diseadas para que la salida de una pueda ser la entrada de la otra.Permite compartir dispositivos (como disco duro) entre una red de mquinas.En virtud de su naturaleza multiusuario, hay que tener en mente que nunca debe apagarse unamquina con UNIX, ya que una mquina apagada sin razn puede provocar la prdida de trabajos dedas, desaparecer los ltimos cambios de los archivos, a parte de ir disminuyendo el desempeo dedispositivos como el disco duro.ArquitecturaLa arquitectura del UNIX consiste en tres diferentes capas:1.- El kernel es el corazn del sistema operativo. Es el responsable de controlar el hardware y deasignar los diferentes recursos a los procesos.2.- El shell es el intrprete de comandos y es generalmente con quin interactan los usuarios.3.- Utilidades y aplicaciones.El KernelEl kernel, tambin llamado ncleo, es quin controla la computadora y hace que los recursos de lamisma estn disponibles a los procesos de los usuarios.Entre las diferentes tareas funcionales del Kernel estn: controlar el hardware, manejar losdispositivos de Entrada/Salida, soportar comunicaciones, asignar recursos del sistema, asignarmecanismos de proteccin, mantener la estructura dearchivos, etc.Los distintos programas que se ejecutan en un entorno UNIX obtienen servicios del Kernel mediantecomandos de bajo nivel llamados SYSTEM CALLS.22 23. El ShellEl shell o intrprete de comandos es el encargado de interactuar con el usuario y ejecutar losdistintos comandos solicitados por este.Sus caractersticas principales son: entomo de ejecucin configurable, que permite crear y modificarcomandos, prompts y otras utilidades; flujo flexible de datos, que facilita usar la salida de uncomando como entrada de otro; lenguaje de comandos de alto nivel, que incluye un conjuntocompleto de estructuras de control (if, do, while, etc.) y permite la programacin de la ejecucin delos comandos; redireccin de entrada/salida, permite guardar la salida de un comando a un archivo outilizar un archivo como entrada de un comando.Existen diferentes intrpretes de comandos dentro del UNIX, cada uno orientado a diferente tipo deuso o usuario:Bourne Shell (sh) : es el estndar y tiene gran facilidad de uso sobre todo para programacin.Job Sheli (dsh) : es una versin ampliada del Boume Shell, que incluye facilidades para control detrabajos en background.C-Shell (csh) : es similar al Bourne, pero tiene mayor flexibilidad para su uso interactivo. Proveemecanismos adicionales para guardar historia de comandos, reejecucin y sustitucin de comandos.Korn Shell (ksh) : nuevo intrprete de comandos, se est convirtiendo en el nuevo estndar. Estotalmente compatible con el Boume Shell, pero incorpora, entre otras, facilidades del C-Shell ycontrol de trabajos en background.Restricted Shell (rsh) : versin restringida del Boume Shell. Slo permite la ejecucin de unlimitado nmero de operaciones en el sistema y est diseado para manejar ms eficientemente laseguridad.Restricted C-Shell (rcsh) : versin restringida del C-Shell.Restricted Korn Sheli (rksh) : versin restringida del Kom Shell.Manejo de ProcesosLos procesos son manejados por el Kernel. Este va asignando a cada proceso una cierta cantidadde tiempo de CPU (time slice), luego lo suspende y permite a otro proceso la utilizacin de la CPU.La prioridad de cada proceso puede ser gestionada asignndole una mayor o menor prioridaddependiendo de la relevancia del proceso.LoginPara entrar, se presenta en la pantalla el mensaje de login. Debemos introducir nuestro nombre deusuario y el password. En Linux, principalmente si vamos a utilizar el modo Super Usuario (root) enuna terminal, los caracteres de que se compone el password nunca son desplegados en la pantalla, aexcepcin de los caracteres normales que tecleamos en otra parte que no sea el sistema de login.Estro es una reminisencia del login de UNIX. Una vez que se introdujo el nombre de la cuenta y lacontrasea, el sistema mostrar el mensaje de bienvenida e inmediatamente har su aparicin elprompt del intrprete de comandos (que tambin conocemos como terminal, shell o consola decomandos).Al principio se puede ver que la pantalla se parece mucho a la que muestra el DOS, sin embargo, loscomandos que se teclean para ser enviados al kernel del sistema son diferentes. UNIX, a diferencia dedel DOS, e inclusive de Winxx, UNIX da ms control del sistema al usuario.A cada entrada al sistema se le conoce con el nombre de sesin de usuario.El promptUna vez que se ha hecho el login, el shell muestra un prompt para indicar que est listo para ejecutarun comando. Este prompt es diferente de acuerdo a cada shell o a cada tipo de usuario. Adems elusuario puede variar el prompt de acuerdo a su preferencias o necesidades. 23 24. Los prompts ms usuales son:$ (usuario normal con Bourne Shell o Kom Shell)% (usuario normal con C-Shell)# (para super usuario root con cualquiera de los intrpretes de comandos)LogoutPara salir del sistema es necesario dar logout. Este depende tambin del shell que se est usando. Sise utiliza Boume Shell o Kom Shell se deben pulsar al mismo tiempo las teclas + osimplemente teclear el comando exit. En C-Sheli normalmente se introduce logout o exit. De estemodo termina nuestra sesin UNIX. Es tan importante el logout porque si olvidamos cerrar la sesin,cualquier persona puede tener acceso a nuestros archivos y hacer modificaciones indeseables.Las terminales pueden ser solo de texto o de tipo grfico. El de tipo grfico consta de pantalla grfica,teclado y ratn. Dicha pantalla suele ser de alta resolucin y a menudo en color. Aunque al comenzarla sesin, suelen estar en modo texto, una vez iniciada sta, se puede trabajar en modo grfico. Eneste modo se pueden emplear ventanas que emulan el comportamiento de un terminal de texto.Almacenamiento de ArchivosLos sistemas de archivos que son comunes a todas las mquinas son usualmente:/home Espacio reservado para las cuentas de usuarios/bin, /usr/bin Binarios (ejecutables) bsicos de UNIX. El directorio /usr/bin es el lugar a donde vanlos archivos binarios compilados para que sean invocados desde cualquier parte del shell. Porejemplo, tras compilar el NetCat, su binario ejecutable se coloca ah manualmente y desde cualquierdirectorio en que estemos, simplemente abrimos una terminal (en Linux debemos hacerlo conprivilegios de administrador root) y teclemos el nombre del binario: nc./usr/local Zona con las aplicaciones no comunes a todos los sistemas UNIX, pero no por ello menosutilizadas. Es en esta zona donde se pueden encontrar cosas como Informacin relacionada conalguna aplicacin (en forma de pginas de manual, texto o bien, archivos Postscript), archivos deejemplo, tutoriales, etc.Organizacin de archivosTipos de archivos: UNIX tiene tres tipos diferentes de archivos (mas algunos otros que no son detan clara identificacin). Cada uno de ellos son nombrados de acuerdo a la misma convencin, peroson manejados internamente de muy diferente manera.Los distintos tipos son:Archivos regulares: son aquellos archivos comunes donde se guarda la informacin. UNIX nodistingue especialmente a estos archivos entre s, salvo por el uso que se le vaya a dar. Dentro deellos podemos encontrar programas ejecutables, bibliotecas de programas objeto, bases de datos,archivos de texto, etc.Directorios: los directorios son archivos que contienen la tabla de contenido o lista de los archivosde un Filesystem de UNIX. Asociado a cada entrada en esta tabla est el nombre del archivo,permisos de acceso, tamao, fecha de creacin, identificacin del dueo, etc.Archivos Especiales: identifican dispositivos de hardware y drivers de software.ArchivosEn un sistema computacional, los datos se encuentran en archivos que contienen informacin. Paraorganizar toda la informacin se dispone de una entidad denominada directorio, que permite elalmacenamiento en su interior tanto de archivos como de otros directorios. Se dice que la estructurade directorios en UNIX es jerrquica o en forma de rbol, debido a que todos los directorios nacen enun mismo punto (que llamamos directorio raz). De hecho la zona donde uno trabaja es un nodo deesa estructura de directorios, pudiendo uno a su vez generar una estructura por debajo de ese punto. 24 25. Un archivo se encuentra situado siempre en un directorio y su acceso se realiza empleando el caminoque conduce a l en el rbol de Directorios del Sistema. Este camino es conocido como el PATH. Elacceso a un archivo se puede realizar empleando:Path Absoluto: Aquel que empieza con "/", por ejemplo : /etc/printcapPath Relativo: Aquel que NO empieza con "/", por ejemplo : examples/rc.cirLos nombres de archivos y directorios pueden emplear hasta un mximo de 255 caracteres, cualquiercombinacin de letras y smbolos (sin embargo, el caracter "/" no se permite). Los caracteres comodnpueden ser empleados para acceder a un conjunto de archivos con caractersticas comunes.Hay que advertir que UNIX distingue entre letras maysculas y minsculas (lo que se conoce eningls como case sensitive) de tal forma que un archivo llamado gerryson es distinto que uno llamadoGerrYsOn.El signo de asterisco * puede sustituir cualquier conjunto de caracteres, includo el . (punto); y elsigno ? para indicar cualquier carcter individual, tal y como se hace en el DOS siempre teniendoen cuenta que UNIX no es DOS.DirectoriosLa forma de organizar archivos en UNIX es por medio de directorios. Un directorio es una lista dearchivos, donde cada uno de ellos tiene un nombre nico. Los directorios se utilizan para clasificar losarchivos de acuerdo a diferentes tipos o categoras. Aunque no hay reglas a este respecto, a efectosde tener la informacin bien organizada y en forma clara, se recomienda agrupar los diferentes tiposde archivo en directorios distintos (por ejemplo los programas fuentes en uno, los ejecutables en otro,los datos en un tercer directorio y as por el estilo).Un directorio puede contener otros directorios. Las reglas para el nombrado de los directorios son lasmismas que para archivos. Los directorios son manejados por comandos especiales.El directorio HOME: cada usuario tiene un "home directory" (o directorio de inicio) que es eldirectorio donde el sistema lo posiciona cuando hace el login. Los directorios "home" de los usuariosestn generalmente localizados bajo el directorio /u o /usr. Si bien esto no es obligatorio, es unaprctica extendida. Hay que comentar que es necesario que el nombre del directorio home sea igualo contenga el nombre del login del usuario. Es el administrador del sistema quien define al dar de altaa un nuevo usuario cul va a ser su home directory.Estructura tpica de directorios en UNIXSi bien no hay una estructura de directorios fija en UNIX, en general en todos los sistemas seconserva una estructura tpica y muy semejante una parte. Hay determinados directorios quesiempre existen y son utilizados por los distintos comandos para buscar informacin necesaria parasu ejecucin. Estos son: /etc, /bin, /dev, /lib, /usr/lib y /usr/bin.Dot DirectoriesCada directorio tiene asociado dos nombres especiales llamados "." (punto) y ".." (punto punto). Cadavez que se crea un directorio, automticamente se le incluyen estos dos.El "." es el nombre del propio directorio. De este modo, tomando el ejemplo anterior, datos/paiseses equivalente a ./datos/paises.El ".." es el nombre del directorio inmediatamente superior. Siguiendo con el ejemplo anterior, si eldirectorio de trabajo es /u/usrl/datos, entonces ../progs/program.c se refiere al archivo que tienecomo path absoluto /ulusrl/progs/program.c. 25 26. Los UsuariosUNIX y Linux son sistemas operativos multiusuario. Cada usuario generalmente tiene su carpeta deusuario en /home/usuario. Por defecto slo puede escribir, modificar y borrar archivos dentro de estacarpeta. Ningn otro usuario (excepto root) puede acceder a los archivos que hay en este directorio,ni siquiera puede ver cules son. Este usuario -por defecto- puede leer en el resto de las carpetas quehay en el sistema de archivos excepto en la de root y las de otros usuarios. Todos los programasrecuerdan las preferencias de cada usuario, e incluso un usuario puede instalar un programa sin quelos otros usuarios tengan acceso a l; aunque instalando los usuarios tienen muchas limitacionescomo veremos despus. Un usuario no puede causar por este motivo dao al sistema ni cambiar suconfiguracin de ninguna forma.Usuario rootEn cualquier sistema UNIX, root es "el que todo lo puede", el todopoderoso. Es la excepcin queconfirma la regla, es el superusuario de estos sistemas. Cuando se hace un login como root en unamquina GNU/Linux, siente el poder bajo tus teclas. Podemos hacer todo lo que nos pase por lacabeza. Tenemos acceso a todo el sistema. Pero cuidado: una equivocacin sera fatal. Un simpleerror podra colapsar todo el sistema y los preciados datos y configuraciones que tengamos en l. Poresto, para tareas normales siempre entraremos al sistema como un usuario normal por los riesgosque se corren trabajando como root. Adems nunca usaremos Internet como root. Incluso algunosprogramas no permiten ser ejecutados por root por motivos de seguridad. Como ya se habradivinado, la contrasea de root se la guarda uno en la cabeza y se asegura que no se le olvida, y porsupuesto se preocupa uno de que nadie pueda acceder a ella en ningn archivo o de que no la vencuando la escribimos. Si se cree que la han podido adivinar o estn cerca, se cambia. Cuanto mslarga, tediosa y sin sentido sea esta contrasea, ms seguro estar nuestro sistema.Una anotacin a parte es que cuando se utiliza un Live CD, para probar las caractersticas de unadistribucin Linux antes de instalarlo en el sistema, hacemos uso del sistema como root, pero solo esen esta modalidad, ya que siendo instalado el sistema en nuestro disco duro, pasamos a ser unusuario normal.Permisos y PrivilegiosTodos y cada uno de los archivos y directorios del rbol jerrquico que monta nuestro sistema Linuxtienen permisos o privilegios. Estos permisos dicen, para cada usuario del sistema, si puedeejecutarlo, si puede ver su contenido, o inclusive si puede borrarlo o modificarlo. Del mismo modo,cada elemento del sistema de archivos tiene un dueo. Por defecto, este dueo del elemento (tantodirectorio como archivo) tiene acceso total a l y puede realizar todas las acciones posiblespermitidas. El resto de usuarios pueden leer y ejecutar este elemento por defecto aunque todo estose puede cambiar para cada uno de los elementos.Todos los archivos de las carpetas de sistema y configuracin suelen tener a root como propietario.Los de la carpeta personal de cada usuario tienen a ese usuario como propietario, pero el resto deusuarios normales no tienen ningn permiso sobre estos elementos, y lo mismo ocurre con la carpetade root (que se encuentra en la raz, en /root).Un archivo tiene distintos niveles de permisos: lectura, escritura y ejecucin. Los permisos sobre unarchivo (o directorio) pueden ser distintos para el usuario dueo, para los usuarios pertenecientes algrupo dueo, y por ltimo para el resto de los usuarios del sistema. As, podemos hacer que elusuario dueo puede leer, escribir, y ejecutar un archivo; que el grupo dueo solo pueda leerlo, y queel resto de usuarios del sistema no tengan ningn privilegio sobre l, por ejemplo.Una buena asignacin de dueos de elementos junto con una poltica adecuada de permisos sobreestos elementos, permiten obtener dos cosas: un sistema multiusuario, y un sistema seguro.26 27. Si usamos el comando ls -la en un directorio que tenga algunas cosas veremos algo como:gerry@Orianna:~$ ls -la Documents/Linuxdrwxr-xr-x 2 gerry gerry 328 2008-10-13 15:11 .drwxr-xr-x 17 gerry gerry 1040 2008-12-26 09:29 ..-rwxr-xr-x 1 gerry gerry 4912 1926-01-17 07:51 Linux CD Live.txt-rwxr-xr-x 1 gerry gerry 121344 1926-01-25 07:52 LINUX-UNIX-01.doc-rwxr-xr-x 1 gerry gerry 35328 1926-01-23 00:06 Shell Scripts.docSi observamos el campo de ms a la izquierda del listado, podemos ver cuatro grupos. El primero esde un caracter solamente. Este caracter es una d si el elemento listado es un directorio, una l si elelemento es un enlace, y un guin - si el elemento es un archivo normal.A continuacin hay tres grupos. Cada uno de estos grupos tiene tres letras, pudiendo ser estas rwx opudiendo ser sustituidas en algn caso por un guin. El primero de estos grupos indica los permisosque tiene sobre el elemento listado su usuario dueo; el segundo grupo indica los permisos quetienen sobre el elemento los usuarios que pertenezcan al grupo dueo, y el tercer grupo indica lospermisos que tienen sobre el elemento el resto de usuarios del sistema.En el caso de un archivo o un enlace, la r en cualquiera de estos "grupos" indica que se tienenpermisos de lectura (read) sobre el elemento. La w indica que se tienen permisos de escritura (write)sobre el elemento, y la x indica que se tienen permisos de ejecucin (Execute) sobre el elemento. Unguin sustituyendo a cualquiera de estas letras indica que no se tiene el permiso al que estsustituyendo. As, veamos algn ejemplo del listado anterior:-rwxr-xr-x 1 root root2872 Jun 24 2002 archEs un archivo porque su primer caracter es un guin. Su usuario dueo es root, y su grupo dueo esel grupo root tambin. root tiene todos los permisos sobre l: rwx, esto quiere decir que puede leer elarchivo arch, escribir en l y ejecutarlo. El grupo root slo lo puede leer y ejecutar, y el resto deusuarios del sistema, tambin slo pueden leerlo y ejecutarlo.El caso de los directorios es un poco distinto. Los permisos rwx para un directorio, indican: la r y la xpara el caso de un directorio difcilmente se entienden separadas. Son necesarias para que unusuario pueda "examinar" ese directorio, ver lo que tiene y navegar por l. La w indica que el usuarioque posea este permiso puede colocar nuevos archivos en este directorio; as como tambin borrarlo.Lo ms comn es que los directorios que deban poder ser "examinados" por todos los usuariostengan permisos r-x en el tercer grupo de permisos. Pero con estos permisos no podrn colocar nadadentro de ese directorio, aunque s podrn hacerlo dentro de un directorio de nivel inferior en el ques tengan permisos de escritura.Consideremos si tenemos, por ejemplo, un directorio llamado superior/ y dentro de ste tenemos undirectorio llamado personal/, y que un usuario tienen permisos de escritura en este segundodirectorio, que es de nivel inferior; para poder acceder a l y escribir, este usuario debe poseer comomnimo permisos r-x en el de nivel superior, esto es, en superior/.Por otra parte, esto es absolutamente lgico: cmo va a poder escribir un usuario en un directorio sino puede llegar hasta l? Esto mismo tambin se aplica para la lectura. Por ejemplo, el servidor webno podr servir un directorio a la Internet si no dispone de permisos r-x para los directorios superioresa l. En la seccin de comandos veremos como asignar los permisos con el comando chmod. 27 28. Comandos en UNIXEl sistema operativo UNIX tiene poco ms de 200 comandos, pero desafortunadamente, no todos semanejan en distribuciones Linux. El administrador y cada uno de los usuarios pueden crear suspropios comandos escribindolos en algn lenguaje de programacin (C o C++, etc.) o combinandolos ya existentes dentro del UNIX con programas shell scripts.Tecleando ComandosNormalmente despus del prompt se introduce un comando. Cada comando realiza una tareaespecfica, como ejecutar una aplicacin, imprimir un archivo, etc. Los comandos se introducen acontinuacin del prompt seguidos de la tecla ; por ejemplo:$ ls -Comando que lista el contenido de un directorio.Los comandos muestran una ayuda cuando se teclean sin parmetros u opciones. La mayora de loscomandos tienen su manual de uso, con ms informacin que la que viene con la ayuda del mismo, yse invoca con el comando man empleando como parmetro el comando a buscar.$ man lsEsta estructura nos muestra el manual de uso del comando ls.Ya mencionamos que UNIX detecta maysculas y minsculas, de tal forma que ls es diferente de LS.Sintaxis, argumentos y opcionesLa sintaxis de los comandos de UNIX est estandarizada por lo que se deben cumplir ciertas normassencillas. La sintaxis es:comando [opciones] [argl] [arg2] [arg3]Se componen normalmente de tres partes:El comando propiamente dicho o sea su nombre. Las opciones (tambin llamadas parmetros oflags), que definen diferentes modos o formas en que va a trabajar el comando. De acuerdo a lasnormas de UNIX las opciones deberan ser una letra precedida de un guin (-), aunque hay algunoscomandos que no respetan esta norma.Se pueden poner, si se requieren, ms de una opcin para la ejecucin de un comando y se colocantodas juntas despus de un solo guin:$ ps -au donde a es una opcin y u es otra.Los argumentos, que determinan los distintos datos que va a utilizar el comando, como ser el nombrede un archivo o un directorio. Las opciones y argumentos pueden no ser necesarios, de hecho haycomandos que slo utilizan ya sea opciones o argumentos o incluso ninguno de ellos.Ejemplos:Is comando sin argumentos ni opcionesls -la comando con opcionesls *.dat I.bak comando con argumentosIs -ri *.dat comando con opciones y argumentos.Los programas ejecutables que usaremos en este documento, tras ser compilados, se usan del mismomodo que los comandos de UNIX o Linux.28 29. A continuacin mostramos algunos de los comandos ms usados en UNIX. Hay que considerar queexisten diversos tipos de UNIX dependiendo del frabricante, as, tenemos:SunOS Unix y Solaris de Sun MicrosystemsDIGITAL Unix de CompaqSGI Irix de Sillicon GraphicsY algunos comandos podran desempearse de modo un tanto diferente entre cada uno de ellos. Lamayora de los comandos son comunes a Linux. Aqu nos entretendremos con ellos.Antes de comenzar a practicar con los comandos, debemos asegurarnos que estamos en el directoriohome, es decir, aquel que nos asign el sistema durante la instalacin (si es Linux) o el administradora la hora de crear la cuenta, ya que en otro directorio probablemente no tengamos permisos deescritura. Una forma de hacer esto es tecleando el comando cd (recordemos que los comandos,mientras no se indique lo contrario, sern tecleados en minsculas) en la consola de comandos. Estonos mover al directorio home.~$ cdgerry@Orianna:~$Donde gerry es el directorio home. Orianna es el hostname o nombre de la maquina. Si tecleamos elcomando hostname, nos dar el nombre de nuestra mquina.Con el comando pwd nos informa la localizacin del directorio en el sistema de archivos. No hay queconfundir el nombre del comando con la abreviatura comn del trmino password.$ pwd/home/gerryUsamos el comando touch para crear un archivo vaco. Si el archivo indicado no existe en el sistema,se crear uno vaco; en caso de existir, se modifica la fecha del ltimo acceso al archivo.$ touch temparchivoAhora usaremos el comando ls para verificar que lo hemos creado:$ ls temparchivoCuando introducimos el comando ls sin opciones, obtendremos un listado de todos los archivos deldirectorio donde nos encontremos y si lo tecleamos usando como argumento el nombre del archivo,nos mostrar slo el nombre de dicho archivo si este existe.Se usa el comando cp para copiar el archivo que creamos a uno que llamaremos copyarchivo:$ cp temparchivo copyarchivoAhora necesitamos ver ambos archivos y lo hacemos empleando el comodn "*". De este modo, elcomando ls *archivo nos listar ambos archivos (y cualquier otro archivo del directorio cuyo nombrefinalice con archivo):$ ls *archivocopyarchivo temparchivoNtese que los archivos se listan en riguroso orden alfabtico (maysculas y nmeros preceden a lasletras minsculas).29 30. Utilizamos el comando cp con la opcin -r para copiar directorios y los archivos que contienen:$ cp r directorio directorio2Tambien podemos mover y renombrar archivos (al mismo tiempo) echando mano del comando mv.En este ejemplo, usamos el comando mv para renombrar temparchivo a nadaarchivo:$ mv temparchivo nadaarchivoVerifiquemos ahora el cambio con el comando ls y el comodn:$ ls *archivocopyarchivo nadaarchivoPara renombrar o mover directorios se usa el mismo comando.Se usa el comando rm para eliminar archivos. En este ejemplo, borraremos copyarchivo:$ rm copyarchivoAdvertencia: Ningn archivo borrado podr ser recuperado a menos que exista algn respaldo. Poresta razn, algunas personas prefieren crear un alias del comando o un script con opciones quepermitan verificar la verdadera intencin del usuario antes de enviar un archivo al olvido.El comando cd nos permite movernos por la jerarqua del sistema de archvos:$ cd /tmpSi tecleamos slo el comando cd, volveremos a nuestro directorio home.Para crear un directorio lo haremos con el comando mkdir seguido del nombre del nuevo directorio:$ mkdir newdirLos Comandos su y sudoEl comando su (Set User) est relacionado con el login en el sistema y con los permisos. El usoprincipal de este comando es que un usuario normal adquiera los permisos de otro usuario delsistema (incluido root) siempre y cuando conozca su password.Es muy comn que si somos nosotros el "dueo" de la contrasea de root, y por tanto la personaencargada de la administracin del sistema, trabajemos normalmente como usuario normal pormotivos de seguridad. Pero podemos necesitar convertirnos en root para alguna tarea especfica:reiniciar el servidor web, modificar la configuracin del sistema... para despus volver a "ser" nuestrousuario normal.Cuando cambiamos nuestra naturaleza a root, el smbolo del prompt $ cambia a #gerry@Orianna:~$ suPassword: [aqu el password]root@Orianna:/home/gerry#El comando su asume que el usuario actual quiere adquirir los permisos de root. Si proporcionamos elpassword adecuado ya los tendremos. Podemos ahora hacer las tareas de administracin quenecesitemos. Tecleando exit volveremos a "ser" nuestro usuario normal.30 31. su nos permite tambin adquirir los permisos de otros usuarios del sistema siempre que tengamos supassword:yo@maquina $ su otrousuarioPassword: [ Password de "otrousuario" ]otrousuario@maquina $otrousuario@maquina $ exityo@maquina $Existe una diferencia entre su usuario y su - usuario y es que, mientras que con el primer comandosimplemente adquirimos los permisos de usuario, con el segundo comando es como si estuvisemoshaciendo login desde el principio con usuario, as, todas las variables de entorno y dems serncargadas igual que si hubisemos hecho un verdadero login. Esto tambin se aplica para root (su -)La shell que se arranca mediante la segunda forma se llama shell de login. Salimos de ellas tambincon exit.El usuario root puede usar su o bien su - sin necesidad de introducir ningn password para adquiriren un shell los permisos de cualquier usuario del sistema.sudo (SUperuser DO) es una herramieta que permite otorgar a un usuario o grupos de usuariosnormales, privilegios para ejecutar algunos comandos como root (o como otros usuarios) sinnecesidad de conocer su password. Es posible que no est instalado en la distribucin de Linux ytengamos que instalarlo nosotros mismos.Si quien invoca el comando es root no requerir teclear el password. De otro modo, sudo requiereautenticacin del usuario con un password. En este contexto, se habla del password del usuario, no elde root. Una vez que el usuario ha sido autenticado, podr hacer uso de sudo por 15 minutos, que esel tiempo por defecto, a menos que se elimine esa restriccin desde el archivo de configuracinsudoers que se enciuentra en el directorio /etc/sudoers.El archivo /etc/sudoers tiene, en los casos ms simples, dos partes: una parte de alias y otra parte dereglas. La parte de alias, lo que hace es "agrupar" de alguna manera, listas de usuarios y listas deaplicaciones (incluso listas de mquinas de una red). La parte de reglas define qu grupos deusuarios pueden usar qu grupos de programas con permisos distintos de los suyos y en qucondiciones pueden hacerlo.Hay que notar que el archivo /etc/sudoers se edita con el comando visudo siendo root, por razonesde seguridad. sudo no altera la estructura de permisos del sistema de archivos de Linux, es decir, pormuchos cambios que hagamos en el archivo de configuracin de sudo, los permisos de los programasseguirn siendo los mismos. La diferencia est en que estos "permisos especiales" que estamosotorgando a algunos usuarios se aplican cuando el programa que se quiere ejecutar se invocamediante sudo; as, un usuario que quiera ejectar el programa cdrdao con estos permisos especialesdeber hacerlo as:$ sudo cdrdao [opciones]Esto es lo ms bsico que necesitamos saber sobre sudo para ejecutar algunos comandoscmodamente como usuario normal al tiempo que mantenemos la seguridad del sistema.Notemos que el comando sudo es una herramienta que nos permite configuraciones mucho mscomplejas que las que hemos visto aqu; siempre debemos leer sus pginas del manual del sistema(man sudo y man sudoers), o visitar su pgina web.31 32. Comando chmodPara cambiar los permisos de los elementos del sistema de archivos, usamos el comando chmod.# chmod -R ABC elementoLa opcin -R es opcional, y cumple exactamente la misma funcin que en el comando chown. A B y Cson un nmero de una cifra respectivamente. El primer nmero representa los permisos que estamosasignando al usuario dueo , el segundo los del grupo dueo, y el tercero los del resto de usuarios.Cada una de las cifras posibles corresponde con los permisos del usuario en binario; aunque es msfcil aprenderse qu hace cada cifra que pasar la cifra a binario cada vez que queramos cambiar lospermisos a algo. Algunos ejemplos:El 4 en binario es 100, por tanto, los permisos que otorga son r--, esto es, slo lectura.El 5 en binario es 101, por tanto, los permisos que otorga son r-x, lectura y ejecucin.El 6 en binario es 110, por tanto, los permisos que otorga son rw-, lectura y escritura.El 7 en binario es 111, por tanto, los permisos que otorga son rwx, lectura, escritura y ejecucin.Los permisos de ejecucin slo se otorgarn a programas (binarios) o scripts; ya que hacerlo a losarchivos normales carece por completo de sentido. As, un comando de ejemplo podra ser:$ chmod 640 mitextoEste comando asignara permisos de lectura y de escritura al usuario propietario, y permisos delectura a los usuarios del grupo dueo, y ningn permiso al resto de usuarios para el archivo mitexto.Podemos ir haciendo pruebas combinando los distintos nmeros y ver los permisos que otorganmediante ls -l. Recordemos que los directorios que deseemos que puedan ser "examinados" debentener permisos de "ejecucin" por parte de los usuarios que uno quiera que puedan acceder a ellos,por ejemplo podramos asignarlos con el nmero 5. A los que adems quisieramos que puedan creararchivos en ese directorio, podramos otorgarles esos permisos mediante el nmero 7. Con la opcin-R se puede hacer que los permisos se asignen de modo recursivo a un directorio y a todo lo que haydebajo de l.Un modo muy comn para los directorios que deban ser accesibles por todo el mundo es 755, deforma que el usuario dueo pueda adems escribir. Los directorios /home/usuario suelen tenerpermisos 750 para que el resto de usuarios no puedan acceder al directorio de trabajo de un usuario.Como advertencia hay que decir que una mala asignacin de permisos puede dar lugar a ataqueslocales. Verdad, si dejamos a algunos usuarios permisos para modificar partes importantes delsistema de archivos es llamar a gritos a los problemas. Siempre hay que tener cuidado cuando secambien permisos, sobre todo si somo root.Un modo muy comn de aadir permisos de ejecucin a un archivo (generalmente un script) paratodos los usuarios del sistema, sin tener que estar recordando qu nmeros otorgan permisos deejecucin, es usar la opcin +x de chmod, por ejemplo:$ chmod +x mi_script.shEsta forma de asignar permisos es extensible, y segn los casos, ms sencilla que la de los nmeros.En general es as:$ chmod ABC archivoDonde A es u (usuario), g (grupo) o bien a (todos.) Cuando es a, se puede omitir.B es + o bien - , indicando el primero aadir un cierto permiso y el segundo quitarlo.C es r (lectura), w (escritura) o bien x (ejecucin.)32 33. Ejemplos:$ chmod g+w archivo$ chmod -r archivo$ chmod u+x archivoEl primer comando otorga permisos de escritura sobre archivo a los usuarios del grupo al que elarchivo pertenece.El segundo comando elimina los permisos de lectura sobre archivo a todo el mundo.El tercer comando da al usuario dueo de archivo permisos de ejecucin.Nota: Muchos otros comandos tiles los iremos viendo conforme se lea el documento y se detallenlas utileras que vayamos necesitando.Instalacin de utilerasCuando tengamos que instalar herramientas en nuestro sistema, utilizamos una serie de comandospara poder empezar a utilizar los programas. Regularmente el software lo descargamos empaquetadoen archivos llamados tarball. Estos archivos lo veremos ms adelante en este captulo.Instalar software adicional en Linux es sencillo, sin embargo, dada la diversidad de distribuciones ysistemas de empaquetado del software las utilidades que manejan dichos paquetes son distintas.Mtodos De InstalacinAl instalar software adicional para nuestra distribucin, nos podemos encontrar con varios sistemasde paquetes. Existen cuatro sistemas de paquetes en todas las distribuciones de Linux: RPM, DEB,TGZ y EBUILD. Los tres primeros son binarios, y el cuarto se trata de meta-paquetesLos paquetes binarios contienen el software ya en cdigo de mquina y pondrn los programas yarchivos de configuracin en el sitio adecuado del rbol de directorios para que los otros paquetespuedan encontrarlos. Los sistemas de paquetes binarios se apoyan en una "base de datos" queguarda qu paquetes estn instalados y cules no, la versin de estos, etc... As, cuando instalamosun paquete binario, tal como un RPM o un DEB, adems de crearse los archivos necesarios para queel software pueda funcionar, se aade a esta base de datos una entrada diciendo que el paquete hasido instalado y asi mismo se guarda su nmero de versin.Conforme tratemos con estos sistemas de paquetes podr ocurrir que los datos de la base de datosde paquetes no coincidan con lo que realmente hay en la mquina. Esto puede ocurrir mediante elborrado accidental de archivos sin desinstalar adecuadamente un paquete, o conflictos de versiones.En cualquier caso disponemos de opciones que permiten instalar o desinstalar paquetes, incluso si lainformacin de la base de datos de paquetes no es del todo coherente. Adems, existen comandospara "reconstruir" o arreglar la base de datos de paquetes. Las pginas man de los programas que semencionan a continuacin nos aportarn toda la informacin que necesitemos al respecto.Adems de los paquetes de nuestra distribucin disponemos de uno