Se requiere el conocimiento de una amplia variedad de temas de ciencias de la computación, sin embargo, conocer las cosas en gran profundidad es la clave del éxito de un hacker. Por lo tanto, tener una actitud positiva hacia el aprendizaje es esencial en el viaje de aprendizaje para convertirse en un hacker.
A continuación se muestra la guía paso a paso que he creado para enseñarte a ser un hacker:
- Paso 0: Leer el Manifiesto del Hacking
- Paso 1: Aprender a programar en C
- Paso 2: Aprender más de un lenguaje de programación
- Paso 3: Aprender UNIX
- Paso 4: Aprender más de un sistema operativo
- Paso 5: Aprender los conceptos de red
- Paso 6: Empieza de forma sencilla: Lee algunos tutoriales sobre hacking
- Paso 7: Aprender Criptografía
- Paso 8: Experimenta mucho
- Paso 9: Lee algunos buenos libros de expertos
- Paso 10: Participa en retos de hacking
- Paso 11: Ir al siguiente nivel: Escribir la vulnerabilidad
- Paso 12: Contribuir a proyectos de seguridad de código abierto
- Paso 13: Seguir aprendiendo y seguir escuchando charlas de seguridad
- Resumen
Paso 0: Leer el Manifiesto del Hacking
No es una tarea fácil ser un hacker. Como hacker, necesitas tener actitud y curiosidad. Leer el manifiesto del hacking puede enseñarte la actitud de un hacker. Cultivar la actitud de un hacker tiene que ver más con el desarrollo de competencias en los lenguajes que con tener una actitud estereotipada.
Aunque mucha gente considera que un hacker es un delincuente; sin embargo, en la vida real, son contratados por grandes empresas para proteger la información y minimizar los daños potenciales. El acto de hackear en realidad es el de ser un curioso y burlar a la autoridad. Como hacker, debes estar empeñado en romper las reglas autoritarias, el secreto y la censura. El engaño es otro arsenal que te permitirá esquivar los ojos vigilantes de la autoridad.
El acto de robar algo o de hacer daño a alguien no es hacking. A estas personas se les llama comúnmente crackers en la comunidad. Los crackers están involucrados en actividades ilegales y no le recomendaré que se involucre en tales actividades.
Paso 1: Aprender a programar en C
La programación en C es uno de los lenguajes más poderosos en la programación de computadoras, Es necesario dominar realmente este lenguaje. Este lenguaje de programación fue inventado por Denise Ritchie entre los años 1969 y 1973 en AT& T Bell Labs. La programación en C le ayudará esencialmente a dividir la tarea en trozos más pequeños y estos trozos pueden ser expresados por una secuencia de comandos. Intenta escribir algún programa por tu cuenta evaluando la lógica.
Hay cientos de tutoriales de Programación C Gratis en PDF &disponibles en la web para aprender, sin embargo te recomendaría empezar con un libro de programación c sencillo y bien escrito de tu elección y luego leer este libro (Lenguaje de Programación C
Por Brian W. Kernighan y Dennis M. Ritchie) para entender el verdadero poder del lenguaje c.
Este libro no es una lectura fácil, sin embargo es una necesidad leer el libro para obtener una comprensión profunda para la programación C.
Paso 2: Aprender más de un lenguaje de programación
Cuando usted está tratando de convertirse en un hacker, es muy importante aprender otros lenguajes de programación de computadoras modernas como Java, Perl, PHP y Python. Una de las mejores maneras de aprenderlos es leyendo libros de expertos. También ayudará conocer lenguajes de marcado como XML, HTML y formatos de datos como JSON, Protobuf, y otros que son una forma común de transferir datos entre cliente y servidor.
Java es uno de los lenguajes de programación más populares. Se ha afirmado que también es muy seguro. Conocer el modelo de seguridad de Java te permitirá entender cómo este lenguaje logra la seguridad. Conozca las lagunas de seguridad en el lenguaje Java y los marcos de trabajo relacionados. Escoge y lee entre muchos PDF, tutoriales y ebooks gratuitos disponibles para aprender java online.
Perl es un lenguaje de programación dinámico de propósito general, de alto nivel y que puede ser interpretado. Este lenguaje toma prestadas algunas características del lenguaje C. Por otro lado, JAVA es un lenguaje de programación concurrente, basado en clases y orientado a objetos. Python es muy útil cuando se trata de automatizar algunas tareas repetitivas.
HTML es el lenguaje de marcado en el que se diseñan, crean y muestran las páginas web. Los navegadores leen el código HTML para mostrar la página web.
Python es el mejor lenguaje para el desarrollo web y el lenguaje favorito de muchos programadores debido a su simplicidad y rapidez. Mucha gente usa Python para hacer automatizaciones simples y complejas.
Para más tutoriales de lenguajes de programación revisa – mejores tutoriales de programación.
Paso 3: Aprender UNIX
UNIX es un sistema operativo de ordenador multitarea y multiusuario que está diseñado para proporcionar una buena seguridad a los sistemas.Este sistema operativo fue desarrollado por algunos empleados de AT&T en los laboratorios Bell.La mejor manera de aprenderlo es entrar en una versión de código abierto (por ejemplo, centos) e instalar/ejecutar el mismo por su cuenta. Puedes operar internet sin aprender UNIX, pero no es posible que seas un hacker de internet sin entender UNIX.
Si aún no ha utilizado el sistema operativo Unix, algunos comandos esenciales de linux harán que se sienta cómodo para empezar rápidamente.
Unix in a Nutshell por Arnold Robbins es una buena manera de empezar. Este libro le enseñará a usar Unix.
Lo siguiente que necesitas saber es el funcionamiento interno de este sistema operativo. Recomiendo
El Diseño del Sistema Operativo UNIX por Maurice J. Bach para obtener una comprensión profunda del sistema operativo Unix.
Un gran número de servidores web están alojados en servidores basados en Unix y conocer los aspectos internos de este sistema operativo va a ser realmente un gran impulso en sus habilidades.
Paso 4: Aprender más de un sistema operativo
Hay muchos otros sistemas operativos aparte de UNIX. El sistema operativo Windows es uno de los más comprometidos, de ahí que sea bueno aprender a hackear los sistemas de Microsoft, que son sistemas de código cerrado.
Según la National Vulnerability Database, los sistemas operativos de Microsoft tienen un gran número de vulnerabilidades.
Los instaladores del sistema operativo Windows se distribuyen en binario, por lo que no es fácil leer el código. El código binario es básicamente la representación digital de texto y datos que el ordenador entiende. Sin embargo, saber cómo se escriben los programas para Windows y cómo se comportan las diferentes aplicaciones en este sistema operativo será de gran ayuda.
Una de las recientes vulnerabilidades de un popular sistema operativo fue que las aplicaciones Java Web Start se lanzan automáticamente incluso si los plug-ins de Java están desactivados. Cómo ser un hacker se trata de conocer las debilidades de estos sistemas operativos y apuntar a ellos sistemáticamente.
Paso 5: Aprender los conceptos de red
El concepto de red tiene que ser agudo cuando se quiere ser un hacker.
Entender cómo se crean las redes es importante, sin embargo, necesitas conocer las diferencias entre los diferentes tipos son redes. Tener una comprensión clara de TCP / IP y el protocolo UDP es una necesidad para ser capaz de explotar las vulnerabilidades en la world wide web.
Entender lo que es subred, LAN, WAN y VPN.
Recomiendo Computer Networking: A Top-Down Approach por James F. Kurose y Keith W. Ross
Los comandos de red para hacer una petición HTTP tienen que estar a tu alcance. El protocolo HTTP es la puerta de entrada al mundo de Internet. De ahí que sea necesario aprender este protocolo para poder romper las barreras. Los hackers a menudo utilizan la puerta de enlace HTTP para violar la seguridad del sistema y tomar el control sobre él.
Apache Httpd es uno de los servidores web más utilizados y saber dentro y fuera de él va a capacitarle en cualquier HTTP u otros esfuerzos relacionados con el protocolo de capa de aplicación.
Nmap es una poderosa herramienta de escaneo de red que es utilizada por los hackers y profesionales de la seguridad en todo el mundo para identificar hosts vulnerables. Sin embargo, para empezar a usarlo de forma efectiva debes entender los fundamentos de la red. Para obtener conocimientos avanzados sobre NMap puede consultar el libro de los creadores – Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning
Paso 6: Empieza de forma sencilla: Lee algunos tutoriales sobre hacking
Esta es la forma más sencilla y mejor de empezar. Lea tantos tutoriales como sea posible que están destinados a la piratería. Estos artículos te darán una visión y te ayudarán a desarrollar la actitud para ser un hacker. Algunos tutoriales te iniciarán con Nmap, Nessus y SuperScan, algunos de los programas o herramientas de hacking que los hackers generalmente utilizan. Estos tutoriales están fácilmente disponibles en Internet; tanto los tutoriales de texto como los de vídeo están disponibles para que usted pueda responder a su pregunta de cómo ser un hacker.
Paso 7: Aprender Criptografía
Como hacker experto, usted necesita entender y dominar el arte de la criptografía. La tecnología de la criptografía y el cifrado es muy importante para Internet y las redes. Es la práctica y el estudio de las técnicas que se utilizan para la comunicación segura en presencia de terceros. El cifrado se realiza para varios aspectos de la seguridad de la información, como la confidencialidad de los datos, la integridad de los datos y la autenticación. Además, la tecnología de la criptografía se utiliza ampliamente en las tarjetas de los cajeros automáticos, las contraseñas de los ordenadores y el comercio electrónico. Al hackear, estos códigos encriptados deben romperse, lo que se denomina descifrar.
La criptografía se utiliza mucho en la comunicación por Internet basada en SSL. Un hacker experto debe ser capaz de entender cómo funciona el SSL y cuál es la importancia de la criptografía para mantenerlo seguro.
Intenta leer sobre varios algoritmos de encriptación y ver por qué son difíciles de desencriptar. Participa en retos para descifrar cifrados potentes. Un hacker experto será capaz de demostrar las debilidades de un algoritmo de encriptación y debería ser capaz de escribir un programa que demuestre cómo se puede realizar el descifrado sin mucha información sobre las claves.
Entender varias técnicas utilizadas para descifrar contraseñas. Hay docenas de herramientas disponibles para hacer cracking de contraseñas, y su uso no es hacking. Para ser un experto en hacking es importante que entiendas cómo crear un programa que pueda descifrar una contraseña a partir de un texto cifrado.
Recomiendo este curso gratuito de Criptografía por Dan Boneh de la Universidad de Stanford en Coursera
Paso 8: Experimenta mucho
Este es un paso importante para configurarte como un hacker experto. Monta un laboratorio por tu cuenta para experimentar el aprendizaje en las aplicaciones prácticas. El laboratorio más sencillo tendrá tu ordenador, sin embargo, una vez que avances es posible que quieras añadir más y más ordenadores y el hardware necesario para tus experimentos.
Es bueno probar a experimentar en tus propios ordenadores, donde podrás rectificar si has cometido algún error. Muchos hackers comienzan inicialmente descargando aplicaciones de laboratorio virtual como Oracle VirtualBox. Necesitas al menos 3 GB de RAM y un procesador relativamente potente para llevar a cabo tus experimentos de hacking. La configuración de la máquina virtual es crucial, ya que le permitirá probar virus, aplicaciones y diferentes servidores sin afectar a su propio PC.
Algunas de las cosas que puede necesitar tener en cuenta al hacer experimentos
- Mantenga una copia de seguridad antes de cualquier experimento.
- Comienza con algo pequeño y ten puntos de control.
- Sabe cuándo parar.
- Documenta tu progreso
- Sigue improvisando
- Automatiza las tareas repetitivas
Paso 9: Lee algunos buenos libros de expertos
Leer siempre mejorará tus conocimientos. Intenta leer tantos libros y artículos como sea posible escritos por los expertos en el campo del hacking ético y la seguridad empresarial
Leer mucho sobre cualquier cosa relacionada es tan importante en un mundo de hackers que también debes considerar mejorar tu velocidad de lectura. Si su velocidad de lectura es lenta, entonces no podrá progresar rápidamente en este campo. Practica técnicas de lectura rápida como skimming, chunk reading, etc.
Cuando se trata de leer mucho, también es importante saber que la mayoría del contenido en la web no vale la pena su tiempo. Muchos utilizan trucos de los motores de búsqueda para atraer tráfico, pero tienen poco valor. Si usted hojea un artículo en cuestión de segundos y decide no leer eso le va a ahorrar mucho tiempo para un contenido realmente bien investigado.
El Arte de la Explotación por Jon Erickson es un excelente libro para enseñarte a ser un hacker avanzado.
Paso 10: Participa en retos de hacking
La participación regular en retos de hacking puede ayudarte a aprender más y afinar tus conocimientos. Hay varias empresas que organizan estos retos para comprobar la vulnerabilidad de sus productos de software. El reto de hacking más común incluye la violación del sistema de seguridad del software y la toma de control de los sistemas informáticos de terceros. Aparte de eso, hay algunos sitios web enumerados a continuación que ofrecen regularmente desafíos de hacking en línea.
- hackquest.de
- hacktissite.org
- www.trythis0ne.com
- www.hackchallenge.net
- hacking-lab.com
Paso 11: Ir al siguiente nivel: Escribir la vulnerabilidad
La vulnerabilidad de un programa es la debilidad del mismo. Es un buen enfoque para buscar la vulnerabilidad de un programa existente y compartir la misma con otros. De este modo, tendrá la opción de recoger opiniones variadas de diferentes fuentes, lo que le permitirá perfeccionar su actual conjunto de habilidades.
Los ejemplos de vulnerabilidades informáticas incluyen la violación de la seguridad de la memoria, el error de validación de entrada, los fallos de confusión de privilegios y el fallo de la interfaz de usuario. Por ejemplo, Internet Explorer 11 de Microsoft tenía el error de vulnerabilidad en su versión preliminar que varios hackers explotaron.
Identificar una nueva debilidad en cualquier software es el verdadero trabajo que cualquier hacker experto realizaría.
Paso 12: Contribuir a proyectos de seguridad de código abierto
Contribuir a un proyecto de seguridad informática de código abierto es una gran plataforma para poner a prueba sus habilidades. Esto no es del agrado de todos. Muchas organizaciones como Mozilla y Apache ofrecen este tipo de proyectos de código abierto. Intenta formar parte de estos proyectos y añade una valiosa contribución en beneficio de la comunidad.
Participar en los proyectos de seguridad de código abierto como antispam, antivirus, cortafuegos y eliminación de datos te ayuda a aumentar tu destreza como hacker.
Contribuye con tus hallazgos de vulnerabilidad a las bases de datos globales de vulnerabilidad y retribuye a la comunidad.
Recuerda que no importa si tu contribución es pequeña, siempre que participes y aportes valor ayuda.
Paso 13: Seguir aprendiendo y seguir escuchando charlas de seguridad
La clave del éxito en la carrera de hacker es el aprendizaje continuo. Leer los blogs de hacking disponibles en sitios como el blog de hackerfactor y el blog de hacker de IKEA; participar en los foros como hackforums.net y elite hack son buenas formas de refrescar tus conocimientos como hacker. Los foros de vídeo en línea como TED o TechTalk son buenas fuentes para saber más sobre las técnicas y tecnologías de hacking emergentes que se están desplegando. También deberías intentar seguir los posts de hackers famosos como Adrian Lamo, Kevin Mitnick, Kevin Poulsen y Robert Tappan Morris.
Resumen
Los anteriores son algunos pasos exhaustivos que pueden enseñarte a ser un hacker y ayudarte a recorrer el camino de ser un hacker experto. Sin embargo, debes ser un ciudadano responsable y ser selectivo, asegurando que no utilizas esta habilidad para violar la seguridad de instituciones importantes, ya que puede aterrizar en situaciones extremas. Siempre debes recordar que para cada herramienta de hacking, siempre hay una herramienta de contrahackeo. Por lo tanto, sé un hacker inteligente y, lo que es más importante, sé un hacker responsable.