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().getpwuid(s.st_uid)["pw_name"] s1.st_gid = pwd.Group().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().getpwuid(s.st_uid)["pw_name"] s1.st_gid = pwd.Group().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().getpwuid(s.st_uid)["pw_name"] s2.st_gid = pwd.Group().getgrgid(s.st_gid)["gr_name"] longname = twisted.conch.ls.lsLine(f, s2) attrs = self.server._getAttrs(s) return (f, longname, attrs)
def __init__(self, username: bytes, server: server.CowrieServer) -> None: avatar.ConchUser.__init__(self) self.username: str = username.decode("utf-8") self.server = server self.channelLookup[b"session"] = sshsession.HoneyPotSSHSession self.temporary: bool try: pwentry = pwd.Passwd().getpwnam(self.username) self.temporary = False except KeyError: pwentry = pwd.Passwd().setpwentry(self.username) self.temporary = True self.uid = pwentry["pw_uid"] self.gid = pwentry["pw_gid"] self.home = pwentry["pw_dir"] # SFTP support enabled only when option is explicitly set if CowrieConfig.getboolean("ssh", "sftp_enabled", fallback=False): self.subsystemLookup[b"sftp"] = conchfiletransfer.FileTransferServer # SSH forwarding disabled only when option is explicitly set if CowrieConfig.getboolean("ssh", "forwarding", fallback=True): self.channelLookup[ b"direct-tcpip" ] = forwarding.cowrieOpenConnectForwardingClient
def __init__(self, username, server): avatar.ConchUser.__init__(self) self.username = username.decode('utf-8') self.server = server self.channelLookup[b'session'] = sshsession.HoneyPotSSHSession try: pwentry = pwd.Passwd().getpwnam(self.username) self.temporary = False except KeyError: pwentry = pwd.Passwd().setpwentry(self.username) self.temporary = True self.uid = pwentry['pw_uid'] self.gid = pwentry['pw_gid'] self.home = pwentry['pw_dir'] # SFTP support enabled only when option is explicitly set if CowrieConfig().getboolean('ssh', 'sftp_enabled', fallback=False): self.subsystemLookup[ b'sftp'] = conchfiletransfer.FileTransferServer # SSH forwarding disabled only when option is explicitly set if CowrieConfig().getboolean('ssh', 'forwarding', fallback=True): self.channelLookup[ b'direct-tcpip'] = forwarding.cowrieOpenConnectForwardingClient
def __init__(self, username, server): self.username = username self.server = server try: pwentry = pwd.Passwd().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 # Do the delayed file system initialization self.server.initFileSystem()
def __init__(self, username, server): self.username = username.decode() self.server = server try: pwentry = pwd.Passwd().getpwnam(self.username) self.uid = pwentry["pw_uid"] self.gid = pwentry["pw_gid"] self.home = pwentry["pw_dir"] except KeyError: 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 # Do the delayed file system initialization self.server.initFileSystem(self.home)
def __init__(self, username, server): avatar.ConchUser.__init__(self) self.username = username.decode('utf-8') self.server = server self.cfg = self.server.cfg self.channelLookup[b'session'] = sshsession.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('ssh', 'sftp_enabled') == True: self.subsystemLookup[ b'sftp'] = conchfiletransfer.FileTransferServer except ValueError as e: pass # SSH forwarding disabled only when option is explicitly set self.channelLookup[ b'direct-tcpip'] = forwarding.cowrieOpenConnectForwardingClient try: if self.cfg.getboolean('ssh', 'forwarding') == False: del self.channelLookup[b'direct-tcpip'] except: pass