Keelog se rozhodl zveřejnit časnou verzi své rodiny hardware keyloggerů ve veřejné doméně, včetně plného firmware a softwarového zdrojového kódu, elektrických schémat keyloggerového hardwaru a dokumentace. Tento key logger od PS/2 je 100% funkční a otestované zařízení, sestavené a používané stovkami lidí po celém světě. Provoz tohoto hardware key loggeru je podobný jako u KeyGrabber PS/2. Poskytujeme aplikaci KeyGrab pro získání a analýzu zaznamenaných údajů o stisknutých klávesách. Všimněte si však, že tento projekt DIY hardware keyloggeru je poskytován takový, jaký je, se všemi chybami a bez jakékoli záruky.
Před zahájením se podívejte na tuto seznam, abyste zkontrolovali, zda máte všechny potřebné nástroje a dovednosti k dokončení tohoto projektu keyloggeru:
Pro hardware keylogger projekt jsou vyžadovány následující komponenty:
Nakonec je nutné pouzdro pro hardware keylogger. Dobrým nápadem je koupit prodlužovací kabel PS/2 a 4palcový kus termo smrštitelné trubky, který lze tepelně obalit kolem hotového keyloggeru.
Nejprve naprogramujte firmware mikrokontroléru keyloggeru. Spusťte svůj programátorový software, vyberte AT89C2051 a vypalte flash paměť s binárním souborem nebo hex verzí. Můžete také znovu zkompilovat zdrojový kód pomocí zdrojového kódu a 8051 kompilátoru. Pájení je pravděpodobně nejtěžší částí projektu, protože hardware keyloggeru by měl být co nejmenší. Níže uvedené schémata hardware keyloggeru ukazují, jak by měly být vytvořeny spoje mezi komponenty.
Spojte součástky dohromady začínaje mikrokontrolérem a EEPROMem. Nepoužité piny integrovaných obvodů lze odstranit. Ujistěte se, že tlačítko je přístupné. Při montáži kondenzátoru se ujistěte, že je správně polarizován.
Zařiďte hardware keylogger co nejkompaktnější, ale vyhněte se zkratům. Po dokončení zařízení budou obtížně odstranitelné. Obvod keyloggeru by měl vypadat nějak podobně jako prototyp zobrazený na fotografii, poté, co jsou připojeny hlavní komponenty.
Nakonec připájejte konektory PS/2 k keyloggeru. Dobrý nápad je rozřezat prodlužovací kabel PS/2 na dvě části a každou část připájet samostatně. Ujistěte se, že na jednu část kabelu nasadíte termocontractilní trubici. Propojte všechny čtyři použité piny PS/2 (CLK, DATA, VCC a GND) na obou konektorech (u klávesnice a u počítače).
Předtím, než zatáhnete tepelnou trubici kolem hardwarového keyloggeru, je dobrý nápad nechat trochu lepidla nebo pryskyřice mezi komponenty, aby bylo zařízení pevnější. Nakonec zatáhněte tepelnou trubici, zahřejte ji, dokud se neobtočí kolem pájených komponentů, a vyřízněte malý otvor, aby bylo tlačítko přístupné.
Hardware keylogger začne zaznamenávat klíčová data ihned poté, co je zapojen mezi klávesnici a počítač. Keylogger je zcela transparentní pro provoz počítače a nemůže být detekován softwarem v režimu záznamu. Všechna klíčová data odeslaná klávesnicí budou zaznamenána do 64 kB hardwarové nevolatilní paměti EEPROM. Režim záznamu je zcela nezávislý na operačním systému nainstalovaném na počítači.
Najděte konektor PS/2 na počítači.
Odpojte klávesnici.
Připojte hardware keylogger místo klávesnice.
Připojte klávesnici k keyloggeru. Po zapnutí počítače začne záznam dat.
Jakmile hardware keylogger zaznamenal klíčová data, lze je získat na libovolném počítači s Windows 9X/Me/XP/2000. Hardware keylogger to dělá tím, že simuluje stisknutí klávesnice. Přenášená data klávesnice jsou získána aplikací KeyGrab. Jakmile jsou tato data přenesena do počítače, lze je zpracovat a analyzovat. Postupujte podle instrukcí pro zahájení stahování dat.
Spusťte aplikaci KeyGrab.
Připojte hardware keylogger místo klávesnice. Nepřipojujte klávesnici.
Klikněte na titulní řádek KeyGrab, abyste jej učinili aktivním aplikací.
Stiskněte tlačítko na hardware keyloggeru pro spuštění stahování dat. Během přenosu nezměňujte aktivní aplikaci. Stiskněte tlačítko znovu pro dokončení přenosu. Udělejte to, až budou požadovaná data stisknutí kláves stažena do počítače.
Odpojte hardwarový keylogger a znovu připojte klávesnici PS/2.
Při stahování dat stisknutí kláves do hlavní tabulky KeyGrab jsou automaticky předzpracována tak, aby zobrazovala klíčová data, která byla zaznamenána během nahrávání. Data jsou přenášena sestupně, aby byla zobrazena nedávno stisknutá klávesa jako první. Stisknutí kláves, která se udála před dlouhou dobou, jsou přenášena později. Tabulku můžete analyzovat ručně nebo použít některé z možností vyhledávání.
Jediný sloupec, který je pro uživatele zajímavý, je Klíč (2) a Akce (3). Tyto sloupce kódují, které klávesy byly stisknuty a uvolněny. Posuňte pruh pro zobrazení historie stisknutí kláves během záznamu. Data keyloggeru jsou přenášena v opačném chronologickém pořadí (nejnovější data o stisknutí kláves nejprve).
Aplikace pro získání a analýzu dat z DIY hardware keyloggeru pro Windows 9X/ME/2000/XP:
KeyGrab.zip (0.7MB)
Plný zdrojový kód pro mikrokontrolér AT89C2051:
Zdrojový kód - diy.asm
Předkompilovaný firmware keyloggeru pro hardware AT89C2051 je také k dispozici:
Soubor BIN - diy.bin, HEX soubor - diy.hex
Doporučujeme vám přečíst tuto sekci, abyste se vyvarovali problémů, které by mohly nastat při použití hardwarového keyloggeru.
Pokud byste přestřihli kabel klávesnice PS/2, pravděpodobně byste uvnitř našli 6 drátů. Pouze 4 z nich jsou významné. Dva z nich jsou napájecí linky: zem (GND) a +5 voltů (VCC) z napájecího zdroje počítače. Ostatní dva dráty jsou asynchronní přenosové linky: datová linka (DATA) a hodinová linka (CLK). Můžete vidět, jak tyto linky odpovídají pinům konektoru DIN (a) a miniDIN (b) na obrázku vpravo. Přenos je obousměrný, avšak klávesnice je nadřazená. Klávesnice odesílá informace o stisknutých a uvolněných klávesách. Datový blok se skládá pouze z jednoho bytu, předchází mu startovní bit a následuje paritní a stop bit. Klávesnice umisťuje po sobě jdoucí bity na datovou linku DATA a hodinovými impulsy na linku CLK je hodinuje. Frekvence hodin je 10...30 kHz. Toto by byl velmi pěkný sériový protokol, kdyby nebyl počítač, který občas chce poslat informace klávesnici. V takových případech PC stáhne linku CLK dolů po určitou dobu a čeká, až klávesnice začne generovat impulsy. Jakmile tyto impulsy začnou, klávesnice zaznamenává svůj vlastní znak na datovou linku. Můžete vidět stavové diagramy přenosu klávesnice k hostiteli (a) a hostitele k klávesnici (b) na obrázku níže. Tento protokol má samozřejmě několik výjimek, jako je přerušení přenosu, opakování znaku atd. Tyto případy jsou však velmi vzácné.
Co vlastně putuje přes linky klávesnice? Při startu odesílají klávesnice i počítač inicializační data, informující o tom, že jsou v pořádku. Když počítač běží normálně, odesílá data pouze klávesnice. Jedná se o data o každém události, která nastala. Událostí se považuje stisknutí nebo uvolnění klávesy. Pokud je stisknuta standardní klávesa, je odeslán tzv. "scan kód". Každá klávesa má právě jeden scan kód, vytvářející mapu scan kódů. Pokud je klávesa uvolněna, nejprve je odeslán speciální byte 240 (F0 hex), následně je odeslán scan kód klávesy. Standardní stisk klávesy tedy způsobí odeslání 3 znaků po lince. Pokud je klávesa podržena po určitou dobu, její scan kód bude neustále generován s nastaveným opakovacím zpožděním. Když je nakonec uvolněna, bude odeslán znak 240 (F0 hex), následovaný scan kódem. Toto by byl stále pěkný protokol, kdyby neexistovaly některé speciální klávesy na standardní klávesnici PC, jako je Home, End, šipky atd. Když je stisknuta speciální klávesa, generuje se bajt 224 (hex E0), následovaný kódem skenování. Když je speciální klávesa uvolněna, je spuštěna posloupnost 224, 240 (E0, F0), následovaná kódem skenování. Normální a speciální klávesy jsou společné pro všechny národní rozložení klávesnice s ohledem na mapu skenovacích kódů. Pro zjednodušení ještě trochu složitější, existují dvě super-speciální klávesy, Print Screen a Pause, které způsobují odeslání celé posloupnosti skenovacích kódů. Pro rozhraní klávesnice je nejlepší předstírat, že tyto klávesy neexistují.
Mikrokontrolér neustále monitoruje DATA a CLK linky, sbírá všechna data. Data jsou ukládána do nevolatilní paměti EEPROM, jakmile projdou linkou. Díky tomu může uživatel později zjistit o každé události na klávesnici. Když uživatel rozhodne, že nahrávání skončilo a stiskne tlačítko, hardware keylogger přepne do režimu přehrávání. Klávesnice by měla být odpojena, jinak bude interpretovat datový tok. Keylogger začne simulovat klíčová data z interní paměti hardware. Aplikace KeyGrab musí být aktivní, aby zpracovala datový tok z hardware keyloggeru. Normální klávesy jsou simulovány, jako by byly napsány do paměti, a speciální klávesy jsou přenášeny pomocí dvoubytové hexadecimální kódu.