Moderate Risk

Threat level

com.psiphon3

عدالت همراه

Analyzed on 2022-08-27T18:02:01.213968

11

permissions

2

activities

8

services

7

receivers

1

domains

File sums

MD5 16008c1214252eecdfa0ce0bfbb9bd2f
SHA1 b7c9db2f03157bc68f310780f8ef5bca42579500
SHA256 f483f531712c58efd2b072bc3d8a1236699681a70ad588f9ca4170baa560a7d2
Size 2.2MB

APKiD

Information computed with APKiD.

/tmp/tmpf0nqlerp!classes.dex
anti_vm
  • Build.FINGERPRINT check
  • Build.MODEL check
  • Build.MANUFACTURER check
  • Build.BRAND check
  • Build.DEVICE check
  • Build.PRODUCT check
  • Build.HARDWARE check
  • Build.BOARD check
  • possible Build.SERIAL check
  • SIM operator check
  • network operator name check
compiler
  • dexlib 2.x

SSdeep

Information computed with ssdeep.

APK file 49152:I/K3iw0l5p9msidTFk0/ysHeiIfEHneVtE2mMpR0I2s/UOZb3IOadX76Ka:WK3F0l59id60/HHefkeVtxmW29o3YdXE
Manifest 192:vs6agSy47ysO70qTh1b++YT+kT+oT+oKT+oQT+or3RTvTwTJWX4JjnDfdHt+4Kjm:…
classes.dex 49152:tnaFinOqAK62tYCqXmz/O4Gorb6XMwcXts7skmffgtbEJXXQTRDcH6zj:QFinOL…

Dexofuzzy

Information computed with Dexofuzzy.

APK file 3072:LgYCSev0g4yCvDLdd8Y5mcSyX8vJlsUKmp+4c9296hR6ph6pF66O+6pE66p9lCos…
classes.dex 3072:LgYCSev0g4yCvDLdd8Y5mcSyX8vJlsUKmp+4c9296hR6ph6pF66O+6pE66p9lCos…

APK details

Information computed with AndroGuard and Pithus.

Package com.psiphon3
App name عدالت همراه
Version name
Version code 1
SDK 5 - 24
UAID 69eef3b90d424c7cf2fcd7e831c6a45214d00928
Signature Signature V1 Signature V2
Frosting Not frosted
Blocks found within V2 signature:
  • 0x7109871a: Unknown
  • 0x42726577: Verity padding

Certificate details

Information computed with AndroGuard.

MD5 e89b158e4bcf988ebd09eb83f5378e87
SHA1 61ed377e85d386a8dfee6b864bd85b0bfaa5af81
SHA256 a40da80a59d170caa950cf15c18c454d47a39b26989d8b640ecd745ba71bf5dc
Issuer Email Address: android@android.com, Common Name: Android, Organizational Unit: Android, Organization: Android, Locality: Mountain View, State/Province: California, Country: US
Not before 2008-02-29T01:33:46+00:00
Not after 2035-07-17T01:33:46+00:00

Manifest analysis

Information computed with MobSF.

