{% extends "base/base_layout.html" %} {% load static %} {% block sidebar_option %} sidebar-mini {% endblock %} {% block extra_css %} {% endblock %} {% block sidebar %} {% endblock %} {% block content %}

APP SCORES

{% if app_type not in 'Dylib,A' %}

{% if average_cvss %} Average CVSS {{ average_cvss }}
{% endif %} Security Score {{ appsec.security_score }}/100
{% endif %} {% if trackers.detected_trackers > 0 %} Trackers Detection {{ trackers.detected_trackers }}/{{ trackers.total_trackers }}
{% else %} Trackers Detection {{ trackers.detected_trackers }}/{{ trackers.total_trackers }}
{% endif %} {% if virus_total and virus_total.items|length > 9 %} {% if virus_total.positives > 0 %} VirusTotal Detection {{ virus_total.positives }}/{{ virus_total.total }}
{% else %} VirusTotal Detection {{ virus_total.positives }}/{{ virus_total.total }}
{% endif %} {% endif %}

{% if app_type not in 'Dylib,A' %}

MobSF Scorecard

{% endif %}

FILE INFORMATION

File Name {{ file_name }}
Size {{ size }}
MD5 {{ md5 }}
SHA1 {{ sha1 }}
SHA256 {{ sha256 }}
{% if app_type not in 'Dylib,A' %}

APP INFORMATION

App Name {{ app_name }}
App Type {{ app_type }}
Identifier {{ bundle_id }}
SDK Name {{ sdk_name }}
Version {{ app_version }} Build {{ build }} Platform Version {{ platform }} Min OS Version {{ min_os_version }}
Supported Platforms {% for pl in bundle_supported_platforms %} {{pl}}, {% endfor %}
{% endif %}

BINARY INFORMATION

Arch {{ binary_info.arch }}
Sub Arch {{ binary_info.subarch }}
Bit {{ binary_info.bit }} Endian {{ binary_info.endian }}
{% if app_type not in 'Dylib,A' %} {% if not appstore_details.error %}

APP STORE INFORMATION

Title {{ appstore_details.title }}
Score {{ appstore_details.score}} Features {% for fea in appstore_details.features %} {{ fea }}, {% endfor %} Price {{ appstore_details.price }} Category {% for cat in appstore_details.category %} {{ cat }}, {% endfor %} App Store URL {{ appstore_details.app_id }}
Developer {{appstore_details.developer}}, Developer ID {{appstore_details.developer_id}}
Developer Website {{appstore_details.developer_website }}
Developer URL {{appstore_details.developer_url}}
Supported Devices {% for dev in appstore_details.supported_devices %} {{ dev }}, {% endfor %}
Description
{{ appstore_details.description }}
{% endif %} {% endif %}

DECOMPILED ASSETS

{% if app_type not in 'Dylib,A' %} View Info.plist {% endif %} {% if app_type not in 'Dylib,A' %} View Class Dump {% endif %} Download {% if app_type in 'Dylib' %}DYLIB{% elif app_type in 'A' %}A{% else %}IPA{% endif %}

{% if app_type not in 'Dylib,A' %}

CUSTOM URL SCHEMES

{% if bundle_url_types|length > 0 %}

{% for scheme in bundle_url_types %} {% endfor %}
URL NAME SCHEMES
{{scheme | key:"CFBundleURLName" }} {% if scheme|key:"CFBundleTypeRole" %}
{{scheme | key:"CFBundleTypeRole" }} {% endif %}
{% if scheme|key:"CFBundleURLSchemes" %} {% for ul in scheme.CFBundleURLSchemes %} {{ul}}
{% endfor %} {% endif %}
{% else %}

No URL Schemes found.

{% endif %}

APPLICATION PERMISSIONS

{% if permissions %}

{% for perm, desc in permissions.items %} {% endfor %}
PERMISSIONS STATUS INFO REASON IN MANIFEST
{{ perm }} {% if desc.status == 'dangerous' %} dangerous {% else %} normal {% endif %} {{ desc.info}} {{ desc.description }}
{% else %}

No Permissions required.

{% endif %}

APP TRANSPORT SECURITY (ATS)

