This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title mt-2 mr-4">Datastore File</h4>
|
||||
<div class="row text-right">
|
||||
<button type="button" class="pull-right btn bg-transparent" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true"><i class="fa fa-times"></i></span></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="container col-md-12">
|
||||
<form method="post" action="" id="form_new_ds_file">
|
||||
<div class="col-md-12 col-lg-12 col-sm-12">
|
||||
{{ form.hidden_tag() }}
|
||||
{% if file.file_id %}
|
||||
<div class="row ml-2">
|
||||
<p>The file is currently saved in virtual folder <code>{{ dsp.path_name }}</code>.</p>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="row ml-2">
|
||||
<p>The file will be saved in virtual folder <code>{{ dsp.path_name }}</code>.</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="form-row ml-2">
|
||||
<div class="form-group col-12">
|
||||
<label for="input_upload_ds_file" class="form-label">Choose file to upload : </label>
|
||||
<input id="input_upload_ds_file" class="form-control" type="file">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row ml-2">
|
||||
<div class="form-group col-12">
|
||||
<label for="file_original_name" class="placeholder">Filename *</label>
|
||||
{{ form.file_original_name(class='form-control', autocomplete="off") }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row ml-2">
|
||||
<div class="form-group col-12">
|
||||
<label for="file_description" class="placeholder">Description</label>
|
||||
{{ form.file_description(class='form-control col-md-12 col-sm-12 sizable-textarea', autocomplete="off") }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row ml-2">
|
||||
<div class="form-group col-6 col-xs-12">
|
||||
<label for="file_password" class="placeholder">Password<i class="ml-1 mt-1 fa-regular text-dark fa-circle-question"
|
||||
title="Help" data-toggle="popover" data-html="true"
|
||||
data-trigger="hover" style="cursor: pointer;"
|
||||
data-content="If set, the file is locally encrypted with this password.<br/><b class='text-danger'>Passwords are stored in clear text server side. Do not put sensitive password here.</b><br/>Encrypted files cannot be used in notes.<br/>IOC are automatically encrypted with password <code>infected</code> unless specified otherwise here.">
|
||||
|
||||
</i></label>
|
||||
<div class="input-group mb-2 mr-sm-2">
|
||||
{{ form.file_password(class='form-control', autocomplete="off", type="password") }}
|
||||
<div class="input-group-append">
|
||||
<div class="input-group-text" id="toggle_file_password"><i class="fa-solid fa-eye"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-6 col-xs-12">
|
||||
<label for="file_tags">File tags</label>
|
||||
<input type="text" id="file_tags" name="file_tags"
|
||||
class="form-control col-md-12" {% if file.file_tags %} value="{{ file.file_tags }}" {% endif %}/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row ml-2">
|
||||
<div class="form-group col-6 col-xs-12">
|
||||
<div class="form-check">
|
||||
<label class="form-check-label">
|
||||
{{ form.file_is_ioc(class="form-check-input", type="checkbox") }}
|
||||
<span class="form-check-sign"> File is IOC <i class="ml-1 mt-1 fa-regular text-dark fa-circle-question"
|
||||
title="Help" data-toggle="popover" data-html="true"
|
||||
data-trigger="hover" style="cursor: pointer;"
|
||||
data-content="If set, the file is stored in a dedicated IOC folder on the server and is encrypted with password <code>infected</code> unless specified otherwise in the password field.<br/> The file is also added to the case IOC.">
|
||||
|
||||
</i></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-6 col-xs-12">
|
||||
<div class="form-check">
|
||||
<label class="form-check-label">
|
||||
{{ form.file_is_evidence(class="form-check-input", type="checkbox") }}
|
||||
<span class="form-check-sign"> File is Evidence <i class="ml-1 mt-1 fa-regular text-dark fa-circle-question"
|
||||
title="Help" data-toggle="popover" data-html="true"
|
||||
data-trigger="hover" style="cursor: pointer;"
|
||||
data-content="If set, the file is stored in a dedicated Evidence folder on the server and added to the case Evidences.">
|
||||
|
||||
</i></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if file.file_id %}
|
||||
<button type="button" class="btn btn-outline-danger ml-4 mt-5"
|
||||
onclick="delete_ds_file({{ file.file_id }});">Delete</button>
|
||||
{% endif %}
|
||||
<button type="button" class="btn btn-outline-success ml-4 mt-5 float-right" onclick="save_ds_file({{dsp.path_id}}, {{ file.file_id }});return false;">Save</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$('[data-toggle="popover"]').popover();
|
||||
$('#toggle_file_password').on('click', function (e) {
|
||||
const type = $('#file_password').attr('type') === 'password' ? 'text' : 'password';
|
||||
$('#file_password').attr('type', type);
|
||||
|
||||
$('#toggle_file_password > i').attr('class', type === 'password' ? 'fa-solid fa-eye' : 'fa-solid fa-eye-slash');
|
||||
});
|
||||
|
||||
$('#file_tags').amsifySuggestags({
|
||||
printValues: true,
|
||||
{% if file.file_tags %}
|
||||
suggestions: [ {% for tag in file.file_tags %} '{{ tag }}', {% endfor %} ],
|
||||
{% endif %}
|
||||
whiteList: false,
|
||||
selectOnHover: false,
|
||||
});
|
||||
$("#input_upload_ds_file").on("change", function(e) {
|
||||
var file = e.target.files[0].name;
|
||||
$('#file_original_name').val(file);
|
||||
});
|
||||
</script>
|
@@ -0,0 +1,74 @@
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title mt-2 mr-4">Datastore File {{ file.file_original_name }}</h4>
|
||||
<div class="row text-right">
|
||||
<button type="button" class="pull-right btn bg-transparent" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true"><i class="fa fa-times"></i></span></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="container col-md-12">
|
||||
<div class="col-md-12 col-lg-12 col-sm-12">
|
||||
<h3>File information</h3>
|
||||
<dl class="row mt-2">
|
||||
<dt class="col-sm-3">Virtual location: </dt>
|
||||
<dd class="col-sm-8">{{ dsp.path_name }}</dd>
|
||||
|
||||
<dt class="col-sm-3">Original file name: </dt>
|
||||
<dd class="col-sm-8">{{ file.file_original_name }}</dd>
|
||||
|
||||
<dt class="col-sm-3">File description: </dt>
|
||||
<dd class="col-sm-8">{{ file.file_description }}</dd>
|
||||
|
||||
<dt class="col-sm-3">Storage UUID: </dt>
|
||||
<dd class="col-sm-8">dsf-{{ file.file_uuid }}</dd>
|
||||
|
||||
<dt class="col-sm-3">Storage ID: </dt>
|
||||
<dd class="col-sm-8">dsf-{{ file.file_id }}</dd>
|
||||
|
||||
<dt class="col-sm-3">Tags: </dt>
|
||||
<dd class="col-sm-8">{% for tag in file.file_tags.split(',') %} <div class="badge badge-light">{{ tag }}</div> {% endfor %}</dd>
|
||||
|
||||
<dt class="col-sm-3">SHA256: </dt>
|
||||
<dd class="col-sm-8">{{ file.file_sha256 }}</dd>
|
||||
|
||||
<dt class="col-sm-3">Size (bytes): </dt>
|
||||
<dd class="col-sm-8">{{ file.file_size }}</dd>
|
||||
|
||||
<dt class="col-sm-3">Is evidence: </dt>
|
||||
<dd class="col-sm-8">{{ file.file_is_evidence }}</dd>
|
||||
|
||||
<dt class="col-sm-3">Is IOC: </dt>
|
||||
<dd class="col-sm-8">{{ file.file_is_ioc }}</dd>
|
||||
|
||||
<dt class="col-sm-3">Is password protected: </dt>
|
||||
<dd class="col-sm-8">{% if file.file_password %} True {% else %} False {% endif %}</dd>
|
||||
|
||||
<dt class="col-sm-3">Password: </dt>
|
||||
<dd class="col-sm-8">
|
||||
<div class="row">
|
||||
<input class="form_control ml-3" style="border:none;" type="password" value="{{ file.file_password }}" id="ds_file_password" disabled>
|
||||
<div class="file_show_password" id="toggle_file_password"><i class="fa-solid fa-eye"></i></div>
|
||||
</div>
|
||||
</dd>
|
||||
|
||||
<dt class="col-sm-3 mt-4">Modification history: </dt>
|
||||
<dd class="mt-4">
|
||||
<ul>
|
||||
{% if file.modification_history %}
|
||||
{% for mod in file.modification_history %}
|
||||
<li>{{ mod|format_datetime('%Y-%m-%d %H:%M') }} - {{ file.modification_history[mod].action }} by {{ file.modification_history[mod].user }} </li>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$('#toggle_file_password').on('click', function (e) {
|
||||
const type = $('#ds_file_password').attr('type') === 'password' ? 'text' : 'password';
|
||||
$('#ds_file_password').attr('type', type);
|
||||
$('#toggle_file_password > i').attr('class', type === 'password' ? 'fa-solid fa-eye' : 'fa-solid fa-eye-slash');
|
||||
});
|
||||
</script>
|
@@ -0,0 +1,32 @@
|
||||
<div class="modal-xl modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title mt-1 mr-4">Datastore filtering help</h4>
|
||||
<button type="button" class="float-right btn bg-transparent" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true"><i class="fa fa-times"></i></span></button>
|
||||
</div>
|
||||
<div class="modal-body mb-2">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<p>Files can be filtered thanks to simple queries. The query schema is : <code>target_element:search_value AND target_element2:search_value2</code>.<br/>
|
||||
There is no <code>OR</code> condition and searching without target does not work.
|
||||
<p>The following target elements can be used to filter :</p>
|
||||
<ul>
|
||||
<li><code>name</code>: Name of the file</li>
|
||||
<li><code>id</code>: ID of the file</li>
|
||||
<li><code>uuid</code>: UUID of the file</li>
|
||||
<li><code>storage_name</code>: Name of the file on the FS</li>
|
||||
<li><code>tag</code>: Tag of the file</li>
|
||||
<li><code>description</code>: Description of the file</li>
|
||||
<li><code>is_ioc</code> : Set to any value to filter files which are IOCs</li>
|
||||
<li><code>is_evidence</code>: Set to any value to filter files which are evidences</li>
|
||||
<li><code>has_password</code>: Set to any value to filter files which have passwords</li>
|
||||
<li><code>sha256</code>: SHA256 to filter files with</li>
|
||||
</ul>
|
||||
Example of filter :
|
||||
<code>name: .exe AND is_ioc: true</code>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
Reference in New Issue
Block a user