Сетевой фильтр

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by criz, 8 Nov 2008.

  1. criz

    criz Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    На форуме я уже спрашивал про фильтр/блокировку tcp-пакетов и мне помогли с этим разобраться :)
    Теперь пришло время других протоколов: ICMP и UDP.
    Больше интересует первый. Как заблокировать icmp-запросы? Отправлять сообщение ICMP_DEST_UNREACH?
     
  2. Dian

    Dian Elder - Старейшина

    Joined:
    2 Sep 2008
    Messages:
    57
    Likes Received:
    11
    Reputations:
    4
    А TCP как блокируешь?
    Это всё идет поверх IP, лучше разобраться сразу с их обработкой
     
  3. SpangeBoB

    SpangeBoB Elder - Старейшина

    Joined:
    12 Jul 2008
    Messages:
    1,680
    Likes Received:
    393
    Reputations:
    102
    Что мешает посмотреть исходники ipfw,iptables.
     
  4. criz

    criz Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    Просто формирую и отправляю пакет с RST-флагом.
    Ничего не мешает, уже смотрел :)
    Вот что получилось сделать:
    Code:
                            new_ip	= (proto_ip_h *)(packet + 14);
                            new_ip->header_len      = ip->header_len;
                            new_ip->version         = ip->version;
                            new_ip->tos             = ip->tos;
                            new_ip->tot_len         = htons((ip->header_len)*4 + 64);
                            new_ip->id              = htons(ntohs(ip->id) + 1);
                            new_ip->frag_off        = 0;
                            new_ip->ttl             = ip->ttl;
                            new_ip->protocol        = ip->protocol;
                            new_ip->saddr           = ip->daddr;
                            new_ip->daddr           = ip->saddr;
                            new_ip->checksum        = 0;
                            new_ip->checksum        = cksum((u8*)new_ip,new_ip->tot_len);
    
                            new_icmp = (proto_icmp_h *)(pkt_data + 14 + (ip->header_len)*4);
    
                            new_icmp->type = ICMP_DEST_UNREACH;
                            new_icmp->code = 3;
                            new_icmp->un.echo.id = icmp->un.echo.id;
                            new_icmp->un.echo.sequence = icmp->un.echo.sequence;
                            new_icmp->crc = 0;
                            new_icmp->crc = cksum((u8*)new_icmp, sizeof(new_icmp));
                            pcap_sendpacket(iface,packet,packetlen);
    
    тут где-то ошибка, только вот где :)
     
  5. SlyBit

    SlyBit Elder - Старейшина

    Joined:
    4 Jul 2008
    Messages:
    49
    Likes Received:
    8
    Reputations:
    0
    Какая связь между контролем трафика и отправкой пакета?
     
  6. criz

    criz Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    Я писал про контроль трафика? :)
    Мне лишь надо ловить пакеты и в ответ отправлять свои...
     
  7. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    8))) ... а зачем посылать ложные ICMP ведь система пошлет и свой! Поскольку сессии как таковой нет то в ответах от твоего компа можем иметь интересную картинку
    Таймаут
    Ответ
    Таймаут
    Ответ
    Таймаут
    ========8)))) можно конечно попрактиковаться но чисто для теории

    С Пикапом можно играться в следующие стороны:
    1: Организации брэндмауэра небольшой фирмы (по сути ARP прокси в простонародьи
    ...комп как таковой с 2-мя сетевухами )
    - одна из вариаций подделка дефаултового гейта (через один сетевой интерфейс)
    2: Перехват установленной TCP сесии далее по учебнику Атака на интернет
    3: посылка длииинющей фрагментированной последовательности TCP пакетов
    4: Инкапсуляция одного протокола в другой (серые пайпы)

    да вообще много интересных задач!


    ---
    смещения твои не проверял
    0-е srcmac
    +6 destmac
    +12 ip_tos
    +14 ip_header !!!!!!!! длинной 20-ть
    и далее ICMP
     
    #7 Delimiter, 10 Nov 2008
    Last edited: 10 Nov 2008
  8. criz

    criz Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    Delimiter, из всего следует вывод: писать свой драйвер? :)
     
  9. SpangeBoB

    SpangeBoB Elder - Старейшина

    Joined:
    12 Jul 2008
    Messages:
    1,680
    Likes Received:
    393
    Reputations:
    102
    Да сделайте еще одно квадратное колесо.
     
  10. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    направление на Comodo 8))) сначала флудеры писали на Пикапе а потом добрались и до файрвола!
    Сам найдешь ???


    А драйвер писать нужно!!!!!!!!!!! Хотя бы для оттачивания их написания и пусть это будет 3стамиллионное калесо но оно будет твое личное!
     
    #10 Delimiter, 10 Nov 2008
    Last edited: 10 Nov 2008
  11. Dian

    Dian Elder - Старейшина

    Joined:
    2 Sep 2008
    Messages:
    57
    Likes Received:
    11
    Reputations:
    4
    Именно. Я к тому и спрашивал. Блок получается слишком уж сомнительный.
    В том смысле, что пакеты всё равно проходят в систему. А об исходящих пикап вообще ничего не знает...
     
  12. criz

    criz Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    Да, понимаю. Просто получив RST-ответ машина будет думать, что соединение сброшено :)
    Delimiter, если я правильно понял куда ты меня отправил, то буду гуглить комодо)))
    З.Ы. написание драйвера требует много времени, которого у меня нет. випикап мне показался лучшим вариантом
     
  13. Dian

    Dian Elder - Старейшина

    Joined:
    2 Sep 2008
    Messages:
    57
    Likes Received:
    11
    Reputations:
    4
    Если вообще машина может думать :)
    (D)DoS будет свободно проходить
     
    #13 Dian, 12 Nov 2008
    Last edited: 12 Nov 2008