Alat web, atau di mana pentester harus dimulai?

Terus berbicara tentang alat yang berguna untuk pentester. Di artikel baru kita akan melihat alat untuk menganalisis keamanan aplikasi web.

Rekan kami Cinta Saya sudah melakukan hal seperti ini kompilasi sekitar tujuh tahun yang lalu. Menarik untuk melihat alat mana yang masih mempertahankan dan memperkuat posisinya, dan alat mana yang sudah memudar dan kini jarang digunakan.
Alat web, atau di mana pentester harus dimulai?

Perhatikan bahwa ini juga termasuk Burp Suite, tetapi akan ada publikasi terpisah tentangnya dan pluginnya yang berguna.

Isi:

Mengumpulkan

Mengumpulkan - alat Go untuk mencari dan menghitung subdomain DNS dan memetakan jaringan eksternal. Amass adalah proyek OWASP yang dirancang untuk menunjukkan seperti apa organisasi di Internet bagi pihak luar. Amass mendapatkan nama subdomain dengan berbagai cara; alat ini menggunakan enumerasi subdomain secara rekursif dan pencarian sumber terbuka.

Untuk menemukan 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 - pencarian kamus subdomain, subdomain bruteforce, pencarian cerdas menggunakan mutasi berdasarkan subdomain yang ditemukan, membalikkan permintaan DNS dan mencari server DNS yang memungkinkan untuk membuat permintaan transfer zona (AXFR);

    * Pencarian sumber terbuka - Ask, 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, Umbrella, URLScan;

    * Cari arsip web Internet: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback;

  • Integrasi dengan Maltego;
  • Memberikan cakupan terlengkap dari tugas pencarian subdomain DNS.

Cons:

  • Hati-hati dengan amass.netdomains - ia akan mencoba menghubungi setiap alamat IP di infrastruktur yang diidentifikasi dan mendapatkan nama domain dari pencarian DNS terbalik dan sertifikat TLS. Ini adalah teknik "profil tinggi", yang dapat mengungkap aktivitas intelijen Anda dalam organisasi yang sedang diselidiki.
  • Konsumsi memori yang tinggi, dapat menghabiskan hingga 2 GB RAM dalam pengaturan berbeda, yang tidak memungkinkan Anda menjalankan alat ini di cloud pada VDS murah.

Alat web, atau di mana pentester harus dimulai?

alternatif

alternatif — alat Python untuk menyusun kamus untuk menghitung subdomain DNS. Memungkinkan Anda menghasilkan banyak varian subdomain menggunakan mutasi dan permutasi. Untuk ini digunakan kata-kata yang sering ditemukan di subdomain (misalnya: test, dev, staging), semua mutasi dan permutasi diterapkan ke subdomain yang sudah diketahui, yang dapat dikirimkan ke input Altdns. Outputnya berupa daftar variasi subdomain yang mungkin ada, dan daftar ini nantinya bisa digunakan untuk brute force DNS.

Pro:

  • Bekerja dengan baik dengan kumpulan data besar.

aquaton

aquaton - sebelumnya lebih dikenal sebagai alat lain untuk mencari subdomain, tetapi penulis sendiri mengabaikannya dan memilih Amass yang disebutkan di atas. Sekarang aquatone telah ditulis ulang di Go dan lebih ditujukan untuk pengintaian awal di situs web. Untuk melakukan ini, aquatone menelusuri domain yang ditentukan dan mencari situs web di port yang berbeda, setelah itu mengumpulkan semua informasi tentang situs tersebut dan mengambil tangkapan layar. Nyaman untuk pengintaian awal yang cepat terhadap situs web, setelah itu Anda dapat memilih target prioritas untuk serangan.

Pro:

  • Outputnya membuat sekelompok file dan folder yang nyaman digunakan saat bekerja lebih lanjut dengan alat lain:
    * Laporan HTML dengan tangkapan layar yang dikumpulkan dan judul respons yang dikelompokkan berdasarkan kesamaan;

    * File dengan semua URL tempat situs web ditemukan;

    * File dengan statistik dan data halaman;

    * Folder dengan file yang berisi header respons dari target yang ditemukan;

    * Folder dengan file yang berisi isi respons dari target yang ditemukan;

    * Tangkapan layar dari situs web yang ditemukan;

  • Mendukung bekerja dengan laporan XML dari Nmap dan Masscan;
  • Menggunakan Chrome/Chromium tanpa kepala untuk merender tangkapan layar.

Cons:

  • Ini mungkin menarik perhatian sistem deteksi intrusi, sehingga memerlukan konfigurasi.

