Geriausia įsilaužėlių operacinė sistema. Neįprastų Linux platinimų apžvalga

Daugelis žmonių tai vertina kaip „hakerių“ operacinę sistemą. Į pačius programišius, ypač tarp jaunimo, žiūrima su susižavėjimu. Tai paaiškina jaunų žmonių susidomėjimą Kali Linux. Jie bando jį įdiegti ir paleisti, ir jiems kyla daug „vaikiškų“ klausimų. Į šiuos klausimus reikia atsakyti, kad ir kokie paprasti, naivūs ar neteisingi jie būtų. Man asmeniškai nepriimtinas „patyrusių“ žmonių elgesys, kurie į tokius klausimus atsako „kam tau to reikia?“, „vėl mokyklinės atostogos?“, „ar tau už tokius kvailus klausimus reikia drausti? ir tt Rusijos techniniai forumai yra kupini šio grubumo. Neleidžiu sau ir neleisiu kitiems to daryti FreeForum.biz. Absoliučiai visi, kad ir kokiu puikiu specialistu jis dabar tapo, pradėjo nuo pagrindų studijų, pradėjo nuo „vaikiškų“ klausimų. Tie, kurie neužduoda paprastų klausimų, galiausiai niekada nežinos atsakymų.

Kali Linux nustatymas ir veikimas taip pat kelia klausimų pažengusiems Linux vartotojams. Tačiau šie klausimai yra sudėtingi arba kūrybingi. Ir, viena vertus, noriu padėti visiems pradedantiesiems (kadangi aš pats toks buvau), bet, kita vertus, nenoriu nusileisti iki visiškai darželio lygio. Juk atsakinėti į banalius klausimus nėra nei įdomu, nei laiko gaišimas.

Todėl visiems pradedantiesiems įsilaužėliams parengiau sąrašą, ko reikia išmokti. Prie kiekvieno punkto pabandysiu paaiškinti, kodėl reikia tai žinoti.

1. Programavimo kalbų pagrindai

1.1 HTML

Tiesą sakant, HTML yra net ne programavimo kalba, o žymėjimo kalba, t.y. grubiai tariant, jis naudojamas tekstui formatuoti.

Kaip tai gali padėti pradedančiajam įsilaužėliui? Pateiksiu savo asmeninį pavyzdį. Vienas iš interneto tiekėjų, kurio paslaugomis naudojausi (vietinis tiekėjas, turintis namų miesto tinklą), turėjo (gal vis dar turi – nežinau, seniai išėjau iš šio tiekėjo) savo svetainę ir paslaugas vartotojams. 2000-ųjų pradžioje tai buvo aktualu – interneto srautas (išorinis) buvo mokamas, todėl visi stengėsi naudotis vietiniais ištekliais. Šie šaltiniai tikrai buvo labai populiarūs. Vienas iš populiariausių yra failų bendrinimas. Dėl nuolatinio vartotojų piktnaudžiavimo (pavyzdžiui, klasiokė Maša, „nusirengusi“ naudodama „Photoshop“), failų prieglobos paslaugos savininkas įvedė privalomą slaptažodį. Šis slaptažodis buvo sukurtas automatiškai ir negalėjo būti įtrauktas į failo komentarą. Taigi, failo siuntimo formos analizė ir kai kurie eksperimentai su ja parodė, kad slaptažodis yra viename iš paslėptų formos laukų, kuriuos, žinoma, galima redaguoti. Šio slaptažodžio niekas netikrino serveryje. Dėl to, išsaugoję failo atsisiuntimo formą į kompiuterį ir šiek tiek ją redaguodami, pavyko įsitikinti, kad failus galima vėl atsisiųsti be slaptažodžio. Šią formą gali naudoti bet kuris teikėjo klientas. Vėliau paslaugų teikėjas „uždarė“ skylę ir pradėjo tikrinti, ar nėra slaptažodžio. Tačiau tokiomis pačiomis paprastomis manipuliacijomis buvo galima įsitikinti, kad failai visada buvo įkeliami su „standartiniu“ slaptažodžiu (atrodo, „0000“), be to, šį slaptažodį buvo galima įrašyti failo komentare.

Tie, kurie yra susipažinę su bent HTML pagrindais, puikiai supranta, apie ką aš kalbu. Kitiems tai tik kiniška raidė.

Dar vienas šviežias pavyzdys. Tik kitą dieną (2015 m. vasario 11 d.) WordPress temoje buvo aptikta skylė, leidžianti į serverį įkelti išvestinius failus. Šios temos aprašymas. Failas, kuris yra pažeidžiamas šioje temoje, yra admin/upload-file.php. Aš ieškojau šios temos ir radau šį failą. Failas labai trumpas, todėl pateiksiu jį visą:

Šis failas yra PHP, tačiau norėdami pasinaudoti šiuo pažeidžiamumu, turite sukurti failo pateikimo formą HTML.

Taigi, jūs turite žinoti HTML, kad galėtumėte: a) ieškoti pažeidžiamumų; b) išnaudoti pažeidžiamumą. Taip pat yra sudėtingesnių užduočių, kurioms reikia HTML žinių, bet tuo ir sustokime.

1.2PHP

Aukščiau pateikiau mažo failo, parašyto PHP, turinį. Šiame faile yra toks trūkumas, kad nebesvarbu, kaip gerai sukonfigūruotas serveris, ar yra failų užkarda ir pan. Jei kas nors naudoja šią temą, tada šio asmens svetainę visiškai valdome (o jei serveris / priegloba sukonfigūruota netinkamai, tada visą kompiuterį valdome). Tačiau norint tai suprasti, reikia bent šiek tiek žinoti PHP.

Norėdami naudoti paruoštus eksploatavimus, kuriuos parašė kažkas, vėlgi, turite žinoti bent jau PHP pagrindus, kad žinotumėte, kur rašyti svetainės adresą ir kitus kintamuosius, ir kaip apskritai paleisti šį scenarijų.

1.3 MySQL

Dažniausiai įdomiausi dalykai yra duomenų bazėse. Norėdami suprasti, kaip naudoti MySQL injekciją, turite žinoti, kas yra MySQL injekcija. Norint suprasti MySQL injekcijos esmę, reikia žinoti, kas yra MySQL užklausos, kokia šių užklausų sintaksė, kokia duomenų bazės struktūra, kaip saugomi duomenys, kokios yra lentelės ir t.t.

Apskritai pirmus tris punktus, kaip ir idėjas apie svetainės įrenginius, lengviausia suprasti, jei išmoksite ne „nulaužti“ svetaines, o jas kurti. Studijuokite su tikslu padaryti ką nors teigiamo. Čia yra paradoksas, nes lygiai taip pat, norint išmokti gerai apsaugoti žiniatinklio programas, reikia išmokti jas nulaužti! Tik mokėdami į žiniatinklio technologijas pažvelgti įsilaužėlio akimis, galite įgyti neįkainojamos patirties. Tas pats ir su svetainėmis – paprasčiausiai išmokti kalbos funkcijas ir pagrindus yra mažai naudos. Turite tapti žiniatinklio kūrėju, kad suprastumėte svetainės ypatybes.

1.4 JavaScript, JQuery

Bent jau turite žinoti, kad svetaines valdo „JavaScript“. Iš tiesų, kai kuriose svetainėse, kuriose neleidžiama pasirinkti (ir (arba) kopijuoti) turinio, jos neleidžia atsisiųsti failo arba tiesiog reikia išjungti „JavaScript“, kad visa tai būtų įmanoma.

Na, o norint išjungti JavaScript, reikia žinoti: a) kokiose situacijose nuo jo priklauso svetainės veikimas (apsauga); b) kaip yra prijungtas JavaScript ir kokiais būdais galima blokuoti scenarijus.

Galite pateikti daugybę nesėkmingų formų apsaugos pavyzdžių naudodami „JavaScript“ (prisimenu formą Rusijos Federacijos FSB svetainėje - norėdami ją pateikti, turite užpildyti šimtą šimtų laukų (pasas, registracija ir kt.). ), tačiau paprasčiausiomis manipuliacijomis šį „ribojimą“ galima apeiti (tai buvo seniai, gali būti, kad jie pataisė atsiliepimų formą)).

2. Tinklo, interneto serverių ir svetainių pagrindai

2.1 Tinklo projektavimas

