0/62

Threat

com.vmos.adclient

vmos tool

Analyzed on 2021-10-04T15:07:01.877425

6

permissions

7

activities

2

services

1

receivers

5

domains

File sums

MD5 fc97ca8a1caca448fb536a09e09966f6
SHA1 1add349256d5ae9818dde4be60953623fdbc94e0
SHA256 92d95d370f810d64f023ff241e35e36f21a86f7b41ac9c2f7a0b0532ec426df7
Size 4.81MB

APKiD

Information computed with APKiD.

/tmp/tmpda7o2j7n!assets/audience_network.dex
anti_vm
  • possible Build.SERIAL check
compiler
  • unknown (please file detection issue!)
/tmp/tmpda7o2j7n!classes.dex
anti_vm
  • Build.FINGERPRINT check
  • Build.MODEL check
  • Build.MANUFACTURER check
  • Build.BRAND check
  • Build.DEVICE check
  • Build.PRODUCT check
  • network operator name check
compiler
  • r8

SSdeep

Information computed with ssdeep.

APK file 98304:sFq2/ltrso8Th37u1bZNJlS2fc7V7VsZmJ2yJRvZqQeLl9O/TquU:ettOCp07V7VsZmJ2yobPka
Manifest 192:H4WektoTmntyDVAKYET+tT++T+7T+70TpqS2W2yi3hvs:H4WektoTmntyDVAKYqYl…
assets/audience_network.dex 24576:aBzUrqSgQJTXFRU583L+za7dNH1Vs1qEq7kC3gg:/JTEy3L+ydh1VWukCwg
classes.dex 98304:hoLfmCp27q9YJH7LOEaQ90p0K62a0dD18TaggugJf:qLuCp2obUZgJf

Dexofuzzy

Information computed with Dexofuzzy.

APK file 6144:tWoDbipLsPBCZEJ0G4fAbWgjm6q1emPmHcWk159yIxH9zPbA0NwEBVvNsj26o:tW…
assets/audience_network.dex 3072:63u82S6lkFAPD5GGZZ1kyAgGp6iAJCguhtyXV:b4KkoGGZZ1kyALpAJCguhtc
classes.dex 6144:tWoDbipLsPBCZEJ0G4fAbWgjm6q1emPmHcWk159yIxH9zPbA0NwEBVvNsj26o:tW…

APK details

Information computed with AndroGuard and Pithus.

Package com.vmos.adclient
App name vmos tool
Version name 2.1.6
Version code 216
SDK 21 - 28
UAID 9ac74ff2c89955ca95129386c32658c224ef8a7c
Signature Signature V1 Signature V2
Frosting Frosted
Blocks found within V2 signature:
  • 0x7109871a: Unknown
  • 0x42726577: Verity padding
  • 0x2146444e: Google metadata

Certificate details

Information computed with AndroGuard.

MD5 aa7851eaa29b87970354c15241192d40
SHA1 8781576b77cd6642f57a596982e3b528a5a05cba
SHA256 75ed4b5629ccc69141248cecb17df6ab61b55743f99741a1ee8e14a1566be22f
Issuer Common Name: Virtual Master, Locality: Changsha, State/Province: Huname
Not before 2018-12-25T11:45:05+00:00
Not after 2043-12-19T11:45:05+00:00

Manifest analysis

Information computed with MobSF.

High Activity (com.vmos.adclient.ad.AdActivity) is not Protected.An intent-filter exists.
An Activity 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 Activity is explicitly exported.
High Activity (com.vmos.adclient.ad.vungle.VungleAdActivity) is not Protected.An intent-filter exists.
An Activity 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 Activity is explicitly exported.
High Service (com.vmos.adclient.ad.AdService) 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 Broadcast Receiver (com.vungle.warren.NetworkProviderReceiver) 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.vmos.adclient.calulator.MyCalculator

Activities

Information computed with AndroGuard.

