Faq

- Conozco un hacker muy bueno, ha "defaceado" muchos sitios.
R: Hacer un "deface" no es difícil, y mucho menos en estos tiempos en los cuales se usan tantos sistemas interactivos o de información en paginas Webs como blogs, foros, guestbooks, etc. En los cuales el atacante no necesita realmente penetrar el Sistema. Generalmente las personas que hacen defaces no son especialistas en la seguridad informática y se les puede considerar, sin tratar de ofender, busca famas.

- Qué tipos de fallas (bugs) de seguridad existen?
R: Existen un numero bastante grande de tipos de fallas, por lo tanto la pregunta es bastante generalizada, tratare de resumirla dando las mas comunes:

Bugs a nivel implementación.
1.1 Passwords débiles.
1.2 Información sensible descubierta.
1.3 Firewalls y redes mal implementadas.
1.4 Permisos en el sistema de ficheros mal configurados.
2. Bugs a nivel código.
2.1 Manipulación de memoria (Overflows, Format strings, Memory leaks, Entre otros)
2.2 Secuestro del proceso (Pointer hijacking, Race conditions, Entre otros).
2.3 Errores de validación de información de entrada: SQL Injection, Cross Site Scripting, Command Injection, File reads, Code injection, Authorization bypass, Etc)
2.4 Error en los controles de memoria (Denial of Service).
2.5 Congestión de un servicio o protocolo (Denial of Service).

- Cómo puedo encontrar fallas (bugs) de seguridad en un sistema?
R: Generalmente, un buen auditor de seguridad lo hace manualmente. Las utilidades solo son herramientas que facilitan al usuario la búsqueda de fallas, no las encuentran.

- Manualmente?, yo uso Retina/Nessus/Otro.
R: Si, manualmente. Los scanners de vulnerabilidades son solo sistemas que se basan en verificar vulnerabilidades a través de identificación de versiones y "prueba y resultado", pero tienden a dar muchos falsos positivos, asi como tienden a alertar a el usuario que existe una vulnerabilidad la cual es critica, pero esto es completamente relativo ya que existen muchos factores los cuales pueden hacer que el sistema el cual estas scanneando no sea critico (Como pueden ser que no es explotable en el sistema operativo, en la arquitectura) y simplemente los reportes son absurdos. Esto no quiere decir que no sean útiles, sin embargo, pero no hacen todo el trabajo por nosotros, como dije en el punto anterior, las herramientas son simplemente eso, herramientas, nosotros tenemos que saber accionarlas y no nos van a hacer el trabajo por nosotros, solo lo van a soportar.

- Cómo puedo explotar fallas (bugs) de seguridad en un sistema?
R: Si son a nivel implementación, con el uso de tu criterio es suficiente, si son a nivel código, necesitaras tener noción de programación (o hacer pruebas de inyección de información de entrada, dependiendo la vulnerabilidad), si no las tienes, existen muchos sitios los cuales publican "exploits".

- Ayuda!, no puedo hacer ip spoofing!
R: El ip spoofing es bastante viejo y en la actualidad la mayoría de las implementaciones de protocolos IP protegen al sistema contra esta técnica y no se logra hacer (Esto también depende del protocolo, pero por lo general la gente quiere hacer spoofing sobre tcp/ip), no se debe confundir al spoofing con el poisoning o duplicación de MACs ni técnicas similares (Ettercap nos puede dar una idea de esto).

- No puedo compilar mi exploit, que hago?
R: Existen muchas razones por las cuales un código no pudo ser compilado satisfactoriamente, el rango de respuestas es muy amplio. Recomendaría que si no puedes compilar un exploit, investigues un poco sobre programación antes de intentar correrlo.

- Mi exploit no funciono aun cuando el sistema reporta que la versión del servicio que se esta explotando es vulnerable!
R: Existen varias razones por las cuales esto pudo haber pasado, estas son las mas comunes:

1. El servidor esta parchado, independientemente de la versión que nos regrese.
2. El exploit no tiene el target (la dirección, el offset y/o el valor) correcto
3. La técnica de explotación no es valida en el sistema operativo víctima o la arquitectura es diferente.
4. El servidor esta corriendo algún tipo de protección, en las cuales pueden entrar protección de paginas, protección de ejecución del stack, o simplemente esta dentro de una jaula (jail, chroot).
5. Los valores dados al exploit no son correctos.
6. El exploit no funciona.

