Skip to content

Piero Bosio Social Web Site Personale Logo Fediverso

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone

Frogblight threatens you with a court case: a new Android banker targets Turkish users

Uncategorized
1 1 0
  • Frogblight threatens you with a court case: a new Android banker targets Turkish users

    In August 2025, we discovered a campaign targeting individuals in Turkey with a new Android banking Trojan we dubbed “Frogblight”. Initially, the malware was disguised as an app for accessing court case files via an official government webpage. Later, more universal disguises appeared, such as the Chrome browser.

    Frogblight can use official government websites as an intermediary step to steal banking credentials. Moreover, it has spyware functionality, such as capabilities to collect SMS messages, a list of installed apps on the device and device filesystem information. It can also send arbitrary SMS messages.

    Another interesting characteristic of Frogblight is that we’ve seen it updated with new features throughout September. This may indicate that a feature-rich malware app for Android is being developed, which might be distributed under the MaaS model.

    This threat is detected by Kaspersky products as HEUR:Trojan-Banker.AndroidOS.Frogblight.*, HEUR:Trojan-Banker.AndroidOS.Agent.eq, HEUR:Trojan-Banker.AndroidOS.Agent.ep, HEUR:Trojan-Spy.AndroidOS.SmsThief.de.

    Technical details

    Background


    While performing an analysis of mobile malware we receive from various sources, we discovered several samples belonging to a new malware family. Although these samples appeared to be still under development, they already contained a lot of functionality that allowed this family to be classified as a banking Trojan. As new versions of this malware continued to appear, we began monitoring its development. Moreover, we managed to discover its control panel and based on the “fr0g” name shown there, we dubbed this family “Frogblight”.

    Initial infection


    We believe that smishing is one of the distribution vectors for Frogblight, and that the users had to install the malware themselves. On the internet, we found complaints from Turkish users about phishing SMS messages convincing users that they were involved in a court case and containing links to download malware. versions of Frogblight, including the very first ones, were disguised as an app for accessing court case files via an official government webpage and were named the same as the files for downloading from the links mentioned above.

    While looking for online mentions of the names used by the malware, we discovered one of the phishing websites distributing Frogblight, which disguises itself as a website for viewing a court file.


    The phishing website distributing Frogblight

    We were able to open the admin panel of this website, where it was possible to view statistics on Frogblight malware downloads. However, the counter had not been fully implemented and the threat actor could only view the statistics for their own downloads.


    The admin panel interface of the website from which Frogblight is downloaded

    Additionally, we found the source code of this phishing website available in a public GitHub repository. Judging by its description, it is adapted for fast deployment to Vercel, a platform for hosting web apps.


    The GitHub repository with the phishing website source code

    App features


    As already mentioned, Frogblight was initially disguised as an app for accessing court case files via an official government webpage. Let’s look at one of the samples using this disguise (9dac23203c12abd60d03e3d26d372253). For analysis, we selected an early sample, but not the first one discovered, in order to demonstrate more complete Frogblight functionality.

    After starting, the app prompts the victim to grant permissions to send and read SMS messages, and to read from and write to the device’s storage, allegedly needed to show a court file related to the user.

    The full list of declared permissions in the app manifest file is shown below:

    • MANAGE_EXTERNAL_STORAGE
    • READ_EXTERNAL_STORAGE
    • WRITE_EXTERNAL_STORAGE
    • READ_SMS
    • RECEIVE_SMS
    • SEND_SMS
    • WRITE_SMS
    • RECEIVE_BOOT_COMPLETED
    • INTERNET
    • QUERY_ALL_PACKAGES
    • BIND_ACCESSIBILITY_SERVICE
    • DISABLE_KEYGUARD
    • FOREGROUND_SERVICE
    • FOREGROUND_SERVICE_DATA_SYNC
    • POST_NOTIFICATIONS
    • QUICKBOOT_POWERON
    • RECEIVE_MMS
    • RECEIVE_WAP_PUSH
    • REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
    • SCHEDULE_EXACT_ALARM
    • USE_EXACT_ALARM
    • VIBRATE
    • WAKE_LOCK
    • ACCESS_NETWORK_STATE
    • READ_PHONE_STATE

    After all required permissions are granted, the malware opens the official government webpage for accessing court case files in WebView, prompting the victim to sign in. There are different sign-in options, one of them via online banking. If the user chooses this method, they are prompted to click on a bank whose online banking app they use and fill out the sign-in form on the bank’s official website. This is what Frogblight is after, so it waits two seconds, then opens the online banking sign-in method regardless of the user’s choice. For each webpage that has finished loading in WebView, Frogblight injects JavaScript code allowing it to capture user input and send it to the C2 via a REST API.

    The malware also changes its label to “Davalarım” if the Android version is newer than 12; otherwise it hides the icon.


    The app icon before (left) and after launching (right)
    In the sample we review in this section, Frogblight uses a REST API for C2 communication, implemented using the Retrofit library. The malicious app pings the C2 server every two seconds in foreground, and if no error is returned, it calls the REST API client methods fetchOutbox and getFileCommands. Other methods are called when specific events occur, for example, after the device screen is turned on, the com.capcuttup.refresh.PersistentService foreground service is launched, or an SMS is received. The full list of all REST API client methods with parameters and descriptions is shown below.

    REST API client methodDescriptionParameters
    fetchOutboxRequest message content to be sent via SMS or displayed in a notificationdevice_id: unique Android device ID
    ackOutboxSend the results of processing a message received after calling the API method fetchOutboxdevice_id: unique Android device ID
    msg_id: message ID
    status: message processing status
    error: message processing error
    getAllPackagesRequest the names of app packages whose launch should open a website in WebView to capture user input dataaction: same as the API method name
    getPackageUrlRequest the website URL that will be opened in WebView when the app with the specified package name is launchedaction: same as the API method name
    package: the package name of the target app
    getFileCommandsRequest commands for file operations
    Available commands:
    ● download: upload the target file to the C2
    ● generate_thumbnails: generate thumbnails from the image files in the target directory and upload them to the C2
    ● list: send information about all files in the target directory to the C2
    ● thumbnail: generate a thumbnail from the target image file and upload it to the C2
    device_id: unique Android device ID
    pingDeviceCheck the C2 connectiondevice_id: unique Android device ID
    reportHijackSuccessSend captured user input data from the website opened in a WebView when the app with the specified package name is launchedaction: same as the API method name
    package: the package name of the target app
    data: captured user input data
    saveAppListSend information about the apps installed on the devicedevice_id: unique Android device ID app_list: a list of apps installed on the device
    app_count: a count of apps installed on the device
    saveInjectionSend captured user input data from the website opened in a WebView. If it was not opened following the launch of the target app, the app_name parameter is determined based on the opened URLdevice_id: unique Android device ID app_name: the package name of the target app
    form_data: captured user input data
    savePermissionUnused but presumably needed for sending information about permissionsdevice_id: unique Android device ID permission_type: permission type
    status: permission status
    sendSmsSend information about an SMS message from the devicedevice_id: unique Android device ID sender: the sender’s/recipient’s phone number
    message: message text
    timestamp: received/sent time
    type: message type (inbox/sent)
    sendTelegramMessageSend captured user input data from the webpages opened by Frogblight in WebViewdevice_id: unique Android device ID
    url: website URL
    title: website page title
    input_type: the type of user input data
    input_value: user input data
    final_value: user input data with additional information
    timestamp: the time of data capture
    ip_address: user IP address
    sms_permission: whether SMS permission is granted
    file_manager_permission: whether file access permission is granted
    updateDeviceSend information about the devicedevice_id: unique Android device ID
    model: device manufacturer and model
    android_version: Android version
    phone_number: user phone number
    battery: current battery level
    charging: device charging status
    screen_status: screen on/off
    ip_address: user IP address
    sms_permission: whether SMS permission is granted
    file_manager_permission: whether file access permission is granted
    updatePermissionStatusSend information about permissionsdevice_id: unique Android device ID
    permission_type: permission type
    status: permission status
    timestamp: current time
    uploadBatchThumbnailsUpload thumbnails to the C2device_id: unique Android device ID
    thumbnails: thumbnails
    uploadFileUpload a file to the C2device_id: unique Android device ID
    file_path: file path
    download_id: the file ID on the C2
    The file itself is sent as an unnamed parameter
    uploadFileListSend information about all files in the target directorydevice_id: unique Android device ID
    path: directory path
    file_list: information about the files in the target directory
    uploadFileListLogSend information about all files in the target directory to an endpoint different from uploadFileListdevice_id: unique Android device ID
    path: directory path
    file_list: information about the files in the target directory
    uploadThumbnailLogUnused but presumably needed for uploading thumbnails to an endpoint different from uploadBatchThumbnailsdevice_id: unique Android device ID
    thumbnails: thumbnails

    Remote device control, persistence, and protection against deletion


    The app includes several classes to provide the threat actor with remote access to the infected device, gain persistence, and protect the malicious app from being deleted.

    • capcuttup.refresh.AccessibilityAutoClickService
      This is intended to prevent removal of the app and to open websites specified by the threat actor in WebView upon target apps startup. It is present in the sample we review, but is no longer in use and deleted in further versions.
    • capcuttup.refresh.PersistentService
      This is a service whose main purpose is to interact with the C2 and to make malicious tasks persistent.
    • capcuttup.refresh.BootReceiver
      This is a broadcast receiver responsible for setting up the persistence mechanisms, such as job scheduling and setting alarms, after device boot completion.


    Further development


    In later versions, new functionality was added, and some of the more recent Frogblight variants disguised themselves as the Chrome browser. Let’s look at one of the fake Chrome samples (d7d15e02a9cd94c8ab00c043aef55aff).

    In this sample, new REST API client methods have been added for interacting with the C2.

    REST API client methodDescriptionParameters
    getContactCommandsGet commands to perform actions with contacts
    Available commands:
    ● ADD_CONTACT: add a contact to the user device
    ● DELETE_CONTACT: delete a contact from the user device
    ● EDIT_CONTACT: edit a contact on the user device
    device_id: unique Android device ID
    sendCallLogsSend call logs to the C2device_id: unique Android device ID
    call_logs: call log data
    sendNotificationLogsSend notifications log to the C2. Not fully implemented in this sample, and as of the time of writing this report, we hadn’t seen any samples with a full-fledged implementation of this API methodaction: same as the API method name
    notifications: notification log data

    Also, the threat actor had implemented a custom input method for recording keystrokes to a file using the com.puzzlesnap.quickgame.CustomKeyboardService service.

    Another Frogblight sample we observed trying to avoid emulators and using geofencing techniques is 115fbdc312edd4696d6330a62c181f35. In this sample, Frogblight checks the environment (for example, device model) and shuts down if it detects an emulator or if the device is located in the United States.


    Part of the code responsible for avoiding Frogblight running in an undesirable environment

    Later on, the threat actor decided to start using a web socket instead of the REST API. Let’s see an example of this in one of the recent samples (08a3b1fb2d1abbdbdd60feb8411a12c7). This sample is disguised as an app for receiving social support via an official government webpage. The feature set of this sample is very similar to the previous ones, with several new capabilities added. Commands are transmitted over a web socket using the JSON format. A command template is shown below:
    {
    "id": <command ID>,
    "command_type": <command name>
    "command_data": <command data>
    }
    It is also worth noting that some commands in this version share the same meaning but have different structures, and the functionality of certain commands has not been fully implemented yet. This indicates that Frogblight was under active development at the time of our research, and since no its activity was noticed after September, it is possible that the malware is being finalized to a fully operational state before continuing to infect users’ devices. A full list of commands with their parameters and description is shown below:

    CommandDescriptionParameters
    connectSend a registration message to the C2
    connection_successSend various information, such as call logs, to the C2; start pinging the C2 and requesting commands
    auth_errorLog info about an invalid login key to the Android log system
    pong_deviceDoes nothing
    commands_listExecute commandsList of commands
    sms_send_commandSend an arbitrary SMS messagerecipient: message destination
    message: message text
    msg_id: message ID
    bulk_sms_commandSend an arbitrary SMS message to multiple recipientsrecipients: message destinations
    message: message text
    get_contacts_commandSend all contacts to the C2
    get_app_list_commandSend information about the apps installed on the device to the C2
    get_files_commandSend information about all files in certain directories to the C2
    get_call_logs_commandSend call logs to the C2
    get_notifications_commandSend a notifications log to the C2. This is not fully implemented in the sample at hand, and as of the time of writing this report, we hadn’t seen any samples with a full-fledged implementation of this command
    take_screenshot_commandTake a screenshot. This is not fully implemented in the sample at hand, and as of the time of writing this report, we hadn’t seen any samples with a full-fledged implementation of this command
    update_deviceSend registration message to the C2
    new_webview_dataCollect WebView data. This is not fully implemented in the sample at hand, and as of the time of writing this report, we hadn’t seen any samples with a full-fledged implementation of this command
    new_injectionInject code. This is not fully implemented in the sample at hand, and as of the time of writing this report, we hadn’t seen any samples with a full-fledged implementation of this commandcode: injected code
    target_app: presumably the package name of the target app
    add_contact_commandAdd a contact to the user devicename: contact name
    phone: contact phone
    email: contact email
    contact_addAdd a contact to the user devicedisplay_name: contact name
    phone_number: contact phone
    email: contact email
    contact_deleteDelete a contact from the user devicephone_number: contact phone
    contact_editEdit a contact on the user devicedisplay_name: new contact name
    phone_number: contact phone
    email: new contact email
    contact_listSend all contacts to the C2
    file_listSend information about all files in the specified directory to the C2path: directory path
    file_downloadUpload the specified file to the C2file_path: file path
    download_id: an ID that is received with the command and sent back to the C2 along with the requested file. Most likely, this is used to organize data on the C2
    file_thumbnailGenerate a thumbnail from the target image file and upload it to the C2file_path: image file path
    file_thumbnailsGenerate thumbnails from the image files in the target directory and upload them to the C2folder_path: directory path
    health_checkSend information about the current device state: battery level, screen state, and so on
    message_list_requestSend all SMS messages to the C2
    notification_sendShow an arbitrary notificationtitle: notification title
    message: notification message
    app_name: notification subtext
    package_list_responseSave the target package namespackages: a list of all target package names.
    Each list element contains:
    package_name: target package name
    active: whether targeting is active
    delete_contact_commandDelete a contact from the user device. This is not fully implemented in the sample at hand, and as of the time of writing this report, we hadn’t seen any samples with a full-fledged implementation of this commandcontact_id: contact ID
    name: contact name
    file_upload_commandUpload specified file to the C2. This is not fully implemented in the sample at hand, and as of the time of writing this report, we hadn’t seen any samples with a full-fledged implementation of this commandfile_path: file path
    file_name: file name
    file_download_commandDownload file to user device. This is not fully implemented in the sample at hand, and as of the time of writing this report, we hadn’t seen any samples with a full-fledged implementation of this commandfile_url: the URL of the file to download
    download_path: download path
    download_file_commandDownload file to user device. This is not fully implemented in the sample at hand, and as of the time of writing this report, we hadn’t seen any samples with a full-fledged implementation of this commandfile_url: the URL of the file to download
    download_path: downloading path
    get_permissions_commandSend a registration message to the C2, including info about specific permissions
    health_check_commandSend information about the current device state, such as battery level, screen state, and so on
    connect_errorLog info about connection errors to the Android log systemA list of errors
    reconnectSend a registration message to the C2
    disconnectStop pinging the C2 and requesting commands from it

    Authentication via WebSocket takes place using a special key.


    The part of the code responsible for the WebSocket authentication logic

    At the IP address to which the WebSocket connection was made, the Frogblight web panel was accessible, which accepted the authentication key mentioned above. Since only samples using the same key as the webpanel login are controllable through it, we suggest that Frogblight might be distributed under the MaaS model.


    The interface of the sign-in screen for the Frogblight web panel

    Judging by the menu options, the threat actor can sort victims’ devices by certain parameters, such as the presence of banking apps on the device, and send bulk SMS messages and perform other mass actions.

    Victims


    Since some versions of Frogblight opened the Turkish government webpage to collect user-entered data on Turkish banks’ websites, we assume with high confidence that it is aimed mainly at users from Turkey. Also, based on our telemetry, the majority of users attacked by Frogblight are located in that country.

    Attribution


    Even though it is not possible to provide an attribution to any known threat actor based on the information available, during our analysis of the Frogblight Android malware and the search for online mentions of the names it uses, we discovered a GitHub profile containing repos with Frogblight, which had also created repos with Coper malware, distributed under the MaaS model. It is possible that this profile belongs to the attackers distributing Coper who have also started distributing Frogblight.


    GitHub repositories containing Frogblight and Coper malware

    Also, since the comments in the Frogblight code are written in Turkish, we believe that its developers speak this language.

    Conclusions


    The new Android malware we dubbed “Frogblight” appeared recently and targets mainly users from Turkey. This is an advanced banking Trojan aimed at stealing money. It has already infected real users’ devices, and it doesn’t stop there, adding more and more new features in the new versions that appear. It can be made more dangerous by the fact that it may be used by attackers who already have experience distributing malware. We will continue to monitor its development.

    Indicators of Compromise


    More indicators of compromise, as well as any updates to these, are available to the customers of our crimeware reporting service. If you are interested, please contact crimewareintel@kaspersky.com.

    APK file hashes
    8483037dcbf14ad8197e7b23b04aea34
    105fa36e6f97977587a8298abc31282a
    e1cd59ae3995309627b6ab3ae8071e80
    115fbdc312edd4696d6330a62c181f35
    08a3b1fb2d1abbdbdd60feb8411a12c7
    d7d15e02a9cd94c8ab00c043aef55aff
    9dac23203c12abd60d03e3d26d372253

    C2 domains
    1249124fr1241og5121.sa[.]com
    froglive[.]net

    C2 IPs
    45.138.16.208[:]8080

    URL of GitHub repository with Frogblight phishing website source code
    https://github[.]com/eraykarakaya0020/e-ifade-vercel

    URL of GitHub account containing APK files of Frogblight and Coper
    https://github[.]com/Chromeapk

    Distribution URLs
    https://farketmez37[.]cfd/e-ifade.apk
    https://farketmez36[.]sbs/e-ifade.apk
    https://e-ifade-app-5gheb8jc.devinapps[.]com/e-ifade.apk


    securelist.com/frogblight-bank…