Tangkapan layar diambil untuk salah satu versi lama aquatone (v0.5.0), yang menerapkan pencarian subdomain DNS. Versi yang lebih lama dapat ditemukan di halaman rilis.
Alat web, atau di mana pentester harus dimulai?

DNS Massal

DNS Massal adalah alat lain untuk menemukan subdomain DNS. Perbedaan utamanya adalah ia membuat kueri DNS langsung ke banyak penyelesai DNS yang berbeda dan melakukannya dengan kecepatan tinggi.

Pro:

  • Cepat - mampu menyelesaikan lebih dari 350 ribu nama per detik.

Cons:

  • MassDNS dapat menyebabkan beban yang signifikan pada penyelesai DNS yang digunakan, yang dapat menyebabkan larangan pada server tersebut atau keluhan ke ISP Anda. Selain itu, ini akan memberikan beban besar pada server DNS perusahaan, jika mereka memilikinya dan jika mereka bertanggung jawab atas domain yang Anda coba selesaikan.
  • Daftar penyelesai saat ini sudah usang, tetapi jika Anda memilih penyelesai DNS yang rusak dan menambahkan penyelesai baru yang diketahui, semuanya akan baik-baik saja.

Alat web, atau di mana pentester harus dimulai?
Tangkapan layar Aquatone v0.5.0

nsec3map

nsec3map adalah alat Python untuk mendapatkan daftar lengkap domain yang dilindungi DNSSEC.

Pro:

  • Temukan host dengan cepat di zona DNS dengan jumlah kueri minimum jika dukungan DNSSEC diaktifkan di zona tersebut;
  • Termasuk plugin untuk John the Ripper yang dapat digunakan untuk memecahkan hash NSEC3 yang dihasilkan.

Cons:

  • Banyak kesalahan DNS yang tidak ditangani dengan benar;
  • Tidak ada paralelisasi otomatis dalam pemrosesan catatan NSEC - Anda harus membagi namespace secara manual;
  • Konsumsi memori tinggi.

Acunetix

Acunetix — 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 lainnya, berbagai kerentanan web tidak menggantikan pentester, karena ia tidak dapat menemukan rantai kerentanan yang rumit atau kerentanan dalam logika. Tapi ini mencakup banyak kerentanan yang berbeda, termasuk berbagai CVE, yang mungkin sudah dilupakan oleh pentester, jadi sangat nyaman untuk membebaskan Anda dari pemeriksaan rutin.

Pro:

  • Tingkat positif palsu yang rendah;
  • Hasilnya dapat diekspor sebagai laporan;
  • Melakukan sejumlah besar pemeriksaan untuk berbagai kerentanan;
  • Pemindaian paralel beberapa host.

Cons:

  • Tidak ada algoritma deduplikasi (Acunetix akan menganggap halaman yang fungsinya sama sebagai berbeda, karena mengarah ke URL yang berbeda), tetapi pengembang sedang mengerjakannya;
  • Memerlukan instalasi pada server web terpisah, yang mempersulit pengujian sistem klien dengan koneksi VPN dan penggunaan pemindai di segmen terisolasi dari jaringan klien lokal;
  • Layanan yang diteliti mungkin menimbulkan gangguan, misalnya dengan mengirimkan terlalu banyak vektor serangan ke formulir kontak di situs, sehingga sangat mempersulit proses bisnis;
  • Ini adalah solusi eksklusif dan, karenanya, bukan solusi gratis.

Alat web, atau di mana pentester harus dimulai?

Pencarian Dir

Pencarian Dir — alat Python untuk memaksa direktori dan file di situs web.

Pro:

  • Dapat membedakan halaman “200 OK” yang sebenarnya dengan halaman “200 OK”, tetapi dengan teks “halaman tidak ditemukan”;
  • Dilengkapi dengan kamus praktis yang memiliki keseimbangan baik antara ukuran dan efisiensi pencarian. Berisi jalur standar yang umum untuk banyak CMS dan tumpukan teknologi;
  • Format kamusnya sendiri, yang memungkinkan Anda mencapai efisiensi dan fleksibilitas yang baik dalam menghitung file dan direktori;
  • Output yang nyaman - teks biasa, JSON;
  • Ia dapat melakukan pembatasan - jeda antar permintaan, yang sangat penting untuk layanan lemah apa pun.

Cons:

  • Ekstensi harus diteruskan sebagai string, yang merepotkan jika Anda perlu meneruskan banyak ekstensi sekaligus;
  • Untuk menggunakan kamus Anda, kamus perlu sedikit dimodifikasi ke format kamus Dirsearch untuk efisiensi maksimum.

