0/61

Threat

com.tracfone.wifiutility

Wi-Fi Utility

Analyzed on 2022-09-02T13:33:01.665571

13

permissions

2

activities

3

services

4

receivers

9

domains

File sums

MD5 4f9386671d74059dddb4e2ec1c88be67
SHA1 ee1e1de16db5f8510a137ab9cfb9977a626c4175
SHA256 5d9c5f443297e9444adcb7b31210c5d34e196781ff0a79633d335de5d01111d5
Size 2.38MB

APKiD

Information computed with APKiD.

/tmp/tmpbdc__eec!classes.dex
anti_vm
  • Build.FINGERPRINT check
  • Build.MODEL check
  • Build.MANUFACTURER check
  • Build.PRODUCT check
  • possible Build.SERIAL check
  • SIM operator check
  • network operator name check
  • subscriber ID check
manipulator
  • dexmerge
compiler
  • dx (possible dexmerge)

SSdeep

Information computed with ssdeep.

APK file 49152:8nuG/EuJkNNtnBdo67WY/aiJ8wLNogI3167dx8O4F3o9i9CdhRTTJ:ZuJWN1syZ/a2KgI3167dx8ni9wCdfTJ
Manifest 192:B/yPgSD4qXR0ybh3Y1zMST+MFTur5QE7eAuxJtTMasAceT+mTvTwTItnMaQJjYc/:…
classes.dex 49152:ykGGZQ7SNVvZCAwmKF6yhzsj/dUOqlUukFTkE8sEJn:yHJOvZCA6bizKk

Dexofuzzy

Information computed with Dexofuzzy.

APK file 3072:ZzFBGvH7i0hAZGSyZQ4caFIHH9FFopRKU6p76pw6636pB66pgtjYK9tcmn665wYm…
classes.dex 3072:ZzFBGvH7i0hAZGSyZQ4caFIHH9FFopRKU6p76pw6636pB66pgtjYK9tcmn665wYm…

APK details

Information computed with AndroGuard and Pithus.

Package com.tracfone.wifiutility
App name Wi-Fi Utility
Version name A2.11.28
Version code 364
SDK 21 - 28
UAID b7908b0348b1f47dd78749193108225af42dfa3e
Signature Signature V1
Frosting Not frosted

Certificate details

Information computed with AndroGuard.

MD5 c07b911cbc07dfdc05d88d5456fcd988
SHA1 3e7b1a4c921486c642a20020c30b976363c5b72e
SHA256 e751e163e91e041382839556d31302db7058c44d9df1b5b27fc43bd8f0ee2bba
Issuer Common Name: TracFone Wireless, Organizational Unit: Engineering, Organization: TracFone Wireless Inc., Locality: Miami, State/Province: Florida, Country: US
Not before 2015-10-15T15:53:28+00:00
Not after 2043-03-02T15:53:28+00:00

Manifest analysis

Information computed with MobSF.

High Service (com.bandwidthx.library.BxWorkService) is Protected by a permission, but the protection level of the permission should be checked.
Permission: android.permission.BIND_JOB_SERVICE [android:exported=true]
A Service is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.
High Broadcast Receiver (com.bandwidthx.library.BxActionsReceiver) is not Protected.An intent-filter exists.
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. The presence of intent-filter indicates that the Broadcast Receiver is explicitly exported.
High Broadcast Receiver (GCMIntentReceiver) is Protected by a permission, but the protection level of the permission should be checked.
Permission: com.google.android.c2dm.permission.SEND [android:exported=true]
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.

Main Activity

Information computed with AndroGuard.

com.tracfone.wifiutility.BxSettings

Activities

Information computed with AndroGuard.

com.tracfone.wifiutility.BxSettings
com.bandwidthx.library.BxPermissions

Receivers

Information computed with AndroGuard.

com.tracfone.wifiutility.BxReceiver
com.bandwidthx.library.BxReceiver
com.bandwidthx.library.BxActionsReceiver
com.tracfone.wifiutility.GCMIntentReceiver

