def ftpServer(dirPath, account, password): # 实例化用户授权管理 authorizer = DummyAuthorizer() authorizer.add_user(account, password, dirPath, perm='elradfmwMT') # 添加用户 参数:username,password,允许的路径,权限 authorizer.add_anonymous(os.getcwd()) # 这里是允许匿名用户,如果不允许删掉此行即可 # 实例化FTPHandler handler = FTPHandler handler.authorizer = authorizer # 设定一个客户端链接时的标语 handler.banner = "pyftpdlib based ftpd ready." # handler.masquerade_address = '151.25.42.11'#指定伪装ip地址 # handler.passive_ports = range(60000, 65535)#指定允许的端口范围 address = ('0.0.0.0', 21) # FTP一般使用21,20端口 server = ThreadedFTPServer(address, handler) # FTP服务器实例 # set a limit for connections server.max_cons = 256 server.max_cons_per_ip = 5 # 开启服务器 server.serve_forever()
def main(): # 新建一个用户组 authorizer = DummyAuthorizer() # 将用户名,密码,指定目录,权限 添加到里面 authorizer.add_user("root", "123456", ".", perm="elradfmwMT") # adfmw # 这个是添加匿名用户,任何人都可以访问,如果去掉的话,需要输入用户名和密码,可以自己尝试 authorizer.add_anonymous(".") # 带宽限制 dtp_handler = ThrottledDTPHandler dtp_handler.read_limit = 1024 * 1024 # 1M/sec (1024 * 1024) dtp_handler.write_limit = 1024 * 1024 # 1M/sec (1024 * 1024) # FTP初始参数设置 handler = MyHandler handler.timeout = 300 handler.authorizer = authorizer handler.banner = "Ftp Ready......" # 进入欢迎语 handler.dtp_handler = dtp_handler # 日志 logging.basicConfig(filename='Ftp.log', level=logging.INFO) # 开启服务器 server = ThreadedFTPServer(("0.0.0.0", 21), handler) server.max_cons = 500 server.max_cons_per_ip = 10 server.serve_forever()
def ftpserver(self): # 实例化虚拟用户,这是FTP验证首要条件 authorizer = DummyAuthorizer() # 添加用户权限和路径,括号内的参数是(用户名, 密码, 用户目录, 权限) authorizer.add_user(self.var_username.get(), self.var_passwd.get(), self.var_path.get(), perm="elradfmwMT") # 添加匿名用户,任何人都可以访问,否则需要输入用户名和密码才能访问 # 匿名用户只需要配置路径 authorizer.add_anonymous(self.var_path.get(), msg_login="******") # 初始化ftp句柄 handler = FTPHandler handler.authorizer = authorizer # 监听ip和端口 self.server = ThreadedFTPServer( (self.var_address.get(), self.var_port.get()), handler) # 开始服务 self.server.serve_forever()
def start_ftp_server(self): if not self.dry_run and self.args.local_ftp_server: self.ftp_server = None try: handler = FTPHandler authorizer = DummyAuthorizer() if(self.args.ftp_username and self.args.ftp_username != ""): authorizer.add_user(self.args.ftp_username, self.args.ftp_password, self.ftp_output_path, perm='elradfmwMT') else: authorizer.add_anonymous(self.ftp_output_path, perm='elradfmwMT') handler.authorizer = authorizer self.ftp_server = ThreadedFTPServer((self.args.local_ftp_interface, self.args.local_ftp_port), handler) self.ftp_server.serve_forever(blocking=False) if self.args.local_ftp_interface == "": print("Started local FTP server: ::%s" % (self.args.local_ftp_port)) else: print("Started local FTP server: %s:%s" % (self.args.local_ftp_interface, self.args.local_ftp_port)) except: if self.args.local_ftp_interface == "": print("Failed to start local FTP server on: ::%s" % (self.args.local_ftp_port)) else: print("Failed to start local FTP server on: %s:%s" % (self.args.local_ftp_interface, self.args.local_ftp_port)) exit()
def __init__(self, ip="127.0.0.1", port=9090, config_file="server.json"): """ Initmethod initializes ftp server """ with open(config_file, "r") as f: self.config = json.load(f) # Logic for authentication authorizer = DummyAuthorizer() for path, details in self.config.items(): authorizer.add_user( details['user'], details["password"], homedir=path, perm="elradfmw" if details["read_only"] else "elr", ) handler = FTPHandler handler.authorizer = authorizer handler.on_disconnect = self.genAndDump # Refresh DB on close handler.on_login = self.on_login # Configure ip, port & Authentication for server self.server = ThreadedFTPServer((ip, port), handler)
def start_ftp(masquerade_address, listen_address, port, log_level, internal, passive_ports): LogLevel = ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] if log_level in LogLevel: for lev in LogLevel: if log_level == lev: level = lev else: print "wrong loglevel parameter: %s" % log_level exit(1) authorizer = ObsAuthorizer() authorizer.internal = internal handler = FTPHandler handler.passive_ports = passive_ports handler.permit_foreign_addresses = True if handler.masquerade_address != "": handler.masquerade_address = masquerade_address handler.authorizer = authorizer handler.abstracted_fs = AbstrFileToObs handler.banner = 'obs ftpd ready.' address = (listen_address, port) set_logger(level) server_muti = ThreadedFTPServer(address, handler) server_muti.serve_forever()
def start(self): self.authorizer = DummyAuthorizer() if self.config.get('usessl') == 'Yes': self.logger.debug('Using SSL socket.') keyfile_path = 'privkey.pem' self.handler = TLS_FakeFTPHandler self.handler.certfile = keyfile_path else: self.handler = FakeFTPHandler self.handler.ftproot_path = self.ftproot_path self.handler.abstracted_fs = FakeFS self.handler.authorizer = self.authorizer self.handler.passive_ports = self.expand_ports(self.config.get('pasvports', '60000-60010')) self.server = ThreadedFTPServer((self.local_ip, int(self.config['port'])), self.handler) # Override pyftpdlib logger name logging.getLogger('pyftpdlib').name = self.name self.server_thread = threading.Thread(target=self.server.serve_forever) self.server_thread.daemon = True self.server_thread.start()
def main(): authorizer = DummyAuthorizer() authorizer.add_user(USER, PWD, ftp_root, perm='elradfmw') handler = FTPHandler handler.authorizer = authorizer server = ThreadedFTPServer((ftp_address, ftp_port), handler) server.serve_forever()
def ftpStart(anoDir="", anoPerm="elr", ip="127.0.0.1", port=21, pasvPortBegin=60000, pasvPortEnd=65535, users=[], maxCons=512, maxConsPerIp=0): try: # step1:实例化用户授权管理 authorizer = DummyAuthorizer() # step2:添加匿名用户,任何人都可以访问 if len(anoDir) > 0: authorizer.add_anonymous(anoDir, perm=anoPerm) # step3:添加非匿名用户名,密码,指定目录,权限 for user in users: authorizer.add_user(user["name"], user["pwd"], user["dir"], perm=user["perm"]) # step4:实例化FTPHandler handler = FTPHandler handler.authorizer = authorizer handler.passive_ports = range(pasvPortBegin, pasvPortEnd) # step5:配置服务器 server = ThreadedFTPServer((ip, port), handler) server.max_cons = maxCons server.max_cons_per_ip = maxConsPerIp # step6:开启服务器 server.serve_forever() except: print("Exception: ftp_server.ftpStart =>\n " + str(sys.exc_info()))
def setUp(self) -> None: self.fake = Faker() self.fake.add_provider(FakeCamera) self.temp_folder = tempfile.mkdtemp() self.temp_upload_file_path = None self.ftp_auth = DummyAuthorizer() self.ftp_auth.add_user('test', 'test', self.temp_folder, 'elrmw') self.ftp_handler = FTPHandler self.ftp_handler.authorizer = self.ftp_auth self.ftp_server = None while not self.ftp_server: self.ftp_port = random.randint(50000, 60000) try: self.ftp_server = ThreadedFTPServer( ('localhost', self.ftp_port), self.ftp_handler) except Exception as exc: print('{} error creating FTP server: {}; retrying...'.format( type(exc), exc)) self.ftp_server = None self.ftp_thread = Thread(target=self.ftp_server.serve_forever) self.ftp_thread.start() logging.getLogger('').setLevel(logging.DEBUG)
def main(): authorizer = DummyAuthorizer() authorizer.add_user('user', '12345', '.') handler = FTPHandler handler.authorizer = authorizer server = ThreadedFTPServer(('', 2121), handler) server.serve_forever()
def run_pot(self): # Get config config = configparser.ConfigParser() config.read('./ftp/config.ini') section = 'DEFAULT' FTP_PORT = config[section]['ftp_port'] FTP_USER = config[section]['ftp_user'] FTP_PASSWORD = config[section]['ftp_password'] FTP_DIR = config[section]['ftp_directory'] #################### print("Starting FTP honeypot on port ", FTP_PORT, '...', sep='') authorizer = DummyAuthorizer() authorizer.add_user(FTP_USER, FTP_PASSWORD, FTP_DIR, perm="elradfmw") authorizer.add_anonymous(FTP_DIR, perm="elr") handler = FTPHandler handler.authorizer = authorizer #handler.log_prefix = 'XXX [%(username)s]@%(remote_ip)s' handler.banner = "Welcome to the FTP Server :)" logging.basicConfig(filename='./ftp/logs/ftp.log', level=logging.DEBUG) server = ThreadedFTPServer(('127.0.0.1', FTP_PORT), handler) server.max_cons = 10 server.max_cons_per_ip = 5 self.is_running = True print('FTP server started') server_thread = threading.Thread(target=server.serve_forever, daemon=True) server_thread.start()
def run(self): with self._lock: # Instantiate a dummy authorizer for managing 'virtual' users authorizer = DummyAuthorizer() # Define a new user having full r/w permissions and a read-only anonymous user authorizer.add_user(self._user, self._pwd, self._path, perm='elradfmwMT') # Instantiate FTP handler class handler = FTPHandler handler.authorizer = authorizer # Define a customized banner (string returned when client connects) handler.banner = "pyftpdlib based ftpd ready." # Instantiate FTP server class and listen on 0.0.0.0:self._port address = ('0.0.0.0', int(self._port)) try: self._server = ThreadedFTPServer(address, handler) except Exception as e: logging.error(f"Exception while start PyFtpServer: {e}") if self._server is not None: # set a limit for connections self._server.max_cons = 256 self._server.max_cons_per_ip = 5 # start ftp server self._server.serve_forever()
def main(): authorizer = DummyAuthorizer() authorizer.add_user('1', '1', '/') handler = EncodedHandler handler.authorizer = authorizer server = ThreadedFTPServer(('', 21), handler) server.serve_forever()
def __init__(self): authorizer = DummyAuthorizer() authorizer.add_user('user', '12345', 'collected/', perm='elradfmwMT') authorizer.add_anonymous("collected/", perm='elradfmwMT') self.handler = MyHandler self.handler.authorizer = authorizer self.obj = ThreadedFTPServer(("0.0.0.0", 21), self.handler) self.filename = ""
def runFTP(): try: handler = FTPHandler handler.authorizer = listusersftp serverFTP = ThreadedFTPServer((IP_ADDRESS, PORT_FTP), handler) serverFTP.serve_forever() except: print("FTP cannot Run") return
def __init__(self): super().__init__() authorizer = DummyAuthorizer() authorizer.add_user("ons", "ons", "./ftp", perm="elradfmw") handler = FTPHandler handler.authorizer = authorizer handler.abstracted_fs = UnixFilesystem self.server = ThreadedFTPServer( (settings.FTP_HOST, str(settings.FTP_PORT)), handler)
def main(): authorizer = DummyAuthorizer() authorizer.add_anonymous('.', perm='elradfmwM') handler = FTPHandler handler.authorizer = authorizer handler.banner = "Connected" server = ThreadedFTPServer(('127.0.0.1', 3001), handler) server.serve_forever()
def main(): authorizer = DummyAuthorizer() authorizer.add_user( 'ftpuser', 'pass', homedir=r'C:\Temp\TMP\DFS\Dnode2', perm='elradfmw') # set username, password & homedirectory for the user handler = FTPHandler handler.authorizer = authorizer server = ThreadedFTPServer((host, port), handler) # Bind the host:port for FTP services print("Starting FTP Server on port:", port) server.serve_forever() # Start FTP server
def start_server(self): logging.info("started") try: if(self.port_number): print(self.port_number) except: self.port_number=1024 authorizer = DummyAuthorizer() try: try: authorizer.add_user(str(self.username),str(self.password),'.', perm='elradfmwMT') except AttributeError: try: authorizer.add_user(str(self.username),'12345','.', perm='elradfmwMT') except: authorizer.add_user('user',str(self.password),'.', perm='elradfmwMT') except AttributeError : authorizer.add_user('user', '12345', '.', perm='elradfmwMT') self.proceed,self.wl_ip=get_wl_ip() if(self.proceed==True): logging.info("passed") # authorizer.add_anonymous(os.path.join(self.path_sd))###for android authorizer.add_anonymous(os.getcwd())# for desktop mention path # logging.info(os.listdir(self.path_sd)) handler = FTPHandler handler.authorizer = authorizer handler.banner = "pyftpdlib based ftpd ready." try: handler.passive_ports = range(self.range1,self.range2) logging.info("changed passive ports") except: handler.passive_ports=range(2300,2399) logging.info("default passive ports") logging.info(self.wl_ip) logging.info(self.port_number) address = (self.wl_ip, self.port_number) self.server = ThreadedFTPServer(address, handler) logging.info(self.server) self.server.max_cons = 256 self.server.max_cons_per_ip = 5 logging.info("passed that max_cons") t1=threading.Thread(target=run_,args=(self.server,self.port_number)) logging.info("thread assigned") t1.start() self.show_notification() logging.info("Thread started") else: toast("Try turning on hotspot and try again")
def __init__(self, port=('', FTP_SERVER_PORT)): self.auth = DummyAuthorizer() self.handler = FTPServerWrapper.TestHandler self.handler.authorizer = self.auth self.server = ThreadedFTPServer(port, self.handler) self.port = port self.users = [] self.t = FTPServerWrapper.FTPServerRunner(self.server) self.t.start()
def ftpServer(user, psw, port=2121, write=True): authorizer = DummyAuthorizer() if write == True: authorizer.add_user(user, psw , '.', perm='elradfmwM') else: authorizer.add_user(user, psw , '.') # authorizer.add_anonymous(os.getcwd()) handler = FTPHandler handler.authorizer = authorizer server = ThreadedFTPServer(('0.0.0.0', port), handler) server.serve_forever()
def main(): authorizer = DummyAuthorizer() authorizer.add_user("usr", "pw", "./dummyAWG", perm="elradfmw") authorizer.add_anonymous("./dummyAWG") #logging.basicConfig(filename='./logs/pyftpd.log', level=logging.INFO) handler = MyHandler handler.authorizer = authorizer server = ThreadedFTPServer((HOST, PORT), handler) server.serve_forever()
def serve_fs(fs, addr, port): """ Creates a basic anonymous FTP server serving the given FS on the given address/port combo. """ ftp_handler = FTPFSHandler ftp_handler.authorizer = DummyAuthorizer() ftp_handler.use_sendfile = False ftp_handler.authorizer.add_anonymous('/', perm='elrdmw') ftp_handler.abstracted_fs = FTPFSFactory(fs) s = ThreadedFTPServer((addr, port), ftp_handler) s.serve_forever()
def init_ftp_server(self): """初始化ftp服务器""" # 新建一个用户组 authorizer = DummyAuthorizer() # 将用户名,密码,指定目录,权限 添加到里面 authorizer.add_user("user", "12345", WEB_UPLOAD, perm="elradfmwMT") # 这个是添加匿名用户,任何人都可以访问,如果去掉的话,需要输入用户名和密码,可以自己尝试 authorizer.add_anonymous(WEB_UPLOAD) handler = FTPHandler handler.authorizer = authorizer address = ('', 5001) self.ftp_server = ThreadedFTPServer(address, handler)
def start_ftp_service(cls, domain, port): print('starting ftp service') authorizer = DummyAuthorizer() authorizer.add_anonymous(os.getcwd(), perm='elradfmwMT') handler = FTPHandler handler.authorizer = authorizer address = (domain, port) with ThreadedFTPServer(address, handler) as server: server.serve_forever()
def main(): authorizer = DummyAuthorizer() authorizer.add_anonymous(os.getcwd()) for user, password, path, permission in USER_PASS_PATH_PERM: authorizer.add_user(user, password, path, perm=permission) handler = FTPHandler handler.authorizer = authorizer handler.passive_ports = range(8000, 9000) server = ThreadedFTPServer(('', PORT), handler) server.serve_forever()
def _run_server(self): # Create Dummy Authorizer, with the random user/pass self.authorizer = DummyAuthorizer() self.authorizer.add_user(self.User, self.Pass, self.Dir, perm='elradfmw') self.handler = FTPHandler self.handler.authorizer = self.authorizer # Instantiate the FTP Server self.SRV = ThreadedFTPServer(('0.0.0.0', self.Port), self.handler) self.SRV.serve_forever()
def main(): # Creates authorization for anonymous users # and gives them Read/Write access to the server authorizer = DummyAuthorizer() authorizer.add_anonymous('.', perm='elradfmwM') # Using the default pyftpdlib handler to handle # requests sent to the server handler = FTPHandler handler.authorizer = authorizer server = ThreadedFTPServer(('127.0.0.1', 1026), handler) server.serve_forever()
def onClick(self): print('start') user = self.lineEditUser.text() passw = self.lineEditPassword.text() self.authorizer.add_user(user, passw, '.', perm='elrw') self.address = ('127.0.0.1', 2100) self.server = ThreadedFTPServer(self.address, self.handler) QMessageBox.information(self, "FTP Server started", "FTP Server started") self.start()