T1055.008: Ptrace 系统调用
摘要
攻击者可能通过 ptrace(进程跟踪)系统调用将恶意代码注入进程,以规避基于进程的防御,并可能提升权限。Ptrace 系统调用注入是一种在另一个活动进程的地址空间中执行任意代码的方法。 Ptrace 系统调用注入涉及附加到并修改运行中的进程。ptrace 系统调用使调试进程能够观察和控制另一个进程(以及每个单独的线程),包括更改内存和寄存器值。(Citation: PTRACE man) Ptrace 系统调用注入通常通过以下方式执行:将任意代码写入运行中的进程(如 <code>malloc</code>),然后用 <code>PTRACE_SETREGS</code> 调用该内存,以设置包含下一条待执行指令的寄存器。Ptrace 系统调用注入也可以通过 <code>PTRACE_POKETEXT</code>/<code>PTRACE_POKEDATA</code> 完成,它们将数据复制到目标进程内存中的特定地址(如当前下一条指令的地址)。(Citation: PTRACE man)(Citation: Medium Ptrace JUL 2018) Ptrace 系统调用注入可能无法针对非子进程和/或拥有更高权限的进程进行。(Citation: BH Linux Inject) 在另一个进程的上下文中运行代码可能允许访问该进程的内存、系统/网络资源,并可能获得提升的权限。通过 ptrace 系统调用注入进行的执行也可能规避安全产品的检测,因为执行被掩盖在合法进程之下。
来源归属
来源:MITRE ATT&CK · 置信度:high
平台
- Linux
战术
Stealth