Autarch Will Control The Internet
This commit is contained in:
64
web/routes/msf.py
Normal file
64
web/routes/msf.py
Normal file
@@ -0,0 +1,64 @@
|
||||
"""MSF RPC Console page — raw console interaction and connection management."""
|
||||
|
||||
from flask import Blueprint, render_template, request, jsonify
|
||||
from web.auth import login_required
|
||||
|
||||
msf_bp = Blueprint('msf', __name__, url_prefix='/msf')
|
||||
|
||||
|
||||
@msf_bp.route('/')
|
||||
@login_required
|
||||
def index():
|
||||
return render_template('msf.html')
|
||||
|
||||
|
||||
@msf_bp.route('/status')
|
||||
@login_required
|
||||
def status():
|
||||
"""Check MSF connection status."""
|
||||
try:
|
||||
from core.msf_interface import get_msf_interface
|
||||
msf = get_msf_interface()
|
||||
result = {'connected': msf.is_connected}
|
||||
if msf.is_connected:
|
||||
try:
|
||||
settings = msf.manager.get_settings()
|
||||
result['host'] = settings.get('host', 'localhost')
|
||||
result['port'] = settings.get('port', 55553)
|
||||
except Exception:
|
||||
pass
|
||||
return jsonify(result)
|
||||
except Exception:
|
||||
return jsonify({'connected': False})
|
||||
|
||||
|
||||
@msf_bp.route('/connect', methods=['POST'])
|
||||
@login_required
|
||||
def connect():
|
||||
"""Reconnect to MSF RPC."""
|
||||
try:
|
||||
from core.msf_interface import get_msf_interface
|
||||
msf = get_msf_interface()
|
||||
ok, msg = msf.ensure_connected()
|
||||
return jsonify({'connected': ok, 'message': msg})
|
||||
except Exception as e:
|
||||
return jsonify({'connected': False, 'error': str(e)})
|
||||
|
||||
|
||||
@msf_bp.route('/console/send', methods=['POST'])
|
||||
@login_required
|
||||
def console_send():
|
||||
"""Send a command to the MSF console and return output."""
|
||||
data = request.get_json(silent=True) or {}
|
||||
cmd = data.get('cmd', '').strip()
|
||||
if not cmd:
|
||||
return jsonify({'output': ''})
|
||||
try:
|
||||
from core.msf_interface import get_msf_interface
|
||||
msf = get_msf_interface()
|
||||
if not msf.is_connected:
|
||||
return jsonify({'error': 'Not connected to MSF RPC'})
|
||||
ok, output = msf.run_console_command(cmd)
|
||||
return jsonify({'output': output, 'ok': ok})
|
||||
except Exception as e:
|
||||
return jsonify({'error': str(e)})
|
||||
Reference in New Issue
Block a user