complete split of ssh.py

This commit is contained in:
Michel Oosterhof
2015-12-28 13:25:35 +04:00
parent 5bda4dfdec
commit 4fd704ecaf
4 changed files with 47 additions and 38 deletions

View File

@@ -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)

View File

@@ -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
View 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")

View File

@@ -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