mirror of
https://github.com/MobSF/Mobile-Security-Framework-MobSF.git
synced 2026-10-12 02:06:59 +00:00
1231 lines
45 KiB
HTML
Executable File
1231 lines
45 KiB
HTML
Executable File
{% extends "base/base_layout.html" %}
|
|
{% load static %}
|
|
{% block sidebar_option %}
|
|
sidebar-mini
|
|
{% endblock %}
|
|
{% block extra_css %}
|
|
<!-- DataTables -->
|
|
<link rel="stylesheet" href="{% static "adminlte/plugins/datatables-bs4/dataTables.bootstrap4.min.css" %}">
|
|
<style type="text/css" media="print">
|
|
@page { size: landscape; }
|
|
@media print {
|
|
.btn, #scan_options {
|
|
display: none;
|
|
}
|
|
}
|
|
</style>
|
|
<style>
|
|
#app_icon{
|
|
width: 64px;
|
|
height: 64px;
|
|
}
|
|
</style>
|
|
{% endblock %}
|
|
{% block sidebar %}
|
|
<!-- Main Sidebar Container -->
|
|
<!-- Sidebar -->
|
|
<div class="sidebar">
|
|
<!-- Sidebar user panel (optional) -->
|
|
<div class="user-panel mt-3 pb-3 mb-3 d-flex">
|
|
<div class="info">
|
|
<a href="#" class="d-block">Static Analyzer</a>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Sidebar Menu -->
|
|
<nav class="mt-2">
|
|
<ul class="nav nav-pills nav-sidebar flex-column nav-child-indent" data-widget="treeview" role="menu" data-accordion="false">
|
|
|
|
<li class="nav-item">
|
|
<a href="#information" class="nav-link">
|
|
<i class="nav-icon fas fa-info-circle"></i>
|
|
<p>
|
|
Information
|
|
</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#scan_options" class="nav-link">
|
|
<i class="nav-icon fas fa-cog"></i>
|
|
<p>
|
|
Scan Options
|
|
</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#permissions" class="nav-link">
|
|
<i class="nav-icon fas fa-list"></i>
|
|
<p>
|
|
Permissions
|
|
</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#android_api" class="nav-link">
|
|
<i class="nav-icon fab fa-java"></i>
|
|
<p>
|
|
Android API
|
|
</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#browsable" class="nav-link">
|
|
<i class="nav-icon fas fa-clone"></i>
|
|
<p>
|
|
Browsable Activities
|
|
</p>
|
|
</a>
|
|
</li>
|
|
|
|
<li class="nav-item has-treeview">
|
|
<a href="#" class="nav-link">
|
|
<i class="nav-icon fas fa-shield-alt"></i>
|
|
<p>
|
|
Security Analysis
|
|
<i class="fas fa-angle-left right"></i>
|
|
</p>
|
|
</a>
|
|
<ul class="nav nav-treeview">
|
|
<li class="nav-item">
|
|
<a href="#manifest" class="nav-link">
|
|
<i class="fas fa-search nav-icon"></i>
|
|
<p>Manifest Analysis</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#code_analysis" class="nav-link">
|
|
<i class="fa fa-code nav-icon"></i>
|
|
<p>Code Analysis</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#file_analysis" class="nav-link">
|
|
<i class="fa fa-file nav-icon"></i>
|
|
<p>File Analysis</p>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item has-treeview">
|
|
<a href="#" class="nav-link">
|
|
<i class="nav-icon fa fa-bug"></i>
|
|
<p>
|
|
Malware Analysis
|
|
<i class="fas fa-angle-left right"></i>
|
|
</p>
|
|
</a>
|
|
<ul class="nav nav-treeview">
|
|
<li class="nav-item">
|
|
<a href="#malware_check" class="nav-link">
|
|
<i class="fab fa-searchengin nav-icon"></i>
|
|
<p>Domain Malware Check</p>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item has-treeview">
|
|
<a href="#" class="nav-link">
|
|
<i class="nav-icon fa fa-plus"></i>
|
|
<p>
|
|
Reconnaissance
|
|
<i class="fas fa-angle-left right"></i>
|
|
</p>
|
|
</a>
|
|
<ul class="nav nav-treeview">
|
|
<li class="nav-item">
|
|
<a href="#urls" class="nav-link">
|
|
<i class="fas fa-globe nav-icon"></i>
|
|
<p>URLs</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#firebase" class="nav-link">
|
|
<i class="fas fa-database nav-icon"></i>
|
|
<p>Firebase DB</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#emails" class="nav-link">
|
|
<i class="fas fa-envelope nav-icon"></i>
|
|
<p>Emails</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#strings" class="nav-link">
|
|
<i class="fas fa-font nav-icon"></i>
|
|
<p>Strings</p>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item has-treeview">
|
|
<a href="#" class="nav-link">
|
|
<i class="nav-icon fas fa-th-large"></i>
|
|
<p>
|
|
Components
|
|
<i class="fas fa-angle-left right"></i>
|
|
</p>
|
|
</a>
|
|
<ul class="nav nav-treeview">
|
|
<li class="nav-item">
|
|
<a href="#activities" class="nav-link">
|
|
<i class="fa fa-language nav-icon"></i>
|
|
<p>Activities</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#services" class="nav-link">
|
|
<i class="fa fa-cogs nav-icon"></i>
|
|
<p>Services</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#receivers" class="nav-link">
|
|
<i class="fa fa-assistive-listening-systems nav-icon"></i>
|
|
<p>Receivers</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#providers" class="nav-link">
|
|
<i class="fa fa-database nav-icon"></i>
|
|
<p>Providers</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#libraries" class="nav-link">
|
|
<i class="fab fa-buffer nav-icon"></i>
|
|
<p>Libraries</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="#files" class="nav-link">
|
|
<i class="far fa-copy nav-icon"></i>
|
|
<p>Files</p>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="../PDF/?md5={{ md5 }}&type=ANDZIP" class="nav-link">
|
|
<i class="nav-icon fas fa-file-pdf"></i>
|
|
<p>
|
|
PDF Report
|
|
</p>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="javascript:window.print()" class="nav-link">
|
|
<i class="nav-icon fa fa-print"></i>
|
|
<p>
|
|
Print Report
|
|
</p>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
<!-- /.sidebar-menu -->
|
|
</div>
|
|
<!-- /.sidebar -->
|
|
{% endblock %}
|
|
{% block content %}
|
|
<!-- Content Wrapper. Contains page content -->
|
|
<div class="content-wrapper">
|
|
<!-- Content Header (Page header) -->
|
|
<div class="content-header">
|
|
<!--
|
|
<div class="container-fluid">
|
|
<div class="row mb-2">
|
|
<div id="mobsf_header" align="center">
|
|
</div>
|
|
</div>
|
|
</div>-->
|
|
</div>
|
|
<!-- /.content-header -->
|
|
|
|
|
|
<!-- Main content -->
|
|
<a id="information" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<h5 class="card-title"></h5>
|
|
<div class="row">
|
|
<div class="col-2">
|
|
<p><strong><i class="fas fa-check-double"></i> APP SCORES</strong></p>
|
|
<img id="app_icon" src="{% if icon_found %}/download/{{ md5 }}-icon.png{% else %}{% static 'img/no_icon.png' %}{% endif %}"/>
|
|
{% if icon_hidden %}
|
|
<strong>Hidden Icon!</strong>
|
|
{% endif %}
|
|
<br/>
|
|
<span class="badge bg-info">Average CVSS</span> <b>{{ average_cvss }} </b><br/>
|
|
<span class="badge bg-{% if security_score < 50 %}danger{% elif security_score == 100 %}success{% else %}warning{% endif %}">Security Score</span> <b>{{ security_score }}/100 </b><br/>
|
|
</div>
|
|
<div class="col-6">
|
|
<p><strong><i class="fas fa-box-open"></i> FILE INFORMATION </strong></p>
|
|
<span class="badge bg-primary">File Name</span>
|
|
{{ file_name }}<br/>
|
|
<span class="badge bg-primary">Size</span>
|
|
{{ size }}<br/>
|
|
<span class="badge bg-primary">MD5</span>
|
|
{{ md5 }}<br/>
|
|
<span class="badge bg-primary">SHA1</span>
|
|
{{ sha1 }}<br/>
|
|
<span class="badge bg-primary">SHA256</span>
|
|
{{ sha256 }}<br/>
|
|
</div>
|
|
<div class="col-4">
|
|
<p><strong><i class="fas fa-info"></i> APP INFORMATION </strong></p>
|
|
<span class="badge bg-primary">App Name</span>
|
|
{{ app_name }}<br/>
|
|
<span class="badge bg-primary">Package Name</span>
|
|
{{ package_name }}<br/>
|
|
<span class="badge bg-primary">Main Activity</span>
|
|
{{ main_activity }}<br/>
|
|
<span class="badge bg-primary">Target SDK</span>
|
|
{{ target_sdk }}
|
|
<span class="badge bg-primary">Min SDK</span>
|
|
{{ min_sdk }}
|
|
<span class="badge bg-primary">Max SDK</span>
|
|
{{ max_sdk }}<br/>
|
|
<span class="badge bg-primary">Android Version Name</span>
|
|
{{ version_name }}
|
|
<span class="badge bg-primary">Android Version Code</span>
|
|
{{ version_code }}
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Play Store -->
|
|
{% if not playstore_details.error %}
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fab fa-google-play"></i> PLAYSTORE INFORMATION</strong>
|
|
</p>
|
|
<span class="badge bg-info">Title</span>
|
|
{{ playstore_details.title }} <br/>
|
|
<span class="badge bg-info">Score</span>
|
|
{{ playstore_details.score}}
|
|
<span class="badge bg-info">Installs</span>
|
|
{{ playstore_details.installs }}
|
|
<span class="badge bg-info">Price</span>
|
|
{{ playstore_details.price }}
|
|
<span class="badge bg-info">Android Version Support</span>
|
|
{{ playstore_details.androidVersionText }}
|
|
<span class="badge bg-info">Category</span>
|
|
{{ playstore_details.genre }}
|
|
<span class="badge bg-info">Play Store URL</span>
|
|
<a target="_blank" href="{{ playstore_details.url }}"> {{ package_name }} </a>
|
|
<br/>
|
|
<span class="badge bg-info">Developer Details</span>
|
|
{{playstore_details.developer}},
|
|
{{playstore_details.developerId}},
|
|
{{playstore_details.developerAddress}},
|
|
{{playstore_details.developerWebsite}},
|
|
{{playstore_details.developerEmail}},
|
|
<br/>
|
|
<span class="badge bg-info">Release Date</span>
|
|
{{ playstore_details.released }}
|
|
<span class="badge bg-info">Privacy Policy</span>
|
|
<a target="_blank" href="{{ playstore_details.privacyPolicy }}">Privacy link</a>
|
|
<br/>
|
|
<span class="badge bg-info">Description</span>
|
|
<pre id="pre-wrap">{{ playstore_details.description }}</pre>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
{% endif %}
|
|
<!-- /.col -->
|
|
<!-- row and container-->
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Boxes -->
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<h5 class="card-title"></h5>
|
|
<div class="row">
|
|
<!-- Boxes columns -->
|
|
<div class="col-12 col-sm-6 col-md-3">
|
|
<!-- small box -->
|
|
<div class="small-box bg-info">
|
|
<div class="inner">
|
|
<h3>{{ activities | length }}</h3>
|
|
|
|
<p>ACTIVITIES</p>
|
|
</div>
|
|
<div class="icon">
|
|
<i class="fa fa-language"></i>
|
|
</div>
|
|
<a href="#activities" class="small-box-footer">View <i class="fas fa-arrow-circle-down"></i></a>
|
|
</div>
|
|
</div>
|
|
<!-- ./col -->
|
|
<div class="col-12 col-sm-6 col-md-3">
|
|
<!-- small box -->
|
|
<div class="small-box bg-success">
|
|
<div class="inner">
|
|
<h3>{{ services | length }}</h3>
|
|
|
|
<p>SERVICES</p>
|
|
</div>
|
|
<div class="icon">
|
|
<i class="fa fa-cogs"></i>
|
|
</div>
|
|
<a href="#services" class="small-box-footer">View <i class="fas fa-arrow-circle-down"></i></a>
|
|
</div>
|
|
</div>
|
|
<!-- ./col -->
|
|
<div class="col-12 col-sm-6 col-md-3">
|
|
<!-- small box -->
|
|
<div class="small-box bg-warning">
|
|
<div class="inner">
|
|
<h3>{{ receivers | length }}</h3>
|
|
|
|
<p>RECEIVERS</p>
|
|
</div>
|
|
<div class="icon">
|
|
<i class="fa fa-assistive-listening-systems"></i>
|
|
</div>
|
|
<a href="#receivers" class="small-box-footer">View <i class="fas fa-arrow-circle-down"></i></a>
|
|
</div>
|
|
</div>
|
|
<!-- ./col -->
|
|
<div class="col-12 col-sm-6 col-md-3">
|
|
<!-- small box -->
|
|
<div class="small-box bg-danger">
|
|
<div class="inner">
|
|
<h3>{{ providers | length }}</h3>
|
|
|
|
<p>PROVIDERS</p>
|
|
</div>
|
|
<div class="icon">
|
|
<i class="fa fa-database"></i>
|
|
</div>
|
|
<a href="#providers" class="small-box-footer">View <i class="fas fa-arrow-circle-down"></i></a>
|
|
</div>
|
|
<!-- /.row -->
|
|
</div><!-- /.container-fluid -->
|
|
<div class="col-12 col-sm-6 col-md-3">
|
|
<div class="info-box">
|
|
<span class="info-box-icon bg-info elevation-1"><i class="fas fa-language"></i></span>
|
|
|
|
<div class="info-box-content">
|
|
<span class="info-box-text">Exported <br/>Activities</span>
|
|
<span class="info-box-number">
|
|
{{ exported_count.exported_activities }}
|
|
</span>
|
|
</div>
|
|
<!-- /.info-box-content -->
|
|
</div>
|
|
<!-- /.info-box -->
|
|
</div>
|
|
<!-- /.col -->
|
|
<div class="col-12 col-sm-6 col-md-3">
|
|
<div class="info-box mb-3">
|
|
<span class="info-box-icon bg-success elevation-1"><i class="fas fa-cogs"></i></span>
|
|
|
|
<div class="info-box-content">
|
|
<span class="info-box-text">Exported <br/>Services</span>
|
|
<span class="info-box-number">{{ exported_count.exported_services }}</span>
|
|
</div>
|
|
<!-- /.info-box-content -->
|
|
</div>
|
|
<!-- /.info-box -->
|
|
</div>
|
|
<!-- /.col -->
|
|
|
|
<!-- fix for small devices only -->
|
|
<div class="clearfix hidden-md-up"></div>
|
|
|
|
<div class="col-12 col-sm-6 col-md-3">
|
|
<div class="info-box mb-3">
|
|
<span class="info-box-icon bg-warning elevation-1"><i class="fas fa-assistive-listening-systems"></i></span>
|
|
|
|
<div class="info-box-content">
|
|
<span class="info-box-text">Exported <br/>Receivers</span>
|
|
<span class="info-box-number">{{ exported_count.exported_receivers}}</span>
|
|
</div>
|
|
<!-- /.info-box-content -->
|
|
</div>
|
|
<!-- /.info-box -->
|
|
</div>
|
|
<!-- /.col -->
|
|
<div class="col-12 col-sm-6 col-md-3">
|
|
<div class="info-box mb-3">
|
|
<span class="info-box-icon bg-danger elevation-1"><i class="fas fa-database"></i></span>
|
|
|
|
<div class="info-box-content">
|
|
<span class="info-box-text">Exported <br/>Providers</span>
|
|
<span class="info-box-number">{{ exported_count.exported_providers }}</span>
|
|
</div>
|
|
<!-- /.info-box-content -->
|
|
</div>
|
|
<!-- /.info-box -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- =========================end information==================================== -->
|
|
|
|
|
|
<a id="scan_options" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fas fa-cog"></i> SCAN OPTIONS</strong>
|
|
</p>
|
|
<p align="center">
|
|
<a href="../StaticAnalyzer/?checksum={{ md5 }}&name={{ file_name }}&type=zip&rescan=1" class="btn btn-info" role="button"><i class="fa fa-sync"></i> Rescan</a>
|
|
<a target="_blank" href="../ManifestView/?md5={{ md5 }}&type={{ app_type }}&bin=0" role="button" class="btn btn-primary"><i class="fa fa-eye"></i> View AndroidManifest.xml</a>
|
|
</p>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end scan options================================== -->
|
|
<a id="permissions" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fa fa-list"></i> APPLICATION PERMISSIONS</strong>
|
|
<p>
|
|
<div class="table-responsive">
|
|
<table id="table_permissions" class="table table-bordered table-hover table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>PERMISSION</th>
|
|
<th>STATUS</th>
|
|
<th>INFO </th>
|
|
<th>DESCRIPTION</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for perm,desc in permissions.items %}
|
|
<tr>
|
|
<td>{{ perm }}</td>
|
|
<td>
|
|
{% if desc.status == 'dangerous' %}
|
|
<span class="badge bg-danger">dangerous</span>
|
|
{% elif desc.status == 'normal' %}
|
|
<span class="badge bg-info">normal</span>
|
|
{% elif desc.status == 'signatureOrSystem' %}
|
|
<span class="badge bg-warning">SignatureOrSystem</span>
|
|
{% elif desc.status == 'signature' %}
|
|
<span class="badge bg-success">signature</span>
|
|
{% endif %}
|
|
</td>
|
|
<td>{{ desc.info }}</td>
|
|
<td>{{ desc.description }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end permission ================================== -->
|
|
<a id="android_api" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fab fa-java"></i> ANDROID JAVA API</strong>
|
|
</p>
|
|
<div class="table-responsive">
|
|
<table id="table_so" class="table table-bordered table-hover table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>API</th>
|
|
<th>FILES</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for desc, details in android_api.items %}
|
|
<tr>
|
|
<td>
|
|
{{ desc }}
|
|
</td>
|
|
<td>
|
|
{% for path in details|key:"path" %}
|
|
<a href="../ViewSource/?file={{ path }}&md5={{ md5 }}&type={{app_type}}"> {{ path }}</a>
|
|
<br/>
|
|
{% endfor %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end api analysis ================================== -->
|
|
<a id="browsable" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fas fa-clone"></i> BROWSABLE ACTIVITIES</strong>
|
|
</p>
|
|
<div class="table-responsive">
|
|
<table id="table_browsable" class="table table-bordered table-hover table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>ACTIVITY</th>
|
|
<th>INTENT</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for activity,intent_details in browsable_activities.items %}
|
|
<tr>
|
|
<td>{{activity}}</td>
|
|
<td>
|
|
{% if intent_details|key:"schemes" %}
|
|
<strong>Schemes</strong>:
|
|
{% for scheme in intent_details|key:"schemes" %}
|
|
{{scheme}},
|
|
{% endfor %}
|
|
<br/>
|
|
{% endif %}
|
|
{% if intent_details|key:"hosts" %}
|
|
<strong>Hosts:</strong> {% for host in intent_details|key:"hosts" %}
|
|
{{host}},
|
|
{% endfor %}
|
|
<br/>
|
|
{% endif %}
|
|
{% if intent_details|key:"ports" %}
|
|
<strong>Ports:</strong> {% for port in intent_details|key:"ports" %}
|
|
{{port}},
|
|
{% endfor %}
|
|
<br/>
|
|
{% endif %}
|
|
{% if intent_details|key:"mime_types" %}
|
|
<strong>Mime Types:</strong> {% for mime in intent_details|key:"mime_types" %}
|
|
{{mime}},
|
|
{% endfor %}
|
|
<br/>
|
|
{% endif %}
|
|
{% if intent_details|key:"paths" %}
|
|
<strong>Paths:</strong> {% for path in intent_details|key:"paths" %}
|
|
{{path}},
|
|
{% endfor %}
|
|
<br/>
|
|
{% endif %}
|
|
{% if intent_details|key:"path_prefixs" %}
|
|
<strong>Path Prefixes:</strong> {% for prefix in intent_details|key:"path_prefixs" %}
|
|
{{prefix}},
|
|
{% endfor %}
|
|
<br/>
|
|
{% endif %}
|
|
{% if intent_details|key:"path_patterns" %}
|
|
<strong>Path Patterns:</strong> {% for pattern in intent_details|key:"path_patterns" %}
|
|
{{pattern}},
|
|
{% endfor %}
|
|
<br/>
|
|
{% endif %}
|
|
{% endfor %}
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end browsable activities ================================== -->
|
|
<a id="manifest" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fas fa-search"></i> MANIFIEST ANALYSIS</strong>
|
|
</p>
|
|
<div class="table-responsive">
|
|
<table id="table_manifest" class="table table-bordered table-hover table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>ISSUE</th>
|
|
<th>SEVERITY</th>
|
|
<th>DESCRIPTION</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
{% for item in manifest_analysis %}
|
|
<tr>
|
|
<td>
|
|
{{item|key:"title" | safe}}
|
|
</td>
|
|
<td>
|
|
|
|
{% if item|key:"stat" == "high" %}
|
|
<span class="badge bg-danger">high</span>
|
|
{% elif item|key:"stat" == "info" %}
|
|
<span class="badge bg-info">info</span>
|
|
{% elif item|key:"stat" == "medium" %}
|
|
<span class="badge bg-warning">medium</span>
|
|
{% endif %}
|
|
|
|
</td>
|
|
<td>
|
|
{{item|key:"desc"}}
|
|
</td>
|
|
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end manifest analysis ================================== -->
|
|
<a id="code_analysis" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fas fa-code"></i> CODE ANALYSIS</strong>
|
|
</p>
|
|
<div class="table-responsive">
|
|
<table id="table_code" class="table table-bordered table-hover table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>ISSUE</th>
|
|
<th>SEVERITY</th>
|
|
<th>CVSS</th>
|
|
<th>CWE</th>
|
|
<th>OWASP</th>
|
|
<th>FILES</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for issue, details in code_analysis.items %}
|
|
<tr>
|
|
<td>
|
|
{{ issue }}
|
|
</td>
|
|
<td>
|
|
{% if details|key:"level" == "high" %}
|
|
<span class="badge bg-danger">high</span>
|
|
{% elif details|key:"level" == "good" %}
|
|
<span class="badge bg-success">secure</span>
|
|
{% elif details|key:"level" == "warning" %}
|
|
<span class="badge bg-warning">warning</span>
|
|
{% elif details|key:"level" == "info" %}
|
|
<span class="badge bg-info">info</span>
|
|
{% endif %}
|
|
</td>
|
|
<td><b>{{ details|key:"cvss" }}</b></td>
|
|
<td><b>{{ details|key:"cwe" }}</b></td>
|
|
<td><b>{{ details|key:"owasp" }}</b></td>
|
|
<td>
|
|
{% for path in details|key:"path" %}
|
|
<a href="../ViewSource/?file={{ path }}&md5={{ md5 }}&type={{app_type}}"> {{ path }}</a>
|
|
<br/>
|
|
{% endfor %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end code analysis ================================== -->
|
|
<a id="file_analysis" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fas fa-code"></i> FILE ANALYSIS</strong>
|
|
</p>
|
|
<div class="table-responsive">
|
|
<table id="table_file" class="table table-bordered table-hover table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>ISSUE</th>
|
|
<th>FILES</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for item in file_analysis %}
|
|
<tr>
|
|
<td>
|
|
{{ item|key:"findings" }}
|
|
</td>
|
|
<td>
|
|
{% for cert_f in item|key:"files" %}
|
|
{{ cert_f }}<br />
|
|
{% endfor %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end file analysis ================================== -->
|
|
<a id="malware_check" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fab fa-searchengin"></i> DOMAIN MALWARE CHECK</strong>
|
|
</p>
|
|
<div class="table-responsive">
|
|
{% if domains %}
|
|
<table id="table_malware" class="table table-bordered table-hover table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>DOMAIN</th>
|
|
<th>STATUS</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for domain, details in domains.items %}
|
|
<tr><td>{{domain}}</td><td>
|
|
|
|
{% if details|key:"bad" == "yes" %}
|
|
<span class="badge bg-danger">malware</span><br/>
|
|
<pre>
|
|
<strong>URL: </strong>{{details|key:"domain_or_url"}}
|
|
<strong>IP: </strong><span class="badge bg-danger">{{details|key:"ip"}}</span>
|
|
<strong>Description: </strong>{{details|key:"desc"}}
|
|
</pre>
|
|
{% else %}
|
|
<span class="badge bg-success">good</span><br/>
|
|
{% endif %}
|
|
</td></tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end domain malware check ================================== -->
|
|
<a id="urls" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fas fa-globe"></i> URLS</strong>
|
|
</p>
|
|
<div class="table-responsive">
|
|
{% if urls %}
|
|
<table id="table_urls" class="table table-bordered table-hover table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>URL</th>
|
|
<th>FILE</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for urldict in urls %}
|
|
<tr>
|
|
<td>
|
|
{% for u in urldict|key:"urls" %}
|
|
{{ u }} <br/>
|
|
{% endfor %}
|
|
</td>
|
|
|
|
<td>
|
|
<a href="../ViewSource/?file={{urldict|key:"path"}}&md5={{ md5}}&type={{app_type}}">{{urldict|key:"path"}}</a>
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end urls ================================== -->
|
|
<a id="firebase" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fas fa-database"></i> FIREBASE DATABASE</strong>
|
|
</p>
|
|
<div class="table-responsive">
|
|
{% if firebase_urls %}
|
|
<table id="table_firebase" class="table table-bordered table-hover table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>FIREBASE URL</th>
|
|
<th>DETAILS</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
{% for item in firebase_urls %}
|
|
<tr>
|
|
<td>
|
|
{{ item.url }}
|
|
</td>
|
|
<td>
|
|
{% if item.open %}
|
|
<span class="badge bg-danger">insecure</span><br/>Firebase Database is exposed publicly.
|
|
{% else %}
|
|
<span class="badge bg-primary">Info</span><br/>App talks to a Firebase database.
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end firebase db ================================== -->
|
|
<a id="emails" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fas fa-envelope"></i> EMAILS</strong>
|
|
</p>
|
|
<div class="table-responsive">
|
|
{% if emails %}
|
|
<table id="table_emails" class="table table-bordered table-hover table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>EMAIL</th>
|
|
<th>FILE</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for email_dict in emails %}
|
|
<tr>
|
|
<td>
|
|
{% for e in email_dict|key:"emails" %}
|
|
{{ e }} <br/>
|
|
{% endfor %}
|
|
</td>
|
|
<td>
|
|
<a href="../ViewSource/?file={{email_dict|key:"path"}}&md5={{ md5}}&type={{app_type}}">{{email_dict|key:"path"}}</a>
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end emails ================================== -->
|
|
<a id="strings" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fas fa-font"></i> STRINGS</strong>
|
|
</p>
|
|
<div class="list-group">
|
|
<p>
|
|
{% for val in strings %}
|
|
{{ val }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end strings ================================== -->
|
|
<a id="activities" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fa fa-language"></i> ACTIVITIES</strong>
|
|
</p>
|
|
<div class="list-group">
|
|
<p>
|
|
{% for act in activities %}
|
|
{{ act}} <br/>
|
|
{% endfor %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end activities ================================== -->
|
|
<a id="services" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fa fa-cogs"></i> SERVICES</strong>
|
|
</p>
|
|
<div class="list-group">
|
|
<p>
|
|
{% for srv in services %}
|
|
{{ srv}} <br/>
|
|
{% endfor %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end services ================================== -->
|
|
<a id="receivers" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fa fa-assistive-listening-systems"></i> RECEIVERS</strong>
|
|
</p>
|
|
<div class="list-group">
|
|
<p>
|
|
{% for rcv in receivers %}
|
|
{{ rcv}} <br/>
|
|
{% endfor %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
|
|
</section>
|
|
<!-- ===========================end receivers ================================== -->
|
|
<a id="providers" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fa fa-database"></i> PROVIDERS</strong>
|
|
</p>
|
|
<div class="list-group">
|
|
<p>
|
|
{% for prv in providers %}
|
|
{{ prv }} <br/>
|
|
{% endfor %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end providers ================================== -->
|
|
<a id="libraries" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="fab fa-buffer"></i> LIBRARIES</strong>
|
|
</p>
|
|
<div class="list-group">
|
|
<p>
|
|
{% for lib in libraries %}
|
|
{{ lib }} <br/>
|
|
{% endfor %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end libraries ================================== -->
|
|
<a id="files" class="anchor"></a>
|
|
<section class="content">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<p>
|
|
<strong><i class="far fa-copy"></i> FILES</strong>
|
|
</p>
|
|
<div class="list-group">
|
|
<p>
|
|
{% for file in files %}
|
|
{{ file}} <br/>
|
|
{% endfor %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card -->
|
|
</div>
|
|
<!-- end row -->
|
|
</div>
|
|
</section>
|
|
<!-- ===========================end files ================================== -->
|
|
<!-- end of contents -->
|
|
</div>
|
|
{% endblock %}
|
|
<!--end new UI-->
|
|
{% block extra_scripts %}
|
|
<!-- DataTables -->
|
|
<script src="{% static "adminlte/plugins/datatables/jquery.dataTables.min.js" %} "></script>
|
|
<script src="{% static "adminlte/plugins/datatables-bs4/dataTables.bootstrap4.min.js" %}"></script>
|
|
<script>
|
|
$(function () {
|
|
// Datatable
|
|
$('table').DataTable({
|
|
"paging": true,
|
|
"lengthChange": false,
|
|
"searching": true,
|
|
"ordering": true,
|
|
"info": true,
|
|
"autoWidth": true,
|
|
"responsive": true,
|
|
});
|
|
});
|
|
// Navbar Active
|
|
$(".nav-link").on("click", function() {
|
|
$(".nav-link").removeClass("active");
|
|
$(this).addClass("active");
|
|
});
|
|
</script>
|
|
{% endblock %}
|
|
|
|
|