web-dev-qa-db-ja.com

エンコードされたデータのように見えるauditd execve引数

私はすべてのexecveを一種のハニーポットボックスに記録しているので、コマンドを理解しようとします。これらの多くがあり、すべて「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の最後の部分はいくつかの示唆を与えますが、私は本当に何が起こっているのかを正確に理解したいと思います。

6
3molo

パーティーには少し遅れますが、それでもあなたや他の人が検索するのに役立つ場合は...

Linux監査ログは、生のログファイルで直接見ることを実際には意図していません。「ausearch」や「aureport」などのツールを使用して表示および分析することを意図しています。多くの事柄(時刻/日付スタンプを含む)は16進形式で保存されますが、「-i」オプションを使用して、16進の内容を解釈し、UID/GIDを名前に変換するようにausearchに指示できます。デフォルトでは、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*
7
Michael

auditdを使用すると、HEXで長い引数をエンコードし、いくつかの方法でデコードできます。そのうちの1つはxxdを使用する方法です。

echo 6C73202F6574632F696E69742E64207C2067726570202D4520275B302D39612D7A5D7B31307D27207C2061776B20277B7072696E742024317D27207C207861726773206B696C6C616C6C | xxd -r -p                
ls /etc/init.d | grep -E '[0-9a-z]{10}' | awk '{print $1}' | xargs killall
6
vaelen