
Código de Prova de Conceito para CVE-2016-5696
Código de Prova de Conceito para CVE-2016-5696
Rover é um pequeno programa Python para descobrir portas de origem arbitrárias do cliente, conforme mostrado em CVE-2016-569. Uma vez que a porta de origem é conhecida, a tupla de 4 informações necessária para confirmar que dois hosts estão se comunicando pode ser completada. Quando executado, o rover estabelece uma conexão com o servidor alvo, sincroniza seu relógio interno com o tempo de desafio ACK do servidor, então começa a pesquisar através do intervalo de portas efêmeras padrão da maioria dos hosts Linux (isso pode ser alterado se necessário).
Para mais informações, encontre o artigo original aqui
Isso foi testado para rodar no Kali 1.0 contra um servidor SSH Ubuntu 14.04. Deve funcionar contra outros, porém algumas modificações no código podem/serão necessárias. Os requisitos são:
O uso é o seguinte:
rover.py [-h] -c 192.168.1.1 -s 192.168.1.10 -p 22 [-v v, vv]
CVE2016-5969 Demonstrator.
optional arguments:
-h, --help show this help message and exit
-c 192.168.1.1 The target client IP.
-s 192.168.1.10 The target server IP.
-p 22 The target server port.
-v v, vv The verbosity level
Rover será concluído em aproximadamente 1-2 minutos, dependendo da qualidade da sincronização.

os.system('iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP') porque o kernel irá redefinir uma conexão Scapy por padrão. Isso deve estar no IPTABLES para que o programa funcione.