PYTHON NMAP
Membuat Program Port Scanner Dengan Library Python NMAP


Pendahuluan

Pada artikel ini saya akan membuat program port scanner pada python, ada sebuah library python bernama python nmap kamu bisa cek penjelasan nya di sini. Perlu di ingat saya membuat program ini hanya sebatas pembelajaran saja, kita tahu ketika kita melakukan port scanner pada sasaran otomatis kita bisa mengetahui layanan apa bahkan bisa mengetahui apakah keadaan layanan tersebut terbuka, filter, atau tutup. Seorang peretas topi hitam terkadang bisa mengeksploitasi layanan yang ada bahkan mem brute force layanan tersebut pada alat NMAP yang aslinya. Pada umum nya peretas topi hitam yang cerdas mampu menggunakan alat NMAP sebagai teknik awal menyerang nya, pada alat NMAP versi yang asli fitur yang terdapat sangat banyak dan powerfull bahkan NMAP bisa melakukan deteksi sistem operasi, cek kerentanan sistem, port scanner, memberikan umpan ip ketika melakukan port scanner, bahkan mode agresif melakukan port scanner, sangat banyak sekali yang terdapat pada NMAP.


Saya di sini akan membuat program port scanner sangat sederhana menggunakan bahasa pemrograman python dan library python nmap kamu bisa modif lagi script saya tersebut, perlu di ingat kembali tujuan hal ini hanya sebatas pembelajaran saja.


Penginstallan

Pada penginstallan sistem operasi windows atau pun kamu belum punya alat NMAP nya kamu harus install dulu alat NMAP aslinya dulu kenapa? karena jika belum di install program yang kamu buat nanti tidak akan berjalan jadi ini sangat bergantung dengan alat NMAP nya. Jadikan nama file python kamu nanti bebas dengan nama apapun bisa lebih mudah berikan nama main.py kamu bisa install alat NMAP nya dengan berkunjung pada website nya di sini. Jika sudah kamu perlu install bahasa pemrograman python pada sistem operasi windows kamu karena secara default windows belum ter install bahasa pemrograman python kamu bisa kunjungi di sini untuk install bahasa pemrograman python.


Nah terakhir kamu perlu berkunjung pada website python nmap nya di sini atau jika tidak mau kamu bisa lihat penginstallan library python nmap nya di bawah ini :

pip install python-nmap

Kamu perlu melakukan ini lewat CMD atau terminal pada perangkat kamu dan jadikan nanti library python nmap ini dan nama file program kamu main.py berada satu folder alat NMAP aslinya. Pada distro kali linux ini sangatlah mudah dalam penginstallan library python nmap karena di dalamnya sudah terdapat alat NMAP dan ter install bahasa pemrograman python kamu cukup pip install python-nmap saja pada terminal kali linux.


Saatnya Membuat Program Port Scanner

Saya akan membuat program nya dan akan port scan pada ip localhost. Kamu bisa lihat script di bawah ini :

#import library python nmap
import nmap

scanner = nmap.PortScanner()         # instansiasi objek nmap.PortScanner

#ip address ini hanyalah umpan resmi dan legal untuk melakukan port scanner
ip_addr = '127.0.0.1'

#lakukan port scanner
scanner.scan(ip_addr, '1-2550', '-v -sS')
#berikan info sasaran
print("[+] info pada sasaran : ", scanner.scaninfo())
#berikan status sasaran
print("[+] status sasaran : ", scanner[ip_addr].state())
#scan host dalam semua host
for host in scanner.all_hosts():
    print("[+] host : %s (%s)" % (host, scanner[host].hostname()))
#scan protokol dalam semua protokol yang ada
for protokol in scanner[host].all_protocols():
    print("[+] protokol : %s" % protokol)
    print("-------------------------------------------")
#tampilkan semua port hasil dari scan
    daftar_port = scanner[host][protokol].keys()
    for port in daftar_port:
        print("[+] port : %s\tkeadaan : %s" % (port, scanner[host][protokol][port]["state"]))

Kamu bisa run program di atas dan lihat hasil dari port scan tersebut di bawah ini :

C:\Users\GalihAp\nmap>main.py
[+] info pada sasaran :  {'tcp': {'method': 'syn', 'services': '1-2550'}}
[+] status sasaran :  up
[+] host : 127.0.0.1 (localhost)
[+] protokol : tcp
-------------------------------------------
[+] port : 135  keadaan : open
[+] port : 137  keadaan : filtered
[+] port : 445  keadaan : open
[+] port : 1001 keadaan : open
[+] port : 1433 keadaan : open
[+] port : 1536 keadaan : open
[+] port : 1537 keadaan : open
[+] port : 1538 keadaan : open
[+] port : 1539 keadaan : open
[+] port : 1540 keadaan : open
[+] port : 1541 keadaan : open
[+] port : 1542 keadaan : open

Buat Program Deteksi Sistem Operasi

Tambahan kamu bisa lihat script di bawah ini untuk deteksi sistem operasi :

#import library python nmap
import nmap

scanner = nmap.PortScanner()         # instansiasi objek nmap.PortScanner

#ip address ini hanyalah umpan resmi dan legal untuk melakukan port scanner
ip_addr = '127.0.0.1'

#deteksi sistem operasi 
mesinOS = scanner.scan(ip_addr, arguments='-O')
#tampilkan hasil 
print("[+] sistem operasi pada sasaran : ", mesinOS['scan'][ip_addr]['osmatch'][0])

Kamu bisa lihat hasil nya bawah ini :

C:\Users\GalihAp\nmap>main.py
[+] sistem operasi pada sasaran :  {'name': 'Microsoft Windows 10 1511', 'accuracy': '99', 'line': '69516', 'osclass': [{'type': 'general purpose', 'vendor': 'Microsoft', 'osfamily': 'Windows', 'osgen': '10', 'accuracy': '99', 'cpe': ['cpe:/o:microsoft:windows_10:1511']}]}

Kamu bisa modifikasi lagi script sederhana saya di atas, semoga bermanfaat :D