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)
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)
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)
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)
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"))
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')) """
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)
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)