Kami terus berbicara tentang alat yang berguna untuk pentester. Dalam artikel baru, kami akan mempertimbangkan alat untuk menganalisis keamanan aplikasi web.
Rekan kami,
BeLove, telah melakukan
seleksi serupa sekitar tujuh tahun yang lalu. Sangat menarik untuk melihat alat mana yang telah mempertahankan dan memperkuat posisi mereka, dan yang telah jatuh ke latar belakang dan jarang digunakan sekarang.

Perhatikan bahwa Burp Suite juga berlaku di sini, tetapi akan ada publikasi terpisah tentang dia dan plugin yang bermanfaat.
Konten:
Mengumpulkan
Amass adalah alat Go untuk menemukan dan menghitung subdomain DNS dan memetakan jaringan eksternal. Amass adalah proyek OWASP yang dirancang untuk menunjukkan bagaimana organisasi di Internet terlihat seperti pengamat luar. Mengumpulkan menerima nama subdomain dengan berbagai cara, alat menggunakan enumerasi rekursif subdomain dan pencarian open source.
Untuk mendeteksi segmen jaringan yang saling berhubungan dan nomor sistem otonom, Amass menggunakan alamat IP yang diperoleh selama operasi. Semua informasi yang ditemukan digunakan untuk membangun peta jaringan.
Pro:
- Teknik pengumpulan informasi meliputi:
* DNS - enumerasi subdomain dalam kamus, subdomain bruteforce, enumerasi “pintar” menggunakan mutasi berdasarkan subdomain yang ditemukan, membalikkan kueri DNS, dan mencari server DNS di mana dimungkinkan untuk membuat permintaan transfer zona (AXFR);
* Cari di sumber terbuka - Tanya, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable, Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ThreatCrowd, VirusTotal, Yahoo;
* Cari database sertifikat TLS - Censys, CertDB, CertSpotter, Crtsh, Entrust;
* Menggunakan API mesin pencari - BinaryEdge, BufferOver, CIRCL, HackerTarget, PassiveTotal, Robtex, SecurityTrails, Shodan, Twitter, Payung, URLScan;
* Cari arsip web Internet: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback; - Integrasi dengan Maltego;
- Memberikan cakupan tugas terlengkap untuk menemukan subdomain DNS.
Cons:
- Lebih akurat dengan domain amass.net - domain ini akan mencoba mengakses setiap alamat IP dalam infrastruktur yang diidentifikasi dan mendapatkan nama domain dari kueri DNS terbalik dan sertifikat TLS. Ini adalah teknik "keras", itu dapat mengungkapkan tindakan intelijen Anda dalam organisasi yang diteliti.
- Konsumsi memori yang tinggi, dapat mengkonsumsi hingga 2 GB RAM dalam pengaturan yang berbeda, yang tidak akan memungkinkan untuk menjalankan alat ini di cloud pada VDS yang murah.

