title: Trap
tags:
- ATT&CK
author: 夜莺
categories: - ATT&CK
cover: ‘https://blog-1255850204.cos.ap-guangzhou.myqcloud.com/uPic/pFGr1P.png‘
abbrlink: 24472
date: 2020-02-14 19:54:12
ATT&CK矩阵-执行-Trap
简介
trap是shell内置命令,它对硬件信号和其他事件做出响应。trap定义并激活信号处理过程,信号处理过程是当shell接收信号或其他特殊条件时要运行的处理过程。常见的情况是脚本允许正常终止和处理常见的键盘中断(例如ctrl+c和ctrl+d),当shell遇到特定事件中断时,攻击者可用来执行相关代码。
测试用例
语法格式
trap命令允许指定shell脚本要监视并拦截的Linux信号。trap命令的格式如下:
trap commands signals
- Linux信号 | 信号 | 值 | 描述 | | —- | —- | —- |
| 1 | SIGHP | 挂起进程 |
| 2 | SIGINT | 终止进程 |
| 3 | SIGQUIT | 停止进程 |
| 4 | SIGKILL | 无条件终止进程 |
| 5 | SIGTERM | 尽可能终止进程 |
| 6 | SIGSTOP | 无条件停止进程,但不是终止进程 |
| 7 | SIGTSTP | 停止或暂停进程,但不终止进程 |
| 8 | SIGCONT | 继续运行停止的进程 |
- 信号组合键
Ctrl+C组合键会产生SIGINT
信号,Ctrl+Z会产生SIGTSTP
信号
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.
运行结果:<br /><br />
4. demo2
!/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.
```
运行结果: