FANDOM


Nuke и SYN flood атакиРедактиране

С думата Nuke се нарича всяка атака на портовете на отдалечен компютър, която довежда до крах на ОС и срив на интернет връзките. Nuke не нарушава състоянието на файловата система и не руши "желязото" на компютъра - презареждайки ОС user'ът може за продължи да работи в Мрежата.

nuke.cРедактиране

Атаката не е получила широко разпространение, тъй като е могла да работи само на UNIX системи с права root, използвайки RAW_SOCKET. Идеята за тази атака се е състояла в това, че тя е изпращала неправилни ICMP пакети за недостижимост на отдалечения сървър и машината-хост и губила връзката.

OctopusРедактиране

Унищожава всеки сървър, като го наводнява с TCP запитвания за връзка.

PingOfDeathРедактиране

AIX, Digital Unix, Linux, BSDi, OSF, SCO В ръководството на CERT се говори, че този бъг с превишаване размерите на IP-пакетите води до зависване и презареждане на системите. В действителност, ако се вярва на описаните резултати, тази dos атака действа само на Windows с WinQVT. За да се осъществи тази атака, трябва да се пусне програма ping с параметри: ping -l 65510 host.running.linux или на машина win: ping -l 65527 victim.dest.ip Ping of Death основана на изпращането на повече от 65 527 байта данни + 20 байта IP-заглавки +8 байта ICMP-заглавки в един IP-пакет. С хитрост може да се постигне ефектен резултат - получените данни просто няма да се поместят в 16-битния вътрешен обмен, възниква непоправима грешка, която пречупва ОС.

WinNukeРедактиране

blue screen or reboot on Winхх/NT В средата на май 1997г. чрез тази атака за няколко дни бил изведен от строя www.microsoft.com. наред с обичайните данни, изпращани по TCP връзките, стандартът предвижда също предаване на извънредни (Out Of Band) данни. На ниво формат на пакетите TCP това се изразява в нулев urgent pointer. При повечето РС'та с установени Windows присъства мрежов протокол NetBIOS, услугите на който се осъществяват на 139 порт. Също често се среща MS DNS (53 поpт). Както се изясни чрез експеримента, ако се включиш към Windows и по който и да е от подслушваните портове се изпратят няколко байта OutOfBand данни, реализацията на стека TCP/IP не знае какво да прави с тези данни и простичко машината увисва. Win попада в синия текстови екран, който съобщава за грешка в драйверите на TCP/IP и невъзможност за работа с мрежата до преинсталиране на ОС. NT без служба пакети се презарежда, а NT с SP2 попада също в синия екран. Код за perl5.004 perl -MIO::Socket -e \ 'IO::Socket::INET->new(PeerAddr=>"some.windoze.box:139")->send("bye",MSG_OOB)' С SP3 за WinNT и WinNuke се свързва доста весела история. Както се изяснило след пускането на SP3, стартирано от компютър Apple, WinNuke спокойно пробивал защитата на сървис пака. Съществуването на два различни стандарта на IP пакети, съдържащи OutOfBand, била причината. Има стандарт на Berkley и стандарт, описан в RFC 1122. Различията се състоят в това, че UrgentPointer се изчислява по различен начин. В действителност UrgentPointer в двете реализации се различава с единица. Третият сървис пак защитен от "свои" ООВ пакети, се оказва беззащитен срещу пакети от друг стандарт. Затова почти веднага след SP3 излязъл допълнителен ООВ fix.

Jolt / SpingРедактиране

Зависват машини с Windows(OSR2), Memphis и Windows NT 4.0, които нямат firewall, блокиращи ICMP-пакетите. Също така това сработва и при машини със стара MacOS и стари реализации на System V. Програмата се базира на стар код, който се използвал за "замразяване" работата на Unix System V. Тя изпраща серия от големи фрагментирани ICMP пакети, при приема на които машината безрезултатно се опитва да ги събере.

smurf / smurf for bsdРедактиране

heavy flood of victimsРедактиране

Програмата е достатъчно примитивна. В нея в масив се указва списък с адреси, към които нееднократно се изпращат служебни съобщения за запитвания icmp_echo_request, изискващи отговор насочен към адреса на жертвата. В резултат на атаката, в зависимост от количеството на указаните адреси, жертвата получава мощен поток от съобщения, което за dual up ползвателите е равносилно на "моментална смърт".

LandРедактиране

Affecting Windows (OSR2)/Windows NT 4.0/FreeBSD/HP-UX/OpenBSD/SunOS/ IOS (на нея работи с мрежовото оборудване на Cisco Systems). Към жертвата се изпращат SYN пакети, в които IP адресът на източника и пункта на предназначение се указват равни с адреса на самата атакувана система (включително и еднаквите портове). Произтича зацикляне когато жертвата се опита да установи връзка сама със себе си, което в крайна сметка извежда машината извън строя. Портът естествено трябва да бъде открит. Често атаките се комбинират. Например, Land & IP Spoofing: нападащата страна мигновенно провокира сървърът към обмен на съобщенията, но в качеството на обратен адрес се указва измислен. По такъв начин възниква полуоткрита връзка (half-open connections), при определени количества на които сървърът се указва просто не способен да открива нови. В болшинството случаи сървъри-жертви осезаемо забавят своята работа. Въпреки, че може да възникне аварийно презареждане на паметта. (Spoofing - подмяна на реалния адрес на отправителя с измислен. Като правило се използва в съчетание с различни видове атаки, за да не може жертвата да определи адреса на атакуващия.)

LatierraРедактиране

