Wapiti - memeriksa kerentanan situs sendiri

Wapiti - memeriksa kerentanan situs sendiri
Terakhir Artikel kita bicara tentang Nemesida WAF Gratis - alat gratis untuk melindungi situs web dan API dari serangan peretas, dan kali ini kami memutuskan untuk meninjau pemindai kerentanan yang populer Rusa besar.

Memindai situs web untuk mencari kerentanan adalah tindakan yang diperlukan, yang, ditambah dengan analisis kode sumber, memungkinkan Anda menilai tingkat keamanannya terhadap ancaman penyusupan. Anda dapat memindai sumber daya web menggunakan alat khusus.

Nikto, W3af (ditulis dengan Python 2.7, yang tidak lagi didukung) atau Arachni (tidak lagi didukung sejak Februari) adalah solusi paling populer yang dihadirkan di segmen gratis. Tentu saja ada yang lain, misalnya Wapiti, yang kami putuskan untuk fokus.

Wapiti bekerja dengan jenis kerentanan berikut:

  • perluasan file (lokal dan jarak jauh, fopen, readfile);
  • suntikan (injeksi PHP/JSP/ASP/SQL dan injeksi XPath);
  • XSS (Cross Site Scripting) (reflektif dan persisten);
  • deteksi dan eksekusi perintah (eval(), system(), passru());
  • Suntikan CRLF (pemisahan respons HTTP, fiksasi sesi);
  • Penyematan XXE (entitas eksternal XML);
  • SSRF (Pemalsuan Permintaan Sisi Server);
  • penggunaan file yang diketahui berpotensi berbahaya (berkat database Nikto);
  • konfigurasi .htaccess lemah yang dapat dilewati;
  • adanya file cadangan yang mengungkapkan informasi rahasia (pengungkapan kode sumber);
  • kejutan;
  • buka pengalihan;
  • metode HTTP non-standar yang dapat diselesaikan (PUT).

ВозмоТности:

  • Dukungan proksi HTTP, HTTPS dan SOCKS5;
  • otentikasi menggunakan beberapa metode: Basic, Digest, Kerberos atau NTLM;
  • kemampuan untuk membatasi area pemindaian (domain, folder, halaman, URL);
  • penghapusan otomatis salah satu parameter di URL;
  • beberapa tindakan pencegahan terhadap loop pemindaian tanpa akhir (contoh: ifor, membatasi nilai suatu parameter);
  • kemampuan untuk menetapkan prioritas untuk memeriksa URL (meskipun URL tersebut tidak berada dalam area pemindaian);
  • kemampuan untuk mengecualikan beberapa URL dari pemindaian dan serangan (misalnya: logout URL);
  • impor cookie (dapatkan menggunakan alat wapiti-getcookie);
  • kemampuan untuk mengaktifkan/menonaktifkan verifikasi sertifikat SSL;
  • kemampuan untuk mengekstrak URL dari JavaScript (penerjemah JS yang sangat sederhana);
  • interaksi dengan HTML5;
  • beberapa opsi untuk mengelola perilaku dan batasan perayap;
  • mengatur waktu maksimum untuk proses pemindaian;
  • menambahkan beberapa header HTTP khusus atau menyiapkan Agen-Pengguna khusus.

Fitur tambahan:

  • membuat laporan kerentanan dalam berbagai format (HTML, XML, JSON, TXT);
  • menjeda dan melanjutkan pemindaian atau serangan (mekanisme sesi menggunakan database SQLite3);
  • lampu latar di terminal untuk menyoroti kerentanan;
  • tingkat penebangan yang berbeda-beda;
  • Cara cepat dan mudah untuk mengaktifkan/menonaktifkan modul serangan.

Instalasi

Versi Wapiti saat ini dapat diinstal dengan 2 cara:

  • unduh sumber dari resminya situs dan jalankan skrip instalasi, setelah sebelumnya menginstal Python3;
  • menggunakan perintah pip3 install wapiti3.

Setelah ini, Wapiti akan siap berangkat.

Bekerja dengan alat tersebut

Untuk mendemonstrasikan kerja Wapiti, kami akan menggunakan stand yang disiapkan khusus sites.vulns.pentestit.ru (sumber daya internal), yang berisi berbagai kerentanan (Injeksi, XSS, LFI/RFI) dan kekurangan aplikasi web lainnya.

Informasi ini disediakan untuk tujuan informasi saja. Jangan melanggar hukum!

Perintah dasar untuk meluncurkan pemindai:

# wapiti -u <target> <options>

Pada saat yang sama, ada bantuan yang cukup mendetail dengan sejumlah besar opsi peluncuran, misalnya:

--cakupan - area aplikasi
Jika Anda menentukan parameter cakupan bersama dengan URL perayapan, Anda dapat menyesuaikan area perayapan situs dengan menentukan satu halaman dan semua halaman yang dapat ditemukan di situs.

-s ΠΈ -x β€” opsi untuk menambah atau menghapus URL tertentu. Opsi ini berguna ketika Anda perlu menambah atau menghapus URL tertentu selama proses perayapan.

--melewati β€” parameter yang ditentukan dengan kunci ini akan dipindai, tetapi tidak akan diserang. Berguna jika ada parameter berbahaya yang sebaiknya dikecualikan selama pemindaian.

--verifikasi-ssl β€” mengaktifkan atau menonaktifkan verifikasi sertifikat.
Pemindai Wapiti bersifat modular. Namun, untuk meluncurkan modul tertentu, termasuk modul yang terhubung secara otomatis saat pemindai berjalan, Anda perlu menggunakan tombol -m dan mencantumkan modul yang Anda perlukan, dipisahkan dengan koma. Jika kuncinya tidak digunakan, maka semua modul akan bekerja secara default. Dalam versi paling sederhana akan terlihat seperti ini:

# wapiti -u http://sites.vulns.pentestit.ru/ -m sql,xss,xxe

Contoh penggunaan ini berarti kita hanya akan menggunakan modul SQL, XSS dan XXE saat memindai target. Selain itu, Anda dapat memfilter pengoperasian modul tergantung pada metode yang diinginkan. Misalnya -m β€œxss: dapatkan, blindsql: posting, xxe: posting”. Dalam hal ini, modul xss akan berlaku untuk permintaan yang dikirim menggunakan metode GET, dan modul blidsql - untuk permintaan POST, dll. Omong-omong, jika beberapa modul yang disertakan dalam daftar tidak diperlukan selama pemindaian atau memerlukan waktu yang sangat lama, maka dengan menekan kombinasi Ctrl+C Anda dapat melewati penggunaan modul saat ini dengan memilih item yang sesuai di menu interaktif.

Wapiti mendukung meneruskan permintaan melalui proxy menggunakan kunci -p dan otentikasi di situs target melalui parameter -a. Anda juga dapat menentukan jenis autentikasi: Dasar, intisari, Kerberos ΠΈ NTLM. Dua yang terakhir mungkin memerlukan instalasi modul tambahan. Selain itu, Anda dapat memasukkan header apa pun ke dalam permintaan (termasuk header arbitrer User-Agent) dan banyak lagi.

Untuk menggunakan otentikasi Anda dapat menggunakan alat ini wapiti-getcookie. Dengan bantuannya kami membentuk kue, yang akan digunakan Wapiti saat memindai. Pembentukan kue selesai dengan perintah:

# wapiti-getcookie -u http://sites.vulns.pentestit.ru/login.php -c cookie.json

Saat bekerja secara interaktif, kami menjawab pertanyaan dan menunjukkan informasi yang diperlukan seperti login, kata sandi, dll.:

Wapiti - memeriksa kerentanan situs sendiri

Outputnya adalah file dalam format JSON. Pilihan lainnya adalah menambahkan semua informasi yang diperlukan melalui parameter -d:

# wapiti-getcookie - http://sites.vulns.pentestit.ru/login.php -c cookie.json -d "username=admin&password=admin&enter=submit"

Hasilnya akan serupa:

Wapiti - memeriksa kerentanan situs sendiri

Saat mempertimbangkan fungsi utama pemindai, permintaan terakhir untuk menguji aplikasi web dalam kasus kami adalah:

# wapiti --level 1 -u http://sites.vulns.pentestit.ru/ -f html -o /tmp/vulns.html -m all --color -с cookie.json --scope folder --flush-session -A 'Pentestit Scans' -p http://proxy.office.pentestit.ru:3128

dimana antara parameter lainnya:

-f ΠΈ -o β€” format dan jalur untuk menyimpan laporan;

-m β€” menghubungkan semua modul tidak disarankan, karena akan mempengaruhi waktu pengujian dan ukuran laporan;

