mirror of
https://github.com/aljazceru/cowrie.git
synced 2025-12-18 14:34:22 +01:00
SSH client version is now handled by db logging
git-svn-id: https://kippo.googlecode.com/svn/trunk@157 951d7100-d841-11de-b865-b3884708a8e2
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
CREATE TABLE IF NOT EXISTS `auth` (
|
||||
CREATE TABLE `auth` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`session` int(11) NOT NULL,
|
||||
`success` tinyint(1) NOT NULL,
|
||||
@@ -8,7 +8,13 @@ CREATE TABLE IF NOT EXISTS `auth` (
|
||||
PRIMARY KEY (`id`)
|
||||
) ;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `input` (
|
||||
CREATE TABLE `clients` (
|
||||
`id` int(4) NOT NULL auto_increment,
|
||||
`version` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ;
|
||||
|
||||
CREATE TABLE `input` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`session` int(11) NOT NULL,
|
||||
`timestamp` datetime NOT NULL,
|
||||
@@ -19,13 +25,13 @@ CREATE TABLE IF NOT EXISTS `input` (
|
||||
KEY `session` (`session`,`timestamp`,`realm`)
|
||||
) ;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `sensors` (
|
||||
CREATE TABLE `sensors` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`ip` varchar(15) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `sessions` (
|
||||
CREATE TABLE `sessions` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`starttime` datetime NOT NULL,
|
||||
`endtime` datetime default NULL,
|
||||
@@ -33,11 +39,12 @@ CREATE TABLE IF NOT EXISTS `sessions` (
|
||||
`ip` varchar(15) NOT NULL default '',
|
||||
`termsize` varchar(7) default NULL,
|
||||
`termtitle` varchar(255) default NULL,
|
||||
`client` int(4) default NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `starttime` (`starttime`,`sensor`)
|
||||
) ;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ttylog` (
|
||||
CREATE TABLE `ttylog` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`session` int(11) NOT NULL,
|
||||
`ttylog` mediumblob NOT NULL,
|
||||
|
||||
6
doc/sql/update4.sql
Normal file
6
doc/sql/update4.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
ALTER TABLE `sessions` ADD `client` INT( 4 ) NULL DEFAULT NULL ;
|
||||
CREATE TABLE `clients` (
|
||||
`id` INT( 4 ) NOT NULL AUTO_INCREMENT ,
|
||||
`version` VARCHAR( 50 ) NOT NULL ,
|
||||
PRIMARY KEY ( `id` )
|
||||
) ;
|
||||
@@ -31,6 +31,8 @@ class DBLogger(object):
|
||||
self.handleTerminalSize),
|
||||
('^Terminal title: (?P<title>.*)$',
|
||||
self.handleTerminalTitle),
|
||||
('^Remote SSH version: (?P<version>.*)$',
|
||||
self.handleClientVersion),
|
||||
)]
|
||||
self.start(cfg)
|
||||
|
||||
@@ -125,4 +127,8 @@ class DBLogger(object):
|
||||
def handleTerminalTitle(self, session, args):
|
||||
pass
|
||||
|
||||
# args has: version
|
||||
def handleClientVersion(self, session, args):
|
||||
pass
|
||||
|
||||
# vim: set sw=4 et:
|
||||
|
||||
@@ -39,6 +39,16 @@ class DBLogger(dblog.DBLogger):
|
||||
'INSERT INTO `sensors` (`ip`) VALUES (%s)', (ip,))
|
||||
return cursor.lastrowid
|
||||
|
||||
def getVersionID(self, version):
|
||||
cursor = self.query(
|
||||
'SELECT `id` FROM `clients` WHERE `version` = %s', (version,))
|
||||
if cursor.rowcount:
|
||||
return cursor.fetchone()[0]
|
||||
|
||||
cursor = self.query(
|
||||
'INSERT INTO `clients` (`version`) VALUES (%s)', (version,))
|
||||
return cursor.lastrowid
|
||||
|
||||
def handleConnectionLost(self, session, args):
|
||||
ttylog = self.ttylog(session)
|
||||
if ttylog:
|
||||
@@ -89,4 +99,9 @@ class DBLogger(dblog.DBLogger):
|
||||
' WHERE `id` = %s',
|
||||
(args['title'], session))
|
||||
|
||||
def handleClientVersion(self, session, args):
|
||||
cursor = self.query(
|
||||
'UPDATE `sessions` SET `client` = %s WHERE `id` = %s',
|
||||
(self.getVersionID(args['version']), session))
|
||||
|
||||
# vim: set sw=4 et:
|
||||
|
||||
Reference in New Issue
Block a user