Kas yra slaptas kanalo išnaudojimas. Kaip aptikti paslėptų duomenų perdavimą tinkle? Keletas žodžių apie greičio apribojimus

Galite sužinoti, kaip konfigūruoti MikroTik šio gamintojo įrangos internetiniame kurse. Kursų autorė – sertifikuota MikroTik trenerė. Daugiau galite perskaityti straipsnio pabaigoje.

Straipsnyje atsakoma į klausimą, kiek pavojinga blokuoti ICMP srautą.

ICMP yra nesutarimų šaltinis

Daugelis tinklo administratorių mano, kad „Internet Control Message Protocol“ (ICMP) kelia pavojų saugumui, todėl jis visada turi būti užblokuotas. Tiesa, kad su protokolu susijusios kai kurios užklausos turėtų būti blokuojamos blokuoti visą ICMP srautą!

ICMP srautas turi daug svarbių funkcijų; Kai kurie iš jų yra naudingi trikčių šalinimui, o kiti būtini, kad tinklas tinkamai veiktų. Žemiau yra keletas svarbių ICMP protokolo dalių, apie kurias turėtumėte žinoti. Turėtumėte apsvarstyti, kaip geriausiai juos nukreipti per savo tinklą.

Echo prašymas ir ir Echo atsakymas

IPv4 – Echo užklausa (Type8, Code0) ir Echo atsakymas (Type0, Code0)
IPv6 – Echo užklausa (Type128, Code0) ir Echo atsakymas (Type129, Code0)

