mirror of
https://github.com/aljazceru/cowrie.git
synced 2026-02-11 17:34:27 +01:00
complete split of ssh.py
This commit is contained in:
@@ -10,12 +10,13 @@ from zope.interface import implementer
|
||||
import twisted
|
||||
from twisted.conch import avatar
|
||||
from twisted.conch.interfaces import IConchUser, ISession, ISFTPServer
|
||||
from twisted.conch.ssh import filetransfer
|
||||
from twisted.conch.ssh import filetransfer as conchfiletransfer
|
||||
from twisted.python import log, components
|
||||
|
||||
from cowrie.core import pwd
|
||||
from cowrie.core import ssh
|
||||
from cowrie.core import session
|
||||
from cowrie.core import filetransfer
|
||||
from cowrie.core import forwarding
|
||||
|
||||
|
||||
@implementer(IConchUser)
|
||||
@@ -31,7 +32,7 @@ class CowrieUser(avatar.ConchUser):
|
||||
|
||||
self.channelLookup.update(
|
||||
{"session": session.HoneyPotSSHSession,
|
||||
"direct-tcpip": ssh.CowrieOpenConnectForwardingClient})
|
||||
"direct-tcpip": forwarding.CowrieOpenConnectForwardingClient})
|
||||
|
||||
try:
|
||||
pwentry = pwd.Passwd(self.cfg).getpwnam(self.username)
|
||||
@@ -46,7 +47,7 @@ class CowrieUser(avatar.ConchUser):
|
||||
# Sftp support enabled only when option is explicitly set
|
||||
try:
|
||||
if (self.cfg.get('honeypot', 'sftp_enabled') == "true"):
|
||||
self.subsystemLookup['sftp'] = filetransfer.FileTransferServer
|
||||
self.subsystemLookup['sftp'] = conchfiletransfer.FileTransferServer
|
||||
except:
|
||||
pass
|
||||
|
||||
@@ -57,7 +58,7 @@ class CowrieUser(avatar.ConchUser):
|
||||
log.msg('avatar {} logging out'.format(self.username))
|
||||
|
||||
|
||||
components.registerAdapter(ssh.SFTPServerForCowrieUser, CowrieUser, ISFTPServer)
|
||||
components.registerAdapter(filetransfer.SFTPServerForCowrieUser, CowrieUser, ISFTPServer)
|
||||
components.registerAdapter(session.SSHSessionForCowrieUser, CowrieUser, ISession)
|
||||
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@ from zope.interface import implementer
|
||||
import twisted
|
||||
from twisted.conch.interfaces import ISFTPFile, ISFTPServer
|
||||
from twisted.conch.ssh import filetransfer
|
||||
from twisted.conch.ssh import forwarding
|
||||
from twisted.conch.ssh.filetransfer import FXF_READ, FXF_WRITE, FXF_APPEND, FXF_CREAT, FXF_TRUNC, FXF_EXCL
|
||||
import twisted.conch.ls
|
||||
from twisted.python import log
|
||||
@@ -282,34 +281,3 @@ class SFTPServerForCowrieUser:
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
def CowrieOpenConnectForwardingClient(remoteWindow, remoteMaxPacket, data, avatar):
|
||||
"""
|
||||
"""
|
||||
remoteHP, origHP = twisted.conch.ssh.forwarding.unpackOpen_direct_tcpip(data)
|
||||
log.msg(eventid='COW0014', format='direct-tcp connection request to %(dst_ip)s:%(dst_port)s',
|
||||
dst_ip=remoteHP[0], dst_port=remoteHP[1])
|
||||
return CowrieConnectForwardingChannel(remoteHP,
|
||||
remoteWindow=remoteWindow, remoteMaxPacket=remoteMaxPacket,
|
||||
avatar=avatar)
|
||||
|
||||
|
||||
|
||||
class CowrieConnectForwardingChannel(forwarding.SSHConnectForwardingChannel):
|
||||
"""
|
||||
"""
|
||||
def channelOpen(self, specificData):
|
||||
"""
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def dataReceived(self, data):
|
||||
"""
|
||||
"""
|
||||
log.msg(eventid='COW0015',
|
||||
format='direct-tcp forward to %(dst_ip)s:%(dst_port)s with data %(data)s',
|
||||
dst_ip=self.hostport[0], dst_port=self.hostport[1], data=repr(data))
|
||||
self._close("Connection refused")
|
||||
|
||||
# vim: set et sw=4 et:
|
||||
41
cowrie/core/forwarding.py
Normal file
41
cowrie/core/forwarding.py
Normal file
@@ -0,0 +1,41 @@
|
||||
# Copyright (c) 2009-2014 Upi Tamminen <desaster@gmail.com>
|
||||
# See the COPYRIGHT file for more information
|
||||
|
||||
"""
|
||||
This module contains ...
|
||||
"""
|
||||
|
||||
import twisted
|
||||
from twisted.conch.ssh import forwarding
|
||||
from twisted.python import log
|
||||
|
||||
|
||||
def CowrieOpenConnectForwardingClient(remoteWindow, remoteMaxPacket, data, avatar):
|
||||
"""
|
||||
"""
|
||||
remoteHP, origHP = twisted.conch.ssh.forwarding.unpackOpen_direct_tcpip(data)
|
||||
log.msg(eventid='COW0014', format='direct-tcp connection request to %(dst_ip)s:%(dst_port)s',
|
||||
dst_ip=remoteHP[0], dst_port=remoteHP[1])
|
||||
return CowrieConnectForwardingChannel(remoteHP,
|
||||
remoteWindow=remoteWindow, remoteMaxPacket=remoteMaxPacket,
|
||||
avatar=avatar)
|
||||
|
||||
|
||||
|
||||
class CowrieConnectForwardingChannel(forwarding.SSHConnectForwardingChannel):
|
||||
"""
|
||||
"""
|
||||
def channelOpen(self, specificData):
|
||||
"""
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def dataReceived(self, data):
|
||||
"""
|
||||
"""
|
||||
log.msg(eventid='COW0015',
|
||||
format='direct-tcp forward to %(dst_ip)s:%(dst_port)s with data %(data)s',
|
||||
dst_ip=self.hostport[0], dst_port=self.hostport[1], data=repr(data))
|
||||
self._close("Connection refused")
|
||||
|
||||
@@ -38,7 +38,6 @@ from twisted.python import log
|
||||
|
||||
from cowrie.core import protocol
|
||||
from cowrie.core import server
|
||||
from cowrie.core import ssh
|
||||
from cowrie.core import avatar
|
||||
|
||||
import sys
|
||||
|
||||
Reference in New Issue
Block a user