Skip Navigation

Login





Join! | Login troubles?

Online members

Guests:8
Members:0

Poll

What's your favorite scripting language for solving challenges?


python (12.4%)

perl (9.2%)

bash (3.2%)

ruby (1.9%)

php (37.5%)

javascript (13.0%)

I'm not convinced scripting saves time, I use a "proper" language for everything I do. (15.6%)

Scripting? Excel for the winners, man! (7.3%)


Total votes: 315
Date added: 2008-06-14

View text

Info
Author BlackAngel
Date added 2002-10-21
Last modified 2002-10-21


Hoe schrijf ik zelf een trojan...

Hoe schrijf ik zelf een Trojan

Een trojan horse is een makkelijke manier om toegang te krijgen tot een computer van iemand anders. Helaas worden de meeste trojans herkend door virus-scanners en de minder bekende trojans hebben niet de functies die je nodig hebt. Dus waarom schrijf je zelf geen trojan? Je hebt voor deze tutorial wel kennis nodig van een hogere programeertaal. Je moet met API’s kunnen omgaan, een beetje over netwerken weten en veeeel tijd hebben. Je hoeft deze informatie niet te gebruiken om een trojan te maken. Veel van deze informatie is ook goed te gebruiken voor andere programma’s.

Een trojan bestaat uit 2 delen. Een server en een client. De server staat  op de pc van het slachtoffer en d.m.v de client ben jij in staat met die server te communiceren. Ik ga hier niet een handleiding geven die precies bevat hoe je een trojan schrijft, ik wil uitleg geven hoe je het aanpakt. De trojan die ik beschrijf is bedoeld voor windows. De makkelijkste manier om een trojan te schrijven is in een hogere programmeertaal. Ik heb zelf Basic gebruikt omdat ik daar al veel van af wist, maar het kan natuurlijk met elke taal.

We beginnen met de server. Die bestaat uit een aantal onderdelen die ik elk apart behandel.
1)    Autostart. Je wilt natuurlijk dat je trojan automatich start als het OS start. Daar zijn velen verschillende oplossingen voor. In het bestand system.ini staat de boot-sector. Alles wat daar staat word uitgevoerd. Zetten we daan dan “load=c:\windows\trojan.exe” dan word onze trojan mooi gestart. Een andere manier is d.m.v het register. Zetten we ons programma op deze plek in het register: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] dan word ook de trojan steeds gestart. Dit zijn enkele voorbeelden van auto-start. Er zijn er natuurlijk veel meer.
2)    Invisibility. De server moet ontzichtbaar zijn. Het programma niet laten zien op het scherm is niet zo moeilijk. Zo schrijf je in Basic “me.hide” en elke taal heeft daar wel iets voor. Ook de task-manager is te omzeilen. Een screen-saver staat namelijk niet in task-manager als je goed kijkt. Dus foppen we het OS en doen we ons programma voor als een screen-saver. Dit is niet zo moeilijk te doen, er bestaat hier een bestaande API voor. Gewoon ff zoeken op internet welke dat precies is. Zorg ervoor dat je al je variabelen goed declareerd en geen zware bewerking uitvoerd. Hierdoor kan het slachtoffer iets in de gaten krijgen, omdat het systeem dan veel resources gebruikt.
3)    Connection. Duhhh, lijkt me nogal logisch he. Het makkelijkste is om gebruik te maken van winsock. Gewoon het “Microsoft Winsock” component toevoegen. Vervolgens kan je met het commando “listen” het programma laten luisteren naar een connectie. Alleen firewalls vormen dan nog een probleem, maar daar kom ik later op terug.
4)    Windows. Het programma moet kunnen communiceren met windows. Dit kunnen we doen met de API “SetWindowsHookEx” nu kunnen we zien welke programma runnen en welke informatie die naar windows sturen en omgekeerd. We kunnen natuurlijk ook zelf nu dingen gaan sturen naar die programma’s of windows. Het is altijd leuk om iemand MSN of ICQ ff over te nemen. Op deze manier is het ook mogelijk om de firewall te beinvloeden.
5)    Functies. Het programma moet simpele functies kunnen verrichten. Wat je je trojan laat doen is aan jou. Je kan hem bijvoorbeeld cd CD-rom van het slachtoffer laten openen ofzo. Een upload/download commando is altijd handig of een keylogger. Maar je kan het natuurlijk ook gebruiken voor een DoS attack. Je laat je trojan dan zichzelf verspreiden  via MAPI ofzo. En als jij opdracht geeft via je client, worden alle servers geactiveerd en zullen ze een DoS attack uitvoeren.
6)    Polymorf. Zodra je trojan door AVP gevond is heb je er weinig meer aan. Maak daarom je trojan polymorf. Laat het zelf een naam randomize. Laat het de volgorden van zijn eigen algoritmes een beetje veranderen. Op deze manier ontstaan er allemaal verschillende varianten van jou trojan.
Het kan zijn dat je het IP van je slachtoffer niet weet. Je kan dan natuurlijk een een mail-functie inschrijven dat via SMTP een mailtje stuurt naar jou met daarin het IP.

De Client. Dit is het programma dat communiceert met de server. Maak een duidelijke interface, en niet een rotzooi van allemaal buttons bij elkaar. De client gebruikt ook weer de winsok verbinding om te communiceren. Heel simpel volgens het “connect + IP” commando. Het is het makkelijkste om dan je client simpelen strings te laten sturen zoals “winsock.senddata “keylog_on” ” die vervlogens herkend worden door de server. Op deze manier is er niet erg veel netwerkverkeer en zal het slachtoffer niets vermoeden. Voor de rest is er weinig moeilijks aan de client. Als je nog een uitdaging zoekt voor de client, probeer het dan een zonder :P. Winsock is namelijk uitstekend in staat te communiceren met telnet. Je kan dan met telnet de server besturen vanaf elke pc (aangenomen het verbonden is).

Dit was het volgens mij wel zo’n beetje. Ik heb deze tekst niet geschreven om iemand kwaad te doen, ik wil gewoon informatie geven. Het is aan jezelf wat je met deze informatie doet.

Veel succes, BlackAngel