Ana Sayfa » *nix » WAFP – Web Application Finger Printer

WAFP – Web Application Finger Printer


BerbatKötüİdare EderGüzelHarika (Henüz Puan Verilmedi. Oy kullanarak siz de katkı yapabilirsiniz.)
Loading...
Wafp, ile yazılmış, sqlite3 kullanan ve bir web sitesinden aldığı bilgileri kendi 'i ile karşılaştırarak  ilgili web uygulama hakkında bilgi veren ve sürüm numarasını tespit etmek üzere kullanılan bir araçtır. Penetrasyon testleri için kullanılabilecek olan wafp detayında belirttiğiniz web sitesinden aldığı veriyi bir db'ye yazar, sonrasında da elde edilen bu veriye ait checksum'ları kendi 'inde bulunanlarla eşleştirerek uygulama hakkında sürüm numarası gibi bilgileri saptar.  Bu şekilde hedef uygulamanın altyapısı hakkında bilgi edinilebilir.

Penetrasyon testerları için faydalı bir araç olan web application finger printer, ve shell scriptlerden oluştuğu için sisteme ayıca kurulmaya gerek bulunmamaktadır ve tüm linux dağıtımlarında ve gerekli düzenlemeleri yaptıktan sonra BSD'ler üzerinde de çalışabilir.  Yazının devamında kullanımı ile ilgili detaylı bilgi bulabilirsiniz.

http://mytty.org/wafp/ adresinden download edilebilen wafp'yi çalıştırabilmek için sisteminizde öncesinden aşağıdaki paketler yüklü olmalıdır.

  • >= 1.8
  • sqlite3 >= 3
  • sqlite3-ruby >= 1.2.4

İndirdiğiniz paketi açtığınız zaman dizin içerisindeki README ve HOWTO dosyalarında detaylı bilgiler bulunmaktadır en temel kullanım şekli ruby scriptin direk ./wafp.rb şeklinde çalıştırılmasıdır.

Not: Wafp'yi üzerinde çalıştırmak istiyorsanız ruby path'ini doğru şekilde belirtmeniz gerekir.

Scripti -h parametresi ile çalıştırırsanız aşağıdaki help ekranı görüntülenir.

# ./wafp.rb -h
USAGE: ./wafp.rb [Options] {URL}
--
 -p, --product STRING       a string which represents the name of the product to check for;
                            STRING can be something like: "wordpress"
 -v, --pversion STRING      a string which represents the versions of the product to check for;
                            STRING can be something like: "2.2.1" or "%.2" or "1.%".
 -P, --dump-products STRING this will dump all products for which fingerprints are available;
                            STRING can be something like: "%bb%" which will select all products
                            having bb|BB in their name.
 -s, --store STRING         write the fetched data to the database for later use;
                            STRING is used as an identifier.
 -f, --fetch                fetch only - do not fingerprint the app.
                            (mostly used in conjunction with -s)
 -l, --list STRING          list the stored data archives containing STRING.
                            STRING is optional in this case.
 -d, --dry STRING           perform the fingerprint on the stored data STRING instead of fetching it.
 -t, --threads INT          this is the count of threads to use. [8]
     --user-agent STRING    a STRING which holds the User-Agent headerfield contents.
     --outlines INT         number of results to print. [10]
     --timeout INT          connection timeout in seconds. [10]
     --retries INT          maximum retries per file to fetch. [3]
     --any                  this causes wafp to fetch all files known by fingerprints of all products.
     --low-mem              this causes wafp to NOT load the fingerprint database to the memory.
     --verbose              turns on verbose output.
     --debug                turns on debug output.
     --quiet                output off - besides the final results.
     --dbinfo               prints some database stats.
     --version              print WAFP version and exit.
 -h, --help                 print this help and exit.

EXAMPLES:
 ./wafp.rb -p 'wordpress' -v '2%' http://blog.example.com/
 ./wafp.rb -f -t 32 -s phpmy-save01 -p 'phpmyadmin' -v '1.1.%' https://user:[email protected]/phpmyadmin/
 ./wafp.rb -d phpmy-save01 -p 'phpmyadmin' -v '1.1.%'

Wafp'nin en temel kullanım şekli şöyledir:

./wafp.rb -p phpBB http://www.example.com/

Komutun çıktısı aşağıdakine benzer olacaktır:

wafp.rb --verbose -p phpmyadmin https://phpmyadmin.example.de
   VERBOSE: loading the fingerprint database to the ram...
   Collecting the files we need to fetch ...
   Fetching needed files (#432), calculating checksums and storing the results to the database:
   ............................................................................................
   VERBOSE: request for "/themes/darkblue_orange/img/b_info.png" produced "Connection refused - connect(2)" for 1 times - retrying...
   ............................................................................................
   Checking gathered/stored checksums (#432) against the selected product (phpmyadmin) versions (#87) checksums:
   .......................................................................................

    found the following matches (limited to 10):
   +-------------------------------------------------------------+
    phpmyadmin-2.11.9.1                	 296 / 299  (98.99%)
    phpmyadmin-2.11.9.2                	 295 / 299  (98.66%)
    phpmyadmin-2.11.9.4                	 295 / 299  (98.66%)
    phpmyadmin-2.11.8.1                	 295 / 299  (98.66%)
    phpmyadmin-2.11.9.5                	 295 / 299  (98.66%)
    phpmyadmin-2.11.8                  	 295 / 299  (98.66%)
    phpmyadmin-2.11.9.3                	 295 / 299  (98.66%)
    phpmyadmin-2.11.9                  	 295 / 299  (98.66%)
    phpmyadmin-2.11.4                  	 294 / 299  (98.33%)
    phpmyadmin-2.11.5.2                	 294 / 299  (98.33%)
   +-------------------------------------------------------------+
    WAFP 0.01-26c3  - - - - - - - - -  http://mytty.org/wafp/

   VERBOSE: Returncode stats:
   VERBOSE: Ret-Code	200	#302
   VERBOSE: Ret-Code	404	#130
   VERBOSE: deleting the temporary database entries for scan "472312620367191262036719_httpsphpmyadmin.example.de" ...

Ancak hedef sitenin altyapısı konusunda hiç bir fikriniz yoksa o halde -p parametresini iptal edebilirsiniz:

./wafp.rb http://www.example.com/

Son olarak, wafp'nin ana 'i utils/ isimli dizinde bulunan online_update.sh shell scripti sayesinde güncellenebilir.

Sahip olduğunuz db versiyonu için

./online_update.sh --show

Db'yi etmek içinse

./online_update.sh --

komutlarından yararlanabilirsiniz.

Visited 471 times, 1 visit(s) today
Kategoriler: *nix,Scripts,Security |

Bu yazılar da ilginizi çekebilir:


- FreeBSD Sistemlerde Kurulu Paketlerin Update Edilmesi
- Portaudit ile Kurulu Paketler için Zafiyet Takibi
- Arping – Link Layer (L2) Pinging
- Lynis ile Güvenlik Denetimi
- Yasat ile Sistem Denetimi

Yorumlar


  1. P@RS | (Ocak 29th, 2010 3:12 am)

    sağol bilgi için

    [Cevapla]

Trackbacks

Yorumda bulunun.