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!
Python Virus
-
- 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:
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.
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 /")
--- Heiko.
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?
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 :-)
Thomas :-)
-
- User
- Beiträge: 670
- Registriert: Sonntag 15. Januar 2006, 18:42
- Wohnort: Celle
- Kontaktdaten:
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 ich habe eigentlich nie was von einem Trojaner erzählt!
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.
-
- 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
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
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. 

-
- User
- Beiträge: 670
- Registriert: Sonntag 15. Januar 2006, 18:42
- Wohnort: Celle
- Kontaktdaten:
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.Wäre sogar plattformübergreifender als einer der sich auf EXE oder ELF Binärdateien spezialisiert.
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.
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: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.
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
Außerdem gibt es eine irrationale.
Wie man Fragen richtig stellt
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 !)
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 !)
Ich denke du willst darauf hinaus, das Modelnine mit seiner Aussage falsch liegt und ein Trojaner keine Schadfuntionen hat!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 habenWikipedia 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.
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 :-)
Thomas :-)
Ich glaube nicht.Python Master 47 hat geschrieben:Ich denke du willst darauf hinaus, das Modelnine mit seiner Aussage falsch liegt und ein Trojaner keine Schadfuntionen hat!
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!Joghurt hat geschrieben:Ich glaube nicht.Python Master 47 hat geschrieben:Ich denke du willst darauf hinaus, das Modelnine mit seiner Aussage falsch liegt und ein Trojaner keine Schadfuntionen hat!
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.

mfg
Thomas :-)
Thomas :-)
Danke, Joghurt! 

Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.
Wie man Fragen richtig stellt
Außerdem gibt es eine irrationale.
Wie man Fragen richtig stellt