我把所有的execve都logging在一个蜜jar里,所以我试着理解命令。 有许多这些,所有与'bash -c'和一些长的阿尔法数字不包含在双引号。 我怎么能理解我真正在看什么?
type=EXECVE msg=audit(1425426965.480:57967): argc=3 a0="bash" a1="-c" a2=6C73202F6574632F696E69742E64207C2067726570202D4520275B302D39612D7A5D7B31307D27207C2061776B20277B7072696E742024317D27207C207861726773206B696C6C616C6C type=EXECVE msg=audit(1425510362.928:72792): argc=3 a0="bash" a1="-c" a2=6B696C6C616C6C20373737206874747064 type=EXECVE msg=audit(1425510366.832:72800): argc=3 a0="bash" a1="-c" a2=726D202D66202F746D702F68747470642A type=EXECVE msg=audit(1425510366.832:72801): argc=3 a0="rm" a1="-f" a2="/tmp/httpd*"
最后一部分与httpd给出了一些迹象,但我真的很想明白到底发生了什么。
晚会有点迟,但是如果它仍然可以帮助你或其他人search…
Linux审计日志并不是直接在原始日志文件中查看的,而是使用“ausearch”和“aureport”等工具来查看和分析它们。 很多东西(包括时间/date戳记)都以hex格式存储,但是您可以通过“-i”选项告诉ausearch解释hex内容,以及将UID / GID转换为名称。 默认情况下,ausearch使用文件“/var/log/audit/audit.log”,但也可以使用“-if文件名”选项查看特定文件。 例如,我将特定的行剪切粘贴到一个临时文件,并得到以下结果:
$ ausearch -if temp_audit.log -i ---- type=EXECVE msg=audit(03/03/2015 18:56:05.480:57967) : argc=3 a0=bash a1=-c a2=ls /etc/init.d | grep -E '[0-9a-z]{10}' | awk '{print $1}' | xargs killall ---- type=EXECVE msg=audit(03/04/2015 18:06:02.928:72792) : argc=3 a0=bash a1=-c a2=killall 777 httpd ---- type=EXECVE msg=audit(03/04/2015 18:06:06.832:72800) : argc=3 a0=bash a1=-c a2=rm -f /tmp/httpd* ---- type=EXECVE msg=audit(03/04/2015 18:06:06.832:72801) : argc=3 a0=rm a1=-f a2=/tmp/httpd*
在auditd中,它用hex编码长参数,可以用多种方法解码,其中之一是用xxd
echo 6C73202F6574632F696E69742E64207C2067726570202D4520275B302D39612D7A5D7B31307D27207C2061776B20277B7072696E742024317D27207C207861726773206B696C6C616C6C | xxd -r -p ls /etc/init.d | grep -E '[0-9a-z]{10}' | awk '{print $1}' | xargs killall