Altdns
Altdns adalah alat Python untuk
membangun kamus untuk enumerasi subdomain DNS. Ini memungkinkan Anda untuk menghasilkan banyak varian subdomain menggunakan mutasi dan permutasi. Untuk melakukan ini, kami menggunakan kata-kata yang sering ditemukan di subdomain (misalnya: test, dev, staging), semua mutasi dan permutasi diterapkan ke subdomain yang sudah dikenal yang dapat dimasukkan ke Altdns. Outputnya adalah daftar variasi subdomain yang mungkin ada, dan daftar ini nantinya dapat digunakan dengan brute force DNS.
Pro:
- Bekerja dengan baik dengan dataset besar.
aquatone
aquatone - sebelumnya lebih dikenal sebagai alat lain untuk menemukan subdomain, tetapi penulis sendiri meninggalkan ini demi Amass yang disebutkan sebelumnya. Aquatone kini telah ditulis ulang di Go dan lebih ditargetkan untuk eksplorasi awal situs web. Untuk melakukan ini, aquatone menelusuri domain yang ditentukan dan mencari situs web di dalamnya pada port yang berbeda, setelah itu mengumpulkan semua informasi tentang situs dan mengambil tangkapan layar. Nyaman untuk intelijen awal yang cepat di situs web, setelah itu Anda dapat memilih target prioritas untuk serangan.
Pro:
- Pada output, itu membuat sekelompok file dan folder yang nyaman digunakan ketika bekerja lebih lanjut dengan alat lain:
* Laporan HTML dengan tangkapan layar yang dikumpulkan dan dikelompokkan berdasarkan header respons kesamaan;
* File dengan semua URL tempat situs web ditemukan;
* File dengan statistik dan data halaman;
* Folder dengan file yang berisi header respons dari tujuan yang ditemukan;
* Folder dengan file yang berisi isi respons dari tujuan yang ditemukan;
* Screenshot dari situs web yang ditemukan; - Mendukung kerja dengan laporan XML dari Nmap dan Masscan;
- Menggunakan Chrome / Chromium tanpa kepala untuk membuat tangkapan layar.
Cons:
- Ini mungkin menarik perhatian sistem deteksi intrusi, sehingga membutuhkan konfigurasi.
Tangkapan layar diambil untuk salah satu versi lama aquatone (v0.5.0), di mana pencarian subdomain DNS dilaksanakan. Versi lama dapat ditemukan di
halaman rilis .
Tangkapan layar aquatone v0.5.0MassDNS
MassDNS adalah alat lain untuk menemukan subdomain DNS. Perbedaan utamanya adalah membuat DNS query langsung ke banyak resolver DNS yang berbeda dan melakukannya dengan kecepatan yang cukup.
Pro:
- Cepat - mampu menyelesaikan lebih dari 350 ribu nama per detik.
Cons:
- MassDNS dapat menyebabkan beban signifikan pada resolver DNS yang digunakan, yang dapat menyebabkan larangan pada server ini atau keluhan ke penyedia Anda. Selain itu, ini akan menyebabkan beban besar pada server DNS perusahaan jika mereka memilikinya dan jika mereka bertanggung jawab atas domain yang Anda coba selesaikan.
- Daftar resolvers sudah usang sekarang, namun, jika Anda memilih resolvers DNS yang rusak dan menambahkan yang baru, semuanya akan baik-baik saja.

nsec3map
nsec3map adalah alat Python untuk mendapatkan daftar lengkap domain yang dilindungi oleh DNSSEC.
Pro:
- Dengan cepat mendeteksi host di zona DNS dengan jumlah kueri minimum jika dukungan DNSSEC diaktifkan di zona;
- Ini termasuk plugin untuk John the Ripper, yang dapat digunakan untuk memecahkan hash NSEC3 yang diterima.
Cons:
- Banyak kesalahan DNS tidak ditangani dengan benar;
- Tidak ada paralelisasi otomatis pemrosesan catatan NSEC - Anda harus membagi namespace secara manual;
- Konsumsi memori tinggi.
Acunetix
Acunetix adalah pemindai kerentanan web yang mengotomatiskan proses pemeriksaan keamanan aplikasi web. Menguji aplikasi untuk injeksi SQL, XSS, XXE, SSRF dan banyak kerentanan web lainnya. Namun, seperti pemindai lain dari banyak kerentanan web, itu tidak menggantikan pentester, karena rantai kompleks kerentanan atau kerentanan dalam logika tidak dapat ditemukan. Tapi itu mencakup banyak kerentanan yang berbeda, termasuk berbagai CVE, yang bisa dilupakan oleh pentester, oleh karena itu sangat nyaman untuk pembebasan dari pemeriksaan rutin.
Pro:
- Positif palsu rendah
- Hasil dapat diekspor sebagai laporan;
- Melakukan sejumlah besar pemeriksaan untuk berbagai kerentanan;
- Pemindaian paralel dari beberapa host.
Cons:
- Tidak ada algoritma deduplikasi (Acunetix menganggap halaman memiliki fungsionalitas yang sama karena mereka memiliki URL yang berbeda), tetapi pengembang sedang mengusahakannya;
- Ini membutuhkan instalasi pada server web terpisah, yang mempersulit pengujian sistem klien dengan koneksi VPN dan menggunakan pemindai di segmen terisolasi dari jaringan klien lokal;
- Layanan yang sedang diselidiki dapat “membuat keributan”, misalnya, mengirimkan terlalu banyak vektor serangan ke dalam bentuk komunikasi di situs, sehingga sangat menyulitkan proses bisnis;
- Ini adalah solusi eksklusif dan, karenanya, tidak bebas.