Services

Information computed with AndroGuard.

com.bandwidthx.library.BxService
com.bandwidthx.library.BxWorkService
com.tracfone.wifiutility.GCMIntentService

Sample timeline

Certificate valid not before Oct. 15, 2015, 3:53 p.m.
Oldest file found in APK Jan. 9, 2016, 7:20 p.m.
Latest file found in APK Dec. 13, 2018, 10:07 a.m.
First submission on VT June 13, 2019, 7:26 a.m.
Last submission on VT May 18, 2021, 11:42 a.m.
Upload on Pithus Sept. 2, 2022, 1:33 p.m.
Certificate valid not after March 2, 2043, 3:53 p.m.

NIAP analysis

Information computed with MobSF.

FCS_RBG_EXT.1.1 The application invoke platform-provided DRBG functionality for its cryptographic operations.
Random Bit Generation Services
FCS_STO_EXT.1.1 The application does not store any credentials to non-volatile memory.
Storage of Credentials
FCS_CKM_EXT.1.1 The application generate no asymmetric cryptographic keys.
Cryptographic Key Generation Services
FDP_DEC_EXT.1.1 The application has access to ['location', 'network connectivity'].
Access to Platform Resources
FDP_DEC_EXT.1.2 The application has access to no sensitive information repositories.
Access to Platform Resources
FDP_NET_EXT.1.1 The application has user/application initiated network communications.
Network Communications
FDP_DAR_EXT.1.1 The application implement functionality to encrypt sensitive data in non-volatile memory.
Encryption Of Sensitive Application Data
FMT_MEC_EXT.1.1 The application invoke the mechanisms recommended by the platform vendor for storing and setting configuration options.
Supported Configuration Mechanism
FTP_DIT_EXT.1.1 The application does encrypt some transmitted data with HTTPS/TLS/SSH between itself and another trusted IT product.
Protection of Data in Transit
FCS_RBG_EXT.2.1
FCS_RBG_EXT.2.2
The application perform all deterministic random bit generation (DRBG) services in accordance with NIST Special Publication 800-90A using Hash_DRBG. The deterministic RBG is seeded by an entropy source that accumulates entropy from a platform-based DRBG and a software-based noise source, with a minimum of 256 bits of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
Random Bit Generation from Application
FCS_COP.1.1(1) The application perform encryption/decryption in accordance with a specified cryptographic algorithm AES-CBC (as defined in NIST SP 800-38A) mode or AES-GCM (as defined in NIST SP 800-38D) and cryptographic key sizes 256-bit/128-bit.
Cryptographic Operation - Encryption/Decryption
FCS_COP.1.1(2) The application perform cryptographic hashing services not in accordance with FCS_COP.1.1(2) and uses the cryptographic algorithm RC2/RC4/MD4/MD5.
Cryptographic Operation - Hashing
FCS_HTTPS_EXT.1.1 The application implement the HTTPS protocol that complies with RFC 2818.
HTTPS Protocol
FCS_HTTPS_EXT.1.2 The application implement HTTPS using TLS.
HTTPS Protocol
FCS_HTTPS_EXT.1.3 The application notify the user and not establish the connection or request application authorization to establish the connection if the peer certificate is deemed invalid.
HTTPS Protocol
FIA_X509_EXT.1.1 The application invoked platform-provided functionality to validate certificates in accordance with the following rules: ['The certificate path must terminate with a trusted CA certificate'].
X.509 Certificate Validation
FIA_X509_EXT.2.1 The application use X.509v3 certificates as defined by RFC 5280 to support authentication for HTTPS , TLS.
X.509 Certificate Authentication

Code analysis

Information computed with MobSF.

High
CVSS:5.5
App can read/write to External Storage. Any App can read data written to External Storage.
MASVS: MSTG-STORAGE-2
CWE-276 Incorrect Default Permissions
M2: Insecure Data Storage
Files:
 com/bandwidthx/library/ft.java
