How to Programming
Einleitung/ Vorwort
~~~~~~~~~~~~~~~~~~~
Mir ist es ganz egal, wem ihr die Schuld gebt, wenn ihr irgendwas anstellt.
Ich hab diesen Text geschrieben, damit "Unwissende" selbst ihre Tools schreiben
und verstehen, wie diese aufgebaut sind. Ich stelle keine Quelltexte!
Was brauche ich?
~~~~~~~~~~~~~~~~
Du solltest eine Programmiersprache einigermaßen gut beherrschen.
Vielleicht solltest du mit Windows - Progs anfangen, da diese leichter
zu schreiben sind. Kreativität ist die Voraussetzung für gute Programme.
Du solltest dir auch überlegen, ob es wirklich nötig ist ein solches
Programm zu schreiben ( wenn du lernen willst, dann schreibe alles neu ).
Zitat:"...mach nicht den Fehler und erfinde das Rad neu!"
J0, das sollte schon reichen.
Womit soll ich anfangen?
~~~~~~~~~~~~~~~~~~~~~~~~
Besorge dir zuerst ein paar techn. Infos; es kommt darauf an, was du schreiben
willst. Fangen wir doch mal gleich mit einem Port - Scanner an:
- Ist deine Sprache Internet fähig/ Hat sie die nötigen Komponenten?
- Kennst du die Grundbefehle für diese Komponenten?
- Willst du überhaupt einen schreiben?
1. Bau dir eine Oberfläche auf
2. Setze/ Trage die Komponenten ein
3. Jetzt gehen wir etwas auf die Theorie ein:
Das Programm soll die einzelnen Ports abfragen, das geschieht folgendermaßen
|~~~~~~~| Verbindung |~~~~~~~~~|
| Prog | -----------> Computer |
|_______| zu _________ |
Das Programm versucht sich mit einem Computer auf einem bestimmten Port
zu verbinden. Wenn dies fehlschlägt, ist der Port geschlossen.
( Normalerweise sollten Port 21,23 und 80 offen sein) Das Programm
geht nun einen Port höher und klopft da an. Wenn er offen sein sollte
macht das Prog eine Ausgabe z.B. Connect on Port 21. Dann geht das Prog
wieder eins höher. Du solltest aber einen Anfangs und Beendigungs-Port
angeben, da du sonst eine Endlosschleife hast.
Unter Delphi eignet sich die TClientSocket.
Wenn du dies verstanden hast und ein solches Programm geschrieben hast,
dann hast du dein erstes Tool geschrieben. Glückwunsch!
Wenn wir schon dabei sind, können wir auch mit einem IP Scanner fortfahren:
Dieses Programm basiert auf demselben Prinzip, nur das es nicht die Ports
scannt, sondern die IPs.
1. eine Oberfläche
2. Internet - Komponenten
Um das ganze zu vereinfachen gibt es wieder ein Schema:
|~~~~~~~| sendet Anfrage |~~~~~|
| Prog | ----------------> | ? |
|_______| an eine IP |_____|
Wenn ein PC diese IP haben sollte, antwortet er auch.
|~~~~~~~| sendet Antwort |~~~~~~|
| PC | ----------------> | Prog |
|_______| an Programm |______|
Da wir auch wissen wollen, ob wir eine Antwort erhalten, müssen wir auch
noch was dazu tun: z.B. wenn Verbindung/Antwort dann schreibe:"Antwort von "IP""
Damit das ganze auch von alleine geht, muss noch ein Zähler eingebaut werden.
(Unter Pascal inc(ip) ).
Diese Antworten können in einem Feld angezeigt werden und gespeichert werden.
Natürlich müssen die Programme nicht alle im Internet laufen. Es gibt etliche
Programme z.B. Passwort Cracker , die auch ohne Internet ihre Wirkung nicht
verfehlen. Darauf gehe ich jetzt auch ein. Nehmen wir doch mal ein Prog, das
die PIN eines Skypers oder Scalls errechnet:
1. Bau dir eine Oberfläche
2. Input und Output werden gebraucht
3. der "Algo."
Und wieder ein bisschen Theorie und Hintergrund:
Da wohl einige Techniker es nicht für nötig hielten die PIN des Skypers/
Scalls zufällig zu wählen oder einen ordentlichen Algo zu nehmen, können
wir nun ein Prog schreiben, das die Hersteller PIN errechnet ( wenn sie
nachträglich verändert wurde, hast du Pech gehabt).
|~~~~~~~~~~~|
||~~~~~~~~~|| PIN: 3619 5853915 - 296 |~~~~~~|
|| Skyper || <------------- <--------------- | Prog |
| ~~~~~~~~~ | |______|
| @@@@ |
~~~~~~~~~~~~~
Da es aber die Techniker uns nicht ganz leicht machen wollen, muss
das Programm von 269 bis 9269 durchlaufen lassen. Bei jedem Skyper/Scall ändert sich
das. Achte auf die ersten zwei Ziffern der Skyper Nr.
Wie erhalte ich aber nur die letzten vier Stellen? Unter Pascal/Delphi
erreichst du das mit Mod 10000.
Nun hast du schon dein zweites Programm. Was hältst du nun von den übrigen
Programmen?
So, jetzt hast du ja schon zwei Progs! Gehen wir doch jetzt mal zu einem
unbeliebtem Thema: der Virus
Wenn du ein Script Kiddy bist, dann muss ich dich wohl enttäuschen.
Hier gibt es auch keinen Source!!
Und zum dritten mal gibt es die Theorie:
1. keine Oberfläche
2. denke an das Ausmaß der Zerstörung
3. kein Copyright ;-)
Ich beschreibe nun mal 2 Arten von Viren:
- der nur löscht
- der infiziert
1. Bei diesem Virus gibt es nicht viel zu erklären. Du schreibst nur
deinen Befehl zum Löschen einer Datei und wiederholst das mit versch.
Dateien.
2. Hier gibt es wohl mehr zu erklären. Dieser Virus funktioniert wie
ein Joiner d.h. er öffnet die andere Datei und schreibt sich selbst
hinein. Wenn diese Datei nun ausgeführt wird, wird auch der Virus
ausgeführt.
|~~~~~~| öffnet eine Datei |~~~~~~~~~~~|
|Virus | ------------------------> |Datei+Virus|
|______| und schreibt sich hinein |___________|
Da dies wohl etwas mager ausgeführt ist, kommt nun der ganze Vorgang:
1. Aktivierung des Virus ( hier lege ich mich nicht fest wodurch )
2. Virus sucht sein Ziel in lokalem Order
Wenn er was findet springt er zu Punkt 3
Wenn nicht, such er in anderen Ordnern
3. Die Zieldatei wird geöffnet und der Virus schreibt sich hinein.
Dies ist nur eine kurze Fassung, da das ganze Thema Virus wohl mehr
als dieses HowTo einnehmen würde.
Arten der Viren:
~~~~~~~~~~~~~~~~
- Bootviren
Diese Viren nisten sich in dem Bootbereich von Festplatten und Disketten ein. Greift das
BIOS auf den Bootbereich zu, verbreitet sich der Virus.
Diese viren werden in ASM geschrieben.
- Dateiviren
Dateien mit der Endung EXE und COM werden durch diese Viren infiziert, indem
sie sich an das Programm anhängen oder Teile des Programmes überschreiben.
- Macroviren
Diese Viren nutzen die Macro - Funktion einiger Anwendungen aus
( meistens Microsoft z.B. Word u. Excel). Diese Viren werden durch das
öffnen des entsprechenden Dokumentes aktiviert.
Schutzmöglichkeit: Macro - Funktion ausschalten
- Polymorphe Viren
Bei diesen Viren handelt es sich um "Meisterwerke", da sie bei jeder
Neuinfektion ihren Source verändern oder verschlüsseln. Diese
Viren können durch herkömmliche Virenscanner nicht mehr entdeckt werden,
da sie keiner Signatur entsprechen.
- Stealth Viren
Diese Viren haben eine besondere Eigenschaft: die Tarnkappenfunktion
Wenn ein Virenscanner eine infizierte Datei durchsucht, entfernt sich der
Virus und bei Schließen der Datei durch den Scanner, wird die Datei
nochmals infiziert.
Schutzmaßnahmen:
- eine schreibgeschützte Bootdiskette
- ein Virenscanner mit den neuesten Signaturen
- regelmäßige Backups
- Unter BIOS das Booten auf "C only" stellen
- diverse Macro - Funktionen aus den Anwendungen nehmen
Ich will niemanden dazu verleiten jetzt Viren zu schreiben, da sie dein
Ansehen unter Bekannten nicht heben werden. Außerdem sind das keine
sinnvolle Programme, da sie nur eine destruktive Funktion beinhalten.
Jetzt kommt noch was für die Phreaker unter euch: ein Wardialer
Der hier beschrieben wird, funktioniert über die Soundkarte.
Die Theorie ist dieses mal wichtig!
Es gibt zwei Möglichkeiten ihn zu schreiben:
1. Abspielen einer Wave Datei
2. Generieren der Töne
Bevor ich aber auf das Programm eingehe, kommt noch mal ein alter Bekannter:
1. eine Oberfläche ( sollte einem Telefon ähneln )
1. Wenn "nur" Wave Dateien abgespielt werden, musst du dir nur eine
ordentliche Oberfläche erstellen und die Wave Dateien bekommen.
Wenn du keine bekommst, dann nehme sie am Telefon auf oder
schreibe ein Prog, dass diese erstellt.
Eine Anleitung, wie du diesen Wardialer benutzt wird wohl nicht
nötig sein, oder ?
Schließe einen Kopfhörer an die Soundkarte an und halte ihn an das
Telefon und benutze den Wardialer.
2. Dieser Weg ist wohl der Schwierigste. Da zwei Frequenzen nicht
zur gleichen Zeit gespielt werden können ( unter Pascal ),
musst du die sich daraus ergebenen Ton errechnen.
Wenn du nicht weißt, wie das geht, frag doch mal deinen Physik
Lehrer oder versuche mal mit 11833 *g
Wenn er richtig komfortabel werden soll, dann bau auch eine Speicher - Funktion
ein. Diese Nummern, die gespeichert werden sollen, können in eine Datenbank
geschrieben werden ( Nachteil: die erste Ziffer kann keine null sein ) oder
in eine INI Datei. Um ein Abspielen einer Reihenfolge zu realisieren,
musst du ein String Analyse schreiben. Dies geht am besten mit "case of".
Dieses Thema wäre nun abgeschlossen..NEIN, nicht den Editor schließen, es geht
noch weiter...
Trojanische Pferde
~~~~~~~~~~~~~~~~~~
Da Trojanische Pferde ein großes Thema einnehmen, widme ich ihnen ein
extra Kapitel.
BEMERKUNG: ab jetzt nenne ich Trojanische Pferde "TROJANER"!!!!
Hintergrund: Jeder kennt wohl DAS Trojanische Pferd, wenn nicht, na ja
dann schlag mal sofort im Lexikon nach.
Unser Trojaner hat aber keine Hufe sondern besteht aus einem Server und einem
Client. Der Client dient als Sender und der Server interpretiert die empfangene
Nachricht und führt dementsprechend etwas aus.
So, jetzt bekommt ihr noch ein kleines Schema:
|~~~~~~~~| sendet an |~~~~~~~~|
| Client | --------------> | Server |
|________| auf Port X |________|
|~~~~~~~~| interpretiert |~~~~~~~~~~|
| Server | ---------------> den Befehl auf | Computer |
|________| und führt aus |__________|
Der empfangene Text beinhaltet meistens etwas, das mit der Funktion zu tun hat.
z.B. cd_open
jetzt durchläuft der Server einige Schleifen und findet:
if ServerSocket.Socket.ReveiveText = cd_open then ......
Nach diesem Beispiel funktioniert der Sender - Empfänger Teil.
Jetzt fragt ihr euch aber: Er muss doch aber über einen Port zugreifen.
Das tut er auch, deshalb sind auch Trojaner leicht zu finden.
Meistens aber befindet sich der Port auf 12345 z.B. oder sonst einem Port, der
erst nach einiger Zeit entdeckt wird.
Woher weiß ich aber, dass das Opfer Online ist?
Da Microsoft nicht viel von Sicherheit hält, sind die E-Mail Informationen
in der Registry zu finden und der Server sendet anhand dieser gefundenen
Informationen eine E-Mail an die im Server eingetragene Adresse.
Möglich ist auch eine Benachrichtigung über ICQ. Das geht, indem eine
Mail an "UIN"@mirabilis.com gesendet wird.
Und wie kann der Bösewicht auf die Systemeinstellungen zugreifen?
Die Einstellungen können alle über die API Funktionen geregelt werden.
Es wird "nur" eine API auf dem Opfer - Computer ausgeführt.
Wie kommt er an meine Dateien?
In dem Fall ist ein FTP Server noch im Trojaner enthalten. Der Client
verbindet sich ( FTP Client muss im Client enthalten sein ) mit dem FTP Server.
Es handelt sich also um eine "normale" FTP - Sitzung.
Wie kommt er an meine Passwörter?
Die Passwörter werden in der Registry und in diversen Dateien gespeichert.
( z.B. WS-FTP Speichert die Daten in einer INI, die im selben Verzeichnis sind )
Bei den meisten Trojanern sind Funktionen eingebaut, die nach bestimmten
Passwörtern suchen.
Eine andere Möglichkeit besteht darin, dass ein Keylogger in den Server
eingebaut ist. => es sind mehrere Server/Client Komponenten in einem Trojaner.
TROJANER - SUCHE
~~~~~~~~~~~~~~~~
Glaubst du, dass ein Trojaner auf deinem Computer ist?
Dann lese das hier sorgfältig durch!
1. Schalte unter deinem Outlook Java - Script aus
2. Schalte die Vorschau aus
3. Lösche alle Mails, die von zwielichtigen Personen kommen
4. Speichere keine Passwörter
5. Besitze einen Virenscanner ( F-Prot ) mit den neuesten Signaturen
Wenn du wirklich sicher gehen willst, dann besorge dir einen Firewall.
Dieses Programm zeichnet jede Verbindung auf und läst nur autorisierte
Verbindungen zu.
Schau gelegentlich in deine Registry (c:\Windows\Regedit.EXE) und such
nach merkwürdigen Einträgen, wie eine IP oder Leereinträgen.
IRC - Programme
~~~~~~~~~~~~~~~
Um IRC - Programme zu schreiben, musst du das RFC 1459 haben, da in diesem
Text die Befehle des IRC enthalten sind. Diese Programme sind im Grundprinzip
relativ einfach zu schreiben.
1. eine Oberfläche
2. Internet - Komponenten
3. RFC 1459
Dieses Programm verbindet sich über den Port 6666 - 6669 mit dem IRC - Server.
Du sendest jediglich die IRC - Befehle. Du musst aber eine gute Menüführung
schreiben, da sich die Benutzer sonst auch gleich mit telnet verbinden können.
|~~~~~~~| Verbindung mit |~~~~~~~~|
| Prog | ---------------> | Server |
|_______| auf Port X |________|
Nun muss das Programm die Befehle mit den eingestellten Optionen ( Nickname )
senden; die Antwort interpretieren und wieder antworten.
Wenn es ein Bot werden soll, dann musst du eine Script - Sprache entwickeln
und diese vom Bot interpretieren lassen.
Das Design
~~~~~~~~~~
Du hast also ein Programm geschrieben, aber irgendetwas fehlt noch.
Genau! Ein ansprechendes Design. Für die privaten Zwecke brauchst du keins.
Du willst es aber veröffentlichen, aber welche Farben sollst du nur verwenden?
Ich empfehle dir die Farben Schwarz, Rot und Grün. Dazu solltest du ein
Hintergrundbild wählen, welches etwas mit dem Programm zu tun hat.
Exploits
~~~~~~~~
Exploits sind meistens kleinere Programme, die eine Schwachstelle in einem
Programm ausnutzen und ein System - Crash verursachen oder dem Benutzer es
ermöglicht, Root - Rechte zu bekommen. Momentan ist der Buffer - Overflow
sehr verbreitet. Die Schwachstellen werden dadurch entdeckt, da die Programme
unter Linux im Quelltext verfügbar sind.
Ich werde keine Beispiele hier bringen, da es wohl genügend Exploits gibt,
die auch ausreichend mit Kommentaren versorgt sind.
~~~~
Ich hoffe ich konnte euch helfen.
graaze
knollo14