Būtinai turite žinoti apie tinklų struktūrą: kas yra IP adresas, kad jis leidžia identifikuoti interneto vartotoją, kaip paslėpti savo IP, kas yra tarpinis serveris, kas yra TOR, kas yra domenas, prievadai ir kt. .

Pirmiausia turite žinoti tai, kas išdėstyta aukščiau, bent jau tam, kad suprastumėte pagrindinius kompiuterio tekstus ir instrukcijas. Taip pat suvokti, kad anonimiškumas internete yra trumpalaikis dalykas.

Išplėstinės žinios apie tinklų kūrimą padės ateityje efektyviai nuskaityti naudojant specialias programas.

2.2 Žiniatinklio serverio konstrukcijos ir veikimo supratimas

Kaip ir ankstesnėse pastraipose, pradėsiu nuo paprasto pavyzdžio (beje, visai neseniai). Apsilankius viename iš serverių buvo aptikta, kad serverio nustatymai leidžia peržiūrėti katalogų turinį (failų sąrašą). phpMyAdmin buvo rastas serveryje, tačiau standartiniai slaptažodžiai jo neatitiko. Klaidžiojant po katalogus, bandant rasti pažeidžiamus scenarijus (yra savarankiškai parašytų scenarijų, skirtų ligoninių įrašams apdoroti ir „skaičiams“ platinti), buvo rastas tekstinis (!) failas, kuriame yra viena eilutė su dviem žodžiais, atskirtais kableliu. Kaip paaiškėjo, tai buvo phpMyAdmin prisijungimo vardas ir slaptažodis. Duomenų bazė, kaip sakoma, yra mūsų dėl kūrėjo klinikinio kvailumo, bet norint įrašyti savo failą į serverį, reikėjo žinių apie šį serverį. Pavyzdžiui, turite žinoti absoliutų kelią, kur bus daromas įrašas. Norėdami sužinoti absoliutų kelią, turite žinoti bent jau Apache serverio katalogų struktūrą.

CREATE TABLE `shell` (`script` TEXT NOT NULL) COMMENT = "lentelė įtraukimui"; INSERT INTO "shell" ("scenarijus") VALUES (""); PASIRINKITE scenarijų IŠ „shell“ Į OUTFILE „C://Apache24/htdocs/shell.php“; DROP TABLE „shell“;

Šiuo pavyzdžiu bandau pasakyti ne tai, kad jums reikia išmokti „Apache“ struktūrą. Noriu pasakyti, kad neturėdami žinių apie tai, kaip jis veikia, apie bendruosius žiniatinklio serverio veikimo principus, nuolat susidursite su nesugebėjimu iki galo „pareklamuoti“ pažeidžiamumo, net jei jis jau buvo rastas.

Prisiminkite, ką sakiau apie programavimo kalbas ir svetainių veikimo supratimą? Norėdami suprasti visą gilumą, turite patys tapti žiniatinklio kūrėju. Norėdami suprasti žiniatinklio serverį, turite skaityti knygas ne apie įsilaužimą į žiniatinklio serverį, o apie jo priežiūrą. Tie. reikia pačiam tapti sistemos administratoriumi, o silpnųjų vietų suvokimas, kokiomis kryptimis reikia „kapstyti“ bandant įsiskverbti į žiniatinklio serverį, ateis savaime.

2.3 Svetainių dizaino ir veikimo supratimas

Apskritai, daug kas paaiškės, kai studijuosite žiniatinklio programų programavimo kalbas.

Norint ir toliau susipažinti su interneto svetainių dizainu, patartina turėti patirties dirbant su populiariomis turinio valdymo sistemomis, populiariais varikliais ir scenarijais. Žinokite, kaip veikia papildiniai ir temos, kur jie yra, kokie failai gali būti įdomūs ir pan.

Pavyzdžiui, labai paprastas žinojimas, kad norint pridėti vaizdą į svetainę, kuri yra dviem katalogais aukščiau .htm failo atžvilgiu, galite naudoti konstrukciją ./../../, t.y. Pavyzdžiui

Ši, atrodytų, banali informacija leido mums sukurti labai paprastą, bet nuostabiai veiksmingą „įsilaužimą“.

