Selasa, 13 Mei 2025

PROGRAM NETWORK SCANNER MENGGUNAKAN PYTHON3 DI KALI LINUX

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:

  1. Membaangun program pemindai jaringan menggunakan bahasa pemrograman Python yang mampu mendeteksi perangkat-perangkat aktif dalam suatu rentang IP tertentu.
  2. Menerapkan library Python scapy dan subprocess untuk melakukan komunikasi jaringan dan eksekusi perintah ping terhadap alamat IP target.
  3. Memahami cara kerja protokol ICMP (Internet Control Message Protocol) dalam melakukan pengiriman dan penerimaan paket ping.
  4. Mengidentifikasi perangkat-perangkat aktif dalam jaringan lokal serta mempelajari pola respons perangkat terhadap paket ping.
  5. 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 :

  1.  Sistem Operasi: Kali Linux
  2.  Bahasa Pemrograman: Python 3
  3.  Library: scapy dan subprocess
  4. 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:

  1. Input rentang IP: Program meminta pengguna untuk memasukkan rentang IP yang akan dipindai, misalnya 192.168.1.0/24.
  2. Pengiriman Ping: Program mengirimkan ping ke setiap alamat dalam rentang IP tersebut.
  3. Menunggu Respons: Jika perangkat merespons ping, maka alamat IP tersebut dianggap aktif.
  4. Output Hasil: Program mencetak daftar IP yang aktif.

 

D.  Langkah-langkah Pembuatan Program

Berikut adalah langkah-langkah yang dilakukan untuk membangun program Network Scanner:



 

1.     Instalasi Library

 

Install terlebih dahulu library yang dibutuhkan, seperti scapy dan subprocess. 

pip3 install scapy

 



2.     Membuat Script Python

 

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.




 

E.  Hasil Pengujian

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.

 
F.  Analisis Hasil

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:

  1. Program Network Scanner yang dibangun menggunakan Python mampu mendeteksi perangkat-perangkat yang aktif dalam suatu rentang IP tertentu dengan menggunakan paket ping berbasis ICMP.
  2. 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.
  3. 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.
  4. 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