drda NSE Library — Nmap Scripting Engine documentation (original) (raw)

Functions

DRDA Library supporting a very limited subset of operations.

Summary

basic settings using the getServerInfo function of the helper class. (2) Authenticate to a DB2 server using a plain-text username and password.

The library contains the following classes:

** Implements the Distributed Relational Database Architecture class .

** Implements a number of functions to handle DRDA parameters.

** Implements the DDM portion of the DRDA structure

** Provides functions for easy creation of the most common DRDAs. ** Implemented as a static class that returns an instance of the DRDA.

** A helper class that provides easy access to the rest of the library

** A smallish socket wrapper that provides fundamental buffering

** Provides EBCDIC/ASCII conversion functions

** Provides fundamental communication support (send/receive DRDAPacket)

** A class holding one or more DRDA's and provides some basic access methods

The following sample code illustrates how scripts can use the Helper class to interface with the library:

db2helper = drda.Helper:new() status, err = db2helper:connect(host, port) status, res = db2helper:getServerInfo() status, err = db2helper:close()

The implementation is based on packet dumps and the excellent decoding provided by Wireshark.

There is some documentation athttp://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db29.doc.drda/db2z_drda.htm.

Author:

Copyright © Same as Nmap--See https://nmap.org/book/man-legal.html

Source: https://svn.nmap.org/nmap/nselib/drda.lua

Functions

__tostring (self)

Converts the DDM object to a string

__tostring (self)

Converts the DDM object to a string

__tostring (self)

Converts the DDM object to a string

ACCRDB (database, rdbaccl, prdid, prddata, typdefnam, crrtkn, typdefovr)

Builds an ACCRDB DRDA packet

ACCSEC (secmec, database)

Builds an ACCSEC DRDA packet

addParameter (self, param)

Adds a DRDA parameter to the table

close (self)

Closes an open connection.

connect (self, host, port)

Connect to the DB2 host

exchDRDAPacket (self, packet)

Sends a packet to the server and receives the response

EXCSAT (extname, srvname, rellev, mgrlvlls, srvclass)

Builds an EXCSAT DRDA packet

fromString (self, str)

Constructs a DDM object from a string

fromString (self, str)

Constructs a DDM object from a string

getData (self)

Returns the data in EBCDIC format

getDataAsASCII (self)

Returns the data portion of the parameter as an ASCII string

getParameter (self, codepoint)

Gets a parameter from the DRDA parameter table

getServerInfo (self)

Returns Server Information (name, platform, version)

isChained (self)

Verifiers if there are additional DRDA's following

login (self, database, username, password)

Login to DB2 database server

new (self, codepoint, format, corelid)

Creates a new DDM packet

new (self, codepoint, format, corelid)

Creates a new DDM packet

padWithChar (str, chr, len)

Pads a string with a character

receive (self, db2socket)

Receives data from the db2socket and builds a DRDA object

SECCHK (secmec, database, username, password)

Builds a SECCHK DRDA packet

send (self, db2socket)

Sends the DRDA over the db2socket

setChained (self, chained)

Set the DRDA as chained (more following)

setDDM (self, ddm)

Sets the DDM

toASCII (ebcdic)

Converts an EBCDIC string to ASCII

toEBCDIC (ascii)

Converts an ASCII string to EBCDIC

Functions

__tostring (self)

Converts the DDM object to a string

Parameters

self

__tostring (self)

Converts the DDM object to a string

Parameters

self

__tostring (self)

Converts the DDM object to a string

Parameters

self

ACCRDB (database, rdbaccl, prdid, prddata, typdefnam, crrtkn, typdefovr)

Builds an ACCRDB DRDA packet

Parameters

database

string containing the database name

rdbaccl

string containing the RDB access manager class

prdid

string containing the product id

prddata

typdefnam

string containing the data type definition name

crrtkn

typdefovr

string containing the data type definition override

Return value:

drda DRDA instance

ACCSEC (secmec, database)

Builds an ACCSEC DRDA packet

Parameters

secmec

number containing the security mechanism ID