Medium Application Data can be Backed up[android:allowBackup] flag is missing.
The flag [android:allowBackup] should be set to false. By default it is set to true and allows anyone to backup your application data via adb. It allows users who have enabled USB debugging to copy application data off of the device.
High Broadcast Receiver (com.google.android.gms.measurement.AppMeasurementReceiver) 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 (com.google.android.gms.measurement.AppMeasurementReceiver) 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 (com.google.firebase.iid.FirebaseInstanceIdReceiver) 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.
High Service (com.google.firebase.iid.FirebaseInstanceIdService) is not Protected. [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.
High Service (com.google.firebase.messaging.FirebaseMessagingService) is not Protected. [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.
High Service (anywheresoftware.b4a.objects.FirebaseNotificationsService) is not Protected.An intent-filter exists.
A Service 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 Service is explicitly exported.
High Broadcast Receiver (.starter$starter_BR) 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 (.firebasemessaging$firebasemessaging_BR) 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.

Main Activity

Information computed with AndroGuard.

com.psiphon3.main

Activities

Information computed with AndroGuard.

com.google.android.gms.common.api.GoogleApiActivity
com.psiphon3.main

Receivers

Information computed with AndroGuard.

com.google.android.gms.measurement.AppMeasurementReceiver
com.google.android.gms.measurement.AppMeasurementReceiver
com.google.firebase.iid.FirebaseInstanceIdReceiver
com.google.firebase.iid.FirebaseInstanceIdInternalReceiver
com.psiphon3.starter$starter_BR
com.psiphon3.firebasemessaging$firebasemessaging_BR
anywheresoftware.b4a.samples.httputils2.httputils2service$httputils2service_BR

Services

Information computed with AndroGuard.

com.google.android.gms.measurement.AppMeasurementService
com.google.android.gms.measurement.AppMeasurementService
com.google.firebase.iid.FirebaseInstanceIdService
com.google.firebase.messaging.FirebaseMessagingService
anywheresoftware.b4a.objects.FirebaseNotificationsService
com.psiphon3.starter
com.psiphon3.firebasemessaging
anywheresoftware.b4a.samples.httputils2.httputils2service

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 implement asymmetric key generation.
Cryptographic Key Generation Services
FDP_DEC_EXT.1.1 The application has access to ['network connectivity'].
Access to Platform Resources
FDP_DEC_EXT.1.2 The application has access to ['address book'].
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_CKM.1.1(1) The application generate asymmetric cryptographic keys in accordance with a specified cryptographic key generation algorithm RSA schemes using cryptographic key sizes of 2048-bit or greater.
Cryptographic Asymmetric Key Generation
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_COP.1.1(3) The application perform cryptographic signature services (generation and verification) in accordance with a specified cryptographic algorithm RSA schemes using cryptographic key sizes of 2048-bit or greater.
Cryptographic Operation - Signing
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
FPT_TUD_EXT.2.1 The application shall be distributed using the format of the platform-supported package manager.
Integrity for Installation and Update

Code analysis

Information computed with MobSF.

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:
 anywheresoftware/b4a/sql/SQL.java
Info
CVSS:0
This App may have root detection capabilities.
MASVS: MSTG-RESILIENCE-1
Files:
 com/reza/sh/deviceinfo/DiviceInfo.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:
 anywheresoftware/b4a/Msgbox.java
anywheresoftware/b4a/agraham/reflection/Reflection.java
anywheresoftware/b4a/remotelogger/Connector.java
anywheresoftware/b4a/DynamicBuilder.java
anywheresoftware/b4a/remotelogger/RemoteLogger.java
anywheresoftware/b4a/BA.java
Medium
CVSS:7.5
The App uses an insecure Random Number Generator.
MASVS: MSTG-CRYPTO-6
CWE-330 Use of Insufficiently Random Values
M5: Insufficient Cryptography
Files:
 anywheresoftware/b4a/keywords/Common.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:
 anywheresoftware/b4h/okhttp/OkHttpClientWrapper.java
Medium
CVSS:7.4
MD5 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:
 anywheresoftware/b4h/okhttp/OkHttpClientWrapper.java
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:
 anywheresoftware/b4a/objects/streams/File.java
Pygal United States: 100

Map computed by Pithus.

Domains analysis

Information computed with MobSF.

US www.google.com 172.217.18.4

URL analysis

Information computed with MobSF.

http://www.google.com/
Defined in com/reza/sh/deviceinfo/DiviceInfo.java

Permissions analysis

Information computed with MobSF.

High android.permission.READ_SMS read SMS or MMS
Allows application to read SMS messages stored on your phone or SIM card. Malicious applications may read your confidential messages.
High android.permission.SEND_SMS send SMS messages
Allows application to send SMS messages. Malicious applications may cost you money by sending messages without your confirmation.
High android.permission.RECEIVE_SMS receive SMS
Allows application to receive and process SMS messages. Malicious applications may monitor your messages or delete them without showing them to you.
High android.permission.READ_CONTACTS read contact data
Allows an application to read all of the contact (address) data stored on your phone. Malicious applications can use this to send your data to other people.
Low android.permission.INTERNET full Internet access
Allows an application to create network sockets.
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.WAKE_LOCK prevent phone from sleeping
Allows an application to prevent the phone from going to sleep.
Low android.permission.ACCESS_NETWORK_STATE view network status
Allows an application to view the status of all networks.
Low android.permission.ACCESS_WIFI_STATE view Wi-Fi status
Allows an application to view the information about the status of Wi-Fi.
Medium com.google.android.c2dm.permission.RECEIVE C2DM permissions
Permission for cloud to device messaging.
com.psiphon3.permission.C2D_MESSAGE Unknown permission
Unknown permission from android reference

Threat analysis

Information computed with Quark-Engine.

Confidence:
100%
Load external class
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%
Connect to a URL and read data from it
Confidence:
100%
Monitor data identified by a given content URI changes(SMS, MMS, etc.)
Confidence:
100%
Load class from given class name
Confidence:
100%
Retrieve data from broadcast
Confidence:
100%
Read sensitive data(SMS, CALLLOG, etc)
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%
Monitor the broadcast action events (BOOT_COMPLETED)
Confidence:
100%
Get absolute path of the file and store in string
Confidence:
100%
Read file from assets directory
Confidence:
100%
Get last known location of the device
Confidence:
100%
Get calendar information
Confidence:
100%
Deletes media specified by a content URI(SMS, CALL_LOG, File, etc.)
Confidence:
100%
Method reflection
Confidence:
100%
Connect to the remote server through the given URL
Confidence:
100%
Query WiFi information and WiFi Mac Address
Confidence:
100%
Query data from URI (SMS, CALLLOGS)
Confidence:
100%
Initialize class object dynamically
Confidence:
100%
Read the input stream from given URL
Confidence:
100%
Connect to a URL and set request method
Confidence:
100%
Get resource file from res/raw directory
Confidence:
100%
Get specific method from other Dex files
Confidence:
80%
Read data and put it into a buffer stream
Confidence:
80%
Read file and put it into a stream
Confidence:
80%
Get declared method from given method name
Confidence:
80%
Send notification
Confidence:
80%
Query the network operator name
Confidence:
80%
Get location of the device
Confidence:
80%
Executes the specified string Linux command

Behavior analysis

Information computed with MobSF.

Android notifications
       anywheresoftware/b4a/objects/NotificationWrapper.java
Certificate handling
       anywheresoftware/b4h/okhttp/OkHttpClientWrapper.java
Crypto
       okio/HashingSink.java
okio/HashingSource.java
okio/ByteString.java
okio/Buffer.java
Execute os command
       anywheresoftware/b4a/phone/Phone.java
anywheresoftware/b4a/remotelogger/RemoteLogger.java
Gps location
       com/reza/sh/deviceinfo/DiviceInfo.java
Get installed applications
       anywheresoftware/b4a/phone/PackageManagerWrapper.java
anywheresoftware/b4a/phone/Phone.java
Get network interface information
       com/reza/sh/deviceinfo/DiviceInfo.java
Get phone number
       com/reza/sh/deviceinfo/DiviceInfo.java
anywheresoftware/b4a/phone/Phone.java
Get sim provider details
       anywheresoftware/b4a/phone/Phone.java
Get sim serial number
       com/reza/sh/deviceinfo/DiviceInfo.java
anywheresoftware/b4a/phone/Phone.java
Get subscriber id
       com/reza/sh/deviceinfo/DiviceInfo.java
anywheresoftware/b4a/phone/Phone.java
Get system service
       com/reza/sh/deviceinfo/DiviceInfo.java
anywheresoftware/b4a/objects/NotificationWrapper.java
anywheresoftware/b4a/objects/AutoCompleteEditTextWrapper.java
anywheresoftware/b4a/objects/SpinnerWrapper.java
anywheresoftware/b4a/phone/Phone.java
anywheresoftware/b4a/objects/ServiceHelper.java
anywheresoftware/b4a/objects/drawable/CanvasWrapper.java
anywheresoftware/b4a/keywords/Common.java
Get wifi details
       com/reza/sh/deviceinfo/DiviceInfo.java
Http connection
       com/reza/sh/deviceinfo/DiviceInfo.java
com/pejmannikravan/uploadfile/PNUploadFile.java
Inter process communication
       com/reza/sh/deviceinfo/DiviceInfo.java
anywheresoftware/b4a/objects/ActivityWrapper.java
anywheresoftware/b4a/objects/FirebaseAuthWrapper.java
anywheresoftware/b4a/objects/NotificationWrapper.java
com/psiphon3/main.java
anywheresoftware/b4a/phone/PackageManagerWrapper.java
anywheresoftware/b4a/samples/httputils2/httputils2service.java
anywheresoftware/b4a/phone/PhoneEvents.java
anywheresoftware/b4a/phone/Phone.java
anywheresoftware/b4a/objects/ServiceHelper.java
anywheresoftware/b4a/IOnActivityResult.java
com/psiphon3/starter.java
com/psiphon3/firebasemessaging.java
anywheresoftware/b4a/objects/IntentWrapper.java
anywheresoftware/b4a/objects/RemoteViewsWrapper.java
anywheresoftware/b4a/objects/FirebaseNotificationsService.java
anywheresoftware/b4a/keywords/DateTime.java
anywheresoftware/b4a/phone/RingtoneManagerWrapper.java
anywheresoftware/b4a/keywords/Common.java
anywheresoftware/b4a/BA.java
Java reflection
       com/reza/sh/deviceinfo/DiviceInfo.java
anywheresoftware/b4a/objects/ActivityWrapper.java
okio/ByteString.java
anywheresoftware/b4a/objects/NotificationWrapper.java
anywheresoftware/b4j/object/JavaObject.java
com/psiphon3/main.java
anywheresoftware/b4a/samples/httputils2/httputils2service.java
anywheresoftware/b4a/agraham/reflection/Reflection.java
anywheresoftware/b4a/keywords/LayoutBuilder.java
anywheresoftware/b4a/objects/ViewWrapper.java
anywheresoftware/b4a/objects/ServiceHelper.java
anywheresoftware/b4a/objects/collections/List.java
com/psiphon3/starter.java
anywheresoftware/b4a/Msgbox.java
anywheresoftware/b4a/AbsObjectWrapper.java
com/psiphon3/firebasemessaging.java
anywheresoftware/b4a/objects/RemoteViewsWrapper.java
anywheresoftware/b4a/objects/FirebaseNotificationsService.java
anywheresoftware/b4a/samples/httputils2/httpjob.java
b4a/example/contactsutils.java
anywheresoftware/b4a/DynamicBuilder.java
anywheresoftware/b4a/objects/Base64.java
anywheresoftware/b4a/keywords/Common.java
anywheresoftware/b4a/BA.java
Kill process
       anywheresoftware/b4a/BA.java
Local file i/o operations
       anywheresoftware/b4a/objects/streams/File.java
Message digest
       okio/HashingSink.java
okio/HashingSource.java
okio/ByteString.java
okio/Buffer.java
anywheresoftware/b4h/okhttp/OkHttpClientWrapper.java
Query database of sms, contacts etc
       anywheresoftware/b4a/phone/Contacts2Wrapper.java
anywheresoftware/b4a/phone/ContactsWrapper.java
Send sms
       com/psiphon3/firebasemessaging.java
anywheresoftware/b4a/phone/Phone.java
Sending broadcast
       anywheresoftware/b4a/objects/FirebaseNotificationsService.java
anywheresoftware/b4a/phone/Phone.java
Starting activity
       anywheresoftware/b4a/objects/FirebaseAuthWrapper.java
anywheresoftware/b4a/phone/RingtoneManagerWrapper.java
anywheresoftware/b4a/phone/Phone.java
anywheresoftware/b4a/keywords/Common.java
anywheresoftware/b4a/BA.java
Starting service
       anywheresoftware/b4a/samples/httputils2/httputils2service.java
anywheresoftware/b4a/objects/ServiceHelper.java
anywheresoftware/b4a/keywords/Common.java
Tcp server socket
       anywheresoftware/b4a/remotelogger/Connector.java
Tcp socket
       anywheresoftware/b4a/remotelogger/Connector.java
okio/Okio.java
Webview get request
       anywheresoftware/b4a/objects/WebViewWrapper.java

Control flow graphs analysis

Information computed by Pithus.

The application probably opens socket

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 gets the phone number associated to the SIM card

The application probably gets the Wi-Fi connection information

The application probably sends SMS/MMS messages

The application probably lists all installed applications