Het is ruim 10 jaar geleden terwijl ik in een klaslokaal zit van de Fontys Hogescholen ICT in Eindhoven. Ik volgde daar de opleiding Bedrijfskundige Informatica. In het lokaal is een discussie gaande over beveiliging, virussen, trojans en beveiligingssoftware.
Aan het einde van de discussie daagt de ICT docent uit om zijn laptop te hacken. Doel was om persoonlijke bestanden van zijn harde schijf te stelen. De eerste eis is dat het geen schade mocht opleveren aan hard- en software en de tweede is dat het vanuit de laptop moet gebeuren. Kort samengevat komt het neer op een trojan.
Om de klas nog verder uit te dagen is de beloning 3 vrije studie punten. Tijdens je opleiding moet je een x aantal vrije studiepunten verzamelen. Dus je docent hacken en studiepunten verdienen. Wat wil je nog meer? Dus ging ik de uitdaging aan.
Belangrijk:
In dit blog wordt beschreven hoe ik mijn docent met zijn toestemming gehacked heb via een trojan. Tijdens deze uitdaging zijn bestanden van zijn laptop gekopieerd. Deze zijn onder zijn toezicht vernietigd. Bestanden zijn nooit door mij bekeken i.v.m. de privacy. Doel was om de beveiliging van de laptop te testen. De trojan is na 30 minuten gestopt.
Ik begon na te denken over hoe ik deze opdracht uit kon voeren en kwam tot een aantal stappen die ik hieronder uitgewerkt heb.
Hoe kwam de trojan bij de docent op zijn laptop:
Het is een IT docent dus die zijn over het algemeen wat voorzichtig met het klikken op links en bijlagen in e-mails. In dezelfde week moest ik ook een huiswerkopdracht maken in Microsoft Access.
Ik besluit om met VBA code te schrijven die op de achtergrond de trojan download vanaf mijn FTP server. Om dit mogelijk te maken moet de docent wel de VBA beveiliging uitschakelen. Aangezien ik een dashboard met knoppen heb gemaakt oogde dat vrij onschuldig en werd de beveiliging uitgeschakeld.
Om geen foutmeldingen te tonen ving ik deze allemaal af. Voorbeelden hiervan zijn het ontbreken van de trojan of een instabiele internetverbinding.
De trojan zou een .exe programma zijn. Maar als je dat opeens download trek je de aandacht van een firewall. Om dit te voorkomen geef ik het bestand de extensie van een database. Na het downloaden hernoemde ik het bestand naar update.exe en starte het op.
Hoe ontwikkelde ik de trojan:
Ik had gekozen voor de programmeertaal Delphi. Dit was een programmeertaal waar we in hetzelfde semester les in kregen. Een mooie uitdaging om mijn kennis verder uit te breiden. Aangezien het programma geen foutmeldingen mocht tonen had ik alle mogelijke situaties die fouten konden veroorzaken ondervangen.
Hoe voorkom ik dat de trojan gedetecteerd werd:
Ik wist dat voor de firewall gebruik gemaakt werd van Windows Firewall. Nadat de trojan was opgestart voegde ik daarom het programma toe aan de witte lijst van de firwall. Dit kon ik doe door een sleutel toe te voegen aan het Windows register. Eigenlijk te eenvoudig.
Wat deed mijn trojan:
Hij begon met iets onschuldigs. Het aanpassen van de startpagina van Internet Explorer. Daarnaast opende hij ook Internet Explorer op bepaalde momenten.
De derde actie was het uploaden van bestanden vanaf de laptop. Hiervoor scande hij de standaard Windows mappen. Aangezien het om een proof of concept ging had ik hem gelimiteerd tot Word documenten.
De gevonden bestanden werden via het FTP protocol naar mijn server geupload. Iedere keer werd er gecontroleerd of er nog een internetverbinding was.
Waarom werkte de trojan:
Ik heb veel uren gestoken in het ontwikkelen van de VBA en Delphi code. De kwaliteit moest optimaal zijn en bestandsgrootte zo klein mogelijk. Belangrijker nog was dat ik veel getest heb. Op internet heb ik veel gelezen over hoe ik nog efficiënter code kon ontwikkelen.
Om te voorkomen dat de docent tijdens het gebruiken van zijn laptop zou merken dat er bestanden werden geupload limiteerde ik het programma. Hiervoor maakte ik gebruik van een loop die telkens een x aantal bestanden deed uploaden. Ieder rondje eindigde met een rustmoment middels het sleep commando.
De docent de resultaten laten zien:
Na 30 minuten ben ik naar de docent gegaan en heb hem een lijst van zijn bestanden op mijn server laten zien. Hij was behoorlijk verrast en had niets gemerkt. Hij was nieuwsgierig hoe ik het gedaan had en dit heb ik tot in detail laten zien. Hij was het met me eens dat Windows firewall niet de beste beveiliging was en ging zoeken naar een alternatief.
Welke punten heb ik geleerd van deze opdracht:
- Welke problemen zijn er die opgelost moeten worden
- Hoe kan je zo efficiënt mogelijk programmeren
- Leer denken als een hacker
- Test alles zeer uitgebreid
- Houd rekening met zoveel mogelijk situaties
Conclusie:
Misschien is wel het belangrijkste aandachtspunt dat de firewall van Windows 7 zo eenvoudig te omzeilen is. Ik installeer daarom altijd beveiligingssoftware van een externe leverancier. Op dit moment is dat F-Secure. Een ander aandachtspunt dat je niet zomaar de Access beveiliging moet deactiveren om VBA- en Macro code uit te voeren.
Lees in dit blog of het kwaad kan om meerdere antivirusscanners te installeren.
Erg waardevolle informative, ik ga het toepassen!