Visi gerai žinome, kad ping yra vienas iš pirmųjų trikčių šalinimo įrankių. Taip, jei įgalinate ICMP paketų apdorojimą savo aparatinėje įrangoje, tai reiškia, kad jūsų priegloba dabar yra aptinkama, bet ar jūsų jau neklauso 80 prievado ir nesiunčia atsakymų į klientų užklausas? Žinoma, blokuokite ir šias užklausas, jei tikrai norite, kad jūsų DMZ būtų tinklo pakraštyje. Tačiau blokuodami ICMP srautą savo tinkle nesustiprinsite savo saugumo, priešingai, gausite sistemą su bereikalingai sudėtingu trikčių šalinimo procesu ("Patikrinkite, ar šliuzas reaguoja į tinklo užklausas?", "Ne, bet tai manęs visai neerzina, nes man tai nerūpi.

Atminkite, kad taip pat galite leisti užklausoms nukreipti tam tikra kryptimi; Pavyzdžiui, sukonfigūruokite įrangą taip, kad Echo užklausos iš jūsų tinklo būtų nukreiptos į internetą, o atsakymai iš interneto į jūsų tinklą, bet ne atvirkščiai.

Reikia suskaidyti paketą (IPv4) / paketas per didelis (IPv6)

IPv4 – (3 tipas, 4 kodas)
IPv6 – (2 tipas, 0 kodas)

Šie ICMP protokolo komponentai yra labai svarbūs, nes jie yra svarbus Path MTU Discovery (PMTUD), kuris yra neatskiriama TCP protokolo dalis, komponentas. Leidžia dviem pagrindiniams kompiuteriams koreguoti TCP maksimalaus segmento dydžio (MSS) reikšmę iki vertės, atitinkančios mažiausią MTU ryšio kelyje tarp dviejų paskirties vietų. Jei paketų kelyje yra mazgas, kurio didžiausias perdavimo vienetas yra mažesnis nei siuntėjas ar gavėjas, ir jie neturi priemonių šiam susidūrimui aptikti, srautas bus tyliai pašalintas. Ir jūs nesuprasite, kas vyksta su komunikacijos kanalu; kitaip tariant, „linksmų dienų ateis tau“.

Neskaldykite – ICMP nepraeis!

Perduodant IPv4 paketus su neskaidymo bitų rinkiniu (dauguma jų!) arba IPv6 paketus (atminkite, kad IPv6 maršrutizatoriai nesuskaido), kurie yra per dideli, kad būtų galima perduoti per sąsają, maršrutizatorius atmes paketą. ir generuoti atsaką į perdavimo šaltinį su šiomis ICMP klaidomis: Reikalingas fragmentavimas ( Reikalingas suskaidymas), arba pakuotė per didelė ( Paketas taip pat Didelis). Jei atsakymai su šiomis klaidomis negali būti grąžinti siuntėjui, jis interpretuos patvirtinimo atsakymų apie ACK paketų pristatymą nebuvimą ( Pripažinimas) iš imtuvo kaip perkrovą / praradimą ir paketų pakartotinio perdavimo šaltinį, kurie taip pat bus atmesti.

Sunku nustatyti tokios problemos priežastį ir greitai ją išspręsti TCP rankų paspaudimo procesas veikia gerai, nes jis apima mažus paketus, tačiau kai tik įvyksta masinis duomenų perdavimas, perdavimo seansas užstringa, nes perdavimo šaltinis neveikia; gauti klaidų pranešimus.

Paketų pristatymo kelio tyrinėjimas

RFC 4821 buvo sukurtas siekiant padėti tinklo srauto dalyviams išspręsti šią problemą naudojant paketinio kelio zondavimą (MTU atradimo kelias (PLPMTUD). Standartas leidžia aptikti maksimalų duomenų kiekį (Maksimalus perdavimo blokas (MTU), kurį protokolas gali perduoti viena iteracija, palaipsniui didinant maksimalų naudingų duomenų bloko dydį (Maksimalus segmento dydis (MSS), kad būtų galima rasti maksimalų įmanomą paketo dydį neskaidant jo kelyje nuo siųstuvo iki imtuvo. Ši funkcija sumažina priklausomybę nuo laiku gautų atsakymų į klaidas naudojant interneto valdymo pranešimų protokolą (ICMP) ir yra prieinama daugumoje tinklo įrenginių ir klientų operacinių sistemų Deja, ji nėra tokia efektyvi, kaip tiesiogiai gauti duomenis apie didžiausią galimą dydį perduotų paketų, leiskite šiems ICMP pranešimams grįžti į perdavimo šaltinį, gerai?

Viršytas paketo perdavimo laikas

IPv4 – (11 tipas, 0 kodas)
IPv6 – (3 tipas, 0 kodas)

„Traceroute“ yra labai naudingas įrankis tinklo jungčių tarp dviejų kompiuterių trikdžiams šalinti, išsamiai aprašant kiekvieną kelio žingsnį.


Siunčia paketą su IP protokolo duomenų paketo galiojimo laiku (Laikas gyventi (TTL) lygus 1 kad pirmasis maršrutizatorius išsiųstų klaidos pranešimą (įskaitant savo IP adresą), kad paketas viršijo savo veikimo laiką. Tada jis siunčia paketą su TTL 2 ir pan. Ši procedūra reikalinga norint aptikti kiekvieną mazgą paketo kelyje.

NDP ir SLAAC (IPv6)

Router Solicitation (RS) (Type133, Code0)
Maršrutizatoriaus reklama (RA) (Type134, Code0)
Kaimyno prašymas (NS) (135 tipas, 0 kodas)
Kaimyno reklama (NA) (Type136, Code0)
Peradresuoti (137 tipas, 0 kodas)

Nors IPv4 naudojo Adreso skyros protokolą (ARP) 2 ir 3 OSI tinklo modelio sluoksniams susieti, IPv6 naudoja kitokį metodą kaimyninio aptikimo protokolo (NDP) forma. NDP suteikia daug funkcijų, įskaitant maršrutizatoriaus aptikimą, prefiksų aptikimą, adreso skyrą ir kt. Be NDP, be būsenos adresų automatinė konfigūracija (SLAAC) leidžia dinamiškai konfigūruoti pagrindinį kompiuterį tinkle, panašiai kaip dinaminio pagrindinio kompiuterio konfigūravimo protokolo (DHCP) koncepcija (nors DHCPv6 yra skirtas detalesniam valdymui).

Šių penkių tipų ICMP pranešimų negalima blokuoti jūsų tinkle (nepaisant išorinio perimetro), kad IP duomenų perdavimo protokolas tinkamai veiktų.

ICMP tipo numeracija

Interneto valdymo pranešimų protokole (ICMP) yra daug pranešimų, kurie identifikuojami pagal lauką „tipas“.

Tipas vardas Specifikacija
0 Echo atsakymas
1 Nepriskirta
2 Nepriskirta
3 Paskirties vieta nepasiekiama
4 Šaltinio gesinimas (nebenaudojamas)
5 Peradresuoti
6 Alternatyvus prieglobos adresas (nebenaudojamas)
7 Nepriskirta
8 Aidas
9 Maršrutizatoriaus reklama
10 Maršrutizatoriaus prašymas
11 Laikas viršytas
12 Parametrų problema
13 Laiko žyma
14 Atsakymas laiko žyma
15 Informacijos užklausa (nebenaudojama)
16 Informacinis atsakymas (nebenaudojamas)
17 Adreso kaukės užklausa (nebenaudojama)
18 Adreso kaukės atsakymas (nebenaudojamas)
19 Rezervuota (saugumui) Solo
20-29 Rezervuota (tvirtumo eksperimentui) ZSu
30 Traceroute (nebenaudojama)
31 Datagramos konversijos klaida (nebenaudojama)
32 Mobiliojo prieglobos peradresavimas (nebenaudojamas) David_Johnson
33 IPv6, kur esate (nebenaudojama)
34 IPv6 I-Am-Here (nebenaudojama)
35 Mobiliosios registracijos užklausa (nebenaudojama)
36 Mobiliojo ryšio registracijos atsakymas (nebenaudojamas)
37 Domeno vardo užklausa (nebenaudojama)
38 Domeno vardo atsakymas (nebenaudojamas)
39 PRAleisti (nebenaudojama)
40 Phototuris
41 ICMP pranešimai, naudojami eksperimentiniuose mobilumo protokoluose, tokiuose kaip „Seamoby“.
42 Išplėstinis Echo prašymas
43 Išplėstinis aido atsakymas
44-252 Nepriskirta
253 RFC3692 stiliaus 1 eksperimentas
254 RFC3692 stiliaus 2 eksperimentas
255 Rezervuota

Keletas žodžių apie greičio apribojimus

Nors ICMP pranešimai, kaip aprašyti šiame straipsnyje, gali būti labai naudingi, atminkite, kad visų šių pranešimų generavimas užima jūsų maršrutizatorių procesoriaus laiką ir generuoja srautą. Ar tikrai tikitės, kad įprastoje situacijoje per užkardą gausite 1000 ping per sekundę? Ar tai bus laikoma normaliu eismu? Tikriausiai ne. Apribokite tinklo pralaidumą šio tipo ICMP srautui, kaip jums atrodo tinkama; šis veiksmas gali padėti apsaugoti tinklą.

Skaitykite, tyrinėkite ir supraskite

Atsižvelgiant į tai, kad diskutuojant tema „blokuoti ar neblokuoti“ ICMP paketus visada kyla painiavos, ginčų ir nesutarimų, siūlau ir toliau nagrinėti šią temą savarankiškai. Šiame puslapyje pateikiau daug nuorodų, manau, kad norėdami geriau suprasti problemas, turėtumėte skirti laiko jas skaitydami. Ir priimkite pagrįstus sprendimus, kas geriausiai tinka jūsų tinklui.

MikroTik: kur spustelėti, kad jis veiktų?
Nepaisant visų privalumų, „MikroTik“ gaminiai turi vieną trūkumą – apie jo konfigūraciją yra daug išsklaidytos ir ne visada patikimos informacijos. Rekomenduojame patikimą šaltinį rusų kalba, kuriame viskas surenkama, logiškai ir susisteminta – video kursas “ MikroTik įrangos nustatymas“ Kursą sudaro 162 video pamokos, 45 laboratoriniai darbai, savikontrolės klausimai ir pastabos. Visos medžiagos lieka su jumis neribotą laiką. Kurso pradžią galite žiūrėti nemokamai, kurso puslapyje palikę užklausą. Kursų autorė – sertifikuota MikroTik trenerė.

Slapti kanalai yra vienas iš informacijos saugumo metodų, kuris gali būti naudojamas tiek su pliuso ženklu (siekiant užtikrinti anonimiškumą ir konfidencialumą), tiek su minuso ženklu (organizuojant duomenų nutekėjimą). Panagrinėkime antrąjį komponentą – paslėptų duomenų perdavimo aptikimą, arba duomenų perdavimą paslėptais kanalais, kuri yra viena sunkiausiai praktikoje sprendžiamų informacijos saugumo problemų. Kad nepadidinčiau straipsnio apimties, sąmoningai ignoruosiu tokius duomenų slėpimo mechanizmus kaip šifravimas ir steganografija.

Aleksejus Lukatskis
Cisco saugumo konsultantas

Kas yra paslėptas duomenų perdavimas?

Paslėptas duomenų perdavimas tinkle nėra vienintelis šio metodo taikymas. Terminas "slaptas kanalas" pirmą kartą pasirodė 1973 m. ir buvo naudojamas skaičiavimo sistemoms, kurios neturi tradicinio tinklo ryšio. Pavyzdžiui, lyginė proceso trukmės reikšmė gali reikšti vienetą, o nelyginė – nulį. Taigi, manipuliuodami proceso trukme, galime sudaryti 0 ir 1 seką, kuria galime apibūdinti bet ką (tai vadinamasis laiko kanalas). Kitas paslėpto proceso skaičiavimo sistemose pavyzdys, kai procesas pradeda tam tikrą užduotį ir ją užbaigia tam tikru laiku, o tai gali būti interpretuojama kaip vienetas; ir nulis, jei užduotis neatliekama per nurodytą laiką.

Kaip galima įgyvendinti slaptą perdavimą?

Jei kalbėtume apie paslėptą tinklo duomenų perdavimą, tai vienas iš populiariausių ir gana paprastai įgyvendinamų metodų yra inkapsuliavimas, kurį sudaro apsaugotos informacijos, kuri turi būti perduodama iš išorės, arba komandos, kuri turi būti gaunama iš išorės, įtraukimo į autorizuotą protokolą.

Šiuo atveju gali būti naudojamos visiškai skirtingos kapsuliavimo parinktys:

1987 metais buvo pasiūlyta slapto tinklo perdavimo idėja ir nuo to momento buvo pradėti rimti šio konfidencialumo užtikrinimo ar duomenų nutekėjimo (priklausomai į kurią tvoros pusę) būdo tyrimai. Visų pirma, 1989 m. pirmą kartą buvo pasiūlyta manipuliuoti nepanaudotais Ethernet kadrų bitais ir daugeliu kitų kanalų protokolų. Akivaizdu, kad slaptus kanalus vietiniame tinkle tyrinėti nėra taip įdomu, priešingai nei slėpti duomenis pasauliniuose tinkluose. Proveržiu (bent jau viešai) galima laikyti 1996 m., kai buvo paskelbtas tyrimas, kuris parodė realų duomenų perdavimą ir priėmimą paslėptu TCP/IP kanalu; tiksliau, atskiruose jos antraštės laukuose.

  • HTTP lygiu, kuris jau seniai tapo de facto standartu kuriant kitus taikomųjų programų protokolus jo pagrindu. Pavyzdžiui, anoniminis JAP tinklas naudoja HTTP duomenims perduoti, taip pat sunkiai valdomą Tor tinklą. HTTP sistemoje duomenims perduoti galima naudoti GET ir POST komandas, o jei HTTP naudojamas vaizdo ir garso srautams perduoti, tai užpuolikų galimybės perduoti didelius duomenų kiekius tampa beveik neribotos.
  • DNS lygiu, kai informacija yra paslėpta DNS užklausose ir atsakymuose į jas. Žmonės pirmą kartą pradėjo kalbėti apie šį metodą 2000-ųjų pradžioje, kai pasirodė DeNiSe įrankis, skirtas TCP protokolo tunelavimui į DNS. Vėliau buvo atliktas Dan Kaminsky tyrimas, parodantis galimybę įkapsuliuoti SSH per DNS ir pristatytas Defcon konferencijoje 2005. Ir tada ši tema pradėjo populiarėti – atsirado dns2tcp, DNScapy, DNScat, Heyoka, jodas, squeeza ir kt.
  • ICMP lygiu, kai duomenys įterpiami į įprastai saugų ICMP protokolą. Šiuo principu veikė „Loki“ programa, pirmą kartą paminėta 1996 m. žurnale „Phrack“. Po jos sekė labiau pažengęs „Loki2“. Taip pat yra įrankis, vadinamas icm-pchat, kuris leidžia bendrauti su užšifruotais pranešimais per ICMP.
  • TCP/UDP/IP lygiu, kai atskiri paketų antraštės laukai naudojami nutekėjimams paslėpti arba komandoms iš išorės gauti. Priklausomai nuo naudojamo protokolo, perduodamų duomenų dydis atitinkamai skirsis nuo 2 iki 12 ir 38 baitų IP, UDP ir TCP protokoluose. Labai įdomus įrankis, kuriame naudojamas TCP antraštės modifikavimas, vadinamas Nushu. Jo ypatumas yra tas, kad jis pats nekuria srauto, o tik modifikuoja tą, kurį jau siunčia iš mazgo kokia nors programa ar procesas. Kitaip tariant, modifikuotas srautas siunčiamas ten, kur ir turi būti, o užpuolikas jį tiesiog perima per tinklą, rinkdamas tokiu būdu nutekėjusius duomenis.
  • Belaidžiuose tinkluose, kai duomenys užmaskuoti perduodamame sraute, paskirstytame transliacijos būdu. Beje, tokiu atveju nėra lengva aptikti priimančiąją pusę, kuri gali veikti pasyviuoju režimu – tik priimti duomenis. Šiuo principu sukurtas HICCUPS įrankis.

Kaip galima aptikti paslėptą perdavimą?

Matydami tokią slaptųjų kanalų naudojamų metodų ir protokolų, kuriuose jie yra, įvairovę, galite suprasti, kodėl yra tiek daug skirtingų slaptų perdavimų aptikimo metodų. Pagrindinis yra anomalijų kontrolė, kurią sudaro šių parametrų tikrinimas (neišsamus sąrašas):

  • Užklausos ir atsakymo dydis. Pavyzdžiui, žinoma, kad vidutinis DNS užklausos ilgis yra ne didesnis kaip 40–60 baitų. Todėl DNS užklausų su padidintais paketų ilgiais skaičiaus padidėjimas gali reikšti, kad veikia slaptasis kanalas. Panaši praktika gali būti pasiūlyta ir kitiems protokolams – ICMP, SIP ir kt.
  • Prašymų apimtis. Paprastai tam tikrų tipų protokolų srauto apimtis yra jei ne fiksuota reikšmė, tai retai keičiasi per kelias procentines dalis. Todėl staigus paslaugų protokolo srauto ar DNS užklausų skaičiaus ar jų dydžio padidėjimas gali rodyti anomaliją ir būtinybę tirti. Be to, srauto profilis šiuo atveju gali būti įvertintas tiek siuntėjo mazgo, tiek gavėjo mazgo atžvilgiu.
  • Įvykių skaičius arba geografija taip pat gali būti paslėptų kanalų charakteristika. Pavyzdžiui, jei turite vidinį DNS serverį, nuolatiniai skambučiai į išorinį DNS mazgą taip pat gali rodyti anomaliją.
  • Kiti statistinės analizės tipai taip pat naudingi aptikti slaptus kanalus. Pavyzdžiui, galite analizuoti DNS pagrindinio kompiuterio pavadinimų entropijos lygį. Jei DNS užklausose perduodama paslėpta informacija, naudojamų simbolių pasiskirstymas skirsis nuo tradicinio.

Priemonė, leidžianti stebėti tokias tinklo srauto anomalijas, yra NBAD (Network-based Anomaly Detection) klasės sistemos, kuriose arba jau yra daug integruotų taisyklių, arba jas galima konfigūruoti savarankiškai po mokymo režimo.


Be anomalijų analizės, slaptus kanalus galima aptikti ir tiriant turinį tam tikruose protokoluose. Tai galima padaryti naudojant tradicinius Next Generation klasės sprendimus, kurie gali stebėti taikomųjų programų protokolų srauto nukrypimus nuo RFC, ir naudojant įsibrovimų aptikimo sistemas. Pavyzdžiui, taip atrodo atvirojo kodo sprendimo „Snort“ parašas, skirtas aptikti paslėptą NSTX kanalą DNS protokole:
alert udp $EXTERNAL_NET any - > $HOME_NET 53 (msg:"Galimas NSTX DNS tuneliavimas"; turinys:"|01 00|"; poslinkis:2; viduje:4; turinys:"cT"; poslinkis:12; gylis:3 ; turinys:"|00 10 00 01|" klasės tipas: blogas

Santrauka

Universalumo trūkumas, ko gero, yra pagrindinė kliūtis tiek aktyviai naudoti slaptuosius kanalus, tiek kovoti su jais.

Slapti kanalai tinklo sraute yra labai specifinis metodas, kuris nėra universalus ir turi savo apribojimų bei taikymo sritį. Kiekvienas slaptasis kanalas turi savo ypatybes, tokias kaip pralaidumas, triukšmas, perdavimo režimas (dvipusis arba vienpusis), į kuriuos reikia atsižvelgti – tiek juos naudojant, tiek kovojant. Vis dėlto L.N. „Karas ir taika“. Tolstojus negali būti greitai perduodamas tokiais kanalais, o kai kurie slapto perdavimo būdai turi labai aukštą triukšmo lygį, todėl jie negali būti efektyviai naudojami pasauliniuose tinkluose, kuriuose išoriniai veiksniai gali labai paveikti slapto perdavimo sėkmę.

Universalumo trūkumas, ko gero, yra pagrindinė kliūtis tiek aktyviai naudoti slaptuosius kanalus, tiek kovoti su jais. Daugybė slapto duomenų perdavimo apribojimų daro jį tik tikslinių grėsmių, sukurtų konkrečiai užduočiai ir konkrečiam klientui, sfera. Tas pats universalumo trūkumas veda prie minties, kad ir dabar nėra vieno produkto pavidalo sidabrinės kulkos, todėl būtina naudoti daugybę įrankių ir technologijų paslėptiems duomenims aptikti ir neutralizuoti.

Šis trumpas straipsnis parodys, kaip naudotis keliais kompiuteriais, keliais smagiais įrankiais ir operacine sistema, kad, kur tik įmanoma, gautumėte belaidžio interneto prieigą. Gana aiškiai aprašiau techninę pusę ir pateikiau pastabų.

1. Įvadas.

Ką tik gavau savo pirmąjį nešiojamąjį kompiuterį ir norėjau pabandyti padaryti su juo ką nors neklaužada (net bandžiau šiek tiek padirbėti, bet buvo per daug nuobodu
:)). Iš pradžių vairavimas buvo gana smagus užsiėmimas, bet man pasidarė šiek tiek nuobodu, kai supratau, kad tinklai apsaugo
WEP man per sunkus (kadangi nebuvo intraneto srauto – tinklai gali būti laikomi mirusiais), o neapsaugoti tinklai visiškai neįdomūs. Laimei, belaidis tinklelis mano koledžo miestelyje buvo šiek tiek įdomesnis.

Tinklas teikia nemokamą belaidį internetą, tačiau prieš leidžiant prieigą reikia savo vardu užregistruoti MAC adresą – neregistruoti vartotojai nukreipiami į tiekėjo puslapį (registracijos puslapį). Registruojantis būtų reikėję dviejų minučių pokalbio su administratoriumi, bet pagalvojau: „Gal
būdas gauti prieigą be tokio ryšio? Žinoma, jis buvo.

2. Pirmasis įsiskverbimo būdas yra MAC klastojimas.

Kadangi viskas sukosi apie MAC adresą, pirmas dalykas, kuris atėjo į galvą, buvo
buvo išsiaiškinti jau registruotą MAC adresą ir su juo susidoroti
klastojimas. Žinoma, kalbėti lengva, bet tai nereikėjo beveik jokių pastangų, net turint omenyje, kad niekada to nedariau.
Pirmas dalykas, kurį padariau, paleidau „kismet“ („kismet -c orinoco,eth1,wifi“) ir užuosčiau tinklelį. Kismet išsaugo viską, ką atsisiuntėte
informaciją į failą (mano atveju „/var/log/kismet/*.dump“), uostymo rezultatus galima peržiūrėti tokius, kokie jie yra
kvitus. Dėl to galėjau peržiūrėti visą informaciją ir
užsirašykite atitinkamą MAC adresą.

Tinklo plokštės MAC adresui pakeisti naudojamos komandos:

ifconfig eth1 žemyn
nužudyti visus dhclient
ifconfig hw eteris 00:11:22:33:44:55
ifconfig eth1 up
dhclient eth1

Ne visos komandos būtinos, tačiau jos labai praverčia, kai bandote vieną po kito keisti kelis MAC adresus, kurie
Man tai buvo tiesiog naudinga, nes... MAC adresas, kurį bandžiau pakeisti, neveikė iš karto. Mane užblokavo, tinklas nutrūko ir nebeįsijungė, todėl susidūriau su šiek tiek erzinančiais gedimais
jūsų sistemoje. Galbūt šios problemos
atsirado dėl klaidingos programinės įrangos, o gal dėl to, kad tinkle jau buvo tinklo plokštė su tuo pačiu MAC adresu.

Ne visos darbo stotys buvo aktyvios, o naudoti „Kismet“ rezultatams peržiūrėti, kai jie gaunami, buvo neveiksminga, todėl išbandžiau kitą metodą.

Tinkle MAC adresų filtravimas buvo atliktas gana aukštu lygiu. Prie tinklo galėjau prisijungti bet kada, nes... Kai bandžiau prisijungti, buvau nukreiptas į puslapį, kuriame buvo prašoma užsiregistruoti.
Natūralu, kad galvojant apie aktyvius šeimininkus į galvą atėjo nmap. Taigi pradėjau tikrinti aktyvių stočių IP diapazoną.

marktwain: ~# nmap -sP 10.0.0.1/22
Nuo nmap 3.81 (http://www.insecure.org/nmap/) 2005-05-23 12:54 EEST
Atrodo, kad 10.1.0.14 priegloba veikia.
MAC adresas: 00:0E:35:97:8C:A7 („Intel“)
Atrodo, kad 10.1.0.95 priegloba veikia.

Atrodo, kad 10.1.0.109 priegloba veikia.
MAC adresas: 00:0D:54:A0:81:39 (3Com Europe)
...nukirpti...
Atrodo, kad 10.1.2.92 priegloba veikia.
MAC adresas: 00:02:2D:4D:1C:CE („Agere Systems“)
Atrodo, kad 10.1.2.187 priegloba veikia.
MAC adresas: 00:02:2D:4D:1C:43 („Agere Systems“)
Nmap baigtas: 1024 IP adresai (20 pagrindinių kompiuterių) nuskaityti per 53 980 sekundžių

Krūva MAC adresų. Dauguma
Gauta adresų lentelė (kaip manau) yra mašinų, kurios per pastarąsias dienas lankėsi tinkle, MAC adresai. Lentelėje buvo 245 skirtingi MAS
adresus. Nežinau, ar tai normalus elgesys
prieigos taškų, bet manau, kad vaikinams kažko reikia
interneto platinimo pasikeitimas. Šiaip ar taip, dabar turiu pakankamai mašinų, kurios lankėsi tinkle, bet greičiausiai jau seniai paliko, MAC adresų. Pora bandymų apgaudinėti ir aš jau ėjau į neworder.box.sk...

3. Bandymas numeris 2 – ICMP tuneliavimas.

Padariau viską, ko norėjau, bet šiame tinkle dar buvo kur kasti. Bet kas
Galėčiau tai padaryti, jei šio tinklo nebūtų
ar neturėtumėte nė vieno man priklausančio automobilio? Jeigu
Ar nmap neatsidarys ir neparodys visų šių MAC adresų? Taigi vis tiek nusprendžiau išbandyti kitą būdą, kaip pasiekti.

Tai nebuvo paminėta anksčiau, bet aplenkia sistemą
Interneto platinimas, suteikiantis leidimą, ir DHCP, tinklas leido laisvai perduoti ICMP pranešimus. Bet kurios interneto svetainės veiklos tikrinimas veikė puikiai (tikrai nesuprantu, kodėl jos neužblokavo – nebent pamiršo), ping
buvo aptiktas net mano serveryje veikiančiame snifferyje.
Mano planas buvo pabandyti sukurti tunelį tarp mano nešiojamojo kompiuterio universitete ir serverio namuose. Ir perkelkite visus ryšius per jį.
Internete ieškojau ICMP tuneliavimo programų, bet nė viena neveikė taip, kaip norėjau (būtent norėjau, kad būtų paprasta – kad jei paleisčiau savo mėgstamą naršyklę ar kokią kitą programą, ji veiktų tik su tuneliu) arba bent jau.
atrodė virškinamas.

4. Šiek tiek kodavimo.

Iš pradžių neplanavau nieko koduoti. Ką tik išbandžiau kai kurias ICMP tunelio programas
su paketų stormu, bet staiga atsidūriau perskaičiusi vieno iš jų šaltinio kodą ir supratau, koks jis stebėtinai paprastas ir kaip lengva būtų padaryti kažką panašaus. Programos pavadinimas – itunel –
Įprasta ICMP tuneliavimo priemonė. Itunelis yra nuostabus. Bet tai tik tunelis. Paleidžiate jį viename įrenginyje ir galiausiai atrodo, kad sujungėte du
tinklo plokštės kartu. To nepakako to, ką norėjau padaryti.
Jau girdėjau apie branduolio modulį TUN/TAP, kuris leidžia vartotojo procesams gauti ir siųsti informacijos paketus tiesiai į/iš branduolio.

Programa sukuria virtualią tinklo sąsają.
Tai sukuria tinklo sąsają, kuri
veikia lygiai taip pat
standartinis Įdomiausia tai
vartotojo programos turi
veikia kaip fizinis sąsajos sluoksnis
tunelis. Jie turi skaityti informacijos paketus iš
įrenginio failą (pvz., „/dev/net/tun0“) ir persiųskite juos bet kokiomis priemonėmis bei parašykite atsakymo paketus
atgal į failą.

Neradau jokio gero šaltinio
TUN/TAP, bet yra programa – vtun – kuri naudojo TUN/TAP savo tuneliams, todėl aš
Naudojau vtun šaltinius. Po nedidelio tyrimo paaiškėjo, kad yra nedidelė funkcijų biblioteka, naudojama kurti, skaityti ir rašyti, kad būtų galima tun*
prietaisai. Kodėl turėčiau pats rašyti programą, jei tai galima padaryti sutvarkius porą bitų?
Kodas, kurį iš tikrųjų parašiau:

#include "driver.h" /* pareiškia vtun biblioteka */
#įtraukti
#įtraukti

/* šiek tiek pakeistas main() iš itunel
*/
int run_icmp_tunnel (int id, int paketo dydis, char *desthost, int tun_fd);

/* maksimalus vienetas – maksimalus
kapsuliuotos pakuotės dydis

*/
const int mtu = 1400;

int main(int argc, char **argv) (
char *dev;
int tun_fd = 0;

/* sukurti tunelio įrenginį */
dev = (char *) malloc(16);
if (dev == NULL) (
printf ("jei niekada neturėjote problemų su
skiria 16 baitų\"
"atmintis yra jūsų pirmas kartas. Fatal.n");
grąžinti 1;
}
dev = 0;
/*
puiki bibliotekos funkcija
iš vtun priima tuščią eilutę kaip
*
* argumentas, sukuria tunX įrenginį ir
perduoda jį *dev
*/
tun_fd = tun_open(dev);

if (tun_fd< 1) {
printf("Neįmanoma sukurti įrenginio. Fatal.n");
grąžinti 1;
}
Kitas(
printf("Sukurtas tuneliavimo įrenginys: %sn", dev);
}

/* 7530 yra ICMP ID laukas,
naudojamas paketams tunelyje

*/
run_icmp_tunnel(7530, mtu, argv, tun_fd);

tun_close(tun_fd, dev);
}

Štai jis. Ir dažniausiai tai yra komentarai ir klaidų tikrinimas

Kaip jau minėjau, tunelis idealiai tinka tunelio statybai. Ji turi pagrindinę funkciją, kuri yra
atidaryti įvesties, išvesties ir lizdo failai; Taip pat
Gavau keletą komandinės eilutės parametrų (kurie gali būti naudingi mano tikslams). Tada ji pavadino šiek tiek abstrakčią funkciją, kuri iš esmės tik gabeno informacijos paketus. ICMP antraštė nemokamai
yra aprašytas kodu ir gali būti lengvai pakeistas į bet kurią kitą antraštę,
įvestis/išvestis/lizdas gali būti sukonfigūruotas pagal kokią nors kitą loginę grandinę – funkcija veiks su minimaliais koregavimais.

Didžiausias pakeitimas, kurį padariau, buvo visų komandų eilutės manipuliacijų pašalinimas – iš esmės pašalinus kelis kodo blokus. Svarbiausia tunelio logikai, kad pašalinau skirtumą tarp įvesties ir išvesties, nes jie yra abu
pakabinti ant to paties deskriptoriaus (tunX įrenginys) –
tai davė man tai, užuot pasielgusi kaip
netcat ir persiųsti stdin į ICMP lizdą ir ICMP lizdą į stdout,
jis siunčia išeinantį signalą į tunX įrenginį (pvz., http užklausas iš naršyklės) į ICMP
lizdas ir ICMP lizdo išvestis (tarsi HTTP
užklausos iš serverio buvo išsiųstos atgal
per tunelį) į tunX įrenginį (į
grįš į naršyklę). Kadangi paskutinis sakinys yra labai ilgas ir sudėtingas, pateikiu nedidelę diagramą iliustruoti:

Atsakymų informacijos paketai eina tuo pačiu keliu, bet
kitu keliu.

Vienu metu aš pakankamai išprotėjau ir iš tikrųjų parašiau naują kodo eilutę. Tai atrodo taip:

memcpy(&(target->sin_addr.s_addr), &(from.sin_addr.s_addr), 4);

Jo funkcija yra pradėti siųsti visus informacijos paketus į vietą, kur atkeliavo paskutinis paketas. aš galiu
paleiskite jį mano serveryje ir prisijunkite
iš bet kur siųsti paketą tuneliu
ir tai akimirksniu pakeičia gavėjo IP į IP
mano nešiojamas kompiuteris.

Rezultatą galite paimti iš čia:

5. Tunelių įrengimas.

Aš išbandžiau tunelį namuose ir jis veikė gerai, tačiau namuose nebuvo ugniasienės. Kitą dieną universitete buvau pasiruošęs tai išbandyti realiame gyvenime. Atsitiktinai, sėdėdamas prie stalo kavinėje, apgaulės būdu radau MAC adresą ir įkūriau tunelį.

Sunku prisiminti visus kvailus dalykus, kuriuos bandžiau, ir nedidelius eksperimentus, todėl stengiausi padaryti šią dalį kuo labiau organizuotą. Iš tikrųjų ne viską padariau taip aiškiai.
Kad viskas man pavyktų
Tai užtruko 3 valandas ir bandžiau viską, ką galėjau, o uostydamas visur, kur tik galėjau, modifikavau kodą taip, kad gavęs informacijos paketą jis skanduotų "Paketas!" Ir taip toliau.

Serveryje paleidau šias komandas:

tsee-diees:~# ./create_tun wifi.ttu.ee
Sukurtas tunelio įrenginys: tun0

Sustabdytas ./create_tun wifi.ttu.ee
tsee-diees: ~# ifconfig tun0 mtu 1400 192.168.3.1 aukštesnė
tsee-diees:~# maršrutas pridėti 192.168.3.2 tun0
tsee-diees:~# tethereal -i eth0 -f "icmp"

Maniau, kad tai veiks iš karto ir tiesiog paleidau tai savo nešiojamajame kompiuteryje:

marktwain:~# ./create_tun 194.204.48.52
Sukurtas tunelio įrenginys: tun0

Sustojo ./create_tun 194.204.48.52
marktwain:~# ifconfig tun0 mtu 1400 192.168.3.2 aukštesnė
marktwain:~# maršrutas pridėti 192.168.3.1 tun0
marktwain:~# tethereal -i eth0 -f "icmp"

Ką man reikėjo padaryti, tai sukurti
tinklas su dviem pagrindiniais kompiuteriais - serveris kaip 192.168.3.1 ir nešiojamasis kompiuteris kaip 192.168.3.2. Paprastas įprastas LAN, tik jo fizinis sluoksnis bus ICMP tunelis. Kaip ir tu tikriausiai
suprato iš likusio straipsnio teksto
metodas tikrai nepasiteisino. Pradėjau ping ("ping 192.168.3.1"), bet paketai vis tiek nepasiekė.

Laimei, nešiojamojo kompiuterio uostytojas man davė nedidelį užuominą – ICMP paketai buvo atsakymai. Žinoma, kad ne
buvo išvykę. Taigi mes nužudome tunelį, įjungiame „itunnel“ nešiojamajame kompiuteryje ir naudojame atvirkštinius icmp atsakymus (pakeiskite „icmp->type = 0;“ į „icmp->type = 8;“), grąžiname tunelį.
Sistema vis tiek neveikė, bet šį kartą paketai
pasirodė serverio snifferyje.

Kas gali būti negerai? Išbandžiau vieną modifikaciją, kuri turėjo sušukti „Paketas!“, kai atkeliavo kitas paketas, bet šauktukai to nepadarė
iškilo. „Kodėl iš tikrųjų,“ pagalvojau, „jei ugniasienė įdiegta, ji turėtų blokuoti visus ICMP paketus iš interneto? Po kurio laiko supratau, kad taip iš tikrųjų buvo (visi ICMP paketai iš interneto buvo užblokuoti).

Jau geriau. Tunelis sušunka "Paketas!" , o atsakymus galima pamatyti serverio snifferyje. Tiesą sakant, į kiekvieną užklausą yra du atsakymai, iš kurių tik vieną galima pamatyti nešiojamojo kompiuterio uostyklėje. Ir ping vis tiek neveikia.

Kadangi vienas iš dviejų paketų yra perteklinis, aš pasakiau branduoliui nereaguoti į icmp atgalinius siuntimus:

tsee-diees: ~# echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

Ir pingai pradėjo praeiti! Šiuo metu aš vis dar pasitikėjau suklastotu MAC adresu, kad galėčiau pasiekti serverį. Kadangi idėja buvo gauti paketus, keliaujančius į abi puses iš neregistruoto vartotojo, nustojau klastoti MAC adresus. Tuo pat metu tunelis toliau veikė, o tai gana maloniai nustebino.

Buvo nustatytas paketų srautas ir atėjo laikas „internetui“ veikti.
Reikėjo atlikti kai kuriuos IP pakeitimus
maršruto parinkimas nešiojamajame kompiuteryje. Kelias per
universiteto belaidis maršrutizatorius turėjo būti pakeistas serverio tunelio adresu (šiuo atveju 192.168.3.1). Vis dar turi būti kelias į serverį, kad pats tunelis veiktų (ICMP tunelio paketams taip pat reikia kelio, kuriuo reikia sekti).
Gavau gerų rezultatų:

marktwain:~# maršrutas pridėti 194.204.48.52 gw 10.0.0.111 # per belaidį maršruto parinktuvą
marktwain:~# maršrutas pagal nutylėjimą
marktwain:~# maršrutas pridėti numatytąjį gw 192.168.3.1 # visa kita per tunelį.

Ir kadangi esu protingas, maniau, kad gali būti nesutapimas
į serverį ir iš jo išsiųstų paketų skaičius. Aš pradėjau ping
fone norėdami stebėti situaciją:.

marktwain: ~# ping 194.204.48.52 -i 0,2
PING 194.204.48.52 (194.204.48.52) 56 (84) baitų duomenų.

Žinoma, atsakymų nebuvo, nes tai nebuvo „tunelio pingai“, o atsakymai iš branduolio buvo
išjungė.

Kadangi mano serveris jau buvo apmokytas
dalintis interneto ryšiu tarp kelių kompiuterių, serveryje tereikėjo pridėti dvi taisykles
FORWARD grandinė iptables, kad priimtų paketus iš ir į tun0. Kai reguliariai tikrinau esamas taisykles („iptables -vL FORWARD“), ryšys staiga nutrūko. Aš vėl prisijungiau ir ištyriau šią problemą,
bet netrukus ryšys vėl nutrūko. Tikrai nustebau – kodėl ryšys toks nestabilus?
Pagalvojęs supratau, kad kiekvieną kartą serveris siųsdavo didelį ICMP atsakymą
(juk tik ping antraštė buvo 1400+), ji buvo atmesta
pati įranga. Kadangi tunelis buvo fizinis
IP lygiu TCP natūraliai bandė siųsti paketus dar kartą, bet dydis vis tiek buvo toks pat, ir jie vis tiek buvo išmesti. Taigi aš pakeičiau tunelio MTU į 300 (in
apskritai atsitiktinai)

marktwain: ~ # ifconfig tun0 mtu 300
tsee-diees: ~ # ifconfig tun0 mtu 300

Ir visa sistema veikė.

6. Išvada.

Dabar padarykite tai patys.

Paslėpti kanalai yra vienas iš veiksmų nuslėpimo ar atakų vykdymo būdų, kuris naudojamas slaptam, neteisėtam ar neteisėtam informacijos perdavimui. Paslėptų kanalų pagalba informacija gali būti nutekinta arba, atvirkščiai, informacija įvedama į organizaciją. Paslėptą kanalą internete galima palyginti su slaptu portfelyje esančiu skyriumi, kuriame užpuolikas gali bandyti paslėpti slaptus dokumentus, kad galėtų juos kontrabanda pernešti pro apsaugos įstaigos įėjimą. Internete užpuolikai gali naudoti paslėptus kanalus, kad perduotų slaptą medžiagą, likdami nepastebėti – šiuo atveju tinklo saugumo mechanizmai veikia kaip saugumo vartai. Lygiai taip pat, kaip šnipas gali paslėpti ginklą tame pačiame slaptame skyriuje, kad paslėptų jį nuo saugumo ir prasiskverbti Kartu su juo į objektą, internete, užpuolikai gali naudoti paslėptus kanalus, kad slapta perduotų kibernetinius ginklus, pavyzdžiui, norėdami atsisiųsti kenkėjišką programą iš išorinio serverio į organizacijos privataus tinklo mazgą.

Slaptų kanalų internete supratimas

Slapti kanalai internete gali būti pagrįsti netradiciniu pažįstamų interneto protokolų naudojimu. Atskiro kanalo galiniai taškai – užkrėstas kompiuteris ir užpuolikų komandų centras – turi naudoti specialią programinę įrangą, galinčią atpažinti ir apdoroti tokius netradicinius metodus, skirtus atakuoti ar slėpti veiksmus. Tokią programinę įrangą gali įdiegti pats vartotojas arba kenkėjiška programa, arba užpuolikai, naudodami nuotolinio administravimo įrankius (RAT). Slapti interneto kanalai skiriasi nuo šifruotų tunelių. Informacija per juos gali būti perduodama nešifruota (dažnai taip nutinka), tačiau patys šie kanalai yra paslėpti nuo pašalinių asmenų. Šiuo atveju nereikia naudoti šifravimo ar kriptografinių raktų, tačiau kartais slaptuose kanaluose vis tiek naudojami įvairūs duomenų šifravimo ar užmaskavimo būdai.

Pažvelkime į du pavyzdžius. Pirmasis metodas yra slaptas informacijos perkėlimas po vieną simbolį į interneto protokolo (IP) paketo antraštės identifikatoriaus (ID) lauką. Įprastuose šios technikos diegimuose simbolių ASCII kodai padauginami iš 256, kad būtų sukurtos 16 bitų reikšmės, kurios pakeičiamos identifikatoriaus lauke. Norint perduoti ICANN akronimą, reikėtų perduoti 5 IP paketus su šiomis identifikatoriaus lauko reikšmėmis:

Plastikinis maišelis Dešimtainė ASCII reikšmė IP paketo ID (x256)
1 71 („aš“) 18176
2 67 („C“) 17152
3 65 („A“) 16640
4 78 („N“) 19968
5 78 („N“) 19968

Priimantis kompiuteris iššifruoja IP paketo ID lauko reikšmę, gautą reikšmę padalydamas iš 256. Tokių reikšmių perdavimas nekelia jokių įtarimų, o kadangi IP protokolas leidžia perduoti pasikartojančius paketus, tokia tikimybė aptinkamas srautas yra mažas. Lėtas greitis kompensuojamas slapta transmisija.

Antrasis slaptojo kanalo kūrimo būdas apima protokolo naudingosios apkrovos, ty techninės informacijos, perduodamos pasirinkto protokolo rėmuose, naudojimą. Tokiu atveju duomenys pridedami prie ECHO užklausų ir atsakymų – tai paslaugų pranešimai, kurie naudojami Interneto valdymo pranešimų protokole arba ICMP. ECHO pranešimai naudojami bendroje tarnyboje ping. Tinklo administratoriai dažnai naudoja ping, kad patikrintų, ar nuotolinis pagrindinis kompiuteris pasiekiamas, todėl ICMP ECHO paketų srautas paprastai leidžiamas naudojant tinklo saugos įrankius, pvz., užkardas.

Jei norite sužinoti daugiau apie šiuos metodus, peržiūrėkite šiuos straipsnius: Slapti kanalai, klausimai ir atsakymai ir Slapti kanalai per ICMP (PDF, 740 KB).

Toliau. DNS slaptieji kanalai

Domenų vardų sistemos (DNS) protokolas turi daugybę savybių, kurios leidžia patogiai naudoti slaptus kanalus. DNS srautas leidžiamas per ugniasienes abiem kryptimis. DNS naudojimo pavojai kuriant slaptus kanalus dažnai nepastebimi arba neįvertinami, todėl organizacijos ar interneto paslaugų teikėjai ne visada tikrina DNS srautą, ar nėra atakų požymių. Kartais DNS srautas nuteka į platesnį internetą, kad būtų galima nustatyti vardus prieš atliekant autorizavimo ar vartotojo autentifikavimo funkcijas, todėl slaptieji DNS kanalai gali būti naudojami apeiti tokius prieigos valdiklius.

Kitame įraše apžvelgsime, kaip DNS slaptieji kanalai gali būti naudojami duomenims išgauti, apeiti prieigos kontrolę arba atsisiųsti kenkėjiškas programas.