Exemple #1
0
    def __init__(self, username, server):
        self.username = username
        self.server = server
        self.cfg = self.server.cfg

        try:
            pwentry = pwd.Passwd(self.cfg).getpwnam(self.username)
            self.uid = pwentry["pw_uid"]
            self.gid = pwentry["pw_gid"]
            self.home = pwentry["pw_dir"]
        except:
            self.uid = 1001
            self.gid = 1001
            self.home = '/home'

        self.environ = {
            'LOGNAME': self.username,
            'USER': self.username,
            'SHELL': '/bin/bash',
            'HOME': self.home,
            'TMOUT': '1800'
        }

        if self.uid == 0:
            self.environ[
                'PATH'] = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
        else:
            self.environ[
                'PATH'] = '/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games'

        # required because HoneyPotBaseProtocol relies on avatar.avatar.home
        self.avatar = self

        # to be populated by HoneyPotTelnetAuthProtocol after auth
        self.transportId = None
Exemple #2
0
    def __init__(self, username, server):
        avatar.ConchUser.__init__(self)
        self.username = username
        self.server = server
        self.cfg = self.server.cfg

        self.channelLookup.update({
            "session":
            session.HoneyPotSSHSession,
            "direct-tcpip":
            forwarding.CowrieOpenConnectForwardingClient
        })

        try:
            pwentry = pwd.Passwd(self.cfg).getpwnam(self.username)
            self.uid = pwentry["pw_uid"]
            self.gid = pwentry["pw_gid"]
            self.home = pwentry["pw_dir"]
        except:
            self.uid = 1001
            self.gid = 1001
            self.home = '/home'

        # Sftp support enabled only when option is explicitly set
        try:
            if (self.cfg.get('honeypot', 'sftp_enabled') == "true"):
                self.subsystemLookup[
                    'sftp'] = conchfiletransfer.FileTransferServer
        except:
            pass
Exemple #3
0
    def __init__(self, username, server):
        avatar.ConchUser.__init__(self)
        self.username = username
        self.server = server
        self.cfg = self.server.cfg

        self.channelLookup['session'] = session.HoneyPotSSHSession

        try:
            pwentry = pwd.Passwd(self.cfg).getpwnam(self.username)
            self.uid = pwentry["pw_uid"]
            self.gid = pwentry["pw_gid"]
            self.home = pwentry["pw_dir"]
        except:
            self.uid = 1001
            self.gid = 1001
            self.home = '/home'

        # SFTP support enabled only when option is explicitly set
        try:
            if self.cfg.getboolean('honeypot', 'sftp_enabled') == True:
                self.subsystemLookup[
                    'sftp'] = conchfiletransfer.FileTransferServer
        except ValueError as e:
            pass

        # SSH forwarding disabled only when option is explicitly set
        self.channelLookup[
            'direct-tcpip'] = forwarding.cowrieOpenConnectForwardingClient
        try:
            if self.cfg.getboolean('ssh', 'forwarding') == False:
                del self.channelLookup['direct-tcpip']
        except:
            pass
Exemple #4
0
    def next(self):
        """
        """
        try:
            f = self.files.pop(0)
        except IndexError:
            raise StopIteration

        if f == "..":
            directory = self.dir.strip().split("/")
            pdir = "/" + "/".join(directory[:-1])
            s1 = self.server.fs.lstat(pdir)
            s = self.server.fs.lstat(pdir)
            s1.st_uid = pwd.Passwd(self.server.avatar.cfg).getpwuid(
                s.st_uid)["pw_name"]
            s1.st_gid = pwd.Group(self.server.avatar.cfg).getgrgid(
                s.st_gid)["gr_name"]
            longname = twisted.conch.ls.lsLine(f, s1)
            attrs = self.server._getAttrs(s)
            return (f, longname, attrs)
        elif f == ".":
            s1 = self.server.fs.lstat(self.dir)
            s = self.server.fs.lstat(self.dir)
            s1.st_uid = pwd.Passwd(self.server.avatar.cfg).getpwuid(
                s.st_uid)["pw_name"]
            s1.st_gid = pwd.Group(self.server.avatar.cfg).getgrgid(
                s.st_gid)["gr_name"]
            longname = twisted.conch.ls.lsLine(f, s1)
            attrs = self.server._getAttrs(s)
            return (f, longname, attrs)
        else:
            s = self.server.fs.lstat(os.path.join(self.dir, f))
            s2 = self.server.fs.lstat(os.path.join(self.dir, f))
            s2.st_uid = pwd.Passwd(self.server.avatar.cfg).getpwuid(
                s.st_uid)["pw_name"]
            s2.st_gid = pwd.Group(self.server.avatar.cfg).getgrgid(
                s.st_gid)["gr_name"]
            longname = twisted.conch.ls.lsLine(f, s2)
            attrs = self.server._getAttrs(s)
            return (f, longname, attrs)
Exemple #5
0
 def next(self):
     """
     """
     try:
         f = self.files.pop(0)
     except IndexError:
         raise StopIteration
     else:
         s = self.server.fs.lstat(os.path.join(self.dir, f))
         s2 = self.server.fs.lstat(os.path.join(self.dir, f))
         s2.st_uid = pwd.Passwd(self.server.avatar.cfg).getpwuid(s.st_uid)["pw_name"]
         s2.st_gid = pwd.Group(self.server.avatar.cfg).getgrgid(s.st_gid)["gr_name"]
         longname = twisted.conch.ls.lsLine(f, s2)
         attrs = self.server._getAttrs(s)
         return (f, longname, attrs)