来自 安全 2021-05-02 11:15 的文章

ddos防护_高防海外服务器_快速解决

ddos防护_高防海外服务器_快速解决

用于分发AdwindRat的受损WordPress站点有超过6000万个网站,其中33.4%的全球前1000万网站,建立在WordPress平台上,当一个新的针对这一流行工具的攻击出现时,这是一个大新闻。而且,正如你可能猜到的,Zscaler ThreatLabZ团队最近注意到另一个针对WordPress网站的活动。从2020年4月的第一周起,我们观察到多个恶意Java存档(JAR)文件托管在受损WordPress网站上的实例。这些JAR文件使用了几层加密来保护其最终有效负载Adwind远程访问特洛伊木马(RAT)。在这个博客中,我们描述了这场运动的两个方面。在第一部分中,我们描述了我们从这次战役中收集的情报信息,这些情报被用于威胁归属。在第二部分中,我们详细解释了用于解密用于保护最终有效载荷的多层加密的所有步骤。 用于承载有效负载的受损站点我们观察到在这个活动中所有被破坏的网站共享一个共同的模式,这些网站被用来承载恶意的JAR负载。所有这些网站都使用了WordPress的内容管理系统(CMS)。攻击者经常利用WordPress插件中的漏洞来访问CMS的管理面板。一旦获得访问权限,它们就可以在服务器上承载其有效负载。WordPress版本可以通过检查源代码中的meta-HTML标记来确认,ddos防御难吗,其中"name"属性字段设置为"generator",如下所示,以查看此活动中观察到的一个受损站点。图1:HTML源代码中的WordPress版本。在这次活动中,大多数被破坏的网站运行的是相当新的WordPress-5.3.x版本。只有少数网站运行过时的版本,vps怎么防御ddos,如4.5.x或3.3.x。有效载荷的文件名因主题而异,从Coronavirus到付款发票和发货服务,如DHL和USPS,如下所示:2019冠状病毒疾病更新.jarReylontransport-covid19-statement20.jar重排时间表.jarDHLPaket.jar 威胁归因在一些用于托管恶意JAR文件的WordPress站点上,我们能够找到攻击者用来控制web服务器的PHP web shell,ddos防御这么贵,如图2所示。图2:一个受损的WordPress站点上的PHPWebshell。同一目录中还存在其他一些web shell。在检查了不同的webshell之后,我们找到了一个PHP mailer脚本,该脚本将向攻击者指定的电子邮件地址发送测试电子邮件,如图3所示。图3:在受损服务器上找到的PHP邮件脚本。电子邮件地址:Sabersebry99@freemail.huSabersebry99@citromail.hu 加密JAR的技术分析在这次战役中,JAR文件中使用了多层加密,这清楚地表明,威胁参与者使用某种形式的加密服务来保护最终的JAR有效载荷。在解密了几层之后,ddos防御的保驾护航,我们发现了一个对"Qarallax"的引用,这使得我们相信所使用的加密器可以归因于Qarallax加密服务。在博客的这一部分,我们将深入了解不同加密层的细节,以及我们如何逐一解压以揭示最终的有效载荷。为了便于分析,我们选择了具有MD5散列的JAR文件:0a5f3440389ca860235434eea963465JAR文件的文件名:Covid-19更新.jar 解密:第1阶段此JAR文件包含两个加密资源:资源1:/云/文件.update资源:2:AaxIv/WEPcXKp/UBLah/kCQuJbJn这些资源将在运行时加载和解密。为了理解解密过程,让我们看看rr.等级存在于这个JAR文件中。这个类文件负责加载上述资源并调用解密例程。代码部分如图4所示,相关注释添加到代码中。图4:Stage1中用于解密资源的代码。还需要注意的是,cc攻击种类及防御方法,上面代码中引用的字符串是在gf.等级文件。所有这些字符串都是加密的,如图5所示。图5:第1阶段中的加密字符串。字符串解密例程如图6所示。图6:Stage1中的字符串解密例程。这个字符串解密例程在后面的阶段也被重用了。所以我们在Python中重写了它,使进一步层的解密过程更容易。字符串解密的代码在本博客的附录I部分中提到。上述代码中解密所涉及的不同步骤如下:资源,"/cloud/文件.update"正在使用getClass.getResourceAsStream()放入字节数组中。此资源使用AES密钥"Psjduiwo8wosld9O"进行解密,使用AES块密码模式:AES/ECB/PKCS5PADDING。上述解密的结果是一个XML文件,如图7所示。图7:解密后获得的XML文件。它包含解密第二个资源的AES密钥。4此资源是使用loadFromXML()方法加载的,该方法允许访问XML中的各个属性以继续解密过程。 解密:第2阶段解密阶段1后获得的XML文件用于解密下面定义的第二层。这个XML文件中的服务器条目对应于名为:/AaxIv/WEPcXKp/UBLah的第二个加密资源/库杰杰在JAR文件中。上述XML文件中的密码条目对应于AES密钥,该密钥将用于解密第二个资源。用于解密第二个资源的AES密钥是:xslngpgnjmtwggh。第二个资源被解密为Gzip文件,该文件被解压到另一个JAR文件中。 解密:第3阶段在本阶段中,我们将查看从第2阶段获得的解密JAR文件。这个JAR的类文件和资源文件结构如图8所示。图8:Stage3的JAR文件结构。这个JAR文件有一个名为"/This"的加密资源/文件.grt".这个JAR文件的执行从以下方法开始:j2t。波兰如图9所示。图9:第三阶段的主要方法。此方法中的字符串使用与阶段1中相同的字符串加密方法进行加密。唯一的区别是初始的单字节异或密钥,改为0x58。在解密main方法中的字符串之后,我们可以看到对Qarallax项目的引用。Qarallax提供加密服务,用于加密地下黑客论坛上的JAR文件,使我们将其与Qarallax关联起来。现在让我们看一下在Il\u 1.class文件中定义的方法Il()。此方法执行资源解密,如图10所示。图10:在阶段3中执行资源解密的代码。解密过程中涉及的不同步骤包括:它加载加密的资源:"/this/文件.grt"使用getClass.getResourceAsStream()放入字节数组中。它使用DES密钥:R5uE7enKM8wK0qOk8s9di对上述资源进行解密。解密的结果是一个XML文件,如图11所示。图11:第3阶段解密后的XML文件。4上面解密的XML中的SERVER_BIN文件对应于下一阶段加密的文件。PASSWORD_CRYPTED对应于一个加密的AES密钥,该密钥将用于解密服务器的\u BIN文件。PRIVATE_PASSWORD是用于解密AES密钥的RSA私钥。5以上每个属性都是使用loadFromXML()和getProperty()方法从XML加载的。6RSA私钥存储为序列化的Java对象。它是使用readObject()方法取消序列化的。7未序列化的RSA密钥用于解密XML密码加密部分中定义的AES密钥。8解密的AES密钥用于解密服务器端的BIN文件,这将导致下一阶段的解密文件。 解密:第4阶段从第3阶段获得的解密有效载荷是最终的JAR有效载荷,它受到多层加密的保护。这个有效负载的JAR类文件结构如图12所示。图12:Stage4中的JAR文件结构。此文件包含多个加密资源。json–RSA私钥存储为序列化的Java对象。Key2.json–加密的AES密钥。配置.json–Java RAT的加密配置文件。我们来看看主要的方法-服务器.main.Start此JAR文件的第()个。我们可以在这个JAR文件中看到加密字符串的使用,如图13所示。图13中的加密字符串。图14显示了字符串解密例程。图14:Stage4中的字符串解密例程。这个字符串解密例程与我们之前分析的阶段不同。它是异或解密的一个变体,它以一种有趣的方式导出解密密钥。解密程序的前两行是:StackTraceElement StackTraceElement=new LinkageError().getStackTrace()[1];String String=新建StringBuffer(stackTraceElement.getClassName())。追加(stackTraceElement.getMethodName()).toString();这些行用于获取调用字符串解密例程的类名和方法名。为了找到调用类名和方法名,它使用LinkageError()生成异常,然后使用getStackTrace()[1]获取第一个堆栈帧。从这个堆栈框架中派生出调用类名和方法名。例如,当字符串解密例程被类"Start"中的方法"ii"调用时,XOR解密密钥将是:"Startii"。经过进一步的分析,我们发现这个字符串解密例程与Java混淆器Allatori提供的一样。通常,使用Allatori obfuscator进行模糊处理的类文件使用方法名:ALLATORIxDEMOxhthr()。但是,在本例中,方法名也被模糊处理以删除对Allatori的任何引用。我们在Python中重写了字符串解密例程来解密所有