mirror of
https://github.com/aljazceru/cowrie.git
synced 2025-12-17 14:04:28 +01:00
remove unnecessary support for requesting terminal title
git-svn-id: https://kippo.googlecode.com/svn/trunk@168 951d7100-d841-11de-b865-b3884708a8e2
This commit is contained in:
@@ -38,7 +38,6 @@ CREATE TABLE `sessions` (
|
|||||||
`sensor` int(4) NOT NULL,
|
`sensor` int(4) NOT NULL,
|
||||||
`ip` varchar(15) NOT NULL default '',
|
`ip` varchar(15) NOT NULL default '',
|
||||||
`termsize` varchar(7) default NULL,
|
`termsize` varchar(7) default NULL,
|
||||||
`termtitle` varchar(255) default NULL,
|
|
||||||
`client` int(4) default NULL,
|
`client` int(4) default NULL,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `starttime` (`starttime`,`sensor`)
|
KEY `starttime` (`starttime`,`sensor`)
|
||||||
|
|||||||
2
doc/sql/update6.sql
Normal file
2
doc/sql/update6.sql
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
/* Remove an unnecessary feature */
|
||||||
|
ALTER TABLE `sessions` DROP `termtitle` ;
|
||||||
@@ -29,8 +29,6 @@ class DBLogger(object):
|
|||||||
self.handleInput),
|
self.handleInput),
|
||||||
('^Terminal size: (?P<height>[0-9]+) (?P<width>[0-9]+)$',
|
('^Terminal size: (?P<height>[0-9]+) (?P<width>[0-9]+)$',
|
||||||
self.handleTerminalSize),
|
self.handleTerminalSize),
|
||||||
('^Terminal title: (?P<title>.*)$',
|
|
||||||
self.handleTerminalTitle),
|
|
||||||
('^Remote SSH version: (?P<version>.*)$',
|
('^Remote SSH version: (?P<version>.*)$',
|
||||||
self.handleClientVersion),
|
self.handleClientVersion),
|
||||||
)]
|
)]
|
||||||
@@ -123,10 +121,6 @@ class DBLogger(object):
|
|||||||
def handleTerminalSize(self, session, args):
|
def handleTerminalSize(self, session, args):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# args has: title
|
|
||||||
def handleTerminalTitle(self, session, args):
|
|
||||||
pass
|
|
||||||
|
|
||||||
# args has: version
|
# args has: version
|
||||||
def handleClientVersion(self, session, args):
|
def handleClientVersion(self, session, args):
|
||||||
pass
|
pass
|
||||||
|
|||||||
@@ -146,7 +146,6 @@ class HoneyPotProtocol(recvline.HistoricRecvLine):
|
|||||||
|
|
||||||
def connectionMade(self):
|
def connectionMade(self):
|
||||||
recvline.HistoricRecvLine.connectionMade(self)
|
recvline.HistoricRecvLine.connectionMade(self)
|
||||||
self.terminal.write('\x1b[21t', noLog = True) # terminal title
|
|
||||||
self.cmdstack = [HoneyPotShell(self)]
|
self.cmdstack = [HoneyPotShell(self)]
|
||||||
|
|
||||||
# You are in a maze of twisty little passages, all alike
|
# You are in a maze of twisty little passages, all alike
|
||||||
@@ -274,7 +273,6 @@ class LoggingServerProtocol(insults.ServerProtocol):
|
|||||||
print 'Opening TTY log: %s' % self.ttylog_file
|
print 'Opening TTY log: %s' % self.ttylog_file
|
||||||
ttylog.ttylog_open(self.ttylog_file, time.time())
|
ttylog.ttylog_open(self.ttylog_file, time.time())
|
||||||
self.ttylog_open = True
|
self.ttylog_open = True
|
||||||
self.terminal_title = None
|
|
||||||
insults.ServerProtocol.connectionMade(self)
|
insults.ServerProtocol.connectionMade(self)
|
||||||
|
|
||||||
def write(self, bytes, noLog = False):
|
def write(self, bytes, noLog = False):
|
||||||
@@ -289,56 +287,6 @@ class LoggingServerProtocol(insults.ServerProtocol):
|
|||||||
self.ttylog_open = False
|
self.ttylog_open = False
|
||||||
insults.ServerProtocol.connectionLost(self, reason)
|
insults.ServerProtocol.connectionLost(self, reason)
|
||||||
|
|
||||||
# extended from the standard to read \x1b]lXXXX\x1b\\
|
|
||||||
def dataReceived(self, data):
|
|
||||||
for ch in data:
|
|
||||||
if self.state == 'data':
|
|
||||||
if ch == '\x1b':
|
|
||||||
self.state = 'escaped'
|
|
||||||
else:
|
|
||||||
self.terminalProtocol.keystrokeReceived(ch, None)
|
|
||||||
elif self.state == 'escaped':
|
|
||||||
if ch == '[':
|
|
||||||
self.state = 'bracket-escaped'
|
|
||||||
self.escBuf = []
|
|
||||||
elif ch == 'O':
|
|
||||||
self.state = 'low-function-escaped'
|
|
||||||
elif ch == ']':
|
|
||||||
self.state = 'reverse-bracket-escaped'
|
|
||||||
else:
|
|
||||||
self.state = 'data'
|
|
||||||
self._handleShortControlSequence(ch)
|
|
||||||
elif self.state == 'bracket-escaped':
|
|
||||||
if ch == 'O':
|
|
||||||
self.state = 'low-function-escaped'
|
|
||||||
elif ch.isalpha() or ch == '~':
|
|
||||||
self._handleControlSequence(''.join(self.escBuf) + ch)
|
|
||||||
del self.escBuf
|
|
||||||
self.state = 'data'
|
|
||||||
else:
|
|
||||||
self.escBuf.append(ch)
|
|
||||||
elif self.state == 'low-function-escaped':
|
|
||||||
self._handleLowFunctionControlSequence(ch)
|
|
||||||
self.state = 'data'
|
|
||||||
elif self.state == 'reverse-bracket-escaped':
|
|
||||||
if ch == 'l':
|
|
||||||
self.titleBuf = []
|
|
||||||
self.state = 'title-escaped'
|
|
||||||
self.title_escaped = False
|
|
||||||
elif self.state == 'title-escaped':
|
|
||||||
if ch == '\x1b':
|
|
||||||
self.title_escaped = True
|
|
||||||
elif self.title_escaped and ch == '\\':
|
|
||||||
self.terminal_title = ''.join(self.titleBuf)
|
|
||||||
print 'Terminal title: %s' % (self.terminal_title,)
|
|
||||||
self.state = 'data'
|
|
||||||
del self.titleBuf
|
|
||||||
else:
|
|
||||||
self.titleBuf.append(ch)
|
|
||||||
else:
|
|
||||||
raise ValueError("Illegal state")
|
|
||||||
# insults.ServerProtocol.dataReceived(self, data)
|
|
||||||
|
|
||||||
class HoneyPotAvatar(avatar.ConchUser):
|
class HoneyPotAvatar(avatar.ConchUser):
|
||||||
implements(conchinterfaces.ISession)
|
implements(conchinterfaces.ISession)
|
||||||
|
|
||||||
|
|||||||
@@ -118,11 +118,6 @@ class DBLogger(dblog.DBLogger):
|
|||||||
' WHERE `id` = %s',
|
' WHERE `id` = %s',
|
||||||
('%sx%s' % (args['width'], args['height']), session))
|
('%sx%s' % (args['width'], args['height']), session))
|
||||||
|
|
||||||
def handleTerminalTitle(self, session, args):
|
|
||||||
self.simpleQuery('UPDATE `sessions` SET `termtitle` = %s' + \
|
|
||||||
' WHERE `id` = %s',
|
|
||||||
(args['title'], session))
|
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def handleClientVersion(self, session, args):
|
def handleClientVersion(self, session, args):
|
||||||
r = yield self.db.runQuery(
|
r = yield self.db.runQuery(
|
||||||
|
|||||||
Reference in New Issue
Block a user