Hallo zusammen Ich bin auf die Idee zu kommen, das es noch ganz praktisch wäre, wenn ich bei meinem Server nicht nur beim Login eine Mail bekomme, sondern auch noch beim Logout ein transcript von allem, was während der session ausgegeben wurde an mich gesendet würde. Ich bin mir noch nicht ganz sicher, wie ich dass am besten Umsetze, aber alle write calls mittels ptrace abzufangen erschien bei meinen versuchen mit strace ein brauchbarer weg zu sein. Ich will also ein Programm schreiben, welches die Ausgabe eines Prozesses, dessen PID ich ihm übergebe, ebenfalls ausgibt oder in ein File schreibt, damit ich damit die Ausgabe des ersten Prozesses mitschneiden kann, der in einer neuen session nach einem login läuft. Ich hänge beim Programm im Anhang momentan an 2 stellen fest: 1) Aus irgendeinem Grund sehe ich jeden syscall doppelt. 2) Solange ich mich mit PTRACE_ATTACH an einen Prozess hänge, funktionieren bei diesem einige Interrupts wie z.B. SIGINT (ctrl+c) nicht mehr wie gewünscht. Woran könnte das liegen?
Ja, ich weiss, ist jetzt nicht zielführend: Aber warum sooo kompliziert? Starte 'screen -L' und alle Ein- und Ausgaben (inkl. Terminalcontrolcodes) landen in ~/screenlog.*.
Ja, ich kenne screen, aber es geht mir darum dass nach jedem login über login, ssh, su, etc. mitgeloggt wird, ohne dass eine spezifische Shell vorausgesetzt würde oder ich es manuell starten müsste usw. Ein bisschen wie bei einem Honeypot, nur etwas weniger extrem.
Ich habe dass mit den doppelten Syscalls gerade heraus gefunden. PTRACE_SYSCALL hält den Prozess beim Eintritt und beim Verlassen eines Syscalls an, und es sind diese beiden Zustände, die ich sehe. Ich ignoriere nun einfach alle Syscalls, bei denen das Register rax auf -ENOSYS gesetzt ist, um nur Syscalls abzufangen, die schon ausgeführt wurden, und nicht den Error ENOSYS produziert haben.
> und es sind diese beiden Zustände, die ich sehe.
Stimmt, das merkt man auch bei strace bei langdauernden Calls. Der
Aufruf steht zuerst da und erst dann viel später das Ergebnis. Ist so
betrachtet auch nicht ganz verkehrt ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.