吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16124|回复: 9
收起左侧

[转载] 【转帖】新型Golang恶意软件的详细分析

  [复制链接]
默小白 发表于 2019-2-12 09:40
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!

转自:https://xz.aliyun.com/t/4043

Golang(Go)是一种相对较新的编程语言,然而用这个语言编写的恶意软件却不常见。不过最近随着go语言的不断流行,用这门语言编写的软件慢慢的出现,这也给安全分析人员带来了挑战。在研究过程中,我们发现由于这种语言编写的应用程序体积庞大,在调试器下看起来与使用其他语言编译的应用程序(如C/C++)有很大不同。

最近,我们研究人员观察到一种新型用Go编写的Zebocry恶意软件。详细内容查看:这里

我们在实验室中捕获了一种用Go编写的恶意软件。 这一次,MalwarebytesTrojan.CryptoStealer.Go文件归类为窃取用户信息的软件。这篇文章将详细介绍其功能,同时展示用于分析Go中编写的其他恶意软件的方法和工具。

样本分析

Malwarebytes将此窃取程序命名为Trojan.CryptoStealer.Go

行为分析

在对文件的分析中,我们发现Golang调用了WindowsAPI。这里我们可以使用典型工具进行跟踪调用,例如PIN跟踪器。 我们发现恶意软件会在以下路径中搜索文件:

"C:\Users\tester\AppData\Local\Uran\User Data\"
"C:\Users\tester\AppData\Local\Amigo\User\User Data\"
"C:\Users\tester\AppData\Local\Torch\User Data\"
"C:\Users\tester\AppData\Local\Chromium\User Data\"
"C:\Users\tester\AppData\Local\Nichrome\User Data\"
"C:\Users\tester\AppData\Local\Google\Chrome\User Data\"
"C:\Users\tester\AppData\Local\360Browser\Browser\User Data\"
"C:\Users\tester\AppData\Local\Maxthon3\User Data\"
"C:\Users\tester\AppData\Local\Comodo\User Data\"
"C:\Users\tester\AppData\Local\CocCoc\Browser\User Data\"
"C:\Users\tester\AppData\Local\Vivaldi\User Data\"
"C:\Users\tester\AppData\Roaming\Opera Software\"
"C:\Users\tester\AppData\Local\Kometa\User Data\"
"C:\Users\tester\AppData\Local\Comodo\Dragon\User Data\"
"C:\Users\tester\AppData\Local\Sputnik\Sputnik\User Data\"
"C:\Users\tester\AppData\Local\Google (x86)\Chrome\User Data\"
"C:\Users\tester\AppData\Local\Orbitum\User Data\"
"C:\Users\tester\AppData\Local\Yandex\YandexBrowser\User Data\"
"C:\Users\tester\AppData\Local\K-Melon\User Data\"

这些路径指向浏览器中存储的数据。 我们发现一个事实是其中一条路径指向Yandex浏览器,而该浏览器主要在俄罗斯被广泛使用。

下一个搜索的路径是桌面:

"C:\Users\tester\Desktop\*"

此处我们找到的所有文件都会被复制到%APPDATA%创建的文件夹中:

img

“桌面”文件夹包含从桌面及其子文件夹复制的所有TXT文件。 下面是我们的测试机器示例:

img

当搜索完成后,这个文件被压缩成为:

img

我们可以看到这个数据包被发送到 C&C (cu23880.tmweb.ru/landing.php)

img

内部过程

Golang编译的二进制文件通常很大,所以我们对这个大文件并没有感到奇怪。而这里的样本已经使用UPX打包以减小其大小。 我们可以使用标准UPX进行解压缩。 结果,我们得到了简单的Go二进制文件。 导出表显示了编译路径和一些其他的功能:

img

观察这些导出文件,我们可以了解应用程序内部使用的静态库。

其中的许多功能(与trampoline有关)可以在模块sqlite-3中找到:https://github.com/mattn/go-sqlite3/blob/master/callback.go

