class Vmmaster(Flask): def __init__(self, *args, **kwargs): from core.db import Database from core.sessions import Sessions from vmpool.virtual_machines_pool import VirtualMachinesPool super(Vmmaster, self).__init__(*args, **kwargs) self.running = True self.uuid = str(uuid1()) self.database = Database() self.pool = VirtualMachinesPool(self) self.sessions = Sessions(self) self.json_encoder = JSONEncoder self.register() def register(self): self.database.register_platforms(self.uuid, self.pool.platforms.info()) def unregister(self): self.database.unregister_platforms(self.uuid) def cleanup(self): log.info("Shutting down...") self.pool.stop_workers() self.sessions.worker.stop() self.pool.free() self.unregister() self.pool.platforms.cleanup() log.info("Server gracefully shut down.")
def __init__(self, *args, **kwargs): from core.db import Database from core.sessions import Sessions from vmpool.virtual_machines_pool import VirtualMachinesPool super(Vmmaster, self).__init__(*args, **kwargs) self.running = True self.uuid = str(uuid1()) self.database = Database() self.pool = VirtualMachinesPool(self) self.sessions = Sessions(self) self.json_encoder = JSONEncoder self.register()
def getHostsAlive(ip, vId): hDB = Database() try: hDB.sentences_victim('delete_hostalive', vId, 2) split_ip = ip.split('.') net = split_ip[0] + '.' + split_ip[1] + '.' + split_ip[2] + '.' if ip != '127.0.0.1': if (platform.system()=='Windows'): ping = 'ping -n 1 -w 5' else: ping = 'ping -c 1 -t 3' for sub_net in range(1, 255): address = net + str(sub_net) response = os.popen(ping + ' ' + address) for line in response.readlines(): if ('time=' in line.lower()): lPos = line.find('time=') tmpLine = line[lPos+5:lPos+15] lPos = tmpLine.find('ms') tmpLine = tmpLine[0:lPos+2] hDB.sentences_victim('register_hostalive', [vId, address, tmpLine, time.strftime("%Y-%m-%d - %H:%M:%S")], 2) break else: hDB.sentences_victim('register_hostalive', [vId, 'OWN HOST', 0, time.strftime("%Y-%m-%d - %H:%M:%S")], 2) except ValueError: pass
def setUpClass(cls): setup_config('data/config.py') cls.db = Database(config.DATABASE) Base.metadata.drop_all(cls.db.engine) Base.metadata.create_all(cls.db.engine) cls.size = 20
def __init__(self, *args, **kwargs): from core.db import Database, DatabaseQueueWorker from core.sessions import Sessions super(Vmmaster, self).__init__(*args, **kwargs) self.running = True self.json_encoder = JSONEncoder self.database = Database() self.database_task_queue = deque() self.database_task_worker = DatabaseQueueWorker( self.database_task_queue) self.database_task_worker.start() self.sessions = Sessions(self.database, self.app_context) self.sessions.start_workers()
def __init__(self, *args, **kwargs): from core.db import Database from core.sessions import Sessions from vmpool.virtual_machines_pool import VirtualMachinesPool super(Provider, self).__init__(*args, **kwargs) self.running = True self.json_encoder = JSONEncoder self.database = Database() self.sessions = Sessions(self.database, self.app_context) self.pool = VirtualMachinesPool(app=self, name=config.PROVIDER_NAME) self.pool.start_workers()
def setUp(self): from core.db import Database setup_config('data/config.py') self.platform_name = "origin_1" self.app = Flask(__name__) self.ctx = self.app.app_context() self.ctx.push() self.app.database = Database() self.app.sessions = Mock() self.mocked_image = Mock( id=1, status='active', get=Mock(return_value='snapshot'), min_disk=20, min_ram=2, instance_type_flavorid=1, ) type(self.mocked_image).name = PropertyMock( return_value='test_origin_1') with patch.multiple( 'vmpool.platforms.OpenstackPlatforms', images=Mock(return_value=[self.mocked_image]), flavor_params=Mock(return_value={ 'vcpus': 1, 'ram': 2 }), limits=Mock( return_value={ 'maxTotalCores': 10, 'maxTotalInstances': 10, 'maxTotalRAMSize': 100, 'totalCoresUsed': 0, 'totalInstancesUsed': 0, 'totalRAMUsed': 0 }), ): from vmpool.virtual_machines_pool import VirtualMachinesPool self.pool = VirtualMachinesPool(self.app, preloader_class=Mock(), artifact_collector_class=Mock(), endpoint_preparer_class=Mock()) self.ctx = self.app.app_context() self.ctx.push() self.pool.register()
if getattr(sys, 'frozen', False): template_folder = os.path.join(sys._MEIPASS, 'templates') static_folder = os.path.join(sys._MEIPASS, 'static') app = Flask(__name__, template_folder=template_folder, static_folder=static_folder) else: app = Flask(__name__, template_folder='../templates', static_folder='../static') cors = CORS(app) # call database db = Database() # preview header tool in console trape.header() #print db.firstTime @app.route("/" + trape.stats_path) def index(): return trape.injectCSS_Paths( render_template("/login.html").replace( '[LOGIN_SRC]', trape.JSFiles[2]['src']).replace('[LIBS_SRC]', trape.JSFiles[1]['src']))
from socket import gethostname, gethostbyname from threading import Lock from flask import Flask, render_template, session, request, json from flask_socketio import SocketIO, emit, join_room, rooms, disconnect import core.stats import core.victim from victim_objects import attacks_hook_message from core.utils import utils from core.db import Database # Main parts, to generate relationships among others trape = core.stats.trape app = core.stats.app # call database db = Database() async_mode = None socketio = SocketIO(app, async_mode=async_mode) thread = None thread_lock = Lock() db.sentences_victim('clean_online', None, 2) def background_thread(): count = 0 @socketio.on("join", namespace="/trape") def join(message): try: join_room(message['room'])
from core.geospy import GeoSpy from core.db import Database from time import sleep try: import flask import flask_socketio except: utils.Go(utils.Color['whiteBold'] + "[" + utils.Color['redBold'] + "x" + utils.Color['whiteBold'] + "]" + utils.Color['redBold'] + " " + "ERROR: " + utils.Color['white'] + "Missing some necessary dependencies!") import sys sys.exit() # We generalize the main class of <GeoSpy> trackPeople = GeoSpy() # call class database generateData = Database() if generateData.firstTime: utils.Go("\033[H\033[J") utils.Go("\t" + utils.Color['white'] + "--" + " " + "v" + utils.Color['redBold'] + "2.0" + utils.Color['white'] + " " + "--" + "\n" + utils.Color['white']) utils.Go(utils.Color['whiteBold'] + "Welcome " + utils.Color['greenBold'] + os.uname()[1].upper() + utils.Color['whiteBold'] + " to GeoSpy" + utils.Color['white']) utils.Go("------") utils.Go("This is an exclusive version for researchers, or professionals \nwho are dedicated to research, we hope you enjoy." + "\n") utils.Go(utils.Color['whiteBold'] + "DISCLAIMER" + utils.Color['white']) utils.Go("------") utils.Go("This is a monitoring and research tool " + utils.Color['whiteBold'] + "OSINT" + utils.Color['white'] + ", which is distributed \nfor educational and investigative purposes, the person who has bought \nor uses this tool is responsible for its proper use or actions committed, \n" + utils.Color['whiteBold'] + "Entynetproject" + utils.Color['white'] + " is not responsible for the use or the scope that \npeople can have through this software." + "\n") utils.Go(utils.Color['whiteBold']+ "CREATOR" + utils.Color['white']) utils.Go("------") utils.Go(utils.Color["white"] + "- " + utils.Color["greenBold"] + "Developer: " + utils.Color['white'] + "Entynetproject" + utils.Color['white']) utils.Go(utils.Color["white"] + "- " + utils.Color["greenBold"] + "Twitter: " + utils.Color['white'] + "https://twitter.com/entynetproject/") utils.Go(utils.Color["white"] + "- " + utils.Color["greenBold"] + "Site: " + utils.Color['white'] + "http://entynetproject.simplesite.com/" + utils.Color['white'] + "\n") sleep(3)
from threading import Lock from flask import Flask, render_template, session, request, json from flask_socketio import SocketIO, emit, join_room, rooms, disconnect import core.stats import core.user from user_objects import attacks_hook_message from core.utils import utils from core.db import Database import sys # Main parts, to generate relationships among others trape = core.stats.trape app = core.stats.app # call database db = Database() async_mode = None socketio = SocketIO(app, async_mode=async_mode) thread = None thread_lock = Lock() db.sentences_victim('clean_online', None, 2) def background_thread(): count = 0 @socketio.on("join", namespace="/trape") def join(message):
from core.db import Database # from time import sleep # try: # import flask # import flask_socketio # import os # except: ############################################ utils.Go("\t\nPlease install requirements.txt libraries, you can do it executing:") # utils.Go("\t\npip install -r requirements.txt") ##################################### ###################################################### # We generalize the main class of <trape> trackPeople = Trape() # call class database generateData = Database() if generateData.firstTime: utils.Go("\033[H\033[J") utils.Go(utils.Color['whiteBold'] + " @@@@@@@@@@@@@@@@@@@@@@ ") utils.Go(utils.Color['whiteBold'] + " @@@@@@@@@@@@@@@@@@@@@@@@ ") utils.Go(utils.Color['whiteBold'] + " @@@@@ @@@@@@@@@@@@@@@@ ") utils.Go(utils.Color['whiteBold'] + " @@@@@ @@@@@@@@@@@@@@@@ ") utils.Go(utils.Color['whiteBold'] + " @@@@@ @@ @@@@@ ") utils.Go(utils.Color['whiteBold'] + " @@@@@ @@ @@@@@ ") utils.Go(utils.Color['whiteBold'] + " @@@@@ @@@@@@@@@@@@@@@ ") utils.Go(utils.Color['whiteBold'] + " @@@@@ @@@@@ @@@@@ ") utils.Go(utils.Color['whiteBold'] + " @@@@@ @@ @@@@@ ") utils.Go(utils.Color['whiteBold'] + " @@@@@@@@@@@@@@@@@@@@@@@@ ") utils.Go(utils.Color['whiteBold'] + " @@@@@@@@@@@@@@@@@@@@@@@@ ") utils.Go(utils.Color['whiteBold'] + " @@@@@@@@@@@@@@@@@@@@@@ ") utils.Go("\t" + utils.Color['white'] + "--" + " " + "v" + utils.Color['redBold'] + "2.0" + utils.Color['white'] + " " + "--" + "\n" + utils.Color['white'])
class Vmmaster(Flask): balance_lock = threading.Lock() def __init__(self, *args, **kwargs): from core.db import Database, DatabaseQueueWorker from core.sessions import Sessions super(Vmmaster, self).__init__(*args, **kwargs) self.running = True self.json_encoder = JSONEncoder self.database = Database() self.database_task_queue = deque() self.database_task_worker = DatabaseQueueWorker( self.database_task_queue) self.database_task_worker.start() self.sessions = Sessions(self.database, self.app_context) self.sessions.start_workers() def cleanup(self): log.info("Cleanup...") try: self.database_task_worker.stop() self.sessions.stop_workers() log.info("Cleanup done") except: log.exception("Cleanup was finished with errors") @property def providers(self): return self.database.get_active_providers() def stop(self): self.running = False def get_matched_platforms(self, dc): from vmmaster.matcher import SeleniumMatcher, PlatformsBasedMatcher providers_platforms, limits = {}, {} with self.balance_lock: for provider in self.providers: platforms = self.database.get_platforms(provider.id) matcher = SeleniumMatcher( platforms=provider.config, fallback_matcher=PlatformsBasedMatcher(platforms)) matched_platforms = matcher.get_matched_platforms(dc) if matched_platforms and provider.max_limit: providers_platforms[provider.id] = matched_platforms limits[provider.id] = provider.max_limit if not providers_platforms: return None, None provider_id = self.get_provider_id(limits) if provider_id: return providers_platforms[provider_id][0], provider_id return None, None def get_provider_id(self, limits): availables = {} for provider_id, limit in limits.items(): sessions = self.sessions.active(provider_id=provider_id) availables[provider_id] = limit - len(sessions) if availables: max_value = max(availables.values()) return availables.keys()[availables.values().index(max_value)]