Audit website dengan w3af

Overview

w3af (Web Application Attack and Audit Framework) hampir mirip dengan metasploit, bedanya hanya pada objek yang dikerjakan. w3af fokus pada bagian aplikasi web, sedangkan metasploit lebih ke sistem operasi secara keseluruhan. w3af gratis dan opensource, terdiri dari beberapa bagian plugin untuk serangan yaitu mangle, grep, discovery, audit, evasion, dan bruteforce.

Persiapan

Untuk persiapan menggunakan w3af, banyak program berbasis python yang harus diinstal seperti python-soappy, python-pyopenssl, dll. Saya sendiri menginstallnya di Linux Mint 5.0 yang berbasis Ubuntu, sehingga sedikit tidak merepotkan (karena keluarga Debian yang memudahkan semua perkara instalasi dan dependensi paket). Panduan instalasi terdapat pada situs w3af yang berbasis sourceforge.

Ketika semuanya sudah terinstall, bisa segera dimulai:

$ ./w3af
w3af>>>

Gunakan perintah ‘help’ untuk melihat bantuan (wajib):

w3af>>> help
The following commands are available:
help You are here. help [command] prints more specific help.
http-settings Configure the URL opener.
misc-settings Configure w3af misc settings.
plugins Enable, disable and configure plugins.
profiles List and start scan profiles.
start Start site analysis.
exploit Exploit a vulnerability.
tools Enter the tools section.
target Set the target URL.
version Show the w3af version.
exit Exit w3af.
w3af>>>

w3af berbeda dengan console pada metasploit, saya sendiri pada awalnya bingung namun dengan sedikit pemahaman, akhirnya dapat dimengerti bahwa penggunaan console pada w3af adalah dengan mengetikan setiap list yang muncul pada menu help, untuk kembali ke menu awal tinggal mengetikkan ‘back’. Kita akan mencobanya langsung pada salah satu target.

Konfigurasi

w3af>>> target
w3af/target>>> help
The following commands are available:
help You are here. help [command|parameter] prints more specific help.
set Set a parameter value.
view List all configuration parameters and current values.
back Return to previous menu.
w3af/target>>> set target http://demo.testfire.net
w3af/target>>> view

Target sudah kita set, sekarang plugin untuk auditingnya:

w3af/target>>> back
w3af>>> plugins
w3af/plugins>>> help
The following commands are available:
help You are here. help [command] prints more specific help.
list List all available plugins.
bruteforce Enable and configure bruteforce plugins.
discovery Enable and configure discovery plugins.
output Enable and configure output plugins.
mangle Enable and configure mangle plugins.
audit Enable and configure audit plugins.
evasion Enable and configure evasion plugins.
grep Enable and configure grep plugins.
back Return to previous menu.
w3af/plugins>>>

w3af membutuhkan sedikitnya tiga buah plugin untuk di load, yaitu discovery, audit, dan output. Untuk melihat isi dari masing-masing plugin , jalankan ‘list’ diikuti pluginnya, misal ‘list audit’ maka akan menghasilkan semua isi dari plugin audit seperti xss, xsrf, sql injection, ldap injection, dll. Mengetikan nama plugin (misalkan audit) akan menghasilkan opsi mana yang telah kita set. Contohnya:

w3af/plugins>>> audit xss,sqli,xpath,remoteFileInclude,blindSqli
w3af/plugins>>>

atau bisa juga dengan..

w3af/plugins>>> audit all

Saya akan melakukan test SQL Injection pada sebuah webserver, website linkage dan crawling, memberi laporan secara realtime serta dalam laporan berbentuk html. Berikut langkah-langkahnya.

