Pengendusan paket dan spoofing adalah dua ancaman yang terus berkembang dalam keamanan jaringan. Ada banyak alat packet sniffing dan spoofing, seperti Wireshark, tcpdump, netwox, dll. Beberapa alat ini banyak digunakan oleh pakar keamanan, serta oleh penyerang. Mampu menggunakan alat-alat ini adalah penting, namun yang lebih penting dalam keamanan jaringan adalah memahami cara kerja alat-alat ini, yaitu bagaimana packet sniffing dan spoofing diimplementasikan dalam perangkat lunak.
Di bawah ini adalah program sniffer sederhana yang memanfaatkan Scapy:
from scapy . all import *
print ( "SNIFFING PACKETS" )
def print_pkt ( pkt ):
print ( "Source IP:" , pkt [ IP ]. src )
print ( "Destination IP:" , pkt [ IP ]. dst )
print ( "Protocol:" , pkt [ IP ]. proto )
print ( " n " )
pkt = sniff ( filter = 'icmp' , prn = print_pkt )
Dalam kode di atas, untuk setiap paket yang ditangkap, fungsi panggilan balik print_pkt()
akan dipanggil; fungsi ini akan mencetak beberapa info paket.
Saat mengendus paket, jenis paket tertentu mungkin lebih menarik. Dimungkinkan untuk memilih hanya paket tertentu dengan mengatur filter saat merancang sniffer. Pemfilteran Scapy menggunakan sintaks BPF (Berkeley Packet Filter).
Contoh pemfilteran yang mungkin dilakukan dengan Scapy meliputi:
128.200.0.0/16
Sebagai alat spoofing paket, Scapy memungkinkan nilai arbitrer diatur di bidang header paket yang berbeda. Misalnya, spoofing IP dapat digunakan oleh pihak jahat untuk melakukan serangan DDoS terhadap target. Spoofing IP adalah pembuatan paket IP yang memiliki alamat sumber yang dimodifikasi untuk menyembunyikan identitas pengirim, untuk menyamar sebagai entitas jaringan lain (sistem komputer, pusat data, dll.), atau keduanya.
Paket ICMP palsu
from scapy . all import *
print ( "SENDING SPOOFED ICMP PACKET" )
ip = IP ( src = "1.2.3.4" , dst = "93.184.216.34" ) # IP Layer
icmp = ICMP () # ICMP Layer
pkt = ip / icmp # Construct the complete packet
pkt . show ()
send ( pkt , verbose = 0 )
Paket UDP palsu
from scapy . all import *
print ( "SENDING SPOOFED UDP PACKET" )
ip = IP ( src = "1.2.3.4" , dst = "10.0.2.69" ) # IP Layer
udp = UDP ( sport = 8888 , dport = 9090 ) # UDP Layer
data = "Hello UDP! n " # Payload
pkt = ip / udp / data # Construct the complete packet
pkt . show ()
send ( pkt , verbose = 0 )
Gabungkan teknik sniffing dan spoofing untuk mengimplementasikan program sniff-and-then-spoof. Perlu dua VM di LAN yang sama. Dari VM A, lakukan ping ke IP X. Tindakan ini menghasilkan paket permintaan gema ICMP. Jika X hidup, program ping akan menerima balasan gema, dan mencetak tanggapannya. Program sniff-and-then-spoof berjalan pada VM B, yang memonitor LAN melalui packet sniffing. Setiap kali ia melihat permintaan gema ICMP, apa pun alamat IP targetnya, program segera mengirimkan balasan gema menggunakan teknik spoofing paket. Oleh karena itu, terlepas dari apakah mesin X hidup atau tidak, program ping akan selalu menerima balasan yang menandakan bahwa X masih hidup.
IP ()
IP (). show ()
IP () / ICMP ()
p = IP () / ICMP ()
p . show ()
p = IP () / UDP ()
p . show ()
p = IP () / UDP () / "This is my UDP packet"
p . show ()
send ( IP () / UDP () / "This is my UDP packet" )
send ( IP ( dst = '10.0.2.7' ) / UDP () / "This is my UDP packet" )
Terima kasih atas minat Anda, proyek ini menyenangkan dan berwawasan luas!