コード例 #1
0
def nmap_tasks():
    scantypes = [
        "-sT", "-sT", "-sS", "-sA", "-sW", "-sM", "-sN", "-sF", "-sX", "-sU"
    ]

    if request.method == "POST":
        if 'targets' in request.form:
            targets = request.form["targets"]
        else:
            abort(401)

        options = ""
        scani = int(
            request.form['scantype']) if 'scantype' in request.form else 0
        if 'ports' in request.form and len(request.form['ports']):
            portlist = "-p " + request.form['ports']
        else:
            portlist = ''
        noping = '-P0' if 'noping' in request.form else ''
        osdetect = "-O" if 'os' in request.form else ''
        bannerdetect = "-sV" if 'banner' in request.form else ''
        options = "{0} {1} {2} {3} {4}".format(scantypes[scani], portlist,
                                               noping, osdetect, bannerdetect)
        _celery_task = celery_nmap_scan.delay(targets=str(targets),
                                              options=str(options))
        NmapTask.add(user_id=current_user.id, task_id=_celery_task.id)
        return redirect(url_for('nmap.nmap_tasks'))

    _nmap_tasks = NmapTask.find(user_id=current_user.id)
    return render_template('nmap_tasks.html', tasks=_nmap_tasks)
コード例 #2
0
ファイル: nmap.py プロジェクト: opexxx/nmap-webgui
def nmap_tasks():
    scantypes = [ "-sT", "-sT", "-sS", "-sA", "-sW", "-sM",
            "-sN", "-sF", "-sX", "-sU" ]

    if request.method == "POST":
        if 'targets' in request.form:
            targets = request.form["targets"]
        else:
            abort(401)

        options = ""
        scani = int(request.form['scantype']) if 'scantype' in request.form else 0
        if 'ports' in request.form and len(request.form['ports']):
            portlist = "-p " + request.form['ports']
        else:
            portlist = ''
        noping = '-P0' if 'noping' in request.form else ''
        osdetect = "-O" if 'os' in request.form else ''
        bannerdetect = "-sV" if 'banner' in request.form else ''
        options = "{0} {1} {2} {3} {4}".format(scantypes[scani],
                                                  portlist,
                                                  noping,
                                                  osdetect,
                                                  bannerdetect)
        _celery_task = celery_nmap_scan.delay(targets=str(targets),
                                              options=str(options))
        NmapTask.add(user_id=current_user.id, task_id=_celery_task.id)
        return redirect(url_for('nmap.nmap_tasks'))

    _nmap_tasks = NmapTask.find(user_id=current_user.id)
    return render_template('nmap_tasks.html', tasks=_nmap_tasks)
コード例 #3
0
ファイル: nmap.py プロジェクト: frennkie/nmap-webgui
def nmap_tasks():
    scantypes = [ "-sT", "-sT", "-sS", "-sA", "-sW", "-sM",
            "-sN", "-sF", "-sX", "-sU" ]

    if request.method == "POST":
        if 'targets' in request.form:
            targets = request.form["targets"]
        else:
            abort(401)

        if 'comment' in request.form:
            comment = request.form["comment"]
        else:
            comment = ""

        if 'run_now' in request.form:
            run_now = True
        else:
            run_now = False

        scani = int(request.form['scantype']) if 'scantype' in request.form else 0
        if 'ports' in request.form and len(request.form['ports']):
            portlist = "-p " + request.form['ports']
        else:
            portlist = ''
        noping = '-P0' if 'noping' in request.form else ''
        osdetect = "-O" if 'os' in request.form else ''
        bannerdetect = "-sV" if 'banner' in request.form else ''
        options = "{0} {1} {2} {3} {4}".format(scantypes[scani],
                                               portlist,
                                               noping,
                                               osdetect,
                                               bannerdetect)

        """ use either eta OR countdown! """
        _c_eta = datetime.datetime.utcnow() + datetime.timedelta(seconds=0)
        _c_exp = datetime.datetime.utcnow() + CELERY_TASK_EXPIRES
        _celery_task = celery_nmap_scan.apply_async(eta=_c_eta,
                                                    expires=_c_exp,
                                                    kwargs={'targets': str(targets),
                                                            'options': str(options)})

        NmapTask.add(user=current_user,
                     task_id=_celery_task.id,
                     comment=comment)

        return redirect(url_for('nmap.nmap_tasks'))

    _nmap_tasks = NmapTask.find(user_id=current_user.id)
    return render_template('nmap_tasks.html', tasks=_nmap_tasks)
