No hemos encontrado resultados relativos a la búsqueda realizada.
Puedes volver a intentarlo de nuevo realizando una nueva búsqueda.
No hemos encontrado resultados relativos a la búsqueda realizada.
Puedes volver a intentarlo de nuevo realizado una nueva búsqueda.
Por Fernando González Trigo
07 de Nov de 2022 · Informática y TICS
¿Qué es el hacking ético? ¿Para qué sirve el hacking ético? ¿De cuantas fases consta el hacking ético? ¿Cuántas herramientas existen para ayudarnos al hacking ético?
Esta son las preguntas que se puede formular cualquier persona al empezar en el mundo de la ciberseguridad y más concretamente en el “red team” (Personas especializadas en ciberseguridad que intentan encontrar las vulnerabilidades de un sistema, atacándolo)
En el desarrollo de este TFM se han estudiado las herramientas existentes para cada fase del hacking ético (reconocimiento, escaneo, obtener acceso, mantener acceso y limpiar huellas).
El objetivo de estas herramientas es facilitar el trabajo de una auditoría informática, como por ejemplo en la búsqueda inicial de información mediante técnicas OSINT, en el escaneo de redes y puertos, en el análisis básico de vulnerabilidades, en la explotación de las vulnerabilidades, en el borrador de huellas, etc.
Después del estudio y el posterior análisis de cada herramienta, se ha buscado crear una herramienta que pueda ayudar al hacker ético en todas las fases. Esta herramienta ha sido desarrollada en Python y posee un total de 12 funcionalidades que se explicarán más adelante.
El código de esta herramienta se puede encontrar en GitHub en el siguiente enlace “https://github.com/FernandoGonzTri/HackEtic/”
¿Te resulta interesante?
¡Guarda este contenido completo en PDF!
Descarga gratis este contenido y consúltalo cuando lo necesites
La palabra hacking ético cada día es más conocida por las empresas y cada vez está más en uso. Para entenderla se puede ver cada palabra por separado y buscar la definición en la RAE.
Por lo tanto, el hacking ético se puede definir como un proceso en el cual personas cualificadas intentan hackear un sistema para poder identificar y corregir errores o vulnerabilidades.
La dificultad de realizar hacking es entender qué se está realizando en cada momento y cómo puede afectar al sistema cada herramienta. Además, es muy complicado conocer las funcionalidades que posee cada herramienta.
En la actualidad, muchas empresas le han dado una gran importancia a la seguridad informática, ya que los daños que puede causar una mala seguridad pueden ser catastróficos para estas. Dentro de la ciberseguridad podemos diferenciar la seguridad ofensiva y la seguridad defensiva. La seguridad defensiva se encarga de proteger la empresa mediante la detección y respuesta a los ataques dirigidos, firewalls, sistemas SIEM, IDS, IPS, etc. Dentro de la seguridad ofensiva entra el hacking ético, trabajadores de la empresa u otra empresa contratada, ataca el sistema para comprobar las medidas de seguridad de estos, básicamente la idea es actuar como lo haría un ciberdelincuente.
Las fases del hacking ético son las siguientes:
Por lo tanto, para cada una de estas fases habrá una gran cantidad de herramientas disponibles que se irán explicando según avance el trabajo.
Esta fase es la primera del hacking ético, consiste en usar técnicas para investigar y recolectar la mayor información posible sobre el objetivo.
En esta fase, se están buscando dos objetivos. El primero es ver qué información podría ver un atacante externo acerca del objetivo que se está estudiando y el segundo es obtener información para nuestra auditoría.
El comienzo de esta fase empieza con la recogida de información externa, esto se realiza mediante técnicas OSINT. Una de las herramientas más conocidas para ayudarnos en este proceso es Maltego. Es un software que se utiliza para OSINT, desarrollado por Paterva. Esta herramienta es de software gratuito y se puede ejecutar tanto para Windows, IOS, Linux. Sirve para identificar relaciones entre personas, grupo de personas, compañías, organizaciones, sitios web, infraestructura de internet, afiliaciones, documentos y archivos.
Otra herramienta para recogidas de información a través de DNS es dnsenum. Es un script Perl multiproceso usado para enumerar información DNS de un dominio y descubrir bloques de IP no contiguos. Esta herramienta consigue direcciones del host, servidores de nombre. Registros MX, etc. Esto da mucha información de sistemas que están en la zona desmilitarizada de la red, además esto no levanta sospechas a un IDS.
Además, existe una herramienta para reconocer los servicios que hay en una web, conocida como Wappalyzer, que es una extensión para conocer como se ha desarrollado una web, es muy sencillo de utilizar, simplemente instalas la extensión en tu navegador web y accedes a una página web y solamente tienes que pinchar en el icono. La herramienta te mostrara que tecnologías web usa el sitio web.
Otras herramientas útiles pueden ser Dnsdumpster, Nmapper, Hunter, Skrapp, Shodan, URLFuzzer, Golismero.
La fase de reconocimiento consiste en encontrar subdominios, números de teléfonos, correos electrónicos, nombres, etc. Todo esto pasando desapercibido. Por lo tanto, se van a desarrollar herramientas que intenten conseguir esto.
La idea de esta herramienta es que haga una búsqueda de subdominios predefinidos en un fichero dado un dominio.
La función simplemente pide un dominio que se debe introducir por teclado y gracias a la función ‘gethostbyname’, importada de la librería de ‘socket’, se comprueba si el subdominio existe, en caso de existir se muestra por pantalla, en caso de no existir devuelve una excepción que controla la función para que no falle.
Un ejemplo de funcionamiento es el siguiente:
Figura 1 Búsqueda de subdominios
En esta opción, vamos a buscar los correos electrónicos de un dominio. La idea es que dada una página web busque, mediante expresiones regulares, un correo electrónico; para ello buscará tanto en la página principal como en los enlaces de esta.
Por lo tanto, el programa solamente pide el dominio donde se quiere empezar a buscar. Lo primero que se hace es leer el html de la página principal para buscar mediante expresiones regulares un correo electrónico. Luego, mediante una librería ‘BeatifulSoup’, se buscan los enlaces posibles en esa página.
Cada enlace que encuentra se guarda en una lista, se comprueba si ya está en ella y se buscan los correos en esa página. Cuando encuentra un correo, comprueba si ya está en la lista, y si no está, lo inserta. Por último, muestras los correos encontrados por pantalla y con la URL donde lo ha encontrado.
Figura 2 Búsqueda de correos
Esta herramienta es muy parecida a la anterior, pero cambiando la expresión regular para buscar números de teléfonos. En este caso, también busca tanto en la página principal como en los enlaces de esta página.
Figura 3 Búsqueda de teléfonos
En este caso, puede que algunos números coincidan con el formato de un número de teléfono, pero no sea un teléfono. Además, en la imagen se puede observar que obtiene los números en todos los formatos posibles, con espacios, sin espacios, con el +34, etc.
En esta fase, se utiliza toda la información conseguida en la fase anterior para identificar vulnerabilidades. Durante esta fase se usan herramientas de escaneo de puertos, mapeadores de red, barredores de ping y protocolos de red, escáner de vulnerabilidades, etc.
Existen 3 tipos de escaneos:
En esta fase, se busca nombres de ordenadores, sistemas operativos (SO), software instalado, direcciones IP, cuentas de usuario.
Algunas herramientas interesantes pueden ser:
Otras herramientas interesantes son Wpscan, ZAP, OpenVAS, Nikto.
Como se ha estudiado en este capítulo, la idea de esta fase es escanear redes, puertos y vulnerabilidades, por lo tanto, el objetivo de este capítulo es intentar desarrollar herramientas que nos ayuden en estos tipos de escaneo.
Las herramientas para desarrollar serán descubrimiento de sistemas operativos, escaneo de redes y escaneo de puertos.
Es muy importante cuando se escanea un host, saber qué sistema operativo está funcionando en él, puede ser Windows, Linux, Mac Os, ya que existirán distintos tipos de vulnerabilidades según el sistema operativo.
Para descubrir que sistema operativo está instalado en el host, se va a hacer uso de la herramienta ping. Esta herramienta manda un mensaje ICMP a una dirección IP y este lo devuelve. Ahora conociendo su TTL se puede saber qué sistema operativo está corriendo, ya que Linux tiene un TTL de 64 y Windows de 128
Figura 4 Descubrimiento sistema operativo
Lo siguiente será descubrir qué host hay en una red, esto es muy importante a la hora de escanear redes porque gracias a ello se consigue conocer cuántas direcciones IP están siendo utilizadas en la red que se está escaneando.
Para ello, el programa pedirá una dirección IP y probará todas las subredes de esa dirección. Si el usuario introduce por pantalla la dirección 192.168.1.1, se probará desde la 192.168.1.1 hasta la 192.168.1.256. Se hará ping a todas las direcciones y se comprobará si la máquina destino ha devuelto el ping o no.
Para aumentar la velocidad de escaneo se hará uso de hilos. Además, se pedirá al usuario dónde quiere empezar a escanear y dónde terminar.
Figura 5 Descubrimiento de hosts de una red
Después de descubrir los hosts de una red, nos puede interesar cuáles son los puertos que están activos en un host. Por lo tanto, este es el objetivo de la siguiente herramienta.
Esta herramienta es muy parecida a la anterior, se escanearán los puertos con el rango que diga el usuario y se mostrarán, por pantalla, los puertos que están abiertos.
El rango de puertos es de 1 a 65535, si el rango que elige el usuario no está entre estos valores, tendrá que volver a escribirlos.
Figura 6 Escaneo de puertos
El objetivo principal de esta fase es conseguir acceso al sistema víctima, explotando las vulnerabilidades que se encontró en la fase de escaneo. En esta fase, el hacker ético intenta entrar al sistema con ataques ransomware, virus, gusanos, rootkits, etc.
Tras lograr acceso en esta fase, el atacante buscará aumentar sus privilegios a nivel de administrador para instalar las aplicaciones que necesite.
Este ataque se puede llevar a cabo mediante servicios LAN, internet o sin estar conectado a la red y puede estar dirigido a sistemas operativos, servidores web, aplicaciones, etc.
Para esta fase existen herramientas que intentan acceder al sistema gracias a las vulnerabilidades encontradas, aunque muchas herramientas tienen la fase de escaneo y obtener acceso juntas, ya que cuando encuentran la vulnerabilidad también la explotan como, por ejemplo, algunos scripts de nmap. Por lo tanto, se explicarán algunas herramientas que pueden ir tanto en la parte de escaneo con en la parte de obtener acceso, ya que ejecutan ambas cosas.
Otras herramientas son Hashcat, Aircrack-ng, Searchsploit, John the Ripper, SQLMap, Armitage, Cobalt Strike.
Como se ha comprobado en el anterior apartado de herramientas, estas no solo buscan las vulnerabilidades, sino que también las ejecutan. Por lo tanto, esto es lo que buscará en esta sección: crear herramientas que encuentren y ejecuten las vulnerabilidades.
Esta herramienta busca acceder al login de una web. Para ello, mediante la fuerza bruta, intenta entrar en el sitio web.
Los pasos de esta herramienta son los siguientes:
Una muestra del funcionamiento de la herramienta es el siguiente:
Figura 7 Fuerza bruta mediante post – Login
Este ataque es sencillo de realizar, simplemente el usuario pone una dirección IP y un puerto y se crean 1000 hilos, estableciendo sockets para realizar una conexión y conectarse.
Cuando se quiera finalizar el ataque simplemente se pulsa enter y se cerrarán todos los hilos y dejarán de crear sockets, como se puede observar en la imagen.
Figura 8 Ataque DoS
Después de la fase de obtener acceso es importante que, cuando la víctima apague el ordenador, no termine con nuestro ataque, por lo tanto, la idea de esta parte es establecer persistencia en el sistema, como por ejemplo intentar hacer una escalada de privilegios, y probar un ataque de manera controlada.
En esta fase, las herramientas que se usen necesitarán tener acceso a la máquina atacada para realizar su función.
Buscan obtener información confidencial, elevar privilegios, instalación de puertas traseras, etc.
Otras herramientas interesantes son NXcrypt, Linux Exploit Suggester (LES), Window Exploit Suggester, PrivessCheck.
En este capítulo, se buscará conseguir la forma de mantener acceso una vez apagado el ordenador para poder entrar siempre que se quiera.
Después de obtener acceso a la máquina, se puede ejecutar esta herramienta para obtener información importante como:
En el caso de la búsqueda de vulnerabilidades, se obtiene la versión del sistema operativo y se búsqueda si existe algún exploit o shellcode mediante el comando “searchsploit”
El uso de esta herramienta se observa en la siguiente imagen:
Figura 9 Búsqueda de información de la máquina
En este capítulo, se desarrolla una puerta trasera para que el atacante pueda tener acceso a la máquina víctima, para ello haremos uso de sockets.
Por lo tanto, nuestra herramienta lanzará un servidor que estará a la escucha de recibir peticiones. Este servidor, siempre que exista la terminal donde se ejecutó, estará funcionando aún después de cerrar el cliente por lo que está trabajando a escondidas, ya que la ejecución de nuestra herramienta no se queda parada.
En la imagen observamos cómo sería el lanzamiento en la herramienta:
Figura 10 Herramienta de puerta trasera
Ahora ejecutaríamos el cliente desde nuestra máquina colocando como argumentos la dirección IP del servidor y el puerto de la siguiente manera:
Figura 11 Comunicación cliente-servidor
En la imagen se observa que con el comando “exit” se cierra la conexión y se puede volver a abrir, ya que el servidor se queda a la espera de nuevas conexiones. Además, se observa que tenemos acceso al sistema.
Tras realizar el ciberataque, se deben eliminar todas las evidencias que pueden culpar al atacante. El rastro que dejas se conoce como ‘digital footprint’.
Las técnicas más recurrentes consisten en eliminar o alterar archivos de registro, ocultar archivos o directorios o usar conexiones cifradas con el sistema víctima.
Algunas herramientas conocidas son:
Otras herramientas son elsave, openpuff, proxychains, wevutil.
En este capítulo, se realizará una herramienta que borre los logs más importantes que hayan sido creados y otra herramienta que elimine todo lo que se ha descargado para ejecutar esta herramienta.
En este caso, la herramienta busca en el siguiente directorio (“/var/log/”) todos los ficheros donde aparezca el nombre del usuario se mostrarán por pantalla y serán borrados.
Además, si el fichero esta codificado, se muestra un mensaje por pantalla, y si es un directorio, se comprueba también ese directorio.
Una muestra del funcionamiento del programa es la siguiente:
Figura 12 Búsqueda de logs
Esta herramienta es muy sencilla, simplemente coge el directorio donde se está ejecutando el programa y borra todos los ficheros de dentro incluido el directorio. El programa finaliza tras el borrado.
Figura 13 Borrado de la herramienta
En este trabajo se ha realizado un estudio de las distintas herramientas de cada fase del hacking ético, gracias a esto se ha logrado realizar una herramienta que recoja varias ideas de otras herramientas en una sola.
El mundo de la ciberseguridad está constantemente cambiando, es interesante ir conociendo las nuevas herramientas que salen, nuevas vulnerabilidades, etc. Por lo tanto, la herramienta creada en este proyecto tiene que estar adecuándose a los nuevos métodos que vayan saliendo.
Referencias
[1] «Red Team,» [En línea]. Available: https://intelequia.com/blog/post/2088/red-team-y-blue-team-funciones-y-diferencias-en-ciberseguridad.
[2] «Real Academia Española - Hacker (jáquer),» [En línea]. Available: https://dle.rae.es/j%C3%A1quer#TLIznqw.
[3] «Real Academia Española - ético,» [En línea]. Available: https://dle.rae.es/%C3%A9tico?m=form.
[4] «Recolección de información de páginas web,» 6 marzo 2022. [En línea]. Available: https://nptg24.github.io/recoleccion-web/.
[5] «keepcoding,» 6 junio 2022. [En línea]. Available: https://keepcoding.io/blog/que-es-nmapciberseguridad/
[6] S. Blog, 14 abril 2014. [En línea]. Available: http://subinsb.com/default-device-ttl-values/
[7] «Tarlogic,» [En línea]. Available: https://www.tarlogic.com/es/productos/burp-suiteprofessional/
ADRIÀ NOLLA DEL VALLE, (2023)
La Cartera Adaptada: adaptando la cartera permanente a los ciclos económicos Leer InvestigaciónAlberto Conchillo Guantes, (2023)
Impacto del impuesto de sociedades en el comportamiento de las empresas Leer InvestigaciónFrancisco Javier Roldán de la Rosa, (2023)
Historia y evolución de la Farmacovigilancia Leer Investigación