Pencarian
Dirsearch adalah alat Python untuk direktori dan file brute force di situs web.
Pro:
- Itu dapat membedakan halaman “200 OK” yang asli dari halaman “200 OK”, tetapi dengan teks “halaman tidak ditemukan”;
- Dilengkapi dengan kamus praktis yang memiliki keseimbangan yang baik antara ukuran dan efisiensi pencarian. Berisi jalur standar yang umum bagi banyak CMS dan tumpukan teknologi;
- Format kamus sendiri, yang memungkinkan Anda mencapai efisiensi dan fleksibilitas yang baik dalam menyortir file dan direktori;
- Output mudah - teks biasa, JSON;
- Dapat melakukan pembatasan - jeda di antara permintaan, yang sangat penting untuk layanan yang lemah.
Cons:
- Ekstensi perlu ditransmisikan sebagai string, yang tidak nyaman jika Anda harus melewati banyak ekstensi sekaligus;
- Untuk menggunakan kamus Anda, kamus ini harus sedikit dimodifikasi ke format kamus Dirsearch untuk efisiensi maksimum.

wfuzz
wfuzz - fuzzer Python untuk aplikasi web. Mungkin salah satu web phaser paling terkenal. Prinsipnya sederhana: wfuzz memungkinkan Anda untuk fase tempat di permintaan HTTP, yang memungkinkan untuk fase GET / parameter POST, header HTTP, termasuk Cookie dan header otentikasi lainnya. Pada saat yang sama, nyaman untuk direktori bruteforce sederhana dan file, yang membutuhkan kamus yang bagus. Ia juga memiliki sistem filter fleksibel yang dengannya Anda dapat memfilter respons dari situs web dengan berbagai parameter, yang memungkinkan Anda mencapai hasil yang efektif.
Pro:
- Multifungsi - struktur modular, perakitan membutuhkan waktu beberapa menit;
- Mekanisme penyaringan dan fuzzing yang nyaman;
- Anda dapat menentukan fase metode HTTP apa pun, serta tempat apa pun dalam permintaan HTTP.
Cons:

teman
ffuf - web fuzzer Go, dibuat dalam "gambar dan rupa" dari wfuzz, memungkinkan Anda melakukan brute file, direktori, jalur URL, nama dan nilai parameter GET / POST, header HTTP, termasuk header Host untuk brute force host virtual. Wfuzz berbeda dari rekannya dengan kecepatan yang lebih tinggi dan beberapa fitur baru, misalnya, kamus format Dirsearch didukung.
Pro:
- Filter mirip dengan filter wfuzz, memungkinkan Anda mengkonfigurasi bruteforce secara fleksibel;
- Mengizinkan fuzzing nilai header HTTP, data permintaan POST, dan berbagai bagian URL, termasuk nama dan nilai parameter GET;
- Anda dapat menentukan metode HTTP apa pun.
Cons:

gobuster
gobuster - alat di Go untuk pengintaian, memiliki dua mode operasi. Yang pertama digunakan untuk memaksa file dan direktori di situs web, yang kedua - untuk beralih melalui subdomain DNS. Alat ini awalnya tidak mendukung pencacahan file dan direktori secara rekursif, yang tentu saja menghemat waktu, tetapi di sisi lain, kekuatan brutal dari setiap titik akhir baru di situs web perlu dijalankan secara terpisah.
Pro:
- Bekerja dengan kecepatan tinggi baik untuk enumerasi subdomain DNS, dan untuk file dan direktori brute force.
Cons:
- Versi saat ini tidak mendukung pemasangan tajuk HTTP;
- Secara default, hanya beberapa kode status HTTP yang dianggap valid (200.204.301.302.307).

Arjun
Arjun adalah alat untuk bruteforce dari parameter HTTP tersembunyi di parameter GET / POST, serta di JSON. Kamus internal memiliki 25.980 kata yang diperiksa Ajrun dalam hampir 30 detik. Kuncinya adalah bahwa Ajrun tidak memeriksa setiap parameter secara terpisah, tetapi segera memeriksa ~ 1000 parameter sekaligus dan melihat apakah jawabannya telah berubah. Jika jawabannya telah berubah, maka bagi 1000 parameter ini menjadi dua bagian dan periksa bagian mana yang mempengaruhi jawabannya. Dengan demikian, menggunakan pencarian biner sederhana, Anda dapat menemukan parameter atau beberapa parameter tersembunyi yang memengaruhi jawaban dan, oleh karena itu, dapat ada.
Pro:
- Kecepatan tinggi karena pencarian biner;
- Dukungan untuk parameter GET / POST, serta parameter dalam bentuk JSON;
Plugin untuk Burp Suite,
param-miner , yang juga sangat bagus dalam menemukan parameter HTTP tersembunyi, bekerja dengan prinsip yang sama. Kami akan memberi tahu Anda lebih banyak tentang itu di artikel yang akan datang tentang Burp dan plugin-nya.

