vendredi 24 mai 2024

Fuzzer de port TCP basique en C#

using System;

using System.Net;

using System.Net.Sockets;

using System.Text;

using System.Threading;


class Program

{

    static void Main(string[] args)

    {

        if (args.Length < 3)

        {

            Console.WriteLine("Usage: Fuzzer.exe <host> <port> <duration>");

            return;

        }


        string host = args[0];

        int port = int.Parse(args[1]);

        int duration = int.Parse(args[2]);


        try

        {

            using (TcpClient client = new TcpClient())

            {

                client.Connect(host, port);

                NetworkStream stream = client.GetStream();


                DateTime startTime = DateTime.Now;

                while ((DateTime.Now - startTime).TotalSeconds < duration)

                {

                    string fuzzData = GenerateFuzzData();

                    byte[] buffer = Encoding.ASCII.GetBytes(fuzzData);

                    stream.Write(buffer, 0, buffer.Length);


                    Thread.Sleep(100); // Attendre un peu avant de réessayer

                }

            }

        }

        catch (Exception ex)

        {

            Console.WriteLine("Error: " + ex.Message);

        }

    }


    static string GenerateFuzzData()

    {

        StringBuilder sb = new StringBuilder();

        Random rand = new Random();

        int length = rand.Next(10, 100); // Génère une chaîne aléatoire de 10 à 100 caractères


        for (int i = 0; i < length; i++)

        {

            sb.Append((char)rand.Next(32, 126)); // Caractères aléatoires ASCII imprimables

        }


        return sb.ToString();

    }

}