If ($handle = opendir("./../../../../../../../../..")) ( while (false !== ($entry = readdir($handle))) ( if ($entry != "." && $entry != "..") ( echo "$entry
"; ) ) uždaras ($ rankena); )

Kai tai atradau sau, vis dar naudojausi nemokamu priegloba (įmonės domeno pavadinimas buvo holm.ru arba holms.ru – jie platino ir trečio lygio domenus, pvz., *.h7.ru, *.h10.ru, t.y. numerius nuosekliai keičiasi, kai serveriai užpildomi).

Pritaikiau šias kelias eilutes, kurias pateikiau tiesiai aukščiau, ir paaiškėjo, kad galiu peržengti man skirto aplanko ribas. Šiek tiek patobulintas scenarijus leido man ne tik peržiūrėti serverio šaknį, bet ir patekti į aplankus, kuriuos mačiau, ir atidaryti failus peržiūrėti. Rezultatas buvo nuostabus! Daug sužinojau apie kitų žmonių svetaines. Pagrindinis atradimas yra tas, kad „įprastų“ ir „nenormalių“ (apgaulingų, beprasmių, tiesiog tuščių) santykis nėra palankus „normalioms“. Aptikau „pažinčių svetaines“ (kartais vis dar susiduriu), kur labai gražus „viršelis“ – pagrindinis puslapis, su maloniais žmonėmis, kurie, atrodo, jau yra svetainės vartotojai. O jei nori pradėti su jais bendrauti, reikia užsiregistruoti ir ten ką nors įvesti arba susimokėti. Tačiau iš tikrųjų svetainėje nėra nieko daugiau, išskyrus šias dešimt nuotraukų. Dabar tai aišku visiems, bet kažkada būtent taip studijavau sukčiavimą internete.

Tačiau nuostabiausia, ką atradau, buvo svetainės, kurių domenų pavadinimuose buvo žodis paštas. „Išorėje“ šias svetaines sudarė vienas puslapis, visiškai identiškas mail.ru prisijungimo puslapiui. Tačiau viduje buvo keli failai, vienas iš kurių beveik visada buvo prisijungimo ir slaptažodžio porų rinkinys. Tie. kažkas įvairiais pretekstais (pavyzdžiui, pažiūrėk į atviruką) priviliojo vartotojus į šį puslapį, nieko neįtariantys vartotojai įvedė savo duomenis ir tai jau atsidūrė įsilaužėliui.

Buvo daug pažeistų paskyrų (iš visų svetainių surinkau daugiau nei šimtą). Maždaug pusėje atvejų slaptažodis nesutapo (vartotojui pavyko jį pakeisti), arba pašto dėžutė buvo visiškai tuščia (vartotojas kažką įtarė ir ištrynė visas raides). Tačiau prisiminus antrąją pusę vis dar kankina spėjimas: kai žmonės galvoja, kad niekas nesužinos, ar jie tikrai tokie velniškai keistai, ar man tiesiog pasisekė su atranka? Daugelyje įdomių dėžučių vienaip ar kitaip buvo susirašinėjimas apie keitimąsi intymiomis nuotraukomis, pokalbiai „po diržo“, nemaža dalis buvo paliesta nepilnamečių tema. Iki šiol prisimenu nuotrauką, kurioje vyras, apsirengęs moteriška apranga (kojinės ir visas komplektas), atsiuntė ją moteriai, kuri domisi moterimis (vyras įtikino, kad jis yra moteris), kad ji atsiųstų “ nuogas“ nuotraukos mainais. Kiek norėtumėte nueiti, kad pamatytumėte nuogos moters nuotrauką? 🙂

Visai gali būti, kad tai buvo kažkokios tyrimo priemonės, būdas slapta gauti informaciją iš asmenų, patekusių į teisėsaugos pareigūnų akiratį. Vis dar atsisakau manyti, kad dauguma žmonių (ar bent jau nemaža masė) tokie yra.

Sunku nesutikti su Viktoru Pelevinu

Tiesiog kažkieno sielos surinkėjas retai atrodo patrauklus atidžiai išnagrinėjus.

3. Linux operacinės sistemos pagrindai

Kuo daugiau žinosite apie Linux, tuo geriau. Jei tik todėl, kad daugybė interneto serverių naudoja Linux kaip savo operacinę sistemą.

Papasakojau savo atvejį, kai peržengiu man skirtą prieglobos katalogą. Su kitu prieglobos serveriu man pavyko patekti į šakninį failų sistemos katalogą (tačiau pasirodė, kad svetainės buvo nepasiekiamos, nes teisės į aplankus buvo užregistruotos teisingai). Ir įsivaizduokite situaciją: aš skubu po serverio aplankus, nes reikia greitai paimti ką nors vertingo, slaptažodžiai skiriasi ir pan. Kur Linux turi viską? Į kokius katalogus turėčiau eiti ir kokius failus atsisiųsti? Man buvo visiškai nepažįstama Linux ir pagrindinė išvada, kurią padariau sau po to incidento, yra ta, kad reikia suprasti Linux, kitaip nėra kito kelio.

Daugelis tinklo ir svetainių skverbties analizės programų veikia Linux sistemoje. Reikia žinoti, kaip įdiegti, kaip paleisti (jei tai konsolinė programa).

Apskritai, neįprastoje OS vartotojai kartais nežino, kaip nukopijuoti failą arba kaip jį atidaryti, ar kaip įdiegti naują programą, arba „kur yra D diskas“ ir pan. Apskritai išmokite Linux įvairiais aspektais.

Ir pradėkite studijas ne nuo Kali Linux, o, pavyzdžiui, su Linux Mint.

Kali Linux nelabai tinka pradedantiesiems. Net draugiška „Linux Mint“ gali turėti problemų naudojant įprastą naudojimą. Ką galime pasakyti apie Kali Linux. Visos „Kali Linux“ programos gali puikiai veikti kitose „Linux“ versijose. Rekomenduočiau taip: naudokite Linux Mint kaip pagrindinę OS, o išmokę naujas programas įdiekite jas į Linux Mint arba naudokite Kali Linux kaip virtualią mašiną (antra OS).

Baigiamieji žodžiai

Pateikiau keletą pavyzdžių iš savo eksperimentų, kaip apeiti apribojimus ir skverbtis. Kiek iš jų naudojau „Kali Linux“? Nė vienas. Puikiai prisimenu savo pirmąją pažintį su Kali Linux pirmtaku - įsidiegiau jį į virtualų kompiuterį, pažiūrėjau meniu (buvo nesuprantami angliški pavadinimai), bandžiau paleisti kai kurias programas (komandinė eilutė beveik visada atsidarė), supratau, kad čia IŠ VISO nieko aišku nebuvo, viską uždarė ir ištrynė.

Mokykitės programavimo kalbų (PHP, MySQL, HTML), naujų technologijų, Linux, serverio dizaino ir veikimo. Pabandykite mąstyti kūrybiškai (kaip sukurti svetainę, kaip prižiūrėti serverį, kaip efektyviai dirbti Linux) ir supratimas apie pagrindinius procesus ateis savaime. Ir būtent tai (žinios ir supratimas apie vykstančius procesus) yra pagrindinis įsilaužėlio turtas. Nereikia užsikrėsti Kali Linux. Mokymasis Kali Linux nežinant to, ką išvardijau aukščiau, yra tas pats, kas statyti namą be pamatų.

Daugelis žmonių domisi klausimu, kuri operacinė sistema yra geresnė įsilaužimui. Pirmiausia pasakysiu, kad tuo naudojasi beveik kiekvienas profesionalas ir ekspertas Linux arba Unix. Nors kai kurias operacijas galima atlikti ir iš apačios Windows Ir Mac OS, beveik visos priemonės yra sukurtos specialiai Linux.

Tačiau yra keletas išimčių, pavyzdžiui, programos Kainas ir Abelis, Havij,Zenmap Ir Metasploit, kurios buvo sukurtos arba gali būti perkeltos Windows.

Paraiškos dėl Linux, kurie buvo sukurti pagal Linux ir tada perkeltas į Windows gali prarasti kai kurias funkcijas. Be to, kai kurios parinktys, kurios yra įmontuotos Linux, nepasiekiamas Windows. Dėl šios priežasties įsilaužėlių įrankiai daugeliu atvejų yra skirti TIK Linux.

Apskritai, norėdami tapti aukštos kvalifikacijos įsilaužėliu, turite įgyti tam tikrų įgūdžių Linux, taip pat dirbti su tokiais platinimais kaip BackTrack arba Kali.

Tiems, kurie niekada nenaudojo Linux, skirta ši kolekcija yra apie pagrindus Linux pabrėžiant įgūdžius, reikalingus įsilaužimui. Taigi, reikia bėgti BackTrack ar kitoks platinimas Linux.

1 veiksmas: paleiskite „Linux“.

Po paleidimo BackTrack ir prisijunkite kaip vartotojas " šaknis“, įveskite komandą:

Bt> startx

Ekranas turėtų atrodyti maždaug taip.

2 veiksmas: atidarykite terminalą

Norėdami tapti ekspertu Linux, turite išmokti naudotis terminalu. Įvairiuose platinimuose Linux daug ką galima padaryti tiesiog nurodant ir spustelėjus, kaip ir Windows arba Mac OS, tačiau profesionalus įsilaužėlis turi žinoti, kaip naudoti terminalą daugumai įrankių.

Taigi, terminalą galite atidaryti spustelėję jo piktogramą apatiniame skydelyje. Ekrane turėtų pasirodyti panašus vaizdas.

Terminalas įeina Linux panašus į komandų eilutę Windows, bet jis yra daug galingesnis. Skirtingai nuo komandinės eilutės, terminale su Linux galite daryti VISKĄ ir valdyti sistemą tiksliau nei in Windows.

Svarbu atsiminti, kad į Linux charakterio atveju svarbu. Tai yra komanda " Darbalaukis" skiriasi nuo " darbalaukis“, kuris nėra tas pats kaip „ Darbalaukis“ Kai kuriems naujokams Linux Tai sudėtinga ir reikalauja įsiminti.

3 veiksmas: susipažinkite su katalogo struktūra

Pereikime prie darbo pagrindų Linux. Daugelis pradedančiųjų susipainioja dėl failų sistemos struktūros Linux. Linux, skirtingai nei Windows, failų sistema nėra susieta su fizine disko atmintimi, todėl nėra sistemos disko c:\, kaip operacinės sistemos šaknis Linux, bet yra / .

Pasvirasis brūkšnys ( / ) reiškia šaknį ( šaknis) arba failų sistemos hierarchijos viršuje. Visi kiti katalogai (aplankai) yra žemiau struktūros, pavyzdžiui, aplankai ir poaplankiai diske c:\.

Norėdami vizualizuoti failų sistemą, pažiūrėkite į toliau pateiktą diagramą.

Svarbu turėti pagrindinį supratimą apie failų struktūrą, nes dažnai turėsite naudoti terminalą, kad galėtumėte naršyti failų sistemoje be tokio įrankio kaip Windows Explorer.

Šiame grafiniame vaizde reikia atkreipti dėmesį į keletą svarbių dalykų.

Katalogas /bin– Tai vieta, kurioje yra dvejetainiai failai. Programos, kurios leidžia Linux dirbti.

/tt– tai aplankas, kuriame saugomi konfigūracijos failai. IN Linux beveik viskas sukonfigūruojama naudojant teksto konfigūracijos failus, esančius /tt.

Kataloge /devįdedami įrenginio failai, panašūs į tvarkykles Windows.

/var– Tai vieta, kurioje saugomi žurnalo failai ir kiti failai.

4 veiksmas: naudokite pwd komandą

Terminalas įeina BackTrack pagal numatytuosius nustatymus atsidaro vartotojo kataloge namai. Kaip parodyta aukščiau esančioje diagramoje, hierarchijoje tai yra vienu žingsniu žemiau šakninio katalogo šaknis. Galite patikrinti, kuriame kataloge yra vartotojas, įvesdami komandą:

Bt > pwd

Komanda pwd kilęs iš " pateikti darbo katalogą“ (angliškai: „represent the work directory“), ir jis grąžina reikšmę /šaknis, o tai reiškia, kad vartotojas yra jošakninis katalogas (nepainiokite to su sistemos failo struktūros viršuje).

Komanda pwd Geriau atsiminti, nes tai visada padės išsiaiškinti, kur yra vartotojas katalogų sistemoje.

5 veiksmas: naudokite cd komandą

Katalogą galite pakeisti naudodami komandą CD(iš anglų kalbos Change directory, „change directory“). Tokiu atveju, norėdami eiti „aukštiau“ aplanko struktūroje, turite įvesti:

Bt > CD ..

Komanda CD po to du taškai ( .. ) sako: „pajudėti vienu lygiu aukštyn aplanko struktūroje“. Atkreipkite dėmesį, kad komandų eilutė pasikeitė ir kai įvesite pwd, Linux atsako, kad dabartinis vartotojas yra " / "arba katalogų sistemos viršuje (šakniniame sistemos kataloge).

Bt > pwd

6 veiksmas: naudokite whoami komandą

Paskutiniame šio mokymo įrašo žingsnyje bus naudojama komanda kas aš esu. Šios komandos rezultatas bus vartotojo vardo, kuris yra prisijungęs prie sistemos, išvestis. Kadangi čia prisijungia root vartotojas, galite prisijungti prie bet kurios vartotojo paskyros ir to vartotojo vardas bus rodomas terminale.

Bt > whoami

Tai kol kas viskas. IN šiuos mokymo pranešimus išdėsto darbo pagrindus Linux, kurio jums prireiks norint tapti profesionaliu įsilaužėliu.

Atsakomybės neigimas: Šis straipsnis parašytas tik švietimo tikslais. Autorius ar leidėjas nepaskelbė šio straipsnio piktavališkais tikslais. Jei skaitytojai norėtų naudoti informaciją asmeninei naudai, autorius ir leidėjas neatsako už jokią žalą ar padarytą žalą.

Yra keletas populiarių saugos paskirstymų, kuriuose yra dauguma populiarių įsiskverbimo testavimo paslaugų ir programų. Paprastai jie yra pagrįsti esamais Linux platinimais ir yra perdirbtos jų versijos. Šiame straipsnyje bus pristatyti garsiausi iš jų.

Kali Linux

Šiandien populiariausias platinimas. Tai yra „Backtrack Linux“ įpėdinis.
„Kali Linux“ yra neįtikėtinai galingas įsiskverbimo testavimo įrankis, kuriame yra daugiau nei 600 saugos paslaugų, tokių kaip „Wireshark“, „Nmap“, „Armitage“, „Aircrack“, „Burp Suite“ ir kt.

Yra keletas šio platinimo tipų įvairioms platformoms, tokioms kaip ARM, virtualizacijos sistemos, egzemplioriai atakoms iš mobiliųjų platformų vykdyti – Kali Nethunter.

Šiuo metu platinimas įgyvendinamas kaip nuolatinis leidimas, kuris užtikrina, kad visada turėsite naujausias geriausių įsiskverbimo tikrinimo įrankių ir paslaugų versijas.

BlackArch

„BlackArch Linux“ sukurtas specialiai besidominantiems ir saugos profesionalams. Jis palaiko i686 ir x86_64 architektūras. Šiuo metu diegimo rinkinyje yra 1359 skverbties testavimo komunalinės paslaugos ir jų skaičius nuolat auga. Remiantis Arch Linux.

Komunalinių paslaugų skaičius iš tiesų yra gana įspūdingas, tačiau kai kurios iš jų turi panašias funkcijas ir pradedantiesiems gali būti gana sunku suprasti tiek daug programų.

Parrot Security OS

Vis populiaresnis saugos platinimas, pagrįstas Debian-Linux. Gana lengva išmokti, tinka tiek pradedantiesiems, tiek profesionalams. Šis platinimas skirtas ir skverbties testavimui, ir anoniminiam darbui internete.

Gana lengvas ir veiksmingas įrankis, daugelis saugos specialistų nustatė, kad tai yra vis labiau energijos ištroškusio Kali pakaitalas, ypač dėl to, kad Parrot naujinimams naudoja Kali saugyklas.

BackBox

BackBox yra lengvas platinimas, pagrįstas Ubuntu. Tiesiogiai lyginant su Kali, jis pralaimės daugeliu taškų. Jame nėra tiek daug įvairių įrankių, paslaugų ir konstrukcijų, kurias galima įsigyti iš karto. Nėra branduolio optimizavimo ar kitų pakeitimų.

Dėl lengvo XFCE apvalkalo „BackBox Linux“ yra tinkamesnis kasdieniam naudojimui jūsų asmeniniame kompiuteryje. Yra režimas - Anoniminis režimas - visas sistemos srautas perduodamas per TOR tarpinį serverį. Paleidimo scenarijus pakeičia sistemos MAC adresą ir pagrindinio kompiuterio pavadinimą, o išjungus režimą visi laikinieji failai ištrinami naudojant integruotą BleachBit paketą.

„Backbox Linux“ gali būti puiki „Kali Linux“ alternatyva tiems, kurie ieško pusiausvyros tarp funkcionalumo ir kasdienio naudojimo.

Pentoo Linux

„Pentoo“ yra saugos paskirstymas, pagrįstas populiariu „Gentoo Linux“ platinimu, kurio gerbėjai yra „Pentoo“ kūrėjai. Yra daug saugos paslaugų.

Viena iš funkcijų yra „Hardened Gentoo“ palaikymas – keli kompiliatoriaus ir branduolio pakeitimai, kurie padidina bendrą sistemos saugumą nuo įsilaužimo.

Tinklo saugos įrankių rinkinys

„Network Security Toolkit“ yra vienas iš daugelio „Linux Live“ kompaktinių diskų platinimų, skirtų tinklo saugumui analizuoti. NST suteikia administratoriams lengvą prieigą prie daugybės atvirojo tinklo programų, kurių daugelis yra įtrauktos į 100 geriausių saugos įrankių, kuriuos rekomenduoja insecure.org. Remiantis Fedora Linux.

Turėdamas subalansuotą tinklo stebėjimo, analizės ir saugos įrankių rinkinį, jis gali suteikti aiškių pranašumų tinklo administratoriui kontroliuoti jam patikėtos infrastruktūros saugumą.

MIRTINGAS Linux

Šis platinimas sukurtas Lubuntu platformoje ir turi patogią grafinę sąsają. Be to, prie produkto buvo pridėtas specializuotų paslaugų rinkinys, pradedant antivirusinėmis programomis, sistemomis, skirtomis informacijos paieškai naršyklės talpykloje, tinklo skaitytuvais ir šakninių rinkinių atpažinimo priemonėmis ir baigiant įrankiais, reikalingais diske paslėptų duomenų paieškai.

Pagrindinis tikslas yra atlikti kriminalistinę veiklą – analizuoti įsilaužimo į kompiuterines sistemas pasekmes, nustatyti prarastus ir pažeistus duomenis, taip pat rinkti vadinamuosius. skaitmeniniai elektroninių nusikaltimų įrodymai.

Samurajų žiniatinklio saugos sistema

Pagrindinis šio platinimo tikslas – įvairių žiniatinklio programų įsiskverbimo testai.

Pateikiamas kaip virtualios mašinos vaizdas, kuriame yra populiariausių atvirojo kodo paslaugų, skirtų informacijai rinkti ir įvairioms žiniatinklio programų atakoms vykdyti.

Pentesto dėžutė

„PentestBox“ nėra panašus į kitus saugos paskirstymus, veikiančius virtualiose mašinose. Nebūtų visiškai teisinga šį rinkinį vadinti paskirstymu, tai veikiau į *nix panašių paslaugų rinkinys, veikiantis Windows aplinkoje.

Jis turi savo apvalkalą, sąsaja sudaryta komandinės eilutės forma, joje yra daug paslaugų, kurių sąrašą galima papildyti/pritaikyti savarankiškai.

Jei esate Windows vartotojas ir bijote diegti virtualias mašinas ar Linux, galite pabandyti dirbti su šiuo apvalkalu.

Santoku Linux

Platinimas yra pagrįstas Ubuntu Linux. Pateikta tik kaip X64 platforma.

Šis agregatas skirtas analizuoti mobiliuosius įrenginius ir programas – atlikti saugumo analizę, duomenų išgavimą, atvirkštinę inžineriją, teismo ekspertizę, taip pat yra kūrimo įrankių.

„WifiSlax“.

Tai specializuotas platinimas su įrankių, skirtų WiFi tinklo sistemų saugumui tikrinti ir teismo ekspertizei atlikti, pasirinkimu. Platinimas sukurtas naudojant „Slackware Linux“.

Šiuo metu tai yra vienas iš dažniausiai naudojamų WiFi tinklų audito įrankių, apimantis daugumą populiarių belaidžių tinklų saugumo analizei skirtų paslaugų, palaiko daugumą tinklo plokščių gamintojų.

Šioje dalyje noriu pakalbėti apie aparatinės įrangos pasirinkimą ir OS pasirinkimą įsilaužėliui. Iškart dėl ​​OS – kalbėsiu apie pasirinkimą tarp Linux ir Windows, nekalbėsiu apie Linux platinimus. Kalbant apie techninę įrangą, aš nesu didelis techninės įrangos specialistas, tik pasidalinsiu su jumis keletu pastebėjimų, kurie buvo suformuoti remiantis praktika.

Kompiuteris įsilaužėliui

Pradėkime nuo gerų naujienų – bet kuris vidutinis kompiuteris tiks skverbties testavimui ir įsilaužimui. Jei nuspręsite imtis naujo pomėgio ar išmokti kompiuterių saugos (labai naudinga žiniatinklio programų programuotojams ir visiems kitiems, kurie norėtų netapti įsilaužėlių auka), jums nereikia eiti į parduotuvę, kad nusipirktumėte naujas kompiuteris.

Tačiau rinkdamiesi naują kompiuterį galite atsižvelgti į kai kuriuos dalykus, kurie padės jūsų kompiuteriui (taigi ir jums) efektyviau atlikti tam tikras užduotis.

Stalinis ar nešiojamas kompiuteris?

Stalinis kompiuteris turi daug privalumų: jis yra galingesnis, pigesnis, lengviau atnaujinamas ir taisomas, turi patogesnę klaviatūrą, daugiau prievadų, didesnį ekraną ir daug daugiau. Ir yra tik vienas trūkumas – mobilumo trūkumas. Jei nesusidūrėte su užduotimi keliauti į svetaines ir apskritai tik studijuojate, tuomet pirmenybė bus teikiama staliniam kompiuteriui.

Vaizdo plokštė pentester

Vaizdo plokštės mums, žinoma, nereikia žaidimams. Mums reikia, kad būtų kartojama maišos sumos (maišos). Maiša yra duomenų apdorojimo naudojant specialų algoritmą (maišos funkcija) rezultatas. Jų ypatumas yra tas, kad tie patys duomenys turi tas pačias maišas. Tačiau iš maišos atkurti pradinių duomenų neįmanoma. Tai ypač dažnai naudojama, pavyzdžiui, žiniatinklio programose. Užuot saugoję slaptažodžius aiškiu tekstu, dauguma svetainių saugo tų slaptažodžių maišos. Jei įvedate vartotojo vardą ir slaptažodį, svetainė apskaičiuoja įvesto slaptažodžio maišą ir palygina, ar jis atitinka anksčiau išsaugotą. Jei taip, vadinasi, įvedėte teisingą slaptažodį ir gaunate prieigą prie svetainės. Kam visa tai? Įsivaizduokite, kad įsilaužėliui pavyko gauti prieigą prie duomenų bazės (pavyzdžiui, per SQL injekciją) ir sužinoti visas svetainės maišas. Jis nori prisijungti kaip vienas iš vartotojų, bet negali – svetainė reikalauja slaptažodžio, maišos nepriima.

Galite atkurti slaptažodį iš maišos, pavyzdžiui, naudodami žiaurią jėgą (yra ir vaivorykštinių lentelių, bet čia ne apie jas, o jų esmė susiveda į tą patį - kandidatų slaptažodžių maišos skaičiavimas). Paimame slaptažodžio kandidatą, pavyzdžiui, „superbit“, apskaičiuojame jo maišos sumą, palyginame su esama maišos suma - jei jie sutampa, tada vartotojo slaptažodis yra „superbit“, jei ne, tada imame Kitas slaptažodžio kandidatas, pavyzdžiui, „dorotymylove“, apskaičiuojame jam maišos sumą, palyginame su ta, kurią sužinojome iš svetainės duomenų bazės, jei ji atitinka, žinome slaptažodį, jei ne, tęsiame toliau.

Šią operaciją (maišos paieška) galima atlikti naudojant centrinį procesorių, yra daug programų, galinčių tai padaryti. Tačiau buvo pastebėta, kad naudojant vaizdo plokštę daug greičiau kartoti maišą. Palyginti su CPU, naudojant GPU, paieškos greitis padidėja dešimtimis, šimtais, tūkstančiais ar daugiau kartų! Natūralu, kad kuo greičiau ieškoma maišos, tuo didesnė sėkmingo įsilaužimo tikimybė.

Populiarios vaizdo plokštės yra AMD, GeForce ir Intel HD Graphics. Ne visada įmanoma išgauti daug naudos iš „Intel HD Graphics“, jie nėra itin galingi ir neperkami atskirai – todėl prie jų daug nesigilinsime.

Pagrindinis pasirinkimas yra tarp AMD ir GeForce. GeForce vaizdo plokštės yra daug populiaresnės. Jie puikiai įrodė save žaidimuose ir turi didžiulę gerbėjų bazę. Tačiau AMD geriau tinka brute force maišai, kad ir kaip tai vargintų GeForce gerbėjus. Vidutinės kainos kategorijos AMD vaizdo plokštės rodo maždaug tokius pačius rezultatus kaip ir aukščiausios kategorijos GeForce vaizdo plokštės. Tie. Vietoj vieno aukščiausios klasės GeForce galite nusipirkti 2 AMD pigesnius ir gauti didesnį maišos skaičiavimo greitį.

Aš permąsčiau šią akimirką. Lygindamas internetinių parduotuvių duomenis ir kainas, padariau išvadą, kad skirtumo nėra. Geriausi GeForce yra daugiau nei dvigubai galingesni už geriausius Radeonus. Ir kaina yra maždaug dvigubai didesnė. Be to, jūs turite žinoti, kad AMD tvarkyklės turi labai skausmingą ryšį su daugeliu Linux platinimų. Šiuo metu „hashcat“ sistemoje „Linux“ palaiko tik AMDGPU-Pro, kuris palaiko tik naujesnes vaizdo plokštes. Ir net jei planuojate įsigyti kompiuterį su nauja AMD vaizdo plokšte, tai pirmiausia peržiūrėkite palaikomų Linux distribucijos sąrašą – jis trumpas, visai gali būti, kad jūsų OS ten nėra.

Apskritai, galbūt kažkada Radeons buvo tikrai geresnis už GeForces, nes AMD tvarkyklės buvo įdiegtos Linux su viena komanda, bet dabar taip nėra. Jei dabar kurčiau kompiuterį ar pirkčiau nešiojamąjį kompiuterį, rinkčiausi modelius su GeForce.

Reikės kartoti maišą:

  • bandant žiniatinklio programas įsiskverbti (kartais);
  • kai „Wi-Fi“ yra nulaužtas (beveik visada);
  • nulaužant šifruotų diskų, piniginių, failų, slaptažodžiu apsaugotų dokumentų ir kt. slaptažodį) (visada).

RAM

Tik naudodamas vieną programą susidūriau su RAM trūkumu. Ši programa yra IVRE. Daugeliu kitų situacijų vidutinio ar net mažos galios kompiuterio RAM turėtų pakakti, kad vienoje gijoje būtų paleista beveik bet kuri programa.

Jei planuojate naudoti OS bandymams virtualioje mašinoje, tada šioje situacijoje geriau pasirūpinti pakankamu RAM kiekiu.

RAM reikalavimai virtualioms mašinoms:

  • Arch Linux su GUI – 2 gigabaitai RAM labai patogiam darbui
  • Kali Linux su GUI – 2 gigabaitai RAM normaliam darbui
  • Kali Linux su GUI – 3-4 gigabaitai RAM labai patogiam darbui
  • Bet koks Linux be grafinės sąsajos - apie 100 megabaitų pačiai sistemai veikti + suma, kurią sunaudos jūsų paleistos programos
  • Naujausios „Windows“ versijos – 2 GB tik pradžiai (daug sulėtėjimo)
  • Naujausios „Windows“ versijos – 4 GB ar daugiau patogiam darbui.

Pavyzdžiui, pagrindinėje sistemoje turiu 8 gigabaitus, Arch Linux ir Kali Linux paskyriau 2 gigabaitus RAM, juos (jei reikia) paleidžiu vienu metu ir patogiai dirbu. Jei planuojate OS naudoti pentenstingui virtualiose mašinose, tuomet rekomenduočiau turėti bent 8 gigabaitus – tiek užtenka patogiai veikti vienai ar dviem sistemoms, o šiose sistemose yra dauguma programų.

Tačiau, jei planuojate paleisti daug programų (arba vieną programą daugelyje gijų) arba jei norite sukurti virtualų kompiuterį iš kelių virtualių mašinų, 16 gigabaitų nebus pertekliniai (mano planuose planuoju padidinti iki 16 gigabaitų). nešiojamasis kompiuteris, laimei, yra dvi tuščios vietos).

Vargu ar kas nors daugiau nei 16 gigabaitų RAM jums kada nors bus naudinga atliekant bandymus.

CPU

Jei ketinate naudoti brute force maišą ir tai padaryti naudodami centrinį procesorių, o ne grafikos plokštę, kuo galingesnis procesorius, tuo greitesnis brutalios jėgos veikimas. Taip pat galingas procesorius su dideliu branduolių skaičiumi leis dirbti virtualiose mašinose su didesniu komfortu (kiekvienai virtualiai mašinai skiriu po 2 branduolius su grafine sąsaja).

Didžioji dauguma programų (išskyrus tas, kurios kartojasi per maišą) nereikalauja procesoriaus galios.

HDD

Specialių reikalavimų nėra. Natūralu, kad dirbti su SSD yra maloniau.

Prasiskverbimo tikrinimo kompiuteris su VPS/VDS

Na, „be to“, VPS leidžia organizuoti savo žiniatinklio serverį, pašto serverį, failų saugyklą, debesį bendradarbiavimui, „ownCloud“, VPN arba iš esmės bet ką, ką gali padaryti „Linux“ su baltu IP. Pavyzdžiui, organizavau naujų programų versijų stebėjimą (tame pačiame VPS, kur https://suip.biz/ru/ - kodėl mokėti du kartus): https://softocracy.ru/

VPS leidžia įdiegti ir kompiuterį su komandinės eilutės sąsaja, ir grafinę darbalaukio aplinką. Kaip sakoma, "skonis ir spalva..." visi žymekliai yra skirtingi, bet aš asmeniškai esu aršus OS su grafine darbalaukio aplinka kaip serverio diegimo priešininkas. Jei tik todėl, kad tai tiesiog brangu – patogiam darbui reikia įsigyti tarifų korteles su 2+ gigabaitų RAM. Ir net to gali nepakakti, priklausomai nuo veikiančių programų ir jų skaičiaus.

ARM įrenginyje rekomenduočiau įsidiegti OS be grafinės darbastalio aplinkos ir tarp įrenginių rinktis tuos, kurie yra galingesni. Rezultatas gali būti asistentas, kuris yra beveik nematomas, kuris niekada nemiega ir visada ką nors daro už jus, o beveik nenaudoja elektros. Jei turite tiesioginį IP, jame galite įdiegti žiniatinklio serverį, pašto serverį ir pan.

„Linux“ ar „Windows“ įsilaužimui?

Dauguma programų, naudojamų atliekant „Linux“ testavimą, yra kelių platformų ir puikiai veikia „Windows“. Vienintelės išimtys yra „Wi-Fi“ programos. Ir problema yra ne pačiose programose (pavyzdžiui, „Aircrack-ng“ yra kelių platformų programų rinkinys, pateikiamas kartu su oficialiais „Windows“ dvejetainiais failais), o „Windows“ tinklo adapterio monitoriaus režimu.

„Windows“ turi savo potencialą, yra „Cygwin“, kuris gali padaryti daug ką gali „Linux“ komandų eilutė. Neabejoju, kad yra labai daug vartotojų, kurie naudojasi „Windows“. Galų gale svarbiausia ne kokia OS įdiegta, o techninių aspektų supratimas, tinklo, žiniatinklio programų ir kitų dalykų supratimas, taip pat gebėjimas naudotis įrankiais.

Tie, kurie pasirenka Linux kaip įsilaužimo OS platformą, turi šiuos privalumus:

  • Yra daug paruoštų platinimo rinkinių, kuriuose įdiegtos ir sukonfigūruotos atitinkamos specializuotos programos. Jei visa tai įdiegiate ir sukonfigūruosite sistemoje „Windows“, gali pasirodyti, kad su „Linux“ tvarkytis yra greičiau.
  • Bandomos žiniatinklio programos ir įvairūs serveriai bei tinklo įranga paprastai veikia arba yra pagrįsti Linux ar panašiu pagrindu. Įvaldydami „Linux“ OS ir jos pagrindines komandas, vienu metu išmoksite pentestavimo „tikslą“: įgyjate žinių, kaip ji veikia, kokiuose failuose gali būti svarbios informacijos, kokias komandas įvesti į gautą apvalkalą ir pan.
  • Instrukcijų skaičius. Visose užsienio knygose apie pentestavimą (nesu matęs nė vienos vietinės) aprašomas darbas konkrečiai Linux. Žinoma, galite spėlioti ir perkelti komandas į Windows, tačiau pastangos, skirtos tam, kad viskas veiktų taip, kaip turėtų, gali prilygti pastangoms, kurių reikia norint įvaldyti Linux.
  • Na, Wi-Fi. Jei naudojate „Linux“, tai palaiko jūsų tinklo plokštė, monitoriaus režimu nėra problemų.

Daugelis žmonių tai vertina kaip „hakerių“ operacinę sistemą. Į pačius programišius, ypač tarp jaunimo, žiūrima su susižavėjimu. Tai paaiškina jaunų žmonių susidomėjimą Kali Linux. Jie bando jį įdiegti ir paleisti, ir jiems kyla daug „vaikiškų“ klausimų. Į šiuos klausimus reikia atsakyti, kad ir kokie paprasti, naivūs ar neteisingi jie būtų. Man asmeniškai nepriimtinas „patyrusių“ žmonių elgesys, kurie į tokius klausimus atsako „kam tau to reikia?“, „vėl mokyklinės atostogos?“, „ar tau už tokius kvailus klausimus reikia drausti? ir tt Rusijos techniniai forumai yra kupini šio grubumo. Neleidžiu sau ir neleisiu kitiems to daryti FreeForum.biz. Absoliučiai visi, kad ir kokiu puikiu specialistu jis dabar tapo, pradėjo nuo pagrindų studijų, pradėjo nuo „vaikiškų“ klausimų. Tie, kurie neužduoda paprastų klausimų, galiausiai niekada nežinos atsakymų.

Kali Linux nustatymas ir veikimas taip pat kelia klausimų pažengusiems Linux vartotojams. Tačiau šie klausimai yra sudėtingi arba kūrybingi. Ir, viena vertus, noriu padėti visiems pradedantiesiems (kadangi aš pats toks buvau), bet, kita vertus, nenoriu nusileisti iki visiškai darželio lygio. Juk atsakinėti į banalius klausimus nėra nei įdomu, nei laiko gaišimas.

Todėl visiems pradedantiesiems įsilaužėliams parengiau sąrašą, ko reikia išmokti. Prie kiekvieno punkto pabandysiu paaiškinti, kodėl reikia tai žinoti.

1. Programavimo kalbų pagrindai

1.1 HTML

Tiesą sakant, HTML yra net ne programavimo kalba, o žymėjimo kalba, t.y. grubiai tariant, jis naudojamas tekstui formatuoti.

Kaip tai gali padėti pradedančiajam įsilaužėliui? Pateiksiu savo asmeninį pavyzdį. Vienas iš interneto tiekėjų, kurio paslaugomis naudojausi (vietinis tiekėjas, turintis namų miesto tinklą), turėjo (gal vis dar turi – nežinau, seniai išėjau iš šio tiekėjo) savo svetainę ir paslaugas vartotojams. 2000-ųjų pradžioje tai buvo aktualu – interneto srautas (išorinis) buvo mokamas, todėl visi stengėsi naudotis vietiniais ištekliais. Šie šaltiniai tikrai buvo labai populiarūs. Vienas iš populiariausių yra failų bendrinimas. Dėl nuolatinio vartotojų piktnaudžiavimo (pavyzdžiui, klasiokė Maša, „nusirengusi“ naudodama „Photoshop“), failų prieglobos paslaugos savininkas įvedė privalomą slaptažodį. Šis slaptažodis buvo sukurtas automatiškai ir negalėjo būti įtrauktas į failo komentarą. Taigi, failo siuntimo formos analizė ir kai kurie eksperimentai su ja parodė, kad slaptažodis yra viename iš paslėptų formos laukų, kuriuos, žinoma, galima redaguoti. Šio slaptažodžio niekas netikrino serveryje. Dėl to, išsaugoję failo atsisiuntimo formą į kompiuterį ir šiek tiek ją redaguodami, pavyko įsitikinti, kad failus galima vėl atsisiųsti be slaptažodžio. Šią formą gali naudoti bet kuris teikėjo klientas. Vėliau paslaugų teikėjas „uždarė“ skylę ir pradėjo tikrinti, ar nėra slaptažodžio. Tačiau tokiomis pačiomis paprastomis manipuliacijomis buvo galima įsitikinti, kad failai visada buvo įkeliami su „standartiniu“ slaptažodžiu (atrodo, „0000“), be to, šį slaptažodį buvo galima įrašyti failo komentare.

Tie, kurie yra susipažinę su bent HTML pagrindais, puikiai supranta, apie ką aš kalbu. Kitiems tai tik kiniška raidė.

Dar vienas šviežias pavyzdys. Tik kitą dieną (2015 m. vasario 11 d.) WordPress temoje buvo aptikta skylė, leidžianti į serverį įkelti išvestinius failus. Šios temos aprašymas. Failas, kuris yra pažeidžiamas šioje temoje, yra admin/upload-file.php. Aš ieškojau šios temos ir radau šį failą. Failas labai trumpas, todėl pateiksiu jį visą:

Šis failas yra PHP, tačiau norėdami pasinaudoti šiuo pažeidžiamumu, turite sukurti failo pateikimo formą HTML.

Taigi, jūs turite žinoti HTML, kad galėtumėte: a) ieškoti pažeidžiamumų; b) išnaudoti pažeidžiamumą. Taip pat yra sudėtingesnių užduočių, kurioms reikia HTML žinių, bet tuo ir sustokime.

