Skip to content

Commit dac442f

Browse files
committed
Migrate to pill-style tabs on the report page
1 parent ba1bbb2 commit dac442f

2 files changed

Lines changed: 191 additions & 42 deletions

File tree

web/templates/analysis/network/index.html

Lines changed: 91 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,100 @@
1414
{% endif %}
1515
</div>
1616
{% endif %}
17-
<ul class="nav nav-tabs flex-column flex-sm-row" style="margin-bottom: 0;">
18-
<li class="nav-item"><a class="nav-link active" href="#network_hosts_tab" data-bs-toggle="tab">Hosts ({{ network.hosts|length }})</a></li>
19-
<li class="nav-item"><a class="nav-link" href="#network_dns_tab" data-bs-toggle="tab">DNS ({{ network.domains|length }})</a></li>
20-
{% if network.tcp %}<li class="nav-item"><a class="nav-link" href="#network_tcp_tab" data-bs-toggle="tab">TCP ({{ network.tcp|length }})</a></li>{% endif %}
21-
{% if network.udp %}<li class="nav-item"><a class="nav-link" href="#network_udp_tab" data-bs-toggle="tab">UDP ({{ network.udp|length }})</a></li>{% endif %}
17+
<ul class="nav nav-pills nav-fill bg-dark rounded shadow-sm p-1 mb-3" id="networkTabs" role="tablist">
18+
<li class="nav-item">
19+
<a class="nav-link active" id="network_hosts-tab" href="#network_hosts_tab" data-bs-toggle="tab" role="tab" aria-controls="network_hosts_tab" aria-selected="true">
20+
<i class="fas fa-server me-2"></i>Hosts ({{ network.hosts|length }})
21+
</a>
22+
</li>
23+
<li class="nav-item">
24+
<a class="nav-link" id="network_dns-tab" href="#network_dns_tab" data-bs-toggle="tab" role="tab" aria-controls="network_dns_tab" aria-selected="false">
25+
<i class="fas fa-globe me-2"></i>DNS ({{ network.domains|length }})
26+
</a>
27+
</li>
28+
{% if network.tcp %}
29+
<li class="nav-item">
30+
<a class="nav-link" id="network_tcp-tab" href="#network_tcp_tab" data-bs-toggle="tab" role="tab" aria-controls="network_tcp_tab" aria-selected="false">
31+
<i class="fas fa-exchange-alt me-2"></i>TCP ({{ network.tcp|length }})
32+
</a>
33+
</li>
34+
{% endif %}
35+
{% if network.udp %}
36+
<li class="nav-item">
37+
<a class="nav-link" id="network_udp-tab" href="#network_udp_tab" data-bs-toggle="tab" role="tab" aria-controls="network_udp_tab" aria-selected="false">
38+
<i class="fas fa-broadcast-tower me-2"></i>UDP ({{ network.udp|length }})
39+
</a>
40+
</li>
41+
{% endif %}
2242
{% if network.http_ex or network.https_ex or network.http %}
23-
<li class="nav-item"><a class="nav-link" href="#network_http_tab" data-bs-toggle="tab">
24-
{% if network.http_ex or network.https_ex %}
25-
HTTP(S) <span class="button-badge">({{ network.http_ex|add:network.https_ex|length }})</span>
26-
{% else %}
27-
HTTP <span class="button-badge">({{ network.http|length }})</span>
28-
{% endif %}
29-
</a></li>
43+
<li class="nav-item">
44+
<a class="nav-link" id="network_http-tab" href="#network_http_tab" data-bs-toggle="tab" role="tab" aria-controls="network_http_tab" aria-selected="false">
45+
<i class="fas fa-globe-americas me-2"></i>
46+
{% if network.http_ex or network.https_ex %}
47+
HTTP(S) ({{ network.http_ex|add:network.https_ex|length }})
48+
{% else %}
49+
HTTP ({{ network.http|length }})
50+
{% endif %}
51+
</a>
52+
</li>
53+
{% endif %}
54+
{% if network.smtp_ex or network.smtp %}
55+
<li class="nav-item">
56+
<a class="nav-link" id="network_smtp-tab" href="#network_smtp_tab" data-bs-toggle="tab" role="tab" aria-controls="network_smtp_tab" aria-selected="false">
57+
<i class="fas fa-envelope me-2"></i>SMTP ({{ network.smtp|length }})
58+
</a>
59+
</li>
60+
{% endif %}
61+
{% if network.irc %}
62+
<li class="nav-item">
63+
<a class="nav-link" id="network_irc-tab" href="#network_irc_tab" data-bs-toggle="tab" role="tab" aria-controls="network_irc_tab" aria-selected="false">
64+
<i class="fas fa-comments me-2"></i>IRC ({{ network.irc|length }})
65+
</a>
66+
</li>
67+
{% endif %}
68+
{% if network.icmp %}
69+
<li class="nav-item">
70+
<a class="nav-link" id="network_icmp-tab" href="#network_icmp_tab" data-bs-toggle="tab" role="tab" aria-controls="network_icmp_tab" aria-selected="false">
71+
<i class="fas fa-heartbeat me-2"></i>ICMP ({{ network.icmp|length }})
72+
</a>
73+
</li>
74+
{% endif %}
75+
{% if config.cif and cif %}
76+
<li class="nav-item">
77+
<a class="nav-link" id="network_cif-tab" href="#network_cif_tab" data-bs-toggle="tab" role="tab" aria-controls="network_cif_tab" aria-selected="false">
78+
<i class="fas fa-shield-alt me-2"></i>CIF Results ({{ cif|length }})
79+
</a>
80+
</li>
3081
{% endif %}
31-
{% if network.smtp_ex or network.smtp %}<li class="nav-item"><a class="nav-link" href="#network_smtp_tab" data-bs-toggle="tab">SMTP ({{ network.smtp|length }})</a></li>{% endif %}
32-
{% if network.irc %}<li class="nav-item"><a class="nav-link" href="#network_irc_tab" data-bs-toggle="tab">IRC ({{ network.irc|length }})</a></li>{% endif %}
33-
{% if network.icmp %}<li class="nav-item"><a class="nav-link" href="#network_icmp_tab" data-bs-toggle="tab">ICMP ({{ network.icmp|length }})</a></li>{% endif %}
34-
{% if config.cif and cif %}<li class="nav-item"><a class="nav-link" href="#network_cif_tab" data-bs-toggle="tab">CIF Results ({{ cif|length }})</a></li>{% endif %}
3582
{% if config.suricata %}
36-
{% if suricata.alerts %}<li class="nav-item"><a class="nav-link" href="#network_suri_alerts_tab" data-bs-toggle="tab">Suricata Alerts ({{ suricata.alerts|length }})</a></li>{% endif %}
37-
{% if suricata.tls %}<li class="nav-item"><a class="nav-link" href="#network_suri_tls_tab" data-bs-toggle="tab">Suricata TLS ({{ suricata.tls|length }})</a></li>{% endif %}
38-
{% if suricata.http %}<li class="nav-item"><a class="nav-link" href="#network_suri_http_tab" data-bs-toggle="tab">Suricata HTTP ({{ suricata.http|length }})</a></li>{% endif %}
39-
{% if suricata.files %}<li class="nav-item"><a class="nav-link" href="#network_suri_files" data-bs-toggle="tab">Suricata Files ({{ suricata.files|length }})</a></li>{% endif %}
83+
{% if suricata.alerts %}
84+
<li class="nav-item">
85+
<a class="nav-link" id="network_suri_alerts-tab" href="#network_suri_alerts_tab" data-bs-toggle="tab" role="tab" aria-controls="network_suri_alerts_tab" aria-selected="false">
86+
<i class="fas fa-exclamation-triangle me-2"></i>Suricata Alerts ({{ suricata.alerts|length }})
87+
</a>
88+
</li>
89+
{% endif %}
90+
{% if suricata.tls %}
91+
<li class="nav-item">
92+
<a class="nav-link" id="network_suri_tls-tab" href="#network_suri_tls_tab" data-bs-toggle="tab" role="tab" aria-controls="network_suri_tls_tab" aria-selected="false">
93+
<i class="fas fa-lock me-2"></i>Suricata TLS ({{ suricata.tls|length }})
94+
</a>
95+
</li>
96+
{% endif %}
97+
{% if suricata.http %}
98+
<li class="nav-item">
99+
<a class="nav-link" id="network_suri_http-tab" href="#network_suri_http_tab" data-bs-toggle="tab" role="tab" aria-controls="network_suri_http_tab" aria-selected="false">
100+
<i class="fas fa-code me-2"></i>Suricata HTTP ({{ suricata.http|length }})
101+
</a>
102+
</li>
103+
{% endif %}
104+
{% if suricata.files %}
105+
<li class="nav-item">
106+
<a class="nav-link" id="network_suri_files-tab" href="#network_suri_files" data-bs-toggle="tab" role="tab" aria-controls="network_suri_files" aria-selected="false">
107+
<i class="fas fa-file-alt me-2"></i>Suricata Files ({{ suricata.files|length }})
108+
</a>
109+
</li>
110+
{% endif %}
40111
{% endif %}
41112
</ul>
42113
<div class="tab-content">