{% if ats_analysis and 'ats_summary' in ats_analysis and ats_analysis.ats_summary|length > 0 %}
HIGH
{{ ats_analysis.ats_summary.high }}
WARNING
{{ ats_analysis.ats_summary.warning }}
INFO
{{ ats_analysis.ats_summary.info }}
SECURE
{{ ats_analysis.ats_summary.secure }}
{% endif %} {% if ats_analysis and 'ats_findings' in ats_analysis %} {% for findings in ats_analysis.ats_findings %} {% endfor %} {% endif %}
NO ISSUE SEVERITY DESCRIPTION
{{ forloop.counter }} {{findings.issue}} {% if findings.severity == "high" %} high {% elif findings.severity == "secure" %} secure {% elif findings.severity == "warning" %} warning {% elif findings.severity == "info" %} info {% endif %} {{findings.description}}
{% endif %}

{% if app_type not in 'Dylib,A' %}IPA {% endif %}BINARY CODE ANALYSIS

{% if binary_analysis and 'summary' in binary_analysis and binary_analysis.summary|length > 0 %}
HIGH
{{ binary_analysis.summary.high }}
WARNING
{{ binary_analysis.summary.warning }}
INFO
{{ binary_analysis.summary.info }}
SECURE
{{ binary_analysis.summary.secure }}
SUPPRESSED
{{ binary_analysis.summary.suppressed }}
{% endif %} {% if binary_analysis and 'findings' in binary_analysis %} {% for issue, details in binary_analysis.findings.items %} {% endfor %} {% endif %}
NO ISSUE SEVERITY STANDARDS DESCRIPTION OPTIONS
{{ forloop.counter }} {{ issue }} {% if details|key:"severity" == 'info' %} info {% elif details|key:"severity" == 'good' %} secure {% elif details|key:"severity" == 'high' %} high {% elif details|key:"severity" == 'warning' %} warning {% endif %} {% if average_cvss %} CVSS V2: {{ details|key:"cvss" }} {% if details|key:"cvss" > 6 %} (high) {% elif details|key:"cvss" == 0 %} (info) {% elif details|key:"cvss" >= 4 %} (medium) {% elif details|key:"cvss" < 4 %} (low) {% endif %}
{% endif %} {% if details|key:"cwe" %} CWE: {{ details|key:"cwe" }}{% endif %} {% if details|key:"owasp-mobile" %}
OWASP Top 10: {{ details|key:"owasp-mobile" }}{% endif %} {% if details|key:"masvs" %}
OWASP MASVS: {{ details|key:"masvs" }}{% endif %}
{{ details|key:"detailed_desc" }}
{% if app_type not in 'Dylib,A' %}

IPA BINARY ANALYSIS

{% if not macho_analysis %} Binary Analysis Failed. {% else %} {% endif %}
PROTECTION STATUS SEVERITY DESCRIPTION
NX {{macho_analysis.nx.has_nx}} {{macho_analysis.nx.severity}} {{macho_analysis.nx.description}}
PIE {{macho_analysis.pie.has_pie}} {{macho_analysis.pie.severity}} {{macho_analysis.pie.description}}
STACK CANARY {{macho_analysis.stack_canary.has_canary}} {{macho_analysis.stack_canary.severity}} {{macho_analysis.stack_canary.description}}
ARC {{macho_analysis.arc.has_arc}} {{macho_analysis.arc.severity}} {{macho_analysis.arc.description}}
RPATH {{macho_analysis.rpath.has_rpath}} {{macho_analysis.rpath.severity}} {{macho_analysis.rpath.description}}
CODE SIGNATURE {{macho_analysis.code_signature.has_code_signature}} {{macho_analysis.code_signature.severity}} {{macho_analysis.code_signature.description}}
ENCRYPTED {{macho_analysis.encrypted.is_encrypted}} {{macho_analysis.encrypted.severity}} {{macho_analysis.encrypted.description}}
SYMBOLS STRIPPED {{macho_analysis.symbol.is_stripped}} {{macho_analysis.symbol.severity}} {{macho_analysis.symbol.description}}
{% endif %} {% if app_type not in 'A' %}

DYNAMIC LIBRARY & FRAMEWORK BINARY ANALYSIS

