![auditd execve 参数看起来像编码数据](https://linux22.com/image/653398/auditd%20execve%20%E5%8F%82%E6%95%B0%E7%9C%8B%E8%B5%B7%E6%9D%A5%E5%83%8F%E7%BC%96%E7%A0%81%E6%95%B0%E6%8D%AE.png)
我将所有可执行文件记录在某种蜜罐盒中,并尝试理解这些命令。这些命令有很多,都带有“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 的最后一部分给出了一些提示,但我真的很想了解到底发生了什么。
答案1
参加聚会有点晚了,但万一它仍然能帮助你或其他人在搜索......
Linux 审计日志实际上并不是用来直接在原始日志文件中查看的——它们是用来使用“ausearch”和“aureport”等工具进行查看和分析的。许多内容(甚至包括时间/日期戳)都以十六进制格式存储,但您可以使用“-i”选项告诉 ausearch 解释十六进制内容,以及将 UID/GID 转换为名称。默认情况下,ausearch 使用文件“/var/log/audit/audit.log”,但您也可以使用“-if filename”选项查看特定文件。例如,我将您的特定行剪切并粘贴到临时文件中,并得到以下结果:
$ 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*
答案2
它以auditd
十六进制形式编码长参数,并可以通过多种方式解码,其中之一是使用xxd
。
echo 6C73202F6574632F696E69742E64207C2067726570202D4520275B302D39612D7A5D7B31307D27207C2061776B20277B7072696E742024317D27207C207861726773206B696C6C616C6C | xxd -r -p
ls /etc/init.d | grep -E '[0-9a-z]{10}' | awk '{print $1}' | xargs killall