def host_historical_result(ip, scan_id): delForm = DeleteForm() delHostForm = DeleteForm() rescanForm = RescanForm() info, context = hostinfo(ip) count, context = current_app.elastic.gethost_scan_id(scan_id) return render_template("host/summary.html", host=context, info=info, **context, delForm=delForm, delHostForm=delHostForm, rescanForm=rescanForm)
def host(ip): info, context = hostinfo(ip) delForm = DeleteForm() delHostForm = DeleteForm() rescanForm = RescanForm() return render_template("host/summary.html", **context, host=context, info=info, delForm=delForm, delHostForm=delHostForm, \ rescanForm=rescanForm)
def host_headshots(ip): delHostForm = DeleteForm() rescanForm = RescanForm() info, context = hostinfo(ip) return render_template("host/headshots.html", **context, info=info, delHostForm=delHostForm, rescanForm=rescanForm)
def host(ip): info, context = hostinfo(ip) delForm = DeleteForm() delHostForm = DeleteForm() rescanForm = RescanForm() version = determine_data_version(context) return render_template("host/versions/"+version+"/summary.html", **context, host=context, info=info, delForm=delForm, delHostForm=delHostForm, \ rescanForm=rescanForm)
def randomHost(): randomHost = current_app.elastic.random_host() if not randomHost: abort(404) ip = randomHost['hits']['hits'][0]['_source']['ip'] info, context = hostinfo(ip) delForm = DeleteForm() delHostForm = DeleteForm() rescanForm = RescanForm() return render_template("host/summary.html", **context, host=context, info=info, delForm=delForm, delHostForm=delHostForm, \ rescanForm=rescanForm)
def rescan_host(ip): rescanForm = RescanForm() if rescanForm.validate_on_submit(): if not isAcceptableTarget(ip): # Someone is requesting we scan an ip that isn't allowed flash("We're not allowed to scan %s" % ip, "danger") return redirect(request.referrer) incompleteScans = current_app.ScopeManager.getIncompleteScans() for scan in incompleteScans: if ip == scan.target: if scan.dispatched == True: status = "dispatched" if (datetime.utcnow() - scan.date_dispatched).seconds > 1200: # 20 minutes have past since dispatch, something probably wen't seriously wrong # move it back to not dispatched and update the cached rescan data scan.dispatched = False db.session.add(scan) db.session.commit() current_app.ScopeManager.updatePendingRescans() current_app.ScopeManager.updateDispatchedRescans() flash("Refreshed existing rescan request for %s" % ip, "success") return redirect(request.referrer) else: status = "pending" flash( "There's already a %s rescan request for %s" % (status, ip), "warning") return redirect(request.referrer) rescan = RescanTask(user_id=current_user.id, target=ip) db.session.add(rescan) db.session.commit() flash("Requested rescan of %s" % ip, "success") current_app.ScopeManager.updatePendingRescans() current_app.ScopeManager.updateDispatchedRescans() return redirect(request.referrer)
def host_screenshots(ip): page = int(request.args.get('p', 1)) searchOffset = current_user.results_per_page * (page - 1) delHostForm = DeleteForm() rescanForm = RescanForm() info, context = hostinfo(ip) total_entries, screenshots = current_app.elastic.get_host_screenshots( ip, current_user.results_per_page, searchOffset) next_url = url_for('main.host_screenshots', ip=ip, p=page + 1) \ if total_entries > page * current_user.results_per_page else None prev_url = url_for('main.host_screenshots', ip=ip, p=page - 1) \ if page > 1 else None version = determine_data_version(context) return render_template("host/versions/"+version+"/screenshots.html", **context, historical_screenshots=screenshots, numresults=total_entries, \ info=info, delHostForm=delHostForm, rescanForm=rescanForm, next_url=next_url, prev_url=prev_url)
def host_history(ip): info, context = hostinfo(ip) page = int(request.args.get('p', 1)) searchOffset = current_user.results_per_page * (page - 1) delHostForm = DeleteForm() rescanForm = RescanForm() count, context = current_app.elastic.gethost_history( ip, current_user.results_per_page, searchOffset) if count == 0: abort(404) next_url = url_for('main.host_history', ip=ip, p=page + 1) \ if count > page * current_user.results_per_page else None prev_url = url_for('main.host_history', ip=ip, p=page - 1) \ if page > 1 else None return render_template("host/versions/0.6.5/history.html", ip=ip, info=info, page=page, numresults=count, hosts=context, next_url=next_url, prev_url=prev_url, \ delHostForm=delHostForm, rescanForm=rescanForm)