Port Scanner

Setelah memahami bagaimana membuat TCP atau UDP Client pada artikel sebelumnya (TCP Client – Server dan UDP Client – Server), maka pada artikel ini kita akan mencoba membuat port scanner sederhana.

Port scanning merupakan aktivitas yang dilakukan untuk mengidentifikasi port yang terbuka pada sebuah mesin beserta aplikasi yang menggunakan port tersebut. Informasi ini bermanfaat dan dibutuhkan untuk fase eksploitasi pada Penetration Testing Process. Aktivitas ini tentu saja hanya dapat dilakukan atas persetujuan pemilik organisasi, tanpa hal itu maka kegiatan ini ilegal.

Pada script sebelumnya (Syn Scanning) kita telah membuat script sederhana untuk melakukan pengecekan terhadap port pada sebuah mesin, namun belum mengidentifikasi aplikasi yang menggunakan port tersebut. Untuk itu kita akan:

  1. mengirimkan data pada mesin server
  2. menerima response berupa banner dari aplikasi tersebut
  3. menampilkan banner tersebut pada layar.

Berikut ini adalah langkah-langkah yang dilakukan pada interactive console di python, dimana ada beberapa port yang yang teridentifikasi service-nya, yaitu port 21, 22, dan 23 sebagaimana gambar berikut:

Screen Shot 2016-03-04 at 6.57.25 PM

Namun, ketika port scanning tiba pada port 24, terjadi error (socket.error: [Errno 111] Connection Refused) kemudian script terhenti. Untuk mencegah hal tersebut kita akan menambahkan exception handling pada script kita, yaitu:

Screen Shot 2016-03-04 at 7.15.42 PM

Dengan demikian  script port scanner kita secara utuh adalah sebagaimana gambar berikut ini:

Screen Shot 2016-03-04 at 7.17.24 PM

Apabila script tersebut kita eksekusi, maka gambar berikut ini adalah hasilnya:

Screen Shot 2016-03-04 at 7.18.48 PM

 

Adapun script tersebut dapat dilihat pada link sebagaimana berikut:

Port Scanner Script

Sedangkan artikel-artikel yang terkait pada blog ini adalah:

<01> UDP Client – Server

<02> TCP Client – Server