Linkfinder
LinkFinder adalah skrip Python untuk menemukan tautan dalam file JavaScript. Berguna untuk menemukan titik akhir / URL tersembunyi atau terlupakan dalam aplikasi web.
Pro:
- Cepat;
- Ada plugin khusus untuk Chrome berdasarkan LinkFinder.
.
Cons:
- Kesimpulan akhir yang tidak nyaman;
- Tidak mem-parsing JavaScript dalam dinamika;
- Cukup logika sederhana untuk menemukan tautan - jika JavaScript dengan cara apa pun dikaburkan, atau jika tautan pada awalnya hilang dan dihasilkan secara dinamis, maka Anda tidak akan dapat menemukan apa pun.

Jsparser
JSParser adalah skrip Python yang menggunakan
Tornado dan
JSBeautifier untuk mem-parsing URL relatif dari file JavaScript. Sangat berguna untuk mendeteksi permintaan AJAX dan menyusun daftar metode API yang berinteraksi dengan aplikasi. Dipasangkan secara efektif dengan LinkFinder.
Pro:
- Mengurai file javascript dengan cepat.

sqlmap
sqlmap mungkin salah satu alat paling terkenal untuk menganalisis aplikasi web. Sqlmap mengotomatiskan pencarian dan pengoperasian injeksi SQL, bekerja dengan beberapa dialek SQL, memiliki sejumlah besar teknik berbeda, mulai dari tanda kutip “di dahi” dan diakhiri dengan vektor kompleks untuk injeksi SQL berbasis waktu. Selain itu, ia memiliki banyak teknik eksploitasi lebih lanjut untuk berbagai DBMS, oleh karena itu berguna tidak hanya sebagai pemindai injeksi SQL, tetapi juga sebagai alat yang kuat untuk mengeksploitasi injeksi SQL yang sudah ditemukan.
Pro:
- Sejumlah besar teknik dan vektor yang berbeda;
- Jumlah positif palsu yang rendah;
- Banyak kemungkinan untuk fine tuning, berbagai teknik, database target, skrip tamper untuk memotong WAF;
- Kemampuan untuk membuang data output;
- Ada banyak opsi operasi yang berbeda, misalnya, untuk beberapa basis data - unggahan / unduh file otomatis, memperoleh kemampuan untuk mengeksekusi perintah (RCE) dan lainnya;
- Dukungan untuk koneksi langsung ke database menggunakan data yang diperoleh selama serangan;
- Anda dapat mengirimkan file teks dengan hasil Burp ke input - tidak perlu menulis secara manual semua atribut baris perintah.
Cons:
- Sulit untuk menyesuaikan, misalnya, untuk menulis beberapa cek Anda karena dokumentasi yang langka untuk ini;
- Tanpa pengaturan yang tepat, ia melakukan serangkaian pemeriksaan yang tidak lengkap, yang bisa menyesatkan.