w3af/plugins>>> audit sqli
w3af/plugins>>> audit
Enabled audit plugins:
sqli
w3af/plugins>>> discovery webSpider,pykto,hmap
w3af/plugins>>> discovery
Enabled discovery plugins:
webSpider
hmap
pykto
w3af/plugins>>> output console,htmlFile
w3af/plugins>>> output
Enabled output plugins:
htmlFile
console
w3af/plugins>>> output config htmlFile
w3af/plugin/htmlFile>>> view
Parameter Value Description
========= ===== ===========
httpFileName output-http.txt File name where this plugin will write HTTP requests and responses
reportDebug False True if debug information will be appended to the report.
fileName report.html File name where this plugin will write to
w3af/plugin/htmlFile>>>

Saya telah melakukan konfigurasi yang sederhana untuk testing ke webserver menggunakan webSpider untuk crawling direktori dan link, lalu pykto untuk audit web (pykto adalah versi python dari nikto), dan hmap untuk host fingerprinting. Hasilnya ditulis pada file output-http.txt dan report.html.

w3af/plugin/htmlFile>>> back
w3af/plugins>>> back
w3af>>>start

silakan menunggu sampai proses auditing selesai.

w3af>>> start
Auto-enabling plugin: discovery.allowedMethods
Auto-enabling plugin: discovery.serverHeader
The Server header for this HTTP server is: squid/2.6.STABLE5
Server uses 503 instead of HTTP 404 error code.
pykto plugin is using “squid/2.6.STABLE5″ as the remote server type. This information was obtained by serverHeader plugin.
Error when requesting: http://demo.testfire.net/
Error: Too many retries when trying to get: http://demo.testfire.net/

http://demo.testfire.net/

pykto plugin found a vulnerability at URL: http://demo.testfire.net/modules.php . Vulnerability description: PHP Nuke module allows user names and passwords to be viewed. See http://www.frog-man.org/tutos/PHP-Nuke6.0-Members_List-Your_Account.txt for other SQL exploits in this module. The vulnerability was found in the request with id 2330.
pykto plugin found a vulnerability at URL: http://demo.testfire.net/bank/ . Vulnerability description: This might be interesting… The vulnerability was found in the request with id 3315.
Hmap web server fingerprint is starting, this may take a while.
hmap: Connection failed to demo.testfire.net:80
New URL found by pykto plugin: http://demo.testfire.net/modules.php
New URL found by pykto plugin: http://demo.testfire.net/bank/

selamat mencoba ^^

Port Forwarding: For Torrent

Ide menulis artikel ini muncul pas saya barusan install uTorrent, tapi tanda DHT-nya koq tanda seru,huehehhee.. Artinya, koneksi DHT di blok oleh firewall, lalu bagaimana biar koneksi torrent bisa berfungsi dengan baik, tanpa terhambat. Tentunya kita harus meneruskan semua paket yang dibutuhkan client ke server torrent, begitu pula sebaliknya. Karena saya yang megang server gateway, iseng-iseng lalu mencoba ngoprek firewall di server gateway, karena emang semua paket lewat situ. 
Oiya, berikut spesifikasi jaringannya:

iface_net = ppp0 (yang ke internet)
iface_lan = eth0 (yang ke LAN)

Logika saya, ketika terjadi koneksi dan ada paket dari luar (uTorrent.com), maka paket tersebut harus diteruskan ke IP client, dalam hal ini IP saya 192.168.10.5. Yang perlu diperhatikan adalah, kita menentukan apa saja yang akan terjadi ketika proses berjalan / koneksi terjadi.

1. Program uTorrent dari client akan melakukan koneksi ke uTorrent.com dan melewati server gateway.
2. Ketika koneksi terjadi, dari uTorrent.com akan mengirimkan paket reply ke server gateway.
3. Server gateway akan meneruskan paket tersebut kembali ke client.

Ok, sudah ada gambaran dari proses yang terjadi, sekarang tinggal bikin rulenya di iptables 🙂
(uTorrent saya secara default menggunakan port 22238 sebagai listening portnya)

