https://www.tildecreativa.com/wp-content/uploads/2023/05/modulo2.zip '''1. Leer el siguiente post sobre la vulnerabilidad CVE-2021-41773: https://www.hackplayers.com/2021/10/path-traversal-apache-2-4-49.html Programación Python para Machine Learning 2 2. Crear un script en Python que busque servidores web en Shodan que aparentemente son vulnerables a la vulnerabilidad de Path Transversal de Apache en su versión 2.4.49. El CVE de dicha vulnerabilidad se encuentra descrito en el siguiente enlace: https://nvd.nist.gov/vuln/detail/CVE-2021-41773 3. Partiendo de los resultados devueltos por Shodan en el script anterior, extraer las 5 primeras IPs de la lista y ejecutar un escaneo agresivo con Nmap (opción -A) contra los puertos 80 y 443. Enseñar en la terminal los detalles básicos de dicho escaneo (basta con indicar el puerto y su estado: abierto/cerrado/filtrado).''' import shodan import nmap import sys # Clave de la API de Shodan shodan_clave = 'Ahd2V1QUIfXTy0Znk4HS0Qqkzm1mMVqp' # Crear objeto de conexión a la API de Shodan api = shodan.Shodan(shodan_clave) # Buscar en Shodan try: # Buscar en Shodan # solo buscar 5 resultados resultados = api.search('apache 2.4.49', limit=5) # Mostrar los resultados print('Cantidad de servidores encontrados: {}'.format(resultados['total'])) for resultado in resultados['matches']: print('IP: {}'.format(resultado['ip_str'])) print(resultado['data']) print('') except shodan.APIError as e: print('Error: {}'.format(e)) # Escaneo con Nmap nm = nmap.PortScanner() nm.scan('IP', '80, 443', '-A') print(nm.command_line()) print(nm['IP'].state()) print(nm['IP'].all_protocols()) print(nm['IP']['tcp'].keys()) print(nm['IP'].has_tcp(80)) print(nm['IP'].has_tcp(443)) print(nm['IP']['tcp'][80]['state']) print(nm['IP']['tcp'][443]['state']) # Fin del programa