web/templates/analysis/report.html

Lines changed: 100 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -70,51 +70,129 @@
7070
</div>
7171
{% endif %}
7272

73-
<ul class="nav nav-tabs">
74-
<li class="nav-item"><a class="nav-link active" href="#overview" data-bs-toggle="tab">Quick Overview</a></li>
73+
<ul class="nav nav-pills nav-fill bg-dark rounded shadow-sm p-1 mb-3" id="reportTabs" role="tablist">
74+
<li class="nav-item">
75+
<a class="nav-link active" id="overview-tab" href="#overview" data-bs-toggle="tab" role="tab" aria-controls="overview" aria-selected="true">
76+
<i class="fas fa-eye me-2"></i>Quick Overview
77+
</a>
78+
</li>
7579
{% if analysis.info.machine.platform == "linux" %}
76-
<li class="nav-item"><a class="nav-link" href="#strace" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/strace/" data-bs-toggle="tab">Behavioral Analysis</a></li>
77-
<li class="nav-item"><a class="nav-link" href="#tracee" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/tracee/" data-bs-toggle="tab">Detailed Behaviour (Tracee)</a></li>
80+
<li class="nav-item">
81+
<a class="nav-link" id="strace-tab" href="#strace" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/strace/" role="tab" aria-controls="strace" aria-selected="false">
82+
<i class="fas fa-project-diagram me-2"></i>Behavioral Analysis
83+
</a>
84+
</li>
85+
<li class="nav-item">
86+
<a class="nav-link" id="tracee-tab" href="#tracee" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/tracee/" role="tab" aria-controls="tracee" aria-selected="false">
87+
<i class="fas fa-search me-2"></i>Detailed Behaviour (Tracee)
88+
</a>
89+
</li>
7890
{% elif analysis.info.category != "pcap" and analysis.info.category != "static" %}
79-
<li class="nav-item"><a class="nav-link" href="#behavior" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/behavior/" data-bs-toggle="tab">Behavioral Analysis</a></li>
91+
<li class="nav-item">
92+
<a class="nav-link" id="behavior-tab" href="#behavior" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/behavior/" role="tab" aria-controls="behavior" aria-selected="false">
93+
<i class="fas fa-project-diagram me-2"></i>Behavioral Analysis
94+
</a>
95+
</li>
8096
{% endif %}
8197
{% if analysis.info.category != "static" %}
82-
<li class="nav-item"><a class="nav-link" href="#network" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/network/" data-bs-toggle="tab">Network Analysis</a></li>
98+
<li class="nav-item">
99+
<a class="nav-link" id="network-tab" href="#network" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/network/" role="tab" aria-controls="network" aria-selected="false">
100+
<i class="fas fa-network-wired me-2"></i>Network Analysis
101+
</a>
102+
</li>
83103
{% endif %}
84104
{% if analysis.info.category != "pcap" and analysis.info.category != "static" %}
85105
{% if analysis.dropped %}
86-
<li class="nav-item"><a class="nav-link" href="#dropped" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/dropped/" data-bs-toggle="tab">Dropped Files ({{analysis.dropped}})</a></li>
106+
<li class="nav-item">
107+
<a class="nav-link" id="dropped-tab" href="#dropped" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/dropped/" role="tab" aria-controls="dropped" aria-selected="false">
108+
<i class="fas fa-file-download me-2"></i>Dropped Files ({{analysis.dropped}})
109+
</a>
110+
</li>
87111
{% endif %}
88112
{% if analysis.procmemory %}
89-
<li class="nav-item"><a class="nav-link" href="#procmemory" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/procmemory/" data-bs-toggle="tab" >Process Memory ({{analysis.procmemory}})</a></li>
113+
<li class="nav-item">
114+
<a class="nav-link" id="procmemory-tab" href="#procmemory" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/procmemory/" role="tab" aria-controls="procmemory" aria-selected="false">
115+
<i class="fas fa-memory me-2"></i>Process Memory ({{analysis.procmemory}})
116+
</a>
117+
</li>
90118
{% endif %}
91119
{% if analysis.memory %}
92-
<li class="nav-item"><a class="nav-link" href="#memory" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/memory/" data-bs-toggle="tab">Memory Analysis</a></li>
120+
<li class="nav-item">
121+
<a class="nav-link" id="memory-tab" href="#memory" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/memory/" role="tab" aria-controls="memory" aria-selected="false">
122+
<i class="fas fa-microchip me-2"></i>Memory Analysis
123+
</a>
124+
</li>
93125
{% endif %}
94126
{% if analysis.procdump %}
95-
<li class="nav-item"><a class="nav-link" href="#procdump" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/procdump/">Process Dumps ({{analysis.procdump}})</a></li>
127+
<li class="nav-item">
128+
<a class="nav-link" id="procdump-tab" href="#procdump" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/procdump/" role="tab" aria-controls="procdump" aria-selected="false">
129+
<i class="fas fa-database me-2"></i>Process Dumps ({{analysis.procdump}})
130+
</a>
131+
</li>
96132
{% endif %}
97133
{% if analysis.CAPE %}
98-
<li class="nav-item"><a class="nav-link" href="#CAPE" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/CAPE/" data-bs-toggle="tab">Payloads ({{analysis.CAPE}})</a></li>
134+
<li class="nav-item">
135+
<a class="nav-link" id="CAPE-tab" href="#CAPE" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/CAPE/" role="tab" aria-controls="CAPE" aria-selected="false">
136+
<i class="fas fa-bug me-2"></i>Payloads ({{analysis.CAPE}})
137+
</a>
138+
</li>
99139
{% endif%}
100140
{% if analysis.debugger_logs %}
101-
<li class="nav-item"><a class="nav-link" href="#debugger" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/debugger/" data-bs-toggle="tab">Debugger</a></li>
141+
<li class="nav-item">
142+
<a class="nav-link" id="debugger-tab" href="#debugger" data-bs-toggle="tabajax" data-url="/analysis/load_files/{{analysis.info.id}}/debugger/" role="tab" aria-controls="debugger" aria-selected="false">
143+
<i class="fas fa-wrench me-2"></i>Debugger
144+
</a>
145+
</li>
102146
{% endif %}
103147
{% endif %}
104148
{% if settings.COMMENTS %}
105-
{% if analysis.info.comments|length %}
106-
<li class="nav-item"><a class="nav-link" href="#comments" data-bs-toggle="tab">Comments ({{analysis.info.comments|length}})</a></li>
107-
{% else %}
108-
<li class="nav-item"><a class="nav-link" href="#comments" data-bs-toggle="tab">Comments</a></li>
109-
{% endif %}
149+
<li class="nav-item">
150+
{% if analysis.info.comments|length %}
151+
<a class="nav-link" id="comments-tab" href="#comments" data-bs-toggle="tab" role="tab" aria-controls="comments" aria-selected="false">
152+
<i class="fas fa-comments me-2"></i>Comments ({{analysis.info.comments|length}})
153+
</a>
154+
{% else %}
155+
<a class="nav-link" id="comments-tab" href="#comments" data-bs-toggle="tab" role="tab" aria-controls="comments" aria-selected="false">
156+
<i class="fas fa-comments me-2"></i>Comments
157+
</a>
158+
{% endif %}
159+
</li>
110160
{% endif %}
111161
{% if analysis.misp %}
112-
<li class="nav-item"><a class="nav-link" href="#misp" data-bs-toggle="tab">MISP</a></li>
162+
<li class="nav-item">
163+
<a class="nav-link" id="misp-tab" href="#misp" data-bs-toggle="tab" role="tab" aria-controls="misp" aria-selected="false">
164+
<i class="fas fa-share-alt me-2"></i>MISP
165+
</a>
166+
</li>
167+
{% endif %}
168+
{% if analysis.backscatter %}
169+
<li class="nav-item">
170+
<a class="nav-link" id="backscatter-tab" href="#backscatter" data-bs-toggle="tab" role="tab" aria-controls="backscatter" aria-selected="false">
171+
<i class="fas fa-radiation me-2"></i>Backscatter
172+
</a>
173+
</li>
174+
{% endif %}
175+
{% if analysis.classification %}
176+
<li class="nav-item">
177+
<a class="nav-link" id="classification-tab" href="#classification" data-bs-toggle="tab" role="tab" aria-controls="classification" aria-selected="false">
178+
<i class="fas fa-tags me-2"></i>Classification
179+
</a>
180+
</li>
181+
{% endif %}
182+
{% if analysis.info.category == "file" and analysis.target %}
183+
<li class="nav-item">
184+
<a class="nav-link" href="{% url "compare_left" analysis.info.id %}">
185+
<i class="fas fa-balance-scale me-2"></i>Compare this analysis to...
186+
</a>
187+
</li>
188+
{% endif %}
189+
{% if settings.ADMIN or user.is_staff %}
190+
<li class="nav-item">
191+
<a class="nav-link" id="admin-tab" href="#admin" data-bs-toggle="tab" role="tab" aria-controls="admin" aria-selected="false">
192+
<i class="fas fa-user-shield me-2"></i>Admin
193+
</a>
194+
</li>
113195
{% endif %}
114-
{% if analysis.backscatter %}<li class="nav-item"><a class="nav-link" href="#backscatter" data-bs-toggle="tab">Backscatter</a></li>{% endif %}
115-
{% if analysis.classification%}<li class="nav-item"><a class="nav-link" href="#classification" data-bs-toggle="tab">Classification</a> </li>{% endif %}
116-
{% if analysis.info.category == "file" and analysis.target %}<li class="nav-item"><a class="nav-link" href="{% url "compare_left" analysis.info.id %}">Compare this analysis to...</a></li>{% endif %}
117-
{% if settings.ADMIN or user.is_staff %}<li class="nav-item"><a class="nav-link" href="#admin" data-bs-toggle="tab">Admin</a></li>{% endif %}
118196
</ul>
119197
<div class="tab-content">
120198
<div class="tab-pane fade show active" id="overview">

0 commit comments

Comments
 (0)