[root@localhost ~]# /sbin/iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 22238 -j DNAT --to 192.168.10.5
[root@localhost ~]# /sbin/iptables -A FORWARD -i ppp0 -o eth0 -p tcp -d 192.168.10.5 --dport 22238 -j ACCEPT

Perhatikan rule pertama,

/sbin/iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 22238 -j DNAT --to 192.168.10.5

Yang berbunyi kira-kira begini: “Tambahkan satu aturan baru di kolom PREROUTING (-A PREROUTING) pada tabel nat (-t nat), paket tersebut masuk dari interface ppp0 (-i ppp0) berupa protokol tcp (-p tcp) dan menuju port 22238 (–dport 22238) jika ada paket seperti ini, teruskan paket tersebut ke IP 192.168.10.5 (-j DNAT –to 192.168.1.5).

Sehingga paket dari luar yang masuk lewat ppp0 akan diteruskan secara langsung menggunakan NAT ke IP 192.168.10.5

Lalu, rule berikutnya,

/sbin/iptables -A FORWARD -i ppp0 -o eth0 -p tcp -d 192.168.10.5 --dport 22238 -j ACCEPT

Yang berbunyi kira-kira seperti ini: “Tambahkan satu aturan baru di table FORWARD, paket tersebut berasal dari ppp0 (-i ppp0) dan akan keluar dari eth0 (-o eth0) berupa protokol tcp (-p tcp) menuju ke 192.168.10.5 port 22238 (–dport 22238), jika ada paket seperti ini terima saja (ACCEPT)

Rule ini akan meneruskan semua paket yang lewat pada port 22238 dari mau pun keluar. Jadi server gateway bertugas meneruskan port yang diminta client.

Kalau sudah diset seperti ini, silakan cek port forwarding Anda, apakah bekerja dengan baik pada uTorrent di uTorrent Port Checker
Sekian, semoga membantu para torrent mania yg kesulitan masalah forwarding port.

Snort | BASE | ADODB | Intrusion Detection System

Beberapa bulan yang lalu, saya sempat install Denyhosts, sebuah program di sistem Linux yang melakukan penolakan terhadap host-host yang dianggap melakukan intrusi ke sebuah sistem. Denyhosts khusus memonitor service SSH, dan mencatatnya dalam sebuah file hosts.deny apabila diketahui ada host dari luar yang gagal melakukan login pada service SSH.

Setelah berjalan sampai sekarang, sudah ada sekitar 10-15 host yang masuk dalam daftar host yang di tolak (hosts.deny). Saya berpikir, bahwa memang banyak intrusi dari luar ke dalam sistem, namun apakah hanya ke service SSH? Teringat akan IDS (Intrusion Detection System) yang sangat terkenal Snort, saya iseng-iseng menginstallnya beberapa hari yang lalu, dan baru sempat saya dokumentasikan sekarang 🙂

Snort yang akan saya install yang sudah terintegrasi secara web based karena saya juga mengikutsertakan program BASE (Basic Analysis and Security Engine) dan ADOdb sebagai tambahan. Dengan adanya BASE, maka akan ada tambahan dalam mengkonfigurasi web server.

Melihat Lalu Lintas Koneksi Di Network dengan NTOP

Pernah denger NTOP? Bagi yang belum pernah, NTOP adalah tool untuk melihat traffic di network dan menampilkannya untuk kita dalam bentuk yang luar biasa hebat. NTOP sendiri diklaim sebagai tool network probing open source paling handal, setidaknya menurut saya 🙂 . NTOP melakukan probing hampir sama dengan program top pada linux sehingga admin dapat melihat aktifitas network dengan mudahnya. Hebatnya lagi, tampilannya disajikan secara web based dan enak dilihat 🙂 .

Daripada penasaran, yuk kita liat bagaimana proses instalasinya…

(Instalasi dilakukan di distro Slackware)

######Tahap Pertama######

Download program Ntop disitusnya :