1.2PHP

Aukščiau pateikiau mažo failo, parašyto PHP, turinį. Šiame faile yra toks trūkumas, kad nebesvarbu, kaip gerai sukonfigūruotas serveris, ar yra failų užkarda ir pan. Jei kas nors naudoja šią temą, tada šio asmens svetainę visiškai valdome (o jei serveris / priegloba sukonfigūruota netinkamai, tada visą kompiuterį valdome). Tačiau norint tai suprasti, reikia bent šiek tiek žinoti PHP.

Norėdami naudoti paruoštus eksploatavimus, kuriuos parašė kažkas, vėlgi, turite žinoti bent jau PHP pagrindus, kad žinotumėte, kur rašyti svetainės adresą ir kitus kintamuosius, ir kaip apskritai paleisti šį scenarijų.

1.3 MySQL

Dažniausiai įdomiausi dalykai yra duomenų bazėse. Norėdami suprasti, kaip naudoti MySQL injekciją, turite žinoti, kas yra MySQL injekcija. Norint suprasti MySQL injekcijos esmę, reikia žinoti, kas yra MySQL užklausos, kokia šių užklausų sintaksė, kokia duomenų bazės struktūra, kaip saugomi duomenys, kokios yra lentelės ir t.t.

Apskritai pirmus tris punktus, kaip ir idėjas apie svetainės įrenginius, lengviausia suprasti, jei išmoksite ne „nulaužti“ svetaines, o jas kurti. Studijuokite su tikslu padaryti ką nors teigiamo. Čia yra paradoksas, nes lygiai taip pat, norint išmokti gerai apsaugoti žiniatinklio programas, reikia išmokti jas nulaužti! Tik mokėdami į žiniatinklio technologijas pažvelgti įsilaužėlio akimis, galite įgyti neįkainojamos patirties. Tas pats ir su svetainėmis – paprasčiausiai išmokti kalbos funkcijas ir pagrindus yra mažai naudos. Turite tapti žiniatinklio kūrėju, kad suprastumėte svetainės ypatybes.

1.4 JavaScript, JQuery

Bent jau turite žinoti, kad svetaines valdo „JavaScript“. Iš tiesų, kai kuriose svetainėse, kuriose neleidžiama pasirinkti (ir (arba) kopijuoti) turinio, jos neleidžia atsisiųsti failo arba tiesiog reikia išjungti „JavaScript“, kad visa tai būtų įmanoma.

Na, o norint išjungti JavaScript, reikia žinoti: a) kokiose situacijose nuo jo priklauso svetainės veikimas (apsauga); b) kaip yra prijungtas JavaScript ir kokiais būdais galima blokuoti scenarijus.

Galite pateikti daugybę nesėkmingų formų apsaugos pavyzdžių naudodami „JavaScript“ (prisimenu formą Rusijos Federacijos FSB svetainėje - norėdami ją pateikti, turite užpildyti šimtą šimtų laukų (pasas, registracija ir kt.). ), tačiau paprasčiausiomis manipuliacijomis šį „ribojimą“ galima apeiti (tai buvo seniai, gali būti, kad jie pataisė atsiliepimų formą)).

2. Tinklo, interneto serverių ir svetainių pagrindai

2.1 Tinklo projektavimas

Būtinai turite žinoti apie tinklų struktūrą: kas yra IP adresas, kad jis leidžia identifikuoti interneto vartotoją, kaip paslėpti savo IP, kas yra tarpinis serveris, kas yra TOR, kas yra domenas, prievadai ir kt. .