Crashes Windows 95, and will cause Windows NT 4.0, SP3 to utilize a high percentage of CPU. In some instances, CPU usage reaches %100 Е модифицирана версия на land.c. изпраща практически същите пакети както и land, но едновременно на няколко порта. WinNT изобщо не го бърка дали е открит порта или не. NT с SP3 не позволява връзки към тези портове, но ако се манипулират различни портове, то реално може да се достигне нужния ефект.

teardrop / overdropРедактиране

Linux(kernel up to 2.0.31)/NT/95(OSR) Оказва се, че Linux има сериозен bug във функцията за сбор на фрагменти ip_glue(). Когато системата събира IP фрагментите с построяване на оригиналната дейтаграма, се стартира цикъл за копиране на всички полезни фрагменти от получената дейтаграма в буфера. От файла ip_fragment.c@376: fp = qp->fragments; // указател на списъка на получените пакети while(fp != NULL) // докато не са събрани всички нужни пакети { if(count+fp->len > skb->len) //ако дължината на фрагмента е твърде { // голяма, то той се отхвърля error_to_big; // за да не копира ядрото твърде } // много данни memcpy((ptr + fp->offset), fp->ptr, fp->len); count += fp->len; fp = fp->next; } Както е видно тук не се осъществява проверка за твърде марка дължина на фрагмента, която също заставя ядрото да копира голям обем данни (в случай, че fp->len по-малко от 0). За да узнаете кога това става, погледнете точките на добавяне в дейтаграмата по реда на обработка на сбора. От файла ip_fragment.c@502: // определяме позицията на фрагмента end = offset + ntohs(iph->tot_len) - ihl; И какво се получава, когато ние прекроим фрагмента : От файла ip_fragment.c@531: //Ние намерихме мястото, където да положим този фрагмент. // Проверка на сравняване с предшестващия фрагмент, // и, ако трябва, изравняваме, така че да се отстрани препокриването. if (prev != NULL && offset < prev->end) { i = prev->end - offset; offset += i; /* указател на дейтаграмата */ ptr += i; /* указател на фрагмента */ } Ако открием, че текущото заместване на фрагмента е по-малко от края на предишния фрагмент (при сравнение), ни е необходимо да се опитаме да установим покриването. Всичко е ОК, ако съдържанието на текущия фрагмент съдържа достатъчно количество данни, за да превишава припокриването. В противен случай при смесването offset ще бъде по-голямо от end. Тези две значения се предават на функцията ip_frag_create(), в която се изчислява дължината на фрагмента (данните). От файла ip_fragment.c@97: //Запълваме структурата fp->offset = offset; fp->end = end; fp->len = end - offset;

Това довежда към отрицателно значение на fp->len и функцията memcpy(), преведена по-нагоре ще грохне опитвайки се да копира твърде много данни, ще се пренатовари или увисне в зависимост от количеството. Ние можем да провокираме такова нестандартно поведение по пътя на изпращане на две специално фрагментирани IP дейтаграми. Първата има нулево смесване на фрагмента с полезни данни и размер N, с установени MF битове "фрагментиран пакет" (съдържанието на данните не е важно). Вторият пакет се явява с последен флаг (MF равен на 0) с положително смесване по-малко от N и с данни по-малко от N. Пример: две дейтаграми с размер 28 и 6 байта. prev->end= 28 // дължина на първата offset = 6; // смесване на втората iph->tot_len = 6; // размер на данните на втората end = offset + ntohs(iph->tot_len) - ihl; // end = 12 // проверка при налагането if (prev != NULL && offset < prev->end) { i = prev->end - offset; offset += i; /* указател на дейтаграмата */ ptr += i; /* указател на фрагмента */ } // тук вече offset = 28, а end = 12 => ето и отрицателния резултат

bonkРедактиране

Crashes *patched* win(OSR2)/NT 4.0 machines. Използва открития UDP порт 55, който като правило е отворен на машините с установен IE. Два щателно преработени IP пакета при сбор дават неправилна UDP дейтаграма. Налагането на смесването води до това, че във вторият пакет се презаписва по средата заглавката на първия по такъв начин, че дейтаграмата остава незавършена, паметта не се освобождава и в края на краищата се изчерпва. Windows NT отделя част от ядрото на паметта за съхранение на тези дейтаграми и може да зависне от съобщение STOP 0x0000000A след обработка на достатъчно повредени UDP пакети. Майкрософт пуска не достатъчно изряден пач, който не напълно оправя тази грешка. Разплата за небрежността става нощта между 2 и 3 март 1998г., когато неизвестен злоумишленик изведе от строя хиляди Windows-машини в САЩ именно с такава атака. Сред пострадалите се оказаха и NASA и Масачузетския технологичен университет.

Newtear Модифицирана версия на teardrop'aРедактиране

Affects patched NT4, and Win.

Основаваща се на същия принцип като TearDrop, newtear се явява нейно логично продължение: намалена е само реалната дължина на пакета, при което е увеличена логическата дължина (UDP). syndrop доразработена за работа с TCP, в комбинация с SYN flood

boinkРедактиране

Концептуално по нищо не се отличава от bonk, просто се използват други портове. В програмата е добавена възможност за избор на диапазон на портове за bonk атака.

=Fraggle

heavy flood of victimsРедактиране

продължението на идеята на smurf, довежда до образуването на прекалено голям трафик на жертвата, използвайки UDP протокол и 7 UDP порт (echo).

NesteaРедактиране

Crashes linux and some windows boxes

Използва лека модификация на идеята на teardrop'a за фрагментация на пакети при атака към открит UDP port: изпращане на три фрагментиране пакети.

Nestea2Редактиране

Атаката е аналогична с nestea.c, само че са добавени опции за сканиране на подмрежа клас С.

TargaРедактиране

Комбинира осем атаки в една: bonk / jolt / land / nestea / newtear / syndrop / teardrop / winnuke