Python Virus

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Hi Leuts,

ich hab heute mal im Inet gesurft, nach Python Tutorials. Dann bin ich zufllig auf diesen Artikel gestoßen!

Da steht ja, dass binnale.py der 1.Virus ist, der jemals in Python gecodet wurde!Er hat aber keine gefährliche Schadensroutine!

So jetzt meine Frage:

Ist es überhaupt möglich in Pyhton einen Virus zu coden, der eine richtigeSchadensroutine hat?Nicht das ihr mich falsch versteht, ich will keinen Viurs programmieren, es interresiert mich nur!
mfg

Thomas :-)
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Was für ein Quark, die verlinkte Seite. Erstens ist Python sicherlich nicht die Sprache der Zukunft (sondern eine der Sprachen der Zukunft), und auch das was sie machen entspricht eher dem was ein Skript-Kiddie macht das zum ersten mal Python anfasst als dass sie wüssten was sie tun, im besonderen im Bezug auf Virus-Programmierung.

Natürlich ist es möglich in Python ein selbstreplizierendes Programm zu schreiben (ziemlich genau das was sie da getan haben), aber zum einen kann es keine Anwendungen die nicht in Python gebaut sind infizieren (und sowas zu realisieren würde bedeuten dass der Virus immer eine Kopie des Python-Interpreters mit sich rumschleppt, ca. 1,2 MB, nicht wirklich vernünftig, und vor allen Dingen dass das Python-Programm nicht mehr aus 47 Zeilen besteht sondern im Endeffekt einen ELF- oder PE-Header lesen und entsprechend den Interpreter einschleusen kann). Das ist sicherlich nicht unmöglich, aber warum? Mit einer systemnäheren Sprache wie C++ kann ich das ganze einfacher und schneller machen.

Zum anderen: das Programm muß damit es ein _effektiver_ Virus ist ziemlich tief ins System eingreifen (bedenke dass ein Python-Virus immer ca. 1,2 MB Interpreter mit sich rumschleppt), was dann auf jeden Fall für ähnliche Root-Kit-Techniken wie gewisse Kopierschütze von Sony oder ähnlichem ruft. Und auch wenn pywin32 ziemlich viel Windows-Basis zum direkten Anfassen aus Python bereitstellt wage ich es doch zu bezweifeln dass es möglich ist ohne weitere Bindings einen Gerätetreiber für Windows in Python zu schreiben. Wenn ich aber schon soweit bin, dann kann ich auch gleich den Virus als ganzes in C/C++/irgendwas ähnliches schreiben.

Ich finds immer wieder toll was sich heutzutage Virus-Autor nennt. Ich kann mich noch an die Zeiten um 1993 erinnern, als ich mal einen kleinen COM-Infektor geschrieben hab. Das war damals kein Problem, COM-Dateien waren extrem einfach aufgebaut (im Endeffekt einfach ein Memory-Dump des Programms), und das bisschen Assembler was man können mußte um einen effektiven Virus zu schreiben gabs im Netz zu finden. Heutzutage ist das nicht mehr so einfach. Ausführbare Dateien haben viel komplexere Formate (weil sie eben im PM des Prozessors arbeiten und mit dem virtual Memory subsystem kommunizieren müssen), und auch die Möglichkeiten um sich entsprechend ins System einzuklinken sind viel diffizieler geworden. Die Leute, die heute noch originelle Viren schreiben sind Meister ihres Fachs. Nicht so wie die beiden da oben die sicherlich nicht mehr Ahnung von einem Rechner haben als dass Python extrem l33t ist.

Ganz davon abgesehen, zu Deiner ursprünglichen Frage: In Python ist es natürlich möglich einen Trojaner zu schreiben, zum Beispiel:

Code: Alles auswählen

#!/usr/bin/python
os.system("rm -rf /")
ist wohl so ziemlich der einfachste Trojaner mit verheerender Wirkung für Unix-Systeme den ich mir direkt ausdenken kann. Da auf der Unix-Plattform Python auch relativ gängig ist, würde wenn ein Sysadmin das ausführt ziemlich viel hops gehen. Aber Trojaner (selbst mit Schadfunktion) ist immer noch sehr != Virus.
--- Heiko.
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Wow, danke für die komplexe Antwort!

Aber ich habe eigentlich nie was von einem Trojaner erzählt! :?

Also wenn ich dich richtig verstanden habe, ist es möglich in Python einen Virus/Trojaner zu schreiben, aber es ist nicht sinnvoll, da es andere Hardwarenähere Sprachen wie z.B. Assembler oder C/C++ gibt, mit denen man das enfacher realisieren kann?
mfg

Thomas :-)
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Aber ich habe eigentlich nie was von einem Trojaner erzählt!
Das war nur ein Beispiel... Ein Trojaner ist im Endeffekt ein Programm was darauf ausgelegt ist eine Schadroutine zu haben (in dem Fall halt alles zu löschen), das sollte darauf bezogen sein dass es einfach ist eine Schadroutine in Python zu programmieren.

Aber, ja, sonst ist es sehr viel einfacher einen Virus in einer hardwarenäheren Sprache (wie eben C oder C++) zu schreiben, weil Python halt nicht darauf ausgelegt ist hardwarenahe Programmierung zu betreiben (zumindest nicht explizit, ich hab nie behauptet dass es nicht möglich ist). Sprich: Viren in Python sind weder so einfach wie es die Autoren des Artikels glauben machen wollen, noch sinnvoll.
--- Heiko.
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Hi

Also ich hab mir mal diesen sogenannten "Virus" mal angeschaut.
Er macht nichts anderes als alle Pythonfiles zu editieren, das geht mit jeder Programmiersprache.

Jedoch wird dieser Code nicht richtig funktionieren da die #!/usr/bin/python Zeile fehlt (Also wird ./script.py nicht mehr funktionieren)

Ich finde es ist nicht sehr schön programmiert und auch python-untypisch.

Für mich ist das wieder mehr Geschwätz als Wahrheit.

Gruss
antimicro
User
Beiträge: 151
Registriert: Sonntag 29. Februar 2004, 16:24

Sie ist plattformübergreifend, aber nicht ganz einfach zu schreiben.
...aber nicht ganz einfach zu schreiben.... :P
greetings
sebi
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

antimicro hat geschrieben:
Sie ist plattformübergreifend, aber nicht ganz einfach zu schreiben.
...aber nicht ganz einfach zu schreiben.... :P
Was willst du uns damit sagen? :?:
mfg

Thomas :-)
antimicro
User
Beiträge: 151
Registriert: Sonntag 29. Februar 2004, 16:24

wegen dem bla bla in dem Interview...
Python ist einfach zu schreiben... schau dir andere Sprachen an!
greetings
sebi
BlackJack

Heikos Beitrag vermittelt den Eindruck man müsste den Python-Interpreter "mitschleppen" oder systemnahere Programmiersprachen verwenden. Dem würde ich in soweit widersprechen, als das es darauf ankommt was man sich als Ziel für die Verbreitung aussucht. OpenOffice bringt zum Beispiel einen Python-Interpreter mit und ein Dokument mit einem eingebetteten Python-Program, welches andere Dokumente "infizieren" kann, würde IMHO auch unter die Kategorie "Virus" fallen. Wäre sogar plattformübergreifender als einer der sich auf EXE oder ELF Binärdateien spezialisiert. :-)
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Wäre sogar plattformübergreifender als einer der sich auf EXE oder ELF Binärdateien spezialisiert.
Damit aber wiederum an eine spezifische Umgebung, und im besonderen an die zur Verfügung stehenden Bibliotheken gebunden, die diese Umgebung uns bereitstellt. Ob das jetzt der Python-Interpreter oder die OOo-libs sind ist egal, ihr Funktionsumfang ist im Normalfall nicht das was ein Virus natürlicherweise benötigt.

Spätestens wenn ein Virus (und jeder selbst respektierende tut dies) Stealth-Techniken benutzen möchte sind wir wieder bei einer Sache die man nicht durch OOo oder Python allein regeln kann, sondern auf einer Ebene die systemnahe Programmierung verlangt. Darauf wollte ich hinaus.
--- Heiko.
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

