avatar

目录
Trap

ATT&CK矩阵-执行-Trap

[TOC]

简介

trap是shell内置命令,它对硬件信号和其他事件做出响应。trap定义并激活信号处理过程,信号处理过程是当shell接收信号或其他特殊条件时要运行的处理过程。常见的情况是脚本允许正常终止和处理常见的键盘中断(例如ctrl+c和ctrl+d),当shell遇到特定事件中断时,攻击者可用来执行相关代码。

测试用例

语法格式
trap命令允许指定shell脚本要监视并拦截的Linux信号。trap命令的格式如下:

Code
1
trap commands signals
  1. Linux信号
信号 描述
1 SIGHP 挂起进程
2 SIGINT 终止进程
3 SIGQUIT 停止进程
4 SIGKILL 无条件终止进程
5 SIGTERM 尽可能终止进程
6 SIGSTOP 无条件停止进程,但不是终止进程
7 SIGTSTP 停止或暂停进程,但不终止进程
8 SIGCONT 继续运行停止的进程
  1. 信号组合键

Ctrl+C组合键会产生SIGINT信号,Ctrl+Z会产生SIGTSTP信号

  1. demo1
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
# test trap command
trap "echo '我按了Ctrl+c键" SIGINT

echo This is a test script

count=1
while [ $count -le 10 ]
do
echo "Loop $count"
sleep 1
count=$[ $count + 1 ]
done

echo The end.

运行结果:

  1. demo2
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
# test trap command
trap "echo '测试结束了'" EXIT

echo 这是个测试脚本

count=1
while [ $count -le 10 ]
do
echo "Loop $count"
sleep 1
count=$[ $count + 1 ]
done

echo The end.

运行结果:

  1. trap -l可查看所有支持的信号

缓解措施

基于系统功能,暂无缓解措施

侦测方法

  1. 监测本地文件是否被修改,添加恶意命令
  2. 严格控制用户脚本执行权限
文章作者: 夜莺
文章链接: https://www.shallowdream.cn/posts/24472.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 夜莺