深入分析新型POS机木马LogPOS

近几年POS恶意软件活动频繁,本文就2015年发现的一个新成员LogPOS样本进行分析。该恶意软件的一个重要的特点是其利用了邮件槽,可以躲避传统的检测机制。

[[128908]]

此外,在该样本中,主程序创建了邮件槽,并作为邮件槽服务器,而注入到各个进程中的代码则作为客户端,它们将获取到的信用卡号码写入邮件槽,然后通过邮件槽直接将数据传输出去。

前言

在这之前,已经有过一次POS恶意软件的恶意活动。

2014年,Jeremy Humble和我发现了2个未曾曝光过的POS恶意软件家族,接着在2015年我们又发现了一个POS恶意软件的新家族。这次发现的恶意软件我们命名为“LogPOS”,它跟前段时间发现的POS恶意软件有几个显著的差异。

在本文接下来的部分中,我们将对LogPOS进行详细分析,该样本哈希值为:

af13e7583ed1b27c4ae219e344a37e2b。

科普:邮件槽(Mailslots)

Windows系统中提供了几种进程间通信的方式,邮件槽(Mailslots)就是其中的一种。

邮件槽提供进程间单向通信能力,任何进程都能建立邮件槽成为邮件槽服务器。其它进程,称为邮件槽客户,可以通过邮件槽的名字给邮件槽服务器进程发送消息。进来的消息一直放在邮件槽中,直到服务器进程读取它为止。一个进程既可以是邮件槽服务器也可以是邮件槽客户,因此可建立多个邮件槽实现进程间的双向通信。

通过邮件槽可以给本地计算机上的邮件槽、其它计算机上的邮件槽或指定网络区域中所有计算机上有同样名字的邮件槽发送消息。广播通信的消息长度不能超过400字节,非广播消息的长度则受邮件槽服务器指定的最大消息长度的限制。

邮件槽与命名管道相似,不过它传输数据是通过不可靠的数据报(如TCP/IP协议中的UDP包)完成的,一旦网络发生错误则无法保证消息正确地接收。不过邮件槽有简化的编程接口和给指定网络区域内的所有计算机广播消息的能力,所以邮件槽不失为应用程序发送和接收消息的一种好的选择。#p#

深入分析

几乎在看到该样本的那一刻,一个字符串在我脑海中浮现出来:

\\.\mailslot\LogCC。

在大多数的POS变种中,都是利用一个进程读取其他进程的内存,然后将发现的跟踪数据写入到日志中。因为LogPOS将代码注入到了各种进程中,然后令其搜索各个进程的内存,所以此时无法使用日志,因为它们不能同时以写入访问模式打开同一个文件。所以,LogPOS选择使用了邮件槽。

使用邮件槽进行通信或存储对恶意软件来说并不是一种新机制,在火眼(FireEye)关于APT28的一份报告中,它提到该组织曾使用过邮件槽“check_mes_v5555”。邮件槽是一种IPC机制,它允许多个客户端向服务器发送消息。在本文所分析的样本中,主程序创建了邮件槽,并作为邮件槽服务器,而注入到各个进程中的代码则作为客户端,它们将获取到的信用卡号码写入邮件槽,然后通过邮件槽直接传输到C2。

在程序执行的开始处,程序以邮件槽名字\\.\mailslot\LogCC为参数调用了CreateMailslotA函数。

 

如果邮件槽创建失败,程序将会退出;否则,程序将进入一个无限循环,并按顺序执行下面的函数:

1、休眠500毫秒
2、遍历进程
(1)与白名单进行比较
(2)将shellcode注入到进程中(如果不在白名单中)
(3)扫描信用卡跟踪信息
(4)使用Luhn算法进行验证
3、读取邮件槽
4、将数据发送出去

最有趣的是注入的代码,所以接下来我们将更详细地对其进行分析。

在遍历进程(如上所述)时,恶意软件会将进程名与白名单进行比对,白名单主要包含以下名字:

