示例#1
0
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()
示例#2
0
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()
示例#3
0
    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()
示例#4
0
 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()
示例#5
0
文件: main.py 项目: rushk99/PySync
    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)
示例#6
0
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()
示例#7
0
    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()
示例#8
0
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()
示例#9
0
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)
示例#11
0
def main():
    authorizer = DummyAuthorizer()
    authorizer.add_user('user', '12345', '.')
    handler = FTPHandler
    handler.authorizer = authorizer
    server = ThreadedFTPServer(('', 2121), handler)
    server.serve_forever()
示例#12
0
    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()
示例#13
0
    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()
示例#14
0
文件: myftp.py 项目: alextooter/myftp
def main():
    authorizer = DummyAuthorizer()
    authorizer.add_user('1', '1', '/')
    handler = EncodedHandler

    handler.authorizer = authorizer
    server = ThreadedFTPServer(('', 21), handler)
    server.serve_forever()
示例#15
0
 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 = ""
示例#16
0
def runFTP():
    try:
        handler = FTPHandler
        handler.authorizer = listusersftp
        serverFTP = ThreadedFTPServer((IP_ADDRESS, PORT_FTP), handler)
        serverFTP.serve_forever()
    except:
        print("FTP cannot Run")
        return
示例#17
0
    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)
示例#18
0
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
示例#20
0
    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")
示例#21
0
    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()
示例#22
0
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()
示例#23
0
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()
示例#24
0
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()
示例#25
0
 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)
示例#26
0
    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()
示例#27
0
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()
示例#28
0
 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()
示例#29
0
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()
示例#30
0
    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()