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.

Open source DIY hardware keylogger

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:

  • enige ervaring met elektronische hardware
  • een soldeerbout
  • een microcontroller programmeur (die de Atmel AT89CXX51 familie ondersteunt)
Open source DIY hardware keylogger - onderdelen

De volgende componenten zijn vereist voor het hardware keylogger project:

  • Atmel AT89C2051 microcontroller (of AT89C1051, AT89C4051)
  • Seriele EEPROM-chip AT24C512 (of compatibel)
  • 12 MHz kristal
  • Condensator 2 x 33p
  • 10 µF condensator
  • 10 kΩ weerstand
  • kleine drukknop
Open source DIY hardware keylogger - PS/2 kabel

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.

Open source DIY hardware keylogger - enige ervaring met elektronische hardware

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.

Open source DIY hardware keylogger - solderen

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.

Open source DIY hardware keylogger - connectoren

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).

Open source DIY hardware keylogger

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.

Open source DIY hardware keylogger - installatie 1

Zoek de PS/2-connector op de computer.

Open source DIY hardware keylogger - installatie 2

Koppel het toetsenbord los.

Open source DIY hardware keylogger - installatie 3

Sluit de hardware keylogger aan in plaats van het toetsenbord.

Open source DIY hardware keylogger - installatie 4

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.

Open source DIY hardware keylogger - Opnamemodus 1

Voer de KeyGrab applicatie uit.

Open source DIY hardware keylogger - Opnamemodus 2

Sluit de hardware keylogger aan in plaats van het toetsenbord. Sluit het toetsenbord niet aan.

Open source DIY hardware keylogger - Opnamemodus 3

Klik op de titelbalk KeyGrab om het de actieve toepassing te maken.

Open source DIY hardware keylogger - Opnamemodus 4

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.

Open source DIY hardware keylogger - Opnamemodus 5

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.

Open source DIY hardware keylogger - Gegevensanalyse

1 - Positie in het geheugen van de keylogger hardware gebruikt door het toetsenbordgebeurtenis (hexadecimale vorm).
2 - Vastgelegde en gelogde toetsaanslag.
3 - Gebeurtenis die heeft plaatsgevonden - een toetsaanslag of -loslating.
4 - Toetsaanslag scancode op de PS/2 bus (hexadecimale vorm).
5 - Laatste geheugenpositie geschreven tijdens opname (hexadecimale vorm).
6 - Geheugengrootte van de hardware keylogger (in kilobits).

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

Open source DIY hardware keylogger - KeyGrab

We raden u aan om dit gedeelte te lezen om problemen te voorkomen die zich kunnen voordoen bij het gebruik van de hardware keylogger.

Wettelijke aansprakelijkheid

  1. Landen hebben verschillende wetten over het vastleggen van toetsenbordgegevens. Het niet kennen van de wet betekent niet dat u deze niet hoeft te gehoorzamen. Lees alstublieft onze gebruikersovereenkomst.
  2. Wij nemen geen verantwoordelijkheid voor eventuele schade of letsel veroorzaakt door het gebruik van deze hardware keylogger.
  3. U mag dit apparaat niet gebruiken om gegevens te onderscheppen waarvoor u niet gemachtigd bent, vooral wachtwoorden, bankgegevens, vertrouwelijke correspondentie, enz. De meeste landen beschouwen dit als een misdrijf.

Belangrijke gegevensregistratie

  1. De hardware keylogger heeft 64 kB aan niet-vluchtig EEPROM-geheugen. Wanneer dit geheugen vol is, zal het schrijven opnieuw beginnen vanaf de eerste geheugenlocatie. De oudste gegevens zullen verloren gaan.
  2. De eerste 128 bytes van het geheugen zijn gereserveerd voor configuratiegegevens, zoals het opslaan van het laatste geheugen toegangsadres. Het laatste geheugen toegangsadres wordt ongeveer elke 10 seconden bijgewerkt.
  3. Laat de hardware keylogger niet aangesloten in opnamemodus wanneer dit niet nodig is. Dit zal geheugen gebruiken en oude, soms belangrijke, gegevens overschrijven.

Belangrijke gegevensoverdracht

  1. Voor het ophalen van toetsaanslaggegevens heeft u minimaal een 100 MHz Pentium-klasse computer met Windows 9X/Me/XP/2000 nodig.
  2. De hardware keylogger stuurt gegevens terug naar de computer door het toetsenbord te simuleren. Het echte toetsenbord moet worden losgekoppeld tijdens de transmissie.
  3. De actieve toepassing moet KeyGrab zijn. In alle andere gevallen zal Windows of een andere toepassing beginnen met het interpreteren van de gesimuleerde toetsaanslagen die afkomstig zijn van de hardware keylogger.
  4. Toetsaanslaggegevens worden opgehaald in omgekeerde chronologische volgorde. Dit gebeurt om recente gegevens als eerste te verstrekken. U moet even wachten om zeer oude toetsenbordgegevens te verkrijgen. Het hele transmissieproces kan tot 20 minuten duren.
  5. De overdracht moet handmatig worden beëindigd door nogmaals op de drukknop te drukken. Doe dit wanneer de toetsaanslaggegevens beginnen te worden gedupliceerd.

Toetsenbordbediening van PS/2

  1. Het toetsenbord PS/2 is iets ingewikkelder dan je misschien denkt. Dit kun je opmerken door de ruwe gegevens te analyseren die zijn vastgelegd door de hardware keylogger. Het PC-toetsenbord genereert telkens één karakter wanneer een toets wordt ingedrukt. Wanneer de toets wordt losgelaten, wordt het karakter opnieuw gegenereerd met een voorafgaand karakter 240 (F0 hex). Er zijn ook uitgebreide toetsen die het karakter 224 (E0 hex) gebruiken. Je kunt hier meer over lezen in het korte protocol van het toetsenbord PS/2.
  2. Hoewel de hardware keylogger 64 kB aan geheugen heeft, betekent dit niet dat er 64 duizend toetsaanslagen kunnen worden onthouden. Een toetsindruk-loslaatvolgorde vereist 3 bytes voor een standaardtoets en 5 bytes voor een uitgebreide toets. Het loggen is geoptimaliseerd in de commerciële versies.

Achtergrond

Open source DIY hardware keylogger - PS/2 signaallijnen

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.

Open source DIY hardware keylogger - golfvormen

Busgegevens

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.

Gegevensregistratie

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.