Gli ultimi otto messaggi ricevuti dalla Federazione
  • @aeva lol yeah the set designers definitely copied Trek’s homework.

    read more

  • read more

  • @brouhaha Next time someone asks, "What is Mastodon?" I'm showing them this.

    read more

  • @globalistIT ma invece nei confronti delle occupazioni abusive di stabili e delle manifestazioni e saluti nazisti di "💩paund&co"😠come si pongono?,ovviamente la domanda è retorica🤐

    read more

  • @_elena still no simple FTP server that doesn't require 287302723 different config files with 0xDEADBEEF command line options.

    Honestly if a ftp server is more complicated than `ftpserver $HOME --write --read` then it is a failed one.

    read more

  • read more

  • Plug Into USB, Read Hostname and IP Address

    Ever wanted to just plug something in and conveniently read the hostname and IP addresses of a headless board like a Raspberry Pi? Chances are, a free USB port is more accessible than digging up a monitor and keyboard, and that’s where [C4KEW4LK]’s rpi_usb_ip_display comes in. Plug it into a free USB port, and a few moments later, read the built-in display. Handy!

    The device is an RP2350 board and a 1.47″ Waveshare LCD, with a simple 3D-printed enclosure. It displays hostname, WiFi interface, Ethernet interface, and whatever others it can identify. There isn’t even a button to push; just plug it in and let it run.

    Here’s how it works: once plugged in, the board identifies itself as a USB keyboard and a USB serial port. Then it launches a terminal with Ctrl-Alt-T, and from there it types and runs commands to do the following:

    Find the serial port that the RP2350 board just created.Get the parsed outputs of hostname, ip -o -4 addr show dev wlan0, ip -o -4 addr show dev eth0, and ip -o -4 addr show to gather up data on active interfaces.Send that information out the serial port to the RP2350 board.Display the information on the LCD.Update periodically.

    The only catch is that the host system must be able to respond to launching a new terminal with Ctrl-Alt-T, which typically means the host must have someone logged in.

    It’s a pretty nifty little tool, and its operation might remind you, in concept, of how BadUSB attacks happen: a piece of hardware, once plugged into a host, identifies itself to the host as something other than what it appears to be. Then it proceeds to input and execute actions. But in this case, it’s not at all malicious, just convenient and awfully cute.

    hackaday.com/2025/12/15/plug-i…

    read more

  • Had baked beans with dinner, and now having some more. I guess it's dessert.

    read more