Alat web, atau di mana pentester harus dimulai?

wfuzz

wfuzz - Fuzzer aplikasi web Python. Mungkin salah satu faser web paling terkenal. Prinsipnya sederhana: wfuzz memungkinkan Anda untuk melakukan fase tempat mana pun dalam permintaan HTTP, yang memungkinkan untuk melakukan fase parameter GET/POST, header HTTP, termasuk Cookie dan header otentikasi lainnya. Pada saat yang sama, ini juga nyaman untuk direktori dan file brute force sederhana, yang memerlukan kamus yang bagus. Ini juga memiliki sistem filter yang fleksibel, yang dengannya Anda dapat memfilter tanggapan dari situs web menurut parameter berbeda, yang memungkinkan Anda mencapai hasil yang efektif.

Pro:

  • Multifungsi - struktur modular, perakitan membutuhkan waktu beberapa menit;
  • Mekanisme penyaringan dan fuzzing yang nyaman;
  • Anda dapat melakukan fase metode HTTP apa pun, serta tempat mana pun dalam permintaan HTTP.

Cons:

  • Dalam pengembangan.

Alat web, atau di mana pentester harus dimulai?

fff

fff — fuzzer web di Go, dibuat dalam “gambar dan rupa” wfuzz, memungkinkan Anda melakukan brute file, direktori, jalur URL, nama dan nilai parameter GET/POST, header HTTP, termasuk header Host untuk brute force dari host virtual. wfuzz berbeda dari saudaranya dalam kecepatan yang lebih tinggi dan beberapa fitur baru, misalnya, mendukung kamus format Dirsearch.

Pro:

  • Filter mirip dengan filter wfuzz, filter ini memungkinkan Anda mengonfigurasi brute force secara fleksibel;
  • Memungkinkan Anda mengaburkan nilai header HTTP, data permintaan POST, dan berbagai bagian URL, termasuk nama dan nilai parameter GET;
  • Anda dapat menentukan metode HTTP apa pun.

Cons:

  • Dalam pengembangan.

Alat web, atau di mana pentester harus dimulai?

gobuster

gobuster — alat Go untuk pengintaian, memiliki dua mode operasi. Yang pertama digunakan untuk melakukan brute force pada file dan direktori di situs web, yang kedua digunakan untuk melakukan brute force pada subdomain DNS. Alat ini pada awalnya tidak mendukung enumerasi file dan direktori secara rekursif, yang tentu saja menghemat waktu, tetapi di sisi lain, kekuatan kasar dari setiap titik akhir baru di situs web harus diluncurkan secara terpisah.

Pro:

  • Operasi berkecepatan tinggi baik untuk pencarian brute force pada subdomain DNS maupun untuk brute force pada file dan direktori.

Cons:

  • Versi saat ini tidak mendukung pengaturan header HTTP;
  • Secara default, hanya beberapa kode status HTTP (200,204,301,302,307) yang dianggap valid.

Alat web, atau di mana pentester harus dimulai?

Arjun

Arjun - alat untuk memaksa parameter HTTP tersembunyi di parameter GET/POST, serta di JSON. Kamus internal memiliki 25 kata, yang diperiksa Ajrun dalam waktu hampir 980 detik. Triknya adalah Ajrun tidak memeriksa setiap parameter secara terpisah, tetapi memeriksa ~30 parameter sekaligus dan melihat apakah jawabannya telah berubah. Jika jawabannya berubah, ia membagi 1000 parameter ini menjadi dua bagian dan memeriksa bagian mana yang mempengaruhi jawabannya. Jadi, dengan menggunakan pencarian biner sederhana, parameter atau beberapa parameter tersembunyi ditemukan yang memengaruhi jawaban dan, oleh karena itu, mungkin ada.

Pro:

  • Kecepatan tinggi karena pencarian biner;
  • Dukungan untuk parameter GET/POST, serta parameter dalam bentuk JSON;

Plugin untuk Burp Suite bekerja dengan prinsip serupa - param-penambang, yang juga sangat baik dalam menemukan parameter HTTP tersembunyi. Kami akan memberi tahu Anda lebih banyak tentangnya di artikel mendatang tentang Burp dan pluginnya.
Alat web, atau di mana pentester harus dimulai?

Pencari Tautan

Pencari Tautan — skrip Python untuk mencari tautan dalam file JavaScript. Berguna untuk menemukan titik akhir/URL yang tersembunyi atau terlupakan dalam aplikasi web.