com.vmos.adclient.calulator.MyCalculator
com.vmos.adclient.ad.AdActivity
com.vmos.adclient.ad.vungle.VungleAdActivity
com.vungle.warren.ui.VungleActivity
com.vungle.warren.ui.VungleFlexViewActivity
com.facebook.ads.AudienceNetworkActivity
com.google.android.gms.ads.AdActivity

Receivers

Information computed with AndroGuard.

com.vungle.warren.NetworkProviderReceiver

Services

Information computed with AndroGuard.

com.vmos.adclient.OtherService
com.vmos.adclient.ad.AdService

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 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_CKM.1.1(1) The application generate asymmetric cryptographic keys not in accordance with FCS_CKM.1.1(1) using key generation algorithm RSA schemes and cryptographic key sizes of 1024-bit or lower.
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_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.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.

High
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:
 kotlin/collections/EmptyList.java
kotlin/random/AbstractPlatformRandom.java
kotlin/collections/unsigned/UArraysKt___UArraysJvmKt$asList$4.java
kotlin/collections/unsigned/UArraysKt___UArraysJvmKt$asList$1.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$6.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$3.java
kotlin/random/KotlinRandom.java
kotlin/collections/RingBuffer.java
kotlin/collections/AbstractList.java
kotlin/random/PlatformRandomKt.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$7.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$1.java
kotlin/collections/unsigned/UArraysKt___UArraysJvmKt$asList$2.java
okio/Options.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$4.java
kotlin/collections/CollectionsKt___CollectionsKt.java
kotlin/random/FallbackThreadLocalRandom.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$2.java
kotlin/collections/MovingSubList.java
kotlin/collections/unsigned/UArraysKt___UArraysJvmKt$asList$3.java
kotlin/collections/CollectionsKt__MutableCollectionsJVMKt.java
kotlin/random/PlatformRandom.java
kotlin/random/FallbackThreadLocalRandom$implStorage$1.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$5.java
kotlin/collections/ArraysKt___ArraysJvmKt$asList$8.java
kotlin/collections/CollectionsKt__MutableCollectionsKt.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/vungle/warren/ui/view/BaseAdView.java
com/vungle/warren/tasks/runnable/JobRunnable.java
com/vungle/warren/ui/JavascriptBridge.java
com/vungle/warren/ui/VungleFlexViewActivity.java
com/vungle/warren/ui/presenter/MRAIDAdPresenter.java
com/vungle/warren/AdActivity.java
com/vungle/warren/ui/view/LocalAdView.java
com/vungle/warren/AdvertisementPresentationFactory.java
com/vungle/warren/ui/presenter/LocalAdPresenter.java
com/vmos/adclient/ad/AdActivity.java
com/vungle/warren/download/ApkDownloadManager.java
com/vungle/warren/VungleJobRunner.java
com/vmos/adclient/ad/AdService.java
com/vungle/warren/model/Advertisement.java
com/vungle/warren/utility/NetworkProvider.java
com/vungle/warren/Banners.java
com/vungle/warren/VungleApiClient.java
com/vungle/warren/Plugin.java
com/vmos/adclient/MyApplication.java
com/vungle/warren/VungleBanner.java
com/moat/analytics/mobile/vng/p.java
com/vungle/warren/model/Placement.java
com/vungle/warren/ui/view/FullAdWidget.java
kotlin/io/ConsoleKt.java
com/vungle/warren/utility/UnzipUtility.java
com/vungle/warren/ui/view/VungleWebClient.java
com/vungle/warren/tasks/SendReportsJob.java
com/vungle/warren/persistence/GraphicDesigner.java
com/vungle/warren/ui/view/VungleNativeView.java
com/vmos/adclient/MyActivityLifecycle.java
com/vungle/warren/downloader/CleverCache.java
com/vungle/warren/utility/FileUtility.java
com/vmos/adclient/ad/facebook/FacebookAd.java
com/vmos/adclient/ad/vungle/VungleAd.java
com/vungle/warren/tasks/CleanupJob.java
com/vungle/warren/Vungle.java
com/vmos/adclient/OtherService.java
com/moat/analytics/mobile/vng/n.java
com/vungle/warren/utility/ExternalRouter.java
com/vungle/warren/tasks/JobInfo.java
com/vmos/adclient/ad/AdServerImpl.java
com/vungle/warren/download/DefaultApkDownloader.java
com/vmos/adclient/ad/base/BaseAdImpl.java
com/vmos/adclient/ad/google/GoogleAd.java
com/vmos/adclient/calulator/MyCalculator.java
com/vungle/warren/analytics/MoatTracker.java
com/vungle/warren/analytics/VungleAnalytics.java
com/vungle/warren/persistence/Repository.java
com/vungle/warren/AdLoader.java
com/vungle/warren/downloader/AssetDownloader.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:
 com/vungle/warren/VungleApiClient.java
