Archív Inet.sk Pôvodný autor: Libor Bešenyi
06. 02. 2007 o 00:00 7293x

Tunnelling 4 / 4 (HTTP)

Dneska si ukážeme, ako sa dá využiť HTTP na pašovanie príkazov dvoch zariadení.
Tunnelling 4 / 4 (HTTP)

Programujeme HTTP tunel

Teraz sa vráťme ku problému s trójskym koňom. Ako dostávať správy od klienta mimo LAN, keď serverová časť (časť obete, ktorá vykonáva príkazy – slúži – je otrokom – z latinčiny servo – teda server) „sedí“ za bránou s NAT protokolom?

Tu si pomôžeme inou službou, napríklad http. Ak na strane obeti je povolené prezerať stránky, tak celá aplikácia sa bude ovládať z textu, ktorý si prečíta na stránke. Tento text sa zasa bude meniť podľa toho, ako si to „želá“ klient. Takže keď sa pozrieme na obrázok v 2. kapitole o tunelovaní zistíme, že útočník vlastne ovláda redirektor, teda server, ktorý zasa ovláda klienta.

Čo potrebujeme, aby nám to fungovalo? Znalosti z nejakého vyššieho jazyka a webového jazyka napr. Perl, PHP, teda podľa potreby, čo máme „po ruke“ na redirektore. Náš program bude úplne primitívny a dokáže len jedinú vec – poslať príkaz obeti na otvorenie ľubovoľného programu (v ceste).

Ak nemáme po ruke žiaden server, nezúfajme. Celú komunikáciu si môžeme nasimulovať na jednom PC! Najprv si stiahneme a nainštalujeme PHP serever s webovým serverom Apache. Najlepšie je nájsť nejaký balíček, ktorý sa rýchlo a jednoducho inštaluje a so všetkým, čo potrebujeme (PHP Home alebo niečo podobné).

Teraz už len stačí spustiť server Apache (C:/Apache/Apache.exe) a ak chceme prácu skončiť len program vypneme. Na overenie, či program vlastne pracuje správe sa pozrieme tak, že spustíme prehliadač stránok a zadáme našu IP, teda localhost a uvidíme, nejakú stránku, ktorá sa spúšťa z nášho PC – teda sme si vytvorili vlastný webový server – to je práve Apache. PHP je modul tohoto programu. Ak chceme vyskúšať prácu aj s PHP, stránky, ktoré sa spúšťajú sú implicitne v adresári Apache/HTDOCS. Vymažeme obsah celého adresára a vložíme tam súbor index.php s takýmto obsahom:

<?PHP
  echo "PHP na tomto stroji fici";
?>
          Ak znova vyskúšame localhost v internetovom prehliadači, tak uvidíme text PHP na tomto stroji fici.

Ako by mal vyzerať náš skript? No, mal by vedieť zapisovať text do súboru, vedieť ho vymazať a vypísať jeho obsah. Je to preto, že útočník vyšle správu tomuto skriptu, už nie ako: „Otvor mechaniku“, ale „Povedz obeti, nech otvorí mechaniku“. Teda skript si zapíše dôležitý údaj „Otvor mechaniku“ do súboru s príkazmi a v určitých intervalov sa bude program nainštalovaný v obetiach prihlasovať na rovnaký skript typu: „Nie je tu pre mňa nejaký príkaz?“ a skript mu vypíše súbor s príkazom (príkazmi), ktoré má vykonať. Skript vytvoríme tak, aby mohla obeť aj vracať nejaký text a útočník bude pracovať podobne, v určitých intervaloch sa bude pýtať skriptu, či obeť mu niečo neposlala.

Skript teda bude musieť vedieť pracovať s dvoma súbormi s rovnakými funkciami. Teda si napíšeme obidve funkcie, aby sme nemali zbytočne dlhý zdroják.

Pozor:  Aplikácie nie sú výplodom Hi-Tech možností a sú plné chýb a použitých metód, ktoré sa neodporúčajú pri programovaní z hľadiska bezpečnosti apod. To však pre tento seriál nie je podstatné – najdôležitejšie je jednoducho demonštrovať funkcionalitu!


PHP kód
Zobraziť


Ako bude náš program pristupovať k tomuto skriptu? Môžeme sa pozrieť! Takže, otvoríme si prehliadač a zadáme locahost (tento skript teraz pomenujme index.php). Nič sa nedeje? Aj áno, aj nie. Skript nedostal príkaz nič vykonať a tak vykonáva len predposledný príkaz, teda sa snaží vypísať súbor output.txt. Ten však neexistuje a tak nič nevidíme. Ako dávať príkazy cez prehliadač nášmu skriptu? Cez premennú OP (querry) (všimnime si, keď vynecháme funkcie na začiatku, jadro programu je také, že zisťuje, či obsah premennej OP sa rovná erasebuffer, addbufer, buffer, eraseoutput, addoutput, showoutput. Tak príkaz addbuffer podľa zdrojového kódu pridá obsah ďalšej premennej S do súboru operacie.txt a vymaže súbor output.txt, pretože sa už očakáva prípadný nový výstup, keďže bol pridaný nový príkaz).
            Pre prácu s premennými v prehliadači existuje pomerne jednoduchý spôsob. Každý si určite všimol pri niektorých stránkach, ako sa z jednoduchého dotazu na stránku zmení obsah na šialený reťazec. Takže jednoduché pravidlo[1]:

http://www.[niečo].[niekde]/[skript]?[premenná1]=[obsah1]&[premenná2]=

[obsah2]&...

             Vieme, že pridať príkaz musíme vykonať cez dve premenné: OP a S. Takže napíšme niečo ako na obrázku:


Test webovej služby

Zobraziť


Keď sa pozrieme do adresára C:/Apache/htdocs okrem index.php sa tam objavil aj súbor operacie.txt s reťazcom z premennej S. Ak to zopakujeme, pribudne ďalší riadok...

Test PHP
Zobraziť


Takto vyskúšajme príkazy na mazanie, vypisovanie obsahu apod. Teraz už len stačí napísať primitívnu webovú aplikáciu, ktorá dokáže vyslať takýto dotaz, prijať kód vygenerovanej stránky (pri výpise), spracovať ho. Použijeme mne najbližšie prostredie Delphi a knižnice Indy pre prácu s http (ja som upravil existujúce demo HTTPClient z Delphi 6 pre naše potreby).

            Programy so zdrojovými kódmi nájdeme tu. Ak chceme vedieť, či to funguje na jednom počítači, musíme mať dobrú fantáziu a veriť hornému výkladu, že to fakt takto funguje ;-). Spustíme Apache, pozrieme, či existuje náš skript na „svojom“ mieste, spustíme program klient.exe a aj server.exe. Čo sa týka „reči“, ktorá sa pašuje týmto spôsobom, je na každom z nás. Ja som zvolil jediný príkaz (toto už je na samotných aplikáciách, pozri zdrojové kódy): exec:[program], teda namiesto zátvoriek dosadíme názov programu v ceste a server ho na svojom PC spustí (spúšťam kalkulačku – príkazom exec:calc, ktorý napíšem klientovi):

Test PHP aplikácie

Zobraziť

A aby neboli ukrátení tí, ktorí to chcú vyskúšať v praxi ako sa „má“, tak tu je postup. Uploadujme na svoj webový server súbor index.php. Teda napríklad:

 

            Na počítač vo vnútri nejakej sieti spustíme serverovú časť. Druhý počítač (môže byť aj v tej istej sieti, ale na takúto prácu sa efektívnejšie hodí aplikácia z kapitoly o Sociálnom inžinierstve a škodlivých programoch) nech je tiež pripojený do Internetu. Do oboch aplikácií v časti URL napíšeme http://www.liborbes.devnet.sk/Utoky/tunnel a vyskúšame komunikáciu tak, že v klientovi napíšeme inkriminovaný riadok na spústenie kalkulačky (prípadne cmd na spustenie shell) a za pár sekúnd sa fakt spustí daný program vo vnútri chránenej siete!

            Programy sú veľmi primitívne a hlúpe. Ale slúžia ako príklad veľmi pekne, pretože sú nenáročné na zdrojový kód. Preto sú však náchylné na chyby ako nesynchronizovaný vstup do súboru apod. To však nie je problematikou tohto dokumentu.

            Ináč, keď si všimneme architektúru tohto programu, dalo by sa povedať, že sa jedná o aplikáciu klient – server. Aj tenký klient a tak najideálnejší názov sa javí ako: klient – tenký server J.

            Celý tento krátky seriál si môžete stiahnuť v celku na tomto mieste.

Pozn.: Keď som po čase prechádzal zdrojové kódy, tak som sa musel pousmiať, preto prosím, ich berte len ako demonštračné kúsky, ale neučte sa z nich ;-)


Pozn. redakcie: Tento seriál pôvodne vyšiel na Devnet.sk


[1] Pozor, existujú aj neviditeľné polia, ktoré sa posielajú, no nezobrazujú sa v URL. To ale nepatrí do tohto článku

