четвъртък, 28 февруари 2008 г.

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 попада също в синия екран. 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 попада също в синия екран. 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 2.0.* and 2.1.* and some windows boxes

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

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

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

Няма коментари: