57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
# @Author : jeffzhang
|
|
# @Time : 18-5-9
|
|
# @File : fuxi.py
|
|
# @Desc : ""
|
|
|
|
import threading
|
|
from flask import Flask
|
|
from fuxi.app import app
|
|
from gevent.pywsgi import WSGIServer
|
|
from fuxi.views.modules.scanner.poc_scanner import PoCScannerLoop
|
|
from fuxi.views.modules.auth_tester.auth_scanner import AuthTesterLoop
|
|
from fuxi.views.modules.discovery.asset_discovery import DiscoveryLoop
|
|
from instance import config
|
|
|
|
ProductionConfig = config.ProductionConfig
|
|
flask_app = Flask(__name__)
|
|
flask_app.config.from_object(ProductionConfig)
|
|
host = flask_app.config.get('WEB_HOST')
|
|
port = flask_app.config.get('WEB_PORT')
|
|
thread_pool = []
|
|
|
|
|
|
def web_server():
|
|
http_server = WSGIServer((host, port), app)
|
|
http_server.serve_forever()
|
|
|
|
|
|
def scanner_loop():
|
|
PoCScannerLoop().task_schedule()
|
|
|
|
|
|
def auth_tester_loop():
|
|
AuthTesterLoop().task_schedule()
|
|
|
|
|
|
def discovery_loop():
|
|
DiscoveryLoop().task_schedule()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
print("* Running on http://" + host + ":" + str(port))
|
|
thread_pool.append(threading.Thread(target=web_server, args=()))
|
|
thread_pool.append(threading.Thread(target=scanner_loop, args=()))
|
|
thread_pool.append(threading.Thread(target=auth_tester_loop, args=()))
|
|
thread_pool.append(threading.Thread(target=discovery_loop, args=()))
|
|
try:
|
|
for t in thread_pool:
|
|
t.start()
|
|
for t in thread_pool:
|
|
t.join()
|
|
except Exception as e:
|
|
print(e)
|
|
|
|
|