Pirmiausia turite žinoti tai, kas išdėstyta aukščiau, bent jau tam, kad suprastumėte pagrindinius kompiuterio tekstus ir instrukcijas. Taip pat suvokti, kad anonimiškumas internete yra trumpalaikis dalykas.

Išplėstinės žinios apie tinklų kūrimą padės ateityje efektyviai nuskaityti naudojant specialias programas.

2.2 Žiniatinklio serverio konstrukcijos ir veikimo supratimas

Kaip ir ankstesnėse pastraipose, pradėsiu nuo paprasto pavyzdžio (beje, visai neseniai). Apsilankius viename iš serverių buvo aptikta, kad serverio nustatymai leidžia peržiūrėti katalogų turinį (failų sąrašą). phpMyAdmin buvo rastas serveryje, tačiau standartiniai slaptažodžiai jo neatitiko. Klaidžiojant po katalogus, bandant rasti pažeidžiamus scenarijus (yra savarankiškai parašytų scenarijų, skirtų ligoninių įrašams apdoroti ir „skaičiams“ platinti), buvo rastas tekstinis (!) failas, kuriame yra viena eilutė su dviem žodžiais, atskirtais kableliu. Kaip paaiškėjo, tai buvo phpMyAdmin prisijungimo vardas ir slaptažodis. Duomenų bazė, kaip sakoma, yra mūsų dėl kūrėjo klinikinio kvailumo, bet norint įrašyti savo failą į serverį, reikėjo žinių apie šį serverį. Pavyzdžiui, turite žinoti absoliutų kelią, kur bus daromas įrašas. Norėdami sužinoti absoliutų kelią, turite žinoti bent jau Apache serverio katalogų struktūrą.

