Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

新型密码窃取木马:AcridRain

0
0

新型密码窃取木马:AcridRain

本文将介绍一种名为AcridRain的新型密码窃取软件,它在过去的2个月内更新频繁。

一、简介

AcridRain是一款用C/C++编写的新型密码窃取软件,最早于2018年7月11日在黑客论坛出现。它可以从多种浏览器窃取凭证,cookies及信用卡信息。除此之外,还有转储Telegram和Steam会话、抢占Filezilla连接等功能。详细介绍见下文:


新型密码窃取木马:AcridRain
新型密码窃取木马:AcridRain

这款恶意软件团队由2名销售人员和1名开发人员组成:

Actor

Job

Known Telegram ID

PERL

seller

@killanigga, @Doddy_Gatz

2zk0db1

seller

@dsl264

Skrom

developer

@SkromProject, @KillM1

二、技术细节:

本节将重点介绍我们捕获的第一个 AcridRain样本

快速浏览二进制代码,我们发现它没有被封装或拆分。有一些可用的调试信息,如PDB路径:c:\users\igor1\source\repos\stealer ar\release\stealer ar.pdb(ar为AcridRain简写),还有一些其他的字符串来帮助我们进行逆向分析。

初始化

在窃取设备中的数据之前,AcridRain需要对自身进行配置,以便正常运行。首先,它会检索环境变量:

Temporary path Program files path Etc

完成后,它会继续通过检测注册表值来获取程序路径。像Steam路径,Telegram可执行文件中图标的名称和资源索引的完整路径(用于获取二进制路径)。


新型密码窃取木马:AcridRain

在这之后,将生成Telegram的会话字符串,然后检测是否生成成功(如下图)


新型密码窃取木马:AcridRain
最后,恶意软件通过创建一个包含所有被窃取数据的ZIP来完成初始化。这个ZIP在临时文件夹中创建并含有时间戳信息,例如:C:\Users\[UserName]\AppData\Local\Temp\2018-08-20 23-10-42.zip (代码如下图)
新型密码窃取木马:AcridRain
Google Chrome引擎

恶意软件最先窃取来自Chrome浏览器的凭证,cookies及信用卡信息(如下图),AcridRain将以下浏览器作为目标:Amigo, Google Chrome, Vivaldi, Yandex browser, Kometa, Orbitum, Comodo, Torch, Opera, MailRu, Nichrome, Chromium, Epic Privacy browser, Sputnik, CocCoc, and Maxthon5.


新型密码窃取木马:AcridRain

