noobug 发表于 2015-10-16 12:18

如何检测系统里某个特定文件被执行了

举个栗子。
比如我想检测 linux 的 ls 命令是否被执行,那么从cmd 敲入ls,系统读取 ls 的 ELF ,然后启动进程,完成 ls 的功能,退出进程。

我想在 ls 的 ELF 被读取的时候就检测到, 有什么办法吗? 可以自己写一点代码、脚本什么的,但是请给个思路。

MMMIX 发表于 2015-10-16 20:27

回复 1# noobug


    ionotify 可以检测对特定文件的读取,但是分不清楚为什么读的。你的需求最好的办法就是写内核模块,或者修改内核对 exec 系统调用的实现。

tc1989tc 发表于 2015-10-17 09:05

通过alias把ls给替换掉。。。。可行否

noobug 发表于 2015-10-18 00:30

回复 2# MMMIX
还听到有人说 auditctl 这个工具,不知道可行不?

   

yjh777 发表于 2015-10-19 15:48

tc1989tc 发表于 2015-10-17 09:05 static/image/common/back.gif
通过alias把ls给替换掉。。。。可行否

这样只能检测到通过alias调用ls的操作,如果直接调用 ls 还是不能被检测

yjh777 发表于 2015-10-19 16:16

noobug 发表于 2015-10-18 00:30 static/image/common/back.gif
回复 2# MMMIX
还听到有人说 auditctl 这个工具,不知道可行不?

看man手册试了一下,可行。楼主可以试试

sudo auditctl -w /usr/bin/ls -p x
ls
check/var/log/audit/audit.log
页: [1]
查看完整版本: 如何检测系统里某个特定文件被执行了