Wapiti - Pemindai Kerentanan Web
Wapiti adalah pemindai kerentanan web yang ditulis dengan Python.
http://wapiti-scanner.github.io/
Persyaratan
Agar dapat berfungsi dengan benar, Wapiti memerlukan Python 3.10 atau 3.11
Semua dependensi modul Python akan diinstal secara otomatis jika Anda menggunakan skrip setup.py atau pip install wapiti3
Lihat INSTALL.md untuk rincian lebih lanjut tentang instalasi.
Menjalankan Wapiti di Windows dapat dilakukan melalui penggunaan WSL.
Bagaimana cara kerjanya
Wapiti berfungsi sebagai pemindai kerentanan "kotak hitam", artinya ia tidak akan mempelajari kode sumber aplikasi web tetapi akan bekerja seperti fuzzer, memindai halaman aplikasi web yang diterapkan, mengekstraksi tautan dan formulir, serta menyerang skrip, mengirim muatan dan mencari pesan kesalahan, string khusus, atau perilaku abnormal.
Fitur umum
- Menghasilkan laporan kerentanan dalam berbagai format (HTML, XML, JSON, TXT, CSV).
- Dapat menangguhkan dan melanjutkan pemindaian atau serangan (mekanisme sesi menggunakan database sqlite3).
- Dapat memberi Anda warna di terminal untuk menyorot kerentanan.
- Tingkat verbositas yang berbeda.
- Cara cepat dan mudah untuk mengaktifkan/menonaktifkan modul serangan.
- Menambahkan payload semudah menambahkan baris ke file teks.
- Jumlah tugas bersamaan yang dapat dikonfigurasi untuk melakukan permintaan HTTP.
Fitur penjelajahan
- Mendukung proxy HTTP, HTTPS, dan SOCKS5.
- Otentikasi HTTP pada target (Basic, Digest, NTLM)
- Otentikasi dengan mengisi formulir login.
- Kemampuan untuk membatasi ruang lingkup pemindaian (domain, folder, halaman, url).
- Penghapusan otomatis satu atau lebih parameter di URL.
- Berbagai perlindungan terhadap pemindaian loop tanpa akhir (misalnya, batas nilai suatu parameter).
- Kemungkinan untuk mengatur URL pertama yang akan dijelajahi (meskipun tidak dalam cakupan).
- Dapat mengecualikan beberapa URL pemindaian dan serangan (misalnya: URL logout).
- Impor cookie dari browser Chrome atau Firefox Anda atau gunakan alat wapiti-getcookie.
- Dapat mengaktifkan/menonaktifkan verifikasi sertifikat SSL.
- Ekstrak URL dari file Flash SWF.
- Cobalah untuk mengekstrak URL dari javascript (penerjemah JS yang sangat mendasar).
- Sadar HTML5 (memahami tag HTML terkini).
- Beberapa opsi untuk mengontrol perilaku dan batasan perayap.
- Melewatkan beberapa nama parameter selama serangan.
- Mengatur waktu maksimal untuk proses scan.
- Menambahkan beberapa header HTTP khusus atau mengatur Agen Pengguna khusus.
- Menggunakan browser tanpa kepala Firefox untuk perayapan
- Memuat kode python Anda sendiri untuk kasus otentikasi yang rumit (lihat opsi --form-script)
- Menambahkan URL khusus atau PATH untuk memperbarui database Wappalyzer
- Pindai REST API dengan file OpenAPI (swagger).
Serangan yang didukung
- Suntikan SQL (Berbasis kesalahan, berbasis boolean, berbasis waktu) dan Suntikan XPath
- Suntikan LDAP (Berbasis kesalahan dan berbasis boolean)
- Cross Site Scripting (XSS) tercermin dan permanen
- Deteksi pengungkapan file (termasuk lokal dan jarak jauh, memerlukan, fopen, readfile...)
- Deteksi Eksekusi Perintah (eval(), system(), passstru()...)
- Injeksi XXE (Xml eXternal Entity).
- Injeksi CRLF
- Cari file yang berpotensi berbahaya di server (terima kasih kepada Nikto db)
- Lewati konfigurasi htaccess yang lemah
- Mencari salinan (cadangan) skrip di server
- Kejutan kerang
- Pencacahan folder dan file (seperti DirBuster)
- Pemalsuan Permintaan Sisi Server (melalui penggunaan situs web Wapiti eksternal)
- Buka Pengalihan
- Deteksi metode HTTP yang tidak umum (seperti PUT)
- Penilai CSP Dasar
- Formulir login Brute Force (menggunakan daftar kamus)
- Memeriksa header keamanan HTTP
- Memeriksa tanda keamanan cookie (tanda aman dan httponly)
- Deteksi dasar Pemalsuan Permintaan Lintas Situs (CSRF).
- Sidik jari aplikasi web menggunakan database Wappalyzer, memberikan informasi CVE terkait
- Pencacahan modul CMS untuk Wordpress, Drupal, Joomla, SPIP, dll
- Deteksi pengambilalihan subdomain
- Deteksi Log4Shell (CVE-2021-44228).
- Deteksi Spring4Shell (CVE-2020-5398).
- Periksa pengalihan https
- Periksa kerentanan pengunggahan file
- Deteksi perangkat jaringan
- Suntikkan payload ke dalam badan JSON juga
Wapiti mendukung metode GET dan POST HTTP untuk serangan. Ini juga mendukung multipart dan dapat memasukkan payload ke dalam nama file (upload). Menampilkan peringatan ketika anomali ditemukan (misalnya 500 kesalahan dan batas waktu) Membuat perbedaan antara kerentanan XSS permanen dan yang tercermin.
Nama modul
Serangan yang disebutkan di atas terkait dengan nama modul berikut :
- backup (Mencari salinan skrip dan arsip di server web)
- brute_login_form (Formulir login Brute Force menggunakan daftar kamus)
- buster (modul seperti DirBuster)
- cms (Pindai untuk mendeteksi CMS dan versinya)
- cookieflags (Memeriksa flag Secure dan HttpOnly)
- crlf (injeksi CR-LF di header HTTP)
- csp (Deteksi kekurangan CSP atau konfigurasi CSP yang lemah)
- csrf (Mendeteksi formulir yang tidak dilindungi terhadap CSRF atau menggunakan token anti-CSRF yang lemah)
- exec (Eksekusi kode atau injeksi perintah)
- file (Traversal jalur, penyertaan file, dll)
- htaccess (Pembatasan htaccess yang salah dikonfigurasi)
- htp (Identifikasi teknologi web yang menggunakan database HashThePlanet)
- http_header (Periksa header keamanan HTTP)
- https_redirect (Periksa pengalihan https)
- ldap (Deteksi injeksi LDAP berbasis kesalahan dan berbasis boolean)
- log4shell (Mendeteksi situs web yang rentan terhadap CVE-2021-44228)
- metode (Cari metode HTTP yang tidak umum tersedia seperti PUT)
- network_device (Cari file umum untuk mendeteksi perangkat jaringan)
- nikto (Cari kerentanan yang diketahui dengan menguji keberadaan URL dan memeriksa tanggapan)
- permanentxss (Pindai ulang seluruh target setelah eksekusi modul xss untuk mencari muatan yang sebelumnya tercemar)
- pengalihan (Pengalihan Terbuka)
- shellshock (Uji serangan Shellshock, lihat Wikipedia)
- spring4shell (Mendeteksi situs web yang rentan terhadap CVE-2020-5398)
- sql (Deteksi injeksi SQL berbasis kesalahan dan boolean)
- ssl (Evaluasi keamanan konfigurasi sertifikat SSL/TLS, memerlukan sslscan)
- ssrf (Pemalsuan Permintaan Sisi Server)
- pengambilalihan (pengambilalihan subdomain)
- timesql (kerentanan injeksi SQL terdeteksi dengan metodologi berbasis waktu)
- unggah (Kerentanan unggah file)
- wapp (Bukan modul serangan, mengambil teknologi web dengan versi dan kategori yang digunakan pada target, temukan CVE yang sesuai)
- wp_enum (Menghitung plugin dan tema di situs web Wordpress)
- xss (modul injeksi XSS)
- xxe (Serangan Entitas Eksternal XML)
Nama modul dapat diberikan sebagai daftar yang dipisahkan koma menggunakan opsi "-m" atau "--module".
Cara mendapatkan hasil terbaik
Untuk menemukan lebih banyak kerentanan (karena beberapa serangan berbasis kesalahan), Anda dapat mengubah konfigurasi server web Anda.
Misalnya, Anda dapat menetapkan nilai berikut dalam konfigurasi PHP Anda:
mode_aman = Mati
display_errors = Aktif (disarankan)
magic_quotes_gpc = Mati
izinkan_url_fopen = Aktif
mysql.trace_mode = Aktif
Di mana mendapatkan bantuan
Di prompt, cukup ketik perintah berikut untuk mendapatkan penggunaan dasar:
wapiti-h
Anda juga dapat melihat halaman manual (wapiti.1 atau wapiti.1.html) untuk detail lebih lanjut tentang setiap opsi.
Kami juga memiliki wiki resmi yang lebih lengkap : https://github.com/wapiti-scanner/wapiti/wiki
Jika Anda memiliki pertanyaan lain, periksa dulu FAQ
Jika Anda menemukan bug, isi masalah: https://github.com/wapiti-scanner/wapiti/issues
Bagaimana membantu proyek Wapiti
Anda dapat:
- Dukung proyek ini dengan memberikan donasi ( http://sf.net/donate/index.php?group_id=168625 )
- Membuat atau meningkatkan modul serangan
- Membuat atau meningkatkan pembuat dan templat laporan
- Kirim perbaikan bug, tambalan...
- Tulis beberapa GUI
- Buat alat untuk mengonversi file PCAP ke file sesi Wapiti sqlite3
- Bicara tentang Wapiti di sekitar Anda
Perizinan
Wapiti dirilis di bawah GNU General Public License versi 2 (GPL). Kode sumber tersedia di Github.
Dibuat oleh Nicolas SURRIBAS.
Sponsor
Jam siber https://cyberwatch.fr/
Keamanan Untuk Semua Orang https://securityforeveryone.com/
Penafian
Wapiti adalah perangkat lunak keamanan siber. Ia melakukan penilaian keamanan pada target yang ditentukan, yang dapat menyebabkan kegagalan fungsi dan kerusakan pada target, serta potensi kehilangan data.
Penggunaan Wapiti untuk menyerang target tanpa izin terlebih dahulu dari pemiliknya adalah ilegal. Pengguna akhir bertanggung jawab untuk mematuhi semua hukum setempat yang berlaku.
Pengembang dan orang-orang yang terlibat dalam proyek Wapiti tidak bertanggung jawab dan tidak bertanggung jawab atas penyalahgunaan atau kerusakan apa pun yang disebabkan oleh program ini.