TRICK: Linux Auditd审计工具

前言

最近我的网站首页被挂搜索引擎劫持了,输入域名打开正常。通过site:域名,发现网站被劫持了。然后想起key大佬有篇文章好像有类似的工具,如下全搬过来了。

背景

难题:/home/chen/test/目录下的index.html为首页文件,一直被入侵者恶意篡改

需求:想要定位攻击方式以及篡改方式

命令:auditctl (安装:sudo apt install auditd

参数:

-w 监控文件路径
-p 监控文件筛选 r(读) w(写) x(执行) a(属性改变)
-k 关键词(用于查询监控日志)

运行:sudo auditctl -w /home/chen/test/index.html -p w -k index,等待二次篡改

过程

发现被篡改执行:sudo ausearch -i -k index 查看日志

type=SYSCALL msg=audit(08/20/2019 02:22:10.905:509) : arch=x86_64 syscall=rename success=yes exit=0 a0=0x7f5c94011370 a1=0x7f5c94005d90 a2=0x0 a3=0x20 items=5 ppid=1966 pid=17243 auid=chen uid=chen gid=chen euid=chen suid=chen fsuid=chen egid=chen sgid=chen fsgid=chen tty=(none) ses=3 comm=pool exe=/usr/bin/gedit key=index 

了解该日志的格式:

syscall : 相关的系统调用
auid : 审计用户ID
uid 和 gid : 访问文件的用户ID和用户组ID
comm : 用户访问文件的命令
exe : 上面命令的可执行文件路径

这里的syscall可以理解为是执行的动作,那么这段日志就非常容易理解了:用户chen使用gedit rename了该文件(重命名)

那么syscall是什么代表着编辑文件内容呢?(篡改)

测试gedit打开文件、编辑文件内容、保存文件,有三条日志:

type=SYSCALL msg=audit(08/20/2019 02:22:10.897:506) : arch=x86_64 syscall=openat success=no exit=EEXIST(File exists) a0=0xffffff9c a1=0x7f5ca0009800 a2=O_WRONLY|O_CREAT|O_EXCL a3=0x1b6 items=2 ppid=1966 pid=17243 auid=chen uid=chen gid=chen euid=chen suid=chen fsuid=chen egid=chen sgid=chen fsgid=chen tty=(none) ses=3 comm=pool exe=/usr/bin/gedit key=index 
type=SYSCALL msg=audit(08/20/2019 02:22:10.897:507) : arch=x86_64 syscall=openat success=yes exit=17 a0=0xffffff9c a1=0x7f5ca0009800 a2=O_WRONLY|O_CREAT|O_NOFOLLOW a3=0x1b6 items=2 ppid=1966 pid=17243 auid=chen uid=chen gid=chen euid=chen suid=chen fsuid=chen egid=chen sgid=chen fsgid=chen tty=(none) ses=3 comm=pool exe=/usr/bin/gedit key=index 
type=SYSCALL msg=audit(08/20/2019 02:22:10.905:509) : arch=x86_64 syscall=rename success=yes exit=0 a0=0x7f5c94011370 a1=0x7f5c94005d90 a2=0x0 a3=0x20 items=5 ppid=1966 pid=17243 auid=chen uid=chen gid=chen euid=chen suid=chen fsuid=chen egid=chen sgid=chen fsgid=chen tty=(none) ses=3 comm=pool exe=/usr/bin/gedit key=index 

syscall分别为:openatopenatrename,但注意到第一个openat的日志中的success等于no

也就是说我们可以理解日志中出现syscall=openat即有人在修改文件,那么查看日志的命令就可以变成:

sudo ausearch -i -k index | grep 'syscall=openat'

END:定位到了用户、进程就可以继续跟踪了。

转载于key大佬博客


 上一篇
deepin linux详细安装教程 deepin linux详细安装教程
0x00准备的物料1.工具VMware,其他虚拟机设备也可以大同小异(物理机必须是64位的,32位的我没安装成功。成功了也有问题。或许大佬能解决!) 工具链接: https://pan.baidu.com/s/1aHpq48vuJDpKFm
2019-09-19
下一篇 
Hexo中Markdown语法(GFM)使用 Hexo中Markdown语法(GFM)使用
欢迎来访呀朋友 1 Markdown语法1.1 标题Markdown支持6种级别的标题,对应html标签 h1 ~ h6 复制 # h1 //一级标题 对应 <h1> </h1>## h2 //二级标题 对应
2019-09-15
  目录