Trojaner im Arbeitsspeicher erkennen



  • Ich weis, was bei rootkits alles geht, aber keiner der häufig genutzten Trojaner ist ein Rootkit... Warum? Weil es nicht viele Möglichkeiten gibts für Rootkit-Funktionen: entweder Hooks, oder Treiber... und Treiberprogrammierung ist schwer, und einen Treiber auf dem System zu installieren ist auffällig... Und Hooks sind mehr als nur detected... außerdem lassen sich auch rootkits dumpen... Nur weil ihr Prozess nicht im TaskMgr ist, heißt das nicht, dass sie keinen Arbeitsspeicherbereich haben... Mir geht es um Trojaner wie z.B. DarkComet oder ZeuS... Noch dazu frag ich ja, weil ich mich mit ReadProcessMemory und Arbeitsspeicher nicht auskenne... Mein Tool kann bis jetzt eine vollkommen zerstörte Windowsfirewall wieder herstellen, das Sicherheitscenter reaktivieren, die Hostsdatei vor Veränderung schützen, und den Nutzer bei veralteten Programmen (z.B. Flashplayer) warnen...



  • -Infected- schrieb:

    und den Nutzer bei veralteten Programmen (z.B. Flashplayer) warnen...

    Ah, darum ght's.
    http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx

    Aber stell Dir mal vor, Dein Windows wird vom rootkit virtualisiert. Wie kann dann Dein Programm, das natürlich erst nach Befall installiert wird, den ANgreifer finden?



  • Es gibt sehr wohl etliche Rootkits in freier Wildbahn, einige sind recht komplex aufgebaut. Und es gibt viel mehr Möglichkeiten, als Hooks und Treiber, wobei "Treiber" sehr abstrakt ausgedrückt ist. Wenn du Kernel Level Rootkits meinst, da gibts sehr viele verschiedene Möglichkeiten. Natürlich kann man die entdecken, aber es gibt keine allgemeine einfache Lösung. Viele Rootkits werden erst eine ganze Weile von Experten analysiert, und dann wird spezielle Erkennungssoftware geschrieben.



  • Klar gibt es etliche Rootkits, aber ich bin kein Experte, und wenn ein Rootkit gestartet wurde, gibt es (solange der Schreiber ordentlich war) _KEINEN_ Weg ein Rootkit mehr zu erkennen (berichtigt mich wenn das falsch war, aber meines Wissens nach kann das Rootkit dann jede Systemfunktion manipulieren). Die meisten Rootkits sind einfach nicht ordentlich, und verstecken ihre Datei nicht, hooken nur eine der vielen API-Funktionen zum Prozesse auflisten.... Außerdem sind Rootkits besonders aufällig: Avast kann z.B. eine Überprüfung starten, bevor Windows startet und ich denke wenn die da ne Datei finden, die davor nicht da war... Tut mir leid, wenn ich jetzt mit den Rootkits nicht recht habe, ich möchte auch nur die Trojaner erkennen, die häufiger Auftauchen (DarkComet (der übrigens Rootkit-Funktionen enthält, den Prozess aber nicht versteckt), ZeuS, SpyEye,...) Ich habe von allen mindestens einen Trojaner bereits aufgegabelt (unabsichtlich :/) und hab sie einfach mal in ne Virtuelle Maschine gesteckt, wer weiß ob ich die mal analysieren möchte)

    Danke



  • -Infected- schrieb:

    Die meisten Rootkits sind einfach nicht ordentlich, und verstecken ihre Datei nicht

    Dann sind es keine Rootkits!



  • -Infected- schrieb:

    Klar gibt es etliche Rootkits, aber ich bin kein Experte, und wenn ein Rootkit gestartet wurde, gibt es (solange der Schreiber ordentlich war) _KEINEN_ Weg ein Rootkit mehr zu erkennen

    Das ist fast schon eine philosophische Frage. Ich würde sagen, es ist praktisch unmöglich, ein perfektes Rootkit zu schreiben, das man garantiert nicht entdecken kann, selbst wenn man weiß, wie das funktioniert. Das ist ein Wettrennen und im Zweifelsfall kann man zum Suchen spezielle Hardware verwenden, und zum Verstecken nicht 😉
    Ich finde grad keine Analyse des Zeus Trojaners, aber wenn ich mich recht erinnere, enthält er auch Stealth Funktionen. Wenn du den Prozess nicht siehst, wie willst du da mit ReadProcessMemory rankommen?



  • definition schrieb:

    -Infected- schrieb:

    Die meisten Rootkits sind einfach nicht ordentlich, und verstecken ihre Datei nicht

    Dann sind es keine Rootkits!

    Laut Wikipedia:

    Ein Rootkit (englisch etwa: „Administratorenbausatz“; root ist bei unixähnlichen Betriebssystemen der Benutzer mit Administratorrechten) ist eine Sammlung von Softwarewerkzeugen, die nach dem Einbruch in ein Softwaresystem auf dem kompromittierten System installiert wird, um zukünftige Anmeldevorgänge („logins“) des Eindringlings zu verbergen und Prozesse und Dateien zu verstecken.

    Über den Wortlaut kann man sich natürlich streiten, aber die Definition von "Rootkit" beinhaltet sicherlich nicht, dass es UNMÖGLICH ist, ihn zu entdecken.



  • Mechanics schrieb:

    definition schrieb:

    -Infected- schrieb:

    Die meisten Rootkits sind einfach nicht ordentlich, und verstecken ihre Datei nicht

    Dann sind es keine Rootkits!

    Laut Wikipedia:

    Ein Rootkit (englisch etwa: „Administratorenbausatz“; root ist bei unixähnlichen Betriebssystemen der Benutzer mit Administratorrechten) ist eine Sammlung von Softwarewerkzeugen, die nach dem Einbruch in ein Softwaresystem auf dem kompromittierten System installiert wird, um zukünftige Anmeldevorgänge („logins“) des Eindringlings zu verbergen und Prozesse und Dateien zu verstecken.

    Über den Wortlaut kann man sich natürlich streiten, aber die Definition von "Rootkit" beinhaltet sicherlich nicht, dass es UNMÖGLICH ist, ihn zu entdecken.

    Ja.

    Mechanics schrieb:

    Sorry, aber warum schreibst du ein "Sicherheitstool", wenn du keine Ahnung hast? Rootkits haben hunderte Möglichkeiten, sich zu verstecken. In der Hinsicht ist schon sehr viel erforscht worden, schau dir z.B. die Voträge der letzten Jahre bei Blackhat oder anderen Konferenzen an.

    👍

    @-Infected-

    Ich würde einfach deine ReadProcessMemory Funktion hooken! Was machst Du nun?
    Nein nein mein lieber so einfach ist das nicht, da musst du schon tiefer gehen!

    Ich denke Du verstehst schon ein bisschen was ein Rootkit ist, aber wieviele Methoden es gibt und noch gefunden werden, ganz ausgenommen wei man so etwas realisiert weist Du nicht. Denn du kratzt hier nur auf der Oberfläche herum!

    Beschäftige Dich ausgiebig mit der Materie! Bis dahin werden Jahre vergehen. 😉



  • Hallo,

    ich versuch doch nichtmal Rootkits erkennen 😉 Sondern nur bestimmte nicht versteckte Trojaner. Und würde gerne wissen, wo im Speicher eines Prozesses charakterisierende Bytes sind.
    PS: Zeus versteckt sich _NICHT_ ;).

    mfg -Infected-



  • -Infected- schrieb:

    Und würde gerne wissen, wo im Speicher eines Prozesses charakterisierende Bytes sind.

    Die Frage ist doch genauso Quatsch 😉 Meinst du, bei jedem Trojaner steht an einer bestimmten Position im Speicher "TROJAN HORSE"? Du musst für jeden einzelnen Trojaner in jeder einzelnen Version und Ausprägung passende Signaturen erstellen. Also das, was die Antivirenhersteller machen. Nur haben sie wesentlich mehr Erfahrung und Manpower.



  • ...



  • Zeus is very difficult to detect

    heißt für mich nicht, dass er sich mit Rootkit-Funktionen versteckt... Da ich den Quellcode vorliegen habe, und keinerlei Hooks außer denen für Internet Explorer und Firefox gefunden. Auch habe ich keine Codeinjection gefunden, und keine Treiberdateien. Und auch bei kompiliertem Quellcode und gebuildetem Trojaner sind keinerlei Versteckspielchen zu finden.

    Mein Programm soll auch nicht dauerhaft laufen, sondern wie z.B. der DarkCometRemover nur eine bereits installierte Version entfernen

    mfg -Infected-



  • -Infected- schrieb:

    Zeus is very difficult to detect

    heißt für mich nicht, dass er sich mit Rootkit-Funktionen versteckt... Da ich den Quellcode vorliegen habe, und keinerlei Hooks außer denen für Internet Explorer und Firefox gefunden. Auch habe ich keine Codeinjection gefunden, und keine Treiberdateien. Und auch bei kompiliertem Quellcode und gebuildetem Trojaner sind keinerlei Versteckspielchen zu finden.

    Mein Programm soll auch nicht dauerhaft laufen, sondern wie z.B. der DarkCometRemover nur eine bereits installierte Version entfernen

    mfg -Infected-

    Und wo ist jetzt das Problem? Wenn er sich nicht versteckt hast Du ja einfaches Spiel! Ein paar Gleichungen und fertig.





  • Hallo 🙂

    Wenn Du die Wurzelschädlinge schon in der VM hast
    ist es bis zum DDK ja auch kein grosser Schritt mehr.

    Viel Spass 🙂


Anmelden zum Antworten