本文介绍了一种从攻防两个维度研究分析网络安全对抗技术的方法。本方法基于Sysmon日志、ATT&CK标签日志、操作系统日志的分析实践,着重通过几个典型的攻防反制技术实例,介绍分析主机层面的攻击特征,让蓝队“see”和“seeclearly”网络威胁提供了一种简单易学的技术培训方法。我也想以此为出发点,希望安全规则优化或者威胁猎杀方面的专家能够分享更多这方面的技术。1.“左右互战术”这里的“左右互战术”是指安全人员模拟企业中红队、入侵者或恶意人员的攻击,同时作为防御者,从网络、主机等多个层面进行检测和攻击。通过分析攻击,可以帮助安全人员了解相关攻击的技术原理和特征,以及产生的日志和告警。如果将相关经验应用到企业的生产环境中,将对优化网络安全告警分析规则、快速分析溯源攻击、威胁猎捕、增强企业针对性防护和检测措施大有裨益。2.资源准备测试验证主要资源及软硬件配置信息如下。笔记本电脑:CPU4核1.8GHz,内存16GB,SSD硬盘1T,虚拟化软件VMwareWorkstationPro15。SEIM(SecurityInformationandEventManagementSystem):ElasticELKDocker虚拟机建议分配12GB内存。日志采集软件:Sysmon+modularsysmonconfig.xml配置文件,日志传输软件winlogbeat和filebeat。攻击机:互联网云主机+CobaltStrike(以下简称CS)+云函数及API网关,虚拟机Windows10+CS+红队工具,虚拟机Kali或Ubuntu+Impacket等工具。目标机器:Windows2016、Windows11、Windows10、CentOS8、Ubuntu20.04等虚拟机。3、基于Sysmon的“左右交互”Sysmon是微软安全人员开发的Windows系统服务和设备驱动程序。一旦安装在系统上,它将在系统重新启动后保持驻留,以监视系统活动并将其记录到Windows事件日志中。它提供有关进程创建、网络连接和文件创建时间更改的详细信息。通过使用Windows事件查看器或SIEM代理收集其生成的事件并执行安全分析,您可以了解入侵者和恶意软件如何在网络系统上运行以识别恶意或异常活动。目前Sysmon也支持Linux版本,但其检测功能还比较弱,支持的操作系统种类也较少。下面描述三种场景,主要介绍主机侧相关攻击的检测和发现。篇幅有限,没有对攻击检测技术原理和防护措施进行深入讲解。3.1EventID1进程创建SysmonEventID1是提供新创建进程的扩展信息,可以提供进程执行上下文的完整命令行。入侵系统的攻击者通常会创建进程来与远程控制服务器(例如C2)建立通信连接。因此,一般情况下,可以通过SysmonEventID1进程创建事件来发现入侵行为。3.1.1红队攻击红队在内网横向移动时可能会使用Impacket套件等工具。现在模拟红队执行psexec.py水平移动一台Windows主机,执行效果如下图所示。使用psexec.py时,目标机有病毒报警,但使用smbexec.py不会被杀毒软件(这里是Defender)查杀,可以保持与目标机的正常通信。执行效果如下图所示。3.1.2蓝队防御蓝队可以从攻击工具或恶意样本的源代码(如有)、网络通信数据包、主机日志等方面进行安全分析。1)代码层面分析通过查看psexec.py代码,可以深入了解其工作原理。下图代码显示,psexec.py首先使用SMB协议进行会话协商,通过可写共享上传一个随机文件名的exe文件,然后打开SVCManager并创建一个服务,然后启动该服务建立一个与远程终端的通信连接。2)网络层面分析通过wireshark获取网络数据包,验证psexec.py开始使用SMB协议进行会话协商,通过深入分析网络数据包观察是否有明显特征。3)主机层面的行为分析利用ElasticELK平台集中分析主机层面的攻击行为,搜索eventID为1的事件。下图为红队执行psexec.py攻击后,whoami命令,在目标机器上生成了两个进程。但是,由于psexec.py的执行有很多明显的特征,所以已经被大部分杀毒软件查杀。下面是WindowsDefender的查杀警告。smbexec.py之所以没有被杀毒软件查杀,是因为它使用了一个批处理文件和一个临时文件来执行和转发消息,达到了杀毒的效果,如下图。也可以通过查看smbexec.py源代码来验证此技术签名。4)主机操作系统日志分析蓝队还可以查看Windows操作系统的安全日志,ID号为4624,发现用户登录异常,如下图。3.2EventID3&22网络外接事件SysmonEventID3和22为网络外接事件。EventID3是日志记录系统TCP/UDP网络连接。每个连接都通过ProcessId和ProcessGuid字段链接到一个进程。该事件还包含源和目标主机IP地址、端口号和IPv6状态。EventID22是一个DNS查询。该事件在进程执行DNS查询时产生,与DNS查询结果成功与否、缓存与否无关。搜索EventID3,查看目标机器上测试CS木马的进程名、网络外网IP和端口,如下图。查找EventID22可知,CS木马在外联C2时,通过DNS解析了C2使用的云函数API网关的域名。因此,蓝队可以将EventID3和22检测到的外部IP和域名与威胁情报库进行匹配,从而发现一些攻击行为。下图是CS木马执行并连接到C2后生成的典型Sysmon告警日志直方图。可以观察到木马执行后,首先会产生大量各种EventID日志,然后是远程控制通信产生的大量网络连接数据包(下图中绿色部分),蓝队可以将此作为典型的攻击行为进行跟踪。针对初步识别的可疑进程,蓝队依托ElasticELK进程关联分析功能,轻松了解攻击行为,高效开展攻击溯源或威胁搜寻。3.3EventID17&18命名管道SysmonEventID17是在创建命名管道时产生的,恶意软件通常使用命名管道进行进程间通信。EventID18在客户端和服务器之间建立命名管道连接时形成事件记录。下面两张图分别是CS木马在目标机上产生的命名管道创建和连接日志。CS有很多用于后渗透的攻击模块,其加载通常是通过调用WindowsDLL来实现的。这些攻击模块通过命名管道与Beacon通信。默认管道名称为\MSSE-、\postex_、\postexssh*、\status_和\msagent_。这对于蓝队分析判断攻击者使用何种武器具有一定的参考意义。通过分析Sysmon中的每个EventID事件,蓝队会发现很多具有安全价值的信息,关联不同的EventID将有很大的入侵检测空间。例如,通过监控单个或所有主机的SysmonEventID的趋势图,也可以发现攻击异常。4、基于ATT&CK的“左右格斗术”,借助ATT&CK模型,蓝队可以更容易地了解和分析攻击者使用的战术和工具,甚至可以分析和判断他们属于哪个群体,这也方便了安全人员的沟通。本次测试基于Sysmon生成的带有ATT&CK标签的日志。通过ATT&CK技战术分析日志,对蓝队攻击溯源和威胁追捕有很大帮助。遗憾的是,很少有EDR和HIDS厂商开放带有ATT&CK标签的log接口,不利于蓝队使用该模型开发关联检测规则。4.1ATT&CKT1003操作系统凭证导出在网络攻击中,凭证导出是最常见的攻击行为之一。目前,ATT&CK模型中导出操作系统凭证的种子技术有八种:T1003.001:LSASSMemoryT1003.002:SecurityAccountManagerT1003.003:NTDST1003.004:LSASecretsT1003.005:CachedDomainCredentialsT1003.006:DCSyncT1003.007:ProcFilesystemT1003.008:/etc/passwd和/etc/shadow测试T1003.001:LSASS内存和T1003.006:此处为DCSync。4.1.1红队攻击红队有时会dump出LSASS进程的内存,然后通过mimikatz离线导出账号密码和hash。值得注意的是,如果安装了KB2871997补丁或者系统版本大于Windowsserver2012,系统内存不再保存明文密码,只能使用Administrator(SID500)的默认账号进行PTH传递--哈希攻击。假设红队导出上述其中一个账号密码属于域管理员组或有DCsync权限,则使用secretsdump.py导出域控AD目录的所有账号和密码哈希。在大域环境中,一般使用BloodHound(下)等工具来查找具有DCSync权限的账户。4.1.2蓝队防御红队第一种攻击手法,蓝队搜索T1003.001或CredentialDumping关键字,如下图,会发现红队访问lsass.exe的行为过程。结合SysmonEventID11或直接搜索lsass.dmp文件,或通过ELK自定义搜索结果快速检索。如下图所示,检测到lsass内存转储行为。值得注意的是,对于mimikatzshell中执行的命令,Sysmon并没有相关的日志记录。红队进行第二次技术攻击时,即使用secretsdump.py导出域控AD目录的所有账号和hash时,Sysmon并没有生成相关日志,而是大量的4622事件(A安全包已由本地安全机构加载)。蓝队可以通过ELK预设规则关联告警,也可以修改预设规则。需要提醒的是,每一条安全检测规则都应该通过实际测试来验证其有效性。根据红队使用DCsync攻击技术和Windows安全日志,蓝队可以创建两条规则:规则1是检测使用黑客账号进行NTLMV2认证登录:winlog.event_data.LmPackageName:"NTLMV2"(也可以增加更多的字段来提高检测的准确性);第二条规则是设置DCsync攻击产生的日志中的相关字段(anywhereevent.0x100"等)关联并设置阈值,经过测试,产生了相关的告警。如果这两条规则产生的告警4.2ATT&CKT1136.001AccountCreation红队可能在攻击Linux系统后创建了一个账号,SysmonforLinux可以检测到这种情况。攻击,修改Sysmon配置文件,添加下图检测规则,检测Linux账户创建行为,在ELK中查询创建账户时,Sysmon有一条日志生成“T1136.001:LocalAccount”ATT&CK标签。与SysmonEventID趋势图一样,蓝队也可以监控单个或所有主机“TechniqueID”趋势图,以发现攻击或其他异常情况。5、基于操作系统日志的“左右格斗”Windows操作系统有Powershell、Defender、USB、WIFI使用等相关日志,蓝队应该可以从这些日志中发现一些入侵攻击或恶意行为。5.1PTHpass-by-hash攻击场景在内网横向移动过程中,红队往往利用掌握的个人系统账号密码,利用CME等工具进行SSH、SMB等协议密码喷射攻击或对Intranet服务器的PTH哈希传递攻击。攻击。5.1.1红队攻击模拟红队使用crackmapexec工具套件,利用获取的账户及其哈希值进行pass-the-hash攻击。下图是发现两个系统的账号密码相同。5.1.2蓝队防御1)网络层面分析通过分析网络数据包,没有发现明显的攻击特征。蓝队可以验证在实际生产环境中是否可以产生密码喷洒告警。2)主机层面的行为分析利用场景4.1.2中的PTHpass-the-hash攻击检测规则“NTLMV2access”,发现了CME工具发起的PTHpass-the-hash攻击。5.2SIDhistory权限维护场景SIDhistory是攻击者使用的一种比较隐蔽的权限维护方法。蓝队要经常检查域控制器是否有500个SID历史权限的账户,可以通过powershell命令(Get-ADUser-Filter"SIDHistory-like''"-PropertiesSIDHistory|`Where{$_.SIDHistory-如“-500”})。向用户添加SID历史记录时,将生成Window安全日志ID4765事件。如果没有找到4765事件,可以搜索ID为4738的事件,查看该用户的SID历史变化。下图为黑客账号添加了500条SID历史记录。5.3防泄露场景如果企业网络环境封闭,则禁止服务器连接USB存储设备,以防止敏感数据被窃取。然后,作为审计措施,将针对“event.code:207anddriver”检索以下搜索结果,以检测相关服务器是否发生泄漏事件。5.4WIFI非法外连场景如果企业网络环境封闭,禁止非法外连网络。作为审计手段,搜索“event.code:8001andwireless”,形成如下搜索结果,检测是否存在非法网络出站行为。这种在封闭网络环境中时有发生的违规行为值得特别关注。5.5病毒告警场景如果企业使用WindowsDefender杀毒软件,Defender日志可以集中收集分析。检索“event.code:1116”和“event.code:1117”形成如下搜索结果,以便快速发现恶意文件和攻击行为。6.总结通过以上攻防对抗技术测试,通过SEIM、SOC等安全系统对SysmonEventID日志、带ATT&CK标签的日志、操作系统日志进行关联分析,可以有效提高企业网络威胁检测能力。当然,Sysmon的使用也有其局限性。通过卸载Sysmon或关闭Sysmon进程或hookETW,可以绕过Sysmon检测,或者关闭winlogbeat、filebeat等传输日志的进程,使SEIM无法接收相关日志,检测攻击。行为。此外,一些攻击者热衷于使用LOLBAS攻击(LivingOffTheLandBinaries,ScriptsandLibraries)。这类程序一般都有微软或第三方认证机构的数字签名,所以不会被杀毒软件查杀。因此,它们经常被攻击者用来下载恶意程序、执行恶意代码、绕过UAC等内网渗透活动。对于此类攻击,蓝队可以梳理出这些程序或命令执行过程中最常用的技术参数,并纳入自定义的检测和告警规则中,从而发现LOLBAS攻击。网络攻防对抗就像一场猫捉老鼠的游戏。蓝队需要持续跟踪和了解常见的攻击技术。根据自身业务安全场景需求,通过不断优化安全系统告警规则,结合网络安全有效性验证和红蓝对抗实战检验,及时发现深层网络攻击行为和异常。7.相关资源以下是测试中参考或应用的一些资源的链接。1)https://attack.mitre.org/versions/v12/2)https://github.com/deviantony/docker-elk3)https://github.com/elastic/detection-rules4)https://github.com/SigmaHQ/sigma/tree/master/rules5)https://car.mitre.org/analytics/by_technique6)https://github.com/12306Bro/Threathunting-book7)https://lolbas-project。github.io/本文作者:tom0099,转载请注明出处FreeBuf.COM
