Memasang & menjalankan w3af di openSuse

Halo selamat siang menuju sore di hari yang mendung ini. Untuk mengisi kekosongan dan mengusir rasa kantuk, mari kita isi blog ini dengan sesuatu yang bermanfaat, yakni memasang dan menjalankan aplikasi bernama w3af di OpenSuse 42.2.

w3af gui

w3af


Apa itu w3af? Menurut situs resminya, w3af adalah alat untuk mengaudit aplikasi web. Ya intinya mencari kebocoran yang mungkin terjadi dalam sebuah aplikasi web. Begini penjelasan lengkapnya, yang diambil dari situs resminya, w3af.org:

w3af is a Web Application Attack and Audit Framework. The project’s goal is to create a framework to help you secure your web applications by finding and exploiting all web application vulnerabilities.

Alat ini secara default tidak tersedia di OpenSuse. Ya namanya juga distro bukan untuk heking-hekingan. Jadi untuk dapat menjalankan aplikasinya, kita harus mengunduhnya secara manual. Dari dokumentasinya, cara mengunduhnya adalah dengan melakukan kloning repositori w3af dari github.


$ git clone --depth 1 https://github.com/andresriancho/w3af.git
$ cd w3af
$ ./w3af_gui (atau ./w3af_console kalau mau dijalankan di terminal)

Gampang kan?
Sayangnya tidak seperti itu, kawan. Karena ternyata di OpenSuse, ada banyak librari yang harus dipasang dulu. Nanti akan ada error seperti ini


./w3af_console 
Your python installation needs the following modules to run w3af:

    pyclamd github git.util pybloomfilter esmre phply nltk chardet tblib pdfminer concurrent.futures OpenSSL ndg lxml scapy.config guess_language cluster msgpack ntlm Halberd darts.lib.utils jinja2 vulndb markdown psutil termcolor mitmproxy ruamel.ordereddict Flask tldextract


After installing any missing operating system packages, use pip to install the remaining modules:
    sudo pip-2.7 install pyClamd==0.3.15 PyGithub==1.21.0 GitPython==0.3.2.RC1 pybloomfiltermmap==0.3.14 esmre==0.3.1 phply==0.9.1 nltk==3.0.1 chardet==2.1.1 tblib==0.2.0 pdfminer==20140328 futures==2.1.5 pyOpenSSL==0.15.1 ndg-httpsclient==0.3.3 lxml==3.4.4 scapy-real==2.2.0-dev guess-language==0.2 cluster==1.1.1b3 msgpack-python==0.4.4 python-ntlm==1.0.1 halberd==0.2.4 darts.util.lru==0.5 Jinja2==2.7.3 vulndb==0.0.19 markdown==2.6.1 psutil==2.2.1 termcolor==1.1.0 mitmproxy==0.13 ruamel.ordereddict==0.4.8 Flask==0.10.1 tldextract==1.7.2

A script with these commands has been created for you at /tmp/w3af_dependency_install.sh

Wow ternyata banyak juga. Agar sistem python kita tidak dikotori dengan librari aneh-aneh, mending dibuat lingkungan virtualnya alias virtualenv. Mari buat dulu


$ virtualenv env
$ source env/bin/activate
(env)
$ 

Kalau sudah ada tulisan (env) artinya kita sudah masuk di lingkungan virtual python. Mari kita pasang dependensi librari yang segambreng itu.


(env)
$ pip install pyClamd==0.3.15 PyGithub==1.21.0 GitPython==0.3.2.RC1 pybloomfiltermmap==0.3.14 esmre==0.3.1 phply==0.9.1 nltk==3.0.1 chardet==2.1.1 tblib==0.2.0 pdfminer==20140328 futures==2.1.5 pyOpenSSL==0.15.1 ndg-httpsclient==0.3.3 lxml==3.4.4 scapy-real==2.2.0-dev guess-language==0.2 cluster==1.1.1b3 msgpack-python==0.4.4 python-ntlm==1.0.1 halberd==0.2.4 darts.util.lru==0.5 Jinja2==2.7.3 vulndb==0.0.19 markdown==2.6.1 psutil==2.2.1 termcolor==1.1.0 mitmproxy==0.13 ruamel.ordereddict==0.4.8 Flask==0.10.1 tldextract==1.7.2

Kalau tidak ada halangan harusnya berhasil. Tapi di saya ada masalah, yakni saat memasang librari mitmproxy yang membutuhkan library Pillow. Sementara saat install Pillow selalu error. Untuk mengatasinya, pasang librari jpeg di sistem utama kita. Artinya pasang pakai zypper.


$ sudo zypper install libjpeg8

Tapi kok masih error? Nah di sini masalahnya. Meski semua librarinya sudah terpasang (saya pasang libjpeg8, libjpeg8-devel, libjpeg-turbo, dan libjpeg62), si w3af masih juga belum bisa dipakai. Dari hasil googling, ternyata kita harus buat berkas shortcut untuk libjpeg.so.

$ sudo ln -s /usr/lib/libjpeg.so.8 /usr/lib/libjpeg.so

Sudah selesai? Belum, pemirsa. Si w3af masih butuh librari libffi-devel, padahal di laptop sudah terpasang. Lalu apa bisa diakali? Tentu saja bisa. Buka berkas w3af/core/controllers/dependency_check/platforms/suse.py dan ganti librari libffi-devel dengan libffi-devel-gcc5, karena itu nama yang ada di OpenSuse.

CORE_SYSTEM_PACKAGES = ['python-pip', 'python-devel', 'sqlite3-devel',
                             'git', 'libxml2-devel', 'libxslt-devel',
                            'python-webkitgtk', 'libffi-devel-gcc5'] 

Jika sudah disimpan, harusnya kita sudah bisa menggunakan w3af_console.

Tapi masa sudah 2017 masih pakai terminal. Karena itu jalankan ./w3af_gui dan… tak jalan. Padahal semua dependensi sudah dipasang. Dari hasil googling ternyata kita harus membuat tautan berkas punya python, mengingat kita menjalankan python di virtualenv. Jadi, modifikasi langkah di sini jadi begini:

$ ln -s /usr/lib64/python2.7/site-packages/glib/ glib
$ ln -s /usr/lib64/python2.7/site-packages/gobject/ gobject
$ ln -s /usr/lib64/python2.7/site-packages/gtk-2.0* gtk-2.0
$ ln -s /usr/lib64/python2.7/site-packages/pygtk.pth pygtk.pth
$ ln -s /usr/lib64/python2.7/site-packages/cairo cairo
$ ln -s /usr/lib64/python2.7/site-packages/webkit/ webkit
$ ln -s /usr/lib64/python2.7/site-packages/pygtk.pth pygtk.pth
$ ln -s /usr/lib64/python2.7/site-packages/gtksourceview2.so gtksourceview2.so

Jika sudah dilakukan, insya Allah aplikasinya bisa dibuka. Selamat!

3 Thoughts.

  1. Saya make OpenSuSE Leap 42.2 belum bisa install si w3af ini. Musti bilangnya pyasn1 yaml. Padahal pas saya jalankan: sudo pip install pyasn1==0.1.9 PyYAML==3.12
    Apa karena python sudah pake versi 3 ya?

Ada komentar?

%d bloggers like this: