Keelog heeft besloten om een vroege versie van zijn hardware keylogger familie vrij te geven aan het publieke domein, inclusief volledige firmware- en softwarebroncode, keylogger hardware elektrische schema's en documentatie. Deze PS/2 keylogger is een 100% operationeel en getest apparaat, geassembleerd en gebruikt door honderden mensen over de hele wereld. De werking van deze hardware keylogger is vergelijkbaar met de KeyGrabber PS/2. Wij bieden de applicatie KeyGrab aan voor het ophalen en analyseren van opgenomen toetsaanslaggegevens. Let echter op dat dit DIY hardware keylogger project wordt geleverd zoals het is, met alle fouten, en zonder enige garantie.
Voordat u begint, gaat u deze lijst af om te controleren of u alle benodigde tools en vaardigheden heeft om dit hardware keylogger-project uit te voeren:
De volgende componenten zijn vereist voor het hardware keylogger project:
Tot slot is een behuizing voor de hardware keylogger vereist. Een goed idee is om een PS/2 verlengkabel en een stuk van 4 inch krimpkous te kopen, die thermisch om de kant-en-klare keylogger kan worden gewikkeld.
Programmeer eerst de keylogger-microcontrollerfirmware. Start uw programmeersoftware, kies de AT89C2051 en brand de flash met het binaire bestand of de hex-versie. U kunt ook de bron opnieuw compileren met behulp van de broncode en een 8051-compiler. Het solderen is waarschijnlijk het moeilijkste onderdeel van het project, omdat de hardware van de keylogger zo klein mogelijk moet worden gemaakt. De onderstaande schema's van de keylogger hardware tonen hoe de verbindingen tussen de componenten moeten worden gemaakt.
Soldeer de componenten samen, te beginnen bij de microcontroller en de EEPROM. Ongebruikte IC-pinnen kunnen worden verwijderd. Zorg ervoor dat de drukknop toegankelijk is. Bij het monteren van de condensator, zorg ervoor dat deze correct gepolariseerd is.
Maak de hardware keylogger zo compact mogelijk, maar vermijd kortsluiting. Ze zullen moeilijk te verwijderen zijn nadat het apparaat is voltooid. Het keyloggercircuit moet er enigszins uitzien als het prototype dat op de foto wordt getoond, nadat de belangrijkste componenten zijn aangesloten.
Soldeer tot slot de PS/2-connectoren aan de keylogger. Een goed idee is om de PS/2-verlengkabel in twee stukken te knippen en elk deel afzonderlijk te solderen. Zorg ervoor dat u de krimpkous op één deel van de kabel plaatst. Verbind alle vier gebruikte PS/2-pinnen (CLK, DATA, VCC en GND) op beide connectoren (bij het toetsenbord en bij de computer).
Voordat je de thermische buis om de hardware keylogger trekt, is het een goed idee om wat lijm of hars tussen de componenten te laten lopen, om het apparaat steviger te maken. Trek tot slot de thermische buis eromheen, verwarm deze totdat deze om de gesoldeerde componenten zit, en snijd een klein gaatje uit zodat de knop bereikbaar is.
De hardware keylogger begint met het opnemen van toetsgegevens zodra deze is aangesloten tussen het toetsenbord en de computer. De keylogger is volledig transparant voor de werking van de computer en kan niet worden gedetecteerd door software in opnamemodus. Alle toetsgegevens die door het toetsenbord worden verzonden, worden opgenomen in het 64 kB hardware niet-vluchtige EEPROM-geheugen. De opnamemodus is volledig onafhankelijk van het besturingssysteem dat op de computer is geïnstalleerd.
Zoek de PS/2-connector op de computer.
Koppel het toetsenbord los.
Sluit de hardware keylogger aan in plaats van het toetsenbord.
Sluit het toetsenbord aan op de keylogger. Bij het opstarten van de computer worden gegevens opgenomen.
Zodra de hardware keylogger toetsgegevens heeft opgenomen, kunnen deze worden opgehaald op elke pc met Windows 9X/Me/XP/2000. De hardware keylogger doet dit door toetsenbordtoetsen te simuleren. De verzonden toetsgegevens worden opgehaald door de KeyGrab-toepassing. Zodra deze gegevens naar de computer zijn verzonden, kunnen ze worden verwerkt en geanalyseerd. Volg de instructies om gegevensdownload te starten.
Voer de KeyGrab applicatie uit.
Sluit de hardware keylogger aan in plaats van het toetsenbord. Sluit het toetsenbord niet aan.
Klik op de titelbalk KeyGrab om het de actieve toepassing te maken.
Druk op de knop op de hardware keylogger om gegevensdownload te starten. Verander de actieve toepassing niet tijdens de overdracht. Druk nogmaals op de knop om de overdracht te voltooien. Doe dit wanneer de gewenste toetsaanslaggegevens zijn gedownload naar de pc.
Koppel de hardware keylogger los en sluit uw PS/2-toetsenbord weer aan.
Bij het downloaden van toetsaanslaggegevens naar de hoofdtabel KeyGrab, worden deze automatisch voorbewerkt om toetsgegevens weer te geven die zijn gelogd tijdens opname. Gegevens worden verzonden in aflopende volgorde, om recent ingedrukte toetsen eerst weer te geven. Toetsaanslagen die lang geleden plaatsvonden, worden later verzonden. U kunt de tabel handmatig analyseren of enkele van de zoekopties gebruiken.
De enige kolom die interessant is voor de gebruiker is Key (2) en Actie (3). Deze kolommen coderen welke toetsen zijn ingedrukt en losgelaten. Scroll de balk om de toetsaanslaggeschiedenis tijdens opname te zien. Keyloggergegevens worden in omgekeerde chronologische volgorde verzonden (recente toetsaanslaggegevens eerst).
De toepassing voor het ophalen en analyseren van gegevens van de DIY hardware keylogger voor Windows 9X/ME/2000/XP:
KeyGrab.zip (0.7MB)
De volledige broncode voor de AT89C2051 microcontroller:
Broncode - diy.asm
De voorgecompileerde AT89C2051 hardware keylogger firmware is ook beschikbaar:
BIN-bestand - diy.bin, HEX-bestand - diy.hex
We raden u aan om dit gedeelte te lezen om problemen te voorkomen die zich kunnen voordoen bij het gebruik van de hardware keylogger.
Als je een PS/2 toetsenbordkabel doorknipt, zul je waarschijnlijk 6 draden aantreffen. Slechts 4 hiervan zijn zinvol. Twee van deze draden zijn voedingslijnen: aarde (GND) en +5 volt (VCC) van de computer voeding. De andere twee draden zijn asynchrone transmissielijnen: de datalijn (DATA) en de kloklijn (CLK). Je kunt zien hoe deze lijnen overeenkomen met de DIN (a) en miniDIN (b) connectorpinnen op de afbeelding rechts. De transmissie is bidirectioneel, maar het toetsenbord is superieur. Het toetsenbord stuurt informatie over welke toetsen zijn ingedrukt en losgelaten. Het gegevensblok bestaat slechts uit één byte, voorafgegaan door een startbit en gevolgd door een pariteits- en stopbit. Het toetsenbord plaatst opeenvolgende bits op de DATA-lijn en klokt ze met negatieve impulsen op de CLK-lijn. De kloksnelheid is 10...30 kHz. Dit zou een zeer mooie seriële protocol zijn als het niet voor de computer was, die af en toe informatie naar het toetsenbord wil sturen. In dergelijke gevallen trekt de pc de CLK-lijn tijdelijk laag en wacht tot het toetsenbord begint impulsen te genereren. Wanneer deze impulsen beginnen, klokt het zijn eigen karakter in op de DATA-lijn. Je kunt de statusdiagrammen van toetsenbord naar host (a) en host naar toetsenbord (b) transmissie zien op de afbeelding hieronder. Dit protocol heeft natuurlijk enkele uitzonderingen, zoals het onderbreken van een transmissie, karakterherhaling, enz. Deze gevallen zijn echter zeer zeldzaam.
Dus wat wordt er eigenlijk door de toetsenbordlijnen verzonden? Bij het opstarten sturen zowel het toetsenbord als de computer initialisatiegegevens om aan te geven dat ze in orde zijn. Wanneer de computer normaal werkt, stuurt alleen het toetsenbord gegevens. Dit zijn gegevens over elk evenement dat heeft plaatsgevonden. Een evenement wordt beschouwd als een toets die wordt ingedrukt of losgelaten. Als een standaardtoets wordt ingedrukt, wordt de zogenaamde 'scancode' verzonden. Elke toets heeft precies één scancode, wat resulteert in een kaart van scancodes. Als een toets wordt losgelaten, wordt eerst het speciale byte 240 (F0 hex) verzonden, gevolgd door de scancode van de toets. Dus een standaardtoetsaanslag zorgt ervoor dat er 3 tekens over de lijn worden verzonden. Als een toets lange tijd ingedrukt wordt gehouden, wordt constant de scancode gegenereerd met de ingestelde herhalingssnelheid. Wanneer de toets uiteindelijk wordt losgelaten, wordt het karakter 240 (F0 hex) verzonden, gevolgd door de scancode. Dit zou nog steeds een mooi protocol zijn als het niet voor enkele speciale toetsen op het standaard PC-toetsenbord was, zoals Home, End, de pijltjestoetsen, enz. Wanneer een speciale toets wordt ingedrukt, wordt de byte 224 (E0 hex) gegenereerd, gevolgd door de scancode. Wanneer een speciale toets wordt losgelaten, wordt de volgorde 224, 240 afgevuurd (E0, F0), gevolgd door de scancode. Normale en speciale toetsen zijn gemeenschappelijk voor alle nationale toetsenbordindelingen met betrekking tot de kaart van scancodes. Om het verhaal wat ingewikkelder te maken, bestaan er twee super-speciale toetsen, Print Screen en Pause, die een hele reeks scancodes veroorzaken die worden verzonden. Voor een toetsenbordinterface is het het beste om te doen alsof deze toetsen niet bestaan.
De microcontroller controleert voortdurend de DATA- en CLK-lijnen, waarbij alle gegevens worden vastgelegd. Gegevens worden gelogd naar het niet-vluchtige EEPROM-geheugen terwijl ze langs de lijn gaan. Hierdoor kan de gebruiker later informatie vinden over elk evenement op het toetsenbord. Wanneer de gebruiker besluit dat de opname voorbij is en op de knop drukt, schakelt de hardware keylogger over naar de afspeelmodus. Het toetsenbord moet worden losgekoppeld, anders zal het de gegevensstroom interpreteren. De keylogger begint toetsgegevens te simuleren vanuit het interne hardwaregeheugen. De KeyGrab applicatie moet actief zijn om de gegevensstroom van de keylogger hardware te verwerken. Normale toetsen worden gesimuleerd alsof ze in het geheugen zijn geschreven, en speciale toetsen worden verzonden met behulp van een tweebit hexadecimale code.