首页 > 菜鸟学院 > 深入分析新型POS机木马LogPOS

深入分析新型POS机木马LogPOS

时间:2015-03-12 | 来源:互联网 | 阅读:169

话题: 漏洞 木马 网络安全


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

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

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

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

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

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

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


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

检测方法

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

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


湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网