PROGRAM NETWORK SCANNER MENGGUNAKAN PYTHON3 DI KALI LINUX
Disusun Oleh:
Kenzie Rofif Dhaniswara (24051204155)
M. Thoriq Dhiya Ulhaq (24051204170)
M. Ilham Jazuli (24051204154)
Miftachur Risky (24051204164)
BAB I
PENDAHULUAN
A. Latar Belakang
Dalam dunia jaringan komputer, pemindaian
atau scanning jaringan adalah salah satu teknik untuk menganalisis perangkat
yang terhubung dalam
suatu jaringan. Pemindaian
jaringan ini berguna untuk mengetahui perangkat apa saja yang aktif dan dapat diakses pada jaringan tertentu.
Dalam tugas ini, kami akan membangun sebuah network scanner menggunakan bahasa
pemrograman Python pada sistem operasi
Kali Linux.
Tujuan dari tugas ini adalah untuk membuat program yang dapat memindai jaringan lokal atau alamat IP tertentu untuk mengetahui perangkat yang sedang aktif.
B. Tujuan
Tujuan dari pembuatan program Network Scanner ini adalah:
- Membaangun program pemindai jaringan menggunakan bahasa pemrograman Python yang mampu mendeteksi perangkat-perangkat aktif dalam suatu rentang IP tertentu.
- Menerapkan library Python scapy dan subprocess untuk melakukan komunikasi jaringan dan eksekusi perintah ping terhadap alamat IP target.
- Memahami cara kerja protokol ICMP (Internet Control Message Protocol) dalam melakukan pengiriman dan penerimaan paket ping.
- Mengidentifikasi perangkat-perangkat aktif dalam jaringan lokal serta mempelajari pola respons perangkat terhadap paket ping.
- Menganalisis hasil pemindaian jaringan untuk mengetahui perangkat mana saja yang aktif dan dapat diakses dalam suatu subnet.
C. Teori Penunjang
Dalam pengembangan program Network Scanner ini, terdapat
beberapa konsep dan teori penunjang yang perlu dipahami, antara lain:
- Jaringan Komputer:
Jaringan komputer adalah kumpulan perangkat komputer yang saling terhubung melalui suatu media komunikasi untuk berbagi data dan sumber daya.
Dalam konteks pemindaian jaringan, program ini akan mengirimkan paket ping ke perangkat-perangkat yang berada dalam satu rentang alamat IP.
- Protokol ICMP (Internet
Control Message Protocol):
ICMP adalah protokol jaringan yang digunakan untuk mengirim pesan kesalahan dan informasi operasional terkait jaringan.
Salah satu penggunaan utama ICMP adalah ping, yaitu perintah untuk mengirimkan paket Echo Request dan menerima paket Echo Reply sebagai respons.
- Subnetting dan Rentang IP:
Subnetting adalah teknik untuk membagi jaringan IP besar menjadi subnet-subnet kecil untuk memudahkan pengelolaan jaringan.
Misalnya, rentang 192.168.1.0/24 mencakup alamat IP mulai dari 192.168.1.1 hingga 192.168.1.254.
- Python dan Library yang Digunakan:
Scapy: Library Python yang memungkinkan pengguna untuk mengirim, menerima, dan memanipulasi paket jaringan pada tingkat rendah. Scapy sangat berguna untuk analisis jaringan, scanning, dan pembuatan paket khusus.
Subprocess: Modul Python yang digunakan untuk mengeksekusi perintah sistem (seperti ping) dan menangkap outputnya.
- Perintah Ping:
Ping adalah perintah jaringan yang mengirimkan paket ICMP ke alamat IP target untuk memverifikasi apakah perangkat tersebut aktif dan dapat dijangkau.
Sintaks dasar:
ping -c 1 192.168.1.1
Opsi -c 1 digunakan untuk mengirimkan satu paket saja, sehingga tidak terlalu membebani jaringan.
- Kali Linux:
Kali Linux adalah distribusi Linux berbasis Debian yang dikembangkan untuk analisis keamanan, penetration testing, dan digital forensik.
Kali Linux memiliki banyak tools keamanan jaringan yang dapat digunakan bersama Python, seperti Nmap, Wireshark, dan lain-lain
BAB II
PEMBAHASAN
A. Alat dan Bahan :
- Sistem Operasi: Kali Linux
- Bahasa Pemrograman: Python 3
- Library: scapy dan subprocess
- IP yang digunakan: Alamat IP lokal dan IP publik seperti 8.8.8.8 (Google DNS) untuk percobaan.
B.
Deskripsi Program
Program ini bekerja dengan cara mengirimkan paket ping ke alamat IP yang ada dalam rentang tertentu, dan kemudian
memeriksa apakah perangkat di alamat tersebut
merespons. Jika perangkat merespons, maka program
akan mencetak alamat IP tersebut sebagai perangkat yang
aktif.
Program ini menggunakan library Scapy untuk membuat paket ping dan subprocess
untuk menjalankan
perintah ping pada terminal.
C. Langkah-langkah Program:
- Input rentang IP: Program
meminta pengguna untuk
memasukkan rentang IP yang akan dipindai, misalnya
192.168.1.0/24.
- Pengiriman Ping:
Program mengirimkan ping ke setiap
alamat dalam rentang IP tersebut.
- Menunggu Respons:
Jika perangkat merespons ping, maka alamat
IP tersebut dianggap aktif.
- Output Hasil: Program mencetak daftar IP
yang aktif.
D.
Langkah-langkah Pembuatan
Program
Berikut adalah
langkah-langkah yang dilakukan untuk membangun program
Network Scanner:
Install terlebih dahulu library yang dibutuhkan, seperti scapy dan subprocess.
pip3 install scapy
Membuat file Python yang berisi kode untuk memindai jaringan.
import subprocess
from scapy.all import ICMP, IP, sr1
def ping_ip(ip):
try:
output = subprocess.check_output(['ping', '-c', '1', '-W', '1', str(ip)], stderr=subprocess.STDOUT)
return True
except subprocess.CalledProcessError:
return False
def network_scanner(network):
print(f"Scanning network: {network}")
for ip in range(1, 255):
ip_address = f"{network}.{ip}"
if ping_ip(ip_address):
print(f"Host {ip_address} is up")
if _name_ == "_main_":
network = input("Enter the network range (e.g., 192.168.1.0/24): ")
network_scanner(network)
3.
Menjalankan Program
○ Program dijalankan dan pengguna diminta
untuk memasukkan rentang IP untuk dipindai.
○ Program akan memeriksa setiap
alamat IP dalam
rentang tersebut untuk
melihat apakah perangkat merespons.
Setelah menjalankan program, beberapa alamat IP yang merespons akan ditampilkan sebagai berikut:
Enter the network range (e.g., 192.168.1.0/24): 192.168.1.0/24 Scanning network: 192.168.1.0/24
Host 192.168.1.1 is up Host 192.168.1.2 is up Host 192.168.1.3 is up
Program berhasil mendeteksi perangkat-perangkat yang aktif di jaringan tersebut.
Setelah program Network Scanner dijalankan, dilakukan pengujian pada beberapa rentang alamat IP, baik alamat lokal maupun alamat publik. Berikut adalah hasil pengujian dan analisisnya:
1. Pengujian pada Rentang IP Lokal (10.0.2.0/24):
Rentang IP yang digunakan: 10.0.2.0/24.
Hasil pemindaian menunjukkan beberapa alamat IP aktif yang merespons paket ping, seperti:
Enter the network range (e.g., 192.168.1.0/24): 10.0.2.0/24 Scanning network: 10.0.2.0/24
Host 10.0.2.1 is up Host 10.0.2.15 is up Host 10.0.2.2 is up
Hasil tersebut menunjukkan perangkat-perangkat yang aktif dan terhubung dalam jaringan lokal 10.0.2.0/24.
2.
Pengujian pada Rentang IP Publik (8.8.8.8):
Rentang IP yang digunakan: 8.8.8.8 (Google DNS).
Hasil pemindaian menunjukkan bahwa IP tersebut aktif dan merespons paket ping:
Enter the network range (e.g., 192.168.1.0/24): 8.8.8.8 Scanning network: 8.8.8.8
Host 8.8.8.8 is up
Alamat IP tersebut merupakan server DNS publik milik Google, sehingga wajar jika selalu aktif.
3.
Pengujian pada Rentang IP Publik Cloudflare (1.1.1.1):
Rentang IP yang digunakan: 1.1.1.1.
Hasil pemindaian menunjukkan bahwa Cloudflare DNS merespons paket ping:
Enter the network range (e.g., 192.168.1.0/24): 1.1.1.1
Scanning network: 1.1.1.1 Host 1.1.1.1 is up
Hal ini membuktikan bahwa server DNS Cloudflare juga selalu aktif.
G. Analisis Keseluruhan:
- Program berhasil mendeteksi perangkat-perangkat yang aktif dalam rentang IP yang ditentukan.
- Program menunjukkan respons yang cepat pada rentang IP lokal (10.0.2.0/24) dan IP publik (8.8.8.8, 1.1.1.1).
- Penggunaan modul subprocess untuk mengirim paket ping bekerja dengan baik, meskipun perlu diperhatikan bahwa beberapa IP mungkin tidak merespons ping karena firewall atau pengaturan keamanan tertentu.
- Dengan penambahan timeout (-W 1), program berhasil menghindari keterlambatan yang disebabkan oleh IP yang tidak responsif.
BAB III
PENUTUP
A. Kesimpulan
Berdasarkan
pengujian dan analisis yang telah dilakukan, dapat disimpulkan bahwa:
- Program
Network Scanner yang dibangun menggunakan Python mampu mendeteksi
perangkat-perangkat yang aktif dalam suatu rentang IP tertentu dengan
menggunakan paket ping berbasis ICMP.
- Implementasi
library subprocess memungkinkan eksekusi
perintah ping secara langsung di terminal Linux,
sedangkan penggunaan -W 1 berhasil mencegah program menggantung akibat alamat
IP yang tidak responsif.
- Pengujian
pada rentang IP lokal (10.0.2.0/24) dan IP publik (8.8.8.8, 1.1.1.1) berhasil
menunjukkan perangkat-perangkat yang aktif, terutama server DNS publik yang
selalu merespons ping.
- Program
ini efektif digunakan untuk pemantauan perangkat di jaringan lokal maupun untuk
menguji konektivitas ke server-server publik. Namun, untuk pengembangan lebih
lanjut, program ini dapat ditingkatkan dengan menambahkan fitur seperti deteksi
port terbuka, identifikasi perangkat, dan laporan hasil pemindaian dalam format
tertentu.
DAFTAR PUSTAKA
Dharmil. (2020). Writing a network scanner using Python. DEV Community. Diakses dari https://dev.to/dharmil18/writing-a-network-scanner-using-python-3b80
GeeksforGeeks. (2021). Making a port-scanner in Kali Linux terminal using Python. Diakses dari
https://www.geeksforgeeks.org/making-a-port-scanner-in-kali-linux-terminal-using-py thon/
Laporan 2. (2020). Laporan
praktikum jaringan komputer.
Scribd. Diakses dari https://id.scribd.com/document/432295639/LAPORAN-2
Satria Aryawan, G. N. (2023).
Pemanfaatan API client berbasis Python untuk konfigurasi IPS pada router Mikrotik. Diakses
dari https://www.researchgate.net/publication/365080278_PEMANFAATAN_API_CLIEN
T_BERBASIS_PYTHON_UNTUK_KONFIGURASI_IPS_PADA_ROUTER_MIKR OTIK
Gusti Ngurah Satria Aryawan.
(2020). Rancang bangun aplikasi vulnerability assessment. Diakses dari https://repository.its.ac.id/73766/1/05111540000066-Gusti-Ngurah-Satria-Aryawan-B
uku_TA.pd
Australian Cyber Security
Centre. (2020). Network
scanning and enumeration techniques. Diakses dari https://www.cyber.gov.au/acsc/view-all-content/publications/network-scanning-and-e numeration-techniques
Scapy. (2023). Scapy documentation. Diakses dari https://scapy.readthedocs.io/en/latest/
GeeksforGeeks. (2021). ARP protocol overview. Diakses dari https://www.geeksforgeeks.org/arp-address-resolution-protocol/






Tidak ada komentar:
Posting Komentar