示例#1
0
    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()
示例#2
0
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))
示例#3
0
    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)
示例#4
0
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),
    )