Спуфинг и сборка пакетов

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Carlos0x29A, 11 Aug 2009.

Thread Status:
Not open for further replies.
  1. Carlos0x29A

    Carlos0x29A New Member

    Joined:
    11 Aug 2009
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Добрый день всем.
    Мне надо реализовать следующие задачи:
    1."Необходимо написать утилиту на C#, которая будет создавать TCP/UDP/ICMP пакет вручную с данными в полях которые введет пользователь и отправлять в сеть. Также необходимо добавлять опции для маршрутизаторов в пакет и задавать для TCP пакетов, таблицу маршрутизации.";
    2."У меня есть самопальный сниффер с качественным парсером, который перехватывает пакеты, проходящие через мою сетевуху. Необходимо как то реализовать процесс фрагментации пакетов, от сетевого до прикладного уровня. Я научился получать файл целиком и определять где его начало и конец. Следующая задача правильно сложить данные этих пакетов, убрав заголовки пакетов. В конечном итоге я должен получить файл, который кто то в сети передавал на другой компьютер."
    У меня весь проект на чистом .NET я не юзаю никаких либ. Все либы для сниффера написал ручками и все работает.
    Если вопрос задал не на том форуме, посоветуйте другой, где ответят.
    Господа хакеры у кого какие предложения по поводу решения двух задач перечисленных выше. Если на C# не знаете, подскажите на С++.
     
  2. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Советую взять тебе исходники dkcs DDoS бота и Illusion DDoS бота и в них поглядеть реализацию Syn/UDP/ICMP
    В Иллюжене это файлы SynFlood.cpp и UdpFlood.cpp и IcmpFlood.cpp там какраз идет ручная сборка IP пакета. А затем ручная сборка TCP/UDP/ICMP пакета.
    А потом это всё через сырые сокеты отправляется. Но знаяй что TCP соединение довольно сложно создать потому как ты должен еще отвечать корректно на то что шлет тебе сервак.
    Но ГЛАВНОЕ - винда невыпустит пакет если IP адрес отправителя будет отличаться от IP адреса твоего компа.
    Как альтернатива - юзать либу WinPCap которая даст это делать.

    Насчет фрагментации протоколов - так там всё просто
    Ethernet -> IP -> (TCP/UPD/OTHER) -> протоколы прикладного уровня.
    Вообще найди RFC по IP/TCP/UDP и там описана структура этих пакетов и тамже есть офсеты на вложенные протоколы. В исходниках тех ботов есть структуры описывающие эти протоколы. Остается тока найти описание Ethernet да и то оно очень простое
    Ethernet
    6 байт - Destination MAC - физ адрес получателя
    6 байт - Source MAC - физ адрес отправителя
    2 байта - Ethertype - ID вложенного протокола (0x0800 - это IP)
     
  3. Carlos0x29A

    Carlos0x29A New Member

    Joined:
    11 Aug 2009
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    спасибо за ответ. поищу исходники :)
     
Thread Status:
Not open for further replies.