跳转至

T1059-004-linux-脚本

来自ATT&CK的描述

攻击者可能会滥用Unix shell命令和脚本来执行。Unix shell是Linux和macOS系统上的主要命令提示符,尽管Unix shell存在许多变体(例如sh,bash,zsh等),具体取决于特定的OS或发行版。Unix shell可以使用某些要求提升特权的命令来控制系统的各个方面。

Unix shell还支持脚本,这些脚本支持顺序执行命令以及其他典型的编程操作,例如条件和循环。Shell脚本的常见用法包括冗长或重复的任务,或者需要在多个系统上运行同一组命令。

攻击者可能会滥用Unix shell来执行各种命令或有效载荷。可以通过命令和控制通道或在横向移动期间(例如使用SSH)访问交互式外壳。攻击者还可以利用Shell脚本在受害者上传递或执行多个命令,或者作为用于持久性的有效载荷的一部分。

测试案例

如何在linux下进行模拟和测试?我们可以创建一个简单bash脚本,并执行它。观察它在日志中留下的痕迹。

检测日志

linux audit日志 (值得注意的是:Ubuntu默认情况下没有audit,需要下载安装并配置相关策略)

测试复现

icbc@icbc:/hacker$ bash 1.bash

测试留痕

icbc@icbc:/$ cat /var/log/audit/audit.log

type=SYSCALL msg=audit(1565352677.388:1524): arch=c000003e syscall=59 success=yes exit=0 a0=564608ddc330 a1=564608dbd8c0 a2=564608de3970 a3=8 items=2 ppid=2095 pid=2807 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=4 comm="bash" exe="/usr/bin/bash" key="auditcmd" type=EXECVE msg=audit(1565352677.388:1524): argc=2 a0="bash" a1="1.bash" type=CWD msg=audit(1565352677.388:1524): cwd="/hacker" type=PATH msg=audit(1565352677.388:1524): item=0 name="/usr/bin/bash" inode=2228277 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0

检测规则/思路

splunk规则

index = linux sourcetype = linux_audit syscall = 59 | table host,syscall,syscall_name,exe,auid

建议

值得注意的是:我们只是把环境中的脚本执行行为记录下来,如果没有设置白名单,那么我们需要消耗大量的精力用于处理误报。

参考推荐

MITRE-ATT&CK-T1059-004

https://attack.mitre.org/techniques/T1059/004/

Audit配置手册

https://www.cnblogs.com/bldly1989/p/7204358.html