Hallo Marvin,
Wenn ich deine Bemerkung „komplette Tastatureingaben
rekonstruieren“ richtig interpretiere, hast Du dir also einen
Keylogger gebastelt?
Naja nicht so wirklich im Sinne von programmieren, die awk/sed Ausgabe habe ich eigentlich nur noch mit Python geparsed um z.B. 10 in ein „q“ zu verwandeln (oder um heraus zufiltern ob es ein Q war), ich kenne auch den Quellcode von pykeylogger, welcher mehrere Module (mit mehreren Zeilen Code) umfasst und auch verschiedene BSD-Keylogger hab da ein etwas betagtes Buch dazu, welches, in meinen Augen, eine sehr umständliche Form eines Hooks unter Unix mit C beschreibt. Deswegen meine Überraschung, dass das ganze so einfach war.
Hut ab, auch wenn mir die Mischung etwas merkwürdig vorkommt.
Zumindest die gleichzeitige Benutzung von awk und sed. Wozu
brauche ich noch sed, wenn ich doch awk habe?
Da alles binär vorliegt, habe ich es mit hexdump gepiped, und bin dort auf ein Muster gestossen, welches in Blöcken vorlag und sich auf eine bestimmte Spalte bezog, ich brauchte also zur weiteren Verarbeitung jeweils nur die 6 Zeile und 8 Spalte, da aber am Anfang, eine nicht in das System passende Zeile, war, musste ich diese los werden und das wusste ich nicht mit awk zu bewerkstelligen … und habe sed benutzt:
cat -n bkd | sed -e 1d | awk 'NR%6==0 {print $9}' | sed -e 's/^0\*//'
der letzte sed war noch um die führenden Nullen weg zu bekommen, wenn du eine Lösung für den Fall, nur mit awk hast, kannst du sie mir gerne posten
auch wenn ich wahrscheinlich mindestens 30 Tage
(wenn überhaupt) brauchen würde. Ich sehe diese 30 Minuten
eher als Fingerzeig dafür, daß Linux eben von Haus aus
mächtige Werkzeuge an Bord hat
30 Tage das glaube ich dir nicht … klar deswegen liebe ich ja alle Unix/unixoiden Systeme, da man mit diesen wirklich arbeiten kann, was man von Windows nicht behaupten kann.
Aber um auf deinen Vergleich zurückzukommen, selbst wenn ich
es könnte, würde ich weder auf Linux noch Windows mir einen
basteln (auch nicht in 30 Minuten), sondern einfach eine
Minute investieren, um mir den Keylogger aus dem Netz zu
ziehen. Insofern sehe ich da keinen Unterschied von Windows
oder Linux.
Da hast du natürlich Recht, ich möchte auch nicht den Anschein erwecken ich hätte böse Dinge damit vor, ganz und gar nicht, mich interessieren bloß viele Dinge rund um Linux, bin eher drüber gestolpert, weswegen ich es jetzt auch nicht mehr weiter fortführe (man könnte ja das als daemon schreiben + Server, streamen usw.) Aber an den Punkt halte ich das für Zeitverschwendung.
Linux-Programme können doch über Unix-Sockets kommunizieren,
könnte man dann nicht auch rein theoretisch, über module nach
draussen kommunizieren ohne das irgendeine Firewall oder
IDS-System, dieses bemerkt?
Ich weiss nicht recht, was ich dazu sagen soll. Wenn ich dich
richtig verstehe, müsste man dein böses Modul ja erstmal auf
einem zu kompromitierenden Rechner installieren können, bzw.
dafür sorgen, daß es nachgeladen wird. Da käme dann wieder der
„böse Admin“ ins Spiel, denn sowas in offener Software
versteckt, ob das lange in den offiziellen Repos Bestand
hätte, ich zweifele.
Das stimmt schon, aber wie viel Leute installieren blind-links über ppa und nehmen den Schlüssel bei sich auf.
Die mir bekannten Angriffsmethoden, die ich (rein subjektiv)
als am gefährlichsten einschätze, sind eine „Man in the Middle
Attacke“ verbunden mit DNS Spoofing. Aber das ist ja eher
netzwerkspezifisch und nicht nur auf Linux begrenzt. Außerdem
gibt es da ja auch „Gegenwaffen“, wie z.B. Snort oder
Arpwatch, die sowas erkennen. Oder ssh bzw. ssl zum
zertifizieren.
Netzwerke sind einer meiner großen Schwächen, hab zwar die Begriffe schon mal gehört, aber bei Networking schaltet mein Gehirn immer ab.
Blieben noch Rootkits, da ist es dann ähnlich wie bei den
Viren, ein Hase und Igel-Wettlauf, erkennbar, aber leider
nicht 100%-ig. Allerdings verhindern da auch Schutzmechanismen
wie SELinux, AppArmor oder TOMOYO (hoffentlich?) das
Schlimmste. Erfolgsstatistiken kann ich da aber nicht liefern.
OK SELinux sagt mir nichts, hatte aber gerade damit zu tun, als ich mir ein User-Mode-Linux aufsetzten wollte, ich probierte verschiedene Kernel Versionen mit Filesystemen von verschiedenen Distros, bei fast allen schlug ein aufsetzen fehl, bei genau diesem Punkt: SELinux kann root Label nicht finden, versuche selbst es zu initialisieren, dannach immer Segementation Fault oder Abbruch … habe auch selbst versucht den Kernel zu kompilieren, um dann damit UML aufzusetzen, aber nichts klappte, letztendlich habe ich es mit dem Kernel3.1 und CentOS hinbekommen…UML-Umgebung steht jetzt.
TOMOYO werd ich gleich mal googeln.
Man kann auch besonders „geschützte“ Linux-Distris benutzen,
wie z.B. in dem Hardened Gentoo-Projekt angestrebt:
http://wiki.gentoo.org/wiki/Hardened_Gentoo
Das ist dann ein Sicherheitsaspekt, denn Du keinesfalls
vernachlässigen kannst. Bei Windows musst Du sozusagen nehmen,
was Du bekommst, dein Linux-System kannst Du dir aussuchen. Um
nur ein einfaches Beispiel zu nennen, fürs Online-Banking
nimmst Du eben die Linux-Live-CD, die garantiert Trojaner-frei
bleibt.
Das ist natürlich ein Argument.
Zum Abschluß möchte ich noch die alte Weisheit loswerden, daß
das größte Sicherheitsrisiko sich immer vor dem Bildschirm und
der Tastatur befindet, egal welches Betriebssystem.
Man hackt sicher immer selbst
Ich probier mich gerade an linuxscratch, um mein eigenes
System zu basteln, jedoch basiert dieses auf dem Linux-Kernel,
Naja, auf was sonst?
Ja, war blöd formuliert von mir
kennt jemand ein wirklich exakte Beschreibung und Aufbau
(bevorzugt in deutsch) des Kernels
die Kernel-Sourcen selbst!? Naja, theoretisch schon, aber die
wirst Du wahrscheinlich wohl nicht im Detail studieren wollen
(ich auch nicht), obwohl LXE, das Linux Cross-Reference
project
http://lxr.linux.no/#linux+v3.5.3/
dabei sehr hilfreich wäre.
evtl. ein Tutorial zum
erweitern des Kernels oder umbaus?
Da ich nicht wirklich verstehe, was Du da „umbauen“ oder
„erweitern“ willst, kann ich dir nur ein paar Links zum selber
weitersuchen bieten:
Wieder blöd ausgedrückt, meinte zum spielen.
http://kernelnewbies.org/Documents
http://www.ibm.com/developerworks/linux/library/l-li…
http://www.kernel.org/doc/
oder ein Buch:
Quade, Jürgen; Kunst, Eva-Katharina: Linux-Treiber entwickeln.
Eine systematische Einführung in die Gerätetreiber- und
Kernelprogrammierung. Heidelberg: dpunkt-Verl. 2011, ISBN
978-3-89864-696-3 Buch anschauen
Werde mir morgen mal deine Links und Buch ansehen, heute Nacht werde ich versuchen meine UML-Umgebung fertigzustellen, habe momentan eigentlich nur noch das Problem ein aktives Netzwerk hinzubekommen, also wenn du damit Erfahrung hast (UML) und schon erfolgreich eingesetzt hast, würde mich über Hilfe dazu freuen.
Gruß XXD