31 Desember 2020

Nmap, Tools Untuk Menganalisa Service Pada Suatu Host/Server

Pada saat melakukan penetration testing, hal yang pertama kali yang harus dilakukan adalah melakukan recon atau mengumpulkan informasi terkait target. Ada banyak tools yang bisa kita gunakan untuk melakukan recon, salah satunya yang paling umum adalah NMAP atau network mapper. Walaupun tools yang umum digunakan, nmap ini sangat banyak fungsinya. Berikut ini adalah beberapa hal yang bisa dilakukan oleh nmap:

1. Network Discovery

2. Indetifikasi Vulnerability

3. Backdoor Detection

4. Exploitasi Vulnerability


Sebelum lebih jauh membahas bagaimana nmap digunakan dalam aktifitas penetration testing, kita harus tau dulu bagaimana cara kerja dari tools nmap. Pada dasarnya, ketika suatu server digunakan untuk menjalankan aplikasi, maka server tersebut akan membuka port tertentu. Port tersebut merupakan pintu komunikasi dengan aplikasi yang ada pada server. Contohnya jika pada suatu server terdapat aplikasi web, maka biasanya port yang terbuka pada server tersebut adalah 80 (HTTP) atau 443 (HTTPS). Jika server tersebut adalah server email, maka port yang butuh dibuka adalah port 25, 110 atau 465. Dengan mengetahui port apa yang terbuka pada server tersebut, maka kita dapat mengetahui lewat pintu mana kita masuk. Jika pintu-pintu tersebut tidak di maintain dengan baik dari sisi security, maka akan memungkinkan attacker dari luar melakukan exploitasi.

Nmap mempunyai kemampuan untuk mengindetifikasi port apa saja yang terbuka pada suatu server. Untuk dapat mengindetifikasi port yang terbuka, nmap akan mengirimkan paket tertentu pada target lalu melihat responnya. Jika terdapat respon dari port yang dikirimi paket, artinya port tersebut aktif. Jika port tidak memberikan respon pada selang waktu tertentu, maka port tersebut akan dianggap tidak aktif oleh nmap. Mari kita coba melakukan perintah sederhana dari tools nmap ini. 


Gambar 1. Contoh penggunaan nmap yang sederhana

Untuk command di atas, kita hanya menggunakan perintah 

nmap <ip target>

Dengan perintah yang sederhana tersebut, kita bisa mendapatkan informasi port apa saja yang terbuka pada server tersebut. Pada contoh di atas, kita lihat bahwa ada 7 port yang aktif, namun hanya 4 port yang bisa diakses langsung karena berstatus open dan 3 port sisanya tidak bisa diakses karena statusnya closed. Pada contoh gambar 1 di atas, hasil yang diinformasikan masih sangat sedikit informasinya. Untuk dapat memaximalkan penggunaan nmap, kita dapat melihat manual nmap dengan menggunakan perintah 

nmap --help atau man nmap


Gambar 2. Opsi pada nmap

Pada gambar 2, kita bisa lihat terdapat banyak opsi yang bisa kita gunakan ketika menggunakan nmap. Ketika kita butuh informasi yang lebih detail dari hasil scan menggunakan nmap, maka kita dapat menggunakan opsi-opsi tersebut. Berikut ini adalah contoh penggunaan opsi pada nmap dan tujuannya.

1. nmap untuk mendeteksi OS dan Service pada target

untuk melakukan hal ini, maka dibutuhkan opsi -A. opsi -A digunakan untuk mendeteksi OS dan service pada target. Agar proses scanning bisa dilakukan lebih cepat, maka dapat dikombinasikan dengan opsi -T4. Berikut ini adalah contoh penggunaannya.

Gambar 3. Nmap untuk mendeteksi OS dan service

Dari hasil scan di atas, kita bisa mendapatkan informasi yang lebih detail dari port yang aktif pada target seperti jenis web server yang digunakan, versinya, SSL detail dan kemungkinan OS yang digunakan oleh server.

2. nmap untuk mendeteksi versi dari service/daemon

untuk mendapatkan informasi mengenai versi dari service/daemon yang aktif pada target dapat menggunakan -sV. Berikut ini adalah contoh penggunaan opsi -sV


Gambar 4. Nmap untuk mendeteksi versi dari service pada target

Dari hasil di scan nmap pada gambar 4, kita dapat melihat informasi dari service yang running pada target.


3. Melakukan scan menggunakan protokol TCP atau UDP
Pada saat melakukan scan dengan nmap, kita bisa memilih untuk menggunakan protokol TCP saja atau UDP saja. Biasanya ini dilakukan ketika kita mau menghindari blocking firewall atau mau mempercepat proses scan. Jika mau melakukan scanning hanya dengan menggunakan protokol TCP saja, maka kita dapat menggunakan opsi -sT dan untuk protokol UDP saja dapat menggunakan opsi -sU. Berikut ini contoh penggunaan opsi -sT dan -sU


Gambar 5. Scanning nmap menggunakan opsi -sT

Gambar 6. Scanning nmap menggunakan opsi -sU

Dari dua hasil scan di atas, dapat kita lihat terdapat perbedaan. Pada gambar 5 yang merupakan scanning dengan protokol TCP memberikan hasil. Ini berbeda ketika scanning menggunakan protokol UDP, tidak memberikan hasil. Ini artinya, service pada target hanya berjalan menggunakan protokol TCP.

4. Scannig port tertentu
Pada saat melakukan scanning dengan nmap, pada dasarnya nmap akan melakukan scanning ke semua port (port 1-65535). Hal tersebut menyebabkan proses scanning menjadi lama. Agar dapat melakukan efesiensi pada saat melakukan scanning, kita dapat memilih port tertentu. Untuk melakukan hal tersebut kita dapat menggunaka opsi -p diikuti dengan port yang mau di scan


Gambar 7. Scanning nmap dengan spesifik port

Dari hasil scanning di atas, dapat kita lihat scanning hanya menargetkan port 22,80,443 dan 501. Jika dibandingkan dari sisi waktu, scanning dengan spesific port jauh lebih cepat dari pada scanning tanpa menggunakan spesific port. Untuk opsi di atas, dapat dikombinasikan dengan perintah lain sehingga dapat memberikan result yang lebih detail.


Dengan memperhatikan opsi-opsi pada tools nmap, kita dapat melakukan analisa terhadap semua port yang digunakan oleh service pada target. Hasil analisa tersebut dapat dijadikan data awal sebelum melakukan penetrasi testing. Misalnya, ketika kita sudah tau aplikasi apa yang aktif pada target dan versi dari aplikasi tersebut, kita dapat mencari vulnerability terkait versi aplikasi tersebut. Jika kita belum menemukan vulnerability pada aplikasi tersebut, setidaknya kita bisa mempunyai bayangan proses apa saja yang sedang berlangsung pada target sehingga kita bisa melakukan recon lebih lanjut terhadap target pentest.

Ada banyak fungsi dari nmap yang bisa kita explorer selain melakukan analisa service seperti telah disebutkan di atas. Next time, kita akan bahas bagaimana melakukan hal-hal tersebut.