对DOTNET(.NET)中的歹意长途拜访进程进行剖析(下)

访客5年前黑客资讯1257

上一篇说到代码会有许多重复,由于它在每个if句子(共有五个if句子,会在下篇讲到)中都会调用一个函数。但是,细节却略有不同,其间给定的办法称号和函数的参数都会显现函数的内容。
之一个if句子在程序会集调用了一个名为okapise的函数,它供给了当前程序的方位、两个称号和一个设置为false的布尔值。据此判别,它或许会履行一个具有给定称号的文件。
第二个if句子会调用一个名为Inj的函数以及字节数组assemblyPart1、两个字符串、三个布尔值以及传递给该程序的参数。由于Inj在许多情况下是Inject的缩写,因而二进制文件或许会在一个进程中自我注入。
第三个if句子会将一个名为mb的函数与四个字符串一同调用,由于在MessageBox(音讯框)中运用了术语body,title,warning和messageonce,mb或许是MessageBox(音讯框)的简写。
第四个if句子调用一个名为d的函数,该函数运用内容dl和字符串作为参数。在检测dl内容时, dl通常是下载的简写,依据这个判别,该函数很或许是一个下载文件。 dl内容的一部分是通过加密的URL,如下所示。
http://helpdesk.ugenv(pg+tpn/download/anyconnect-win+0
第五个if句子会调用一个名为zalepen的函数,该函数运用内容绑定和一个字符串。由于没有可用于检测的内容,因而很难确认这个函数到底是做什么的。别的,该称号也没有供给什么实质性信息。假如字符串中包括单词bind,则意味着歹意软件或许会将自己绑定到某个运转函数上。不过,这仅仅猜想,库中的函数很或许供给有更多的信息。
尽管靠估量和猜想,会得出一些有价值的信息,但必定都不确认。能够必定的是,有必要对这些内容进行检测,不过这些内容在履行之前既没有被写入磁盘,并且还在履行之前现已加密了。为了处理这个问题,能够随时修正代码并中止履行。以下代码片段可用于将解密后的内容写入磁盘。
[...]
File.WriteAllBytes("assemblyPart1.exe", decrypt(Encoding.Default.GetBytes(splitAsset[0]), input, key));
File.WriteAllBytes("assemblyPart2.dll", decrypt(Encoding.Default.GetBytes(splitAsset[1]), input, key));
Environment.Exit(0);
foreach (Type type in assemblyPart2.GetTypes())
{
 [...]
}
[...]
小结
加载程序——第1阶段相似,对这个阶段做个小结也十分有必要,由于存储在库中的函数在dropper的第二阶段中被调用。尽管参数坐落第二阶段,而代码则在dropper的第三阶段履行:
1.依据运转环境的不同,程序的履行要么中止,要么持续;
2.将设置符号,这些符号稍后将界说在库中所履行的函数;
3.这两个参数都加载到内存中;
4.依据符号的不同,库中的给定办法会运用界说的参数履行;
加载程序——第3阶段(第1部分)
依据dnSpy,程序assemblyPart1.exe开端被命名为svchost.exe(版别0.0.0.0),其进口点为71395ebe-8ca7-4156-9647-3b87a2912a86.Method0。这个二进制文件运用了很长且没有意义的字符串进行含糊化处理,具体内容如下所示。
public static void Method0()
{
 AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(cf0a078b-f0ab-4eac-a4a1-af0a05e21cf0.0fc1c616-c282-4b8b-b753-5af00039107a.Method1);
 3a3a116e-84a5-4bfc-8f21-21fbc4cece2d 3a3a116e-84a5-4bfc-8f21-21fbc4cece2d = new 3a3a116e-84a5-4bfc-8f21-21fbc4cece2d();
 3a3a116e-84a5-4bfc-8f21-21fbc4cece2d.Method1();
}
在阅读文件时,能够看到一个咱们可读的附加命名空间:Imminent-Monitor-Client-Watermark。它还包括一个歹意运用的音讯,能够在下面找到。
// Imminent-Monitor-Client-Watermark
//
// Types:
//
// Please-contact-abuse@imminentmethods.net-with-the-hardware-id:-"49383d68b77c97e45701895564914fd5"-and-company-name:-"NA"-if-this-assembly-was-found-being-used-maliciously-.-This-file-was-built-using-Invisible-Mode
在拜访Imminent Method网站时,能够清楚地了解到这种有效载荷的意图便是施行远程管理。在履行这个准备好的二进制文件后,能够在Imminent Method软件的控制面板中拜访受害者的设备,这是RAT的中心功用。
加载程序——第3阶段(第2部分)
用dnSpy翻开assemblyPart2.dll后,能够很明显看到,它是一个动态链接库(原始称号为graznataguz.dll,版别1.1.0.0),其间含有两个类。首要,能够观察到空的内部类模块。此外,还有一个名为RunLib的类,它的称号与第2阶段中挑选的on相同。运用if句子和库中的函数,能够开端依据实践环境匹配所做的假定。
okapise
在之一个if句子中,函数okapise与四个参数一同被调用,反编译的函数如下所示。
public static void okapise(string location, string filename, string value, bool hide)
{
 Directory.CreateDirectory(Environment.GetFolderPath(26) + "" + value);
 string text = string.Concat(new string[]
 {
  Environment.GetFolderPath(26),
  "",
  value,
  "",
  filename
 });
 string text2 = string.Concat(new string[]
 {
  Environment.GetFolderPath(26),
  "",
  value,
  "",
  RunLib.RndString(5),
  ".xml"
 });
 string name = WindowsIdentity.GetCurrent().Name;
 string text3 = Resources.TE;
 if (!(location == text))
 {
  File.Copy(location, text, true);
 }
 bool flag = (File.GetAttributes(location) & 2) == 2;
 if (hide && !flag)
 {
  File.SetAttributes(text, File.GetAttributes(text) | 2);

[1] [2] [3] [4]  黑客接单网

相关文章

使用Homograph的复杂鱼叉渗透分析-黑客接单平台

在曩昔的几个月里,咱们做了一些有关创立网络垂钓电子邮件的研讨,这些创立的垂钓邮件足以诈骗那些专业的安全人员。因而,咱们正在研讨一个适当陈旧的安全论题:Punycode域和IDN同形异义词进犯。 Pun...

xHunt:针对科威特航运组织的攻击行动-黑客接单平台

2019年5月至6月,unit42安全团队在一起针对科威特航运业的进犯事情中,检测到了一个新后门东西——Hisoka,它的作用是下载几个的定制东西进行后缝隙运用,一切东西好像都由同一个开发人员创立,最...

安全防备:nginx下git引发的隐私走漏问题

1   安全事情 最近阿里云服务器后台办理体系中收到一条安全提示音讯,体系装备信息走漏: http://my.domain.com/.git/config 能够被公网无认证即可拜访,请修正。...

Game-of-Thrones-CTF-1靶机彻底攻略

虚拟机地址:https://www.vulnhub.com/entry/game-of-thrones-ctf-1,201/ 这个靶机的难度较高,进程并不是趁热打铁,所以经过了屡次替换网络和IP的进程...

你的网站是怎样被黑的

前语 这个标题的来历是@evilcos(余弦大大)在Github上共享的一个PPT,感兴趣的能够去他的repo下载。写这篇博客主要是想给自己最近业余时间学到的安全相关的常识做个总结,主要是关于网站常见...

JS变异小技巧:使用JavaScript全局变量绕过XSS过滤器-黑客接单平台

什么是JavaScript大局变量? JavaScript大局变量在函数外部声明或运用window方针声明,它能够经过任何函数拜访。 假定你的方针Web应用程序简单遭到映射到JavaScript字符...