def set_remote(self, user_id, session_id): required_fields = ['file'] data = self.get_json(required_fields) if data is False: return self.send_error_response( 5000, 'Missing fields', 'Required fields are: ' + ', '.join(required_fields)) provider = Provider() sessions = provider.sessions() hashes = provider.hashes() session = sessions.get(user_id=user_id, session_id=session_id) if not session: return self.send_access_denied_response() elif not hashes.is_valid_uploaded_hashfile(data['file']): return self.send_error_response(5002, 'Invalid file selected', '') save_as = sessions.session_filesystem.get_hashfile_path( user_id, session_id) local_path = hashes.get_uploaded_hashes_path(data['file']) if not hashes.copy_file(local_path, save_as): return self.send_error_response( 5003, 'Could not copy hashes file to data directory', '') return self.send_success_response()
def setup_hashes_save(session_id): provider = Provider() sessions = provider.sessions() uploaded_hashes = provider.hashes() if not sessions.can_access(current_user, session_id): flash('Access Denied', 'error') return redirect(url_for('home.index')) mode = int(request.form['mode'].strip()) save_as = sessions.session_filesystem.get_hashfile_path( current_user.id, session_id) if mode == 0: # Upload file. if len(request.files) != 1: flash('Uploaded file could not be found', 'error') return redirect( url_for('sessions.setup_hashes', session_id=session_id)) file = request.files['hashfile'] if file.filename == '': flash('No hashes uploaded', 'error') return redirect( url_for('sessions.setup_hashes', session_id=session_id)) file.save(save_as) elif mode == 1: # Enter hashes manually. hashes = request.form['hashes'].strip() if len(hashes) > 0: sessions.session_filesystem.save_hashes(current_user.id, session_id, hashes) else: flash('No hashes entered', 'error') return redirect( url_for('sessions.setup_hashes', session_id=session_id)) elif mode == 2: # Select already uploaded file. remotefile = request.form['remotefile'].strip() if not uploaded_hashes.is_valid_uploaded_hashfile(remotefile): flash('Invalid uploaded file selected', 'error') return redirect( url_for('sessions.setup_hashes', session_id=session_id)) remotefile_location = uploaded_hashes.get_uploaded_hashes_path( remotefile) if not uploaded_hashes.copy_file(remotefile_location, save_as): flash('Could not copy file', 'error') return redirect( url_for('sessions.setup_hashes', session_id=session_id)) else: flash('Invalid mode selected', 'error') return redirect(url_for('sessions.setup_hashes', session_id=session_id)) return redirect(url_for('sessions.setup_hashcat', session_id=session_id))
def get_remote(self): provider = Provider() hashes = provider.hashes() files = hashes.get_uploaded_hashes() api_files = [] for name, file in files.items(): api_files.append(self.compile_file_object(file)) return self.send_valid_response(api_files)
def setup_hashes(session_id): provider = Provider() sessions = provider.sessions() uploaded_hashes = provider.hashes() if not sessions.can_access(current_user, session_id): flash('Access Denied', 'error') return redirect(url_for('home.index')) user_id = 0 if current_user.admin else current_user.id session = sessions.get(user_id=user_id, session_id=session_id)[0] uploaded_hashfiles = uploaded_hashes.get_uploaded_hashes() return render_template( 'sessions/setup/hashes.html', session=session, uploaded_hashfiles_json=json.dumps(uploaded_hashfiles, indent=4, sort_keys=True, default=str), )