The Influx of Banking Trojans – A New Variant of BankBot Trojan

Background

Researchers from the security company Dr.Web reported a while back that the source code of a recent untitled Android bank Trojan was leaked to underground hacker forums. Recently, Alibaba Cloud Universal Security has also detected a large number of new Trojans of the BankBot family. These Trojans disguise themselves as Good Weather, Flash Plаyеr, Play Мapкeт, or Follon to hijack mobile devices. Disguised Good Weather applications is believed to have affected users from at least 50 large banks around the world.

Features of the New BankBot Trojan

The new BankBot Trojan has a flexible configuration, and its switches are subject to the control of the server. Instructions issued on the command and control (C&C) server remotely control the BankBot Trojans to steal users' personal information, hijack multiple financial apps around the globe, and phish login interfaces. The BankBot Trojans can then intercept and capture user input data, as well as initiate illegal intrusion to the user's Internet account system.

The Running Process of the Trojan

The flowchart below illustrates a BankBot Trojan's process:

How Does BankBot Trigger the Malicious Code

After the BankBot Trojan starts, it requests the C&C service to determine whether to execute the malicious code. If the server response is not "0," the BankBot Trojan executes the malicious code.

The Trojan hides the icon directly and starts the core service ge45g45gsdfsadfg. The service uses the CPU wake lock to reside in the background.

Core Services

The PARTIAL_WAKE_LOCK mode controls the power state, and the Trojan uses the CPU clock lock to make the core service reside in the background. The malicious behaviors include the following:

  • Force activate the device manager
  • Upload the running environment of the current Trojan, including the device basic information
  • The server issues instructions to implement remote control
  • Start the hijacking service

The pictures below shows the uploading of the Trojan running environment:

The self-encryption algorithm decodes the uploaded data. The decoded result: 3592500503912:1:1:0、3592500503912:(China Unicom)+86186670157**:4.4.2:cn:|AlfaB_RU|
|paypal||UBank|:Nexus 5 (hammerhead):Demom.

The uploaded data tells the control server information such as:

  • The current device ID
  • Whether the Trojan is ready for management
  • Whether the device has a screen-locking password
  • Whether the device has text message blocking configured
  • Whether the user has installed AlfaB, Paypal, and UBank banking apps

The C&C server returns the parsed control instructions, as shown in the table below.

Hijacking Analysis

When the victim opens the legal bank app, the Trojan monitors this behavior, loads the fake bank page, and overwrites the authentic bank app interface. The most important step of interface hijacking is to deceive the victim into accessing the forged login interface, so the counterfeit bank login window is very similar to the authentic window, making it difficult for users to distinguish.

Below are examples of other phishing interfaces.

The victim's device ID is an identifier for interaction with the Trojan control side, and the Trojan forges the counterfeit login interface on the control side based on the bank app on the victim's device. None of the major financial apps of the world are spared, including the well-known Paypal, American Express, the British Barclays Bank, and Royal Bank of Scotland.

Hijacking devices of SDK version 22 and earlier

The figure below shows how the virus reads the related information in the proc folder in the Android system to get the top application package name of SDK version higher than 22.

Getting the top application package name of SDK version higher than 22

If the currently running application matches the banking application that needs to be hijacked, the malicious code contacts the C&C server to return the counterfeit bank login interface and load the interface using the web view. For example, if you open the bank application com.garenti.cepsubesi, the Trojan issues a packageName + deviceId request to receive the phishing page. Such malware phishing pages are in HTML layout, from which we can infer that the hacking product is transformed into a mobile app hijacking phishing product from a website phishing one.

The analysis shows that that the Trojan inserts a piece of JavaScript code into the phishing page, which can send the bank account and password input by the user to the server.

The Trojan can switch on the text message-blocking toggle through the remote command to intercept the authentication message sent by the bank, and delete the authentication message from the inbox.

The attacker successfully intercepts the victim's bank account, password, verification message, and successfully bypasses the two-factor authentication mechanism. In this way, the victim is not only incorporated into the mobile botnet controlled by the attacker but a cash machine of the attacker, like their own private banks.

Conclusion and Security Considerations

BankBot Trojan can easily overpower all functionalities of your banking app, and is a huge risk that puts billions of financial accounts under constant threat. You are recommended to follow the security precautions below to protect yourself from this virus.
1. Users are recommended to download applications only from official websites or safe application marketplaces. Do not click on any suspicious links, especially links sent by unfamiliar "friends" in text messages or chatting tools such as QQ or WeChat.
2. If you are not sure if a virus has infected your mobile phone, you can install mobile phone security software to check the applications in your phone and prevent the installation of malicious apps.

