Re-port dapat digunakan untuk secara aktif menyelidiki firewall untuk menghitung aturan pemblokiran keluar atau masuk. Gunakan dengan benar dan Anda akan bisa mendapatkan konfigurasi firewall.
Saya terutama mengembangkannya untuk membantu saya dalam memecahkan masalah dengan pemindai jaringan terdistribusi yang sedang saya kembangkan.
Potongan kode ini hanyalah parser PCAP, yang berarti Anda harus menyediakan dump paket jaringan yang diperoleh dengan benar agar dapat berfungsi. Alat tersebut kemudian akan mencetak port yang (menurut PCAP) diblokir oleh firewall.
Untuk menggunakannya, Anda memerlukan akses setidaknya ke dua mesin. Yang satu berada di belakang firewall yang ingin Anda uji dan yang lainnya berada di sisi lain.
Ada dua kemungkinan kasus penggunaan:
Anda memerlukan alat seperti tcpdump, tshark, atau wireshark untuk menangkap dan menyimpan lalu lintas jaringan (atau sniffer lainnya), dan alat seperti nmap atau masscan untuk membuat dan mengirim paket pemeriksaan. Pada contoh berikut, saya akan menggunakan Masscan dan tcpdump.
Jika ada satu firewall lagi tepat sebelum mesin eksternal (bukan yang ada di belakang firewall yang akan Anda uji), akan lebih baik jika mengetahui aturan apa yang ada. Tapi itu tidak wajib, Anda masih bisa melakukan lebih banyak tes dari lokasi berbeda.
Mengikuti langkah-langkah di bawah ini akan membantu Anda mendapatkan hasil yang akurat.
Anggap saja kita ingin menghitung aturan keluar karena kita berencana untuk menjalankan pemindai jaringan nanti pada mesin tersebut sehingga kita ingin memastikan bahwa tidak ada lalu lintas keluar yang diblokir oleh firewall keluar kita.
Mesin di belakang firewall memiliki ip aaaa
sedangkan mesin luar memiliki bbbb
. Mesin kedua ini akan menjadi mesin tempat kita menjalankan packet sniffer (dalam hal ini tcpdump
) dan mesin pertama yang akan kita konfigurasi.
Akuisisi PCAP
Kita perlu memulai packet sniffer di sini untuk melihat paket probing mana yang tidak sampai ke tujuan. Mengingat mesin ini memiliki ip publik bbbb
yang terkait dengan antarmuka jaringan eth0
dan tidak ada firewall yang berjalan . Kami menjalankan tcpdump sebagai berikut
tcpdump -ni eth0 -w re-port.pcap src host a.a.a.a
sebuah file re-port.pcap
akan dibuat dan, setelah kami menyelesaikan pengujian kami, adalah file yang akan kami teruskan ke alat ini. Tapi kita akan melihat bagian ini nanti.
Menyelidiki lalu lintas
Kami akan membuat 65535 paket SYN
dari mesin di belakang firewall dan mengirimkannya ke bbbb
.
Untuk melakukan itu saya menggunakan masscan
. Hal ini memungkinkan kita untuk mengatur rate dengan opsi --rate
dan berapa banyak paket yang dibuat untuk setiap port yang ditentukan dengan opsi --retries
. Kedua opsi ini penting bagi kami karena kami harus memastikan semua paket yang dapat mencapai tujuan akan sampai ke sana. Berdasarkan bandwidth yang Anda miliki pada paket sumber/tujuan bisa hilang karena kecepatan pengiriman yang tinggi. Untuk tes ini kita harus melakukannya dengan lambat dan aman. Di Italia kita mempunyai pepatah yang berlaku: siapa yang berjalan perlahan maka akan jauh, yang menurut saya cocok di sini.
masscan -Pn -n -p 1-65535 --wait 5 -e eth0 --rate 350 --retries 2 --open b.b.b.b
saat melakukan beberapa pengujian, saya mengetahui bahwa 350 paket per detik dikirim dua kali per port, dengan total 131072 (128k) paket, membutuhkan waktu sekitar sembilan menit tanpa kehilangan paket.
Menghitung aturan firewall
Pada titik ini kita dapat menggunakan Re-port
untuk mendapatkan daftar port yang ditutup. Kembali ke mesin pertama, hentikan packet sniffer CTRL+C
dan salin re-port.pcap
ke direktori di mana Anda memiliki alat Re-port. Anda sekarang dapat menjalankannya sebagai berikut:
./enumerate.py re-port.pcap
Contoh sebelumnya menyebutkan aturan pemblokiran TCP. Jika Anda ingin daftar semua port UDP yang diblokir ikuti langkah-langkah di atas dengan mengubah perintah sebagai berikut:
# Machine with b.b.b.b IP
tcpdump -ni eth0 -w re-port.pcap src host a.a.a.a
# Machine with a.a.a.a IP
masscan -Pn -n -p U:1-65535 --wait 5 -e eth0 --rate 350 --retries 2 --open b.b.b.b
# Re-port
./enumerate.py re-port.pcap --udp
Jalankan ./enumerate.py --help untuk menampilkan semua opsi
$./enumerate.py --help
usage: enumerate.py [-h] [--address ADDRESS] [--open] [--version] [-u] [-v] pcap
Re-port is a tool to actively enumerate firewall rules.
positional arguments:
pcap PCAP dump of receiving scan traffic
optional arguments:
-h, --help show this help message and exit
--address ADDRESS scanners's IP address. If unset, all the packets in the
PCAP will be used to enumerate closed ports
--open print open ports instead of closed ones
--version show program's version number and exit
-u, --udp search for UDP open ports instead of TCP
-v, --verbose increase output verbosity
Laporan adalah kelas python dan Anda dapat menggunakan/memperluasnya sesuka Anda.
Itu dapat diubah dan Anda menggunakannya dalam pernyataan with
.
with Report('dump.pcap') as r:
r.enumerate_ports('tcp', '127.0.0.1')
r.print_ports()
atau
r = Report('dump.pcap')
r.enumerate_ports('tcp', '127.0.0.1')
for port in r:
print('Open %d' % port)
@ r4d10n: untuk ide sederhana di balik alat ini.