Medium
CVSS:5.9
App uses SQLite Database and execute raw SQL query. Untrusted user input in raw SQL queries can cause SQL Injection. Also sensitive information should be encrypted and written to the database.
CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
M7: Client Code Quality
Files:
 com/bandwidthx/library/fw.java
com/bandwidthx/library/gr.java
com/bandwidthx/library/ga.java
com/bandwidthx/library/gd.java
com/bandwidthx/library/go.java
com/bandwidthx/library/gl.java
com/bandwidthx/library/gg.java
com/bandwidthx/library/bd.java
com/bandwidthx/library/fz.java
com/bandwidthx/library/gh.java
com/bandwidthx/library/gk.java
com/bandwidthx/library/gb.java
com/bandwidthx/library/gq.java
com/bandwidthx/library/gn.java
com/bandwidthx/library/ge.java
com/bandwidthx/library/fv.java
com/bandwidthx/library/gs.java
com/bandwidthx/library/gp.java
com/bandwidthx/library/fy.java
com/bandwidthx/library/gf.java
com/bandwidthx/library/gm.java
com/bandwidthx/library/gj.java
com/bandwidthx/library/gi.java
com/bandwidthx/library/fx.java
com/bandwidthx/library/gc.java
Medium
CVSS:4.3
IP Address disclosure
MASVS: MSTG-CODE-2
CWE-200 Information Exposure
Files:
 com/bandwidthx/library/ha.java
Low
CVSS:7.5
The App logs information. Sensitive information should never be logged.
MASVS: MSTG-STORAGE-3
CWE-532 Insertion of Sensitive Information into Log File
Files:
 com/bandwidthx/library/dp.java
com/tracfone/wifiutility/GCMIntentService.java
com/tracfone/wifiutility/BxSettings.java
com/tracfone/wifiutility/GCMIntentReceiver.java
com/bandwidthx/library/BxLibrary.java
High
CVSS:5.9
Calling Cipher.getInstance("AES") will return AES ECB mode by default. ECB mode is known to be weak as it results in the same ciphertext for identical blocks of plaintext.
MASVS: MSTG-CRYPTO-2
CWE-327 Use of a Broken or Risky Cryptographic Algorithm
M5: Insufficient Cryptography
Files:
 com/bandwidthx/library/bg.java
Medium
CVSS:5.9
SHA-1 is a weak hash known to have hash collisions.
MASVS: MSTG-CRYPTO-4
CWE-327 Use of a Broken or Risky Cryptographic Algorithm
M5: Insufficient Cryptography
Files:
 com/bandwidthx/library/bg.java
Info
CVSS:0
This App uses SSL certificate pinning to detect or prevent MITM attacks in secure communication channel.
MASVS: MSTG-NETWORK-4
Files:
 com/bandwidthx/library/hb.java
com/bandwidthx/library/fp.java
Medium
CVSS:7.4
Files may contain hardcoded sensitive information like usernames, passwords, keys etc.
MASVS: MSTG-STORAGE-14
CWE-312 Cleartext Storage of Sensitive Information
M9: Reverse Engineering
Files:
 com/bandwidthx/library/aw.java
Pygal United States: 500

Map computed by Pithus.

Domains analysis

Information computed with MobSF.

US maps.google.com 142.250.186.142
US wifiautomator.com 72.52.178.23
US www.bandwidthx.com 34.71.190.73
www.spotwifi.com
cdn.bandwidthx.net
US www.google.com 142.250.185.228
US clients3.google.com 142.250.186.174
static.spotwifi.com
- api.bandwidthx.net 127.127.127.127

URL analysis

Information computed with MobSF.

