Execves zusammen mit dem Argv des übergeordneten Prozesses protokollieren?

Execves zusammen mit dem Argv des übergeordneten Prozesses protokollieren?

Ich versuche herauszufinden, ob ich einen alten Server außer Betrieb nehmen kann. Ich benötige Informationen über die dort laufenden automatisierten Prozesse. Bisher habe ich Folgendes versucht:

auditctl -a exit,always -F arch=b64  -S execve -k any-commands

Beim Analysieren des Protokolls fiel mir auf, dass zwei Kontextteile fehlten:

  1. Wie wurden diese Programme ausgeführt? Welcher Prozess war ihr übergeordnetes Programm und was war sein ArgV?
  2. Wo sind die Standardeingabe/Standardausgabe hin? Am liebsten würde ich den Shell-Befehl rekonstruiert sehen, aber ich weiß, dass ich wahrscheinlich zu viel verlange, also würde mir zumindest die Pipe-Deskriptor-ID genügen (damit ich versuchen kann, ihn mit meinen eigenen Skripten zu rekonstruieren).

Wie kann ich ein solches Problem angehen?

Antwort1

Der execveSystemaufruf ersetzt den aktuellen Prozess. Wenn ein Programm nach dem Start eines anderen Programms die Kontrolle behalten möchte, muss es zuerst einen neuen Prozess erstellen (mit forkoder vfork), der dann aufruft execve.

Die offenen Dateideskriptoren und Berechtigungen werden übernommen, wenn das Programmabbild in ersetzt wird execve(mit Ausnahme derjenigen, die mit dem CLOEXECFlag markiert sind), sodass offene Dateien während vom übergeordneten Prozess geerbt , dann zwischen und forkgeändert (z. B. mit ) und schließlich während des Aufrufs gefiltert werden.forkexecvedup2execve

Daher wird es schwierig sein, anhand der Prüfdaten ein vollständiges Bild zu erhalten.

verwandte Informationen