From f9f79ffbaf929f90ef3b8ecf3a7059446b1fe842 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Tue, 12 Oct 2010 19:05:12 +0000 Subject: [PATCH] basic stuff for sybase --- lib/controller/handler.py | 6 ++- lib/core/settings.py | 4 +- plugins/dbms/mssqlserver/fingerprint.py | 3 +- xml/errors.xml | 6 +++ xml/queries.xml | 61 +++++++++++++++++++++++++ 5 files changed, 77 insertions(+), 3 deletions(-) diff --git a/lib/controller/handler.py b/lib/controller/handler.py index 81a80c835..359eeef51 100644 --- a/lib/controller/handler.py +++ b/lib/controller/handler.py @@ -33,6 +33,7 @@ from lib.core.settings import SQLITE_ALIASES from lib.core.settings import ACCESS_ALIASES from lib.core.settings import FIREBIRD_ALIASES from lib.core.settings import MAXDB_ALIASES +from lib.core.settings import SYBASE_ALIASES from plugins.dbms.mssqlserver import MSSQLServerMap from plugins.dbms.mssqlserver.connector import Connector as MSSQLServerConn @@ -50,6 +51,8 @@ from plugins.dbms.firebird import FirebirdMap from plugins.dbms.firebird.connector import Connector as FirebirdConn from plugins.dbms.maxdb import MaxDBMap from plugins.dbms.maxdb.connector import Connector as MaxDBConn +from plugins.dbms.sybase import SybaseMap +from plugins.dbms.sybase.connector import Connector as SybaseConn def setHandler(): """ @@ -58,7 +61,7 @@ def setHandler(): """ count = 0 - dbmsNames = ( "MySQL", "Oracle", "PostgreSQL", "Microsoft SQL Server", "SQLite", "Microsoft Access", "Firebird", "SAP MaxDB" ) + dbmsNames = ( "MySQL", "Oracle", "PostgreSQL", "Microsoft SQL Server", "SQLite", "Microsoft Access", "Firebird", "SAP MaxDB", "Sybase" ) dbmsMap = ( ( MYSQL_ALIASES, MySQLMap, MySQLConn ), ( ORACLE_ALIASES, OracleMap, OracleConn ), @@ -68,6 +71,7 @@ def setHandler(): ( ACCESS_ALIASES, AccessMap, AccessConn ), ( FIREBIRD_ALIASES, FirebirdMap, FirebirdConn ), ( MAXDB_ALIASES, MaxDBMap, MaxDBConn ), + ( SYBASE_ALIASES, SybaseMap, SybaseConn ), ) for dbmsAliases, dbmsMap, dbmsConn in dbmsMap: diff --git a/lib/core/settings.py b/lib/core/settings.py index 802c80f80..a4fd629eb 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -71,6 +71,7 @@ FIREBIRD_SYSTEM_DBS = ( "RDB$BACKUP_HISTORY", "RDB$CHARACTER_SETS", "RDB$CHECK_C "RDB$RELATION_CONSTRAINTS", "RDB$RELATION_FIELDS", "RDB$ROLES", "RDB$SECURITY_CLASSES", "RDB$TRANSACTIONS", "RDB$TRIGGERS",\ "RDB$TRIGGER_MESSAGES", "RDB$TYPES", "RDB$USER_PRIVILEGES", "RDB$VIEW_RELATIONS" ) MAXDB_SYSTEM_DBS = ( "SYSINFO", "DOMAIN" ) +SYBASE_SYSTEM_DBS = ( "master", "model", "sybsystemdb", "sybsystemprocs" ) MSSQL_ALIASES = [ "microsoft sql server", "mssqlserver", "mssql", "ms" ] MYSQL_ALIASES = [ "mysql", "my" ] @@ -80,8 +81,9 @@ SQLITE_ALIASES = [ "sqlite", "sqlite3" ] ACCESS_ALIASES = [ "access", "jet", "microsoft access", "msaccess" ] FIREBIRD_ALIASES = [ "firebird", "mozilla firebird", "interbase", "ibase", "fb" ] MAXDB_ALIASES = [ "maxdb", "sap maxdb", "sap db" ] +SYBASE_ALIASES = [ "sybase", "sybase sql server" ] -SUPPORTED_DBMS = MSSQL_ALIASES + MYSQL_ALIASES + PGSQL_ALIASES + ORACLE_ALIASES + SQLITE_ALIASES + ACCESS_ALIASES + FIREBIRD_ALIASES + MAXDB_ALIASES +SUPPORTED_DBMS = MSSQL_ALIASES + MYSQL_ALIASES + PGSQL_ALIASES + ORACLE_ALIASES + SQLITE_ALIASES + ACCESS_ALIASES + FIREBIRD_ALIASES + MAXDB_ALIASES + SYBASE_ALIASES SUPPORTED_OS = ( "linux", "windows" ) SQL_STATEMENTS = { diff --git a/plugins/dbms/mssqlserver/fingerprint.py b/plugins/dbms/mssqlserver/fingerprint.py index 1ee73bffc..e5df786f7 100644 --- a/plugins/dbms/mssqlserver/fingerprint.py +++ b/plugins/dbms/mssqlserver/fingerprint.py @@ -103,7 +103,8 @@ class Fingerprint(GenericFingerprint): if conf.direct: result = True else: - payload = agent.fullPayload(" AND LEN(@@VERSION)=LEN(@@VERSION)") + randInt = randomInt() + payload = agent.fullPayload(" AND BINARY_CHECKSUM(%d)=BINARY_CHECKSUM(%d))" % (randInt, randInt)) result = Request.queryPage(payload) if result: diff --git a/xml/errors.xml b/xml/errors.xml index d81b8a986..2d544c55b 100644 --- a/xml/errors.xml +++ b/xml/errors.xml @@ -78,4 +78,10 @@ + + + + + + diff --git a/xml/queries.xml b/xml/queries.xml index 8b826488e..f9298b72d 100644 --- a/xml/queries.xml +++ b/xml/queries.xml @@ -428,4 +428,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +