Autor Beitrag
The-FoX
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 203

Win XP
D6 Pers
BeitragVerfasst: Do 14.08.03 18:53 
Hi. Also auch hier in diesem Forum hatten ja ziemlich viel diesen MsBlast drauf. Auf Heise.de stand er würde sich über einen ungeschützen Lesepuffer kopieren. Was ist überhaupt ein Puffer?! Und was meint ihr in welcher Sprache so ein Programm programmiert wurde?

Was mich auch noch interessieren würde: Ich habe mir einen Screenshot von einem Dissasembler gesehen, und da waren einfach nur irgendwelche Buchstabenkombinationen?! Wie soll man sowas kapieren? Könnte mir jmd eine gutes dt. Tutorial für assembler sagen? Btw. Ist der Code im dissasembler der selbe wie in Asselbler?
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Do 14.08.03 23:04 
Hallo,

zum Virus kann ich nicht viel saen, außer, das er in so ziemlich jeder Programmiersprache geschrieben sein kann. Die Zeiten in den Viren nur von sehr talentierten Programmierern erstellt wurden sind vorbei, da es ein solches Programm heutzutage kaum mehr nörig hat, sich zu tarnen. Die Benutzer wissen eh nicht mehr was auf ihren Rechner sein sollte und was nicht.

Assembler ist nicht so schlimm, es ist nur recht Maschienen nah. Wenn du z.B. die Buchstabenfolge JMP findest, dann steht diese für Jump also springe. Das ist vergleichbar (wenn auch nicht so konfortabel) mit dem Goto aus Delphi. Ein günstiges und nicht alzu kompliziertes Assembler buch ist dieses, wenn dich das Thema interessiert.
Ein disassembler liefert dir Assembler Code.

Gruß
Klabautermann
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Do 14.08.03 23:18 
The-FoX hat folgendes geschrieben:
Also auch hier in diesem Forum hatten ja ziemlich viel diesen MsBlast drauf.

Wenn man eben keinen aktuellen Virenscanner und keine richtig konfigurierte Firewall hat, ist man selber Schuld. Zudem gab es den Patch von Microsoft schon seit dem 16. Juli.

Zitat:
Was ist überhaupt ein Puffer?!

Für Programmierer ist ein Puffer ein Speicherbereich, in den Daten gelesen und dann verarbeitet werden.

Zitat:
Und was meint ihr in welcher Sprache so ein Programm programmiert wurde?

Es gibt fertige Programme zum Erzeugen von Viren im Internet. Diese werden hauptsächlich von ScriptKiddies benutzt. Die früheren "Virenprogrammierer" hätten ihr Wissen besser nicht ins Internet gestellt. Denn selbst du "Kunst" der "Virenprogrammierung" ist mittlerweile so was von verkommen. Wenn du die ScriptKiddies mal fragst, was eine Schleife ist, dann können die meisten dir darauf keine Antwort geben, die mit dem Programmieren etwas zu tun hat. Es besteht halt immernoch ein sehr großer Unterschied zwischen "Klick Klick" und Programmieren.

_________________
Ist Zeit wirklich Geld?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 15.08.03 01:33 
Ein interessanter Artikel der c't zum Thema Buffer Overflow: www.heise.de/ct/01/23/216/default.shtml

Nun, dass der Wurm die Rechner alle neustartet, war nicht beabsichtigt. Er sollte lediglich ab dem 16. September ein DOS Attacke auf den Windows-Update Server fahren. Nur leider sorgt ein fehler im Code dazu dass ein wichtiger Systemprozess abgeschossen wird (RPC), was dann diesen Reboot auslöst und so letztendlich zur Entdeckung des Wurmes geführt hat. Das ist die Version, die ich kenne.
The-FoX Threadstarter
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 203

Win XP
D6 Pers
BeitragVerfasst: Fr 15.08.03 03:02 
Vielen Dank erstmal für die Antworten! Ich hab mir jetzt mal vorgenommen Assembler zu lernen, weil es mich wirklich ziemlich interessiert. Ich hab nen nettes Tut gefunden in dem steht ich soll mir die Testversion vom Borland Turbo Compiler 5.0 von einer seite runterladen, auf der ich Tasm (scheint eine Unterart von Assembler zu sein). Nur leider ist die Seite down. Jmd ne ahnung nach was ich googlen muss?
Andi1982
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 497

WinXP HE
D6 Enterprise
BeitragVerfasst: Fr 15.08.03 06:22 
Hi,
Assembler??? Na dann viel spass. Ich kenn mich zwar mit PC-Assembler nicht aus, aber dafür mit Assembler aufm Host. Damit habe ich den ganzen Tag zu tun. Wenn man es wirklich sehr gut kann, kann man damit sehr elegante Programmlogiken erstellen, aber es ist echt nicht einfach.

Am schlimmsten find ich wie manche Leute mit den Registern um sich werfen. Wenn ich sowas hier schon seh :eyecrazy: :

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
         GETMAIN R,LV=72,LOC=31  
         ST    13,4(1)           
         ST    1,8(13)           
         LR    13,1              
         ST    1,KR1             
         B     ANF               
*                                
         LTORG *


Naja, glaub der Beitrag hat nicht wirklich viel gabracht, aber ich nutze jede Gelegenheit um mich über Assembler auszulassen weil es der Grund ist weshalb ich mindestens einmal am Tag fast verzweifle.

Assembler eignet sich übrigens perfekt um Buffer-Overflows auszulösen. Bei uns in der Firma machen wir das manchmal um uns gegenseitig zu ärgern. Das schwierigste daran ist die Adresse auszurechnen an der dein Assembler-Code steht, bei deinem Opfer im Hauptspeicher.

Achso @Luckie, ich kenn auch nur diese Version. Wenn der Fehler im Virus nicht gewesen wäre hätte MS am 16. wahrscheinlich ganz schön dumm geschaut. Aber ich glaube nicht dass die paar Rechner die jetzt noch den Virus drauf haben nicht ausreichen werden um den Update-Server von MS zu stören.

_________________
Solange die Bombe tickt ist alles in Ordnung, erst wenn sie damit aufhört wird es problematisch...
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Fr 15.08.03 09:33 
Luckie hat folgendes geschrieben:
Nur leider sorgt ein fehler im Code dazu dass ein wichtiger Systemprozess abgeschossen wird (RPC)


Als Fehler kann man das nicht unbedingt bezeichnen. Dieser Umstand kommt daher, dass der RPC Dienst unter Windows 2000 eine andere Speicheradresse für den Bufferoverflow benutzt, als unter Windows XP. Da der Wurn nicht wissen kann welches Windows hinter der IP:135 ist, versucht er es in 20% aller Fälle mit dem Win2k Code und 80% mit dem WinXP Code. Wenn nun ein Win2k Rechner den XP-Code abbekommt, wird nicht gleich der Rechner neugestartet, sondern nur der RPC Dienst. Bei WindowsXP sieht das anders aus. Trifft der 2000 Code auf einen XP Rechner, wird der Dienst wegen einer Schutzveröetzung beendet und Windows XP veranlasst einen Neustartet.

Wenn man es nun so betrachtet, und die Dummheit der Menschen mit einbezieht, sind immer noch 60% alle WinXP Benutzer betroffen und 20% aller Windows 2000 Benutzer. (Die Zahlen müssen nicht umbedingt stimmen)

_________________
Ist Zeit wirklich Geld?
BungeeBug
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 901



BeitragVerfasst: Fr 15.08.03 10:38 
Hi all,

mal ne andere Frage ... wie teste ich denn eigendlich nen Virus?
Ich mein einfach mal Compaliern und Ausführen is ja nicht, also muss man doch eigendlich nen Heimnetz mit min. 10 Rechnern haben die alle anders Konfiguriet sind und das Teil einfach mal aufs I-Net los lassen geht auch nicht da sonst der "Witz" weg is weil jeder Virenscanner das Teil wieder findet ... also wie macht mans dann? Ich hab echt keine Idee?
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Fr 15.08.03 11:06 
die programmlogig entsprechend aufbauen und halt schauen, dass man keinen fehler macht und den Code Schritt für Schritt durchgeht, um zu schauen, was der Virus wann macht. Bzw. man könnte auch einfach nur einzelne Funktionen des Virus testen; also Verbreitung, kopieren, Löschfunktionen etc. Also, so würde ich ein solch gefährliches Programm testen. :?

_________________
Viele Grüße
Jakob
Alibi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 458

Win2K SP3
Delphi 6 Ent
BeitragVerfasst: Fr 15.08.03 13:03 
Och, soviel Arbeit dürfte das nicht sein. Ich würde jeden Testlauf wirklich gut vorbereiten und auf einem 2. Rechner machen. Von dem hätte ich auf CDs ein Image der Platte gemacht, was ich dann zurückspielen kann.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 15.08.03 13:28 
AndyB hat folgendes geschrieben:
Als Fehler kann man das nicht unbedingt bezeichnen. Dieser Umstand kommt daher, dass der RPC Dienst unter Windows 2000 eine andere Speicheradresse für den Bufferoverflow benutzt, als unter Windows XP. Da der Wurn nicht wissen kann welches Windows hinter der IP:135 ist, versucht er es in 20% aller Fälle mit dem Win2k Code und 80% mit dem WinXP Code

Hm, also bei mir sieht das aber wie ein Fehler aus. Eine einfache Überprüfung des Betriebssystem, sollte doch nicht so schwer sein oder?
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Fr 15.08.03 13:48 
Zitat:
Hm, also bei mir sieht das aber wie ein Fehler aus. Eine einfache Überprüfung des Betriebssystem, sollte doch nicht so schwer sein oder?


Soweit ich weiss ist eine Prüfung auch Remote möglich (siehe Languard Network Scanner). Allerdings kann ich nicht beurteilen, wie komplex das ist, da ich mich damit noch nicht beschäftigt habe. Nun ja, aber es stellt sich halt die Frage, ob der Programmierer (falls man den Typen als solchen bezeichnen sollte) auch fähig ist, eine solche Prüfungüberhaupt zu coden.

_________________
Viele Grüße
Jakob
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Fr 15.08.03 13:51 
Na dann versuche mal das BS zu identifizieren, wenn du nur die IP und den Port 135 hast und nicht an diesem Rechner sitzt. Wenn der Wurm mal auf dem Rechner ist, kann er das sehr leicht herausbekommen. Wenn er aber erst in das System über den RPC Bufferoverflow eindringt, bringt es ihm wenig, wenn er auf dem Localhost das BS abfrägt, da das nicht dasselbe sein muss, das der zu befallende Rechner hat. Und da der RPC bug eben bei Win2000 einen anderen Offset als bei WinXP braucht, muss er eben per Zufall den manipulierten IP-Header generieren.

_________________
Ist Zeit wirklich Geld?
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Fr 15.08.03 13:55 
Zitat:
Na dann versuche mal das BS zu identifizieren, wenn du nur die IP und den Port 135 hast und nicht an diesem Rechner sitzt.


Wer sagt denn, dass ich nur den Port 135 habe? Über diesen Port verbreitet sich der Virus. Für die Prüfung kann er doch auch andere verwenden. Außerdem schafft das der Languard Network Scanner doch auch und der hat auch nur die IP.

_________________
Viele Grüße
Jakob
Raphael O.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: Fr 15.08.03 14:02 
dann hätte der Wurm später, nach dem er weiß auf welcher Win-Version er läuft entweder die eine oder andere Version abarbeiten müssen...
ne einfache if-abfrage :?
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Fr 15.08.03 14:11 
jupp genau. Und dann wäre das Problem, welches AndyB beschrieb, somit nicht vorhanden. :?

_________________
Viele Grüße
Jakob