http://maps.google.com/maps/api/geocode/json?address=
Defined in com/bandwidthx/library/cy.java
http://static.spotwifi.com/_assets/captivelanding/redir.php
http://cdn.bandwidthx.net/captivecheck/success.html
www.google.com
www.spotwifi.com
Defined in com/bandwidthx/library/am.java
http://static.spotwifi.com/_assets/captivelanding/redir.php
http://cdn.bandwidthx.net/captivecheck/success.html
www.google.com
www.spotwifi.com
Defined in com/bandwidthx/library/am.java
http://static.spotwifi.com/_assets/speedtest/500k.bmp
Defined in com/bandwidthx/library/gu.java
http://cdn.bandwidthx.net/captivecheck/success.html
Defined in com/bandwidthx/library/fs.java
http://clients3.google.com/generate_204
Defined in com/bandwidthx/library/gw.java
https://api.bandwidthx.net/bxlibrary.php
Defined in com/bandwidthx/library/BxLibrary.java
https://api.bandwidthx.net/bxlibrary.php
Defined in com/bandwidthx/library/fr.java
http://wifiautomator.com/wifiUtility_tracfone/
Defined in Android String Resource

Permissions analysis

Information computed with MobSF.

High android.permission.GET_TASKS retrieve running applications
Allows application to retrieve information about currently and recently running tasks. May allow malicious applications to discover private information about other applications.
High android.permission.ACCESS_FINE_LOCATION fine (GPS) location
Access fine location sources, such as the Global Positioning System on the phone, where available. Malicious applications can use this to determine where you are and may consume additional battery power.
High android.permission.ACCESS_COARSE_LOCATION coarse (network-based) location
Access coarse location sources, such as the mobile network database, to determine an approximate phone location, where available. Malicious applications can use this to determine approximately where you are.
High android.permission.READ_PHONE_STATE read phone state and identity
Allows the application to access the phone features of the device. An application with this permission can determine the phone number and serial number of this phone, whether a call is active, the number that call is connected to and so on.
High com.google.android.gms.permission.ACTIVITY_RECOGNITION allow application to recognize physical activity
Allows an application to recognize physical activity.
Low android.permission.WAKE_LOCK prevent phone from sleeping
Allows an application to prevent the phone from going to sleep.
Low android.permission.RECEIVE_BOOT_COMPLETED automatically start at boot
Allows an application to start itself as soon as the system has finished booting. This can make it take longer to start the phone and allow the application to slow down the overall phone by always running.
Low android.permission.INTERNET full Internet access
Allows an application to create network sockets.
Low android.permission.ACCESS_WIFI_STATE view Wi-Fi status
Allows an application to view the information about the status of Wi-Fi.
Low android.permission.CHANGE_WIFI_STATE change Wi-Fi status
Allows an application to connect to and disconnect from Wi-Fi access points and to make changes to configured Wi-Fi networks.
Low android.permission.ACCESS_NETWORK_STATE view network status
Allows an application to view the status of all networks.
Medium com.google.android.c2dm.permission.RECEIVE C2DM permissions
Permission for cloud to device messaging.
com.tracfone.wifiutility.permission.C2D_MESSAGE Unknown permission
Unknown permission from android reference

Threat analysis

Information computed with Quark-Engine.

