用户数据是黑客最感兴趣的之一,原因很简单就是因为可以变现获利。比如,窃取的数据可以用于转账到犯罪分子的账号、预订商品和服务,还可以在黑市售卖。2019年上半年,有超过94万用户被收集用户数据的恶意软件攻击。而2018年同期,只有不到60万用户被攻击。这种威胁称作Stealer Trojans(信息窃取器木马)或Password Stealing Ware (PSW,密码窃取恶意软件),是一类专门从受害者计算机中窃取密码、文件和其他数据的恶意软件。
信息窃取器木马攻击的用户分布(2019年上半年)
在过去6个月,卡巴斯基研究人员在俄罗斯、德国、印度、巴西、美国和意大利检测到这类恶意软件的数量最多。
窃取了什么?
这类信息窃取器一般会出现在恶意软件买卖的论坛上。每个提供类似产品的都会对其产品打广告,描述其功能。
信息窃取器出售公告
根据研究人员的分析,一般信息窃取器的功能包括:
· 从浏览器收集以下信息:
-密码
-自动填充数据
-支付卡信息
-Cookie
· 复制文件:
-从特定目录复制所有文件,如桌面
-特定后缀的文件,如txt,docx
-特定app的文件,比如加密货币钱包、即使通信session文件等
· 转发系统数据:
-操作系统版本
-用户名
-IP地址
· 窃取不同应用的账号,如FTP客户端、VPN、RDP等。
· 截屏。
· 从互联网下载文件。
Azorult这样的多功能信息窃取恶意软件可以获取受害者计算机的几乎所有数据:
· 全部系统信息,比如安装的软件、运行的进程、用户或计算机名、系统版本。
· 邮件信息,比如CPU、监视器、视频卡等。
· 几乎所有知名浏览器中保存的密码、支付卡信息、cookie、浏览历史,PHP大马。
· 邮件、FTP、即时通信客户端的密码。
· 即时通信的文件。
· Steam游戏客户端文件。
· 超过30种加密货币持续的文件。
· 截屏。
· 特定类型的文件,如%USERPROFILE%\Desktop\ *.txt,*.jpg,*.png,*.zip,*.rar,*.doc表示桌面上所有特定扩展的文件。
为什么要收集桌面的文件呢?因为用户常用的文件都保存在桌面上。而txt文件一般含有常用的密码,工作文档可能含有受害者公司的机密数据。
Trojan-PSW.Win32.Azorult攻击用户的地理分布 (2019年上半年)
这些特征都促使Azorult成为了传播最广泛的信息窃取器木马,研究人员发现Azorult占所有被Trojan-PSW类型恶意软件攻击用户的超过25%。
在购买或创建了这类恶意软件后,犯罪分子就会开始传播。最常见的方式就是发送含有恶意附件的邮件。除此之外,信息窃取器还可以通过僵尸网络进行传播。
如何从浏览器窃取密码?
在窃取浏览器数据方面,几乎所有的信息窃取器都使用同样的方式。
Google Chrome和基于Chromium的浏览器
在基于Chromium开源代码的浏览器中,保存的密码都是受DPAPI (Data Protection API)保护的。浏览器自己的存储就是这个目的,是通过SQLite数据库实现的。只有创建这些密码的OS用户才可以从数据库中提取密码,而且只能在加密所有的电脑上提取。这是通过特定的加密实现保证的,其中加密过程中使用了计算机和系统用户的信息。因此除了特定用户是无法获取密码的。
对已经入侵了计算机的信息窃取木马来说,这并不难,因为本身就是OS用户权限运行的,提取浏览器中保存的数据的过程如下:
· 提取数据库文件。基于Chromium的浏览器会以标准不可变的路径来保存文件。为了避免出现访问的问题,信息窃取器木马可以将文件复制到另一个文件并终止所有浏览器进程。
· 读取加密数据。如上所述,浏览器使用标准工具就可以读取SQLite数据库中的数据。
· 解密数据。解密的过程需要在原来的计算机中实现,这也不是问题,yin为解密过程就是通过调用函数CryptUnprotectData来直接在受害者计算机上实现的。
Stealer Trojan Arkei代码示例 (解密从基于Chromium的浏览器中获取的数据)
浏览器中保存的密码、银行卡信息、浏览历史都被提取出来了,并会发送到犯罪分子的服务器上。
Firefox和基于Firefox的浏览器
基于Firefox的浏览器的密码加密过程有一点不同,但对信息窃取器来说是非常简单的。
在Firefox浏览器中,加密过程使用了Network Security Services nss3.dll库,这是来自Mozilla的用于开发安全app的库。提取浏览器中保存的数据的过程如下:天天好彩
· 提取数据库文件。基于Firefox的浏览器会生成随机用户名使用户无法了解加密数据文件的位置。但攻击者知道文件夹路径,因此也可以用特定名来进行检查和分类。而且如果用户删除浏览器后,该数据仍然可以保存,这也是许多信息窃取器利用的一个漏洞点。
· 读取加密数据。数据可以保存为Chromium (SQLite格式),也可能保存为含有加密数据域的JSON文件格式。
· 数据解密。要解密数据,信息窃取器就要加载nss3.dll库,然后调用不同的函数并获取可读格式的解密数据。一些信息窃取器有直接与浏览器文件交互的函数,这样即使浏览器被卸载仍然可以进行操作。但如果数据保护函数使用了master password,没有password进行解密是不可能的。但该功能默认情况下是被禁用的,而且启用方式在设置菜单的很深层,很难找到。
信息窃取木马Orion代码段(解密基于Firefox的浏览器数据)
然后数据就会被转发到犯罪分子处。
IE和Edge浏览器
IE 4.X到6.0版本中,保存的密码和自动填充数据都保存在所谓的Protected Storage受保护存储区域中。为了提取这些数据,信息窃取器需要加载pstorec.dll库,并获取开放格式的所有数据。
IE 7和8使用了一种不太一样的方式:保存的位置位于Credential Store,加密过程还加了盐salt。但salt值是不变的,所有信息窃取器可以调用相同的CryptUnprotectData函数来获取所有保存的密码。
IE 9和Edge使用了一种新的存储方式——Vault。它在数据获取方面是一样的:信息窃取器加载vaultcli.dll,调用多个不同的函数,提取保存的数据。
即使数据存储方法有一些变化也无法预防信息窃取器读取数据。
其他
代码重用
研究人员在分析信息窃取器代码时发现一些代码似曾相识。其中的原因可能是因为这些信息窃取器的开发者是相同的,完成一个项目后将其作为其他项目的基础,比如Arkei和Nocturnal的背后就是同一个开发者。
Arkei和Nocturnal代码比较
造成这种相似性的另一个原因是代码借用。Arkei的源码被其开发者在地下论坛出售,然后变成了另一个信息窃取器Vidar的基础。这些木马有很多的共同点,包括数据获取的方式、接受命令的格式,以及发给C2服务器的数据格式。
发往C2服务器的数据格式:Arkei和Vidar
不需要太多专业知识
尽管有许多的信息窃取器,但用来窃取特定信息的木马都有一些共同的特征。比如,Trojan-PSW.MSIL.Cordis只从Discord的session中获取信息。该木马的源代码就非常简单,就是搜索一个文件然后发送到C2服务器。
Cordis代码样本
这类木马一般不会出售,但源码任何人都可以编译,因此是很常见的。
Trojan-PSW.MSIL.Cordis攻击用户的地理分布, 2019年上半年
使用不同的编程语言
虽然大多数信息窃取器木马都是用C/C++/C#等主流编程语言开发的,但也有一些用Golang这样不常见的编程语言开发的。Trojan-PSW.Win32.Gox就是一个例子,它可以窃取Chromium浏览器中保存的密码、支付卡信息、加密货币程序文件和Telegram文件。
Trojan-PSW.Win32.Gox攻击用户的地理分布, 2019年上半年
总结
用户经常会将重要的数据保存到浏览器。比如,把密码和银行卡信息自动填充非常方便。但研究人员建议不要将重要的信息保存到浏览器,因为浏览器所用的保护方法对恶意软件来说没有任何作用。恶意软件对浏览器数据的兴趣和攻击有增无减。如今的信息窃取木马不断更新、加入新的功能,甚至可以从生成一次性验证码的app窃取2FA数据。
鉴于此,研究人员建议使用一些特殊的软件来存储在线账户的密码和银行卡信息,不要下载和运行可疑文件,不要点击可疑邮件中的链接等。