Informations envoyées par une carte bancaire VISA Caisse d'Epargne à la première connexion NFC (RFID)

 ISO/IEC 14443 est une norme internationale qui définit les spécifications pour les cartes à puce sans contact et les lecteurs RFID utilisés pour la communication à courte distance (typiquement jusqu'à 10 cm). La norme est divisée en quatre parties, couvrant les aspects techniques tels que la modulation, la génération de trames, la procédure d'initialisation de la communication et les protocoles de transmission de données.

ISO/IEC 14443 Type A est l'un des deux types de modulation et de protocole de communication définis dans la norme ISO/IEC 14443, l'autre étant le Type B. Les cartes et les lecteurs compatibles avec le Type A utilisent une modulation de type Miller à 100 % avec une porteuse de 13,56 MHz et une modulation d'amplitude pour la transmission des données.

Les caractéristiques clés de l'ISO/IEC 14443 Type A comprennent :

1. Modulation : La modulation de la porteuse est réalisée en utilisant une modulation d'amplitude (AM) avec une modulation de type Miller à 100 %.

2. Fréquence de la porteuse : 13,56 MHz.

3. Débit de données : 106 kbit/s.

4. Protocole de communication : Le protocole de communication Type A utilise un schéma de trames avec un en-tête de préambule, un en-tête de trame (Start-of-Frame, SOF), un champ de données et un en-tête de fin de trame (End-of-Frame, EOF).

5. Sécurité : La norme ISO/IEC 14443 Type A prend en charge des mécanismes de sécurité, tels que l'authentification et le cryptage des données, pour protéger la confidentialité et l'intégrité des informations échangées entre la carte et le lecteur.

Les technologies MIFARE Classic et MIFARE Ultralight sont basées sur la norme ISO/IEC 14443 Type A et sont largement utilisées dans les applications de transport public, les systèmes de cartes à puce, les systèmes de contrôle d'accès, etc.


ATQA (Answer To Request for Answer) est un champ de données envoyé par une carte à puce sans contact ou un élément d'identification par radiofréquence (RFID) en réponse à une demande de communication initiale (appelée "Request") envoyée par un lecteur compatible. L'ATQA est utilisé pour indiquer les capacités de la carte ou de l'étiquette RFID, telles que le type de modulation et le débit de données utilisés pour la communication.

Dans le contexte de la norme ISO/IEC 14443, qui définit les spécifications pour les cartes à puce sans contact et les lecteurs RFID, l'ATQA est un champ de 2 octets (16 bits) envoyé par la carte en réponse à un "Request" envoyé par le lecteur. Les informations contenues dans l'ATQA varient en fonction du type de modulation (Type A ou Type B) et comprennent généralement :

1. Le type de modulation utilisé par la carte (Type A ou Type B).

2. Le débit de données (106 kbit/s pour les types A et B conformes à ISO/IEC 14443).

3. Des informations supplémentaires sur les capacités de la carte, telles que la prise en charge de la rétrodiffusion de puissance et d'autres fonctionnalités.

L'ATQA est une étape importante dans la procédure d'initialisation de la communication entre un lecteur RFID et une carte à puce sans contact, car il permet au lecteur de déterminer les caractéristiques techniques de la carte et de s'adapter en conséquence pour établir une communication efficace et sécurisée.


ATS (Answer To Select) est un ensemble de données envoyé par une carte à puce sans contact ou un élément d'identification par radiofréquence (RFID) en réponse à une sélection de la carte effectuée par un lecteur compatible. L'ATS est utilisé pour fournir des informations sur les capacités de la carte, les paramètres de communication et les services ou applications disponibles sur la carte.

Dans le contexte de la norme ISO/IEC 14443, qui définit les spécifications pour les cartes à puce sans contact et les lecteurs RFID, l'ATS est un ensemble de données envoyé par la carte en réponse à un "Select" envoyé par le lecteur. L'ATS est composé de plusieurs champs de données, dont la taille et le contenu varient en fonction du type de modulation (Type A ou Type B) et comprennent généralement :

1. Le code d'application (Application Identifier, AID) : Un identifiant unique qui permet au lecteur de sélectionner une application spécifique sur la carte.

2. Le champ ATS : Un ensemble de données qui fournit des informations sur les capacités de la carte, les paramètres de communication et les services ou applications disponibles.

3. Le champ d'extension ATS (si présent) : Un ensemble de données supplémentaires qui fournissent des informations complémentaires sur les capacités de la carte et les services disponibles.

L'ATS est une étape importante dans la procédure de communication entre un lecteur RFID et une carte à puce sans contact, car il permet au lecteur de déterminer les caractéristiques techniques de la carte, de sélectionner l'application appropriée et d'établir une communication efficace et sécurisée avec la carte.


UID (Unique Identifier) est un identifiant unique attribué à une carte à puce sans contact ou à un élément d'identification par radiofréquence (RFID). L'UID est généralement stocké dans une zone de mémoire spécifique de la carte ou de l'étiquette RFID et est utilisé par les lecteurs compatibles pour identifier et sélectionner la carte ou l'étiquette RFID lors de la communication.

Dans le contexte de la norme ISO/IEC 14443, qui définit les spécifications pour les cartes à puce sans contact et les lecteurs RFID, l'UID est un ensemble de données qui peut varier en taille, généralement de 4 à 10 octets (32 à 80 bits). L'UID est unique pour chaque carte ou étiquette RFID et est généré lors de la fabrication de la carte ou de l'étiquette.

L'UID est utilisé pour identifier et sélectionner une carte ou une étiquette RFID spécifique lors de la communication avec un lecteur compatible. Une fois que le lecteur a sélectionné la carte ou l'étiquette RFID en utilisant l'UID, il peut établir une communication avec la carte ou l'étiquette pour lire ou écrire des données, effectuer des opérations d'authentification, etc.

Il est important de noter que l'UID est souvent considéré comme une information sensible, car il peut être utilisé pour identifier et suivre des cartes ou des étiquettes RFID individuelles. Par conséquent, il est important de protéger l'UID et d'appliquer des mesures de sécurité appropriées pour prévenir les accès non autorisés et les attaques de type "skimming" ou "cloning".