在分析中,一些特殊的字符串让我们找到了凭证如何被窃取并加密的原因。在下图中,我们可以看到恶意软件作者使用了一个名为browser-dumpwd-master的项目。Google这个目录名字,我们找到了放在GitHub上的POC( https://github.com/wekillpeople/browser-dumpwd ),里面介绍了如何窃取Chrome和Firefox的证书。然而,这个项目中并没有miniz.h或zip.c,我们将在后面看到它们从何而来。不出所料,作者借鉴了POC代码,来实现Chrome / Firefox凭证的窃取。


新型密码窃取木马:AcridRain
窃取Chrome凭证 窃取证书非常简单。根据DumpChromeCreds (0x4017F0)的给定输入,恶意软件根据用户数据选择合适的目录。例如,如果输入0x1,那么恶意软件将使用目录 C:\ Users \ [USER] \ AppData \ Local \ Google \ Chrome \ User Data \ Default,如果是0x3,则它将是 C:\ Users \ [USER] \ AppData \ Local \ Yandex \ YandexBrowser \ User Data \ Default等。每个浏览器的值如下所示:
新型密码窃取木马:AcridRain

为了确定哪个凭据来自哪个浏览器,恶意软件设置了特殊的头,这些头和凭据被放在临时文件夹%TEMP%的result.txt内。一旦选择了浏览器,头就会入结果文件中(如下图)。


新型密码窃取木马:AcridRain

创建完头之后,恶意软件调用dump_chromesql_pass (0x401BC0)来dump所有凭据。它将SQLite数据库登录数据的副本复制到之前选择的用户数据目录中的templogin中,以避免锁定数据库。然后,它打开数据库并使用SQLite进行请求(代码如下图)。


新型密码窃取木马:AcridRain

在上图中我们可以看到,sqlite3_exec通过回调来dump凭据。chrome_worker 函数(0x401400)用于从登录表中检索特定信息。恶意软件将保护origin_url,username_value和password_value字段的信息。密码使用CryptProtectData进行加密,因此要获取纯文本,需要使用CryptUnprotectData函数。若所有信息都窃取完成,会将其保存到文件中(如下图)


新型密码窃取木马:AcridRain

窃取完所有浏览器的证书后,恶意软件将dump cookies信息。

窃取Chrome cookies

Dump cookies由函数DumpChromeCookies (0x402D10)实现,在browser-dumpwd项目中没有窃取cookies的功能,所以作者借鉴了凭据窃取函数,对其进行修改,来窃取cookie。窃取的信息放在result_cookies.txt。和凭据窃取函数一样,也有头信息,但是,正如我们在下图中看到的那样,一些头发生了变化。


新型密码窃取木马:AcridRain

函数dump_chromesql_cookies(0x403300)将创建 名为 templogim(sic)的SQLite Cookies副本。然后发出以下SQL请求: SELECT host_key,name,path,last_access_utc,encrypted_value FROM cookies; 。这个SQL查询使用回调chrome_cookies_worker(0x401E00,如下图)


新型密码窃取木马:AcridRain

然后,与凭据窃取功能一样,cookie将使用CryptUnprotectedData 解密encrpted_value列,并以Netscape格式将所有内容保存在result_cookies.txt中(如下图)。


新型密码窃取木马:AcridRain
窃取Chrome信用卡信息

用于dump信用卡信息的是函数DumpChromeCreditsCards (0x402970)。和盗取cookie一样,dump信用卡信息也是对凭据窃取函数进行借鉴后再进行小的修改。盗取的信息保存在result_CC.txt中(也是在%TEMP%目录)。通过头可以识别是从哪个浏览器窃取的信息。写入头信息后,恶意软件将调用dump_chromesql_cc (0x4031D0),为Web数据创建一个名为templogik(sic)的副本,加载进入数据库后,将执行以下查询:

SELECT credit_cards.name_on_card,
credit_cards.expiration_month,
credit_cards.expiration_year,
credit_cards.card_number_encrypted,
credit_cards.billing_address_id,
autofill_profile_emails.email,
autofill_profile_phones.number,
autofill_profile_names.first_name,
autofill_profile_names.middle_name,
autofill_profile_names.last_name,
autofill_profile_names.full_name,
autofill_profiles.company_name,
autofill_profiles.street_address,
autofill_profiles.dependent_locality,
autofill_profiles.city,
autofill_profiles.state,
autofill_profiles.zipcode
FROM autofill_profile_emails,
autofill_profile_phones,
autofill_profiles,
autofill_profile_names,
credit_ cards

对信用卡信息进行回调的函数是chrome_credit_cards_worker(0x402080)。一旦获取到数据,就会对信用卡号进行解密,并将信息保存在result_CC.txt中,如下图:


新型密码窃取木马:AcridRain
Firefox引擎

窃取Firefox凭据的函数DumpFirefoxCreds (0x403600)是对browser-dumpwd项目POC代码借鉴后再进行轻微修改得到的。恶意软件首先会从C2服务器下载额外的库文件,这些DLL来自Mozilla,用来解密Firefox中的凭据信息。作者用libcurl 7.49.1来连接服务器,所请求库文件放在C2服务器的根目录下,是一个名为Libs.zip的ZIP压缩包。下载后将位于%TEMP%目录,并更名为32.zip(如下图)


新型密码窃取木马:AcridRain

这些文件使用 https://github.com/kuba /zip 提到的zip库来提取。在这个项目里我们可以找到之前字符串标签里缺失的2个文件(miniz.h, and zip.c)。包含5个DLL文件,分别为freebl3.dll, mozglue.dll, nss3.dll, nssdbm3.dll, and softokn3.dll.

窃取Firefox凭证

AcridRain窃取的Firefox凭证和Chrome凭证一样,都保存在result.txt中。正如预期的那样,过程是一样的。首先将头写入与目标浏览器相关联的报表文件。然后窃取凭证(如下图)。目标浏览器包括Firefox,Waterfox,Pale Moon,Cyberfox,Black Hawk和K-Meleon。


新型密码窃取木马:AcridRain

首先dump_firefox_passwords (0x403E60)函数会从nss3.dll下载所需的函数。这些函数为NSS_Init, NSS_Shutdown, PL_ArenaFinish, PR_Cleanup, PK11_GetInternalKeySlot, PK11_FreeSlot, and PK11SDR_Decrypt(如下图)


新型密码窃取木马:AcridRain

加载函数后,AcridRain将检索Profile0的路径。为此,它会读取%APPDATA%中相应浏览器的profile.ini,并提取与Profile0关联的文件夹的路径(如下图)。这是由GetFirefoxProfilePath(0x403500)函数完成的。


新型密码窃取木马:AcridRain

为了获取凭证,恶意软件会查找ogins.json和signons.sqlite这两个文件。这个json文件由browser-dumpwd项目中parson.c里的by decrypt_firefox_json (0x403930)函数进行解析。从json中检索的值为hostname, encryptedUsername和encryptedPassword。 用户名和密码用nss3.dll中的DecryptedString (0x403430)函数进行解密。


新型密码窃取木马:AcridRain
一旦从json中dump出凭证,就会执行回调fi

Viewing all articles
Browse latest Browse all 12749