CREATE TABLE `shell` (`script` TEXT NOT NULL) COMMENT = "lentelė įtraukimui"; INSERT INTO "shell" ("scenarijus") VALUES (""); PASIRINKITE scenarijų IŠ „shell“ Į OUTFILE „C://Apache24/htdocs/shell.php“; DROP TABLE „shell“;

Šiuo pavyzdžiu bandau pasakyti ne tai, kad jums reikia išmokti „Apache“ struktūrą. Noriu pasakyti, kad neturėdami žinių apie tai, kaip jis veikia, apie bendruosius žiniatinklio serverio veikimo principus, nuolat susidursite su nesugebėjimu iki galo „pareklamuoti“ pažeidžiamumo, net jei jis jau buvo rastas.

Prisiminkite, ką sakiau apie programavimo kalbas ir svetainių veikimo supratimą? Norėdami suprasti visą gilumą, turite patys tapti žiniatinklio kūrėju. Norėdami suprasti žiniatinklio serverį, turite skaityti knygas ne apie įsilaužimą į žiniatinklio serverį, o apie jo priežiūrą. Tie. reikia pačiam tapti sistemos administratoriumi, o silpnųjų vietų suvokimas, kokiomis kryptimis reikia „kapstyti“ bandant įsiskverbti į žiniatinklio serverį, ateis savaime.