windbg.exe
logounui.exe
taskmgr.exe
skype.exe
thunderbird.exe
devenv.exe
steam.exe
winlogon.exe
wininit.exe
csrss.exe
smss.exe
svchost.exe
firefox.exe
chrome.exe
explorer.exe
psi.exe
pidgin.exe
System

实现比较字符串功能的代码如下所示:

一旦发现某个进程名不在白名单中,就会利用函数WriteProcessMemory将代码注入到该进程的内存空间。Shellcode所做的第一件事就是寻找kernel32的基地址,利用其开始创建导入模块。寻找kernel32的方法在很多博客中都已经总结的很详细了。

一旦发现了基地址,shellcode将开始通过自己的哈希技术重建入口。一些哈希和对应值的列表如下所示。

建立入口之后,恶意软件会以文件名\\.\mailslot\LogCC为参数调用函数CreateFileA来获取一个用于写操作的文件句柄。

当扫描内存时,恶意软件将使用一个自定义搜索算法来查找跟踪信息的常见的标志。

然后,将找到的信息传递给实现的Luhn算法来进行验证。一旦此信息有效,则它们将会被发送到邮件槽中,以供后面主程序的读取。当按顺序增加一个数字后,恶意软件将创建一个格式化字符串,并将该信息发送到远程站点上。

然后,数据被发送到远程站点上(通过HTTP的GET方法)。

站点接收到的内容会被存放在一个表单中(在写本文时,表单内容并未加密)。表单中大部分的号码都在rdpclip和notepad的进程空间中,所以我们猜想可能该恶意软件作者正在测试他们的代码。相应内容和相关IP信息的截图如下图所示。

 #p#

检测方法

因为LogPOS并不是通过扫描文件来获取未加密的信用卡信息,而是利用邮件槽的方法,所以它能够避开传统的检测机制。然而,如果使用类似yara这样的工具的话,将能够很容易地检测到该恶意软件的各种变体。下面的规则将能够帮助你在网络中找到这个恶意工具。

  1. rule LogPOS  
  2. {    meta:  
  3.         author = "Morphick Security" 
  4.         description = "Detects Versions of LogPOS" 
  5.         md5 = "af13e7583ed1b27c4ae219e344a37e2b" 
  6.     strings:  
  7.         $mailslot = "\\\\.\\mailslot\\LogCC" 
  8.         $get = "GET /%s?encoding=%c&t=%c&cc=%I64d&process=" 
  9.         //64A130000000      mov eax, dword ptr fs:[0x30]  
  10.         //8B400C        mov eax, dword ptr [eax + 0xc]  
  11.         //8B401C        mov eax, dword ptr [eax + 0x1c]  
  12.         //8B4008        mov eax, dword ptr [eax + 8]  
  13.         $sc = {64 A1 30 00 00 00 8B 40 0C 8B 40 1C 8B 40 08 }  
  14.     condition:  
  15.         $sc and 1 of ($mailslot,$get)  

除了yara,这种POS恶意软件也能通过它的URI模式被检测出来,下面的签名将能够从网络中检测出该恶意软件。

  1. signature LogPOS {    
  2.     #source: Morphick Security  
  3.     #version: 1  
  4.     #Ref: af13e7583ed1b27c4ae219e344a37e2b  
  5.     ip-proto == tcp  
  6.     dst-port == 80,443  
  7.     http-request /.*encoding\=.*\&t\=.*\&cc\=.*\&process\=.*\&track\=/  
  8.     event "LogPOS Credit Card GET Request Pattern"  
  9.     } 

结论

近几年,POS恶意软件已经在很多方面引起了关注。趋势科技最近报道说,在过去6个月中发现的POS恶意软件变种,比过去几年中发现的都要多。

例如,今年早些时候,Josh Grunzweig发现了一个Alina的新变种,该变种被命名为“eagle”;Trustwave记录了另一个新版本(称为Spark)。然而,随着这一切的发生,新的家族如Getmypass、LusyPOS、Daredevil、NewPOSThings和Backoff的发现历程则才刚刚开始。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/121417.html<

(0)
运维的头像运维
上一篇2025-02-21 21:05
下一篇 2025-02-21 21:06

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注