ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Отправка сырого пакета
  #1  
Старый 23.02.2010, 02:27
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию Отправка сырого пакета

PHP код:
struct sockaddr_in sin;

    
sin.sin_family AF_INET;
    
sin.sin_port htons(80);
    
sin.sin_addr.s_addr inet_addr("192.168.0.100");
    
    
char datagram[sizeof(ipheader)+sizeof(tcpheader)];
    
ipheader *iph = (ipheader *)datagram;
    
tcpheader *tcph = (tcpheader *)(datagram sizeof(ipheader));
    
PS_HDR pseudo_header;

    
memset(datagram0sizeof(datagram));

    
iph->ip_hl         5;
    
iph->ip_v         4;
    
iph->ip_tos         0;
    
iph->ip_len         sizeof(ipheader) + sizeof(tcpheader);
    
iph->ip_id         rand();
    
iph->ip_off         0;
    
iph->ip_ttl         255;
    
iph->ip_p         IPPROTO_TCP;
    
iph->ip_sum         0;
    
iph->ip_src         inet_addr("192.168.0.100");
    
iph->ip_dst         sin.sin_addr.s_addr;

    
tcph->th_sport     htons(getrandom(01500));
    
tcph->th_dport     sin.sin_port;
    
tcph->th_seq     rand();
    
tcph->th_ack     0;
    
tcph->th_x2         0;
    
tcph->th_off     5;
    
tcph->th_flags     TH_SYN;
    
tcph->th_win     htons(512);
    
tcph->th_sum     0;
    
tcph->th_urp     0;

    
pseudo_header.source_address  iph->ip_src;
    
pseudo_header.dest_address      sin.sin_addr.s_addr;
    
pseudo_header.placeholder      0;
    
pseudo_header.protocol          IPPROTO_TCP;
    
pseudo_header.tcp_length      htons(sizeof(tcpheader));

    
memcpy((char*)&pseudo_header.tcptcphsizeof(tcpheader));
    
iph->ip_sum  checksum((unsigned short *)&iphsizeof(ipheader));
    
tcph->th_sum checksum((unsigned short *)&pseudo_headersizeof(pseudo_header));
 
    if (
sendto(sdatagramsizeof(datagram), 0, (SOCKADDR *)&sinsizeof(sin)) == SOCKET_ERROR)
        return -
1
в общем - пытаюсь отправить сырой SYN-пакет, но он не доходит, а сниффер пишет что адрес и порт отправки и назначения пустые. Адрес src И адрес сетевухи совпадают
 
Ответить с цитированием

  #2  
Старый 23.02.2010, 02:33
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

я не вижу слова socket
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #3  
Старый 23.02.2010, 02:38
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Сообщение от desTiny  
я не вижу слова socket
ну я как бы убрал все лишнее тк работает как надо. ну вот то что перед этим

PHP код:
int bOpt 1
WSADATA asd;
WSAStartup(MAKEWORD(2,2),&asd);
SOCKET s socket(PF_INETSOCK_RAWIPPROTO_RAW);
setsockopt(sIPPROTO_IPIP_HDRINCL, (char *)&bOptsizeof(bOpt)) 
 
Ответить с цитированием

  #4  
Старый 23.02.2010, 03:41
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


Отправить сообщение для razb с помощью ICQ
По умолчанию

Мб лучше pcap заюзать? )
 
Ответить с цитированием

  #5  
Старый 23.02.2010, 04:47
xa-xa89
Участник форума
Регистрация: 17.05.2008
Сообщений: 102
Провел на форуме:
1054394

Репутация: 74
Отправить сообщение для xa-xa89 с помощью ICQ
По умолчанию

я может глупость скажу, но...
memset(datagram, 0, sizeof(datagram));
после этого с datagram ничего не произошло кроме как:
sendto(s, datagram, sizeof(datagram), 0, (SOCKADDR *)&sin, sizeof(sin)
соответственно оно отправляет все пустое(забитое нулями)
или я чего-то не понял...
 
Ответить с цитированием

  #6  
Старый 23.02.2010, 11:33
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Также не забывай, что винда не выпустит пакеты с поддельным адресом отправителя.
 
Ответить с цитированием

  #7  
Старый 23.02.2010, 12:26
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Сообщение от xa-xa89  
я может глупость скажу, но...
memset(datagram, 0, sizeof(datagram));
после этого с datagram ничего не произошло кроме как:
sendto(s, datagram, sizeof(datagram), 0, (SOCKADDR *)&sin, sizeof(sin)
соответственно оно отправляет все пустое(забитое нулями)
или я чего-то не понял...
ну да, вы не поняли
PHP код:
ipheader *iph = (ipheader *)datagram
    
tcpheader *tcph = (tcpheader *)(datagram sizeof(ipheader)); 
этот код размечает эту строку на ip header и tcp header. Ну и сниффер показывает какую-то информацию в пакете

2razb - pcap сложный, стоит не везде

2slesh - проверил, совпадают
 
Ответить с цитированием

  #8  
Старый 24.02.2010, 00:35
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию



сниффер показывает, как я понял, что эти данные как-то попали в тело пакета, а не в заголовок
 
Ответить с цитированием

  #9  
Старый 25.02.2010, 12:06
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию

Цитата:
Сообщение от slesh  
Также не забывай, что винда не выпустит пакеты с поддельным адресом отправителя.
при использовании IP_HDRINCL да, но для udp.
а для tcp эта опция запрещена вообще.

поэтому решением является пикап =)

а вообще, если хочется чегото "своего", то
есть хороший пример из WDK - NDISPROT, для отправки вплоть до фальшивого исходного мак адреса вполне подойдет
__________________


snow white world wide

Последний раз редактировалось sn0w; 25.02.2010 в 12:45..
 
Ответить с цитированием

  #10  
Старый 25.02.2010, 14:54
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Сообщение от sn0w  
при использовании IP_HDRINCL да, но для udp.
а для tcp эта опция запрещена вообще.

поэтому решением является пикап =)

а вообще, если хочется чегото "своего", то
есть хороший пример из WDK - NDISPROT, для отправки вплоть до фальшивого исходного мак адреса вполне подойдет
мне кажется лишний sys за собой таскать не айс. Обойдусь connect()
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прием <- смс -> Отправка J'Adore Мобильная связь, СМС - Покупка, продажа 6 20.10.2009 01:28
Вышла финальная версия пакета OpenOffice 3.1 winner13 Мировые новости 9 10.05.2009 12:29
Пиратская версия пакета iWork '09 заразила тысячи «Маков» AlexTheC0d3r Мировые новости 0 23.01.2009 15:43
Найден первый макровирус для пакета StarOffice dinar_007 Мировые новости 1 01.06.2006 18:01



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