database

string containing the database name

Return value:

drda DRDA instance

addParameter (self, param)

Adds a DRDA parameter to the table

Parameters

self

param

DRDAParam containing the parameter to add to the table

Return values:

  1. status bool true on success, false on failure
  2. err string containing the error message if status is false

close (self)

Closes an open connection.

Parameters

self

Return values:

  1. Status (true or false).
  2. Error code (if status is false).

connect (self, host, port)

Connect to the DB2 host

Parameters

self

host

table

port

table

Return values:

  1. Status (true or false).
  2. Error code (if status is false).

exchDRDAPacket (self, packet)

Sends a packet to the server and receives the response

Parameters

self

packet

Return values:

  1. status true on success, false on failure
  2. packet an instance of DRDAPacket

EXCSAT (extname, srvname, rellev, mgrlvlls, srvclass)

Builds an EXCSAT DRDA packet

Parameters

extname

string containing the external name

srvname

string containing the server name

rellev

string containing the server product release level

mgrlvlls

string containing the manager level list

srvclass

string containing the server class name

Return value:

drda DRDA instance

fromString (self, str)

Constructs a DDM object from a string

Parameters

self

str

containing the data from which to construct the object

fromString (self, str)

Constructs a DDM object from a string

Parameters

self

str

containing the data from which to construct the object

getData (self)

Returns the data in EBCDIC format

Parameters

self

Return value:

str containing the data portion of the DRDA parameter in EBCDIC

getDataAsASCII (self)

Returns the data portion of the parameter as an ASCII string

Parameters

self

Return value:

str containing the data portion of the DRDA parameter as ASCII

getParameter (self, codepoint)

Gets a parameter from the DRDA parameter table

Parameters

self

codepoint

number containing the parameter type ro retrieve

Return value:

param DRDAParameter containing the requested parameter

getServerInfo (self)

Returns Server Information (name, platform, version)

Parameters

self

Return value:

table containing extname, srvclass,srvname and prodrel

isChained (self)

Verifiers if there are additional DRDA's following

Parameters

self

Return value:

true if the DRDA is to be chained, false if it's the last one

login (self, database, username, password)

Login to DB2 database server

Parameters

self

database

containing the name of the database

username

containing the authentication username

password

containing the authentication password

Return values:

  1. Status (true or false)
  2. err message (if status if false)

new (self, codepoint, format, corelid)

Creates a new DDM packet

Parameters

self

codepoint

format

corelid

Return value:

DDM object

new (self, codepoint, format, corelid)

Creates a new DDM packet

Parameters

self

codepoint

format

corelid

Return value:

DDM object

padWithChar (str, chr, len)

Pads a string with a character

Parameters

str

string to pad

chr

char to pad with

len

the total length of the finished string

Return value:

str string containing the padded string

receive (self, db2socket)

Receives data from the db2socket and builds a DRDA object

Parameters

self

db2socket

from which to read data

Return values:

  1. Status (true or false).
  2. Data (if status is true) or error string (if status is false).

SECCHK (secmec, database, username, password)

Builds a SECCHK DRDA packet

Parameters

secmec

number containing the security mechanism ID

database

string containing the database name

username

string

password

string

Return value:

drda DRDA instance

send (self, db2socket)

Sends the DRDA over the db2socket

Parameters

self

db2socket

DB2Socket over which to send the data

Return values:

  1. Status (true or false).
  2. Error code (if status is false).

setChained (self, chained)

Set the DRDA as chained (more following)

Parameters

self

chained

boolean true if more DRDA's are following

setDDM (self, ddm)

Sets the DDM

Parameters

self

ddm

DDM to assign to the DRDA

Return value:

status boolean true on success, false on failure

toASCII (ebcdic)

Converts an EBCDIC string to ASCII

Parameters

ebcdic

string containing EBCDIC value

Return value:

string containing ASCII value

toEBCDIC (ascii)

Converts an ASCII string to EBCDIC

Parameters

ascii

string containing the ASCII value

Return value:

string containing the EBCDIC value