Pro:

  • Cepat;
  • Ada plugin khusus untuk Chrome berdasarkan LinkFinder.

.

Cons:

  • Kesimpulan akhir yang tidak menyenangkan;
  • Tidak menganalisis JavaScript seiring waktu;
  • Logika yang cukup sederhana untuk mencari tautan - jika JavaScript dikaburkan, atau tautan awalnya hilang dan dibuat secara dinamis, maka JavaScript tidak akan dapat menemukan apa pun.

Alat web, atau di mana pentester harus dimulai?

JSParser

JSParser adalah skrip Python yang menggunakan Angin topan и JSBeautifier untuk mengurai URL relatif dari file JavaScript. Sangat berguna untuk mendeteksi permintaan AJAX dan menyusun daftar metode API yang berinteraksi dengan aplikasi. Bekerja secara efektif bersama dengan LinkFinder.

Pro:

  • Penguraian cepat file JavaScript.

Alat web, atau di mana pentester harus dimulai?

sqlmap

sqlmap mungkin adalah salah satu alat paling terkenal untuk menganalisis aplikasi web. Sqlmap mengotomatiskan pencarian dan pengoperasian injeksi SQL, bekerja dengan beberapa dialek SQL, dan memiliki sejumlah besar teknik berbeda, mulai dari kutipan langsung hingga vektor kompleks untuk injeksi SQL berbasis waktu. Selain itu, ia memiliki banyak teknik untuk eksploitasi lebih lanjut untuk berbagai DBMS, sehingga berguna tidak hanya sebagai pemindai untuk injeksi SQL, tetapi juga sebagai alat yang ampuh untuk mengeksploitasi injeksi SQL yang sudah ditemukan.

Pro:

  • Sejumlah besar teknik dan vektor berbeda;
  • Rendahnya jumlah positif palsu;
  • Banyak opsi penyesuaian, berbagai teknik, basis data target, skrip perusakan untuk melewati WAF;
  • Kemampuan untuk membuat dump keluaran;
  • Banyak kemampuan operasional yang berbeda, misalnya, untuk beberapa database - memuat/membongkar file secara otomatis, memperoleh kemampuan untuk menjalankan perintah (RCE) dan lain-lain;
  • Dukungan untuk koneksi langsung ke database menggunakan data yang diperoleh selama serangan;
  • Anda dapat mengirimkan file teks dengan hasil Burp sebagai input - tidak perlu menyusun semua atribut baris perintah secara manual.

Cons:

  • Sulit untuk menyesuaikan, misalnya, untuk menulis beberapa cek Anda sendiri karena kurangnya dokumentasi untuk ini;
  • Tanpa pengaturan yang sesuai, ia melakukan serangkaian pemeriksaan yang tidak lengkap, yang dapat menyesatkan.

Alat web, atau di mana pentester harus dimulai?

Tidak adaSQLMap

Tidak adaSQLMap — alat Python untuk mengotomatiskan pencarian dan eksploitasi injeksi NoSQL. Lebih mudah digunakan tidak hanya dalam database NoSQL, tetapi juga secara langsung saat mengaudit aplikasi web yang menggunakan NoSQL.

Pro:

  • Seperti sqlmap, ia tidak hanya menemukan potensi kerentanan, 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 - alat untuk menyematkan eksploitasi XML XXE ke dalam berbagai jenis file yang menggunakan format XML dalam beberapa bentuk.

Pro:

  • Mendukung banyak format umum seperti DOCX, ODT, SVG, XML.

Cons:

  • Dukungan untuk PDF, JPEG, GIF tidak sepenuhnya diterapkan;
  • Hanya membuat satu file. Untuk mengatasi masalah ini Anda dapat menggunakan alat tersebut dokumen, yang dapat membuat file payload dalam jumlah besar di tempat berbeda.

Utilitas di atas melakukan pekerjaan yang baik dalam menguji XXE saat memuat dokumen yang berisi XML. Namun ingat juga bahwa penangan format XML dapat ditemukan di banyak kasus lain, misalnya XML dapat digunakan sebagai format data, bukan JSON.

Oleh karena itu, kami menyarankan Anda memperhatikan repositori berikut, yang berisi sejumlah besar payload berbeda: MuatanSemuaHal.

peta tpl

