Módszerek lehallgatási httphttps forgalom

Amennyire én tudom, a kurzus egy jól ismert és egyszerű áramkör forgalmi lehallgatás böngésző (módosítások és adatgyűjtés). Vezetési bár népszerű, de amely kizárólag a bizonyos böngészők.

Módszerek lehallgatási httphttps forgalom

Így például, használják az IE rendszert WinInet lehallgatás funkciókat. Itt, az úton is van legalább két változata logika - a lehallgatás, az időzítés InternetReadFile (Ex), és az ortodox elfogás InternetStatusCallback visszahívások és minden támogató funkciókat.

A második megközelítés bizonyosan építészetileg sikeresebb, mint az összes műveletet IE is előfordulhat aszinkron, és nincs lag. Azaz, a telepítés után a lehallgatások, WinInet- és aszinkron, amint megfogant a fejlesztők a Microsoft. A szempontból a kódot, ez a megközelítés sokkal bonyolultabb, mint az első (a fenti adatvédelmi vonatkozik zeus és klónok, mint a Citadella és más salak).

Ami a többi böngésző - ez nem annyira átlátszó itt. NSS használják, hogy elkapjam funkciók (Network Security Services) króm és fraer Fox és konekretnee - PR_ReadPR_Write funkciókat.

A Fayer Fox exportálják őket nspr4.dllnss3.dll (DLL verziójától függ), krómozott mutatókat funkciókat vesznek a táblázatot, amely a leggyakrabban keresett az aláírást. Az Operában nem értem, hogy mit és hogyan, mint a visszatérés gemoroyno, a motor most folyamatosan változik, és vkusnoty mint PDB sem nem. Bár ez lehet kiindulni, hogy az Opera Next, épül a Chromium is lehet skomprometirovanna valamint a króm (nss3 keresési funkciók). Ennek eredményeként, van egy stabil lehallgatás, talán csak az IE (idején elolvastam a cikket azt mondják, hogy a kódot írt erre a célra, nem fagy, és a szamár stabil).

Aláírás-alapú módszer nem tekinthető a priori stabil, mivel e két fogalom összeegyeztethetetlen. Holnap lesz egy új változata a böngésző, ami meg van írva egy másik kódot, hozzá egy módszert, hogy az osztály, valami valahol mozog, és az aláírás kerül leütött. Minél több a króm, amelyek vckore elhagyni NSS. Fayer Fox nemrég is aktívan vette fel a korszerűsítés a régi kódot, amely lehet látni szabad szemmel cheydzhloga. A funkciók tesztelése és ellenőrzése bizonyítványok nss jelent már visszautasította helyett ez a része egy vadonatúj mozilla :: PKIX (sok már kikapta nishtyaki dobogó CODESA kikapcsolásához érvényesítési funkciók). Azonban, talán a kilátás vázolt fel, túl pesszimista, és a jelenlegi kód működni fog egy 200 éves.

A komplexitás ezek a módszerek tűnik számomra, hogy a nem az egyetemesség, hogy nyomon kell követni a frissítés böngészők, hegyek interception, amelyek készek megvédeni másfajta tolóerő egyetértés, hogy fenn kell tartani több kód ágak, teljesítő „egyszerű” cél -, hogy beavatkozzon a felhasználói sslhttp forgalmat.

Ez csak így tűnik számomra, a horogra kapcsolat explicit azt mondja: „mi, akkor ez”. Több bespalevno lenne huknut NtDeviceIoControlFile. A Hook monitor ha IoControlCode fog IOCTL_AFD_CONNECT, majd könyörtelenül folt InputBuffer. Ez AFD_CONNECT_INFO szerkezetét és benne minden, amire szükség van egy sikeres átirányítás znatizmenyat kapcsolatot. Végrehajtásának részleteit fogja hagyni a lelkiismerete a kísérletezők.

Az egyik csak megjegyezni, hogy a szerkezet a NT5 és NT6 + más. De ezen a ponton, akkor lehet fogni bármilyen kísérlet a csatlakozás folyamatát, amelyben találjuk magunkat.

A Connect érteni. Amennyiben elküldeni? A nyilvánvaló válasz úgy tűnik, hogy „a lokalhost”. A lokalhoste fogjuk emelni a http szerver razrulivaniya kérések és válaszok böngészőt. http által https leadott csak az SSL réteget, különben az összes ugyanazt mondják. http http és Afrikában. Ez a pont visszatarthat nem köznapisága annak végrehajtását, de valójában vagyunk arról az elmélet, hehe.

Minden más kérdése technika. Mi lehet vagy módosítja a lekérdezés (helyettesítési adatokat POST), és a válasz, összegyűjtése egy ideiglenes puffer választ, mi érdekli a kérelmet. Minden úgy tűnik, átlátható, egyszerű. By the way, egy nagy http értelmező kell libevent. Ez használ a saját céljaira nginx, ez egy kompakt, áramvonalas és stabil.

Mondjuk, ez az egész már végre. Ebből kiindulva a pillanatban, hogy elkapjam a forgalom a http nem bonyolult. Az egyetlen „nehéz” feladat itt csak elemzés szabálytalan kontentta mint chanked kódolás és gzipa. De ideális esetben mind a lelkiismeret http értelmező és a csatlakoztatott zlib. Így több technikailag kihívást, mint az egyik, hogy a használt Zeus elemzés választ - lekérdezéseket FF, de sokkal stabilabb és helyes, hiszen a böngésző továbbra is kommunikálni a http szerver, és nem kényszeríti őt, hogy helyettesítő választ, és nem kényszeríti a böngésző tiltani gzip, zavaró saját fejlécek valós időben.

Ez a megközelítés lehetővé teszi, hogy teljes mértékben kihasználni a http, például paypelling, vebsoket, tömörítés, átlátható ellenőrzési használat http proxy.

HTTPS. Itt kezdődik néhány probléma. De minden megoldódott. Tekintsük a részleteket. Nem valószínű, hogy megzavart, ahogy az SSL működik, hogy miért van szükség egy érvényes tanúsítványt, és miért nem sikerült beavatkozni a böngésző, ha a tanúsítvány nem. De nem rendelkezik érvényes igazolással domain, így másképp csinálni.

Megközelíteni az első. folt tanúsítvány érvényesítése. dibilny módszer sikeresen ajánlott aktív zare- ő neprimenyaemost. A lényeg csapódik le, hogy annak érdekében, hogy hozzon létre egy kapcsolatot egy saját maga által aláírt böngésző lokalhost sertiftkatom de forgalomba csapdák belül CryptoAPI belül böngészők (leggyakrabban nem exportált függvények belső ellenőrzések böngésző), hogy megteremtse a látszatot, hogy sertifkat normális. Ezen kívül van egy csomó mászik mellékhatások:

1 - minden területen hirtelen elkezd juzat azonos tanúsítványt. Azaz, ha megy a Google, ahol sertifkat kiadott egy „szuper Co Ltd”. Ha megy a Microsoft, és ott vannak mind egyformák „szuper Co Ltd”.

Normális emberek azonnal gyanús, hogy valami baj van. A célközönség van, persze, nem idióták.

2 - Az instabilitás eljárás fukntsii tanúsítványok ellenőrzése fejlesztők böngészők (IE kivételével) nem rohan kell jelölni exportálni. Így egy csomó aranyér, mint mi Funke változtatnak signaturki változás, a paraméterek száma is folyamatosan változik (normál esetén króm)

Hogy biztosítsuk, hogy minden rendben van? Nyilvánvaló, hogy ne érintse meg a sertifkaty vagy nem úgy, hogy senki sem fogja látni a különbséget a valós és a hamis. Meg kell generálni egy igazolást a menet minden egyes domain, teljesen megkettőzése az összes rekordot a tanúsítvány az új adathalász web sertifkate. Azaz a rendszer a következő:

1 - elkapni egy kapcsolatot egy távoli szerver böngésző

2 - átirányítani lokalhost, kezdve ott halad egy új példányt a TCP szerver, amelynek egy példányát kötődik a fogadó, ahol a böngésző eredetileg

3 - A szerver példány van kapcsolatban várja a böngésző. Miután a böngésző prikonnektilsya, nem kezdünk SSL és megy a fogadó, ahol a böngésző eredetileg volt. Az út lesz a Google.

4 - inicializálása után az SSL kapcsolat fiókkal, megkapjuk tőle sertifkat, feldolgozni az összes mezőt belőle.

5 - Készítse el sertifkat alapján minden, ami kitépi ezt tserta. mezők elég lesz soaping Eye CN, E, OU, stb alapvető mezőket X509

6 - átalakítja a TCP szerver például az SSL szerver, először csak handsnake generált sertifkata.

Ennek eredményeként, van egy dinamikus generáció tsertov minden tartományhoz. Eredmény generációs tárolhatjuk helyi cache, természetesen. Így nem tehetünk úgy, hogy sertifkaty az a fajta, hogy szükség van (összetétel). A böngésző nem esküszöm, hogy tsert saját készítésű, szükséges, hogy úgy, hogy nem volt saját készítésű 🙂

Azaz, el kell kezdenünk, hogy létrehoz néhány kezdeti tsert, amelyek jogot, hogy aláírja sertifkaty (CertStrToName, CertCreateSelfSignCertificate), amivel a megfelelő zászlókat létrehozásakor a tanúsítványt:

Ezután add hozzá a megbízható storadzh ablakok tsertov (CertAddCertificateContextT oStore). Ezután társítását a generált magánkulcs (CryptGenKey / CryptAcq uireCertificatePrivateKey). Mindent!

Most agloritm húzódik, hogy a domain mi sertifkat generál, és kiírja a Root.

Böngésző algoritmus azt mutatja, hogy egy igazi cert, minden úgy működik, ahogy kellene, a forgalom elfogtak. Sőt, nem lehet generálni sertifkat újra, csak újra aláírja az egyik, hogy jön ugyanabból a google.

A böngésző lát tsert kezd a lazításra a lánc kérdés, megbotlik a bizalom, amely szerepel a kiadó sertifkatov, győződjön meg arról, hogy sertifkat érvényes. Profit.

Mi történik a szervezetben?

1 - egy interception teljesen dokumentált, és nem megy el Funke Ntdll.

2 - tekintet nélkül a böngésző platform (3264), és különösen a végrehajtását mechanizmusok tsertov csekkek és más szar:

3 - munka minden OS lehető legkíméletesebb módon;

4 - plnaya láthatatlanná munkát a felhasználó számára (minden gyorsan dolgozik, bár függ http parser), minden sertifkaty vannak, mint ahogy kellene.

Köszönjük a figyelmet!