Découverte du réseau | Traceroute | Scanner de ports TCP et UDP
Ce programme répertorie toutes les interfaces disponibles présentes sur la machine locale et utilise Scapy pour identifier toutes les machines en ligne au sein du réseau local de la machine locale qui sont accessibles via chacune des interfaces non virtuelles de la machine locale. Pour y parvenir, ce programme crée une trame Ethernet qui encapsule un paquet ARP. La trame Ethernet a son adresse de destination définie sur l'adresse de diffusion tandis que le paquet ARP a l'adresse de sous-réseau de l'hôte local ainsi que la notation CIDR. Enfin, Scapy crée une liste de paquets ARP qui sont diffusés vers chaque adresse IP du sous-réseau et imprime les adresses MAC et IP des machines en ligne qui renvoient une réponse à l'hôte local.
Ce programme traceroute accepte soit l'adresse IP de destination, soit le nom d'hôte de l'utilisateur et identifie les adresses IP ou les noms d'hôte possibles de toutes les machines intermédiaires entre la source et la destination. Tout d'abord, cet outil identifie si l'utilisateur a saisi une adresse IP ou un nom d'hôte et trouve le nom d'hôte ou l'adresse IP respectif en conséquence. Ensuite, il crée un datagramme IP encapsulant un paquet UDP avec des ports de destination aléatoires compris entre 33434 et 33464 ainsi qu'un nombre aléatoire de ports sources aléatoires. L'adresse IP de destination est soit directement fournie par l'utilisateur, soit obtenue à l'aide du nom d'hôte fourni par l'utilisateur via Scapy. Le saut maximum est fixé à 20 et le TTL augmente en fonction du numéro de saut actuel afin que toutes les machines intermédiaires sur le chemin avec une distance inférieure ou égale à 20 sauts puissent être découvertes. Enfin, il envoie et reçoit les paquets d'un saut au suivant et signale le nom d'hôte et l'adresse IP présents dans le paquet de réponse. Si un paquet n'est pas reconnu dans le délai prévu de 3 secondes, le paquet est envoyé une nouvelle fois. Sinon, un « * » est imprimé. Le programme s'arrête dès qu'il reçoit un message ICMP Port Unreachable (type 3) de la cible qui signifie que le paquet a atteint la destination et que le port de destination n'est plus ouvert.
usage: ./networkdiscovery.py [-h] [--version]
Network Discovery
optional arguments:
-h, --help show this help message and exit
--version Show Program's Version Number and Exit
usage: ./traceroute.py [-h] [--version] [--target TARGET]
Traceroute
optional arguments:
-h, --help show this help message and exit
--version Show Program's Version Number and Exit
--target TARGET Hostname or IP
usage: ./portscanner.py [-h] [--version] [--target TARGET] [--port PORT] [--tcp | --udp] [--verbose]
Port Scanner
optional arguments:
-h, --help show this help message and exit
--version Show Program's Version Number and Exit
--target TARGET Hostname or IP to scan
--port PORT Port [X] or Port Range [X-Y] to scan
--tcp TCP port scan (mutually exclusive with --udp)
--udp UDP port scan (mutually exclusive with --tcp)
--verbose Verbose output (Print all ports, not just open ports)
Distribué sous licence MIT.