Skip to content

Commit b409151

Browse files
authored
Mitmdump updates (#2529)
* add mitmdump file download to network tab mitmdump api fixes * Remove unused import
1 parent d167d2b commit b409151

File tree

5 files changed

+45
-8
lines changed

5 files changed

+45
-8
lines changed

conf/default/api.conf.default

+6
Original file line numberDiff line numberDiff line change
@@ -361,3 +361,9 @@ rpm = 4/m
361361
# Allow to request stop of the analysis inside of the VM
362362
[user_stop]
363363
enabled = no
364+
365+
[mitmdump]
366+
enabled = no
367+
auth_only = no
368+
rps = 1/s
369+
rpm = 4/m

web/analysis/views.py

+6
Original file line numberDiff line numberDiff line change
@@ -758,6 +758,9 @@ def load_files(request, task_id, category):
758758
tls_path = os.path.join(ANALYSIS_BASE_PATH, "analyses", str(task_id), "tlsdump", "tlsdump.log")
759759
if _path_safe(tls_path):
760760
ajax_response["tlskeys_exists"] = _path_safe(tls_path)
761+
mitmdump_path = os.path.join(ANALYSIS_BASE_PATH, "analyses", str(task_id), "mitmdump", "dump.har")
762+
if _path_safe(mitmdump_path):
763+
ajax_response["mitmdump_exists"] = _path_safe(mitmdump_path)
761764
elif category == "behavior":
762765
ajax_response["detections2pid"] = data.get("detections2pid", {})
763766
return render(request, page, ajax_response)
@@ -1943,6 +1946,9 @@ def file(request, category, task_id, dlfile):
19431946
path = []
19441947
for dfile in os.listdir(buf):
19451948
path.append(os.path.join(buf, dfile))
1949+
elif category == "mitmdump":
1950+
path = os.path.join(CUCKOO_ROOT, "storage", "analyses", task_id, "mitmdump", "dump.har")
1951+
cd = "text/plain"
19461952
else:
19471953
return render(request, "error.html", {"error": "Category not defined"})
19481954

web/apiv2/views.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1643,7 +1643,7 @@ def tasks_evtx(request, task_id):
16431643
@csrf_exempt
16441644
@api_view(["GET"])
16451645
def tasks_mitmdump(request, task_id):
1646-
if not apiconf.taskmitmdump.get("enabled"):
1646+
if not apiconf.mitmdump.get("enabled"):
16471647
resp = {"error": True, "error_value": "Mitmdump HAR download API is disabled"}
16481648
return Response(resp)
16491649

web/templates/analysis/network/index.html

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@
33
<div class="alert alert-primary center">
44
<a class="btn btn-secondary btn-sm" href="{% url "file" "pcap" id network.pcap_sha256 %}"><span class="fas fa-download"></span> PCAP</a>
55
{% if pcapng.sha256 %}
6-
<a class="btn btn-secondary btn-sm" title="PCAP with embedded TLS keys for use in WireShark." href="{% url "file" "pcapng" id pcapng.sha256 %}"><span class="fas fa-download"></span> PCAP-NG</a>
6+
<a class="btn btn-secondary btn-sm" title="PCAP with embedded TLS keys for use in WireShark." href="{% url "file" "pcapng" id pcapng.sha256 %}"><span class="fas fa-download"></span> PCAP-NG</a>
77
{% endif %}
8-
<a class="btn btn-secondary btn-sm" href="{% url "file" "pcapzip" id network.pcap_sha256 %}"><span class="fas fa-file-archive"></span><span class="fas fa-download"></span> PCAP</a>
8+
<a class="btn btn-secondary btn-sm" href="{% url "file" "pcapzip" id network.pcap_sha256 %}"><span class="fas fa-file-archive"></span><span class="fas fa-download"></span> PCAP</a>
99
{% if tlskeys_exists %}
1010
<a class="btn btn-secondary btn-sm" href="{% url "file" "tlskeys" id network.pcap_sha256 %}"><span class="fas fa-download"></span> TLS keys</a>
1111
{% endif %}
12+
{% if mitmdump_exists %}
13+
<a class="btn btn-secondary btn-sm" href="{% url "file" "mitmdump" id 0 %}"><span class="fas fa-download"></span> Mitmdump </a>
14+
{% endif %}
1215
</div>
1316
{% endif %}
1417
<ul class="nav nav-tabs flex-column flex-sm-row" style="margin-bottom: 0;">

web/templates/apiv2/index.html

+27-5
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,19 @@ <h3 class="panel-title">API - <a href=https://capev2.readthedocs.io/en/latest/us
4242
</td>
4343
</tr>
4444
<tr>
45-
<td>VirusTotal download and analyze</td>
46-
{% if config.vtdl.enabled %}
45+
<td>Download from file service and analyze</td>
46+
{% if config.downloading_services.enabled %}
4747
<td><span class="badge badge-success">Yes</span></td>
4848
{% else %}
4949
<td><span class="badge badge-danger">No</span></td>
5050
{% endif %}
5151
<td>
5252
<ul>
53-
<li>RPS: {{ config.vtdl.rps }}</li>
54-
<li>RPM: {{ config.vtdl.rpm }}</li>
53+
<li>RPS: {{ config.downloading_services.rps }}</li>
54+
<li>RPM: {{ config.downloading_services.rpm }}</li>
5555
</ul>
5656
</td>
57-
<td>Download a file from VT for analysis. Return object will be JSON.</td>
57+
<td>Download a file from VT or MalwareBazaar or other service for analysis. Return object will be JSON.</td>
5858
<td><a class="accordion-toggle" data-toggle="collapse" href="#vtdl" aria-expanded="false" aria-controls="#vtdl">Example</a></td>
5959
</tr>
6060
<tr class="collapse" id="vtdl">
@@ -754,6 +754,28 @@ <h3 class="panel-title">API - <a href=https://capev2.readthedocs.io/en/latest/us
754754
<pre>curl {{ config.api.url }}/apiv2/tasks/[days]/</pre>
755755
</td>
756756
</tr>
757+
<tr>
758+
<td>Mitmdump HAR Download</td>
759+
{% if config.mitmdump.enabled %}
760+
<td><span class="badge badge-success">Yes</span></td>
761+
{% else %}
762+
<td><span class="badge badge-danger">No</span></td>
763+
{% endif %}
764+
<td>
765+
<ul>
766+
<li>RPS: {{ config.mitmdump.rps }}</li>
767+
<li>RPM: {{ config.mitmdump.rpm }}</li>
768+
</ul>
769+
</td>
770+
<td>Download the HAR file of mitmdump given a Task ID. Return will be a HAR file.</td>
771+
<td><a class="accordion-toggle" data-toggle="collapse" href="#mitmdump" aria-expanded="false" aria-controls="#mitmdump">Example</a>
772+
</td>
773+
</tr>
774+
<tr class="collapse" id="mitmdump">
775+
<td colspan="5">
776+
<pre>curl {{ config.api.url }}/apiv2/tasks/get/mitmdump/[task id]/</pre>
777+
</td>
778+
</tr>
757779
</tbody>
758780
</table>
759781
{% else %}

0 commit comments

Comments
 (0)