Web Penetration Testing: Melakukan Reconnaissance Dengan NMAP

Dalam era di mana keamanan informasi menjadi semakin penting, uji penetrasi (penetration testing) telah menjadi salah satu langkah kunci dalam memastikan keamanan sistem dan aplikasi. Sebagai bagian dari uji penetrasi, tahap reconnaissance atau pemetaan jaringan memiliki peran yang vital. Reconnaissance memungkinkan para profesional keamanan untuk memahami struktur jaringan, menemukan titik-titik lemah, dan mengevaluasi potensi ancaman yang mungkin ada.

Dalam konteks uji penetrasi web, alat yang sering digunakan untuk tahap reconnaissance adalah NMAP. NMAP adalah salah satu alat open-source yang paling populer digunakan untuk pemindaian jaringan dan pemetaan port. Dengan kemampuannya yang kuat, NMAP dapat memberikan informasi penting tentang jaringan target, termasuk host yang aktif, port yang terbuka, dan layanan yang berjalan.

Reconnaissance

Reconnaissance, dalam konteks keamanan komputer, merujuk pada serangkaian kegiatan yang dilakukan untuk mengumpulkan informasi tentang target yang akan diserang. Ini adalah langkah awal dalam proses uji penetrasi atau hacking etis di mana para profesional keamanan atau peneliti mencoba untuk memahami infrastruktur jaringan, sistem, atau aplikasi yang menjadi sasaran.

Tujuan utama dari reconnaissance adalah untuk mengumpulkan informasi yang cukup untuk membantu dalam perencanaan dan eksekusi serangan yang lebih canggih. Informasi yang dapat diperoleh melalui reconnaissance meliputi informasi tentang host yang aktif, sistem operasi yang digunakan, aplikasi dan layanan yang berjalan, konfigurasi jaringan, dan celah keamanan yang mungkin ada.

Ada dua jenis reconnaissance utama yaitu aktif dan pasif. Reconnaissance aktif melibatkan interaksi langsung dengan sistem target, seperti pemindaian port, pengujian kerentanan, atau mencoba mendapatkan informasi melalui permintaan jaringan. Di sisi lain, reconnaissance pasif melibatkan pengumpulan informasi tanpa interaksi langsung dengan target, seperti mencari informasi publik melalui mesin pencari, media sosial, atau arsip publik.

Reconnaissance menjadi langkah krusial dalam proses uji penetrasi karena membantu dalam menentukan strategi serangan yang efektif, mengidentifikasi titik-titik lemah dalam infrastruktur target, dan meminimalkan risiko kerugian yang tidak terduga selama serangan. Namun, penting untuk diingat bahwa kegiatan reconnaissance harus dilakukan dengan etika dan kepatuhan hukum yang ketat, serta hanya pada target yang diizinkan untuk diuji.