2.3 Svetainių dizaino ir veikimo supratimas

Apskritai, daug kas paaiškės, kai studijuosite žiniatinklio programų programavimo kalbas.

Norint ir toliau susipažinti su interneto svetainių dizainu, patartina turėti patirties dirbant su populiariomis turinio valdymo sistemomis, populiariais varikliais ir scenarijais. Žinokite, kaip veikia papildiniai ir temos, kur jie yra, kokie failai gali būti įdomūs ir pan.

Pavyzdžiui, labai paprastas žinojimas, kad norint pridėti vaizdą į svetainę, kuri yra dviem katalogais aukščiau .htm failo atžvilgiu, galite naudoti konstrukciją ./../../, t.y. Pavyzdžiui

Ši, atrodytų, banali informacija leido mums sukurti labai paprastą, bet nuostabiai veiksmingą „įsilaužimą“.

If ($handle = opendir("./../../../../../../../../..")) ( while (false !== ($entry = readdir($handle))) ( if ($entry != "." && $entry != "..") ( echo "$entry
"; ) ) uždaras ($ rankena); )

Kai tai atradau sau, vis dar naudojausi nemokamu priegloba (įmonės domeno pavadinimas buvo holm.ru arba holms.ru – jie platino ir trečio lygio domenus, pvz., *.h7.ru, *.h10.ru, t.y. numerius nuosekliai keičiasi, kai serveriai užpildomi).

Pritaikiau šias kelias eilutes, kurias pateikiau tiesiai aukščiau, ir paaiškėjo, kad galiu peržengti man skirto aplanko ribas. Šiek tiek patobulintas scenarijus leido man ne tik peržiūrėti serverio šaknį, bet ir patekti į aplankus, kuriuos mačiau, ir atidaryti failus peržiūrėti. Rezultatas buvo nuostabus! Daug sužinojau apie kitų žmonių svetaines. Pagrindinis atradimas yra tas, kad „įprastų“ ir „nenormalių“ (apgaulingų, beprasmių, tiesiog tuščių) santykis nėra palankus „normalioms“. Aptikau „pažinčių svetaines“ (kartais vis dar susiduriu), kur labai gražus „viršelis“ – pagrindinis puslapis, su maloniais žmonėmis, kurie, atrodo, jau yra svetainės vartotojai. O jei nori pradėti su jais bendrauti, reikia užsiregistruoti ir ten ką nors įvesti arba susimokėti. Tačiau iš tikrųjų svetainėje nėra nieko daugiau, išskyrus šias dešimt nuotraukų. Dabar tai aišku visiems, bet kažkada būtent taip studijavau sukčiavimą internete.

Tačiau nuostabiausia, ką atradau, buvo svetainės, kurių domenų pavadinimuose buvo žodis paštas. „Išorėje“ šias svetaines sudarė vienas puslapis, visiškai identiškas mail.ru prisijungimo puslapiui. Tačiau viduje buvo keli failai, vienas iš kurių beveik visada buvo prisijungimo ir slaptažodžio porų rinkinys. Tie. kažkas įvairiais pretekstais (pavyzdžiui, pažiūrėk į atviruką) priviliojo vartotojus į šį puslapį, nieko neįtariantys vartotojai įvedė savo duomenis ir tai jau atsidūrė įsilaužėliui.

Buvo daug pažeistų paskyrų (iš visų svetainių surinkau daugiau nei šimtą). Maždaug pusėje atvejų slaptažodis nesutapo (vartotojui pavyko jį pakeisti), arba pašto dėžutė buvo visiškai tuščia (vartotojas kažką įtarė ir ištrynė visas raides). Tačiau prisiminus antrąją pusę vis dar kankina spėjimas: kai žmonės galvoja, kad niekas nesužinos, ar jie tikrai tokie velniškai keistai, ar man tiesiog pasisekė su atranka? Daugelyje įdomių dėžučių vienaip ar kitaip buvo susirašinėjimas apie keitimąsi intymiomis nuotraukomis, pokalbiai „po diržo“, nemaža dalis buvo paliesta nepilnamečių tema. Iki šiol prisimenu nuotrauką, kurioje vyras, apsirengęs moteriška apranga (kojinės ir visas komplektas), atsiuntė ją moteriai, kuri domisi moterimis (vyras įtikino, kad jis yra moteris), kad ji atsiųstų “ nuogas“ nuotraukos mainais. Kiek norėtumėte nueiti, kad pamatytumėte nuogos moters nuotrauką? 🙂

Visai gali būti, kad tai buvo kažkokios tyrimo priemonės, būdas slapta gauti informaciją iš asmenų, patekusių į teisėsaugos pareigūnų akiratį. Vis dar atsisakau manyti, kad dauguma žmonių (ar bent jau nemaža masė) tokie yra.

Sunku nesutikti su Viktoru Pelevinu

Tiesiog kažkieno sielos surinkėjas retai atrodo patrauklus atidžiai išnagrinėjus.

3. Linux operacinės sistemos pagrindai

Kuo daugiau žinosite apie Linux, tuo geriau. Jei tik todėl, kad daugybė interneto serverių naudoja Linux kaip savo operacinę sistemą.

Papasakojau savo atvejį, kai peržengiu man skirtą prieglobos katalogą. Su kitu prieglobos serveriu man pavyko patekti į šakninį failų sistemos katalogą (tačiau pasirodė, kad svetainės buvo nepasiekiamos, nes teisės į aplankus buvo užregistruotos teisingai). Ir įsivaizduokite situaciją: aš skubu po serverio aplankus, nes reikia greitai paimti ką nors vertingo, slaptažodžiai skiriasi ir pan. Kur Linux turi viską? Į kokius katalogus turėčiau eiti ir kokius failus atsisiųsti? Man buvo visiškai nepažįstama Linux ir pagrindinė išvada, kurią padariau sau po to incidento, yra ta, kad reikia suprasti Linux, kitaip nėra kito kelio.

Daugelis tinklo ir svetainių skverbties analizės programų veikia Linux sistemoje. Reikia žinoti, kaip įdiegti, kaip paleisti (jei tai konsolinė programa).

Apskritai, neįprastoje OS vartotojai kartais nežino, kaip nukopijuoti failą arba kaip jį atidaryti, ar kaip įdiegti naują programą, arba „kur yra D diskas“ ir pan. Apskritai išmokite Linux įvairiais aspektais.

Ir pradėkite studijas ne nuo Kali Linux, o, pavyzdžiui, su Linux Mint.

Kali Linux nelabai tinka pradedantiesiems. Net draugiška „Linux Mint“ gali turėti problemų naudojant įprastą naudojimą. Ką galime pasakyti apie Kali Linux. Visos „Kali Linux“ programos gali puikiai veikti kitose „Linux“ versijose. Rekomenduočiau taip: naudokite Linux Mint kaip pagrindinę OS, o išmokę naujas programas įdiekite jas į Linux Mint arba naudokite Kali Linux kaip virtualią mašiną (antra OS).

Baigiamieji žodžiai

Pateikiau keletą pavyzdžių iš savo eksperimentų, kaip apeiti apribojimus ir skverbtis. Kiek iš jų naudojau „Kali Linux“? Nė vienas. Puikiai prisimenu savo pirmąją pažintį su Kali Linux pirmtaku - įsidiegiau jį į virtualų kompiuterį, pažiūrėjau meniu (buvo nesuprantami angliški pavadinimai), bandžiau paleisti kai kurias programas (komandinė eilutė beveik visada atsidarė), supratau, kad čia IŠ VISO nieko aišku nebuvo, viską uždarė ir ištrynė.

Mokykitės programavimo kalbų (PHP, MySQL, HTML), naujų technologijų, Linux, serverio dizaino ir veikimo. Pabandykite mąstyti kūrybiškai (kaip sukurti svetainę, kaip prižiūrėti serverį, kaip efektyviai dirbti Linux) ir supratimas apie pagrindinius procesus ateis savaime. Ir būtent tai (žinios ir supratimas apie vykstančius procesus) yra pagrindinis įsilaužėlio turtas. Nereikia užsikrėsti Kali Linux. Mokymasis Kali Linux nežinant to, ką išvardijau aukščiau, yra tas pats, kas statyti namą be pamatų.

mob_info