Cuál es el camino a seguir para poder hacer hacking ético?

Muchos informáticos en general y más aun los que tienen enfoque hacia el área de seguridad y están en los inicios se plantean la misma pregunta: Como alcanzar el nivel del hacking o hacking ético? como se le denomina en los últimos tiempos al arte de poder desdoblar sistemas desde una perspectiva no criminalística.

Bien, según expertos en la materia, estas son las huellas a seguir para alcanzar las puertas del universo del hacking:

A: El lenguaje de programación a manejar

  1. Python/Perl: Aprender Python or Perl. Se necesitara implementar uno de estos dos lenguajes para cosas por ejemplo: crear exploit, hacer herramientas personalizadas, etc.
  2. C/C++: Es deseable conocer estos lenguajes, porque serán de mucha utilidad en diferentes formas. Son lenguajes poderosos y quizás ya hallas visto algunos de los mas potentes y complejos software codificados en C/C++, por ejemplo el sistema operativo Linux/UNIX el cual fue creado en lenguaje C. Para encontrar exploit or crear herramientas to necesitas manejar estos lenguajes.
  3. Lenguaje ensamblador: Este podría sonar medio a pesadilla, sin embargo no es tan difícil aprender a leer o entender el código Ensamblador, si quieres tomar en serio el Hacking es requisito dominar sobre este lenguaje, pues, sin conocimientos en Ensamblador no podrás encontrar las vulnerabilidades de software del tipo “Cero Días”.
    De modo, que no es en sí requerido programarlo pero si lo es el ser capaz de leerlo y entenderlo a cabalidad.
  4. PHP/SQL/JAVA Script/HTML: En el caso que se desee enfocarse en el hacking a través de la Web se debe aprender 2 lenguajes mínimo (PHP y MySQL). Por ejemplo, si tu requieres encontrar una vulnerabilidad PHP y usar una Inyección PHP, entonces la respuesta obvia es que antes debes saber de este lenguaje, otro ejemplo, si se requiere efectuar una operación de ataque desde lado del cliente, es requerido saber de Java Script y HTML, como es el caso de hacer exploit de contraseña protegidos en páginas html, hacer cross site scripting, exploits tipo CSRF, etc.
    Otro ejemplo es las Inyecciones SQL, bueno, entonces es requerido saber de SQL. Eh aquí entonces donde si se desea encontrar vulnerabilidades de tipo “Cero días” en frameworks como WordPress, Joomla, Drupal, etc. Entonces es imperativo saber PHP/MySQL.

B: Redes
Todo Hacker hace la intrusión usando redes (Internet?). Entonces para entrar en esta disciplina es requerido saber de redes, es necesario entender cómo se hacen las conexiones, familiarizarse con terminologías como puertos, protocolos, etc. Es recomendable aprender seguir aprendizaje desde:

  1. Cómo funcionan las redes + TCP/IP
  2. Protocoles puertos.
  3. Modelos OSI

C: Sistemas Operativos
Es obvio que sin el uso de un sistema operativo nada es posible, por tanto es necesario aprender a fondo cómo funciona el sistema operativo. Es de conocimiento general los varios SO que existe, sin embargo, lo primordial para el hacker es conocer internamente cómo funcionan, como corren todas las utilerías y herramientas que forman parte del sistema operativo, a modo de ejemplo:

  1. Linux: Esta siempre es la primera elección que viene a la mente, ya que casi todo en Internet debido a costos, usa ambiente Linux en los servidores, pero también porque los hackers están más familiarizados con entornos libres como Linux para “desmenuzar” literalmente el código fuente y poder luego abstraer como modificarlo.
  2. Windows: Este supondría el objetivo favorito para todo hacker, muchos agujeros de seguridad en el sistema de paga de mayor demanda a nivel mundial. Es altamente prioritario aprenderse muy bien este sistema, inclusive leer mucho más sobre lenguaje ensamblador y Windows por encima de relativos a Linux.
  3. MAC: También es otro objetivo a aprender para poder decir que es posible desplazarse entre diferentes entornos. MAC de Apple Computers Inc. No es tan popular como Windows, pero una considerable masa de usuarios lo usan, y más aún cuando las bases de este sistema operativo se transfieren con el iOS que está en millones de teléfonos móviles. Es deseable también manejar sobre esta pieza de Sistema.

C: El Laboratorio de pruebas
Aquí la consideración es el preparativo del entorno que usaremos para surcar el universo del hacking:

  1. Instala 2 sistemas operativos que sean el objetivo, si fuese Linux (Ubunto,Fedora,RedHat, OpenSuse, etc.) y Windows. No seas perezoso en entrenar únicamente con Windows solo porque es más fácil para hacerle exploit, también implementa sobre Linux.
  2. Instala varios software y herramientas para correrlas y aprender de ellas, ver cómo funcionan, instalare algunos software de seguridad y luego ejecuta ataques contra los sistemas (Metasploit, Nmap, etc.)
  3. Instala varios servicios de red como para http, ftp, pop3, smtp, rdp, ssh, nntp, etc. Y atacalos para intentar quebrarlos, intenta encontrar algunos agujeros de seguridad como BOF de Fuzzer . Eventualmente instala otros programas para hacerles hacking Web como VB, MyBB, PhpBB, Joomla, etc. Y corre varias herramientas sobre estos con propósito de quebrarlos.

D: El viaje
Ahora que hay un preámbulo y las marcas a seguir es solo darle rienda suelta al viaje sobre el mundo del hacking, es hora de leer mucha literatura sobre seguridad/hacking, buscar en Google y conocer sobre los más grandes agujeros de seguridad y los más comunes que ocurren en problemas de programación o en redes. Con motivación se aprende más rápido, solo es recordar que este viaje nunca termina, así que no hay que perder jamás el apetito: Programación+Redes+OS+Motivación+Paciencia son la combinación ideal para este interesante viaje sin fin que es el Hacking Ético o simplemente Hacking.

No hay que rendirse!.

 

Soy desarrollador y fanático de la playa, actualmente trabajo para una gran empresa a tiempo completo en México. En mis tiempos libres los dedico a escribir tutoriales o reseñas, además de compartir recursos que puedan ser de utilidad. galvaroe@pixelg.org