0% menganggap dokumen ini bermanfaat (0 suara)
41 tayangan6 halaman

M7 Sniffing Python

Sniffing menggunakan Python merupakan proses monitoring dan menangkap paket data yang melewati jaringan dengan mengaktifkan mode promiscuous pada interface jaringan dan menggunakan modul socket dan struct untuk mengekstrak informasi seperti alamat MAC, IP, dan port dari paket yang ditangkap.

Diunggah oleh

KaptenSigit
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
41 tayangan6 halaman

M7 Sniffing Python

Sniffing menggunakan Python merupakan proses monitoring dan menangkap paket data yang melewati jaringan dengan mengaktifkan mode promiscuous pada interface jaringan dan menggunakan modul socket dan struct untuk mengekstrak informasi seperti alamat MAC, IP, dan port dari paket yang ditangkap.

Diunggah oleh

KaptenSigit
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 6

Sniffing Menggunakan Python

Sniffing merupakan proses untuk melakukan monitoring dan meng"capture" semua paket data
yang melewati jaringan menggunakan software/aplikasi maupun perangkat keras (hardware).
Umumnya sniffing dilakukan oleh seorang network administrator untuk mengamati
penggunaan jaringan, namun kenyataannya saat ini begitu banyak aplikasi yang mudah
diperoleh, maka banyak juga pengguna yang melakukan iseng terhadap penggunaan
jaringan.

Metode dalam melakukan sniffing terdiri dari dua macam, yaitu:

• Aktif Sniffing

Aktif sniffing merupakan tindakan yang dilakukan pada jaringan berbasis switch. Switch
tentunya lebih pintar daripada hub, secara fungsinya. Serangan ini dilakukan dengan cara
mengirimkan packet ke komputer target setelah memeriksa table mac address. Teknik aktif
sniffing umumnya menggunakan cara ARP Spoofing.

• Pasif Sniffing

Pasif sniffing merupakan tindakan sniffing yang dilakukan dengan melakukan monitoring
paket dari jaringan yang berbasis hub. Dengan menempatkan software packet sniffer pada
jaringan menggunakan metode promiscuous, seorang attacker dapat melakukan capture
paket data dalam subnet jaringan tersebut.

Implementasi Network Sniffer Menggunakan Python


Pada python, untuk melakukan network sniffing dapat menggunakan modul struct. Beberapa
method yang terdapat pada modul struct diantaranya :

• struct.pack(fmt, v1, v2, ...) : Method ini akan mengembalikan string yang mengandung
nilai v1, v2 dan lain-lain, sedangkan paket yang diterima akan mengacu pada format
yang diberikan.
• struct.unpack(fmt, string) : Method ini akan membongkar isi string sesuai dengan
format yang diberikan.

Contoh penggunaan kode programnya :

Nama file : struct1.py


import struct

arsip = struct.pack('hhl', 1, 2, 3)
print (arsip)
k = struct.unpack('hhl', arsip)
print k
Output program tersebut :
Gambar 7.1 Contoh Penggunaan Modul Struct

Kode program tersebut menggunakan method pack dan unpack, sehingga kalau
diimplementasikan pada konsep pemrograman socket, hasilnya adalah sebagai berikut:

Nama file : structt.py sebagai server


import socket
import struct

host = "0.0.0.0"
port = 12347
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(1)
conn, addr = s.accept()
print "Menerima koneksi dari ip :", addr
arsip = struct.pack('hhl', 1, 2, 3)
conn.send(arsip)
conn.close()
Nama file : unstructt.py sebagai client
import socket
import struct

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = "0.0.0.0"
port = 12347
s.connect((host, port))
msg = s.recv(1024)
print msg
print struct.unpack('hhl', msg)
s.close()
Output kode program apabila kedua file tersebut dijalankan:
Gambar 7.2 Implementasi Struct pada method pack dan unpack

Network Sniffer Pada Python


Untuk mengimplementasikan sniffing pada python, pertama-tama masuklah ke mode
promiscuous pada interface card yang akan digunakan. Pada contoh kali ini, saya
menggunakan sistem operasi kali linux untuk melakukan sniffing menggunakan python.

Untuk melakukan setting interface card agar menjadi mode promiscuous mode adalah
sebagai berikut :

Gambar 7.3 Mode Promiscuous Pada Sistem Operasi Kali Linux

Perintahnya adalah :
root@kali:~# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:bf:ed:99
inet6 addr: fe80::a00:27ff:febf:ed99/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:6358 (6.2 KiB)

lo Link encap:Local Loopback


inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:20 errors:0 dropped:0 overruns:0 frame:0
TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1200 (1.1 KiB) TX bytes:1200 (1.1 KiB)

root@kali:~# ifconfig eth0 promisc


root@kali:~# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:bf:ed:99
inet6 addr: fe80::a00:27ff:febf:ed99/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:6358 (6.2 KiB)

lo Link encap:Local Loopback


inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:20 errors:0 dropped:0 overruns:0 frame:0
TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1200 (1.1 KiB) TX bytes:1200 (1.1 KiB)

root@kali:~#
Setelah muncul tulisan UP BROADCAST RUNNING PROMISC MULTICAST maka eth0 siap
digunakan untuk melakukan sniffing terhadap komputer.

Berikut ini terdapat kode program sederhana untuk melakukan sniffing :

Nama File : sniff.py


import socket
import struct
import binascii

#pake socket.PF_PACKET apabila menggunakan linux


s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.ntohs(0x0800))

while True:
pkt = s.recvfrom(2048)
ethhead = pkt[0][0:14]
eth = struct.unpack("!6s6s2s", ethhead)

print "--------Ethernet Frame--------"


print "desination mac", binascii.hexlify(eth[0])
print "Source mac", binascii.hexlify(eth[1])

binascii.hexlify(eth[2])
ipheader = pkt[0][14:34]
ip_hdr = struct.unpack("!12s4s4s", ipheader)

print "-----------IP------------------"
print "Source IP", socket.inet_ntoa(ip_hdr[1])
print "Destination IP", socket.inet_ntoa(ip_hdr[2])
print "---------TCP----------"

tcpheader = pkt[0][34:54]
tcp_hdr = struct.unpack("!HH9ss6s", tcpheader)

print "Source Port ", tcp_hdr[0]


print "Destination port ", tcp_hdr[1]
print "Flag ", binascii.hexlify(tcp_hdr[3])
Output program tersebut ketika dijalankan menggunakan kali linux :

Gambar 7.4 Output sniff.py

Pada gambar 4.7, terlihat bahwa percobaan dalam melakukan sniffing masih gagal karena
alamat mac address baik sumber dan tujuan belum dapat terbaca menggunakan beberapa
modul di python. Ini murni karena programmer belum mahir menguasai konsep networking di
python.
Tugas Praktikum
Berdasarkan kode program yang sudah dituliskan, silakan berikan keterangan dan
penjelasan, maksud dari kode program tersebut. Berikan tampilan output! Tampilan harus
berbeda dengan milik teman-temannya.

Anda mungkin juga menyukai