Confidence:
100%
Query WiFi BSSID and scan results
Confidence:
100%
Query the current data network type
Confidence:
100%
Implicit intent(view a web page, make a phone call, etc.)
Confidence:
100%
Find a method from given class name, usually for reflection
Confidence:
100%
Get location info of the device and put it to JSON object
Confidence:
100%
Connect to a URL and receive input stream from the server
Confidence:
100%
Method reflection
Confidence:
100%
Get the network operator name
Confidence:
100%
Save the response to JSON after connecting to the remote server
Confidence:
100%
Load class from given class name
Confidence:
100%
Retrieve data from broadcast
Confidence:
100%
Get the ISO country code and put it into JSON
Confidence:
100%
Read sensitive data(SMS, CALLLOG, etc)
Confidence:
100%
Put data in cursor to JSON object
Confidence:
100%
Implicit intent(view a web page, make a phone call, etc.) via setData
Confidence:
100%
Connect to a URL and get the response code
Confidence:
100%
Send notification
Confidence:
100%
Monitor the broadcast action events (BOOT_COMPLETED)
Confidence:
100%
Return dynamic information about the current Wi-Fi connection
Confidence:
100%
Monitor incoming call status
Confidence:
100%
Get absolute path of the file and store in string
Confidence:
100%
Query the IMSI number
Confidence:
100%
Query The ISO country code
Confidence:
100%
Get last known location of the device
Confidence:
100%
Get calendar information
Confidence:
100%
Query the network operator name
Confidence:
100%
Get the current WIFI information
Confidence:
100%
Query the ICCID number
Confidence:
100%
Get the current WiFi information and put it into JSON
Confidence:
100%
Get location of the device
Confidence:
100%
Query the IMEI number
Confidence:
100%
Method reflection
Confidence:
100%
Hide the current app's icon
Confidence:
100%
Connect to the remote server through the given URL
Confidence:
100%
Query WiFi information and WiFi Mac Address
Confidence:
100%
Get the current WiFi IP address
Confidence:
100%
Query the phone number
Confidence:
100%
Get the time of current location
Confidence:
100%
Get the current WiFi MAC address and put it into JSON
Confidence:
100%
Get location and put it into JSON
Confidence:
100%
Initialize class object dynamically
Confidence:
100%
Get the current WiFi MAC address
Confidence:
100%
Check the list of currently running applications
Confidence:
100%
Connect to a URL and set request method
Confidence:
80%
Read data and put it into a buffer stream
Confidence:
80%
Read file and put it into a stream
Confidence:
80%
Send phone number over Internet
Confidence:
80%
Send IMSI over Internet
Confidence:
80%
Executes the specified string Linux command
Confidence:
80%
Connect to the specific WIFI network
Confidence:
80%
Get JSON object prepared and fill in location info
Confidence:
80%
Get resource file from res/raw directory

Behavior analysis

Information computed with MobSF.

Android notifications
       com/tracfone/wifiutility/BxSettings.java
com/bandwidthx/library/ex.java
Certificate handling
       com/bandwidthx/library/fp.java
Crypto
       com/bandwidthx/library/bg.java
Execute os command
       com/bandwidthx/library/gt.java
Gps location
       com/bandwidthx/library/cy.java
Get android advertising id
       com/bandwidthx/library/ac.java
Get cell information
       com/bandwidthx/library/ew.java
Get cell location
       com/bandwidthx/library/ew.java
Get device id, imei,meid/esn etc
       com/bandwidthx/library/ew.java
Get installed applications
       com/bandwidthx/library/fi.java
com/bandwidthx/library/dp.java
com/bandwidthx/library/ay.java
com/bandwidthx/library/bf.java
com/bandwidthx/library/cm.java
Get phone number
       com/bandwidthx/library/ew.java
Get sim operator name
       com/bandwidthx/library/ew.java
Get sim provider details
       com/tracfone/wifiutility/BxSettings.java
com/bandwidthx/library/ew.java
Get sim serial number
       com/bandwidthx/library/ew.java
Get subscriber id
       com/bandwidthx/library/ew.java
Get system service
       com/bandwidthx/library/hg.java
com/bandwidthx/library/ae.java
com/bandwidthx/library/Cdo.java
com/bandwidthx/library/cy.java
com/bandwidthx/library/fg.java
com/bandwidthx/library/BxService.java
com/bandwidthx/library/be.java
com/tracfone/wifiutility/BxSettings.java
com/tracfone/wifiutility/GCMIntentReceiver.java
com/bandwidthx/library/ew.java
com/bandwidthx/library/ex.java
com/bandwidthx/library/BxReceiver.java
Get wifi details
       com/bandwidthx/library/hg.java