コード例 #4
0
def nmap_tasks_json():
    _nmap_tasks = NmapTask.find(user_id=current_user.id)
    _jtarray = []
    for _ntask in _nmap_tasks:
        tdict = {'id': _ntask.id, 'status': _ntask.status, 'ready': 0}
        if _ntask.result and 'done' in _ntask.result:
            tdict.update({'progress': float(_ntask.result['done'])})
        elif _ntask.result and 'report' in _ntask.result:
            tdict.update({'progress': 100})
        else:
            tdict.update({'progress': 0})
        if _ntask.status in READY_STATES:
            tdict.update({'ready': 1})
        _jtarray.append(tdict)

    return json.dumps(_jtarray)
コード例 #5
0
ファイル: nmap.py プロジェクト: opexxx/nmap-webgui
def nmap_tasks_json():
    _nmap_tasks = NmapTask.find(user_id=current_user.id)
    _jtarray = []
    for _ntask in _nmap_tasks:
        tdict = {'id': _ntask.id,
                 'status': _ntask.status,
                 'ready': 0}
        if _ntask.result and 'done' in _ntask.result:
            tdict.update({'progress': float(_ntask.result['done'])})
        elif _ntask.result and 'report' in _ntask.result:
            tdict.update({'progress': 100})
        else:
            tdict.update({'progress': 0})
        if _ntask.status in READY_STATES:
            tdict.update({'ready': 1})
        _jtarray.append(tdict)

    return json.dumps(_jtarray)
コード例 #6
0
ファイル: nmap.py プロジェクト: frennkie/nmap-webgui
def nmap_task_delete(task_id):
    """task delete"""

    try:
        _nmap_task = NmapTask.get_by_task_id(task_id=task_id)
    except Exception as e:
        flash(str(e), "warning")
        return redirect(url_for("nmap.nmap_tasks"))

    if _nmap_task is None:
        flash("There is no entry for task_id: " + task_id, "info")
        return redirect(url_for("nmap.nmap_tasks"))

    if _nmap_task.delete():
        flash("Deleted entry for task_id: " + task_id, "success")
        return redirect(url_for("nmap.nmap_tasks"))
    else:
        flash("Delete failed. Task_id: " + task_id, "danger")
        return redirect(url_for("nmap.nmap_tasks"))
コード例 #7
0
ファイル: nmap.py プロジェクト: frennkie/nmap-webgui
def nmap_task_stop(task_id):
    """
    _nmap_task = NmapTask.get(task_id)
    if _nmap_task is None:
        flash("There is no entry for task_id: " + task_id, 'info')
        return redirect(url_for('nmap.nmap_tasks'))

    NmapTask.stop_task_by_id(task_id=task_id)
    """

    try:
        _nmap_task = NmapTask.get_by_task_id(task_id=task_id)
    except Exception as e:
        flash(str(e), "warning")
        return redirect(url_for("nmap.nmap_tasks"))

    if _nmap_task.completed == 1:
        flash("Can not stop tasks that are already finished.", 'info')
        return redirect(url_for('nmap.nmap_tasks'))

    flash("Sorry.. This feature is not (yet?!) implemented", 'danger')
    return redirect(url_for('nmap.nmap_tasks'))

    """
コード例 #8
0
def nmap_report(report_id):
    _report = None
    if report_id is not None:
        _report = NmapTask.get_report(task_id=report_id)
    return render_template('nmap_report.html', report=_report)
コード例 #9
0
ファイル: nmap.py プロジェクト: opexxx/nmap-webgui
def nmap_report(report_id):
    _report = None
    if report_id is not None:
        _report = NmapTask.get_report(task_id=report_id)
    return render_template('nmap_report.html', report=_report)
コード例 #10
0
def nmap_compare():
    _nmap_tasks = NmapTask.find(user_id=current_user.id)
    _report = NmapTask.get_all_reports(_nmap_tasks)
    return render_template('nmap_compare.html', reports=_report)