时间: 2024-09-30 21:46:31

The Influx of Banking Trojans – A New Variant of BankBot Trojan的相关文章

绿盟科技网络安全威胁周报2017.09 请关注MSIE Edge任意代码执行漏洞CVE-2017-0037

绿盟科技发布了本周安全通告,周报编号NSFOCUS-17-09,绿盟科技漏洞库本周新增41条,其中高危16条.本次周报建议大家关注Microsoft Internet Explorer/Edge任意代码执行漏洞 CVE-2017-0037 .攻击者通过精心构造的网页可以达到远程代码执行的目的.目前尚无任何补丁,建议大家暂时停用IE和Edge. Microsoft Internet Explorer/Edge任意代码执行漏洞 NSFOCUS ID 35978 CVE ID CVE-2017-003

变体(Variant)与Dispatch调用(IDispatch)

变体(Variant) Variant类型理论上可以存放任何类型的数据,这也是中文很多 人称之为"变体"的原因.对于C++这种强类型语言的程序员来说,存在变体 (Variant)这样的类型是奇怪的.但是对于哪些淡化类型概念的语言(如Visual Basic等) 来说,Variant是它们默认的类型.在VB中,如果没有用As语句声明变量,那么这个变量就是 Variant类型的.对于C++程序员来说,Variant不过是一个超复杂的结构体: typedef /* [wire_marshal

vb6 0-vb.net二进制数组能传给C++DLL的variant变体型吗?

问题描述 vb.net二进制数组能传给C++DLL的variant变体型吗? 调用C++生成的dll,dll接口是variant变体型,vb传一个二进制数组给它,vb6.0能够正常接收,.net提示类型不一致,请问是什么原因? 有什么解决办法吗?DLL是UDP送信的,有很多内存操作,很难修改.用VB也很难实现,现在非常希望能够解决这个问题. 感谢. 解决方案 最好用C封装dll. 或者封装com接口 解决方案二: 这得看C++怎么定义的.你可以在VB.NET中定义一个一样的结构体,结构体内类型对

vb6 0-VB6和.net2012关于变体类型Variant差异。

问题描述 VB6和.net2012关于变体类型Variant差异. 在VB6中调用C++DLL: Dim sndData'缺省类型,自动默认为Variant/empty sndData=data'data为一个二进制数组,赋值结束后sndData的类型自动变为Variant/byte(0 to 65) Result=Msocket.sendto(sndData)'C++接收类型为Variant. 以上代码正常. 在在.net2012中同样情况: Dim sndData As Object'这里不

android studio-as上用build variant release方式运行程序报错

问题描述 as上用build variant release方式运行程序报错 android studio在build.gradle上配置好签名文件,然后build variant release方式运行程序报错,可是我用过可视化界面上打包签名程序,然后指定签名文件,输入密码啊结果是能出来一个release包,但是就是用过variant-release的方式直接运行就报错,卡了好久,有哪位大神帮下,错误见图. 解决方案 mongoDB报错Cannot find module '../build/

delphi could not convert variant of type (null) into type (olestr)

问题描述 delphi could not convert variant of type (null) into type (olestr) procedure TForm3.DBEdit1Change(Sender: TObject); //onchange事件 var i:integer; s:string; xcom:tcomponent; begin for i := 2 to 20 do begin s:='edit'+inttostr(i); xcom:=findcomponent

eclipse-Case variant exists 错误

问题描述 Case variant exists 错误 我下载了一个APP源代码,然后调试好后上传的时候,不小心关闭和删除了程序. 当我再次解压APP的源代码和导入源代码时,就出现错误:case variant exists. 什么问题呢? 解决方案 要么换一个workspace,要么到旧的workspace里把项目给清理掉.

variant-MFC串口通讯COleSafeArray和VARIANT的用法,详见问题

问题描述 MFC串口通讯COleSafeArray和VARIANT的用法,详见问题 我用的是MSComm控件写的串口程序 ,想接收单片机发来的数据BAUD_READY,然后发送"接收成功"给上位机,不知道怎么接收,,COleSafeArray和VARIANT怎么用啊,本人菜鸟,希望各位大神解答!

select-jdbc执行sql 不支持“variant”数据类型。

问题描述 jdbc执行sql 不支持"variant"数据类型. 我一个sql查询表说明字段 select top 100 [value] from sys.extended_properties 在java中使用jdbc执行的时候总是报错,说value是一个变量类型.如下错误 Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 不支持"variant"数据类型. 请问有人遇到过吗,如何解决 解决方