--warna β€” menyoroti kerentanan yang ditemukan tergantung pada kekritisannya menurut Wapiti sendiri;

-c - menggunakan file dengan kue, dihasilkan menggunakan wapiti-getcookie;

--cakupan β€” memilih target untuk diserang. Memilih sebuah opsi map Setiap URL akan dirayapi dan diserang, dimulai dari URL dasar. URL dasar harus memiliki garis miring (tanpa nama file);

--sesi siram β€” memungkinkan pemindaian berulang, sehingga hasil sebelumnya tidak akan diperhitungkan;

-A - memiliki User-Agent;

-p β€” alamat server proxy, jika perlu.

Sedikit tentang laporannya

Hasil pemindaian disajikan dalam bentuk laporan detail seluruh kerentanan yang ditemukan dalam format halaman HTML, dalam bentuk yang jelas dan mudah dibaca. Laporan tersebut akan menunjukkan kategori dan jumlah kerentanan yang ditemukan, deskripsinya, permintaan, perintahnya keriting dan tip tentang cara menutupnya. Untuk kemudahan navigasi, tautan akan ditambahkan ke nama kategori, dengan mengklik di mana Anda dapat membukanya:

Wapiti - memeriksa kerentanan situs sendiri

Kerugian signifikan dari laporan ini adalah tidak adanya peta aplikasi web, yang tanpanya tidak akan jelas apakah semua alamat dan parameter telah dianalisis. Ada juga kemungkinan hasil positif palsu. Dalam kasus kami, laporan tersebut mencakup β€œfile cadangan” dan β€œfile yang berpotensi berbahaya”. Jumlahnya tidak sesuai dengan kenyataan, karena tidak ada file seperti itu di server:

Wapiti - memeriksa kerentanan situs sendiri

Mungkin modul yang tidak berfungsi dengan benar akan diperbaiki seiring waktu. Kelemahan lain dari laporan ini adalah kurangnya pewarnaan pada kerentanan yang ditemukan (tergantung pada kekritisannya), atau setidaknya membaginya ke dalam beberapa kategori. Satu-satunya cara agar kita secara tidak langsung dapat memahami pentingnya kerentanan yang ditemukan adalah dengan menggunakan parameter tersebut --warna selama pemindaian, dan kemudian kerentanan yang ditemukan akan diwarnai dengan warna berbeda:

Wapiti - memeriksa kerentanan situs sendiri

Namun laporan itu sendiri tidak memberikan warna seperti itu.

Kerentanan

SQL

Pemindai mengatasi sebagian pencarian SQLi. Saat mencari kerentanan SQL di halaman yang tidak memerlukan otentikasi, tidak ada masalah yang muncul:

Wapiti - memeriksa kerentanan situs sendiri

Tidak mungkin menemukan kerentanan pada halaman yang hanya dapat diakses setelah otentikasi, bahkan menggunakan valid kue, karena kemungkinan besar setelah otentikasi berhasil, sesi mereka akan "keluar" dan kue akan menjadi tidak valid. Jika fungsi pembatalan otorisasi diimplementasikan sebagai skrip terpisah yang bertanggung jawab untuk memproses prosedur ini, maka dimungkinkan untuk mengecualikannya sepenuhnya melalui parameter -x, dan dengan demikian mencegahnya terpicu. Jika tidak, pemrosesannya tidak dapat dikesampingkan. Ini bukan masalah dengan modul tertentu, tetapi dengan alat secara keseluruhan, tetapi karena nuansa ini, beberapa suntikan di area sumber daya tertutup tidak dapat dideteksi.

XSS

Pemindai mengatasi tugas ini dengan sempurna dan menemukan semua kerentanan yang telah disiapkan:

Wapiti - memeriksa kerentanan situs sendiri

LFI/RFI

Pemindai menemukan semua kerentanan mendasar:

Wapiti - memeriksa kerentanan situs sendiri

Secara umum, meskipun ada kesalahan positif dan kerentanan yang hilang, Wapiti, sebagai alat gratis, menunjukkan hasil kinerja yang cukup baik. Bagaimanapun, perlu diketahui bahwa pemindai ini cukup kuat, fleksibel, dan multifungsi, dan yang terpenting, gratis, sehingga berhak digunakan dalam membantu administrator dan pengembang memperoleh informasi dasar tentang status keamanan suatu web. aplikasi.

Tetap sehat dan terlindungi!

Sumber: www.habr.com

Tambah komentar