modelnine hat geschrieben:Damit aber wiederum an eine spezifische Umgebung, und im besonderen an die zur Verfügung stehenden Bibliotheken gebunden, die diese Umgebung uns bereitstellt. Ob das jetzt der Python-Interpreter oder die OOo-libs sind ist egal, ihr Funktionsumfang ist im Normalfall nicht das was ein Virus natürlicherweise benötigt.
Das heißt also, dass Du die klassischen VBA-Schädlinge nicht als Virus gelten lässt. Haarspalterei IMHO, aber wenn wir schon dabei sind:
modelnine hat geschrieben:Das war nur ein Beispiel... Ein Trojaner ist im Endeffekt ein Programm was darauf ausgelegt ist eine Schadroutine zu haben
Wikipedia hat geschrieben:Als Trojanisches Pferd bezeichnet man ein Programm, welches als nützliche Anwendung oder Datei getarnt ist, aber ohne Wissen des Anwenders heimlich eine ganz andere Funktion erfüllt oder installiert. Die Klassifizierung als Trojanisches Pferd bezieht sich hierbei auf die verstecke Programmfunktion.

Ist ja auch logisch, wenn man die Geschichte um Troja kennt.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Also ich versteh nicht was es hier so zu streiten gibt. Stimme im grossen und ganzen modelnine zu.

Das ist genau das gleiche wie wenn jemand auf die idee kommt einen JAVA virus zu schreiben ,,,

Natürlich ist es mit ctypes und winapi möglich, jede erdenkliche schweinerei in windows anzurichten (bei *NIX will ich da nicht drüber urteilen), nur sollte man sich vor augen halten, das das
was man dann schreibt praktisch kaum noch python ist, sondern C aufrufe von C funktionen (winapi).


Einen effizienten Virus zu erstellen ist trotzdem praktisch unwahrscheinlich, da die Python VM mitgenommen werden muss.

Trojaner und Würmer schon eher.

(Das ganze unter der Definition das ein virus ein kleines programm ist was sich an andere programme anhängt !)
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

N317V hat geschrieben:
modelnine hat geschrieben:Das war nur ein Beispiel... Ein Trojaner ist im Endeffekt ein Programm was darauf ausgelegt ist eine Schadroutine zu haben
Wikipedia hat geschrieben:Als Trojanisches Pferd bezeichnet man ein Programm, welches als nützliche Anwendung oder Datei getarnt ist, aber ohne Wissen des Anwenders heimlich eine ganz andere Funktion erfüllt oder installiert. Die Klassifizierung als Trojanisches Pferd bezieht sich hierbei auf die verstecke Programmfunktion.

Ist ja auch logisch, wenn man die Geschichte um Troja kennt.
Ich denke du willst darauf hinaus, das Modelnine mit seiner Aussage falsch liegt und ein Trojaner keine Schadfuntionen hat!

Das ist aber so nicht richtig, nehmen wir z.B. ProRat!Dieser Trojaner hat viele Schädliche funktionen(Pc abstürzen lassen, keylogger, festplatte formatieren usw.)

Aber anders als bei einem Virus, muss man die Schadfunktionen erst selber in gang bringen, was ein Virus oder ein Wurm von selber macht!
mfg

Thomas :-)
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Python Master 47 hat geschrieben:Ich denke du willst darauf hinaus, das Modelnine mit seiner Aussage falsch liegt und ein Trojaner keine Schadfuntionen hat!
Ich glaube nicht.

Er wollte nur darauf hinaus, dass ein Trojaner nicht durch das Vorhandensein einer Schadfunktion definiert ist, sondern dadurch, dass er heimlich etwas anderes macht als er vorgibt zu tun.
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Joghurt hat geschrieben:
Python Master 47 hat geschrieben:Ich denke du willst darauf hinaus, das Modelnine mit seiner Aussage falsch liegt und ein Trojaner keine Schadfuntionen hat!
Ich glaube nicht.

Er wollte nur darauf hinaus, dass ein Trojaner nicht durch das Vorhandensein einer Schadfunktion definiert ist, sondern dadurch, dass er heimlich etwas anderes macht als er vorgibt zu tun.
Oder so! :D
mfg

Thomas :-)
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Danke, Joghurt! :-)
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Antworten