none
Trojaner in c#/.NET RRS feed

  • Frage

  • Hallo Leute,

    ja ich weis, die Frage ist doch etwas banal oder gar seltsam, deshalb vorne weg: Es geht nicht darum, dass ich einen Trojaner in c# machen möchte, es geht darum, ob es geht oder nicht. Denn in freier Wildbahn habe ich noch nie von einem c#/.NET-Trojaner gehört. Außerdem, wenn ich einen Trojaner machen würde, würde ich c++ verwenden :D. Spaß bei Seite, es get nur um die Theorie dahinter. Ich würde so etwas nie machen, da ich die Gesetzteslage dahinter kenne und weis, was das für folgen hätte.

    Denn die wesentlichen Vorgänge eines (einfachen) Trojaner, ich rede nicht über Größen wie Stuxnet, Regin etc, dass wäre etwas zu viel, sondenr um einen einfachen Trojaner. Ist dieser denn vom Konzept her in c# überhaupt realisierbar. Oder gibt es irgendwelche Hindernisse. Meines Wissens nach, höchstens, dass der Code mittels Disassembler wieder in normalform gebracht werden kann, doch dagegen hilft obfuscation etwas, oder halt, dass das alles in einem JIT-Debugger läuft. Was mir noch als Grund einfallen würde, warum es vielleicht nicht geht, ist das Fehler von direktem Zugriff auf den Speicher, Code Injection wäre etwas schwerer.

    Aber ein einfacher Trojaner, der sich quasi einfach nur irgendwo hinsetzt und mit dem Internet verbindet, das ist doch machbar. Warum gibt es dann kaum solche? Dass es nur auf Windows läuft, ist doch kein Problem. Die meiste, auf c++-Basis geschrieben, Software kann ja auch nur auf Windows laufen.

    Also, was haltet ihr davon? Ist solch ein Trojaner in c# theoretisch machbar?


    © 2015 Thomas Roskop

    Germany // Deutschland

    Donnerstag, 19. Februar 2015 07:48

Antworten

  • Hallo Thomas,

    das eigentlich Schwierige ist das Infizieren des Rechners. Das sind heute i. a. Schwachstellen in nativer Software, um die auszunutzen braucht man was Natives... oder Drive-By-Downloads. Woraus der spätere Schädling, der ggf. aus dem Netz variabel nachgeladen wird, besteht ist danach zweitrangig - und der kann in Sprache / Plattform durchaus variieren.

    Der Grund ist am Ende fast immer (auf perfide Art) Geld zu verdienen ....

    Gruß Elmar

    • Als Antwort markiert Thomas Roskop Donnerstag, 19. Februar 2015 17:49
    Donnerstag, 19. Februar 2015 13:10

Alle Antworten

  • Hallo Thomas,

    sicher geht das und ist schon gemacht worden - in den Foren findet man den einen oder anderen älteren Off-Topic Beitrag, wo jemand Probleme hatte, die auf einen Virus zurückzuführen waren, der (auch) .NET nutzt.

    Viren / Trojaner auf .NET Basis haben nur das Problem, dass sie die Installation von .NET (wie 2.0 / 4.0) voraussetzen müssen (eine Nachinstallation wäre etwas aufwändig ;). Und sie werden auf diverse native Funktionen zurückgreifen müssen, die .NET nicht bereitstellt bzw. um die Sicherheitsmechanismen von .NET zu umgehen, was insbesondere die Infektionsmechanismen betreffen dürfte, aber machbar ist das.

    Ein "Vorteil" wäre die schnellere Erstellung und Anpassung mit Hilfe der .NET Infrastruktur, in purem C(++) dauert das Ganze naturgemäß länger. Wobei es heutzutage "Viren-Baukästen" gibt, die einem unbedarftem "Viren-Entwickler" die Erstellung erlauben - die sind aber i. a. eher auf C++ Basis (auch wenn ich dabei rate, kennen tue ich die Dinger nicht näher).

    Was das Disassemblieren angeht, so ist der Schadcode bei einem .NET Virus / Trojaner leichter zu ermitteln. Aber das geht bei nativem Code ebenso, fortgeschrittene Disassembler wie IDA Pro machen es möglich. Zumal es zuerst darum geht, möglichst nicht (sofort) gefunden bzw. entfernt zu werden... ist der Schaden angerichtet spielt das keine Rolle mehr.

    Gruß Elmar

    Donnerstag, 19. Februar 2015 09:12
  • Hallo Elmar,

    also di Laufzeitumgebung dürfte doch eigentlich kein Problem sein, da Windows 7 und 8 (und 10) bereits mit einem .NET der Version 4.5 installiert kommt, dies also quasi Standart ist, da auch Microsofteigene Anwensungen z.T. davon abhängig sind. 

    Also ich habe im Internet tatsächlich einige kleine Berichte über c# Trojaner / Viren gesehen, aber das waren dann eher harmlose Dinger, die man auch in Batch oder vbs hätte schripten können, ein normaler Rechner hätte sich nie damit infiszieren können.

    Alles in allem frage ich mich schon, welcher triftige Grund dahintersteckt? 


    © 2015 Thomas Roskop

    Germany // Deutschland

    Donnerstag, 19. Februar 2015 12:53
  • Hallo Thomas,

    das eigentlich Schwierige ist das Infizieren des Rechners. Das sind heute i. a. Schwachstellen in nativer Software, um die auszunutzen braucht man was Natives... oder Drive-By-Downloads. Woraus der spätere Schädling, der ggf. aus dem Netz variabel nachgeladen wird, besteht ist danach zweitrangig - und der kann in Sprache / Plattform durchaus variieren.

    Der Grund ist am Ende fast immer (auf perfide Art) Geld zu verdienen ....

    Gruß Elmar

    • Als Antwort markiert Thomas Roskop Donnerstag, 19. Februar 2015 17:49
    Donnerstag, 19. Februar 2015 13:10
  • Hallo,

    OK, danke für die Antworten.

    Ah ja, das mit der "perfiden Art":

    Das ist ein Business genaus so wie andere Geschäftsfelder. Das ist morlisch genaus so gut oder schelcht wie Gentechnik, Medizin, Politik oder Waffenherstellung. Menschen nutzen die Unwissenheit anderer zum Profit aus - das ist doch nichts neues :D

    Ob man es gut findet oder nicht, sein individuell.


    © 2015 Thomas Roskop

    Germany // Deutschland

    Donnerstag, 19. Februar 2015 17:49