2016-11-21 3 views
0

J'essaye d'écrire un petit script dans Python 2.7 en utilisant la bibliothèque d'encapsuleurs "dpkt" pour analyser l'exemple de fichier PCAP.Détection des scans semi-ouverts lors de la lecture de fichiers PCAP

J'ai bien écrit des vérifications spécifiques pour les analyses NULL, comme si seq = 0 et les drapeaux non définis, mais comment faire pour les tentatives d'analyse semi-ouvertes?

J'ai essayé de faire quelque chose comme: if SYN and RST flags are set print "Half-open" scan detected

Mais la logique ci-dessus ne ramasse pas les connexions à partir de l'exemple de fichier PPCE avec connexions semi-ouvertes.

Y a-t-il des vérifications supplémentaires à effectuer?

Répondre

0

La différence entre une poignée de main TCP régulière et la connexion TCP typique « semi-ouvert » flux de travail (généralement utilisé pour la surveillance et l'équilibrage de charge) est la suivante:

Normal 
------ 
Client ---SYN---> Server 
Client <-SYN,ACK- Server 
Client ---ACK---> Server 

Half-Open 
--------- 
Client ---SYN---> Server 
Client <-SYN,ACK- Server 
Client ---RST---> Server 

Donc, vous voyez que c'est seulement la dernière client- paquet vers le serveur qui est différent. Vous ne trouverez pas un seul paquet qui identifie un semi-ouvert. Vous devrez rechercher un flux/une séquence/une conversation (peu importe comment vous l'appelez) qui ressemble à la demi-ouverture que je décris et qui se produit généralement très rapidement (idéalement dans quelques millis si tout fonctionne correctement).