- Considerarse hacker?
R: El termino "hacker" esta tan alterado que no podría responder esta pregunta que suena tan sencilla, en lo personal no me gusta usar el termino "hack" o algún derivado. Cuando empiezas con la seguridad informática realmente te mueves por mundos donde el objetivo es la palabra "hacker", sin embargo mientras mas tiempo pasa, menos piensas en esa definición, hasta que llegas a considerarla insignificante. En mi opinión, considerarse hacker?, no, por la simple razón de que no creo en el termino "hacker".

- Tengo la IP de mi víctima, ahora, cómo ataco?
R: La IP es insignificante, lo único que encontraste fue la puerta pero aun no tienes la llave. Si respondo como atacarla, tendría que crear todo un texto sobre la pregunta y aun no seria suficiente, ya que atacar no se trata de seguir instrucciones, sino de tener criterio e ingenio.

- Qué es un exploit?
R: Un exploit es un programa el cual aprovecha un fallo de seguridad en otro programa o servicio para alterar su proceso y ejecutar las instrucciones dadas.

- Qué significa “brute force”?
R: Es un método de Prueba y resultado, en pocas palabras, es probar todas las posibilidades hasta obtener el resultado deseado. Un ejemplo claro es usar el “brute force” para conseguir el password de un correo, en el cual se utilizan varios tipos de información de entrada, como listas de palabras, donde se va probando una a una hasta obtener el password.

- Qué es TELNET?
R: TELNET es un programa de emulación de terminales sobre TCP/IP, El cliente TELNET se conecta desde tu computadora hacia un servidor en la red que tiene habilitado el servicio de servidor de TELNET. Después de esto puedes ejecutar comandos a través del mismo programa como si estuvieran escribiéndolos directamente en el servidor remoto. TELNET NO ES un “programa hacker”, si esta pregunta te surgió de algún texto “hacker”, te sugiero que cambies tu lectura.

- Cómo consigo acceso a una shell remota?
R: Conseguir acceso a una shell remota no significa nada mas que tener acceso a través de algún protocolo a una terminal sobre un sistema remoto. Después de definir esto pregunto: Para que quieres la shell?, puede ser para:

1. Compilar programas.
2. Para aprender a usar un sistema UNIX-like.
3. Para usarla como cliente IRC.
4. Para lanzar ataques de denegación de servicio.
5. Para realizar ataques informáticos relacionados con la intrusión informática.

Si tu interés corre en las opciones 4 y 5, te sugiero que te olvides de pedir una shell, que solo alguien muy estúpido te va a dar una. En cambio, si tu interés es la opción 3, puedes pedirla siempre y cuando el administrador de la shell tenga en cuenta para que pretendes usarla, ya que en muchos casos los dueños tienden a prohibir hacer esto. Si estas dentro de la opción 1 o 2, existen varios servidores en Internet los cuales ofrecen shells gratis, te sugiero buscar en google. Si es otra opción no listada, entonces usa tu criterio para responder la pregunta.

- Qué significa ingeniería inversa o de reversa?
R: Es un método usado para revertir un código compilado a su código fuente original.

- "El mejor experto de seguridad informática es aquel que nadie conoce"?
R: En mi opinión, esto es completamente falso, una persona asi debe ser conocida por el simple hecho de que leyendo y probando no son las únicas formas de aprendizaje que existen, generalmente los expertos preguntan a amigos, preguntan en listas de correo, foros, si no muchas veces no podrán responder su pregunta.

- Es realmente necesario saber programar para sobrepasar la seguridad de un sistema o realizar una intrusión informática?
R: No.

- Es una persona que programa "exploits" un experto en la intrusión informática?
R: Normalmente, no. Existe una gran diferencia entre la programación de exploits y la intrusión informática, ambos requieren de ingenio y criterio (Esto es relativo, por supuesto). Aunque la pregunta también debería responderse con otra pregunta: Programar exploits te da experiencia sobre penetration testing? Completamente falso. Claro que esto también depende de la propia persona, asi como existen pen-testers expertos que también tienen talento programando pruebas de concepto, existen algunos que no tienen la mas mínima experiencia en el tema.