mirror of
https://github.com/cowrie/cowrie.git
synced 2025-07-01 18:07:27 -04:00
various
This commit is contained in:
@ -1,3 +1,4 @@
|
|||||||
|
# -*- test-case-name: cowrie.test.protocol -*-
|
||||||
# Copyright (c) 2009-2014 Upi Tamminen <desaster@gmail.com>
|
# Copyright (c) 2009-2014 Upi Tamminen <desaster@gmail.com>
|
||||||
# See the COPYRIGHT file for more information
|
# See the COPYRIGHT file for more information
|
||||||
|
|
||||||
@ -8,21 +9,19 @@ This module contains ...
|
|||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
import socket
|
import socket
|
||||||
import hashlib
|
|
||||||
|
|
||||||
from twisted.python import failure, log
|
from twisted.python import failure, log
|
||||||
from twisted.internet import error
|
from twisted.internet import error
|
||||||
from twisted.protocols.policies import TimeoutMixin
|
from twisted.protocols.policies import TimeoutMixin
|
||||||
from twisted.conch import recvline
|
from twisted.conch import recvline
|
||||||
from twisted.conch.ssh import session
|
|
||||||
from twisted.conch.insults import insults
|
from twisted.conch.insults import insults
|
||||||
|
|
||||||
from cowrie.core import honeypot
|
from cowrie.core import honeypot
|
||||||
from cowrie.core import ttylog
|
|
||||||
from cowrie.core import utils
|
from cowrie.core import utils
|
||||||
|
|
||||||
class HoneyPotBaseProtocol(insults.TerminalProtocol, TimeoutMixin):
|
class HoneyPotBaseProtocol(insults.TerminalProtocol, TimeoutMixin):
|
||||||
"""
|
"""
|
||||||
|
Base protocol for interactive and non-interactive use
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, avatar):
|
def __init__(self, avatar):
|
||||||
@ -32,6 +31,13 @@ class HoneyPotBaseProtocol(insults.TerminalProtocol, TimeoutMixin):
|
|||||||
self.hostname = avatar.server.hostname
|
self.hostname = avatar.server.hostname
|
||||||
self.fs = avatar.server.fs
|
self.fs = avatar.server.fs
|
||||||
self.pp = None
|
self.pp = None
|
||||||
|
self.logintime = None
|
||||||
|
self.realClientIP = None
|
||||||
|
self.realClientPort = None
|
||||||
|
self.clientVersion = None
|
||||||
|
self.kippoIP = None
|
||||||
|
self.clientIP = None
|
||||||
|
|
||||||
if self.fs.exists(avatar.avatar.home):
|
if self.fs.exists(avatar.avatar.home):
|
||||||
self.cwd = avatar.avatar.home
|
self.cwd = avatar.avatar.home
|
||||||
else:
|
else:
|
||||||
@ -50,6 +56,7 @@ class HoneyPotBaseProtocol(insults.TerminalProtocol, TimeoutMixin):
|
|||||||
|
|
||||||
def logDispatch(self, *msg, **args):
|
def logDispatch(self, *msg, **args):
|
||||||
"""
|
"""
|
||||||
|
Send log directly to factory, avoiding normal log dispatch
|
||||||
"""
|
"""
|
||||||
transport = self.terminal.transport.session.conn.transport
|
transport = self.terminal.transport.session.conn.transport
|
||||||
args['sessionno'] = transport.transport.sessionno
|
args['sessionno'] = transport.transport.sessionno
|
||||||
@ -160,6 +167,7 @@ class HoneyPotBaseProtocol(insults.TerminalProtocol, TimeoutMixin):
|
|||||||
|
|
||||||
def lineReceived(self, line):
|
def lineReceived(self, line):
|
||||||
"""
|
"""
|
||||||
|
Line Received
|
||||||
"""
|
"""
|
||||||
self.resetTimeout()
|
self.resetTimeout()
|
||||||
if len(self.cmdstack):
|
if len(self.cmdstack):
|
||||||
@ -179,6 +187,7 @@ class HoneyPotBaseProtocol(insults.TerminalProtocol, TimeoutMixin):
|
|||||||
|
|
||||||
def uptime(self):
|
def uptime(self):
|
||||||
"""
|
"""
|
||||||
|
Uptime
|
||||||
"""
|
"""
|
||||||
transport = self.terminal.transport.session.conn.transport
|
transport = self.terminal.transport.session.conn.transport
|
||||||
r = time.time() - transport.factory.starttime
|
r = time.time() - transport.factory.starttime
|
||||||
@ -261,7 +270,7 @@ class HoneyPotInteractiveProtocol(HoneyPotBaseProtocol, recvline.HistoricRecvLin
|
|||||||
this logs out when connection times out
|
this logs out when connection times out
|
||||||
"""
|
"""
|
||||||
self.terminal.write( 'timed out waiting for input: auto-logout\n' )
|
self.terminal.write( 'timed out waiting for input: auto-logout\n' )
|
||||||
HoneypotBaseProtocol.timeoutConnection()
|
HoneyPotBaseProtocol.timeoutConnection()
|
||||||
|
|
||||||
|
|
||||||
def lastlogExit(self):
|
def lastlogExit(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user