17 jul 2010

Entrevista a Kingcope

A continuación transcribimos una entrevista que realizó Carlos Tori al investigador Kingcope autor de varias pruebas de concepto de vulnerabilidades. A pedido de Segu-Info la tradujo y aquí la compartimos. La versión original en inglés fue publicada por Carlos y está disponible en ForoSI.

Kingcope <kcope2@***>
para Carlos Tori
asunto Re: contact

Hola Tori, perdón por el retraso

1- Primero, cuéntanos algo acerca de ti… quien eres, que haces, etc :)

Mi nombre es Nikolaos Rangos, tengo 26 años y vivo en Alemania central. Me gusta jugar con cosas técnicas como software y lenguajes de programación. En mi compañía trabajo como consultor de seguridad IT, hacemos proyectos para medianas y grandes compañías, principalmente tests en aplicaciones (web-).

2- Cuando empezaste con la seguridad de la información ?

Mi primera computadora fue una C64 y algunos años luego, tuve una PC de verdad. Estuve realmente fascinado con lo que era posible hacer en las computadoras, así que empecé programando, creo que mi primer lenguaje de programación fue QuickBasic.

Mi intención en algún punto era tan solo hackear un servidor. Realmente puedo recordar eso como si hubiera sido ayer. Así que pensé acerca de como carajo podía meterme en un servidor de verdad. La respuesta fue simple para mí: “solo mira un servidor que dé hacia Internet que ya haya sido hackeado antes por alquien más.” Así que abrí mi browser y fuí a www.alldas.org. En esos días, ese era un website en el que los sitios deformados estaban publicados tal como hoy es en zone-h.org. Usé un exploit remoto de packetstormsecurity que era actual en aquel mes, así que las chances eran buenas de que ello funcionara. Lo disparé a la lista de webservers que saqué de alldas, y voilá, tenía una completa shell remota funcionando en el servidor. A este punto estaba sorprendido sobre cuan fácil fue meterme en la red, así que los tiempos cambiaron y comencé a escribir mis propios exploits.

3- ¿Cómo encontraste esas vulnerabilidades en tan diversas plataformas ? ¿Qué métodos o herramientas usaste? A mano, fuzzing o...

A groso modo, encontrar vulnerabilidades, para mí tiene mucho que ver con el conocimiento que el escritor de exploits tiene.

Necesitas saber como funcionan las cosas y leer código C y assembly. La lectura del lenguaje de programación no es la parte crítica, pero necesitas saber como esta formado el programa, como trabaja realmente, sus algoritmos y como funciona todo esto junto. Con un buen conocimiento específico sobre como los programas funcionan, puedes más facilmente encontrar 0days. Encontrar vulnerabilidades normalmente tiene un esquema. Primero tomo un software específico y luego lo instalo en la plataforma en la que este corre, a ser: en Linux, Windows o Solaris. Luego investido como este trabaja, que es lo que hace y como sus partes trabajan juntas, eso siempre depende en el lado técnico por supuesto.

Si tengo el código fuente, leo las partes en donde el usuario controla los argumentos que pueden ser introducidos. Por ejemplo, en un server FTP lo primero que miro es el esquema de autentificación (si puedo hacer un by pass), luego miro en el protocolo FTP por si allí hay un buffer overrun, donde se reciben los comandos del servidor FTP. Esto depende realmente del software. Prefiero el testeo manual de las vulnerabilidades, un fuzzing manual, porque un script automático puede perderse algo, y eso a menudo sucede. El más básico y efectivo modo para mí, son los tests fuzzing manuales (o semi automáticos a completamente automáticos depende el protocolo o software, ya que tu no puedes testear bugs en una pila TCP/IP a mano por ejemplo) conjuntamente con la lectura del código que debe ser “humanamente legible” como C o assembly.

El bypass in.telnetd fué encontrado por mi por ejemplo, solo leyendo el código e intentando el potencial bug en hosts reales/banco de pruebas.

4- ¿Qué recomiendas para los principiantes en Bug Hunting ?

Libros, sitios, scripts, ciertas prácticas… Personalmente en primer lugar aprendo que puertos son. Esto suena ser muy fácil. Pero cuando tu entiendes que un servicio corre en un puerto específico tu piensas “Ahhh”, esto significa exploit remoto, tu ejecutas el exploit a través del puerto que estás atacando. El resto es trabajo duro.
Realmente necesitas amar el hacking, eso por cierto es una pasión. También tengo alguna gente que me ayuda en primer lugar, pero tu luego necesitas aprender apender y aprender más acerca de como el software trabaja por dentro. Eso no me ayudó a reescribir exploits, cuando reescribí exploits, luego los expandí. Por ejemplo, adosando offsets a los exploits puede ser útil, porque luego tú aprenderás como trabajan los exploits.

Tengo algunos libros aquí en casa acerca del hacking, pero mi sugerencia es leer PHRACK! todas las PHRACK!, y estar al tanto de lo último en tecnología, leer las noticias de seguridad todos los días, como ser las nuevas vulnerabilidades encontradas, nuevos exploits publicados y escribir tus códigos una y otra vez.

Carlos Tori
PGP ID 0x7F81D818

(*) Carlos Tori es autor del libro www.hackingetico.com

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!