Botim is an instant messaging and VoIP application developped by Algento. The company is branded as an american company with subsidiaries in Dubai on Botim’s website, but only Dubai is mentioned on algento’s website. The application looks like a common instant messaging app, but also have an “Explore” tab which seems to offer other functionalities, such as
an online Quran, an AI chatbot, and a way to request a visa for the United Arab Emirates.
Android Sample
We’ve analyzed the following version of the app im.thebot.messenger:
This time we’re not going to list all the permissions the application requests, because that number is abbsolutely too high with a grand total of 77 permission requested. Instead we will focus only on the most dangerous ones. The full list of permissions can be found in the exodus privacy report
High risk
android.permission.ACCESS_COARSE_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.
android.permission.ACCESS_FINE_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.
android.permission.ACTIVITY_RECOGNITION: Allows an application to recognize physical activity.
android.permission.AUTHENTICATE_ACCOUNTS: Allows an application to use the account authenticator capabilities of the Account Manager, including creating accounts as well as obtaining and setting their passwords.
android.permission.CALL_PHONE: Allows the application to call phone numbers without your intervention. Malicious applications may cause unexpected calls on your phone bill. Note that this does not allow the application to call emergency numbers.
android.permission.CAMERA: Allows application to take pictures and videos with the camera. This allows the application to collect images that the camera is seeing at any time.
android.permission.GET_ACCOUNTS: Allows access to the list of accounts in the Accounts Service.
android.permission.GET_TASKS: Allows application to retrieve information about currently and recently running tasks. May allow malicious applications to discover private information about other applications.
android.permission.MANAGE_ACCOUNTS: Allows an application to perform operations like adding and removing accounts and deleting their password.
android.permission.POST_NOTIFICATIONS: Allows an app to post notifications.
android.permission.READ_CONTACTS: 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.
android.permission.READ_EXTERNAL_STORAGE: Allows an application to read from external storage.
android.permission.READ_MEDIA_IMAGES: Allows an application to read image files from external storage.
android.permission.READ_MEDIA_VIDEO: Allows an application to read video files from external storage.
android.permission.READ_MEDIA_VISUAL_USER_SELECTED: Allows an application to read image or video files from external storage that a user has selected via the permission prompt photo picker. Apps can check this permission to verify that a user has decided to use the photo picker, instead of granting access to READ_MEDIA_IMAGES or READ_MEDIA_VIDEO . It does not prevent apps from accessing the standard photo picker manually. This permission should be requested alongside READ_MEDIA_IMAGES and/or READ_MEDIA_VIDEO, depending on which type of media is desired.
android.permission.READ_PHONE_STATE: 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.
android.permission.READ_PROFILE: Allows an application to read the user’s personal profile data.
android.permission.RECORD_AUDIO: Allows application to access the audio record path.
android.permission.REQUEST_INSTALL_PACKAGES: Malicious applications can use this to try and trick users into installing additional malicious packages.
android.permission.SYSTEM_ALERT_WINDOW: Allows an application to show system-alert windows. Malicious applications can take over the entire screen of the phone.
android.permission.USE_CREDENTIALS: Allows an application to request authentication tokens.
android.permission.WRITE_CONTACTS: Allows an application to modify the contact (address) data stored on your phone. Malicious applications can use this to erase or modify your contact data.
android.permission.WRITE_EXTERNAL_STORAGE: Allows an application to write to external storage.
Application analysis
Tracker SDKs
The application uses the following trackers SDKs, as reported by Exodus Privacy
Profiling, Identification and location trackers
AppLovin (MAX and Sparklabs)
Countly
Facebook Login
Huawei Mobile Services (HMS) Core
IAB Open Measurement
Advertisement trackers
Amazon Advertisement
Facebook Ads
Pangle
Analytics trackers
Adjust
Google AdMob
Google CrashLytics
Google Firebase Analytics
Facebook Analytics
Yueying Crash SDK
Other trackers
Facebook Share
Protection mechanisms
Anti-VM and anti-debug checks can be found in the application, as reported by mobSF.
Files
Embedded libraries
The APK embeds 51 (yes, 51) shared libraries, all of them were checked on VirusTotal, none of them raising any alerts.
Given the number of trackers detected by Exodus Privacy, we would have expected a lot of outbound traffic, but there was surprisingly not that many requests. However, due to difficulties during the testing of the app, we couldn’t get an in-depth exploration of the various functionalities, which may explain why that is.
That being said, we observed some interesting outgoing traffic, aiming at two main domains: fp-aen.astratech[.]ae and smnvc[.]com
requests to fp-aen.astratech[.]ae
This request is being send regularly, and contain multiple technical informations about the device and it’s network state, as we can see here, it sends the device’s kernel version, local IP, mac address, wifi SSID, the router’s mac adress, etc… Though some of this information might have a legitimate interest for setting up VoIP calls, we did not make a VoIP call during testing.
Next is another request to the same domain, but this time it appears to be encrypted: the “default” parameter after being base64 decoded presents and entropy of 7.949, which is caracteristic of encrypted data. We couldn’t decrypt it during the analysis.
The analysis of Botim v3.38.1 reveals an application embedding a lot of trackers and asking for a lot of permissions, most of which can be pretty dangerous if used in a malicious way. The network traffic of the application while suprisingly not as bad as we expected still exports technical information to the UAE.
The scary part really is about the permissions. Accessing location, activity, being able to record audio and video, manage contacts, and writing and reading to the file system is already too much. But it gets worse with the added permission to requests packages installation. Even though the application in itself might not be malicious, it seem like a good target for attacks, because gaining a first foothole through this apps allows for a lot of options to escalate the attack.
It is important to remind ourself that the app offers the possibility to ask for a Visa, implying the user will have to upload their passport. Dealing with this kind of sensitive information while being this lax on the permissions requested does not inspire trust.