网络攻防对抗之 左右互搏术
发布时间:2023-02-18 11:00:16 所属栏目:安全 来源:互联网
导读:本文介绍了一种从攻防两个维度研究分析网络安全对抗技术的方法。该方法基于Sysmon日志、ATTCK标签日志、操作系统日志的分析实践,通过几种典型攻防对抗技术示例,着重介绍和分析攻击在主机层面特征,为蓝队人员看得见看得清网络威胁,提供了一种简单易学的技
本文介绍了一种从攻防两个维度研究分析网络安全对抗技术的方法。该方法基于Sysmon日志、ATT&CK标签日志、操作系统日志的分析实践,通过几种典型攻防对抗技术示例,着重介绍和分析攻击在主机层面特征,为蓝队人员“看得见”“看得清”网络威胁,提供了一种简单易学的技术修炼方法。也借此抛砖引玉,希望在安全规则优化或威胁狩猎的专家能有更多此方面技术分享。 1、“左右互搏术” 这里的“左右互搏术”,喻意为安全人员一边模拟红队或入侵者或企业内恶意人员的攻击,一边作为防守方从网络、主机等多层面检测和分析攻击,有助于安全人员理解掌握相关攻击技术原理、技术特征及其产生的日志、告警等信息。若将相关经验应用到企业生产环境,那么为企业优化网络安全告警解析规则、快速分析溯源攻击、威胁狩猎、针对性增强防护检测措施等方面,将是大有裨益的。 2、基于Sysmon的“左右互搏术” Sysmon是微软安全人员开发的一种 Windows系统服务和设备驱动程序,一旦安装在系统上,就会在系统重启后保持驻留状态,以监视系统活动并将其记录到 Windows事件日志。它能提供有关进程创建、网络连接和文件创建时间更改等详细信息。通过使用Windows事件查看器或SIEM代理收集它生成的事件并进行安全分析,可了解入侵者和恶意软件如何在网络系统上运行,从而识别恶意或异常活动。目前,Sysmon也有支持Linux版本,但其检测功能还比较弱,支持的操作系统类型较少。 以下介绍三方面场景,主要介绍在主机侧对有关攻击的检测发现。篇幅有限,未对有关攻击与检测技术原理,防护措施等深入展开说明。 3.1EventID 1进程创建 Sysmon EventID 1是为有关新创建进程提供扩展信息,能提供有关进程执行上下文的完整命令行。 攻击者入侵系统往往会创建进程与C2等远控服务器建立通信连接,因此一般可通过Sysmon EventID 1进程创建事件来发现入侵行为。 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.2EventID 3&22网络外连 Sysmon EventID 3和22是网络外连事件。EventID 3是记录系统TCP/UDP网络连接。每个连接都通过ProcessId和ProcessGuid字段链接到一个进程。该事件还包含源和目标主机IP地址、端口号和IPv6 状态。EventID 22是DNS查询,无论DNS查询结果成功还是失败、缓存与否,进程执行DNS查询时都会生成此事件。 搜索EventID 3,查看测试CS木马在靶机上的进程名称、网络外连IP和端口等信息,如下图所示。 下图是一个典型的CS木马执行后外连C2后产生的Sysmon告警日志柱状图。可以观测到木马执行后,先会产生大量多种EventID日志,再到后来远控通信产生的大量网络连接数据包(下图绿色部分),蓝队可以将其作为一种典型攻击行为进行跟踪。 3.3EventID 17&18命名管道 Sysmon EventID 17在创建命名管道时生成,而恶意软件通常使用命名管道进行进程间通信。EventID 18则是在客户和服务端之间建立命名管道连接时形成事件记录。 CS有很多用于后渗透的攻击模块,其加载通常借助调用Windows DLL方式来实现。这些攻击模块会通过命名管道的形式与Beacon通信,默认管道名称有MSSE-、postex_、postex ssh*、status_、msagent_。这为蓝队分析判断攻击者使用哪种武器,有一定参考意义。 通过对Sysmon每一个EventID事件分析,蓝队将会发现很多有安全价值的信息,对不同EventID进行关联,将会在入侵检测方面有较大的发挥空间。例如,通过监控单个或所有主机Sysmon EventID的走势图,也是可以发现攻击异常。 image 4、基于ATT&CK的“左右互搏术” 借助ATT&CK模型,可以让蓝队更容易理解分析攻击者所使用的技战术和工具,甚至能分析判断出其属于哪个团伙,也便于安全人员间交流。 本项测试基于Sysmon产生的带有ATT&CK标签的日志。通过ATT&CK技战术分析日志,非常有助于蓝队攻击溯源和威胁狩猎。遗憾的是,目前少有EDR、HIDS厂家将带有ATT&CK标签的日志接口开放,不利于蓝队使用该模型来开发关联检测规则。 4.1.1 红队攻击 红队有时会将LSASS进程内存转储后,通过mimikatz离线导出账号密码及哈希。值得注意的是,安装了KB2871997补丁或者系统版本大于Windows server 2012的,系统内存已不再保存明文密码,且只有Administrator(SID 500)默认账号可被用于PTH哈希传递攻击。 假设红队导出上述的某个账号密码属于域管理员组或具有DCsync权限,则可使用secretsdump.py来导出域控AD目录所有账号及密码哈希。 而在大型域环境,一般会使用BloodHound(下图)等工具来查找具有DCSync权限的账户。 4.1.2 蓝队防守 针对红队第一种攻击技术,蓝队通过搜索T1003.001或Credential Dumping关键词,如下图所示,会发现红队访问lsass.exe进程的行为。 结合Sysmon EventID 11或直接查找lsass.dmp文件,或通过ELK自定义搜索结果来快速检索。如下图所示,检测到lsass内存转储行为。值得注意的是,测试发现mimikatz shell里执行的命令,Sysmon并没有相关日志记录。 在红队进行第二种技术攻击时,即使用secretsdump.py导出域控AD目录所有账号和哈希时,Sysmon并没有产生有关日志,而Windows安全日志里则产生了大量4622事件(A security package has been loaded by the Local Security Authority)。蓝队可以通过ELK预置规则或修改预置规则进行关联告警。需要提醒的是每一条安全检测规则均应经过实际测试验证有效。 根据红队使用DCsync攻击技术及Windows安全日志,蓝队可创建两条规则:规则一是检测使用hacker账户进行NTLM V2认证登录:winlog.event_data.LmPackageName: "NTLM V2"(还可以增加更多字段以提高检测的准确度);规则二是将DCsync攻击产生的日志中有关字段(any where event.actinotallow=="目录服务访问" and event.code=="4662"and winlog.event_data.AccessMask:"0x100"等)进行关联并设置阈值,经测试产生了相关告警。如果两条规则产生的告警同时出现,更充分说明正在发生PTH和DCsync攻击,如下图所示。 4.2ATT&CK T1136.001创建账号 红队在攻击Linux系统后,有可能会创建账号。Sysmon for Linux可以检测此类攻击行为,修改Sysmon配置文件,添加如下图所示检测规则,可检测Linux账号创建行为。 在ELK中查询创建账号时,Sysmon有生成“T1136.001:Local Account”ATT&CK标签的日志。 同Sysmon EventID走势图一样,蓝队也可以通过监控单个或所有主机“TechniqueID”走势图来发现攻击行为或其他异常。 5、基于操作系统日志的“左右互搏术” Windows操作系统中有Powershell、Defender、USB和WIFI使用等相关日志,因此,蓝队应能从这些日志中发现一些入侵攻击或恶意行为。 5.1PTH哈希传递攻击场景 红队在内网横向移动过程中,往往会利用已掌握的个别系统账号密码,使用CME等工具对内网服务器实施SSH、SMB等协议密码喷洒攻击或PTH哈希传递攻击。 5.1.1 红队攻击 模拟红队使用crackmapexec套件工具,利用已获得账号及其哈希值,进行哈希传递攻击。下图显示发现有两个系统存在相同的账号密码。 5.1.2 蓝队防守 1)网络层面分析 通过分析网络数据包,未发现明显攻击特征。蓝队可在实际生产环境中验证是否能产生密码喷洒告警。 2)主机层面行为分析 使用场景4.1.2中的PTH哈希传递攻击检测规则“NTLMV2访问”,发现了CME工具发起的PTH哈希传递攻击。 5.2SID history权限维持场景 SID history是攻击者用到的比较隐蔽的一种权限维持方法。蓝队应当经常检查域控是否有账号存在500 SID history权限,可通过powershell命令排查(Get-ADUser -Filter "SIDHistory -like ''" -Properties SIDHistory| ` Where { $_.SIDHistory -Like "-500" })。 Window安全日志ID 4765事件为SID History添加到用户时生成。如果没有查找到4765事件,则可查找ID 4738事件,并查看有关用户的SID history变更情况。下图显示,为hacker账号添加了500 SID history。 5.3防泄密场景 如果企业有封闭网络环境,禁止服务器接入USB存储设备,防止敏感数据被窃取。那么作为一种审计措施,将检索“event.code:207 and 驱动器”形成如下搜索结果,从而检测相关服务器是否发生了失泄密事件。 image 6、总结 通过以上攻防对抗技术测试,将Sysmon EventID日志、带有ATT&CK标签日志和操作系统等日志,通过SEIM、SOC等安全系统进行关联分析,能有效提升企业网络威胁检测能力。 当然使用Sysmon也有其局限性,通过卸载Sysmon或关闭Sysmon进程或hook ETW,达到绕过Sysmon检测,或者将winlogbeat、filebeat这类传送日志的进程关闭,从而使SEIM无法收到相关日志及检测发现攻击行为。 另外,还有一些攻击者热衷于使用LOLBAS攻击(Living Off The Land Binaries, Scripts and Libraries)。这类程序一般具有微软或第三方认证机构的数字签名,所以不会被防病毒软件查杀,因此,往往被攻击者用于下载恶意程序、执行恶意代码、绕过UAC等内网渗透活动。蓝队可针对此类攻击方式,梳理这些程序或命令执行时最常使用的技术参数,将其纳入自定义检测告警规则,从而发现LOLBAS类攻击。 网络攻防对抗就像猫鼠游戏,蓝队需要持续跟踪了解掌握常见攻击技术,根据自身业务安全场景需要,通过持续优化安全系统告警规则,结合网络安全有效性验证及红蓝对抗实战化检验,及时检测发现深层次网络攻击行为和异常。 (编辑:娄底站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |