Passzív hálózati szkennelés (kézzel készített), linuxsiem
- Hol van a térkép, Billy? ... Szükségünk van egy térképre!
A hálózati térkép nélkülözhetetlen attribútuma minden legkevesebb. Ha a hálózat belső ellenőrzését végzi, és az ügyfél kártyát adott - tudod, nagyon szerencsés vagy! De mi van, ha nincs kártya?

Mit tennél, ha sötét, zárt szobában lennél? Természetesen hallgatnák az összes olyan hangot, amely eljut, hogy megértse, hol vagy, és mi van.
Ugyanezt kell tenni egy pentesternél, aki fizikai hozzáférést kapott a hálózathoz. Ha van egy feladata észrevétlen maradni, és az idő megengedi, akkor figyelj a hálózatra ... egy óra, kettő, egy nap ... csak hallgasd. A passzív akciók segítségével nehéz lesz észlelni. Természetesen nem kaphat teljes körű hálózati térképet passzív szkenneléssel, de könnyű megtalálni a szegmensben hasznos információkat.
Mit tanulhat az Ethernet interfész meghallgatásával?
Lássuk, milyen keretek vannak a link rétegben (az OSI modell 2. szintje):

A passzív hálózati meghallgatáshoz a legegyszerűbb módja a Wireshark felvétele és a sugárzott képkockák kiválasztása. De nem keresünk egyszerű módokat :)) ... írjuk fel saját segédprogramunkat a hálózaton lévő eszközök passzív érzékelésére.
A türelmetlen, azonnal tegye be a fpas.c forráskódot
Azok számára, akik többet akarnak megérteni, leírom a program főbb funkcióit és szerkezetét. Kezdjük ...
Az Ethernet keret struktúrája a fejlécfájlban található
Most lépjen a fenti szintre, és fontolja meg az ARP-csomag szerkezetét. Nehéz megmondani, hogy az ARP protokoll milyen szinten működik. Egyes szakértők tulajdonítják a második szintre, bár tény, az ARP-csomagok kapszulázott Ethernet keretek, valamint utalni kell a 3. OSI / ISO szabványoknak. De a szabványok nem vitatják ...
Milyen csomagok érdekesek számunkra:
Általánosságban elmondható, hogy:
"Ha valaki sugárzott, akkor ez a" valaki "jelen van a hálózaton!"

Az anonim hallgatáshoz megfelelően konfigurálni kell a hálózati felületet (letiltani az ARP szolgáltatást, és blokkolni az összes kimenő forgalmat).
Anonim maradni, csak hallgatni kell. Nem küldhetők csomagok!
1. A válaszok blokkolása a kapcsolat rétegében (ARP szolgáltatás):
ahol az eth0 a meghallgatásra konfigurált hálózati interfész
2. A kimenő és tranzitforgalom blokkolása iptables használatával:
F: Minden szabály visszaállítása (öblítés).
X: Szabályok láncok törlése.
P: Állítsa be a bejövő, kimenő és tranzitforgalom alapértelmezett szabályait (például DROP, REJECT vagy ACCEPT).
3. A hálózati interfész inicializálása:
Az összes keret elfogásához a hálózati interfészt olvashatatlan módon kell lefordítani. Ez az ioctl függvény használatával történik. set_promiscuous_mode függvény beolvassa az aktuális interfész konfigurációs kitölti lNetwork_Device szerkezetét és meghatározza a lobogó vegyes üzemmódban IFF_PROMISC (ha szükséges elindítani a hálózati kártya), vagy elveti azt (ha célba szippantás):
Az ARP-csomagok állandó ciklusban fognak fogadni, amelynek kimenete megnyomja a CTRL + C kombinációt. Annak érdekében, hogy a magyarázatokat ne bonyolítsuk fel a komplex munka logikájával, bemutatom a csomagok fogadásának egyszerűsített sémáját (a CTRL + C feldolgozás az alábbiakban olvasható):
Vegye figyelembe az ARP csomag és típusának keresését.

Hasonlóképpen a helyzet az ARP-csomag típusának meghatározásával történik. A puffer típusa [puffer + 20] [puffer + 21] rögzíti a csomag típusát (ARP_REQUEST = 0x0001 vagy ARP_REPLAY = 0x0002).
A gyakorlatban az erősen betöltött vállalati hálózatokban az ARP-kérelmek intenzitása másodpercenként több tíz egységet képes elérni. És többnyire az ismétlés. A túlzott áramlási intenzitás kiküszöböléséhez hozzáadtam egy speciális "-u" (egyedi) kulcsot a segédprogramhoz, amely lehetővé teszi a kettős csomagok kiszűrését.
A csomagok fogadása és feldolgozása folyamatos üzemmódban történik. Amikor megnyomja a CTRL + C billentyűkombinációt, a SIGINT esemény bekerül a fő folyamatba, és feldolgozni kell. Az eseménykezelő (a break_mode függvény) a terminate_signal jelzőt SET_ON-ra állítja. A fő hurokban ez a zászló be van jelölve, és ha be van állítva, akkor a program befejeződik.
Építsd meg a programot és a tesztet
A forrásfájlt a főkönyvtárba mentjük és fordítjuk (úgy gondoljuk, hogy a gcc fordító már telepítve van a rendszeren):
A kimeneten megkapjuk a fpas futtatható fájlt.
A programot a root alatt futtatjuk, mert a felületet olvashatatlan módon lefordítjuk, szükségünk van felettesfelhasználói jogokra. Először fpas paramétereket futtathat:
A program tanúsítványt ad ki:

-i Az interfész neve (szükséges).
-u Egyedi gazdagépek keresése.
-r Az ARP csomagszámláló megjelenítése.
Most hallgassunk néhány hálózati interfészt (ne felejtsük el megadni a szükséges -i opciót az interfész nevével):


És a következő cikkben elmondom neked, hogyan kell végrehajtani az ICMP-flood támadást (természetesen kézzel készített :)).