NoSQLMap
NoSQLMap adalah alat Python untuk mengotomatiskan pencarian dan pengoperasian injeksi NoSQL. Lebih mudah digunakan tidak hanya dalam database NoSQL, tetapi juga secara langsung ketika mengaudit aplikasi web menggunakan NoSQL.
Pro:
- Seperti sqlmap, ia tidak hanya menemukan kerentanan potensial, tetapi juga memeriksa kemungkinan eksploitasinya untuk MongoDB dan CouchDB.
Cons:
- Tidak mendukung NoSQL untuk Redis, Cassandra, pengembangan sedang berlangsung ke arah ini.
oxml_xxe
oxml_xxe adalah alat untuk menanamkan eksploit XML XXE dalam berbagai jenis file yang menggunakan format XML dalam beberapa bentuk.
Pro:
- Ini mendukung banyak format umum, seperti DOCX, ODT, SVG, XML.
Cons:
- Tidak sepenuhnya mendukung dukungan untuk PDF, JPEG, GIF;
- Hanya membuat satu file. Untuk mengatasi masalah ini, Anda dapat menggunakan alat docem , yang dapat membuat sejumlah besar file payload di tempat yang berbeda.
Utilitas di atas melakukan pekerjaan yang baik untuk menguji XXE saat memuat dokumen yang berisi XML. Tetapi juga jangan lupa bahwa penangan format XML dapat ditemukan dalam banyak kasus lain, misalnya, XML dapat digunakan sebagai format data, bukan JSON.
Oleh karena itu, kami sarankan Anda memperhatikan repositori berikut, yang berisi sejumlah besar muatan berbeda:
PayloadsAllTheThings .
tplmap
tplmap adalah alat Python untuk secara otomatis mendeteksi dan mengeksploitasi kerentanan Server-Side Template Injection, ia memiliki pengaturan dan tanda yang mirip dengan sqlmap. Ini menggunakan beberapa teknik dan vektor yang berbeda, termasuk injeksi buta, dan juga memiliki teknik untuk mengeksekusi kode dan memuat / membongkar file sewenang-wenang. Selain itu, ada dalam teknik arsenal untuk selusin mesin yang berbeda untuk template dan beberapa teknik untuk menemukan eval () - injeksi kode serupa dalam Python, Ruby, PHP, JavaScript. Jika operasi berhasil, buka konsol interaktif.
Pro:
- Sejumlah besar teknik dan vektor yang berbeda;
- Mendukung banyak mesin untuk merender template;
- Banyak teknik operasi.
Cewl
CeWL adalah generator kamus Ruby, yang dirancang untuk mengekstrak kata-kata unik dari situs web tertentu, mengikuti tautan di situs hingga kedalaman tertentu. Kamus yang dikompilasi dari kata-kata unik nantinya dapat digunakan untuk brute force kata sandi pada layanan atau brute force file dan direktori di situs web yang sama, atau untuk menyerang hash yang diterima menggunakan hashcat atau John the Ripper. Berguna saat menyusun daftar kata sandi potensial "bertarget".
Pro:
Cons:
- Anda harus berhati-hati dengan kedalaman pencarian agar tidak menangkap domain tambahan.
Kelemahan
Weakpass adalah layanan yang berisi banyak kamus dengan kata sandi unik. Ini sangat berguna untuk berbagai tugas yang berkaitan dengan peretasan kata sandi, mulai dari akun brute force online sederhana pada layanan target, berakhir dengan pasukan brute offline menerima hash menggunakan
hashcat atau
John The Ripper . Terdiri dari sekitar 8 miliar kata sandi dengan panjang 4 hingga 25 karakter.
Pro:
- Kamus ini berisi kamus dan kamus khusus dengan kata sandi yang paling umum - Anda dapat memilih kamus khusus untuk kebutuhan Anda sendiri;
- Kamus diperbarui dan diperbarui dengan kata sandi baru;
- Kamus diurutkan berdasarkan kinerja. Anda dapat memilih opsi untuk brute-force cepat online, dan untuk pilihan kata sandi dari kamus yang banyak dengan kebocoran terbaru;
- Ada kalkulator yang menunjukkan waktu kasar kata sandi pada peralatan Anda.

Dalam grup terpisah, kami ingin menempatkan alat untuk pemeriksaan CMS: WPScan, JoomScan, dan peretas AEM.
AEM_hacker
Peretas AEM adalah alat untuk mengidentifikasi kerentanan dalam aplikasi Adobe Experience Manager (AEM).
Pro:
- Itu dapat mengidentifikasi aplikasi AEM dari daftar URL yang dikirimkan padanya pada input;
- Ini berisi skrip untuk mendapatkan RCE dengan memuat shell JSP atau mengoperasikan SSRF.
Joomscan
JoomScan adalah alat Perl untuk mengotomatisasi deteksi kerentanan ketika menggunakan Joomla CMS.
Pro:
- Mampu menemukan kekurangan dan masalah konfigurasi dengan pengaturan administrator;
- Menghitung versi Joomla dan kerentanan terkait, serupa untuk komponen individual;
- Berisi lebih dari 1000 exploit untuk komponen Joomla;
- Output dari laporan akhir dalam format teks dan HTML.

Wpscan
WPScan - alat untuk merayapi situs di WordPress, memiliki persenjataan kerentanan untuk mesin WordPress itu sendiri dan untuk beberapa plugin.
Pro:
- Mampu mendaftar tidak hanya plugin dan tema WordPress yang tidak aman, tetapi juga mendapatkan daftar pengguna dan file TimThumb;
- Itu dapat melakukan serangan brute-force di situs WordPress.
Cons:
- Tanpa pengaturan yang tepat, ia melakukan serangkaian pemeriksaan yang tidak lengkap, yang bisa menyesatkan.

Secara umum, orang yang berbeda lebih suka alat yang berbeda untuk bekerja: mereka semua baik dengan caranya sendiri, dan apa yang disukai seseorang mungkin tidak cocok untuk orang lain. Jika Anda berpikir bahwa kami telah mengabaikan beberapa utilitas yang baik - tulislah di komentar!