com/bandwidthx/library/BxReceiver.java
Http connection
       com/bandwidthx/library/fo.java
com/bandwidthx/library/gw.java
Https connection
       com/bandwidthx/library/fp.java
Inter process communication
       com/bandwidthx/library/o.java
com/bandwidthx/library/fk.java
com/bandwidthx/library/bf.java
com/tracfone/wifiutility/GCMIntentService.java
com/tracfone/wifiutility/GCMIntentReceiver.java
com/bandwidthx/library/bl.java
com/bandwidthx/library/bi.java
com/bandwidthx/library/ex.java
com/bandwidthx/library/bk.java
com/bandwidthx/library/hf.java
com/bandwidthx/library/fj.java
com/bandwidthx/library/be.java
com/bandwidthx/library/bh.java
com/bandwidthx/library/BxLibrary.java
com/bandwidthx/library/BxActionsReceiver.java
com/tracfone/wifiutility/BxReceiver.java
com/bandwidthx/library/aa.java
com/tracfone/wifiutility/BxSettings.java
com/bandwidthx/library/BxReceiver.java
com/bandwidthx/library/fi.java
com/bandwidthx/library/BxServiceReceiver.java
com/bandwidthx/library/hg.java
com/bandwidthx/library/m.java
com/bandwidthx/library/BxApproval.java
com/bandwidthx/library/gz.java
com/bandwidthx/library/ha.java
com/bandwidthx/library/BxPermissions.java
com/bandwidthx/library/BxService.java
com/bandwidthx/library/ab.java
Java reflection
       com/bandwidthx/library/hg.java
com/bandwidthx/library/at.java
Kill process
       com/bandwidthx/library/bd.java
Local file i/o operations
       com/bandwidthx/library/ft.java
com/tracfone/wifiutility/BxSettings.java
com/bandwidthx/library/fa.java
com/bandwidthx/library/BxReceiver.java
Message digest
       com/bandwidthx/library/bg.java
Sending broadcast
       com/bandwidthx/library/hg.java
com/bandwidthx/library/o.java
com/bandwidthx/library/bf.java
com/bandwidthx/library/aa.java
com/bandwidthx/library/bl.java
Starting activity
       com/bandwidthx/library/fi.java
com/bandwidthx/library/fk.java
com/bandwidthx/library/gz.java
com/bandwidthx/library/fj.java
com/tracfone/wifiutility/BxSettings.java
Starting service
       com/bandwidthx/library/BxServiceReceiver.java
com/bandwidthx/library/d.java
com/bandwidthx/library/gz.java
com/bandwidthx/library/BxService.java
com/tracfone/wifiutility/GCMIntentService.java
com/tracfone/wifiutility/BxSettings.java
com/bandwidthx/library/bl.java
com/bandwidthx/library/BxLibrary.java
com/bandwidthx/library/BxReceiver.java
Tcp socket
       com/bandwidthx/library/fo.java
com/bandwidthx/library/fp.java
com/bandwidthx/library/gw.java
Udp datagram packet
       com/bandwidthx/library/gv.java
Udp datagram socket
       com/bandwidthx/library/gv.java
Url connection to file/http/https/ftp/jar
       com/bandwidthx/library/fq.java
Webview get request
       com/tracfone/wifiutility/BxSettings.java

Control flow graphs analysis

Information computed by Pithus.

The application probably lists running applications

The application probably gets the IMEI of the phone

The application probably gets the serial number of the SIM card

The application probably gets the subscriber ID associated to the SIM card/ Should never be collected

The application probably determines the location based on cell towers

The application probably gets the phone number associated to the SIM card

The application probably gets the advertising ID for tracking purposes

The application probably gets the Wi-Fi connection information

The application probably gets network interfaces addresses (IP and/or MAC)

The application probably uses the phone sensors

The application probably plays sound

The application probably sends data over UDP protocol

The application probably executes OS commands

The application probably listens accessibility events