盒子
盒子
文章目录
  1. 前言
    1. 背景
    2. 过程

TRICK: Linux Auditd审计工具

前言

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

背景

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

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

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

参数:

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

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

过程

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

1
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

了解该日志的格式:

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

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

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

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

1
2
3
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即有人在修改文件,那么查看日志的命令就可以变成:

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

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

转载于key大佬博客

支持一下
扫一扫,支持cscwdxgg
  • 微信扫一扫
  • 支付宝扫一扫
-------------本文结束感谢您的阅读-------------