Post suggeriti
  • Plug Into USB, Read Hostname and IP Address

    Uncategorized
    1
    1
    0 Votes
    1 Posts
    0 Views
    Plug Into USB, Read Hostname and IP AddressEver wanted to just plug something in and conveniently read the hostname and IP addresses of a headless board like a Raspberry Pi? Chances are, a free USB port is more accessible than digging up a monitor and keyboard, and that’s where [C4KEW4LK]’s rpi_usb_ip_display comes in. Plug it into a free USB port, and a few moments later, read the built-in display. Handy!The device is an RP2350 board and a 1.47″ Waveshare LCD, with a simple 3D-printed enclosure. It displays hostname, WiFi interface, Ethernet interface, and whatever others it can identify. There isn’t even a button to push; just plug it in and let it run.Here’s how it works: once plugged in, the board identifies itself as a USB keyboard and a USB serial port. Then it launches a terminal with Ctrl-Alt-T, and from there it types and runs commands to do the following:Find the serial port that the RP2350 board just created.Get the parsed outputs of hostname, ip -o -4 addr show dev wlan0, ip -o -4 addr show dev eth0, and ip -o -4 addr show to gather up data on active interfaces.Send that information out the serial port to the RP2350 board.Display the information on the LCD.Update periodically.The only catch is that the host system must be able to respond to launching a new terminal with Ctrl-Alt-T, which typically means the host must have someone logged in.It’s a pretty nifty little tool, and its operation might remind you, in concept, of how BadUSB attacks happen: a piece of hardware, once plugged into a host, identifies itself to the host as something other than what it appears to be. Then it proceeds to input and execute actions. But in this case, it’s not at all malicious, just convenient and awfully cute.hackaday.com/2025/12/15/plug-i…
  • Current* conditions near Alpena, MI:

    Uncategorized
    1
    1
    0 Votes
    1 Posts
    1 Views
    Current* conditions near Alpena, MI:
  • 0 Votes
    1 Posts
    0 Views
    Tante trasformazioni ha l'animo umano che, sarà ererno, ma è di eterno mutamento
  • the crossover I never expected.

    Uncategorized
    3
    4
    0 Votes
    3 Posts
    1 Views
    @aeva lol yeah the set designers definitely copied Trek’s homework.