mirror of
https://github.com/yogeshojha/rengine.git
synced 2026-09-13 05:17:43 +02:00
Added switchery, fixed scan engine
This commit is contained in:
+44
-27
@@ -12,30 +12,47 @@ class AddEngineForm(forms.ModelForm):
|
||||
required=True,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "scan_engine_name",
|
||||
"placeholder": "Custom Engine"}))
|
||||
"placeholder": "Engine Name"}))
|
||||
subdomain_discovery = forms.BooleanField(
|
||||
required=False,
|
||||
widget=forms.CheckboxInput(attrs={"checked": ""}))
|
||||
widget=forms.CheckboxInput(attrs={
|
||||
"checked": "",
|
||||
"data-plugin": "switchery",
|
||||
}))
|
||||
screenshot = forms.BooleanField(
|
||||
required=False,
|
||||
widget=forms.CheckboxInput(attrs={"checked": ""}))
|
||||
widget=forms.CheckboxInput(attrs={
|
||||
"checked": "",
|
||||
"data-plugin": "switchery",
|
||||
}))
|
||||
dir_file_search = forms.BooleanField(
|
||||
required=False,
|
||||
widget=forms.CheckboxInput(attrs={}))
|
||||
widget=forms.CheckboxInput(attrs={
|
||||
"data-plugin": "switchery",
|
||||
}))
|
||||
port_scan = forms.BooleanField(
|
||||
required=False,
|
||||
widget=forms.CheckboxInput(attrs={}))
|
||||
widget=forms.CheckboxInput(attrs={
|
||||
"data-plugin": "switchery",
|
||||
}))
|
||||
fetch_url = forms.BooleanField(
|
||||
required=False,
|
||||
widget=forms.CheckboxInput(attrs={"checked": ""}))
|
||||
widget=forms.CheckboxInput(attrs={
|
||||
"data-plugin": "switchery",
|
||||
}))
|
||||
vulnerability_scan = forms.BooleanField(
|
||||
required=False,
|
||||
widget=forms.CheckboxInput(attrs={"checked": ""}))
|
||||
widget=forms.CheckboxInput(attrs={
|
||||
"checked": "",
|
||||
"data-plugin": "switchery",
|
||||
}))
|
||||
osint = forms.BooleanField(
|
||||
required=False,
|
||||
widget=forms.CheckboxInput(attrs={"checked": ""}))
|
||||
widget=forms.CheckboxInput(attrs={
|
||||
"data-plugin": "switchery",
|
||||
}))
|
||||
yaml_configuration = forms.CharField(widget=AceWidget(
|
||||
mode="yaml",
|
||||
theme="monokai",
|
||||
@@ -55,7 +72,7 @@ class UpdateEngineForm(forms.ModelForm):
|
||||
required=True,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "scan_engine_name",
|
||||
"placeholder": "Custom Engine"}))
|
||||
subdomain_discovery = forms.BooleanField(
|
||||
@@ -104,7 +121,7 @@ class AddWordlistForm(forms.Form):
|
||||
name = forms.CharField(
|
||||
required=True,
|
||||
widget=forms.TextInput(
|
||||
attrs={'class': 'form-control',
|
||||
attrs={'class': 'form-control form-control-lg',
|
||||
'id': 'name',
|
||||
'placeholder': 'my awesome wordlist', }))
|
||||
short_name = forms.CharField(
|
||||
@@ -112,7 +129,7 @@ class AddWordlistForm(forms.Form):
|
||||
validators=[validate_short_name],
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'class': 'form-control',
|
||||
'class': 'form-control form-control-lg',
|
||||
'id': 'short_name',
|
||||
'placeholder': 'my_awesome_wordlist', }))
|
||||
upload_file = forms.FileField(
|
||||
@@ -131,7 +148,7 @@ class ConfigurationForm(forms.ModelForm):
|
||||
name = forms.CharField(
|
||||
required=True,
|
||||
widget=forms.TextInput(
|
||||
attrs={'class': 'form-control',
|
||||
attrs={'class': 'form-control form-control-lg',
|
||||
'id': 'name',
|
||||
'placeholder': 'Configuration Name', }))
|
||||
short_name = forms.CharField(
|
||||
@@ -139,7 +156,7 @@ class ConfigurationForm(forms.ModelForm):
|
||||
validators=[validate_short_name],
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'class': 'form-control',
|
||||
'class': 'form-control form-control-lg',
|
||||
'id': 'short_name',
|
||||
'placeholder': 'my_awesome_configuration', }))
|
||||
content = forms.CharField(widget=AceWidget(
|
||||
@@ -165,7 +182,7 @@ class InterestingLookupForm(forms.ModelForm):
|
||||
required=False,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "keywords",
|
||||
"placeholder": "Interesting Keywords",
|
||||
}))
|
||||
@@ -228,7 +245,7 @@ class NotificationForm(forms.ModelForm):
|
||||
required=False,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "slack_hook_url",
|
||||
"placeholder": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
}))
|
||||
@@ -245,7 +262,7 @@ class NotificationForm(forms.ModelForm):
|
||||
required=False,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "discord_hook_url",
|
||||
"placeholder": "https://discord.com/api/webhooks/000000000000000000/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
}))
|
||||
@@ -262,7 +279,7 @@ class NotificationForm(forms.ModelForm):
|
||||
required=False,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "telegram_bot_token",
|
||||
"placeholder": "Bot Token",
|
||||
}))
|
||||
@@ -271,7 +288,7 @@ class NotificationForm(forms.ModelForm):
|
||||
required=False,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "telegram_bot_chat_id",
|
||||
"placeholder": "Bot Chat ID",
|
||||
}))
|
||||
@@ -381,7 +398,7 @@ class ProxyForm(forms.ModelForm):
|
||||
required=False,
|
||||
widget=forms.Textarea(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "proxies",
|
||||
"rows": "10",
|
||||
"spellcheck": "false",
|
||||
@@ -409,7 +426,7 @@ class HackeroneForm(forms.ModelForm):
|
||||
required=True,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "username",
|
||||
"placeholder": "Your Hackerone Username",
|
||||
}))
|
||||
@@ -418,7 +435,7 @@ class HackeroneForm(forms.ModelForm):
|
||||
required=True,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "api_key",
|
||||
"placeholder": "Hackerone API Token",
|
||||
}))
|
||||
@@ -498,7 +515,7 @@ class ReportForm(forms.ModelForm):
|
||||
required=False,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "company_name",
|
||||
"placeholder": "Company Name",
|
||||
}))
|
||||
@@ -507,7 +524,7 @@ class ReportForm(forms.ModelForm):
|
||||
required=False,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "company_address",
|
||||
"placeholder": "Company Address",
|
||||
}))
|
||||
@@ -516,7 +533,7 @@ class ReportForm(forms.ModelForm):
|
||||
required=False,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "company_website",
|
||||
"placeholder": "Company Website https://company.com",
|
||||
}))
|
||||
@@ -525,7 +542,7 @@ class ReportForm(forms.ModelForm):
|
||||
required=False,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "company_email",
|
||||
"placeholder": "email@yourcompany.com",
|
||||
}))
|
||||
@@ -542,7 +559,7 @@ class ReportForm(forms.ModelForm):
|
||||
required=False,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"class": "form-control",
|
||||
"class": "form-control form-control-lg",
|
||||
"id": "footer_text",
|
||||
"aria-label": "switch",
|
||||
"placeholder": "Footer Text © Your Company",
|
||||
|
||||
@@ -1,115 +1,96 @@
|
||||
<div class="form-row layout-spacing">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<label for="domainName" class="text-info">Engine name</label>
|
||||
<label for="domainName" class="form-label">Engine name</label>
|
||||
{{ form.engine_name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row layout-spacing">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<h6 class="mr-1">Subdomain Discovery</h6>
|
||||
<span class="preview">(Selected by Default)</span>
|
||||
</td>
|
||||
<td>
|
||||
<label class="switch s-icons s-outline s-outline-info">
|
||||
<div class="col-4 mt-4">
|
||||
<h4 class="text-secondary">Engine</h4>
|
||||
<p>Select what your Scan Engine has to perform.</p>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<h5 class="text-secondary">Subdomain Discovery</h5>
|
||||
<span class="text-primary">(Selected by Default)</span>
|
||||
<br>
|
||||
<span>(Choose the subdomain scanning tools from YAML config.)</span>
|
||||
</td>
|
||||
<td>
|
||||
{{form.subdomain_discovery}}
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h6 class="mr-1 mt-3">Screenshot</h6>
|
||||
<span class="preview">(Recommended)</span>
|
||||
</td>
|
||||
<td>
|
||||
<label class="switch s-icons s-outline s-outline-info">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h5 class="text-secondary">Screenshot <span class="badge badge-soft-danger rounded-pill">Recommended</span></h5>
|
||||
<span>(Takes the screenshots of all the discovered subdomains.)</span>
|
||||
</td>
|
||||
<td>
|
||||
{{form.screenshot}}
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h6 class="mr-1 mt-3">OSINT <span class="badge badge-danger"> New </span> </h6>
|
||||
<span class="preview text-danger">(Recommended)</span>
|
||||
</td>
|
||||
<td>
|
||||
<label class="switch s-icons s-outline s-outline-info">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h5 class="text-secondary">OSINT</h5>
|
||||
</td>
|
||||
<td>
|
||||
{{form.osint}}
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h6 class="mr-1 mt-3">Port Scan</h6>
|
||||
</td>
|
||||
<td>
|
||||
<label class="switch s-icons s-outline s-outline-info">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h5 class="text-secondary">Port Scan</h5>
|
||||
</td>
|
||||
<td>
|
||||
{{form.port_scan}}
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h6 class="mr-1 mt-3">Directory and Files Search</h6>
|
||||
</td>
|
||||
<td>
|
||||
<label class="switch s-icons s-outline s-outline-info">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h5 class="text-secondary">Directory and Files Search</h5>
|
||||
</td>
|
||||
<td>
|
||||
{{form.dir_file_search}}
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h6 class="mr-1 mt-3">Fetch All Endpoints(URLs)</h6>
|
||||
<span class="preview">(Open Threat Exchange, Wayback Machine <br>Common Crawl)</span>
|
||||
</td>
|
||||
<td>
|
||||
<label class="switch s-icons s-outline s-outline-info">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h5 class="text-secondary">Fetch All Endpoints(URLs)</h5>
|
||||
<span>(Open Threat Exchange, Wayback Machine <br>Common Crawl)</span>
|
||||
</td>
|
||||
<td>
|
||||
{{form.fetch_url}}
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h6 class="mr-1 mt-3">Vulnerability Scanner </h6>
|
||||
<span class="preview">Scan for low hanging CVE and vulnerabilities.</span>
|
||||
<br>
|
||||
<span class="text-info">
|
||||
For better Vulnerability Scan results, please turn on the <b>Fetch Endpoints</b>.
|
||||
<br>reNgine will use nuclei to find vulnerabilities on those endpoints as well.
|
||||
<br><span class="text-danger">This will also increase the scan time exponentially but much better results.</span>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<label class="switch s-icons s-outline s-outline-info">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<h5 class="text-secondary">Vulnerability Scanner <span class="badge badge-soft-danger rounded-pill">Recommended</span></h5>
|
||||
<span>Scan for low hanging CVE and vulnerabilities.</span>
|
||||
<br>
|
||||
<span class="text-info">
|
||||
For better Vulnerability Scan results, please turn on the <b>Fetch Endpoints</b>.
|
||||
<br>reNgine will use nuclei to find vulnerabilities on those endpoints as well.
|
||||
<br><span class="text-danger">This will also increase the scan time exponentially but much better results.</span>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
{{form.vulnerability_scan}}
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-8 mt-4">
|
||||
<h4 class="text-secondary">YAML Configurations</h4>
|
||||
<p>
|
||||
reNgine supports YAML based configurations for customizing the scan. The default settings are given below, you may choose to proceed with the default settings or configure it according to your choice.
|
||||
</p>
|
||||
<h5 class="text-secondary">reNgine YAML Documentation</h5>
|
||||
To learn more about YAML config visit the official documentation at <a href="https://rengine.wiki/usage/scan_engine/" class="text-primary" target="_blank">https://rengine.wiki/pentester/scan_engine/</a>
|
||||
<p class="mt-1 text-danger">
|
||||
Note: Invalid YAML configuration may crash scans.
|
||||
<br>
|
||||
<span class="text-uppercase">Please, do not modify the configuration unless you know what what you are doing.</span>
|
||||
<br>
|
||||
<span class="text-danger">If default YAML configuration doesn't automatically load, <a href="https://raw.githubusercontent.com/yogeshojha/rengine/master/web/tools/default_settings.yaml" target="_blank">download default configuration from here</a> and paste it. (Firefox may have issues loading default YAML configuration.)</span>
|
||||
</p>
|
||||
{{form.yaml_configuration}}
|
||||
</div>
|
||||
</div>
|
||||
<h4>Configurations</h4>
|
||||
<p>
|
||||
reNgine supports YAML based configurations for customizing the scan. The default settings are given below, you may choose to proceed with the default settings or configure it according to your choice.
|
||||
</p>
|
||||
<h4>reNgine YAML Documentation</h4>
|
||||
To learn more about YAML config visit the official documentation at <a href="https://rengine.wiki/usage/scan_engine/" class="text-info" target="_blank">https://rengine.wiki/pentester/scan_engine/</a>
|
||||
<p class="mt-3 text-danger">
|
||||
Note: Invalid YAML configuration may crash scans.
|
||||
<br>
|
||||
<span class="text-uppercase">Please, do not modify the configuration if you are not sure what you are doing.</span>
|
||||
<br>
|
||||
<span class="text-danger">If default YAML configuration doesn't automatically load, download default configuration and paste here <a href="https://raw.githubusercontent.com/yogeshojha/rengine/master/tools/default_settings.yaml" class="text-info" target="_blank">https://raw.githubusercontent.com/yogeshojha/rengine/master/tools/default_settings.yaml</a> </span>
|
||||
</p>
|
||||
<div class="col-12">
|
||||
{{form.yaml_configuration}}
|
||||
</div>
|
||||
<br>
|
||||
|
||||
@@ -8,8 +8,7 @@ Add Engine Type
|
||||
|
||||
|
||||
{% block custom_js_css_link %}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'assets/css/forms/switches.css' %}">
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'assets/css/custom.css' %}">
|
||||
<link href="{% static 'plugins/switchery/switchery.min.css' %}" rel="stylesheet" type="text/css" />
|
||||
{{ form.media }}
|
||||
<style media="screen">
|
||||
.ace_editor {
|
||||
@@ -29,31 +28,39 @@ Add Engine Type
|
||||
<li class="breadcrumb-item active">Add Scan Engine</li>
|
||||
{% endblock breadcrumb_title %}
|
||||
|
||||
{% block page_title %}
|
||||
Add Scan Engine
|
||||
{% endblock page_title %}
|
||||
|
||||
{% block main_content %}
|
||||
<div class="statbox widget box box-shadow">
|
||||
<div class="widget-header">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h4>Add Scan Engine Name</h4>
|
||||
{{ form.errors }}
|
||||
{{ form.non_field_errors }}
|
||||
<div class="row">
|
||||
<div class="col-xl-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h4 class="header-title">Scan Engines</h4>
|
||||
<p>
|
||||
<code>Scan Engines</code> are the most crucial part of reNgine. They define how a <code>scan</code> is performed against a target. <code>Scan Engines</code> allow you to define the configuration and use it against multiple targets.
|
||||
<br>
|
||||
YAML configuration allows you fine tuning the engines such as rate, templates to be used, or configurations to be used.
|
||||
</p>
|
||||
<form method="POST">
|
||||
{% csrf_token %}
|
||||
{% include "scanEngine/_items/form_engine.html" %}
|
||||
<button class="btn btn-primary submit-fn mt-2 float-end" type="submit">Add Engine</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="widget-content widget-content-area">
|
||||
<form class="simple-example" method="POST">
|
||||
{% csrf_token %}
|
||||
{% include "scanEngine/_items/form_engine.html" %}
|
||||
<button class="btn btn-primary submit-fn mt-2 float-right" type="submit">Add Engine</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock main_content %}
|
||||
|
||||
{% block page_level_script %}
|
||||
<script src="{% static 'assets/js/scrollspyNav.js' %}"></script>
|
||||
<script src="{% static 'plugins/switchery/switchery.min.js' %}"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('[data-plugin="switchery"]').each(function(i, obj) {
|
||||
new Switchery(obj, { color: '#2b3d51'});
|
||||
});
|
||||
$('.ace_text-input').attr('id','editor');
|
||||
document.getElementById("editor").innerHTML = `subdomain_discovery:
|
||||
uses_tools: [ amass-passive, assetfinder, sublist3r, subfinder, oneforall ]
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
.switchery{background-color:#fff;border:1px solid #dfdfdf;border-radius:20px;cursor:pointer;display:inline-block;height:30px;position:relative;vertical-align:middle;width:50px;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box;background-clip:content-box}.switchery>small{background:#fff;border-radius:100%;box-shadow:0 1px 3px rgba(0,0,0,0.4);height:30px;position:absolute;top:0;width:30px}.switchery-small{border-radius:20px;height:20px;width:33px}.switchery-small>small{height:20px;width:20px}.switchery-large{border-radius:40px;height:40px;width:66px}.switchery-large>small{height:40px;width:40px}
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user