Haxcra10

Embed Size (px)

Citation preview

  • 8/14/2019 Haxcra10

    1/68

  • 8/14/2019 Haxcra10

    2/68

    EDITORIAL: EDITOTRANS S.L.

    C.I.F: B43675701

    Director EditorialI. SENTIS

    E-mail [email protected]

    Ttulo de la publicacinLos Cuadernos de HACK X CRACK.

    Nombre Comercial de la publicacnPC PASO A PASO

    Webwww.hackxcrack.com

    Deposito legal: B.26805-2002Cdigo EAN: 8414090202756Cdigo ISSN: En proceso

    Director de la PublicacinJ. Sents

    [email protected]

    Diseo grfico:J. M. Velasco

    Contacto diseador [email protected]

    RedactoresAZIMUT, ROTEADO, FASTIC, MORDEA, FAUSTO,ENTROPIC, MEIDOR, HASHIMUIRA, BACKBONE,ZORTEMIUS, AK22, DORKAN, KMORK, MAILA,TITINA, SIMPSIM... ... ... ... ...

    Contacto [email protected]

    ColaboradoresMas de 130 personas: de Espaa, de Brasil, deArgentina, de Francia, de Alemania de Japn yalgn Estadounidense.

    Contacto [email protected]

    ImprimeI.G. PRINTONE S.A. Tel 91 808 50 15

    DistribucinCoedis S.L. Avda. de Barcelona 225. Molins de Rei.

    Barcelona. Tel 93 680 03 60 FAX 93 668 82 59WEB: www.coedis.com (mapa de distribucin en laweb)

    TELFONO DE ATENCIN AL CLIENTE: 977 22 45 80

    HORARIO DE ATENCIN: DE 9:30 A 13:30(LUNES A VIERNES)

    Copyright Editotrans S.L.NUMERO 10 -- PRINTED IN SPAINPERIOCIDAD MENSUAL

    PP

    AA

    SS

    OO

    PP A S O A S Oaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

  • 8/14/2019 Haxcra10

    3/68

    PC PASO A PASO N 10 Pgina 3

    DECLARADECLARACICION DE INTENCION DE INTENCIONESONES

    PARA "LOS OTROS":

    1.- La intencin de la presente publicacin NO ES fomentar la piraterainformtica ni la delincuencia en la Red.2.- Cualquier texto publicado es VALIDADO por nuestra Asesora Jurdica,

    por lo que advertimos a cualquier persona, empresa u organizacin de lainutilidad de cualquier iniciativa jurdica en nuestra contra. Aun as, en casode cualquier iniciativa en contra de esta revista, deber ser debidamentepresentada y resuelta en la Razn Social que figura en nuestros documentosde constitucin.3.- Esta publicacin no se hace responsable del mal uso de los conocimientosque se exponen.4.- Esta publicacin NO FACILITAR los datos de nuestros colaboradoresni el origen de nuestros conocimientos salvo ORDEN JUDICIAL y, aun as,advertimos que algunos de esos colaboradores NO SON CONOCIDOS masque por sus NICKS (alias). Por ello, correr a cargo de los organismospertinentes su descubrimiento.5.- Esta publicacin NO SE HACE RESPONSABLE ni tienen por qu COMPARTIR

    las opiniones personales vertidas por sus colaboradores, por lo que NOSOMOS RESPONSABLES de las mismas.6.- Cualquier texto publicado estar bajo las protecciones de DERECHOSDE AUTOR y no se permite su copia, publicacin, modificacin o distribucinsin antes obtener el permiso de esta editorial. De este punto quedan exentosaquellos textos que han sido obtenidos de terceros y/o que estn sujetosa otras licencias (ya sean por parte de su autor o por terceros).7.- Si desean ponerse en contacto con nuestro departamento jurdico,rogamos enviar mail a [email protected]

    PARA NUESTROS LECTORES:

    Como podris ver, esta no es una revista mas, por primera vez tenis ante

    vosotros una publicacin LIBRE que os ofrecer la posibilidad de explorarla red tal y como debe explorarse ;)

    Esta publicacin responde a la pregunta mas veces expuesta en LA RED:Como puedo ser un hacker? Bien, ahora seguro que muchos ya se estn"sonriendo" y pensando lo ilusos que somos al intentar "eregirnos" en"portadores de LA LUZ", pensando que seremos una "escuela de lamers"y similares a otras publicaciones que, entre sus 100 pginas de revista solocontiene 5 de "material utilizable" (si es que puede llamarse as).

    Pues NO, lo siento, vosotros seris nuestros jueces y, llegado el caso,NUESTROS VERDUGOS.

    Nuestro objetivo es: ACABAR CON LA BASURA DE LA REDCABAR CON LA BASURA DE LA REDACABAR CON LA BASURA DE LA RED (lamers y dems"esencias") con el nico mtodo que conocemos: LA EDUCACINA EDUCACINLA EDUCACIN y con unnica bandera que ser por siempre nuestra firma: SOLO EL CONOCIMIENTOOLO EL CONOCIMIENTOSOLO EL CONOCIMIENTOTE HACE LIBREE HACE LIBRETE HACE LIBRE.Estos son nuestros pilares: LA EDUCACIN Y EL CONOCIMIENTOA EDUCACIN Y EL CONOCIMIENTOLA EDUCACIN Y EL CONOCIMIENTO. Para serun HACKER (maldita palabra mal entendida por unos y peor utilizada porotros) solo hace falta dos cosas: curiosidad y medios, a partir de ahora la

    curiosidad deberis ponerla VOSOTROS, porque los medios los facilitaremosNOSOTROS. En las siguientes lneas os descubrimos cmo podremosconseguir nuestros objetivos y definimos algunas de las palabras que mshan sido violadas y retorcidas en su significado.

    Hacker: Este trmino ha sufrido a lo largo de su corta historia una horribleconspiracin perpetrada por la ignorancia de los medios, eso quepersonalmente llamo "periodismo de telediario" (en clara alusin a losridculos artculos que no hacen mas que intoxicar nuestra percepcin delas cosas e insultar nuestra inteligencia). Ese tipo de periodismo unido a"otros poderes", desde los monopolios que deben justificar su incompetenciahasta los gobiernos que deben justificar sus intereses ocultos pasando porla industria del cine (normalmente demonolgica) y los medios informativos"de masas".

    Pues bien, HACKER no es mas que una persona que posee conocimientos

    avanzados sobre una materia en concreto, normalmente relacionados conla tecnologa aunque ni mucho menos limitado a ello. Ponen sus aptitudesal servicio de un nico objetivo: EL CONOCIMIENTO. Desean conocer elfuncionamiento de "las cosas" y no encuentran lmites en sus camino masque su propia curiosidad. No se dedican a destruir ni a causar estragosentre sus "victimas", no se dedican a robar ni a chantajear ni a regodearsede sus "conquistas", muy al contrario suelen advertir a terceros de lasdebilidades de sus sistemas y, desgraciadamente, esos "terceros" en lugarde agradecerles su aviso se dedican a denunciarlos o perseguirlos aunqueno siempre es as, por supuesto, muchas compaas y gobiernos hanaprendido lo valiosos que son los HACKERS y ahora algunos son colaboradores(o empleados) de estos. BILL GATES es un HACKER (el pap ventanas),como Linus Torvalds (el pap Linux) o Grace Hooper (la Almirante,

    creadora del Lenguaje COBOL), los autores del COREWARRobert ThomasMorris, Douglas McIlroy y Victor Vysottsky (precursores de loscreadores de virus informticos), Fred Cohen (el primer investigador yautor de los virus de la historia), Dennis Ritchie y Ken Thompson("hacedores" del Lenguaje C y co-creadores del SO UNIX), Gary Kildall(autor del sistema operativo CMP y CPM/86), Tim Paterson (autor delQuick & Dirty DOS), Morris (autor de "The tour of the Worm"), KevinMitnick (el ms buscado por el FBI), Phiber Optik (lder juvenil convertidoen smbolo de los hackers), Richard Stallman (impulsor del "softwarelibre" y GNU), Johan Helsingius (primer conductor de un RemailerAnnimo), Chen Ing-Hou (autor del virus CIH -Chernobyl- ), Sir Dyistic(creadorutor del Back Orifice), David L. Smith (virus Melissa), Reonel

    Ramonez (virus LoveLetter),Vladimir Levin (Rob electrnicamente

    10 millones de dlares al Citibank), y muchos mas. Cmo? Pero no hemosdicho que los hackers no comenten delitos? Pues NO, vuelve a leer sudefinicin pero claro, de todo hay en la via del seor, y al igual que haydelincuentes entre el clero hay hackers que en un momento u otro hancaido en la ilegalidad, nadie es perfecto!!!!! y Bill Gates es un HACKER?Por supuesto, solo tienes que leerte su biografa. Sorprendido? Esperoque no, porque eso no es nada mas que un cero a la izquierda en comparacincon lo que vas a encontrar en esta revista.

  • 8/14/2019 Haxcra10

    4/68

    Pgina 4 PC PASO A PASO N 10

    EDITORIALINTENTANDO MEJORAR

    Estimados lectores, los colaboradores de Hack xCrack estamos trabajando duro para ofreceros cadames nuestros conocimientos e intentamos no caeren la tentacin de convertirnos en una revista deltipo aprieta este botn y convirtete en un hacker.

    Lo que intentamos cada mes es alternar la carnazaprctica con el verdaderos conocimiento. Seramuy fcil explicar cada mes un par de exploits,alentarte a explotar vulnerabilidades y dejarte caer

    en la ignorancia, muy al contrario, hemos elegido elcamino difcil: obligarte a estudiar un poco en cadanmero.

    Para despus del verano estamos preparando unaampliacin de las pginas, inclusin de publicidad,instalacin de ms servidores y muchas cosas ms.Ya sabes que somos lentos puesto que no disponemosde recursos econmicos, pero tambin sabes quepoco a poco cumplimos nuestras promesas. Muypoco a poco, pero no podemos hacer mucho msde lo que hacemos.

    Espero que te guste el Curso de XML que iniciamoscon este nmero 10 y te advertimos que el futurode la Informtica pasa necesariamente por XML.

    Dentro de poco MICROSOFT te dir que ha inventadoXML y que Office 2003 es claro ejemplo de suinventiva. No, no te dejes engaar, XML hace bastanteque fue inventado y desde luego no fue Microsoft

    quien lo hizo ;)

    Solo puedo acabar de una manera, agradeciendo acuantos nos leen su fidelidad y agradeciendo acuantos colaboran con nosotros por su entregaincondicional.

    Una vez ms GRACIAS!RACIAS!GRACIAS!

  • 8/14/2019 Haxcra10

    5/68

    PC PASO A PASO N 10 Pgina 5

    MUY IMPORTANTE!!!!! Por favor, no borres archivosdel Servidor si no sabes exactamente lo que ests haciendo ni

    borres las carpetas de los dems usuarios. Si haces eso, lo nico

    que consigues es que tengamos que reparar el sistema servidor

    y, mientras tanto, ni tu ni nadie puede disfrutar de l :(

    Es una tontera intentar romper el Servidor, lo hemos puesto

    para que disfrute todo el mundo sin correr riesgos, para que todo

    el mundo pueda crearse su carpeta y practicar nuestros ejercicios.

    En el Servidor no hay ni Warez, ni Programas, ni claves, ni nada

    de nada que robar, es un servidor limpio para TI, por lo tanto

    cudalo un poquito y montaremos muchos ms :)

    MUY IMPORTANTE...!

    SERVIDOR DE HXCSERVIDOR DE HXC

    MMODO DE EMPLEOODO DE EMPLEO

    - Hack x Crack ha habilitado un servidor para que puedasrealizar las prcticas de hacking.

    - Actualmente tiene el BUG del Code / Decode y lodejaremos as por un tiempo (bastante tiempo ;) Nuestraintencin es ir habilitando servidores a medida que osenseemos distintos tipos de Hack, pero por el momentocon un Servidor tendremos que ir tirando (la economa noda para mas).

    - En el Servidor corre un Windows 2000 Advanced Servercon el IIS de Servidor Web y est en la IP 80.36.230.235.

    - El Servidor tiene tres unidades:* La unidad c: --> Con 2GB* La unidad d: --> Con 35GB y Raz del Sistema* La unidad e: --> CD-ROM

    Nota: Raz del Servidor, significa que el Windows AdvancedServer est instalado en esa unidad (la unidad d:) yconcretamente en el directorio por defecto \winnt\Por lo tanto, la raz del sistema est en d:\winnt\

    - El IIS, Internet Information Server, es el Servidor depginas Web y tiene su raz en d:\inetpub (el directoriopor defecto)

    Nota: Para quien nunca ha tenido instalado el IIS, le serextrao tanto el nombre de esta carpeta (d:\inetpub) cmosu contenido. Pero bueno, un da de estos os ensearemosa instalar vuestro propio Servidor Web y detallaremos su

    funcionamiento.

    De momento, lo nico que hay que saber es que cuandoT pongas nuestra IP (la IP de nuestro servidor) en tunavegador, lo que ests haciendo realmente es ir aldirectorio d:\Inetpub\wwwroot\ y leer un archivo llamadodefault.htm.

    Nota: Como curiosidad, te diremos que APACHE es otroServidor de pginas Web (seguro que has odo hablar del). Si tuvisemos instalado el apache, cuando pusiesesnuestra IP en TU navegador, accederas a un directorioraz del Apache (donde se hubiese instalado) e intentarasleer una pgina llamada index.html

    Explicamos esto porque la mayora, seguro que piensa enun Servidor Web como en algo extrao que no saben ni

    donde est ni como se accede. Bueno, pues ya sabesdnde se encuentran la mayora de IIS (en \Inetpub\) yc u l e s l a p g i n a p o r d e f e c t o(\Inetpub\wwwroot\default.htm). Y ahora, piensa un poco Cul es uno de los objetivos de un hacker que quieredecirle al mundo que ha hackeado una Web? Pues estclaro, el objetivo es cambiar (o sustituir) el archivodefault.html por uno propio donde diga hola, soy DIOSy he hackeado esta Web (eso si es un lamer ;)

    A partir de ese momento, cualquiera que acceda a eseservidor, ver el default.htm modificado para vergenzadel site hacheado. Esto es muy genrico pero os daruna idea de cmo funciona esto de hackear Webs ;)

    - Cuando accedas a nuestro servidor mediante el CODE /DECODE BUG, crea un directorio con tu nombre (el quemas te guste, no nos des tu DNI) en la unidad d: a ser

    posible (que tiene mas espacio libre) y a partir de ahorautiliza ese directorio para hacer tus prcticas. Ya sabes,subirnos programitas y practicar con ellos :)

    Puedes crearte tu directorio donde quieras, no es necesarioque sea en d:\mellamojuan. Tienes total libertad!!! Unai d e a e s c r e a r l o , p o r e j e m p l o , e nd:\winnt\system32\default\mellamojuan (ya irsaprendiendo que cuanto mas oculto mejor :)

    Es posiblemente la primera vez que tienes la oportunidadde investigar en un servidor como este sin cometer undelito (nosotros te dejamos y por lo tanto nadie teperseguir). Aprovecha la oportunidad!!! e investiga mientrasdure esta iniciativa (que esperamos dure largos aos)

    - En este momento tenemos mas de 600 carpetas de peaque, como tu, est practicando. As que haznos caso ycrea tu propia carpeta donde trabajar.

  • 8/14/2019 Haxcra10

    6/68

    Pgina 6 PC PASO A PASO N 10

    0.- Introduccin

    Tras una presentacin general del S.O. quevamos a manejar y de mostrar lasparticularidades de este sistema a la hora detratar con la informacin que almacena, hoycontinuaremos hacia adelante con el objetivode llegar a disponer de nuestro GNU/LiNUXcomo una plataforma de desarrol lo.

    Los puntos que hoy abarcaremos, y sin perdernunca de vista lo visto anteriormente sern:Crear y administrar usuarios y el editor vi .Tras esto, en el prximo artculo trataremos laprogramacin en bash-shell y en C bajoGNU/LiNUX. Ambos temas formaban parte deeste artculo, pero la extensin ocupaba cercade las 35 pginas en A4.

    1. Administracin de usuarios

    La tarea ms bsica de administracin quedebemos de realizar en un entorno multiusuarioes siempre la administracin de los posiblesusuarios de dicho sistema. Entenderemos poradministracin de usuarios a la capacidad decrear, modificar y eliminar cuentas de usuario.

    Una cuenta de usuario ser un conjunto deinformaciones (nombre o login del usuario y

    clave opassword) relativas a una persona quele permitirn acceder a nuestro sistema.

    El usuario encargado de la administracin delresto de los usuarios, ser como siempre root(administrador).

    1.1. C mo se al ma ce na es tainformacin en el sistema?

    Como hemos dicho, cada persona debe poseersu nombre y clave para acceder a nuestrosistema. Este nombre, a partir de ahora login,debe de ser nico. Es decir, distintos usuariosno pueden tener el mismo login.

    Toda la informacin relativa a las cuentas deusuario reside en el archivo /etc/passwd. Estearchivo debe de tener permiso de escriturapara root y de lectura para el resto:

    -rw-r--r-- 1 root root 2,0K 2003-04-29 02:03/etc/passwd

    Si miramos el contenido de este archivo veremosalgo como:

    root@el_chaman:~# cat /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    daem on:x :1 :1 :daem on: /us r / sb in : /b in / sh

    gnu linux (III)gestion de usuarios

    editores de texto: Vi

    Gestin de Usuarios en Linux: Crearemos Usuarios Nuevos, les pondremosClaves de Acceso y daremos un Directorio de Trabajo. De paso, examinaremoslos famosos /etc/passwd y /etc/shadow. IMPRESCINDIBLE !!!

    Editor VI: Mucho ms que un Editor y un estndar en todas las distribucionesLINUX.

  • 8/14/2019 Haxcra10

    7/68

  • 8/14/2019 Haxcra10

    8/68

    Pgina 8 PC PASO A PASO N 10

    problema, almacenan las claves encriptadasen otro archivo, /etc/shadow, el cual slo esaccesible para el administrador y el gruposhadow. Se indica la existencia de un archivo/etc/shadowsi en/etc/passwdencontramos unax en el campopassword.

    Ojo: Insisto una vez ms porque es muyimportante; slo se puede cambiar la clavemediante el comando passwd: No intentiseditar el archivo /etc/passwd o /etc/shadow "amano".

    1.2. Creando un usuario

    Antes de nada, como vamos a trastear concosas un poco peligrosas, conviene cubrirnoslas espaldas y generar unas copias de seguridad:

    root@el_chaman:~# mkdir bck

    root@el_chaman:~# cp /etc/passwd* bck

    root@el_chaman:~# cp /etc/shadow* bck

    root@el_chaman:~# cp /etc/group* bck

    root@el_chaman:~# ls bck

    total 36K

    4,0K group 4,0K group.org 4,0K passwd- 4,0K

    shadow 4,0K shadow.org

    4,0K group- 4,0K passwd 4,0K passwd.org

    4,0K shadow-

    root@el_chaman:~#

    Si algo fuera realmente mal, bastara conteclear:

    root@el_chaman:~# cp bck/* /etc

    Para dejar las cosas como estaban.

    A la hora de crear un nuevo usuariodispondremos de dos maneras: Cambiandomanualmente todo lo necesario paracrearlo o utilizando diversos scripts outilidades que vienen en las distintasdistribuciones (por ejemplo adduser, scriptenPerl bastante comn, o kuser, programa grficode KDE)

    Ni que decir tiene que nosotros optaremos porhacerlo a mano en este artculo por una simplerazn: Queremos saber qu pasa en nuestrosistema cuando se aade un usuario.

    Los pasos generales que seguiremos para crearun archivo sern:

    1 - Aadir la informacin adecuada a nuestroarchivo/etc/passwd.

    2 - Crear un directorio home para el usuario yasignarle como propietario el nuevo usuario.

    3 - Copiar los archivos de configuracinnecesarios a dicho directorio y asignarlos lospermisos/propietarios adecuados.

    Aadiendo informacin

    Veamos un ejemplo. Vamos a aadir el usuariohxc. A este usuario le daremos como clave123hXc321 y le asignaremos como directoriohome/home/hxc

    Siguiendo el guin mostrado, la primera tarea

    a realizar ser la de aadir como root unaentrada a/etc/passwd. Esto lo podremos hacercon un editor como el vi que veremos msadelante en este mismo artculo. Nosotrosaadiremos:

    hxc::1024:100:: /home/hxc:/bin/bash

    hxc ser el nombre del usuario. El campo depassword queda vaco. usuario_ID ser 1024ocualquier otro por encima de 1000 que no est

    siendo utilizado. grupo_ID ser users (100). Eldirectorio home estar en/home/hxc y finalmenteal entrar se ejecutar un bash shell.

    A continuacin aadiremos el password. En unsistema UNiX normal bastara con:

    root@el_chaman:~# passwd hxc

    Enter new UNIX password:

    GNU LINUX III - GESTION DE USUARIOS - vi - GNU LINUX III - GESTION DE USUARIOS - vi

  • 8/14/2019 Haxcra10

    9/68

    PC PASO A PASO N 10 Pgina 9

    Retype new UNIX password:

    passwd: password updated successfully

    Pero si queremos utilizar shadow-passwordsser:

    roo t@el_cham an :~# shadowconf ig on

    Shadow passwords are now on.

    root@el_chaman:~# passwd hxc

    Enter new UNIX password:

    Retype new UNIX password:

    passwd: password updated successfully

    Recomiendo examinar las entradas de/etc/passwdy de/etc/shadowen cada caso paraver los cambios efectuados

    Creando el directorio home

    Ahora, creamos el directorio home para elusuario hxc:

    roo t@el_cham an :~# m kd i r / hom e/hxc

    Una vez hecho esto, cambiamos el propietariode dicho directorio:

    root@el_chaman:~# chown hxc.users /home/luis

    Copiando archivos de configuracin necesarios

    Estos archivos normalmente suelen ser /etc/bashrc, /etc/profile y todo aquello quequeramos meter. Un ejemplo clsico ser:

    r o o t @ e l _ c h a m a n : ~ # c p / e t c / b a s h r c

    /home/hxc/.bashrc

    root@el_chaman:~# cp /usr/share/vim/vimrc

    /home/hxc/.vimrc

    root@el_chaman:~# chown hxc.users

    /home/hxc/.bashrc

    root@el_chaman:~# chown hxc.users

    /home/hxc/.vimrc

    y editaramos dichos archivos ms tarde anuestro gusto. Obsrvese que ambos archivos

    los dejamos ocultos (empiezan por un punto)y cambiamos su propietario a hxc.

    Como es obvio que esto resulta tedioso,normalmente lo que se hace es crear undirectorio /etc/skel donde depositamos todoslos archivos de configuracin o iniciales de losque dispongan los nuevos usuarios.Posteriormente se copian estos archivos aldirectorio home, se actualizan los permisos ylisto.

    Borrando un usuario

    Borrar un usuario consistir en desandar elcamino recorrido para crearlo: Bsicamentetendremos que eliminar su directorio home yborrar las entradas necesarias en /etc/passwd y/etc/shadowsi corresponde.

    Insisto en que todas las tareas vistasactualmente las realizan diversos scripts yprogramas que nos facilitan mucho la vida. Aveces estos programas varan de una distribucina otra, pero ABSOLUTAMENTE TODOS ELLOSrealizan las tareas que hemos descrito.

    1.3. Grupos

    Los grupos funcionan de manera anloga a losusuarios. Cada usuario debe de pertenecer aun grupo y un grupo puede gestionar lospermisos de varios usuarios simultaneamente(recordad en el artculo anterior cmoasignbamos permisos al propietario, al grupoy al resto de los usuarios). Resultan una maneramuy cmoda de manejar sistemas en los que

    existen muchos usuarios que realizan tareasmuy diferentes.

    La informacin relativa a los grupos se encuentraen /etc/group y suele tener el siguiente aspecto:......

    proxy:x:13:

    kmem:x:15:

    dialout:x:20:

    GNU LINUX III - GESTION DE USUARIOS - vi - GNU LINUX III - GESTION DE USUARIOS - vi

  • 8/14/2019 Haxcra10

    10/68

    Pgina 10 PC PASO A PASO N 10

    fax:x:21:

    voice:x:22:

    cdrom:x:24:

    floppy:x:25:tape:x:26:

    sudo:x:27:

    audio:x:29:

    dip:x:30:

    postgres:x:32:

    www-data:x:33:

    backup:x:34:

    operator:x:37:

    list:x:38:

    irc:x:39:

    src:x:40:

    gnats:x:41:

    shadow:x:42:

    utmp:x:43:telnetd

    video:x:44:

    staff:x:50:

    users:x:100:luis, hxc

    .

    .....

    Cada lnea se interpreta de la siguiente forma:

    nombre_grupo:password_grupo:ID_grupo:usua

    rios_pertenecientes_a_ese_grupo

    nombre_grupo: El nombre que queramosdar al grupo.

    password_grupo: La clave para el grupo.Normalmente se deja en blanco o se pone unasterisco. No todos los UNiX soportan laasignacin de claves a grupos y se mantiene

    este formato por compatibilidad con versionesms antiguas.

    ID_grupo: Nmero que identificar al grupoante el S.O.

    usuarios_pertenecientes_a_ese_grupo:lista de todas los usuarios que pertenecen aese grupo.

    Crear un nuevo grupo y aadirle usuarios seralgo tan sencillo como aadir las entradasnecesarias a /etc/group.

    Y con esto queda contemplado el sistema deadministracin de altas y bajas de usuarios. Acontinuacin, tras ver una de las peculiaridadesde los sistemas GNU/LiNUX vamos a cambiarun poco de tercio y vamos a examinar una delas herramientas ms importantes en cualquiersistema UNiX: el editor vi.

    2. El editor vi

    Muchos pensarn que escribir un artculo oparte de este explicando el manejo del vi esuna prdida de tiempo y de espacio.Personalmente voy a defender de forma breveel porqu de aprender a manejar este editorde texto.

    Se supone que los lectores de esta revistason ante todo gente curiosa que legusta investigar diferentes sistemas.Si nos centramos en los sistemas UNiX-like,nos encontramos que distintos SS.OOUNiX-like poseen diferentes herramientaso diferentes maneras de hacer las cosas.Esto muchas veces se convierte en unasituacin tediosa de "vuelta a empezarde 0".

    Por eso se agradece que herramientas,que en principio puedan parecer pocointeresantes como los editores de texto,estn disponibles en todos los entornosy se manejen de la misma manera. ste

    es el caso del vi. Imaginaos que cadavez que entrsemos en una RedHat, enuna Debian, en Solaris, en SCO UNiX,en FreeBSD, etc... tuvisemos que aprendercmo se maneja el editor de texto; hastapasados unos treinta minutos no nosfamiliarizaramos con l. Y treinta minutos, apesar de ser mucho tiempo en segn quesituaciones, no dan mucho de s.

    GNU LINUX III - GESTION DE USUARIOS - vi - GNU LINUX III - GESTION DE USUARIOS - vi

  • 8/14/2019 Haxcra10

    11/68

    PC PASO A PASO N 10 Pgina 11

    Dicho esto alguno estar pensando "yo tengoel vim, es lo mismo que el vi?". S y no. Vim(Vi improbed, vi mejorado) es una versin

    mejorada del vi que proporciona muchasmejoras al primitivo vi y es compatible con l.Todo lo que aqu se diga es vlido para el vim,pero tened en cuenta que lo que vais aencontrar en todos los sistemas UNiX es el vi.

    El vi (Visual Interface) es una mejora ms quese hizo sobre los primitivos editores de lneas(como el ex o ed) presentes en UNiX,y que dotaron de capacidades visuales aestos primitivos editores de manera quepudieran aprovechar las potentes capacidadesde los entonces modernos terminalestty.

    El vi pues, no ser el clsico editor de textoplano como el EDIT del MS-DOS, sino quetendr muchas peculiaridades, la mayoraheredades del editor de lneas que siemprecorre bajo el vi, los anteriormente mencionadoex y ed.vi posee tres modos de trabajo: modo comando,modo edicin y modo ex.

    En el modo comando podremos movernos porel texto, invocar comandos del vi, invocar a edo ex, etc...

    En el modo edicin simplemente nos limitaremosa introducir texto como si de un editor normalse tratase.

    En el modo ex o ed pasamos a manejar losantiguos editores de lnea.

    Normalmente una sesin de vi comienzainvocando el propio programa seguido de unoo ms ficheros. Las siguientes invocaciones devi son vlidas:

    luis@el_chaman:~$ vi

    luis@el_chaman:~$ vi hola.txt

    luis@el_chaman:~$ vi hola.txt adios.txt

    Una vez abierto el vi estaremos en modocomando. Para alternar entre modo comandoy modo edicin se utilizar la tecla escape.

    Vamos a crear un archivo llamado saludo.txt.Inicialmente invocaremos al editor de lasiguiente manera:

    luis@el_chaman:~$ vi saludo.txt

    Se nos mostrar entonces la siguiente pantalla

    Vemos que en la parte inferior se nos muestracierta informacin sobre el archivo:

    "saludo.txt" [Fichero nuevo] 0,0-1 Todo

    La parte izquierda es de significado obvio;los nmeros 0-0 indican la lnea y columnadonde est situado el cursor, y el Todonos dice que est mostrando todo eldocumento en la pantalla. Si el documentofuese ms grande, en vez de poner Todopondra el porcentaje correspondiente altexto mostrado en pantalla con respecto al

    total.

    En este momento estamos en modocomando y el vi est preparado para quele demos una orden. La orden que vamosa dar es la de insertar texto as quepulsamos la letra 'i' (i minscula). Entoncesobtendremos los que muestra la siguienteimagen.

    GNU LINUX III - GESTION DE USUARIOS - vi - GNU LINUX III - GESTION DE USUARIOS - vi

  • 8/14/2019 Haxcra10

    12/68

    Pgina 12 PC PASO A PASO N 10

    Observamos que en la parte inferior izquierda

    aparece la palabra -- INSERTAR --. Esto quieredecir que el vi ha entendido la orde y queestamos en modo edicin.

    A continuacin vamos a meter el siguientetexto:

    Esto es una prueba [ENTER]

    haber como va esto.[ENTER]

    Antes de continuar; el "haber" de "haber como

    va esto", es una falta de ortografa puesta conla intencin de corregirla ms adelante.

    Una vez hecho lo indicado habremosobtenido algo como lo mostrado en lasiguiente imagen.

    Ahora tenemos que guardar el archivo. Paraello tenemos que pasar primero a modocomando e invocar el comando de escritura.

    Para pasar a modo comando damos a la teclaESCAPE, al hacerlo vemos como el -- INSERTAR-- de la parte inferior izquierda desaparece.

    Ahora teclemamos :w (dos puntos uve doble)tal y como muestra la siguiente imagen.

    Si presionamos ENTER nos saldr un mensajeen la parte inferior similar a este:

    "saludo.txt" [Nuevo] 3L, 39C escritos 3,0-1 Todo

    Nos informa de que los cambios han sidoguardados con xito.

    Para salir ahora, volvemos a presionar ESCAPE(volvemos a pasar a modo comando), ytecleamos :q (dos puntos q)

    Para verificar que hemos escrito el archivo,tecleemos:

    luis@el_chaman:~$ cat saludo.txt

    Esto es una prueba

    haber como va esto

    luis@el_chaman:~$

    Bien, hemos visto que este editor constabsicamente de, por un lado, enviar rdenesal propio vi (modo comando) , y por otro editar

    GNU LINUX III - GESTION DE USUARIOS - vi - GNU LINUX III - GESTION DE USUARIOS - vi

  • 8/14/2019 Haxcra10

    13/68

    PC PASO A PASO N 10 Pgina 13

    texto (modo edicin).

    Vamos a ir afinando un poco ms. Nuestro

    objetivo ahora ser corregir la falta que hemoscometido. Para ello abriremos el fichero, nossituaremos sobre la palabra que queremosmodificar, la borraremos y escribiremos la nuevapalabra.

    Empezamos por invocar al vi:

    luis@el_chaman:~$ vi saludo.txt

    Recordemos que inicialmente estamos siempreen modo comando. Ahora nos situamos sobrela "h" de "haber". Muchos lo podris hacer sinproblema con las flechas de los tecladosmodernos. Esto no valdr para todos lossistemas, as que ms vale que vayamospracticando con la siguiente sustitucin:

    h: mover un carcter a la izquierda

    j: mover una lnea abajo

    k: mover una lnea arriba

    l: mover un carcter a la derecha

    Otra sustitucin til en los casos de los que nodispongamos de las teclas Av Pg y Re Pg.ser:

    Ctrl + U: Retroceder media pantalla

    Ctrl + D: Avanzar media pgina

    Ctrl + F: Avanzar una pantalla

    Ctrl + B: Retroceder una pantalla

    Una vez situados sobre la "h" de "haber"presionaremos la "x". Observamos que sucesivas

    presiones en la letra x eliminan una letra.Eliminad "haber".

    Ahora, queremos insertar la correccin,tecleamos entonces la letra "i" (insertar) yautomticamente pasamos al modo edicin;ahora el vi se comportar como un editor detextos normal. Modificamos nuestro texto demanera que quede:

    Esto es una prueba

    a ver como va esto

    Y volvemos a guardar el archivo invocandoprimeramente el modo comando (ESCAPE) ytecleando el comando :wq (escribir y salir).

    Si quisiramos guardar el archivo con otronombre, podramos meter el comando :wnombre_archivo.Esto es tambin vlido tambin para cargar unarchivo cuando el vi ya est abierto; en estecaso el comando correspondiente ser :rnombre_archivo

    Recapitulando:

    * El vi, a la hora de editar tiene dos modos:modo comando y modo edicin.

    * En el modo comando nos podemos moverpor el texto tanto con las flechas o las teclas

    Av Pg y Re Pg o con sus sustitutas: h, j, k,l, Ctrl+U, Ctrl+D, Ctrl+F y Ctrl+D.

    * Alternaremos entre ambos modos pulsandola tecla ESCAPE

    * Los comandos bsicos a la hora de editarsern: i para insertar, x para borrar.

    * Los comandos bsicos a la hora decargar/guardar archivos son respectivamente:r/:w; ambos admiten como parmetro unnombre de archivo.

    Con el sencillo ejemplo visto ya seremos capaces

    de editar cualquier fichero de texto con el vi.Pero el vi tiene muchas ms posibilidades.

    Me he permitido incluir una referencia rpidade los comando del vi y un manual bastantecompleto. Ambos se pueden descargarrespectivamente de:

    http://users.servicios.retecal.es/luis-ubaldo/vi-ref.pdf

    GNU LINUX III - GESTION DE USUARIOS - vi - GNU LINUX III - GESTION DE USUARIOS - vi

  • 8/14/2019 Haxcra10

    14/68

    Pgina 14 PC PASO A PASO N 10

    y

    h t t p : / / u s e r s . s e r v i c i o s . r e t e c a l . e s / l u i s -

    ubaldo/ManualVi.pdf

    Espero que con la ayuda de estos documentosy un poco de tiempo, no tardis mucho enmanejar con soltura este editor.

    Y ya para terminar decir que estamos listos

    para afrontar la programacin. Empezaremosen el prximo artculo con la programacin enbash-shell y C. Advierto que la programacin

    en C no se centrar en el lenguaje C, si no enel manejo de las distintas herramientas de lasque dispondremos en GNU/LiNUX para realizarprogramas en C/C++ (IDEs, compiladores,depuradores, etc....).

    SUSCRIBETE A

    PC PASO A PASO

    SUSCRIPCIN POR:1 AO11 NUMEROS

    45 EUROS (10% DE DESCUENTO)+SORTEO DE UNA CONSOLA XBOX+SORTEO 2 JUEGOS PC (A ELEGIR)

    =

    Cont ra ReembolsoCont ra Reembolso

    Solo tienes que enviarnos un mail a [email protected]:

    - Nombre- Apellidos- Direccin Completa- Poblacin- Provincia- Cgigo Postal- Mail de Contacto y/o Telfono ContactoEs imprescindible que nos facilites un mail o telfono de contacto,puesto que 24 horas despus de que recibamos tu peticin desubscripcin te daremos un nmero de Cliente Preferente. Estenmero ser utilizado para los sorteos.- Tipo de Subscripcin: CONTRAREEMBOLSO- Nmero de Revista:Este ser el nmero a partir del cual quieres subscribirte. Si deseas(por ejemplo) subscribirte a partir del nmero 5 (incluido), debes ponerun 5 y te enviaremos desde el 5 hasta el 15 (ambos incluidos)

    APRECIACIONES:* Junto con el primer nmero recibirs el abono de 45 euros, preciode la subscripcin por 11 nmeros (un ao) y una carta donde se teindicar tu nmero de Cliente Preferente y justificante/factura de lasubscripcin.* Puedes hacernos llegar estos datos POR MAIL,tal como te hemosindicado; re l lenando e l formular io de nuest ra WEB(www.hackxcrack.com) o envindonos una carta a la siguiente direccin:CALLE HIGINIO ANGLES N2, 4-1CP 43001 TARRAGONAESPAA* Cualquier consulta referente a las subscripciones puedes enviarlapor mail a [email protected]

    Giro PostGiro PostalalEnvanos un GIRO POSTAL por valor de 45 EUROS a:CALLE HIGINIO ANGLES N2, 4-1

    CP 43001 TARRAGONAESPAAIMPORTANTE: En el TEXTO DEL GIRO escribe un mail de contactoo un nmero de Telfono.

    Y enviarnos un mail a [email protected] indicando:- Nombre- Apellidos- Direccin Completa- Poblacin- Provincia- Cgigo Postal- Mail de Contacto y/o Telfono ContactoEs imprescindible que nos facilites un mail o telfono de contacto,puesto que 24 horas despus de que recibamos tu peticin desubscripcin te daremos un nmero de Cliente Preferente. Estenmero ser utilizado para los sorteos.- Tipo de Subscripcin: GIRO POSTAL- Nmero de Revista:Este ser el nmero a partir del cual quieres subscribirte. Si deseas(por ejemplo) subscribirte a partir del nmero 5 (incluido), debes ponerun 5 y te enviaremos desde el 5 hasta el 15 (ambos incluidos)

    APRECIACIONES:* Junto con el primer nmero recibirs una carta donde se te indicartu nmero de Cliente Preferente y justificante/factura de la subscripcin.* Puedes hacernos llegar estos datos POR MAIL,tal como te hemosindicado; re l lenando e l formular io de nuest ra WEB(www.hackxcrack.com) o envindonos una carta a la siguiente direccin:CALLE HIGINIO ANGLES N2, 4-1CP 43001 TARRAGONAESPAA* Cualquier consulta referente a las subscripciones puedes enviarlapor mail a [email protected]

    GNU LINUX III - GESTION DE USUARIOS - vi - GNU LINUX III - GESTION DE USUARIOS - vi

  • 8/14/2019 Haxcra10

    15/68

    PC PASO A PASO N 10 Pgina 15

    0.- Introduccin

    Como promet en el nmero anterior, aqu estel artculo sobre DCC, para completar todo loreferente a los protocolos relacionados con

    IRC.

    Este artculo va a ser bastante diferente a losanteriores. Para empezar, no se basa en ningnRFC ya que, tal y como podemos comprobarbuscando la palabra DCC en http://www.rfc-editor.org/rfcsearch.html , no existe ningnRFC que especifique el funcionamiento de esteprotocolo. El funcionamiento del protocolo DCCes muy simple, por lo que para detallarlo sloemplear la primera mitad del artculo. Es en

    la segunda mitad del artculo donde seencuentra la principal diferencia con otrosartculos de la serie, puesto que esta parteestar enteramente dedicada a tcnicas paraexplotar este protocolo.

    Por tanto, en esta ocasin no me limitar tanslo a detallar el funcionamiento de unprotocolo, si no tambin a detallar sus

    problemas de seguridad.

    Todas estas tcnicas para abusar delDCCfueron ideadas por m, aunque seguro quea ms de un lector, en cuanto lea la primera

    parte en la que explico el funcionamiento bsicodel protocolo, se le ocurrirn las mismas ideas,ya que son bastante simples (aunque no porello menos efectivas). Por tanto, todo lo aqucontado es el fruto de mis experimentospersonales, as que puedo garantizar que todolo explicado funciona y, adems, que ningnanimal fue daado para realizar los experimentosen el laboratorio. ;-)

    1.- FUNCIONAMIENTO DEL DCC

    1.1. Funcionamiento bsico del DCC agrandes rasgos

    Para los que an no sepan de qu demoniostrata este artculo, os explicar rpidamenteen qu consiste el DCC.Los usuarios de IRC (Internet Relay Chat) noslo tienen la posibilidad de conversar con otros

    serie raw: conociendoprotocolos y su seguridad

    raw 4: dccdirect client to client

    protocolFuncionamiento del Protocolo DCC

    Codificacin de Decodificacin de IPsDCC --> Inseguro y Peligroso:

    -- Obtencin de IPs -- FXP en DCC-- Obtencin de Puertos -- Puenteando un DCC-- DCC Send Hijacking -- Escaneo mediante Fserver

  • 8/14/2019 Haxcra10

    16/68

    Pgina 16 PC PASO A PASO N 10

    usuarios de la misma red, si no que ademspueden hacer muchas otras cosas, como enviararchivos, montar servidores de archivos, chat

    por voz, utilizar una pizarra comn para escribiro dibujar, o incluso videoconferencia.Todas estas virgueras se consiguen medianteun protocolo encapsulado en el propio protocolode IRC, que es el DCC.

    En realidad, la mayora de estas virgueras sonslo implementadas por unas pocas aplicacionesde IRC, y estn muy poco extendidas.Como sabr cualquier asiduo al IRC, las dosutilidades tpicas del DCC son: DCC Chat y DCCSend.

    Ambos tienen en comn una caracterstica, yes que funcionan mediante una conexin puntoa punto entre los dos usuarios, y no a travsdel servidor de IRC. Por eso precisamente elprotocolo se llama Direct Client to Client. ;-)

    Os recuerdo que en IRC todo circula a travsdel servidor. Por ejemplo, cuando escribimosun mensaje privado a un usuario, en realidadestamos enviando este mensaje primero alservidor de IRC, para que luego el servidor loenve a su vez al usuario correspondiente.

    Pensad en el problema que sera si esto nofuese as. Para empezar, en algunas redes(como en el IRC-Hispano) las IPs de los usuariosno son visibles, por lo que sera imposible

    establecer ningn tipo de conexin entre 2usuarios sin la intervencin del servidor, quees el nico que conoce las IPs de todos los

    usuarios. Como segundo ejemplo, ansuponiendo que las IPs fuesen pblicas,imaginaos lo que sera si para decir una simplefrase en un canal con 100 usuarios vuestramodesta conexin casera (56K, 256K, o pocoms) tuviese que establecer una conexin concada uno de los 100 usuarios para enviarles lafrasecita de marras.

    Volviendo al DCC, ste protocolo es el quepermite realizar cualquier tarea que requierauna conexin punto a punto entre 2 usuarios.

    Las dos utilidades ms sencillas que se nospueden ocurrir en las que se necesite unaconexin punto a punto son:

    1- Enviar archivos: menuda locura serasi tuvisemos que enviar un archivo de 700MBa travs del servidor de IRC mientras otros3000 usuarios estn enviando simultneamentesus ISOs.

    Chat privado: las queries, o chats privadosentre dos usuarios de IRC, funcionan tambina travs del servidor de IRC (as que eso deprivado...), pero hay varios motivos para queno queramos que nuestra conversacin pasepor un punto intermedio. Los motivos principalesson dos: en primer lugar, la privacidad, y ensegundo lugar, el no depender de las limitacionestcnicas del servidor intermedio.

    Cuando hablo del i m i t a c i o n e stcn i cas de l

    s e r v i d o rintermedio merefiero, antetodo, a dosproblemas bienconocidos port o d o s l o susuarios de IRC,que son: el lag,

    Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC

  • 8/14/2019 Haxcra10

    17/68

    PC PASO A PASO N 10 Pgina 17

    y los splits. En un DCC Chat, es decir, un chatprivado entre 2 usuarios mediante una conexinpunto a punto, y no a travs del servidor de

    IRC, el lag que haya depende tan slo de laconexin de los dos usuarios, y no de la delservidor de IRC. Adems, si ocurre un split enla red de IRC, o incluso si uno de los usuariosse cae, el DCC Chat sigue funcionando sinenterarse.

    1.2. Establecimiento de la conexin

    El establecimiento de la conexin en DCC esdiferente a la del resto de protocolos que hemosvisto hasta ahora en la serie RAW. Y es que nobasta con hacer un telnet a un puertodeterminado en el que hay escuchando un

    servidor, si no que tenemos que realizar unasgestiones previas para que ese puerto seabra en la mquina a la que nos queremosconectar.

    Esto se debe a que el establecimiento deconexin se realiza a travs del servidor deIRC. Recordemos que un usuario de IRC notiene por qu conocer la IP de otro usuario,

    as que si queremos establecer una conexinpunto a punto tendremos primero que

    preguntarle la IP del otro usuario al servidor.

    Para los que os hayis frotado las manospensando que esto se podra aprovechar parasacar IPs haciendo falsas consultas al servidor,o para los que os hayis llevado las manos ala cabeza ante la inexactitud de lo que acabode decir, dejad todos las manos quietas! Lohe explicado as para que pillis rpidamenteel concepto, pero lo que ocurre en realidad noes que un usuario consulte la IP de otro usuario,si no justo todo lo contrario. Lo que hace elusuario es decirle al servidor: dile mi IP a esteusuario. As nos aseguramos de que medianteDCC slo se podrn conseguir las IPs de losusuarios que voluntariamente quieran.Pero an sigo sin contar toda la verdad, ya queen realidad todo esto es mucho ms divertido.Lo que decimos al servidor no es exactamente

    dile mi IP a este usuario, si no mi IP es sta,anda, ve y dselo a este usuario. Por tanto, laIP que llega hasta un usuario con el que quieresestablecer una conexin DCC, no es la IP queconoce el servidor, si no la que t le digas...sea cual sea...

    Una vez realizadas las gestiones previas (queconsisten, resumiendo, en decirle al otro usuarionuestra IP y un puerto para que puedaconectarse), ya se podr establecer unaconexin TCP/IP de toda la vida que, porsupuesto, se puede realizar mediante Telnet.

    Como ya dijimos, existen bsicamente 2 tiposde mensajes DCC (todos los dems los vamosa ignorar, por no estar tan extendidos):

    - DCC Send- DCC Chat

    El DCC Send es una peticin que dice alservidor IRC: quiero enviar ste fichero a steusuario.

    El DCC Chat es una peticin que dice al servidor

    Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC

    !

    Lag y Splits

    Split es cuando uno (o varios) servidores que forman parte

    de la RED IRC se "desconectan" temporalmente del resto

    de servidores que forman esa RED. Para no ocupar 2

    pginas explicando los detalles, mejor te miras este enlace

    http://www.ayuda-irc.net/splits.shtml, est perfectamente

    expuesto con imgenes y todo :)

    Lag es cuando por el motivo que sea se produce un retraso

    desde que escribes un mensaje hasta que el resto de usuarios

    lo reciben y viceversa (desde que otro usuario escribe un

    mensaje hasta que tu lo recibes). Las causas pueden ser

    muchas, desde que tu conexin deja de respondertemporalmente hasta que el servidor de IRC al que ests

    conectado est saturado.

  • 8/14/2019 Haxcra10

    18/68

    Pgina 18 PC PASO A PASO N 10

    IRC: quiero establecer un chat privado conste usuario.

    En ambos casos, hay que aadir la siguientecoletilla: para ello, dile que se conecte a stepuerto en sta IP. Es decir, el que lanza lapeticin de DCC es siempre el que acta comoservidor para la conexin TCP/IP que seestablecer, bien en el envo del archivo, obien en el chat privado.

    Para los que, al leer la definicin de DCCSend, se hayan preguntado cmo funcionaentonces un fserver, les aclaro que laspeticiones que se hacen a un fserver no tienennada que ver con las peticiones de DCC, si noque son simples comandos parseados porun script que automatiza el lanzamiento depeticiones DCC Send desde el fserver. Para losque no sepis lo que es un fserver, no ospreocupis, que esto no tiene mucho que vercon el tema. :-)

    Para explicar mejor todo el proceso de conexin,

    voy a poner un ejemplo, en el cual el usuarioPyC quiere enviar un archivo al usuario Scherzo.

    1.2.1. PyC lanza la peticin al servidorde IRC

    Tanto PyC como Scherzo estn conectados almismo serv idor de IRC (condic inimprescindible), por lo que PyC le lanza al

    servidor de IRC la consabida peticin: quieroenviar ste fichero a ste usuario. Para ello,dile que se conecte a ste puerto en sta IP.

    (Por supuesto, ms adelante veremos el formatoreal de esta peticin XD).

    1.2.2. El servidor de IRC devuelve lapeticin al usuario Scherzo

    A continuacin, el servidor de IRC simplementeretransmite esa peticin a Scherzo: Oye, quePyC me ha dicho que quiere enviarte stearchivo. Si quieres, conctate a su IP, que essta, en ste puerto.

    1.2.3. El usuario Scherzo acepta la

    peticin

    En este momento, Scherzo debe decidir si quiererecibir ese archivo de PyC. Para ello, en suaplicacin cliente de IRC le aparecer unaventana preguntndole si desea aceptar el DCC.

    Si no acepta, aqu se acab la historia. Perovamos a suponer que si que acepta.

    Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC

    !

    Fserver es un servidor de ficheros pueden (o no) incluir

    los programas de CHAT y sirve para compartir tus archivos

    con otros usuarios, tienes sobre este tema mucha informacin

    e n I n t e r n e t , p o r e j e m p l o e n

    http://www.readysoft.es/home/ihidalgo/intermedio/filese

    rver.html

    Ya sabes, utiliza el mejor buscador de Internet:

    www.google.com

  • 8/14/2019 Haxcra10

    19/68

  • 8/14/2019 Haxcra10

    20/68

    Pgina 20 PC PASO A PASO N 10

    /quote privmsg PyC:VERSION

    Pues ahora vamos a rizar el rizo un poco ms.Si bien el CTCP no es ms que un tipo de

    mensaje PRIVMSG, resulta que el DCC es asu vez un tipo de mensaje CTCP. Por lo queal final, resulta que el DCC tambin funcionamediante el famoso PRIVMSG. Bonitotrabalenguas. :-)

    Si consideramos que el protocolo CTCPcomprende todos los comandos que se puedenejecutar en un servidor de IRC que implicanuna comunicacin entre 2 usuarios, podemosdefinir dentro de estos comandos un

    subconjunto, que es el formado por aquelloscomandos que realizan una comunicacindirecta entre 2 usuarios estableciendo unaconexin especfica entre ambos. Estesubconjunto es lo que llamamos DCC (DirectClient to Client).

    Veamos ya un ejemplo de comando RAW paraDCC, y luego lo explicaremos en detalle:

    /quote privmsg PyC:DCC CHAT chat

    3645183495 4510

    Y esos numerajos? No habamos quedadoen que lo que se enviaba en una peticin erala IP y el puerto? Yo no veo la IP por ningunaparte...Pues, aunque no la veas, ah est, perocodificada. Y, por supuesto, yo os enseoahora mismo cmo decodificarla. :-)

    Codificacin de IPs

    Os apetece estudiar un poco de aritmticamodular? Estoy seguro de que, dicho as, noos apetece lo ms mnimo. XDPero es precisamente eso lo que debemossaber para codificar y descodificar las IPs enuna peticin de DCC.

    Desde el punto de vista matemtico, unadireccin IP es un nmero de 4 cifras en base256.

    La base que utilizamos nosotros a diario es labase 10; por eso, cada cifra de un nmero

    esta comprendida entre 0 y 9. Por ejemplo, siqueremos representar el nmero 256 en base10, separando las cifras por puntos, sera stasu representacin: 2.5.6.

    Si queremos representar el mismo nmero enbase 256, tenemos que tener en cuenta quecada cifra podr valer ahora entre 0 y 255, yno slo entre 0 y 9, as que sta sera larepresentacin del nmero 256 en base 256,separando las cifras por puntos: 1.0.

    Curioso, eh? El nmero 10 se representa como1.0 en base 10, y el nmero 256 se representacomo 1.0 en base 256. Esto ocurre con todaslas bases. Si conocemos la base 2, tambinconocida como binario, sabremos que elnmero 2 se representa como 1.0 (supongoque conoceris el clsico chiste que dice: existen10 clases de personas, las que saben binario,y las que no). Si conocemos tambin la basehexadecimal, o base 16, sabremos que el 16se representa como 1.0. Y as con todas las

    bases. :-)

    Siguiendo con este curso intensivo de aritmticamodular, veamos como ejemplo larepresentacin del nmero 256 en binario:100000000, y en hexadecimal: 100.

    Para que podis convertir cualquier nmero acualquier base, os explico brevemente el

    Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC

    !

    Donde el smbolo recordamos que es el ascii 1, el cual

    podemos escribir mediante la combinacin de teclas:

    Alt + 1. Os recuerdo tambin que en algunas aplicaciones

    no funciona esta combinacin de teclas, por lo que una

    solucin es buscar una aplicacin en la que si que funcione,

    y pastear el ascii desde ah.

  • 8/14/2019 Haxcra10

    21/68

    PC PASO A PASO N 10 Pgina 21

    mecanismo. Recordis cuando estudiabais losnmeros en el cole y os hablaban de centenas,decenas, y unidades? El nmero 256 se podra

    descomponer de la siguiente forma:

    256 = 2*100 + 5*10 + 6*1

    La cifra 2 es la de las centenas, el 5 la de lasdecenas, y el 6 la de las unidades. En realidad,los nmeros que multiplican a cada cifra sonsimplemente potencias de la base, es decir, eneste caso potencias de 10. Por ejemplo, 100

    = 1, 101 = 10, 102 = 100.

    Aplicando la misma regla, la direccin IP217.69.22.7 se podra representar como:217*2563 + 69*2562 + 22*2561 + 7*2560

    Si realizamos esta suma nos sale, en decimal,el nmero 3645183495.Atiza! Si es el mismo numerajo que sala enla peticin de DCC que puse hace dos horas!(es que estoy perdiendo un poco el tiempo enIRC mientras escribo el artculo 0:-)

    Por tanto, sta es la frmula que hay queutilizar para codificar una IP en una peticinde DCC, cuya codificacin no es ms que larepresentacin de la IP en base 10.

    Decodificacin de Ips

    Para el proceso inverso, que es obtener una IPa partir de su codificacin en base 10, no hayms que invertir la frmula. Aqu es dondevemos por qu a todo esto se le llama aritmticamodular. Y es que necesitamos operar con elmdulo para ir obteniendo las 4 cifras que

    forman la IP.

    En nuestro ejemplo, el nmero del que partimoses el 3645183495. Pues bien, empezamosdividiendo este nmero por el primero de losfactores, que es 2563, es decir:3645183495/2563 = 217...Como vemos, no nos sale un nmero entero,pero la parte entera de ese nmero es 217,

    que es precisamente la primera cifra de laIP.

    As que nos quedamos con ese 217 y seguimos

    operando, pero ahora con el resto de esadivisin. Para obtener el resto podemos aplicardirectamente un operador de mdulo siestamos programando en algn lenguaje, ocon una buena calculadora. Por ejemplo, en ellenguaje C el operador de mdulo es el %(ojo! Este % no tiene nada que ver con elque suele haber en las calculadoras). Si loestamos haciendo a mano podemos obtenerel mdulo haciendo:

    217*2563 = 36406558723645183495 3640655872 = 4527623

    Que es lo mismo que se obtiene si hacemos:

    3645183495 % (256*256*256) = 4527623

    A continuacin, obtenemos la segunda cifrahaciendo:4527623 / 2562 = 69...Hallamos el nuevo resto:4527623 % (256*256) = 5639

    Seguimos:5639 / 2561 = 22...Hallamos el nuevo resto:5639 % 256 = 7

    Y este ltimo resto es precisamente la ltimacifra. :-)Por tanto, la IP nos queda: 217.69.22.7

    Es muy fcil programar una pequea aplicacin

    que codifique y decodifique IPs, as que os lopropongo como ejercicio. ;-)

    1.3.1. Comando RAW para DCC Chat

    Os recuerdo el ejemplo:

    /quote privmsg PyC:DCC CHAT chat3645183495 4510

    Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC

  • 8/14/2019 Haxcra10

    22/68

    Pgina 22 PC PASO A PASO N 10

    Ya sabemos qu es el primer nmero: la IPcodificada en base 10.

    El segundo nmero es el puerto, sin ningntipo de codificacin. Es decir, en el momentoen que lanzamos esta peticin de DCC, nuestraaplicacin cliente de correo abrir el puerto4510 en espera de que el usuario PyC seconecte a l.

    Si, en lugar de utilizar un cliente de IRC (comomIRC, kVirc, etc) estamos utilizando Telnet apelo, la cosa es ms complicada. Tendremosque abrir el puerto por medios ms rsticos,por ejemplo utilizando netcat. Ya se expliccomo abrir un puerto en escucha con netcaten el nmero 8 de HackxCrack, en el artculosobre Reverse Shell.

    Si estamos detrs de un firewall, es probableque tengamos problemas con DCC, ya que noes fcil abrir puertos dinmicamente detrs deun firewall. Para solucionar el problema,tenemos que abrir en el firewall unos puertosdedicados a DCC y, al mismo tiempo, configurarnuestro cliente de IRC para que utilice sloesos puertos para DCC, en lugar de utilizar unrango aleatorio muy amplio, como suelen venirconfigurados por defecto (lo cual, por cierto,es ms seguro, tal y como veremos msadelante).

    Por ejemplo,en mIRC ,nos vamos almen Fi le-> O p t i o n s -

    > D C C ->Options yahconfiguramosel rango depuertos dondepone DCCports.

    En el ejemplo de la imagen, se utilizarn lospuertos 5100, 5101, y 5102 para lanzar laspeticiones de DCC.

    En segundo lugar, configuramos la tabla NATdel firewall para que abra esos puertos hacianuestro PC. En la siguiente imagen est comoejemplo la tabla NAPT de un router ADSLSpeedStream para abrir los 3 puertos delejemplo:

    En esta tablatambin estabierto e lpuerto 21 deFTP, y el 113de IDENT, yotro que noos qu ieroensear :P,pero todoesto es otrahistoria...

    1.3.2. Comando RAW para DCC Send

    Este es un ejemplo de peticin para DCC Send:

    /quote privmsg PyC :DCC send"yonki.jpg" 1042580430 4511 56711

    Vemos que aparece el nombre del archivo

    Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC

    Si utilizas Windows XP ...!

    Si utilizas Windows XP puede ser que tengas activado el

    Firewall que incorpora Windows, pues ya sabes, mejor lo

    desconectas (esto ya se ense en anteriores nmeros). Si

    no sabes de qu estamos hablando psate por nuestro foro

    (www.hackxcrack.com) y pregunta sobre el tema.

    Si utilizas un firewall por soft (por ejemplo el ZONE

    ALARM *www.zonelabs.com*) pues lo mismo, hay que

    configurarlo correctamente o desconectarlo temporalmente.

    Si no sabes como configurarlo pregunta en el foro y seguro

    que la pea te ayuda con el tema.

  • 8/14/2019 Haxcra10

    23/68

    PC PASO A PASO N 10 Pgina 23

    yonki.jpg, y un numerajo ms que en el DCCChat. Los dos primeros numerajos son la IPy el puerto, exactamente igual que en DCC

    Chat. El tercer numerajo es simplemente eltamao del archivo en Bytes.

    Como ejercicio os propongo que decodifiquisesta IP. ;-)

    Pues bien... seguro que con todo esto que oshe contado ya habr aparecido en vuestrasmentes pervertidas alguna idea maliciosa parasacar provecho del DCC pero, por si acaso,os voy a ahorrar el trabajo contando mis ideasmaliciosas. ]:-)

    2. INSEGURIDAD EN DCC

    2.1. Pasos previos

    Para poder llevar a cabo algunos de losexperimentos que voy a contar a continuacin,es necesaria una investigacin previa paraconseguir ciertos datos del usuario queusaremos (bonita redundancia), bajo suconsentimiento, espero, para realizar losexperimentos.

    Para comprenderlo vamos a ver un escenariode ejemplo, en el cual hay 3 personajes:

    Zer0Cul, Ac1dBrn, y PyC.

    Zer0Cul y Ac1dBrn, como su nombre indica,son 2 representantes cualesquiera de laconocida especie de los lamers, mientras quePyC es un fornido y poderos.... esto... no,

    quiero decir que PyC no es ms que un jovendel montn, del grupo de los frikis. ;-)

    Supongamos que Zer0Cul quiere hacer un DCCChat a Ac1dBrn para urdir sus prfidos planesde hackers. As que lanza la peticin de DCCChat, ve cmo Ac1dBrn la acepta, y comienzael parloteo... Lo que no sabe Zer0Cul es queen realidad con quien esta chateando no es

    con Ac1dBrn, si no con PyC, que ha capturadola conexin. ;)

    Ahora que ya os he puesto un poco en situacin,y os he abierto el apetito, vamos a ponernosen el pellejo de PyC.

    Para conseguir capturar esa conexin, PyC hanecesitado antes de nada recopilar una seriede datos acerca de Zer0Cul (el que ha lanzadola peticin de DCC). La mejor forma de conseguirestos datos es mediante ingeniera social(ingsoc), una de las armas ms poderosas.Pero qu datos se necesitan? Pues los dosdatos que circulan en una peticin de DCCChat, es decir: la IP de Zer0Cul, y el puertoque abre Zer0Cul para la peticin de DCC Chat.

    Cmo conseguir la IP de Zer0Cul

    No puedo hacer aqu un tutorial completo deobtencin de IPs, as que me limitar a explicarlo ms bsico.

    En primer lugar, si la red de IRC en la queestamos no encripta las IPs, como en el casode EfNet, nos bastar con escribir en nuestrocliente de correo:

    /dns Zer0Cul

    En caso de que la red tenga encriptacin deIPs, la forma ms sencilla es conseguirestablecer una conexin DCC con Zer0Culmediante ingeniera social. Este mtodo tienela ventaja de que tambin nos servir para elsiguiente punto, que es la obtencin del puerto.

    Aqu se pueden plantear 2 casos: queconsigamos que acepte una peticinnuestra de DCC, o que consigamos que lmismo nos lance una peticin de DCC.

    Para conseguir lo primero, muchas vecespodemos aprovechar el autoaccept del clientede correo de Zer0Cul. Ningn cliente autoaceptaarchivos .EXE, pero se puede probar con

    Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC

  • 8/14/2019 Haxcra10

    24/68

    Pgina 24 PC PASO A PASO N 10

    archivos inofensivos, como .TXT. En cualquiercaso, tantear el autoaccept es un riesgo yaque, si no acertamos, el to ya estar alerta y

    ser prcticamente imposible conseguir despusque acepte un DCC mediante ingsoc. As querecomiendo utilizar el autoaccept slo cuandose sabe con seguridad qu tipo de archivosautoacepta.

    Tanto si ha sido aprovechando el autoaccept,como si ha sido mediante ingsoc, una vez queest establecida la conexin de DCC tenemosque comprobar rpidamente las conexionesque tenemos establecidas. Para ello podemosutilizar el comando netstat desde una shellde Linux/Unix, o desde una ventana MS-DOS.

    Al ejecutar netstat veremos algo como esto:

    Podemos ver 2 conexiones: la primera es laconexin que tenemos establecida con elservidor de IRC, por lo que no nos interesaahora; en cambio, la segunda es precisamentela conexin de DCC que hemos establecidocon Zer0Cul, por lo que ah tenemos su IPvisible (si, eso que he pixelado para que noveis la IP de mi amigo :P). Por cierto, Poseidnes el nombre de la mquina en la que estoyahora mismo. A que mola poner nombres de

    dioses griegos a las mquinas de tu red local?Incluso cumple con las recomendaciones delRFC1178! ;-)

    Otra forma de comprobar la IP cuando nosacepta un DCC, sobre todo si sospechamosque no nos va a dar tiempo a hacer un netstat(bien porque enviamos un archivo muypequeo, o porque no podemos estarpendientes del momento en que acepta) es

    tener un sniffer escuchando en nuestrospuertos de DCC, y luego buscar los paquetesde esa conexin en el log del sniffer. Os recuerdo

    que en el primer artculo de la serie RAWexpliqu cmo manejar un sniffer.

    En el segundo caso, que es que sea l el quenos lance la peticin de DCC, no hay ningnmisterio, siempre y cuando utilicemos el softwareadecuado. Ni siquiera hace falta que aceptemosel DCC, ya que su IP se encontrar visible enla propia peticin, antes de establecer ningunaconexin. El ms famoso cliente de IRC, mIRC,no nos servir para esta tarea, ya que no nosmuestra los datos de una peticin de DCC. Portanto, tenemos las siguientes opciones:

    -En cualquier sistema: utilizar un cliente deTelnet. :-)

    En Linux: podis utilizar Kvirc o XChat.

    En Windows: podis utilizar algn script sobremIRC que s que muestre las peticiones de DCCcompletas, como por ejemplo IRCap.

    En Windows, si no nos gusta utilizarscripts: podemos tener un sniffer escuchandoen el puerto de IRC (tpicamente el 6667) ycuando nos llegue la peticin de DCC, quemIRC nos mostrar incompleta, ver el paquetecompleto en el log del sniffer.

    Cuando nos llegue la peticin veremos algocomo esto en nuestra ventana de Status:

    [ 1 8 : 3 8 ] Z e r 0 C u l - D C C C h a t

    (62.36.131.206)- Zer0Cul [email protected] CHAT chat 1042580430 4510

    Ah podemos ver que la IP de Zer0Cul es62.36.131.206 (como ejercicio os propongoque lo comprobis decodificando la IP), y queel puerto que ha utilizado para la peticin es

    Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC

  • 8/14/2019 Haxcra10

    25/68

    PC PASO A PASO N 10 Pgina 25

    el 4510.

    Cmo obtener los puertos de DCC de

    Zer0Cul

    El tema de los puertos se puede complicarmucho ms. El problema est en que no hayun puerto nico para DCC, si no quenormalmente se utiliza un puerto aleatoriodentro de un rango, que es precisamente elque os ense cmo configurar en mIRC.Nos encontramos aqu con algo sorprendente,y es que el DCC es mucho ms inseguro sitenemos un firewall. Esto se debe a que, taly como vimos anteriormente, si nuestro firewallno nos permite abrir puertos dinmicamentepara DCC, no tendremos ms remedio queabrir un determinado nmero de puertos en latabla NAT del firewall. Este nmero suele serpequeo, ya que nadie pierde el tiempo enabrir 200 puertos que no va a usar, ademsdel peligro que eso conlleva. Por tanto, la genteque est detrs de un firewall (por ejemplo,los usuarios de ADSL con router en multipuesto)suele tener un nmero pequeo de puertospara DCC.

    As que nuestra tarea consiste en averiguar elrango de puertos que tiene configurado Zer0Culpara DCC. Para eso, tenemos que conseguirque nos enve varios DCC (cuantos ms, mejor)y hacer estadsticas de los puertos que vemosen cada peticin.

    Si no conseguimos estas estadsticas tendremosque utilizar en los pasos sucesivos algunaherramienta que muestree puertos por fuerza

    bruta pero esta solucin, aparte de que nossecar los sockets en un periquete, muchasveces no ser lo suficientemente rpida comopara que nos de tiempo a capturar la conexin.

    2.2. DCC Chat Hijacking

    Esta tcnica que voy a explicar se puede utilizartambin para capturar conexiones de datos de

    FTP, tal y como veremos en el prximo artculode la serie que, si todo va segn lo previsto,tratar sobre FTP.

    Es precisamente lo que hizo PyC en el ejemploque os plante hace un rato.

    Antes de capturar conexiones ajenas, vamos aver cmo podemos capturar nuestras propiasconexiones.

    Para ello, le pedimos a un amigo, por ejemploScherzo, que nos lance una peticin de DCCChat.

    Si su peticin es algo as:

    Scherzo [email protected] CHAT chat 1042580430 5510

    Lo primero que haremos ser decodificar su IPque, en este caso, ser 62.36.131.206. Ahoraya podemos lanzar el telnet:

    telnet 62.36.131.206 5510

    Con esto establecemos la conexin de DCCChat con Scherzo. Para ver lo que escribimosnosotros mismos os recuerdo que tenis queactivar el eco local en vuestro cliente de Telnet.

    Y cuando nos escriba Scherzo... veremos queel texto que escribe Scherzo nos llega a pelo,y en ningn lugar aparece ninguna informacinsobre el nicko la IP de la persona que nosest hablando... ]:-)

    Supongamos que nos encontramos ahora en

    el escenario de ejemplo, y estamos en el pellejode PyC. Ya hemos recopilado la informacinnecesaria: IP de Zer0Cul, y puertos que utilizapara DCC. Ahora lo que nos hace falta es untercer dato, que es realmente vital, y es sabercundo lanzar Zer0Cul la peticin de DCCChat a Ac1dBrn.Podramos hacer un muestreo constante de lospuertos en espera de que lance alguna peticin,

    Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC

  • 8/14/2019 Haxcra10

    26/68

  • 8/14/2019 Haxcra10

    27/68

    PC PASO A PASO N 10 Pgina 27

    Esto es lo que ve Zer0Cul en una conexin queintent hacer con CHICOPOP, y que fuecapturada por PyC.

    Y esto es lo que ve el propio PyC en la mismasesin, desde Telnet. Como podis comprobar,no hay ninguna informacin sobre los nicks.

    2.3. DCC Send Hijacking

    La idea es exactamente la misma que con elDCC Chat, pero la diferencia es que aqu no setrata de una sesin interactiva, si no queinmediatamente despus del establecimientode la conexin comienza la transmisin delarchivo.

    Si hacis la captura mediante un cliente deTelnet, recordad activar el LOG para luegopoder ver el fichero. Bastar con que renombrisel archivo .log a la extensin adecuada.No podis conocer la extensin original delarchivo, ni su nombre, ya que la peticin (enla cual iba incluido el nombre del archivo consu extensin) no os lleg a vosotros, si no al

    receptor legtimo. Por tanto, tendris queanalizar el archivo para deducir su extensin.

    Evidentemente, no me voy a poner aqu ahablar sobre las cabeceras de los distintosformatos de archivos, ya que se saldra bastantedel tema, y esta revista sera ms gorda queuna biblia. :-)

    2.4. IP Spoofing en DCC

    No hay que ser muy listo para darse cuenta deque spoofear la IP en una peticin de DCC esabsolutamente trivial. Si vuestro problema esque no sabis lo que es el IP spoofing, osaclaro en un segundo que consiste simplementeen enviar, con algn fin, paquetes con una IPfalsa, es decir, que no es vuestra IP real.El IP spoofing clsico consiste en modificar el

    campo de IP de origen en la cabecera de losdatagramas IP, lo cual tiene muchosinconvenientes que no viene al caso comentar.Pero en este caso la modificacin no se hacea nivel de red, si no dentro del propio protocoloDCC.

    Veamos algunas ventajas que se pueden sacardel hecho de poner una IP que no es la nuestraen una peticin de DCC.

    Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC

    !

    Como puedes ver, en cada artculo te "proponemos" que

    investigues sobre temas que quizs nunca te has planteado.

    Busca informacin sobre las cabeceras de archivo y vers

    que cada tipo de archivo (.exe, .avi, .zip, .mp3 ) est

    perfectamente definido gracias a su cabecera.

  • 8/14/2019 Haxcra10

    28/68

    Pgina 28 PC PASO A PASO N 10

    Y cual es la utilidad de hacer FXP en DCC?Pues eso depende de vuestra imaginacin,pero se me ocurren un par de ejemplos.

    En primer lugar, si tienes una mquina conuna conexin rpida (por ejemplo, en el curro,o en la facultad) y quieres bajar archivos deun Fserver rpido desde casa, puedesautomatizar los downloads desde el Fserverhacia la otra mquina sin moverte de casa.Supongamos que el nick del Fserver es WrzServ,el nick de nuestra mquina remota es FastDld,y nuestro nick en casita es PyC. Vamos a verlopaso a paso:

    paso 1: ponemos el archivo que queremosen la cola de download del Fserver

    Se sale del tema del artculo explicar elfuncionamiento de un Fserver, as que esperoque ya conozcis el clsico mecanismo de:trigger -> bsqueda del archivo mediante diry cd -> get.

    2.4.1. A ver quin es ms listo

    Si nos paseamos a menudo por redes con

    encriptacin de IPs, como el IRC-Hispano, oNetshock, nos podremos encontrar con algnlistillo que intente utilizar con nosotros la tcnicaque expliqu antes para conseguir tu IP. Merefiero a conseguir por cualquier mtodo(tpicamente ingeniera social) establecer unaconexin DCC contigo.

    En el momento en que el listillo consiga quele enves un archivo o le hagas un DCC Chat,estar convencido de que ya tiene tu IP. Claroque... lo que no sabe es que nosotros somosan ms listos que l. ;-)

    Cuando sospechemos que alguien quiereconseguir nuestra IP intentando convencernospara establecer cualquier tipo de conexinDCC, podemos simular que hemos cado en latrampa, envindole nosotros un DCC pero,por supuesto, esta peticin de DCC nollevar nuestra IP, si no cualquier otra.La eleccin de la IP la dejo a vuestraimaginacin, pero puede ser bastante divertidover cmo el listillo comienza su ataque contrauna IP de a guardia civil, o contra su propiaIP.

    2.4.2. FXP en DCC

    Bueno, lo llamo FXP por llamarlo dealguna forma. Espero que sepis lo quees el FXP (File eXchange Protocol), pero osresumo contndoos que consiste en utilizarun cliente (tpicamente de FTP, aunque en

    este caso ser de DCC) para realizaruna transferencia de archivos entre 2servidores.

    El FXP es el mecanismo utilizado por los couriersde los grupos de warez para distribuir lasreleases a travs de los distintos servidores,sin necesidad de que ellos tengan conexionesde alta velocidad en su casita.

    Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC

    !

    Para ms informacin sobre FXP psate porwww.hackxcrack.com y descrgate GRATIS el nmero

    uno de esta revista en formato PDF ;)

  • 8/14/2019 Haxcra10

    29/68

  • 8/14/2019 Haxcra10

    30/68

    Pgina 30 PC PASO A PASO N 10

    Aqu os copio un par de capturas de pantallade un DCC chat puenteado entre 2 colaboradoresvoluntarios, para que veis que desde el punto

    de vista de ambos es con PyC con quien creenestar hablando.

    Esto es lo que ve shoot_me en el DCC Chat con Smeagol_

    Esto es lo que ve Smeagol_ en el DCC Chat con shoot_me

    Os dejo como ejercicio que apliquis esta mismaidea a DCC Send en lugar de a DCC Chat, taly como os expliqu en el apartado anteriorsobre FXP.

    2.4.4. Escaneo annimo de puertos atravs de un Fserver

    No me cabe duda de que vais a flipar con loincreblemente retorcida que es mi mente, yaque hay miles de formas ms sencillas de hacerun escaneo de puertos que la que voy a plantearaqu, pero os recuerdo que mi fin no es ensear

    a nadie a ejecutar un programa con un botnmuy grande que ponga DESTRUIR MAQUINAREMOTA, si no el hurgar en las tripas de los

    protocolos hasta que nuestra ansia deconocimiento se sacie al conocer hasta los msrebuscados trucos.

    Aqu os explicar como hacer un escaneo depuertos annimo, utilizando un Fserver comobouncer. Los resultados son bastante psimos,os lo advierto. xD

    El sistema de escaneo de puertos ms tpicoes el de lanzar intentos de conexin a cadapuerto, y ver cual es la respuesta. No puedoentrar aqu en el tema de los flags de la cabeceraTCP por falta de espacio pero, para los quesepis algo del tema, me refiero al envo depaquetes con el flag SYN. Cada vez que seintenta establecer una conexin TCP/IP, loprimero que hace el cliente es enviar al servidorun paquete con el flag SYN. Esto, por supuesto,tambin ocurre al intentar establecer unaconexin de DCC.

    Planteamos una nueva situacin. Tenemos unFserver, cuyo nick es WrzServ, y una mquina

    que queremos escanear, cuya IP es 82.15.31.37,y nosotros mismos somos el usuario PyC, parano variar. :-)

    La condicin necesaria para que esto funcionees que el Fserve autoacepte algn tipo dearchivo, como ocurre muchas veces. Yo slorealic experimentos con un Fserve que utilizabaIrcap 6.999. Propongo como ejercicio

    Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC

  • 8/14/2019 Haxcra10

    31/68

    PC PASO A PASO N 10 Pgina 31

    que intentis conseguir esto mismo con otrosscripts, para lo cual tendris que hacer unalabor de investigacin para analizar las

    respuestas que os pueda dar el script, tantoante un puerto abierto, como ante un puertocerrado. Suponemos en el ejemplo que WrzServutiliza Ircap 6.999, para que veis las respuestasque da este script ante un escaneo.

    1: envo de la peticin spoofeada

    Tenemos que construir una peticin de DCCSend (ya que DCC Chat es improbable quesea autoaceptado) en la que la IP sea la de lamquina que queremos escanear (82.15.31.37),y el puerto pues... el que queremos escanear.:-)

    Vamos a ver si en esa IP hay un servidor deSMTP corriendo (puerto 25), as que construimosel siguiente paquete:

    /quote privmsg WrzServ :DCC SEND uber.lco 1376722725 25 6922

    Por supuesto, el primer nmero es la codificacinde la IP que queremos escanear, el segundoes el puerto (25 = SMTP), y el tercero untamao de archivo que nos inventamos, al igualque el nombre del archivo.

    2: respuesta del script ante un puertoabierto

    Si hay un servidor SMTP en la mquina queestamos escaneando, la respuesta de WrzServser algo como esto:

    -WrzServ- Recibido caca.pis ( 89 bytes ).Tus crditos en mi Fserve sonde 300000 ( + 0 )

    Como vemos, el Fserver nos dice que ha recibido89 bytes, lo cual significa, no slo que el puertole ha respondido cuando ha lanzado laconexin, si no que adems le ha enviado un

    mensaje de bienvenida de 89 bytes.En el caso de que no haya mensaje debienvenida, nos responder con ( 0 bytes ).

    La respuesta suele tardar bastante en llegar,os aviso.

    3: respuesta del script ante un puertocerrado

    En este caso, la respuesta puede ser algo comoesto:

    -WrzServ- Recibido caca.pis ( bytes ). Tuscrditos en mi Fserve sonde 300000 ( + 0 )

    Como vemos, en este caso no ha recibido nada,ya que no ha podido conectar con el puerto.La diferencia con el caso de que el puerto estabierto pero sin mensaje de bienvenida, es queen ese caso nos pondra ( 0 bytes ), en lugarde poner simplemente ( bytes ).

    Por supuesto, la mquina que est siendoescaneada no conocer en ningn momentovuestra IP, ya que ser WrzServ el que se estconectando a sus puertos.

    2.5. Desvariando de todas las formasposibles

    Si usamos nuestra retorcida imaginacin, senos pueden ocurrir mil virgueras ms, lamayora sin la ms mnima uti l idad.Por ejemplo, si lanzamos esta peticin a unusuario cualquiera, por ejemplo a Zer0Cul:

    /quote privmsg Zer0Cul:DCC CHAT chat3586965548 23

    Cuando acepte la peticin, su cliente de IRCse conectar, sin que l lo sepa, a un servidoren el que unos frikis han puesto la peli de starwars en ascii. Todos los fotogramas de la pelile irn llegando a travs del DCC Chat.Realmente intil, verdad? :)

    Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC

  • 8/14/2019 Haxcra10

    32/68

    Pgina 32 PC PASO A PASO N 10

    Otra idea estpida consiste en lanzar unapeticin de DCC Chat donde la ip est spoofeadapara que sea la de alguna mquina que tenga

    un servidor de echo (puerto 7) corriendo.Algunos cablemodems, por ejemplo, tienenservicio de eco. Cuando acepten el DCC Chat,todo lo que escriban en la sesin de chat lesser devuelto como si estuviesen hablando conun loro.

    Otra cosa que podis hacer es conectaros acualquier tipo de servidor utilizando DCC Chat.

    Por ejemplo, servidores de FTP, POP3, SMTP,WEB, etc, etc. Podis escribir comandos y recibirlas respuestas como si se tratase de Telnet. Y

    luego dicen de emacs, pero se puede hacertodo sin salir de tu cliente de IRC, as que, comosigamos as, mIRC terminar siendo el sistemaoperativo del futuro. xD

    Autor: PyC (LCo)Ilustraciones: MariAn (LCo)

    Agradecimientos: Scherzo (LCo), uhm, CabRa,CHICOPOP, shoot_me, kaiszz, Smeagol_, ...

    QUIERES COLABORAR CON PC PASO A PASO?PC PASO A PASO busca personas que posean conocimientos deinformtica y deseen publicar sus trabajos.

    SABEMOS que muchas personas (quizs tu eres una de ellas) han creadotextos y cursos para consumo propio o de unos pocos.

    SABEMOS que muchas personas tienen inquietudes periodsticas peronunca se han atrevido a presentar sus trabajos a una editorial.

    SABEMOS que hay verdaderas obras de arte creadas por personascomo tu o yo y que nunca vern la luz.

    PC PASO A PASO desea contactar contigo!

    NOSOTROS PODEMOS PUBLICAR TU OBRA!!!

    SI DESEAS MS INFORMACIN, env anos un mai l [email protected] y te responderemos concretando nuestra oferta.

    Tambin necesitamos urgentemente alguien que se ocupe de lapublicidad y de la web de esta editorial, para ms informacinenvanos un mail a [email protected]

    Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC - Serie Raw - DCC

  • 8/14/2019 Haxcra10

    33/68

    PC PASO A PASO N 10 Pgina 33

    - Bienvenidos de nuevo. En el ltimoartculo dimos los primeros pasos en el mundodel acceso a datos. En el ejercicio propuesto,creamos un formulario con 4 cajas de textoque mostraban los datos de la BD, y cuatrobotones para movernos por ellos.

    Al final del ejercicio os coment que sillegbamos al principio o final de los datos, yvolvamos a pulsar anterior o siguiente(dependiendo de donde estemos posicionados),el programa devolvera un error. Os comentque las propiedades que debamos usar parareparar esto eran EOF (End Of File) y BOF(Begin Of File). Estas dos propiedades nosdevuelven verdadero si el Recordset estposicionado al final o principio del ficherorespectivamente.

    Para no darle muchas vueltas al tema, porqueseguro que muchos ya lo habris solucionado,os escribo el cdigo necesario para depurareste error

    Private Sub CmdAnterior_Click()

    If Not RsRecordset.BOF Then

    RsRecordset.MovePrevious

    LlenarCampos

    End If

    If RsRecordset.BOF Then

    RsRecordset.MoveLast

    LlenarCampos

    End If

    End Sub

    Private Sub CmdSiguiente_Click()

    If Not RsRecordset.EOF Then

    RsRecordset.MoveNext

    LlenarCampos

    End If

    If RsRecordset.EOF Then

    RsRecordset.MoveFirst

    LlenarCampos

    End If

    End Sub

    Public Function LlenarCampos()

    If Not RsRecordset.EOF And Not

    RsRecordset.BOF Then

    TxtIdCliente = RsRecordset("IdCliente")

    TxtNomCliente = RsRecordset("NomCliente")

    TxtDirCliente = RsRecordset("DirCliente")

    TxtTelCliente = RsRecordset("TelCliente")

    End If

    End Function

    Curso de Visual Basic (V):Acceso a datos II, Altas,Bajas y modificaciones

    Dedicado a Oscar Esquinas Saez (Xevian), fallecido el 28/04/2003Por Pedro del Valle

    Esta es la quinta entrega del Curso de Visual Basic y la segundadedicada al Acceso a Datos. El trabajo con Datos es, en la actualidad, uno delos valores ms apreciado por las empresas.

    No importa cuntos datos seas capaz de almacenar, lo imprescindible espoder acceder a ellos cuando los necesitas !!!

  • 8/14/2019 Haxcra10

    34/68

    Pgina 34 PC PASO A PASO N 10

    Qu hemos hecho?, pues, bajo mi criterio, leestoy diciendo al programa que cuando estemosal final de fichero (o principio) y se vuelva a

    pulsar "Siguiente" (o "Anterior") se de la vueltaentera. Es decir, si estamos en el ltimo registrodel Recordset yp u l s a m o s"S igu ien te" , e lprograma volver alprimer registro y lomost rar . O t rapo s i b i l i d ad e smostrar un mensajecuando estemos alfinal o principio defichero, lo dejo bajovuestro criterio.Bien, empecemosentonces con algonuevo. Lo quevamos a hacer paraempezar es unformulario donde semuestren todos losregistros de la basede datos. Para ellou t i l i za remos e lobjeto "ListView".

    Abrimos un nuevoproyecto de VisualBasic, y elegimosEXE e s t n da r .

    Vamos al men "Proyectos" y seleccionamos"componentes". Enp r i n c i p i o n odeberamos tener

    ninguno aadido. Enla lista desplegable,buscamos "MicrosoftWindows CommonControls 6.0" y loseleccionamos.

    Pasamos a configurar el "ListView". Para ellodebemos pulsar en el botn "Personalizado"que est en el cuadro de propiedades,aparecindonos la hoja de propiedades delobjeto.

    Al aceptar veremos que se nos han aadidovarios objetos en la barra de herramientas dela izquierda. El que a nosotros nos interesa

    ahora mismo es el "ListView", as queagregumoslo a nuestro formulario

    CURSO DE VISUAL BASIC - ACCEDIENDO A DATOS (II)

    Recordad que debemos agregar las referencias necesarias

    para el acceso a datos. Estas se encuentran en el men

    "Proyectos->Referencias". Para agregarlas tenemos que

    seleccionar "Microsoft ActiveX Data Objects 2.6 Library"

    !

  • 8/14/2019 Haxcra10

    35/68

    PC PASO A PASO N 10 Pgina 35

    En este objeto queremos que aparezcan losdatos de la BD, por lo tanto, deberamos agregartantas columnas como campos hay en la basede datos. Si nos fijamos, en la hoja depropiedades tenemos una pestaa con el literal"Encabezados de columna". Vamos a ella, ycomenzamos a aadir encabezados, picandoen el botn "insertar columnas".

    Aqu lo nico que vamos a indicarle es elnombre. Para no complicarlo, le pondremoslos mismos que a los campos de la base dedatos.La primera columna se llamar "IdCliente",igual que el primer campo. Cuando loescribamos, volvemos a pulsar "Insertar

    Columna" y aadimos todas las dems.

    Volvemos a la pestaa "General", y cambiamosla propiedad "View" a "lvwReport", paravisualizar los datos en lnea. Tambin, y pararecrear una buena visualizacin de los registros,seleccionamos, en la misma hoja depropiedades, "FullRowSelect" (seleccincompleta de la lnea cuando pulsemos en

    ella) y "Gridlines"(lneas separadorasentre registros) .

    Pulsamos "Aceptar" ye j e c u t a m o s e lp r o g r a m a . D eprimeras, si hemoshecho todo bien,debera aparecernosel formulario, con el"ListView" vaco, losencabezados decolumna escritos y laslneas que separarnlos registros.

    Todo bien?, puesrellenemos el List.

    Vamos al cdigo, yde c l a r amo s do s

    variables, un "Recordset" y un "Connection"

    Option Explicit

    Dim Conn As ADODB.Connection

    Dim RsRecordset As ADODB.Recordset

    Lo que viene ahora es complicado. Parahacernos una idea, lo que tenemos queconseguir es que se aadan todos los registrosde la base de datos en el "ListView". Para ellotenemos que cargar el "Recordset" con estosregistros, recorrerlo por completo e iraadindolos al "ListView". Vamos a crear unarutina, que llenar el Objeto. Pongmosle unnombre significativo, como por ejemplo,"LlenarList". Antes de codificarla deberamos

    conectar con la base de datos. Vamos al"Form_Load" y conectamos como lo hicimosen el ejercicio anterior.

    Private Sub Form_Load()

    Set Conn = New ADODB.Connection

    Conn.Open "Provider

    =Microsoft.Jet.OLEDB.4.0;Data

    Source =" & App.Path &

    CURSO DE VISUAL BASIC - ACCEDIENDO A DATOS (II)

  • 8/14/2019 Haxcra10

    36/68

    Pgina 36 PC PASO A PASO N 10

    "\bd.mdb;Persist Security

    Info=False"

    Set RsRecordset = New ADODB.Recordset

    RsRecordset.Open "Clientes", Conn,adOpenDynamic, adLockOptimistic

    End Sub

    Acordaos que debis guardar el proyectoprogresivamente, no solo porque podis perderlos datos, sino porque si no lo guardis, elobjeto "App.Path" hace referencia a una carpetatemporal de la instalacin de Visual Basic, porlo que no nos encontrar la base de datos de

    Access.

    Probamos la conexin con ctr + F5, paraarreglar posibles errores antes de seguircomplicando el ejercicio. Una vez creada laconexin, vamos a cargar el "ListView" con losdatos que ya tenemos en el "Recordset".

    Codifiquemos la rutina "LlenarList". Para ellodebemos hacer un bucle que recorra el"Recordset", desde el BOF hasta el EOF. Loque tenemos que hacer primero espo s i c i o n a rn o s a l p r i n c i p i o , c o n"RsRecordset.MoveFirst". Despus decolocarnos, generamos un bucle repetitivomientras que no lleguemos a final de fichero.Dentro de este bucle llenaremos el "ListView".

    Esto puede parecer complicado, ya que parallenar el List tenemos que declara una variablede tipo "ListItem". Yo la he declarado en lamisma rutina "LlenarGrid", pero se puededeclarar igualmente debajo del "Option Explicit".Esta variable ser la intermediaria entre la el

    "Recordset" y el "ListView". Como que la variable"ListItem" es un objeto, debemos instanciarlacon el comando "Set". Mejor pongo el cdigonecesario y lo comentamos:

    Sub LlenarList()

    Dim Nodo As ListItem

    List.ListItems.Clear

    RsRecordset.Requery

    RsRecordset.MoveFirst

    While Not RsRecordset.EOF

    Set Nodo = List.ListItems.Add(, , RsRecordset

    ("IdCliente"))Nodo.SubItems(1) = RsRecordset("NomCliente")

    Nodo.SubItems(2) = RsRecordset("TelCliente")

    Nodo.SubItems(3) = RsRecordset("DirCliente")

    RsRecordset.MoveNext

    Wend

    List.Refresh

    End Sub

    La primera lnea que hay en la rutina es ladeclaracin de la variable, a la cual yo hellamado "Nodo". Seguimos, y vemos"List.ListItems.Clear". Este mtodo tiene comofuncin limpiar el "ListView". Posteriormenterefrescamos el "Recordset", con su propiedad"Requery" y nos posicionamos justamente alprincipio de los datos. Hemos hecho todo estoporque estamos pensando que en un futuroharemos actualizaciones contra la base dedatos, y por lo tanto necesitaremos borrar elList, refrescar el Recordset (para mostrar loscambios) y movernos al primero.

    Ahora viene el bucle. Le estamos diciendo alprograma que mientras no lleguemos al finaldel fichero, sigue repitiendo la operacin (WhileNot RsRecordset.EOF).

    Ahora viene tal vez lo ms complicado. Se tratade cargar la variable Nodo con los datos quequeremos y a parte, pasrselas al "ListView".Para ello tenemos este mtodo:

    S e t N o d o = L i s t .L i s t I t em s .A d d ( , ,

    RsRecordset("IdCliente"))

    Aqu, lo que estamos haciendo es decirle a lavariable Nodo, que se le aada el contenidodel campo "IdCliente" del primer registro, y asu vez, aadindola al "ListView". Si nos fijamos,hemos omitido los dos primeros parmetrosdel mtodo "List.ListItems.Add", ya que no losconsideramos necesarios, pero podran seraadidos, ya que son el ndice y la clave de

    CURSO DE VISUAL BASIC - ACCEDIENDO A DATOS (II)

  • 8/14/2019 Haxcra10

    37/68

    PC PASO A PASO N 10 Pgina 37

    este "Item".

    Hasta ahora solo hemos aadido el primer

    campo del "Recordset", el cual podramosconsiderar como el campo "Madre", ya que esel campo clave de la base de datos. Ahoradebemos aadir el resto de los campos, paraello utilizaremos la propiedad "SubItems" dela variable Nodo. En el cdigo vemos como seiran aadiendo "Items", donde el nmeroindica la columna donde queremos que semuestre.

    Ejecutamos el programa. Deberan aparecertodo los registros de la base de datos ennuestro "ListView". Es de suponer que tantoel "ListView" como las columnas no estn biencolocados. Seguro que os aparece una columnaen blanco mucho mas grande que las dems.Hagamos entonces el "ListView" del tamaonecesario (seguramente tendris que reducirlo)o bien hacer las columnas ms grandes en suhoja de propiedades.

    Bueno, finalmente nos debera quedar algoparecido a esto

    Llegados a este punto, creo que estamos listospara hacer un mantenimiento completo. Vamosa incorporar cajas de texto que nos ayudarna aadir y modificar registros. Podis utilizarlas mismas que en el ejercicio anterior.Tambin agregaremos unos botones que nospermitirn Aadir, Modificar y Eliminar registros.Por ejemplo, bajo mi criterio, he aadido tresbotones (Nuevo, Modificar, Borrar) a la derechadel "ListView", y abajo, los botones Aceptar y

    Cancelar, dentro de un Frame.

    As es como quedara:

    Estupendo, esto ya va cobrando forma. Serainteresante que cuando el usuario de esta

    aplicacin picase sobre alguno de los registros,los datos de este pasaran a las cajas de texto.Es una operacin sencilla, a parte, si hacemosesto, estaremos posicionando el "Recordset"en el registro seleccionado. Creemos una rutinaque traspase los datos a los "TextBox". Porejemplo, la podemos llamar "Pintar".

    A esta rutina la debemos llamar desde elevento click del "ListView", as, cuando pulsemossobre un registro, los datos pasarn a las cajas

    de texto.

    Sub Pintar()

    Dim Nodo2 As ListItem

    Set Nodo2 = List.SelectedItem

    RsRecordset.MoveFirst

    RsRecordset.Find "IdCliente=" & Nodo2

    If Not RsRecordset.EOF Then

    TxtIdCliente.Text = RsRecordset("IdCliente")

    CURSO DE VISUAL BASIC - ACCEDIENDO A DATOS (II)

    Los frames son objetos contenedores, es decir, si tenemos

    d