函数crosscall2来自Go运行时,它与从C / C ++应用程序调用Go相关(https://golang.org/src/cmd/cgo/out.go)。

工具

为了便于分析,我使用了IDA Pro以及George Zaytsev编写的脚本IDAGolangHelper。 首先,Go可执行文件必须加载到IDA中。 然后,我们可以从菜单(文件 ->脚本文件)运行脚本。 然后,我们会看到以下菜单,可以访问特定功能:

img

首先,我们需要确定Golang的版本(该脚本提供了一些有用的信息)。 我们得到了其版本是Go 1.2。 然后,我们重命名函数并添加标准的Go类型。 完成这些操作后,代码看起来更具可读性。 下面,我们可以看到使用脚本之前和之后的函数视图。

之前(仅导出的函数被命名):

img

之后(大多数函数都自动解析并添加了相关名称):

img

其中许多功能来自静态链接库。 因此,我们需要主要关注注释为main_ *的函数,这些函数特定于可执行文件。

img

代码审计

在函数“main_init”中,我们可以看到在应用程序中使用的模块:

img

它与以下模块静态链接:

分析此功能可以帮助我们进行功能预测:即查看上述库函数的具体内容。我们可以看到它们通过网络进行通信,读取SQLite3数据库并抛出异常。 其他初始化器建议使用正则表达式、zip格式并读取环境变量。

此函数还负责初始化字符串。 我们可以看到其中一些是base64解码的:

img

在字符串初始化中,我们看到对加密货币钱包的引用。

以太坊:

img

门罗币:

img

Golang二进制文件的主要功能是注释“main_main”。

img

在这里,我们可以看到应用程序正在创建一个新目录(使用函数 os.Mkdir)。 这里显示将要复制文件的目录。

之后,有几个Goroutine已经开始使用runtime.newproc。 (Goroutines可以像线程一样使用,但它们的管理方式不同)。 这些线程负责搜索文件,同时Sqlite模块用于解析数据库以窃取数据。

然后,恶意软件将其全部压缩到一个包中,最后,压缩包被上传到C&C服务器。

img

何时窃取?

要查看攻击者究竟对哪些数据感兴趣,我们可以更详细地了解执行SQL查询的函数,并查看相关字符串。

Golang中的字符串以串联形式存储在一起:

img

之后,根据需要检索的内容进行操作。 因此,看看每个字符串被引用的代码中的具体位置并不容易。

下面是代码中打开“sqlite3”数据库的片段(检索长度为7的字符串):

img

另一个例子:通过给定的偏移量和长度,从完整的字符串块中检索此查询:

img

我们来观察这些查询试图获取的具体数据。 获取引用的字符串,我们可以检索并列出所有字符串:

select name_on_card, expiration_month, expiration_year, card_number_encrypted, billing_address_id FROM credit_cards
select * FROM autofill_profiles
select email FROM autofill_profile_emails
select number FROM autofill_profile_phone
select first_name, middle_name, last_name, full_name FROM autofill_profile_names

我们可以看到浏览器的cookie数据库在与在线交易相关的搜索数据中被查询了:信用卡号、到期日以及姓名和电子邮件地址等个人数据。

搜索的文件路径都被存储为base64字符串。 其中许多内容与加密货币钱包有关,但我们也可以找到对Telegram的引用。

Software\\Classes\\tdesktop.tg\\shell\\open\\command
\\AppData\\Local\\Yandex\\YandexBrowser\\User Data\\
\\AppData\\Roaming\\Electrum\\wallets\\default_wallet
\\AppData\\Local\\Torch\\User Data\\
\\AppData\\Local\\Uran\\User Data\\
\\AppData\\Roaming\\Opera Software\\
\\AppData\\Local\\Comodo\\User Data\\
\\AppData\\Local\\Chromium\\User Data\\
\\AppData\\Local\\Chromodo\\User Data\\
\\AppData\\Local\\Kometa\\User Data\\
\\AppData\\Local\\K-Melon\\User Data\\
\\AppData\\Local\\Orbitum\\User Data\\
\\AppData\\Local\\Maxthon3\\User Data\\
\\AppData\\Local\\Nichrome\\User Data\\
\\AppData\\Local\\Vivaldi\\User Data\\
\\AppData\\Roaming\\BBQCoin\\wallet.dat
\\AppData\\Roaming\\Bitcoin\\wallet.dat
\\AppData\\Roaming\\Ethereum\\keystore
\\AppData\\Roaming\\Exodus\\seed.seco
\\AppData\\Roaming\\Franko\\wallet.dat
\\AppData\\Roaming\\IOCoin\\wallet.dat
\\AppData\\Roaming\\Ixcoin\\wallet.dat
\\AppData\\Roaming\\Mincoin\\wallet.dat
\\AppData\\Roaming\\YACoin\\wallet.dat
\\AppData\\Roaming\\Zcash\\wallet.dat
\\AppData\\Roaming\\devcoin\\wallet.dat

不成熟的恶意软件

此恶意软件中使用的一些设计模式提醒我们仍然存在类似的窃取软件,例如Evrial、PredatorTheThief和Vidar。它们有类似的目标,并将被盗数据作为ZIP文件发送给C&C。但是,没有证据证明这个窃取软件的作者与这些案件有联系。

当了解了这个恶意软件的实现和功能时,我们发现它相当简单。它占用空间大是因为其来自许多静态编译的模块。可能这个恶意软件还处于开发的早期阶段,作者可能刚刚开始学习Go并正在进行某些实验。我们将密切关注其发展。

起初,由于它具有庞大的代码库并且大部分人对其结构不熟悉,所以分析Golang编译的应用程序可能会相对困难。但是在适当的工具的帮助下,安全研究人员可以轻松地在这个“迷宫”中进行导航,因为所有的功能都被贴上标签。由于Golang是一种相对较新的编程语言,我们可以预期分析它的工具会随着时间的推移而成熟。

恶意软件是新的攻击趋势吗?现在下定义还有点太早了。但我们知道,拥有对待新语言编写恶意软件的安全意识对我们的非常的重要。

本文为翻译稿件,原文为:https://blog.malwarebytes.com/threat-analysis/2019/01/analyzing-new-stealer-written-golang/

免费评分

参与人数 3吾爱币 +3 热心值 +3 收起 理由
lyrong + 2 + 1 谢谢@Thanks!
YAO21 + 1 + 1 我很赞同!
liboys + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

泰囧熊 发表于 2019-2-12 11:09
虽然看不懂,但是这种热心为论坛的心值得尊敬。。。老大辛苦!
6767 发表于 2019-2-12 12:21 来自手机
大馒头123 发表于 2019-2-12 12:54
YAO21 发表于 2019-2-12 13:59
感谢分享
天宫太祖 发表于 2019-2-12 19:06
谢谢提供,学习了!
shuoGG 发表于 2019-2-21 19:18
有点厉害
Mr.98xp 发表于 2019-2-24 16:02
学渣看着有点复杂.....
朝太阳奔跑2 发表于 2019-2-26 08:34 来自手机
学习到了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 09:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表