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