{% if app_type not in 'Dylib' %} {% endif %} {% if not dylib_analysis and not framework_analysis %} No Dylibs/Frameworks found. {% endif %} {% for dy in dylib_analysis %} {% if app_type not in 'Dylib' %} {% endif %} {% endfor %} {% for frm in framework_analysis %} {% endfor %}
NO DYLIB/FRAMEWORKNX STACK CANARY ARC RPATH CODE SIGNATURE ENCRYPTED SYMBOLS STRIPPED
{{ forloop.counter }} {{dy.name | relative_path}}
Analyze
{{dy.nx.has_nx}}
{{dy.nx.severity}}
{{dy.nx.description}}
{{dy.stack_canary.has_canary}}
{{dy.stack_canary.severity}}
{{dy.stack_canary.description}}
{{dy.arc.has_arc}}
{{dy.arc.severity}}
{{dy.arc.description}}
{{dy.rpath.has_rpath}}
{{dy.rpath.severity}}
{{dy.rpath.description}}
{{dy.code_signature.has_code_signature}}
{{dy.code_signature.severity}}
{{dy.code_signature.description}}
{{dy.encrypted.is_encrypted}}
{{dy.encrypted.severity}}
{{dy.encrypted.description}}
{{dy.symbol.is_stripped}}
{{dy.symbol.severity}}
{{dy.symbol.description}}
{{ forloop.counter }} {{frm.name | relative_path}}
Analyze
{{frm.nx.has_nx}}
{{frm.nx.severity}}
{{frm.nx.description}}
{{frm.stack_canary.has_canary}}
{{frm.stack_canary.severity}}
{{frm.stack_canary.description}}
{{frm.arc.has_arc}}
{{frm.arc.severity}}
{{frm.arc.description}}
{{frm.rpath.has_rpath}}
{{frm.rpath.severity}}
{{frm.rpath.description}}
{{frm.code_signature.has_code_signature}}
{{frm.code_signature.severity}}
{{frm.code_signature.description}}
{{frm.encrypted.is_encrypted}}
{{frm.encrypted.severity}}
{{frm.encrypted.description}}
{{frm.symbol.is_stripped}}
{{frm.symbol.severity}}
{{frm.symbol.description}}
{% endif %} {% if app_type in 'A' %}

STATIC LIBRARY BINARY ANALYSIS

{% if binary_info.arch == 'MachO' %} {% if not dylib_analysis %} No Static Objects found. {% endif %} {% for dy in dylib_analysis %} {% endfor %}
NO STATIC OBJECT NX STACK CANARY ARC RPATH SYMBOLS STRIPPED
{{ forloop.counter }} {{dy.name}} {{dy.nx.has_nx}}
{{dy.nx.severity}}
{{dy.nx.description}}
{{dy.stack_canary.has_canary}}
{{dy.stack_canary.severity}}
{{dy.stack_canary.description}}
{{dy.arc.has_arc}}
{{dy.arc.severity}}
{{dy.arc.description}}
{{dy.rpath.has_rpath}}
{{dy.rpath.severity}}
{{dy.rpath.description}}
{{dy.symbol.is_stripped}}
{{dy.symbol.severity}}
{{dy.symbol.description}}
{% else %} {% if not dylib_analysis %} No Static Objects found. {% endif %} {% for so in dylib_analysis %} {% endfor %}
NO SHARED OBJECT NX STACK CANARY RPATH RUNPATH FORTIFY SYMBOLS STRIPPED
{{ forloop.counter }} {{so.name}} {{so.nx.is_nx}}
{{so.nx.severity}}
{{so.nx.description}}
{{so.stack_canary.has_canary}}
{{so.stack_canary.severity}}
{{so.stack_canary.description}}
{{so.rpath.rpath}}
{{so.rpath.severity}}
{{so.rpath.description}}
{{so.runpath.runpath}}
{{so.runpath.severity}}
{{so.runpath.description}}
{{so.fortify.is_fortified}}
{{so.fortify.severity}}
{{so.fortify.description}}
{{so.symbol.is_stripped}}
{{so.symbol.severity}}
{{so.symbol.description}}
{% endif %}
{% endif %} {% if app_type not in 'Dylib,A' %}

FILE ANALYSIS