peta tpl - alat Python untuk secara otomatis mengidentifikasi dan mengeksploitasi kerentanan Injeksi Templat Sisi Server; ia memiliki pengaturan dan tanda yang mirip dengan sqlmap. Menggunakan beberapa teknik dan vektor yang berbeda, termasuk injeksi buta, dan juga memiliki teknik untuk mengeksekusi kode dan memuat/mengunggah file arbitrer. Selain itu, ia memiliki teknik untuk selusin mesin templat yang berbeda dan beberapa teknik untuk mencari injeksi kode mirip eval() dengan Python, Ruby, PHP, JavaScript. Jika berhasil, ini akan membuka konsol interaktif.

Pro:

  • Sejumlah besar teknik dan vektor berbeda;
  • Mendukung banyak mesin rendering template;
  • Banyak teknik pengoperasian.

CeWL

CeWL - generator kamus di Ruby, dibuat untuk mengekstrak kata-kata unik dari situs web tertentu, mengikuti tautan di situs hingga kedalaman tertentu. Kamus kata-kata unik yang dikompilasi nantinya dapat digunakan untuk memaksa kata sandi pada layanan atau memaksa file dan direktori di situs web yang sama, atau untuk menyerang hash yang dihasilkan menggunakan hashcat atau John the Ripper. Berguna saat menyusun daftar “target” kata sandi potensial.

Pro:

  • Mudah digunakan.

Cons:

  • Anda harus berhati-hati dengan kedalaman pencarian agar tidak mendapatkan domain tambahan.

Kelemahan

Kelemahan - layanan yang berisi banyak kamus dengan kata sandi unik. Sangat berguna untuk berbagai tugas yang berkaitan dengan peretasan kata sandi, mulai dari brute force online sederhana pada akun di layanan target, hingga brute force off-line dari hash yang diterima menggunakan hashcat или John The Ripper. Ini berisi sekitar 8 miliar kata sandi yang panjangnya berkisar antara 4 hingga 25 karakter.

Pro:

  • Berisi kamus tertentu dan kamus dengan kata sandi paling umum - Anda dapat memilih kamus tertentu untuk kebutuhan Anda sendiri;
  • Kamus diperbarui dan diisi ulang dengan kata sandi baru;
  • Kamus diurutkan berdasarkan efisiensi. Anda dapat memilih opsi untuk kekerasan online cepat dan pemilihan kata sandi terperinci dari kamus yang banyak dengan kebocoran terbaru;
  • Ada kalkulator yang menunjukkan waktu yang diperlukan untuk brute password pada peralatan Anda.

Alat web, atau di mana pentester harus dimulai?

Kami ingin memasukkan alat untuk pemeriksaan CMS dalam grup terpisah: WPScan, JoomScan, dan peretas AEM.

AEM_hacker

Peretas AEM adalah alat untuk mengidentifikasi kerentanan dalam aplikasi Adobe Experience Manager (AEM).

Pro:

  • Dapat mengidentifikasi aplikasi AEM dari daftar URL yang dikirimkan ke masukannya;
  • Berisi skrip untuk memperoleh RCE dengan memuat shell JSP atau mengeksploitasi SSRF.

Pemindaian Joom

Pemindaian Joom — alat Perl untuk mengotomatiskan deteksi kerentanan saat menerapkan CMS Joomla.

Pro:

  • Mampu menemukan kekurangan konfigurasi dan masalah pengaturan administratif;
  • Mencantumkan versi Joomla dan kerentanan terkait, serupa untuk masing-masing komponen;
  • Berisi lebih dari 1000 eksploitasi untuk komponen Joomla;
  • Output laporan akhir dalam format teks dan HTML.

Alat web, atau di mana pentester harus dimulai?

WPScan

WPScan - alat untuk memindai situs WordPress, ia memiliki kerentanan baik untuk mesin WordPress itu sendiri maupun untuk beberapa plugin.

Pro:

  • Mampu membuat daftar tidak hanya plugin dan tema WordPress yang tidak aman, tetapi juga mendapatkan daftar pengguna dan file TimThumb;
  • Dapat melakukan serangan brute force pada situs WordPress.

Cons:

  • Tanpa pengaturan yang sesuai, ia melakukan serangkaian pemeriksaan yang tidak lengkap, yang dapat menyesatkan.

Alat web, atau di mana pentester harus dimulai?

Secara umum, orang yang berbeda lebih menyukai alat yang berbeda untuk bekerja: semuanya bagus dengan caranya masing-masing, dan apa yang disukai seseorang mungkin tidak cocok untuk orang lain sama sekali. Jika menurut Anda kami telah mengabaikan beberapa manfaat baik secara tidak adil, tulislah di komentar!

Sumber: www.habr.com

Tambah komentar