Tutorial

  1. Langkah pertama, penulis telah memiliki target yang siap di lakukan pentest pada URL atau host di bawah ini :
  2. http://testphp.vulnweb.com/

    Dan penulis juga harus melakukan reconnaissance terhadap server lokal sendiri, karena ada suatu port yang terfilter oleh server yang di miliki pada URL di atas. Jadi IP lokal host nya adalah :

    127.0.0.1

  3. Langkah selanjutnya penulis akan menjalankan beberapa perintah saja seperti mendeteksi kerentanan SQL injection, sistem operasi target yang di gunakan, dan WAF. Anda nanti bisa mencoba sendiri lebih lanjut dengan menekan perintah di bawah ini untuk melihat daftar bantuan NMAP :
  4. nmap -h

    Hasil :

    Web Penetration Testing : Melakukan Reconnaissance Dengan NMAP
  5. Sekarang penulis akan melakukan deteksi SQL injection apakah target memiliki kerentanan atau tidak dengan mengetikkan perintah berikut :
  6. nmap -sV --script=http-sql-injection testphp.vulnweb.com

    Perintah nmap -sV --script=http-sql-injection testphp.vulnweb.com digunakan untuk melakukan pemindaian pada situs web yang ditentukan guna mengidentifikasi potensi kerentanan SQL Injection. Dalam perintah ini, nmap menjalankan alat pemindaian jaringan, sementara opsi -sV digunakan untuk mendeteksi versi layanan yang berjalan pada port terbuka di host target, membantu dalam menemukan aplikasi dan versinya yang spesifik. Opsi --script=http-sql-injection menjalankan skrip Nmap Scripting Engine (NSE) khusus yang dirancang untuk mendeteksi kerentanan SQL Injection pada aplikasi web. Target dari pemindaian ini adalah testphp.vulnweb.com, yang merupakan URL atau host dari aplikasi web yang diuji untuk kerentanan tersebut.

    Hasil :

    Hasil di atas bahwa NMAP berhasil melakukan deteksi SQL injection pada aplikasi web yang memiliki kerentanan tersebut.

  7. Perintah selanjut nya, kita akan mendeteksi sistem operasi lokal host yang di gunakan pada perintah sebagai berikut :
  8. sudo nmap -O 127.0.0.1

    Perintah sudo nmap -O 127.0.0.1 digunakan untuk melakukan pemindaian guna mendeteksi sistem operasi yang berjalan pada host lokal (localhost). Dalam perintah ini, sudo digunakan untuk menjalankan Nmap dengan hak akses administratif, yang diperlukan untuk beberapa jenis pemindaian tingkat lanjut. Kita perlu juga gunakan tool nya dengan perintah nmap dan opsi -O digunakan untuk mengaktifkan deteksi sistem operasi, memungkinkan Nmap untuk mencoba mengidentifikasi sistem operasi yang digunakan oleh target. Alamat IP 127.0.0.1 adalah alamat loopback yang mengarah ke komputer lokal itu sendiri. Perintah ini membantu dalam mengumpulkan informasi tentang sistem operasi yang berjalan di mesin target, yang berguna untuk analisis keamanan dan pemahaman lebih lanjut tentang konfigurasi sistem yang sedang digunakan.

    Hasil :

    Hasil di atas hanya berjalan pada server lokal host yang di mana penulis menggunakan sistem operasi linux di jalankan pada virtual box dan akan berbeda jika kita melakukan di live server lain yang memang di ijinkan untuk pentest.

  9. Terakhir, kita akan lakukan deteksi WAF pada target dengan perintah di bawah ini :
  10. nmap -p80 --script http-waf-detect testphp.vulnweb.com

    Perintah nmap -p80 --script http-waf-detect testphp.vulnweb.com digunakan untuk mendeteksi keberadaan Web Application Firewall (WAF) pada situs web yang ditentukan. Kita gunakan lagi tool nya pada nmap dan opsi -p80 digunakan untuk menentukan bahwa pemindaian harus dilakukan pada port 80, yang merupakan port standar untuk HTTP. Opsi --script http-waf-detect mengaktifkan skrip Nmap Scripting Engine (NSE) khusus yang dirancang untuk mendeteksi apakah ada WAF yang melindungi aplikasi web tersebut. Target dari pemindaian ini adalah testphp.vulnweb.com, yang merupakan URL atau host dari situs web yang akan dianalisis. Dengan menjalankan perintah ini, Nmap akan mencoba mengidentifikasi tanda-tanda bahwa WAF sedang digunakan untuk melindungi situs web, membantu dalam memahami mekanisme keamanan yang ada sebelum melanjutkan dengan langkah uji penetrasi lebih lanjut.

    Hasil :

    Hasil di atas meskipun perintah tersebut menjalankan skrip http-waf-detect, hasil keluaran yang ditunjukkan tidak menyebutkan secara eksplisit tentang keberadaan atau tidak adanya Web Application Firewall (WAF). Ini bisa berarti bahwa target tidak memiliki adanya WAF.

Penutup

Melakukan reconnaissance dengan NMAP merupakan langkah awal yang krusial dalam proses web penetration testing. Dengan memanfaatkan fitur-fitur canggih dari NMAP, seperti deteksi layanan dan sistem operasi, serta skrip khusus untuk menemukan kerentanan, para profesional keamanan dapat mengumpulkan informasi penting tentang target mereka. Informasi ini tidak hanya membantu dalam merencanakan serangan yang lebih efektif, tetapi juga dalam memahami dan memperbaiki potensi titik lemah dalam sistem.

Pemahaman mendalam tentang bagaimana menggunakan NMAP untuk reconnaissance memungkinkan pengujian keamanan yang lebih menyeluruh dan akurat. Ini adalah keterampilan penting yang harus dikuasai oleh setiap pen tester. Dengan terus memperbarui pengetahuan dan teknik mereka, para pen tester dapat membantu organisasi menjaga keamanan aplikasi web mereka dari ancaman yang terus berkembang.