{% for item in file_analysis %} {% endfor %}
NO ISSUE FILES
{{ forloop.counter }} {{ item.issue }} {% if item.files|length < 4 %} {% for file in item.files %} {% if file.type %} {{ file.file_path }} {% else %} {{ file.file_path }} {% endif %}
{% endfor %} {% else %}
{% for file in item.files %} {% if file.type %} {{ file.file_path }} {% else %} {{ file.file_path }} {% endif %}
{% endfor %}
{% endif %}
{% endif %} {% if virus_total %}

VIRUSTOTAL SCAN

{% if virus_total.items|length < 9 %} {% comment %} Basic check to determine if the response is a msg or a result {% endcomment %}

  {{ virus_total.verbose_msg }}

{% else %}

   {{ virus_total.positives }} / {{ virus_total.total }}  AVs found this file Malicious!    Full Report

{% if virus_total.positives > 0 %} {% for av_name,av_result in virus_total.scans.items %} {% if av_result.detected == True %} {% endif %} {% endfor %}
AV DETECTION
{{ av_name }} {{ av_result.result }}
{% endif %}{% comment %} if results.positive > 0 {% endcomment %} {% endif %}{% comment %} if this is the upload msg or a result {% endcomment %}
{% endif %}

SERVER LOCATIONS

{% if domains %}


This app may communicate with the following OFAC sanctioned list of countries.

{% for domain, details in domains.items %} {% if details|key:"ofac" == True %} {% endif %} {% endfor %}
DOMAIN COUNTRY/REGION
{{domain}} IP: {{details|key:"geolocation"|key:"ip"}}
Country: {{details|key:"geolocation"|key:"country_long"}}
Region: {{details|key:"geolocation"|key:"region"}}
City: {{details|key:"geolocation"|key:"city"}}
{% endif %}

DOMAIN MALWARE CHECK

{% if domains %} {% for domain, details in domains.items %} {% endfor %}
DOMAIN STATUS GEOLOCATION
{{domain}} {% if details|key:"bad" == "yes" %} malware
                      URL: {{details|key:"domain_or_url"}}
                      IP: {{details|key:"ip"}}
                      Description: {{details|key:"desc"}}
                      
{% else %} ok
{% endif %}
{% if details|key:"geolocation" %} IP: {{details|key:"geolocation"|key:"ip"}}
Country: {{details|key:"geolocation"|key:"country_long"}}
Region: {{details|key:"geolocation"|key:"region"}}
City: {{details|key:"geolocation"|key:"city"}}
Latitude: {{details|key:"geolocation"|key:"latitude"}}
Longitude: {{details|key:"geolocation"|key:"longitude"}}
View: Google Map {% else %} No Geolocation information available. {% endif %}
{% endif %}

URLS

{% if urls %} {% for urldict in urls %} {% endfor %}
URL FILE
{% for u in urldict|key:"urls" %} {{ u }}
{% endfor %}
{{urldict|key:"path"}}
{% endif %}

FIREBASE DATABASE

{% if firebase_urls %} {% for item in firebase_urls %} {% endfor %}
FIREBASE URL DETAILS
{{ item.url }} {% if item.open %} high
Firebase Database is exposed publicly. {% else %} info
App talks to a Firebase database. {% endif %}
{% endif %}

EMAILS

{% if emails %} {% for email_dict in emails %} {% endfor %}
EMAIL FILE
{% for e in email_dict|key:"emails" %} {{ e }}
{% endfor %}
{{email_dict|key:"path"}}
{% endif %}

TRACKERS

{% if trackers %} {% for trk in trackers|key:"trackers" %} {% endfor %}
TRACKER NAME CATEGORIES URL
{{trk.name}} {{trk.categories}} {{trk.url}}
{% endif %}

POSSIBLE HARDCODED SECRETS

{% include 'base/list.html' with list=secrets type="secrets" limit=100 %}

STRINGS

{% include 'base/list.html' with list=strings type="strings" limit=100 %}
{% if app_type in 'Dylib,A' %}

SYMBOLS

{% include 'base/list.html' with list=file_analysis type="symbols" limit=100 %}
{% endif %} {% if app_type not in 'Dylib,A' %}

LIBRARIES

{% include 'base/list.html' with list=libraries type="libraries" limit=100 %}

FILES

{% include 'base/list.html' with list=files type="files" limit=200 %}
{% endif %}
{% if app_type not in 'Dylib,A' %} {% endif %} {% endblock %} {% block extra_scripts %} {% endblock %}