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

Тема в разделе "WASM.NETWORKS", создана пользователем System0x29A, 11 авг 2009.

  1. System0x29A

    System0x29A New Member

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

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Winpcap тебе поможет вероятно.
     
  3. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    если у тебя все работает, и ты умеешь выделять соединение, то очень странно что ты не можешь выполнить задачу).
    я не в курсе .NET, но интересно каким образом с помощью него можно что либо перехватить вообще? что за системный механизм юзается? сырые сокеты ведь уже не катят в юзермоде давно, без определенных телодвижений
     
  4. System0x29A

    System0x29A New Member

    Публикаций:
    0
    Регистрация:
    11 авг 2009
    Сообщения:
    17
    у меня нет никакого механизма, я просто перевел свою сетевуху в режим promiscuous mode и перехватываю все пакеты проходящие через сетевуху. Затем основываясь на RFC 791,792,793 и других я написал себе бинарный парсер, который выделяет из перехваченных пакетов, поля заголовков. В протоколе IP, есть поле протокол, по этому полю я могу определить к какому протоколу относится мой. 1-ICMP, 6-TCP,17-UDP и т.д.
    Теперь мне нужен спуфер для того чтобы я мог протестировать свою локальную сеть в отладочном режиме. Я в курсе что сырые TCP сокеты были разрешены только в 2000 винде. Но у меня все работает. На крайняк можно взять линукс где все разрешено, поставить моно, и стартануть сниффер, но это уже вопросы переносимости. Меня же на данный момент интересует как реализовать спуфер и сборку пакетов в единый документ. Давайте без флуда и по теме)) Спасибо.
     
  5. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    да нет вобще они везде разрешены, но только с ограничениями, если поставить wireshark(который на том же pcap основана) можно будет заметить разницу
    раз уж такой разговор пошел то советую взять стороннюю либу(ту что предложили выше) и читать рфц на tcp протокол, а не искать каких-то господ хакеров )))
     
  6. System0x29A

    System0x29A New Member

    Публикаций:
    0
    Регистрация:
    11 авг 2009
    Сообщения:
    17
    гы хороший совет. Но дело в том что я уже написал свою либу наподобие той что и WinPCAP, просто дров не требует, да и не все еще реализовано. Реализовано только то что мне надо. WinPCAP я юзать не буду, моя задача реализовать все на чистом .NET. Скоро .NET будет встроен в процы Intel)) Уже есть микроконтроллеры с поддержкой .NET по технологии MicroFramework.
    С WinPCAP не удобно поскольку для работы моей софтины на других компиках надо обязательно ставить либу WinPCAP. Тот вариант который у меня написан сейчас работает везде и на хп и на линуксе. Для висты и винды 7 надо будет искать дрова.
    Не спорю конечно легче использовать то что уже другие давно оттестили и написали, как WinPCAP,NetMon,ACE. Но у меня задача пройти путь дзенствующего.
    Если не можете мне помочь, значит не отвечайте, но не надо отправлять меня читать гугл или всякие доки. Уже начитался сполна.
    Лучше подскажите как решить задачу или подкиньте идею как можно было бы решить эти две задачи.
     
  7. vover

    vover Владимир

    Публикаций:
    0
    Регистрация:
    21 авг 2008
    Сообщения:
    202
    А отправлять в сеть пакеты с пользовательскими заголовками умеет?
    Насколько мне известно в винде с некоторых пор нельзя отсылать raw'ы не прибегая к помощи Winpcap или своего драйвера.
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Limitations on Raw Sockets

    On Windows 7, Windows Server 2008 R2, Windows Vista, and Windows XP with Service Pack 2 (SP2), the ability to send traffic over raw sockets has been restricted in several ways:

    * TCP data cannot be sent over raw sockets.
    * UDP datagrams with an invalid source address cannot be sent over raw sockets. The IP source address for any outgoing UDP datagram must exist on a network interface or the datagram is dropped. This change was made to limit the ability of malicious code to create distributed denial-of-service attacks and limits the ability to send spoofed packets (TCP/IP packets with a forged source IP address).
    * A call to the bind function with a raw socket is not allowed.

    These above restrictions do not apply to Windows Server 2008 , Windows Server 2003, or to versions of the operating system earlier than Windows XP with SP2.

    Выбираем ось, по вкусу.
     
  9. System0x29A

    System0x29A New Member

    Публикаций:
    0
    Регистрация:
    11 авг 2009
    Сообщения:
    17
    Нет, иначе я бы не задавал вопроса на этом форуме.
    Я в курсе этого. На крайний случай можно воспользоваться RDK для дров на .NET.
    Я на других форумах тоже задавал этот вопрос, но никто не смог объяснить как ручками создать спуффер на сокетах, без всяких WinPCAP. Пускай даже под 2000 винду или 2003 сервер. Я просто хотел сравнить реализацию, которую я себе представляю, с реализацией которую могут предложить опытные специалисты.
    Я вот все кручусь вокруг да около. Неужели все настолько просто, что надо просто создать структуру заголовка протокола TCP, заполнить ее данными, преобразовать в массив байтов. Создать структуру IP, заполнить ее данными, преобразовать в массив байтов. Создать структуру Ethernet фрейма, заполнить ее данными, преобразовать в массив байтов. Сложить массивы байтов воедино Ethernet + IP + TCP. Отправить в сеть на адресс+порт указанный в сокете на подключение. Дальше пакет наверное из данных хранящихся в заголовке должен выйти из подсети.
    Но я уверен что тот метод который я себе представляю врятли сработает, пакет прибьет первый же маршрутизатор провайдера.
    Как программно реализовать спуффер, без всяких WinPCAP на Winsock?
    С DDoS ботами я и так сейчас разбираюсь в поисках реализации. Но может кто то уже писал спуффер, подскажите хотя бы теоритически, как и что должно работать. Спасибо.
     
  10. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    System0x29A
    Дудки Ethernet заголовок поменять. Ставишь на уровне IP и заполняешь весь стек выше ручками. Довольно просто.
     
  11. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    "это" любой файер прибъет
    если слать из драйвера и физическая среда ethernet, то да
    поправить адреса на нужные, посчитать чексуммы и можно слать
    правда нельзя забывать что, если ты поправил физ адрес интерфейса,
    то придется тогда полностью эмулировать новый, тобишь фильтровать ARP
    в юзермоде это никто не делает, ну только если все нужные необработанные
    пакеты перебрасывать из ядра в юзермод и там разбираться (WinPCAP уже предлагали)
     
  12. vover

    vover Владимир

    Публикаций:
    0
    Регистрация:
    21 авг 2008
    Сообщения:
    202
    В реализации Winsock 2.0 и выше есть несколько(а именно вроде 3) интерфейсов для работы с сокетами. Потоковая, датаграммная и равка. Так вот тебе нужна равка. http://msdn.microsoft.com/en-us/library/ms740548(VS.85).aspx
    В прикреплённом файле пример на С++ Билдере, от какой то статьи. Название или адрес статьи не помню, поищи может найдешь.
     
  13. vover

    vover Владимир

    Публикаций:
    0
    Регистрация:
    21 авг 2008
    Сообщения:
    202
    лагануло.
     
  14. System0x29A

    System0x29A New Member

    Публикаций:
    0
    Регистрация:
    11 авг 2009
    Сообщения:
    17
    ого спасибо за пример)
     
  15. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    не будет работать ведь, не говоря уже про палево
    (хотя может прокатит в специально настроенной среде без файеров, проактивок,
    с предварительно пропатченной сетевой подсистемой, которая это пропустит)

    ну не бывает такого )
    ==> MSDN, RFC, ну и тут тоже много чего по теме
     
  16. int_13h

    int_13h New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    163
    Адрес:
    Красноряск
    на вин 2к то отправка TCP работает походу, не проверял, но много где пишут... сам буду кодить нечто подобное под 2к виндой проверю за одно...
     
  17. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    в 2к то работает только толку
     
  18. int_13h

    int_13h New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    163
    Адрес:
    Красноряск
    ...кстати как вариант есть ещё *BSD там с сокетами всё ок =)
     
  19. int_13h

    int_13h New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    163
    Адрес:
    Красноряск
    ну или в крайнем случае дебуггером пройтись по tcpip.sys и сделать заплатку для него чтоб не мешал равкам
     
  20. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    o14189
    Вот пристал к 2k, не только там.