
Código de prueba de concepto para CVE-2016-5696
Código de Prueba de Concepto para CVE-2016-5696
Rover es un pequeño programa en Python para descubrir puertos de origen arbitrarios en clientes, como se muestra en CVE-2016-569. Una vez que se conoce el puerto de origen, se puede completar la 4-tupla de información necesaria para confirmar que dos hosts se están comunicando. Al ejecutarse, rover establece una conexión con el servidor objetivo, sincroniza su reloj interno con el tiempo de respuesta del challenge ack del servidor, y luego comienza a buscar dentro del rango de puertos efímeros predeterminado de la mayoría de los hosts Linux (esto se puede cambiar si es necesario).
Para más información, encuentre el artículo original aquí
Esto ha sido probado para ejecutarse en Kali 1.0 contra un servidor SSH Ubuntu 14.04. Debería funcionar contra otros, sin embargo, alguna modificación al código puede/será necesaria. Los requisitos son:
El uso es el siguiente:
rover.py [-h] -c 192.168.1.1 -s 192.168.1.10 -p 22 [-v v, vv]
Demostrador CVE2016-5969.
argumentos opcionales:
-h, --help muestra este mensaje de ayuda y sale
-c 192.168.1.1 La IP del cliente objetivo.
-s 192.168.1.10 La IP del servidor objetivo.
-p 22 El puerto del servidor objetivo.
-v v, vv El nivel de verborrea
Rover se completará en aproximadamente 1-2 minutos, dependiendo de la calidad de la sincronización.

os.system('iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP') porque el kernel restablecerá una conexión de scapy por defecto. Esto debe estar en IPTABLES para que el programa funcione.