Dsniff

A Unix/Linux szerverek üzemeltetése wikiből
A lap korábbi változatát látod, amilyen Durfi (vitalap | szerkesztései) 2010. november 29., 00:25-kor történt szerkesztése után volt.

A dsniff több hálózatbiztonsági program gyűjteménye. Támogatott platformjai az openBSD, Solaris(sparc) és Linux(Redhat), de készült belőle Windows és MacOS X port is (én Ubuntun és BackTracken teszteltem). Segítségével hiányosságokat kereshetünk a hálózatban, de akár támadásra is felhasználhatjuk. Ahhoz, hogy tudjunk védekezni egy támadás ellen ismernünk kell annak természetét. Ebben a cikkben ezért támadásokat ismertetek, majd azok kivédéséhez adok útmutatást.


Tartalomjegyzék

1 A sniffingről

A sniffing (magyarul talán szaglászás?) tág értelemben a hálózati forgalom figyelését, böngészését jelenti. Ahhoz, hogy ezzel visszaéljünk, olyan adatokhoz kell jutnunk, amelyeket nem nekünk szántak. Erre lehet példa egy OPN wlan hálózat, ahol titkosítás nélkül repkednek az adatok, de lehet akár egy UTP kábel is amire egy saját hardverünket rákötve lehallgatjuk a rajta átfolyó adatokat. A dsniff csomag a sniffelés több részfeladatát is megkönnyíti számunkra.

Ezek szerint három csoportra oszthatók a benne található programok:

  • 1. A hálózat monitorozását megkönnyítő eszközök:
    • dsniff, filesnarf, mailsnarf, msgsnarf, urlsnarf, webspy
  • 2. Az olyan adatok megszerzésében segédkeznek, amihez nem szabadna hozzáférnünk:
    • arpspoof, dnsspoof, macof
  • 3. Aktív "monkey-in-the-middle" támadást megvalósító programok:
    • sshmitm, webmitm

A továbbiakban ezek részletesebb bemutatása következik.

2 A kényes adatok elérését segítő eszközök

2.1 arpspoof

Amennyiben egy switchel kapcsolt hálózatban tartózkodunk, alapesetben nem férünk hozzá mások adataihoz, hiszen a switch lényege éppen az, hogy az adatokat csak a címzett felé továbbítsa. Ennek kijátszására alkalmazhatjuk az arpspoofing programot. Ezzel lényegében elhitetjük egy áldozatgéppel (akivel egy switchen lógunk), hogy mi vagyunk a switch és a switchel, hogy mi vagyunk az áldozat. Erre az ARP táblák megmérgezését használjuk. Mindkét félnek folyamatosan olyan ARP üzeneteket küldünk, melyben közöljük velük, hogy a másik fél a mi MAC címünkön található. Így amikor az adatkapcsolati rétegben címezik a csomagjaikat, azokat felénk fogják irányítani. Fontos, hogy a hozzánk így a csalás miatt beérkező csomagokat továbbítsuk is. Ezt megtehetjük, ha bekapcsoljuk a csomagok automatikus továbbítását:

echo 1 > /proc/sys/net/ipv4/ip_forward

Példa:

  • switch: 192.168.100.1
  • áldozat: 192.168.100.112
$ arpspoof -i wlan0 -t 192.168.100.1 192.168.100.112

ezt futni hagyjuk és ezt is elindítjuk

$ arpspoof -i wlan0 -t 192.168.100.114 192.168.100.1

Miután végeztünk a szaglászással lelőhetjük a futó arpspoof-okat (SIGINT), ilyenkor még néhány ARP csomagot küldenek amivel visszaállítják az eredeti rendet.

2.2 dnsspoof

Segítségével a helyi hálózatunkben felmerülő DNS kérésekre adhatunk nemkívánt válaszokat. Egy lehetséges alkalmazása, hogy a saját IP-címünkkel válaszolunk minden kérésre, és utána transzparensen proxyzunk az áldozatnak, mintha mi lennénk minden szerver amit el szeretne érni. Ezzel az arpspoofinghoz hasonlóan azt érjük el, hogy minden forgalom rajtunk áramlik át, így egy switchelt hálózatban is eljut hozzánk mások privát forgalma.

Egy másik felhasználási módja, hogy nem a saját címünkre, hanem harmadik személyhez irányítjuk az áldozatot. Így remek adathalász oldalakat hozhatunk létre (igaz akár erre a saját IP-nk is jó lenne, ha fellövünk egy webservert). Ugyanakkor ha például sok helyi hálózaton tudunk dnsspoofolni, akkor akár reklámként átirányíthatunk népszerű honlapokat a mienkre. Felhasználásának csak a képzelőerőnk szab határt (:

Használatához hozzunk létre, egy fájlt ami az átirányításokat tartalmazza. Ennek formátuma a /etc/hosts -hoz hasonló, ugyanakkor használhatunk wildcardokat is.

spoofthis.hosts:

1.2.3.4 google.com
1.2.3.4 yahoo.comformátuma a /etc/hosts -hoz hasonló, ugyanakkor használhatunk wildcardokat is.
1.2.3.4 bing.com

ha elmentettük kiadhatjuk a parancsot:

$ dnsspoof -i wlan0 -f spoofthis.hosts

Ezután minden sikeres DNS válaszadásról értesülünk:

192.168.100.114.55824 > 192.168.100.1.53:  18852+ A? google.com

2.3 macof

Ahhoz, hogy egy switch az adatkapcsolati szinten csomagokat tudjon továbbítani a címzettek felé, tárolnia kell a hozzá kapcsolódó helyi hálózaton tartózkodó kliensek IP és MAC címét. Ezt használja ki a macof program, amivel eláraszthatjuk a switchet random MAC-IP párosokkal. Ennek hatására bizonyos switchek egyszerű hub működésre váltanak vissza, vagyis minden csomagot broadcast küldenek, így minden forgalomhoz hozzáférhetünk.

$ macof -i wlan0

Különböző kapcsolókkal megadhatjuk neki, hogy milyen IP és MAC címeket milyen portokon küldjön. Ha ezeket elhagyjuk, akkor random generál nekik értékeket.

(Nekem egy perc alatt kb 120000 csomagot sikerült szétküldeni a wlan hálózaton. Ezzel a sebességgel 10 perc nem elérni kiváltani a várt hatást. DoSolni azonban remekül lehet a programmal. Azt tapasztaltam, hogy a szórás ideje alatt reménytelen bármilyen adatot átvinni a routeremen.)


3 A lehallgatott adatokat bányászó programok

Ha valahogy (például az előző módszerek valamelyikével) hozzáférést szereztünk adatcsomagokhoz, felmerülhet bennünk az igény, hogy azokban érdekes információk után kutassunk. Jó kérdés, hogy egy adott helyzetben mi számít érdekesnek. Általában jelszavak, emailek, fájlok, üzenetek után kutatunk a hálózati forgalomban.

Az ilyen adatok megkeresése egy nagyobb adathalmazban kézzel nagyon nehéz és hosszadalmas lehet. Ezt hivatottak megkönnyíteni az alábbi programok. Mindegyiknél lehetőségünk van az aktuális forgalomban vagy elmentettben keresni. Forgalom mentéséhez használható például a tcpdump, vagy az aircrack-ng airodump-ng programja.

Mindegyikre igaz, hogy szűrhetünk velük bizonyos kritériumok alapján. Például kiválogathatjuk az 1.2.3.4 felé tartó csomagokat, vagy a forrásportot stb. Erre a tcpdump-ból ismerős szintaxist alkalmazhatjuk. Erről bővebben: man pcap-filter 7 vagy itt. Az ilyen kifejezések, minden esetben a programnak az utolsó argumentumként adhatóak meg.

3.1 dsniff

Amiről a programcsomag is a nevét kapta. Ezzel a programmal a számunkra valely interfészen (pld wlan0, eth0 stb.) elérhető hálózati adatcsomagokat pásztázhatjuk JELSZAVAK után. Erőssége, hogy rengeteg protokollt felismer: FTP, Telnet, SMTP, HTTP, POP, poppass, NNTP, IMAP, SNMP, LDAP, Rlogin, RIP, OSPF, PPTP MS-CHAP, NFS, VRRP, YP/NIS, SOCKS, X11, CVS, IRC, AIM, ICQ, Napster, PostgreSQL, Meeting Maker, Citrix ICA, Symantec pcAnywhere, NAI Sniffer, Microsoft SMB, Oracle SQL*Net, Sybase, Microsoft SQL.

dsniff [-c] [-d] [-m] [-n] [-i interface | -p pcapfile] [-s snaplen] [-f services] [-t trigger[,...]]]  [-r|-w savefile] [expression]
  • -c: Asszimetrikus routing esetén (pld arpspoofing csak az áldozat felé) is megprobálja összeilleszteni a csomagokat és keresni bennük
  • -d: Debug mód bekapcsolása
  • -m: Automatikus protokolfelismerés
  • -n: Ezzel a kapcsolóval letilthatjuk az IP-címek hosztnevekké feloldását. Gyorsíthat a működésen.
  • -i: Interfész amin hallgatózzon
  • -p: Korábban mentett forgalmat tartalmazó pcap fájl
  • -s: A TCP csomagok első ennyi bájtját vizsgálja
  • -t: Triggerfeltételt adhatunk meg. Bővebben lásd: man dsniff
  • -r: Eredmények fájlból kiiratása
  • -w: Eredmények fájlba mentése
  • [expression]: A korábban említett pcap-filter kifejezés a további szűréshez.

Egyszerű példa: Kapjunk el minden jelszót a wlan0 interészen!

$ dsniff -i wlan0
$ dsniff: listening on wlan0
-----------------
11/26/10 11:09:53 tcp durfi.chello.hu.37411 -> xxyyzz.ezit.hu.21 (ftp)
USER felhasznalonevem
PASS atitkosjelszavam

Dolgozzunk egy már mentett pcap fájlból és ne bajlódjunk az IP-k feloldásával! Az eredményeket mentsük a jelszavak fájlba:

dsniff -n -p file.pcap -w jelszavak

A mentéshez a dsniff csomag minden tagja a Berkeley DB formátumot alkalmazza. Az így mentett fájlokat megnyithatjuk például a db4.X-util csomaggal, vagy magával a dsniffel (-r kapcsoló).

3.2 filesnarf

3.3 mailsnarf

3.4 msgsnarf

3.5 urlsnarf

3.6 webspy

4 Aktív "monkey-in-the-middle" támadást megvalósító programok

4.1 sshmitm

4.2 webmitm

A lap nem teljes!

Személyes eszközök