6.8. „Próbálgatásos technikák – Nyers Erő támadás” (Probabilistic Techniques - Brute force attack)

6.8.1. Leírás

Ezzel a fajta támadással a behatoló megpróbálja úgy megkerülni a biztonsági mechanizmusokat, hogy nagyon kevés információval rendelkezik róluk. A következő módok valamelyikét használhatja:

könyvtár támadás (mutációkkal vagy anélkül) (dictionary attack (with or without mutations))

nyers-erő támadás (megadott csoportú karakterekkel, például: alfanumerikus, különleges, „case-sensitive”) (brute-force attack )

A támadó megpróbálja elérni a célját. A megfelelő paraméterek (egy bizonyos módszer, a próbálkozások száma, a rendszer hatékonysága) figyelembe vételével, amik levezénylik a támadást a behatoló megjósolhatja, hogy meddig kell tartania a támadásnak. A nem nyers-erő támadások (non brute-force attacks), amikben mindenféle karakter szerepel, nem kecsegtetnek biztos sikerrel.

6.8.2. Példák

A Nyers-erő támadásokat leginkább arra használják, hogy megtippeljék a jelszavakat és megkerüljék a hozzáférési ellenőrzéseket. Mindemellett sok olyan eszköz van, amik ezt a technológiát használják, hogy a támadó részéről hasznosnak vélt információkat gyűjtsenek ki bizonyos web szolgáltatások katalógusaiból. Nagyon sok esetben a támadások célpontjai a különböző formátumokban lévő adatok (GET/POST) és a felhasználói Session-ID-k.

6.8.2.1. Példa 1

Az első forgatókönyvben, ahol az a Nyers-erő célja, hogy megtudjuk a jelszót kódolatlan formában. Úgy tűnik, hogy a John the Ripper egy nagyon hasznos eszköz. A 10 legjobb jelszótörő különböző módszerekkel, többek között Nyers-erővel dolgoznak. Ezek megtalálható az alábbi oldalon:

http://sectools.org/crackers.html

A web szolgáltatások tesztelésére a következő eszközök állnak rendelkezésre:

A dirb-höz fejlettebb eszközök is tartoznak. A segítségével képesek lehetünk:

  1. cooky-kat beállítani

  2. bármilyen HTTP fejlécet hozzáadni

  3. PROXY-t használni

  4. megtalált objektumokat mutálni

  5. http(s) kapcsolatokat tesztelni

  6. katalógusokban és fájlokban keresni meghatározott könyvtárak és sémák segítségével

  7. és még ezeknél sokkal többre is

A legegyszerűbben elvégezhető teszt a következő:

   rezos@dojo ~/d/owasp_tools/dirb $ ./dirb http://testsite.test/
   -----------------
   DIRB v1.9
   By The Dark Raver
   -----------------
   START_TIME: Mon Jul  9 23:13:16 2007
   URL_BASE: http://testsite.test/
   WORDLIST_FILES: wordlists/common.txt
   SERVER_BANNER: lighttpd/1.4.15
   NOT_EXISTANT_CODE: 404 [NOT FOUND]
   (Location: '' - Size: 345)
   
   -----------------

   Generating Wordlist...
   Generated Words: 839
   
   ---- Scanning URL: http://testsite.test/ ----
   FOUND: http://testsite.test/phpmyadmin/
          (***) DIRECTORY (*)
               

Az adatkivitelnél a támadó értesül róla, hogy a phpmyadmin/ katalógus megtalálásra került. A támadó, aki tudja ezt, most már végrehajthatja a támadást ezen az alkalmazáson. A dirb sémái között – többek között – van olyan könyvtár, ami érvénytelen httpd konfigurációkról tartalmaz információt. Ez a könyvtár fölfedezi az ilyesfajta gyengeségeket.

Az egyik a fő probléma a dirb-höz hasonló eszközökkel a felismerés, hogyha a szervertől kapott válasz mindig megbízható. A fejlettebb szerver konfigurációk segítségével (mint amilyen a mod_rewrite) az automatizált eszközök nem tudják eldönteni, hogy a szerver válasza hibát jelez vagy pedig az eszköz megtalálta a támadó által keresett fájlt.

A CIRT.DK által írt WebRoot.pl alkalmazás beépített szerver mechanizmusokat tartalmaz arra, hogy kielemezze a szerver válaszait és a támadó által megadott frázis alapján megmondja, hogy a szerveren van-e azt tartalmazó fájl.

Például:

   Np.
   ./WebRoot.pl -noupdate -host testsite.test -port 80 -verbose -match "test" -url "/private/<BRUTE>" -incremental lowercase -minimum 1 -maximum 1

   oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00
   o          Webserver Bruteforcing 1.8          o
   0  ************* !!! WARNING !!! ************  0
   0  ******* FOR PENETRATION USE ONLY *********  0
   0  ******************************************  0
   o       (c)2007 by Dennis Rand - CIRT.DK       o
   oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00
   [X] Checking for updates                - NO CHECK
   [X] Checking for False Positive Scan    - OK
   [X] Using Incremental                   - OK
   [X] Starting Scan                       - OK
      GET /private/b HTTP/1.1
      GET /private/z HTTP/1.1
   [X] Scan complete                       - OK
   [X] Total attempts                      - 26
   [X] Sucessfull attempts                 - 1
   oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00
               

A WebRoot.pl egy fájlt talált, a "/private/b"-t, a testsite.test-en, ami tartalmazza a „test” frázist.

Egy másik példa arra, hogy megvizsgáljuk a változó értékeinek tartományát:

./WebRoot.pl -noupdate -host testsite.test -port 80 -verbose -diff "Error" -url "/index.php?id=<BRUTE>" -incremental integer -minimum 1 -maximum 1

6.8.2.2. Védelmi eszközök

„Php Nyers-erő-támadás érzékelő” (Php-Brute-Force-Attack Detector)

http://yehg.net/lab/pr0js/files.php/php_brute_force_detect.zip

Felismeri, hogy a web szervert vizsgálja-e valamilyen Nyer-erőt használó eszköz, mint amilyen a Wfuzz vagy az OWASP DirBuster, illetve vizsgálják-e sebezhetőség érzékelők, mint a Nessus, a  Nikto, az Acunetix, stb. Ez segít gyorsan azonosítani a próbálkozó rossz fiúkat, akik ki akarják használni a biztonsági pajzs réseit.

http://yehg.net/lab/pr0js/tools/php-brute-force-detector-readme.pdf