7 votes

auditd execve arguments qui ressemble à des données encodées

J'enregistre tous les execve's dans une sorte de pot de miel et en tant que tel, j'essaie de donner un sens aux commandes. Il y en a beaucoup, toutes avec 'bash -c' et une longue valeur alphanumérique non entourée de guillemets. Comment puis-je comprendre ce que je regarde vraiment ?

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*"

La dernière partie avec httpd donne quelques indications mais j'aimerais vraiment comprendre ce qui se passe exactement.

9voto

Michael Points 106

J'arrive un peu tard dans la soirée, mais au cas où cela pourrait vous aider ou aider d'autres personnes qui cherchent...

Les journaux d'audit Linux ne sont pas vraiment destinés à être consultés directement dans le fichier journal brut - ils sont destinés à être visualisés et analysés à l'aide d'outils tels que "ausearch" et "aureport". De nombreux éléments (y compris les horodateurs) sont stockés au format hexadécimal, mais vous pouvez demander à ausearch d'interpréter les données hexadécimales, ainsi que de traduire les UID/GID en noms, en utilisant l'option "-i". Par défaut, ausearch utilise le fichier "/var/log/audit/audit.log", mais vous pouvez également afficher un fichier spécifique avec l'option "-if filename". A titre d'exemple, j'ai copié-collé vos lignes spécifiques dans un fichier temporaire, et j'ai obtenu les résultats suivants :

$ 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*

6voto

vaelen Points 61

Avec auditd il encode les arguments longs en HEX et peut être décodé de plusieurs manières, dont l'une est avec xxd .

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X