Potrebujete spoľahlivý priestor pre web a e-maily? Pozrite si naše webhostingové balíky.
Webhosting

Novinky a inšpirácie

Z nášho blogu

Prečítajte si novinky, inšpirácie a dôležité informácie zo sveta webhostingu a technológií.

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami Oznamy
21. 10. 2026

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami

Vývojársky tím PHP vydal dôležité bezpečnostné záplaty pre všetky oficiálne podporované verzie PHP 8. Na našich serveroch sme nezaváhali ...

Čítať viac
Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás? Oznamy
01. 10. 2026

Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás?

Google oznámil, že v januári 2027 zruší v Gmaile funkciu „Odoslať ako“ (Send as) pre e-mailové adresy od iných poskytovateľov. Ak ste si ...

Čítať viac
Večerná „prestávka“ pre server VIP033 Oznamy
25. 09. 2026

Večerná „prestávka“ pre server VIP033

Neustále pracujeme na tom, aby vaše weby bežali hladko, rýchlo a bezpečne. Technológie idú míľovými krokmi vpred a my v Inet.sk s nimi dr...

Čítať viac
Novinky na Inet.sk (09 / 2026) Novinky
09. 09. 2026

Novinky na Inet.sk (09 / 2026)

Posledné mesiace sme v Inet.sk nevenovali len stabilite serverov, ale najmä počúvaniu vašich reálnych skúseností z každodennej praxe. Výs...

Čítať viac

Podpora klientom

Máte ďalšie otázky?

Nezúfajte, pripravili sme pre Vás jednoduché odpovede na najdôležitejšie otázky, ktoré od našich klientov dostávame.

Zistiť viac

Naše výhody

Prečo si nás vybrať?

Našim klientom ponúkame až 30-dňovú záruku vrátenia peňazí.

Sme skutočný slovenský webhosting

Slovenská
firma

Nepatríme pod žiadnu nadnárodnú spoločnosť, sme malá rodinná firma.

Na nás sa môžete kedykoľvek spoľahnúť

Dlhoročné
skúsenosti

Na slovenskom trhu pôsobíme už viac ako 20 rokov, sme overená značka.

Naši prví zákazníci sú stále s nami

Spokojní
zákazníci

Naši zákazníci sú ako naša rodina, preto nám verí už viac ako 1250 klientov.

Maximálna bezpečnosť

Maximálna
bezpečnosť

Chránime Vás pred útokmi i SPAMom. U nás sú Vaše dáta v bezpečí.

Prozákaznícka podpora

Ochotná
podpora

Zakladáme si na individuálnom prístupe, preto Vám vždy radi pomôžeme.

Kvalita a dobrá cena

Férová
cena

Cena pri obnove je rovnaká ako pri objednávke. Nezdražujeme po prvom roku a bez skrytých poplatkov.

U nás sa Vám nič nestratí

Pravidelné
zálohovanie

Vaše dáta zálohujeme každý deň, dostupné sú aj zálohy z pred niekoľkých mesiacov.

Svižný Admin Panel nájdete len u nás

Prehľadný
Admin Panel

Máme rýchly a prehľadný Admin Panel, ktorý zvládne používať naozaj každý.

Správa používateľov

Správa
používateľov

Spravujte svoje projekty bez akýchkoľvek obáv s kolegami alebo externými partnermi.

Máme zľavy pre verných klientov

Vernostné
zľavy

Verní klienti u nás automaticky získavajú 15 % zľavu na každú ďalšiu objednávku.

My Vás nebudeme obmedzovať

Bez
obmedzení

Neobmedzujeme počet databáz, e-mailov, ftp a ani prenos dát.

Hosting pre WordPress

WordPress
na 1 klik

Nainštalujte si obľúbené redakčné systémy rýchlo a jednoducho.

Referencie

Spokojní zákazníci

Pozrite sa, čo o nás povedali naši klienti. Neváhajte a pridajte sa k nám ešte dnes.

Auto 100
Bystricoviny
eCall Slovakia
Filip Jančík
Frost
Merkury Broker
Mi:Su Design
Mesto Nitra
Pro Clienta
Schneider Lekáreň
Vego Marketing
Mesto Zlaté Moravce

Všetky ceny sú uvádzané bez DPH
© 2006 - 2026, Inet.sk, s. r. o., Všetky práva vyhradené

Na našej stránke používame "cookies". Vďaka nim sledujeme návštevnosť, prispôsobujeme reklamu a používateľské nastavenia, čo zlepšuje Váš zážitok z našej stránky. Súhlasíte s ich spracovaním?
Vlastné nastavenia cookies