FontOnLake 是一个经过精心设计并且在持续发展的恶意软件家族。此类恶意软件以 Linux 系统为目标,会伪装成实用工具软件例如 kill、cat、ssh 等,具备收集登录凭据,充当代理服务器,执行 shell 命令等后门能力,并且会利用内核态 rootkit 来隐藏自身的存在。使用 FontOnLake 的攻击者十分谨慎,目前观察到的样本都使用不同的 C&C 服务器地址,常用高端口,而且当样本出现在公开平台(例如https://s.threatbook.cn/)之后,样本使用的 C&C 服务器就不再处于活动状态。近期,微步参与一起有关 FontOnLake 恶意软件的攻击事件分析取证。经过分析,有如下发现:
微步通过对相关样本、IP和域名的溯源分析,共提取5条相关 IOC,可用于威胁情报检测。微步威胁感知平台 TDP 、本地威胁情报管理平台 TIP 、威胁情报云 API 、云沙箱 S、主机威胁检测与响应平台 OneEDR 、互联网安全接入服务 OneDNS 等均已支持对此次攻击事件和团伙的检测。OneDNS 可以实现自动拦截阻断,在 DNS 解析环节碰撞情报,在 C&C 服务器反连时直接拦截恶意域名,避免真实的攻击危害发生,保护员工安全上网。
近期,微步参与一起有关 FontOnLake 恶意软件的攻击事件分析取证。在此次攻击事件中观察到的攻击剧本如下:
攻击者扫描到攻击目标的一个 web 服务存在 Yii 框架远程命令执行漏洞。
通过 wget 下载系统对应版本的 FontOnLake 恶意软件。
在机器上进行信息收集,会重点关注到 .ssh/ 下面的证书文件。
利用 NATBypass 内网穿透端口转发工具,将内网的 ssh 端口转发到公网服务器。
使用 ssh_scan 工具对 ssh 端口进行爆破。
使用 Ladon 的 go 版本以及 fscan 对内网进行快速扫描。
使用的工具说明:
| | | |
| https://github.com/cw1997/NATBypass | | READNE.md为简体中文的,流行于使用简体中文的黑客人群 |
| https://github.com/mozilla/ssh_scan | | |
| https://github.com/k8gege/Ladon | | READNE.md为简体中文的,流行于使用简体中文的黑客人群 |
| https://github.com/shadow1ng/fscan | | READNE.md为简体中文的,流行于使用简体中文的黑客人群 |
1、样本基本信息
| 4e848ed5c5f2c42002294af0e651a44c20de3aca969c771dc22c1a262fb9aeda |
| 84769a0cf787073f971c6bf33627bcd2 |
| 15c5984530a9155f58eadc454306ff2dd185678e |
| ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, no section |
| |
脱壳后样本信息:
| c9bd8801b6605c6a9912afabfdaf41767fc2609d342a53f6b77bb60e42714aaa |
| d7d84656af6e259b1f50ff66802a1415 |
| 94e7cf38629644aeb1dcd1071e3b6ad18f44b971 |
| ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=4ae09befafb3cb6c2ce9fda729c54f326e1aafe8, stripped |
| |
2、脱壳后样本的S沙箱动态分析
样本的多杀软引擎判定结果,其中 ESET 将该样本识别为 FontOnLake 恶意软件。样本的执行流程,其中有将模块载入 Linux 内核的敏感行为(insmod /tmp/.tmp_C6MBUk),清空 dmesg 环形缓冲区中的日志的敏感行为(dmesg -c)。样本的 URL 请求,从 C&C 服务器拉取 iplist 文件。3、静态分析
从样本的 main 函数开始。主进程首先调用 fork 函数生成子进程。主进程调用函数 sub_44384B,其功能为:生成临时文件 /tmp/.tmp_xxxxxx,写入内核模块内容,然后使用 insmod 命令进行安装,用 dmesg 清除 dmesg 的输出,并通过 unlink 删除临时文件。主进程进入 while 循环,执行命令 ./sshd -e ssh_host_ecdsa_key -d ssh_host_dsa_key -r ssh_host_rsa_key -p 65439 127.0.0.1。在本机监听65439端口,使用提供的 key。主进程等待子进程的结束。连接该机器的用户和密码设置为 root 和123456子进程动态获取 C&C 服务器的 IP 地址和端口。该样本的请求 URL 为 http://8.218.59.26:65130/iplist。响应是 base64 解码,由 AES-128-CBC 使用密钥 M4InzQpqqC18d1KL 和 IV T4kP7mzlYR8DaLU3 解密。响应结果的格式为 <ip>:<port>,然后进行连接。样本的后门模块中有v6.0.3的字符串,表示其样本版本号为6.0.3。后门命令符合6.0.3的特点。
在此次攻击事件中,攻击者在 Linux 服务器上利用 rootkit 来隐藏 FontOnLake 恶意软件的网络连接、文件、进程等,而该 rootkit 是基于开源项目 Suterusu。无独有偶,此次攻击事件的受害者也曾是 Winnti 组织的攻击受害者,而 Winnti 组织常用的 rootkit 也是基于开源项目 Suterusu。结合攻击者大量使用的只有简体中文说明的工具特点,攻击者似乎与 Winnti 组织存在千丝万缕的关系。
在此次攻击事件中观察到的技术点:
| | | |
| | | FontOnLake 可以收集 ssh 登录凭证。 |
| Exploit Public-Facing Application | |
| | Command and Scripting Interpreter:Unix Shell | 攻击者通过 wget 下载系统对应版本的FontOnLake。 |
| Command and Scripting Interpreter:Python | FontOnLake 可以运行 python 脚本。 |
| | FontOnLake 可以调用 fork() 运行定制化 ssh 服务。 |
| | FontOnLake 替换 cat 等标准工具为木马。 |
| | Boot or Logon Autostart Execution:Kernel Modules and Extensions | FontOnLake 的 rootkit 可以实现开机自启动。 |
| Boot or Logon Initialization Scripts | FontOnLake 创建系统启动脚本 ati_remote3.modules。 |
| Compromise Client Software Binary | |
| | Deobfuscate/Decode Files or | FontOnLake backdoors 通过 AES 加密 C&C 地址和通信。 |
| File and Directory Permissions Modification: Linux and Mac File andDirectory Permissions Modification | FontOnLake backdoor 可以修改文件权限。 |
| | FontOnLake 通过 rootkit 隐藏自身通信和进程。 |
| Hide Artifacts: Hidden Files and Directories | FontOnLake 通过 rootkit 隐藏文件。 |
| Obfuscated Files or Information | FontOnLake 使用 UPX 进行加壳保护。 |
| | FontOnLake 使用 rootkits 来隐藏自身的行为,如进程、文件、网络连接和驱动。 |
| | Modify Authentication Process | FontOnLake 修改 sshd 获取登录凭证。 |
| | File and Directory Discovery | FontOnLake backdoors 可以列出目录和文件。 |
| System Information Discovery | |
| | | FontOnLake 收集 ssh 登录凭证,可用于横向移动。攻击者使用 ssh_scan 进行内网 ssh 服务扫描。 |
| Exploitation of Remote Services | 攻击者使用 Ladon、fscan 对内网进行快速扫描。 |
| | | 攻击者使用 NATBypass 进行内网穿透和端口转发。 |
| Application Layer Protocol: Web | FontOnLake 通过 HTTP 获取额外 C&C 地址。 |
| Application Layer Protocol: File | FontOnLake 可以通过 FTP 下载 pyhton脚本。 |
| Data Encoding: Standard Encoding | FontOnLake 使用 base64 编码 HTTPS 响应。 |
| | FontOnLake 通过 HTTP 下载 C&C 服务器的 IP 和端口。 |
| Encrypted Channel: Symmetric | FontOnLake 使用 AES 加密与 C&C 服务器的通信。 |
| | FontOnLake 可以使用动态 DNS。rootkits 还会侦听特制数据包,这些数据包指示它下载并执行文件。 |
| Non-Application Layer Protocol | FontOnLake 通过 TCP 与 C&C 服务器通讯 |
| | |
| | Exfiltration Over C2 Channel | |
1. 内容转载,请微信后台留言:转载+转载平台
2. 内容引用,请注明出处:以上内容引自公众号“微步在线研究响应中心”
点击下方,关注我们
第一时间获取最新的威胁情报
文章来源: http://mp.weixin.qq.com/s?__biz=Mzg5MTc3ODY4Mw==&mid=2247495877&idx=1&sn=144bb096571edac637f9e7cfc9ac7020&chksm=cfca93d1f8bd1ac7b5832a3af713ebfa3104e12c21ff97f7a0260567e64f2bca8a93592ef6a2#rd
如有侵权请联系:admin#unsafe.sh