L'utilitaire FrameIP est un générateur de trame IP. Vous avez enfin la
possibilité de créer une trame IP manuellement en choisissant tous les champs
des entêtes
IP,
ICMP,
IGMP,
TCP,
UDP et autres. Cela peut vous permettre de tester une
nouvelle attaque, une maquette ou tous besoins personnalisés.
L'utilitaire est basé sur un seul EXE et ne s'installe pas. Il fonctionne sous
deux modes possibles :
Le premier est Winsock où il s'appui
entièrement sur la pile IP de votre Système. Dans ce cas, vous n'aurez pas
besoin de Dll spécifique en plus, ni d'autres fichiers et ni de driver du type
Winpcap. L'autonomie sera très intéressante.
Le second mode est Libpcap où il
s'appui sur Winpcap qui doit être préalablement installé. Cela vous apportera
la possibilité de générer en plus l'entête Ethernet ce qui permet de ne plus
être dépendant de son OS (plus de soucis avec les SP d'XP dans ce cas).
Posez vos questions, remarques,
demande d'évolution et retour d'expérience sur le
Forum dédié aux outils
2007.03.13 |
V5.9.3.12 |
- Ajout des
valeurs "r" et "a" pour les adresses MAC source et MAC destination |
2007.02.17 |
V5.8.3.12 |
- Remplacement
des valeurs 0 par "r" ou "a" afin de spécifier random et auto
- Ajout du tirage aléatoire des arguments -arp_ip_source et -arp_ip_destination |
2007.01.05 |
V5.7.3.12 |
- Correction
orthographique de Opocode en opcode
- Possibilité de forcer les checksum UDP et TCP à 0 en spécifaint la
valeure 100000 (par exemple : -udp_checksum 100000) |
2006.12.07 |
V5.6.3.11 |
- Ajout de la
gestion des argument ARP |
2006.11.11 |
V5.5.3.10 |
- Ajout de
l'argument -view permettant de supprimer l'affichage des résultats
- Correction du bug de l'argument -wait qui ne convertissait la valeur
saisie en unsigned char. Problème remonté par stephr84 |
2006.11.07 |
V5.4.3.10 |
- Correction
du bug d'affichage dans le cadre des IP_type différent d'IPv4 (Problème
remonté par stephr84)
- Plus besoin de spécifier -mac_auto à 0 pour indiquer une mac source |
2006.11.03 |
V5.3.3.10 |
- Suppression
de la possibilité de tirer aléatoirement l'argument -icmp_type. Ains, on
peux stipuler 0 comme valeur. Modification demandé par stephr84 |
2006.10.31 |
V5.2.3.10 |
- Prise en
compte du cas où Mac_type est différent de 2048. Ceci permettant
d'envoyer principalement des requêtes ARP (autres qu'IP). Problème
remonté par Rod
- Prise en compte de / en plus de - dans les arguments passés
- Passage de la variable loops en unsigned long
- Changement de l'ip_destination par défaut à 192.168.101.254
- Passage de la longueur des tableau à 16 pour les variables dchar
ip_source[15]; char ip_destination[15]; char ip_destination_igmp[15]; |
2006.08.18 |
V5.1.3.10 |
- Ajout des
arguments suivant permettant de spécifier l'interface et les options de
l'entête ethernet :
-send_mode
-interface
-mac_source
-mac_source_auto
-mac_destination
-mac_destination_auto
-mac_type
- Ajout de la fonction envoi_de_la_trame_pcap() permettant d'envoyer le
paquet via Libpcap. |
2004.08.11 |
V4.7.3.9 |
- Remplacement
des Strcp par Memcpy en insérant une variable géant la taille des
chaînes de caractères. Ceci gère donc maintenant les 00 dans les chaînes
hexa. |
2004.08.23 |
V4.6.3.8 |
- Ajout de
l'argument -data_hexa permettant de spécifier une chaine Hexa
- Passage de la valeur par defaut TCP_syn
au lieu de TCP_ack |
2004.02.12 |
V4.5.3.7 |
- Suppression de la double initialisation de la socket.
- Gestion de l'erreur 10013 indiquant qu'il faut être administrateur de la
machine pour utiliser les socket en mode raw.
- Calcul de la valeur ip_length afin de permettre le calcul du checksum IP.
- Passage de ip_id d'automatique à random afin de permettre le calcul du
checksum IP.
- Résolution du problème de calcul du checksum IP dans la librairie en
supprimant la prise en compte des data. |
2004.02.09 |
V4.4.3.6 |
- Vérification de tous les besoins en htons et htonl afin
d'inverser la lecture. Merci à Eric Lalitte.
Ne rien faire pour les variables de type unsigned char (8 bits).
Htons sur toutes les variables de type unsigned short (16 bits).
Htonl sur toutes les variables de type unsigned long (32 bits).
- Affichage dans l'aide de la nouvel limitation à 15 de l'argument -tcp_offset
et à 63 pour -tcp_reserved.
- Résolution du problème lors de l'utilisation des arguments -data et
-size simultanément. Le problème était présent si l'utilisation était
dans l'ordre -size x -data y.
- Résolution du champ -tcp_reserved à cheval sur deux unsigned char.
Séparation dans l'entête TCP par reserved et reserved2.
- Résolution du champ -ip_offset à cheval sur deux unsigned char.
Séparation dans l'entête IP par offset et offset2. |
2004.02.06 |
V4.3.3.5 |
- Correction du -loops 0 qui ne fonctionnait pas. |
2004.02.05 |
V4.2.3.5 |
- Résolution du problème de TCP non reconnu par Netmon. L'ip_offset
était mal réglé et l'interprétation de la longueur d'IP n'était pas
correcte et le départ de l'entête TCP n'était donc pas le bon.
- Traduction de l'argument -tcp_accuse par -tcp_acknowledge.
- Intégration des nouveaux arguments : -tcp_reserved -tcp_flag_urg -tcp_flag_ack
-tcp_flag_psh -tcp_flag_rst -tcp_flag_syn -tcp_flag_fin. |
2004.02.01 |
V4.2.3.5 |
- Mise en forme de l'affichage du résultat.
- Le port 0 source UDP et TCP ne sont pas calculé automatiquement. Donc je
les aient migrés en _random.. |
2004.01.27 |
V4.2.3.5 |
- Migration des else if en switch case.
- Intégration de l'argument -size.
- Intégrer de l'argument -data. |
2004.01.26 |
V4.2.3.5 |
- Ajout du calcul de checksum icmp, igmp, tcp et udp.
- Séparation de la fonction initiation des variables aléatoires et des
checksum.
- Suppression de l'argument -timeout. |
2004.01.25 |
V4.2.3.5 |
- Tirage aléatoire des variables à valeurs 0.
- Rajout de la gestion aléatoire pour l'argument -ip_type.
- Gestion de tous les ip_type comme le 255 (sauf Tcp, Udp, Icmp et Igmp). |
2004.01.24 |
V4.2.3.5 |
- Traduction des derniers termes fr en us.
- Nouvelle écriture de la variable -data afin d'utiliser la librairie
commune. |
2004.01.23 |
V4.23.5 |
- Passage des arguments -tcp_port_source et -udp_port_source à
0.
- Intégration de la gestion d'erreur sur l'initialisation. |
2004.01.22 |
V4.2.3.5 |
- Suppression de l'argument -t et remplacement par la valeur 0
de loops.
- Relecture du code en se basant sur le modèle Synflood. |
2003.05.20 |
V4.0 |
- La compilation ne fonctionnait plus depuis le passage à
Microsoft .net. Résolution en compilant la Lib en Multiprocess. |
2003.04.21 |
V3.6 |
- Comparaison des arguments indépendamment des minuscules et
majuscules grâce à la fonction strlwr.
- Suppression de l'argument -reception et remplacement par -timeout=0. |
2003.04.20 |
V3.5 |
- Correction du calcul du champ ipv4.length afin d'insérer la
taille de l'entête TCP ou UDP ou ICMP.
- Changement de l'utilisation de sprintf par la fonction memcpy permettant
la gestion de code 0. |
2003.04.19 |
V3.5 |
- Résolution du problème des champ offset, réserve et flag de
l'entête TCP.
- Inversion du champ ihl et version dans IP.
- Inversion du champ type et version dans IGMP. |
2003.04.18 |
V3.5 |
- Calcul des checksum IGMP, TCP et UDP. |
2003.04.17 |
V3.4 |
- Gestion des modules IGMP, TCP et UDP.
- Gestion des arguments IGMP, TCP et UDP. |
2003.04.16 |
V3.2 |
- Migration du projet en intégrant le FramIp.H comme fichier
de liaison.
- Ajout de la définition de la structure IGMP dans le .H.
- Suppression du module caché hacking. |
2003.04.15 |
V3.1 |
- Ecritue de la documentation IP des modules TCP, UDP et IGMP. |
2003.04.12 |
V3.1 |
- Ajout de l'argument Timeout dans la structure d'échange.
- Ajout de la boucle et de la pause entre chaque envoi dans le mode Cmd. |
2003.04.12 |
V3.0 |
- Fin du développement de PingIcmp.exe et donc reprise de ce
programme au 12 avril.
- Utilisation de VC++ 6.0.
- Transformation des code C en CPP
- Séparation des codes sources en Cmd - Librairie - Mfc
- Passage en Level 4 pour la compilation |
2003.03.21 |
V2.5 |
- Refonte de la procédure resolution_de_nom et intègre le code
retour du nom d'hote introuvable.
- Suppression de la partie TCP avec session.
- Ping sur www.yahoo.fr par défaut.
- Résolution de problème de réception ICMP en mettant IPPROTO_IP dans la
fonction Socket, au lieu de IPPROTO_RAW.
- Affichage brut de la trame réceptionnée, manque la gestion TCP et UDP.
Figure un problème Hexa sur les champs supérieur à 255 bits. |
2003.03.18 |
V2.5 |
- Migration de la lecture des arguments en +1 au lieu de plus
+2.
- Si aucun argument n'est spécifié alors donner l'aide.
- Suppression des printf est des codes retours
- Création de la variable validation_d_envoi afin d'afficher si la trame à
été envoyé ou pas.
- Suppression de la mesure du temps de réponse.
- Récupération automatique de l'IP source et intégration du return char *
dans la fonction.
- Passage du buffer de reception à 65535.
- Affichage de l'IP_source local dans l'aide.
- Refonte totale de l'affichage des options.
- Suppression des variables et saisies direct des arguments dans les
structures. |
2003.01.17 |
V2.3 |
- Intégration de la procédure
dimensionnement_de_data_a_envoyer permettant le choix de la taille des
données. |
2003.01.17 |
V2.2 |
- Refonte complète du code en passant à la gestion des entêtes
(offrant une option pour le TCP session).
- Ajout de "Host:www.yahoo.fr\n\" dans la data get (il ne faut laisser
qu'un seul \n juste avant Host). |
2003.01.17 |
V2.1 |
- Le clrsrc ne fonctionnait plus. J'ai inclus en dur la
librairie tcconio.lib. |
2003.01.16 |
V2.1 |
- Formatage à zéro de l'entête ip et icmp.
- Calcul du checksum (adaptation). |
2003.01.15 |
V2.0 |
- J'ai enfin réussit à émettre une trame à entête IP modifié,
il faut prendre manuellement ws2_32.lib au lieu de wsock32.lib (bridé
par MS).
- Renommage de l'exe en socket.exe.
- Travail sur la collecte des RFC IP et ICMP et du calcul des checksum
ICMP |
2003.01.14 |
V1.4 |
- Migration des *string en array.
- Résolution du problème d'affichage du retour du ping en migrant les
string en array |
2003.01.13 |
V1.3 |
- Affichage en Hexa de l'entête IP réceptionné. |
2003.01.10 |
V1.3 |
- Recherche Internet sur l'envoi d'une trame en modifiant
l'entête IP entièrement. |
2003.01.10 |
V1.3 |
- Ajout d'un nouveau module : Le hacking.
- 3 attaques. pm3 chaine et break. Accès aux attaques : Private.
- Solution en partie du problème ou le shutdown=-1. Supprimer les
SetSockOpt, trouver une solution pour faire cohabiter les deux. |
2003.01.09 |
V1.2 |
- Ajout du choix du TTL grâce à la primitive SetSockOpt(), Ca
fonctionne pour la trame sortante, mais pas pour celle de retour. |
2003.01.08 |
V1.2 |
- Ajout de l'argument -data afin de pouvoir spécifier la data
qui se retrouvera envoyé.
- Résolution du problème : Pourquoi l'entête ICMP est à 12 au lieu de 8?
C'était du à l'écriture du timestmp dans la trame, je l'ai migré en
variable temps_de_reponse.
- Problème de ping limité à 2000 résolut en passant par un array au lieu
d'un string. Nouvel limite à 65515.
- Possibilité de choisir le port source sans spécifier l'ip source. Grâce
à la commande .sin_port=htons(numero_du_port_source) qui choisit
dynamiquement l'ip source. |
2003.01.07 |
V1.2 |
- Ajout d'un string dans l'envoi du ping. |
2003.01.06 |
V1.2 |
- Ajout du paramètre choix de la taille du paquet ICMP.
- Utilisation de la commande strnicmp au lieu de strcmp pour comparer sans
distinction des majuscules et minuscules. |
2003.01.05 |
V1.2 |
- Implantation de la data echo dans le module icmp. |
2003.01.03 |
V1.1 |
- Mise en service de la fonction Bind permettant de choisir le
port source et l'adresse ip source.
- L'ip source doit être présente dans l'OS.
- Ajout d'un numéro de version.
- Essai d'envoi d'une trame TCP sans sa session via socket(AF_INET,SOCK_RAW,IPPROTO_TCP)
=> Echec. |
2003.01.02 |
|
- Choix du type de trame UDP ou ICMP. |
2002.12.29 |
|
- Emission et réception d'un get Http
- Ajout des arguments |
2002.12.28 |
|
- Résolution de nom fonctionne. |
2002.12.25 |
|
- Ouverture d'une Socket via WSAData |
2002.12.21 |
|
- Début du dev afin de tester les sockets.
- Mon arrière idée est de refaire le ping sans le nouveau bridage
Microsoft -w 1.
- Mon choix du compilateur s'est porté sur LCC 3.3 du au faite qu'il soit
Light à installer. |