$ pwd
/home/t0m
$ wget http://optusnet.dl.sourceforge.net/sourceforge/ntop/ntop-3.3rc1.tgz

######Tahap Kedua######

Ekstrak file ntop :

(jadi root dulu)

# su
Password:
# tar xzvf ntop-3.3rc1.tgz -C /usr/src/

Dependensi Program NTOP :

Program RRDTool

NTOP membutuhkan program RRDTool untuk menampilkan dalam grafik, jadi kita musti download dulu program RRDTool.

# wget http://ftp.naist.jp/pub/Linux/linuxpackages/Slackware-11.0/Console/RRDtool/rrdtool-1.2.19-i486-2gds.tgz

Setelah itu, lakukan instalasi sebagai berikut:

# installpkg rrdtool-1.2.19-i486-2gds.tgz

Program LIBPCAP

Program LIBPCAP digunakan NTOP untuk mengcapture paket-paket data yang lewat di network.

# wget http://www.tcpdump.org/release/libpcap-0.9.5.tar.gz

Install LIBPCAP :

# tar xzvf libpcap-0.9.5.tar.gz -C /usr/src/
# cd /usr/src/libpcap-0.9.5
# ./configure && make && make install

Beres..tapi untuk mempercantik hasil dari keluaran NTOP, ada satu program optional lagi, namanya graphviz. Saya sih tidak mengharuskan, tapi program ini benar-benar menambah kehebatan si NTOP 🙂

Download graphviz :

# wget http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-2.12.tar.gz

Lakukan instalasi sebagai berikut :

# tar xzvf graphviz-2.12.tar.gz -C /usr/src/
# cd /usr/src/graphviz-2.12/
# ./configure && make && make install

Kalo ada error, berarti kebutuhan dependensi graphviz belum lengkap, silakan baca-baca kebutuhannya di http://www.graphviz.org/Download_source.php. Cara instalasinya sama dengan diatas.

######Tahap Ketiga#######

Instalasi program NTOP :

# cd /usr/src/ntop-3.3rc1/
# ./autogen.sh
# make
# make install

######Tahap Keempat######

Saya biasa membuat user khusus untuk service yang membutuhkan peran user seperti program NTOP dengan alasan keamanan, apabila terjadi hal-hal diluar dugaan pada program tersebut, user ntop-lah yang terkena akibatnya bukan satu sistem atau user lain.

Membuat user NTOP

# groupadd ntop
# useradd -g ntop -s /sbin/nologin -d /usr/local/var/ntop -c “#########” ntop

Menjalankan program NTOP:

Sebelumnya jalankan NTOP dengan perintah biasa, dan setting password untuk user admin. Setelah itu jalankan program NTOP sebagai service dengan perintah-perintah sebagai berikut :

# /usr/local/bin/ntop -u ntop -i [interface network yg mau dimonitor] -d -w [default port adalah 3000]

Silakan mengecek apakah program NTOP benar-benar berjalan :

# ps ax | grep ntop

2566 ? Ssl 27:00 /usr/local/bin/ntop -u ntop -i eth0 -d -w 3000
16563 pts/2 R+ 0:00 grep ntop
#

Yup, sukses berjalan. Sekarang kita bisa browse untuk melihatnya, silakan pergi ke browser kesayangan Anda dan arahkan ke IP Address tempat menginstall NTOP, misal http://192.168.10.1:3000

Semuanya sangat jelas terlihat mulai dari mana dan kemana saja klien kita berselancar 🙂

Sampai disini, NTOP sudah berjalan dengan lancar, dan agar dapat berjalan lagi ketika komputer di restart (baca: autostart), maka kita perlu meng-edit file rc.local :

# pico /etc/rc.d/rc.local

Masukkan baris berikut :

/usr/local/bin/ntop -u ntop -i eth0 -d -w 3000

Simpan filenya, dan booting komputer kalau tidak percaya 🙂

Selesai sudah tahap-tahap instalasi program NTOP.