com/vungle/warren/persistence/CacheManager.java
com/vungle/warren/persistence/Repository.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/vungle/warren/VungleApiClient.java
High
CVSS:7.4
Files may contain hardcoded sensitive informations like usernames, passwords, keys etc.
MASVS: MSTG-STORAGE-14
CWE-312 Cleartext Storage of Sensitive Information
M9: Reverse Engineering
Files:
 com/vungle/warren/tasks/DownloadJob.java
High
CVSS:5.5
App creates temp file. Sensitive information should never be written into a temp file.
MASVS: MSTG-STORAGE-2
CWE-276 Incorrect Default Permissions
M2: Insecure Data Storage
Files:
 kotlin/io/FilesKt__UtilsKt.java
High
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/vmos/adclient/calulator/MyCalculator.java
com/vungle/warren/persistence/DatabaseHelper.java
com/vmos/adclient/calulator/DBHelper.java
com/vungle/warren/persistence/Repository.java
Pygal Germany: 300 United States: 200

Map computed by Pithus.

Domains analysis

Information computed with MobSF.

US px.moatads.com 23.218.209.154
US z.moatads.com 23.218.209.154
DE ads.api.vungle.com 104.121.76.65
DE api.vungle.com 104.121.76.72
DE vungle.com 23.36.234.157

URL analysis

Information computed with MobSF.

https://z.moatads.com/'
https://z.moatads.com/
Defined in com/moat/analytics/mobile/vng/g.java
https://z.moatads.com/'
https://z.moatads.com/
Defined in com/moat/analytics/mobile/vng/g.java
https://z.moatads.com/
Defined in com/moat/analytics/mobile/vng/w.java
https://px.moatads.com/pixel.gif?e=0&i=MOATSDK1&ac=1
Defined in com/moat/analytics/mobile/vng/n.java
https://ads.api.vungle.com/
https://api.vungle.com/
Defined in com/vungle/warren/VungleApiClient.java
https://ads.api.vungle.com/
https://api.vungle.com/
Defined in com/vungle/warren/VungleApiClient.java
https://vungle.com/privacy/
Defined in com/vungle/warren/ui/presenter/LocalAdPresenter.java

Permissions analysis

Information computed with MobSF.

High android.permission.WRITE_EXTERNAL_STORAGE read/modify/delete external storage contents
Allows an application to write to external storage.
Low android.permission.FOREGROUND_SERVICE Allows a regular application to use Service.startForeground
Low android.permission.KILL_BACKGROUND_PROCESSES kill background processes
Allows an application to kill background processes of other applications, even if memory is not low.
Low android.permission.ACCESS_NETWORK_STATE view network status
Allows an application to view the status of all networks.
Low android.permission.INTERNET full Internet access
Allows an application to create network sockets.
Low android.permission.WAKE_LOCK prevent phone from sleeping
Allows an application to prevent the phone from going to sleep.

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%
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%
Read sensitive data(SMS, CALLLOG, etc)
Confidence:
100%
Check if the given path is directory
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%
Get location of the device
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 data from URI (SMS, CALLLOGS)
Confidence:
100%
Get the time of current location
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 specific method from other Dex files
Confidence:
80%
Read data and put it into a buffer stream
Confidence:
80%
Get location info of the device and put it to JSON object
Confidence:
80%
Connect to a URL and read data from it
Confidence:
80%
Read file and put it into a stream
Confidence:
80%
Get declared method from given method name
Confidence:
80%
Query the network operator name
Confidence:
80%
Get resource file from res/raw directory

Behavior analysis

Information computed with MobSF.

Base64 decode
       com/vungle/warren/utility/ViewUtility.java
Base64 encode
       com/moat/analytics/mobile/vng/n.java
com/moat/analytics/mobile/vng/g.java
com/vungle/warren/downloader/CleverCache.java
Crypto
       okio/HashingSink.java
okio/ByteString.java
okio/HashingSource.java
okio/Buffer.java
Get android advertising id
       com/vungle/warren/VungleApiClient.java
Get sim operator name
       com/moat/analytics/mobile/vng/s.java
Get sim provider details
       com/moat/analytics/mobile/vng/s.java
Get system service
       com/vungle/warren/VungleApiClient.java
com/moat/analytics/mobile/vng/s.java
com/moat/analytics/mobile/vng/l.java
com/vungle/warren/ui/view/FullAdWidget.java
com/vungle/warren/utility/NetworkProvider.java
Http connection
       com/moat/analytics/mobile/vng/q.java
Inter process communication
       com/vmos/adclient/ad/AdService.java
com/vungle/warren/ui/view/VungleNativeView.java
com/vungle/warren/utility/ExternalRouter.java
com/moat/analytics/mobile/vng/i.java
com/vungle/warren/VungleApiClient.java
com/vungle/warren/AdActivity.java
com/vmos/adclient/IAdServerCallback.java
com/vungle/warren/NetworkProviderReceiver.java
com/moat/analytics/mobile/vng/j.java
com/vmos/adclient/ad/AdActivity.java
com/vungle/warren/Vungle.java
com/vmos/adclient/OtherService.java
com/vmos/adclient/IAdServer.java
Java reflection
       kotlin/internal/PlatformImplementations.java
retrofit2/Invocation.java
okio/ByteString.java
retrofit2/Platform.java
kotlin/coroutines/jvm/internal/DebugMetadataKt.java
com/moat/analytics/mobile/vng/i.java
retrofit2/HttpServiceMethod.java
kotlin/internal/PlatformImplementationsKt.java
kotlin/coroutines/jvm/internal/ModuleNameRetriever.java
com/moat/analytics/mobile/vng/s.java
retrofit2/ServiceMethod.java
kotlin/jvm/internal/Reflection.java
kotlin/jvm/internal/Intrinsics.java
com/moat/analytics/mobile/vng/x.java
retrofit2/RequestFactory.java
retrofit2/Utils.java
retrofit2/Retrofit.java
Local file i/o operations
       com/vungle/warren/VungleApiClient.java
com/vungle/warren/persistence/GraphicDesigner.java
com/vungle/warren/persistence/CacheManager.java
com/vungle/warren/persistence/Designer.java
com/vungle/warren/tasks/CleanupJob.java
com/vungle/warren/persistence/Repository.java
com/vungle/warren/Vungle.java
com/vungle/warren/downloader/CleverCache.java
Message digest
       okio/HashingSink.java
okio/ByteString.java
okio/HashingSource.java
okio/Buffer.java
com/vungle/warren/downloader/CleverCache.java
Sending broadcast
       com/vungle/warren/Vungle.java
Starting activity
       com/vungle/warren/utility/ExternalRouter.java
com/vungle/warren/Vungle.java
Starting service
       com/vungle/warren/ServiceLocator.java
Tcp socket
       com/vungle/warren/downloader/AssetDownloader.java
okio/Okio.java
Webview get request
       com/moat/analytics/mobile/vng/g.java
Webview javascript interface
       com/vungle/warren/ui/view/VungleNativeView.java
com/vungle/warren/ui/view/FullAdWidget.java

Control flow graphs analysis

Information computed by Pithus.

The application probably lists running applications

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

The application probably plays sound

The application probably listens accessibility events