MSA Weekly 3 - “Belajar Information Gathering Untuk Memata-matai Sever Korban Dengan Nmap”

Belajar Information Gathering Dengan Nmap - Nmap (Network Mapper) merupakan tools yang free dan open source yang bisa digunakan untuk network discovery dan security auditing. Nmap banyak digunakan baik oleh system admin, network admin, maupun security engineer untuk melakukan berbagai task yang berkaitan dengan audit keamanan.

Dengan Nmap, kita bisa melakukan network discovery, yaitu melakukan scanning pada jaringan untuk mengetahui host yang sedang aktif, melakukan scanning port atau service pada server, bahkan mengetahui vulnerability atau celah kerentanan dari suatu sistem.

Basic Information Gathering Dengan Nmap

Pada kesempatan kali ini tutorialjaringan.com akan membahas penggunaan tools Nmap untuk keperluan information / intelligence gathering berdasarkan perspektif seorang threat actor. Tapi mungkin teman-teman ada yang bertanya, apa itu information / intelligence gathering? Information / intelligence gathering merupakan fase dimana kita melakukan pengumpulan informasi sebanyak mungkin dari suatu target yang akan dieksplotasi.

Informasi yang dikumpulkan ini bisa berupa DNS record, IP address, port atau service yang terbuka, versi aplikasi dari service yang digunakan, sistem operasi yang digunakan, bahkan celah kerentanan yang mungkin dapat dieskalasi.

Proses ini biasanya dilakukan oleh seorang threat actor ataupun seorang cybersecurity engineer sebelum melakukan testing keamanan dari suatu sistem. Sistem yang dimaksud bisa berupa server, website, maupun network infrastructure.

Basic Information Gathering Dengan Nmap

Pada artikel kali ini tutorialjaringan.com menggunakan Kali Linux sebagai sistem operasi utama dan dalam hal ini berfungsi sebagai attacker machine, dan untuk target atau korbannya yaitu metasploitable2 yang dijalankan menggunakan docker.

Basic Information Gathering Dengan Nmap

Dari screenshoot di atas bisa dilihat bahwa IP target-nya yaitu 172.17.0.2, IP ini tentunya akan berbeda dengan kondisi masing-masing, jadi silahkan disesuaikan saja IP address-nya.

Sebelum kita melakukan praktek information gathering dengan Nmap, pastikan IP targetnya, dalam hal ini yaitu IP mesin metasploitable2-nya bisa diping dari Kali Linux. 

$ ping 172.17.0.2                       
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.139 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.088 ms
64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.063 ms
64 bytes from 172.17.0.2: icmp_seq=4 ttl=64 time=0.055 ms
^C
--- 172.17.0.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 7165ms
rtt min/avg/max/mdev = 0.055/0.098/0.197/0.045 ms

Dari hasil test ping di atas, Kali Linux sudah berhasil melakukan ping ke IP metasploitable2, jika masih belum bisa test ping kemungkinan ada kendala di konfigurasi jaringannya, silahkan dicheck kembali.

Mari kita lanjut, secara default, Nmap sudah terinstall di Kali Linux, kita bisa check dengan mengetikkan command  nmap -h untuk melihat opsi apa saja yang bisa digunakan ketika menjalankan tools Nmap.

Basic Penggunaan Perintah Nmap

Nmap bisa dijalankan melalui console terminal, ketikkan format perintah berikut untuk menjalankannya.

nmap [Scan Type(s)] [Options] {target specification}

# Ping scan - disable port scan ( -sn )

Yang pertama akan kita coba yaitu option -sn, option ini berfungsi untuk memerintahkan Nmap agar menjalankan ping scan (tanpa melakukan port scan), artinya, Nmap hanya akan melukan probing untuk mendeteksi apakah IP target statusnya up atau down.

$ nmap -sn 172.17.0.2              
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-11 14:01 EDT
Nmap scan report for 172.17.0.2 (172.17.0.2)
Host is up (0.0014s latency).
Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds

Jika ingin melakukan ping scan sekaligus dengan jumlah target yang banyak, misalnya saja kita ingin melakukan ping scan satu subnet /24 (sekitar 254 IP address), kita bisa mengganti targetnya menjadi seperti ini.

$ nmap -sn 172.17.0.0/24  
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-11 14:08 EDT
Nmap scan report for 172.17.0.1 (172.17.0.1)
Host is up (0.00023s latency).
Nmap scan report for 172.17.0.2 (172.17.0.2)
Host is up (0.00019s latency).
Nmap done: 256 IP addresses (2 hosts up) scanned in 3.04 seconds

Dari output di atas bisa dilihat bahwa terdapat 2 alamat IP yang statusnya up (aktif), yaitu IP 172.17.0.1 dan 172.17.0.2.

# Treat all hosts as online ( -Pn )

Option berikutnya yang bisa dicoba yaitu option -Pn, fungsi dari option ini yaitu untuk memerintahkan Nmap agar menganggap IP yang discan statusnya sedang up / online. Option ini berguna jika IP target melakukan blocking terhadap ICMP packet yang menyebabkan Nmap tidak bisa melakukan probing dan menganggap IP target tersebut sedang down / offline.

Jika packet probing Nmap diblok, maka Nmap tidak bisa melakukan scanning ke IP target, hal ini disebabkan karena Nmap akan melakukan test ping terlebih dahulu sebelum melakukan scanning port / service. Nah, dengan option ini, Nmap akan tetap melakukan scanning port ke IP target dan tidak peduli apakah IP target statusnya sedang up atau down.

$ nmap -Pn 172.17.0.2     
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-11 14:17 EDT
Nmap scan report for 172.17.0.2 (172.17.0.2)
Host is up (0.00017s latency).
Not shown: 979 closed tcp ports (conn-refused)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8009/tcp open  ajp13
8180/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 0.10 second

# TCP Connect Scan ( -sT )

TCP Connect Scan ( -ST ) ini merupakan salah satu teknik default dari Nmap, cara kerja dari TCP Connect Scan ini yaitu Nmap akan melakukan dan menyelesaikan three-way-handshake dengan target, sebagai gambaran, berikut ilustrasi dari teknik TCP Connect Scan.

Basic Information Gathering Dengan Nmap
Source : Nmap.org

Dari ilustrasi di atas :
  • Attacker (krad) akan mengirimkan paket SYN (Synchronization) untuk menanyakan apakah port 22 (SSH) sedang listening atau tidak? 
  • Kemudian, server (scanme) akan membalas dengan mengirimkan paket SYN/ACK (Synchronization/Acknowledge) dan memberitahukan bahwa port 22 sedang listening.
  • Attacker akan mengirimkan paket ACK (Acknowledge) dan koneksi pun terbentuk antara attacker dan server.
  • Setelah koneksi terbentuk dan sesi koneksi berakhir, maka server akan mengirimkan paket RST (Reset) untuk memutuskan koneksi.
Kekurangan dari teknik scanning ini yaitu kemungkinan besar firewall / IDS di sisi target akan mendeteksi dan mencatat aktivitas scanning yang terjadi, sehingga kurang disarankan.

Namun jika kalian ingin tetap menggunakan teknik ini, command yang bisa dijalankan yaitu sebagai berikut :
$ nmap -sT 172.17.0.2     
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-11 14:43 EDT
Nmap scan report for 172.17.0.2 (172.17.0.2)
Host is up (0.00045s latency).
Not shown: 979 closed tcp ports (conn-refused)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8009/tcp open  ajp13
8180/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds

# TCP SYN (Stealth) Scan ( -sS )

Berikutnya TCP SYN (Stealth) Scan, sesuai dengan namanya, teknik ini dapat berjalan dengan mode stealth atau siluman, artinya teknik ini relatif lebih baik dibandingkan teknik scanning TCP Connect Scan (-sT).

Kenapa demikian? Hal ini karena Nmap tidak akan akan menyelesaikan proses three-way-handshake dengan target. Setelah mendapatkan paket SYN/ACK dari target, dan mendapatkan informasi bahwa port / service yang dimintanya ternyata berada dalam posisi listening, alih-alih menyelesaikan proses three-way-handshake dengan target, Nmap justru akan mengirimkan paket RST untuk memutuskan koneksi sebelum koneksi TCP three-way-handshake terbentuk (established). 

Berikut ilustrasi dari proses scanning dengan teknik TCP SYN (Stealth) Scan :

Basic Information Gathering Dengan Nmap
Source : Nmap.org

Dari penjelasan di atas, bisa disimpulkan bahwa teknik ini relatif cukup baik. Karena Nmap tidak menyelesaikan proses three-way-handshake, maka kita bisa meminimalisir agar proses scanning yang kita lakukan tidak terdeteksi / tercatat oleh firewall maupun IDS yang ada di sisi target.

# UDP Scan ( -sU )

Secara umum, mayoritas layanan yang ada di internet berjalan di atas protocol TCP sebagai transport layer-nya, namun jangan lupa, beberapa layanan populer seperti DNS, DHCP, dan SNMP justru berjalan di UDP. 

Perbedaan UDP dengan TCP yaitu UDP ini sifatnya connection-less, artinya protocol UDP tidak peduli apakah paket yang dikirimkannya bisa selamat sampai tujuan atau tidak. Jika ternyata ada paket yang tidak sampai tujuan, UDP tidak akan mengirimkan penggantinya, hal ini karena UDP tidak memiliki mekanisme error checking seperti yang dimiliki oleh protocol TCP.

Karena alasan itulah proses scanning dengan teknik UDP Scan ini relatif lebih lambat dan memakan waktu, namun demikian, kita tidak bisa mengabaikannya begitu saja, karena seorang threat actor tetap akan melakukan pengecekan terhadap service yang berjalan di atas protocol UDP.

Untuk menjalankan scanning terhadap service UDP ke IP target dengan Nmap, kita memerlukan privilege sebagai root, jadi harus beralih dulu ke user root, atau bisa menggunakan sudo seperti ini.

$ sudo nmap -sU 172.17.0.2
[sudo] password for dodiv: 
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-11 15:20 EDT
Nmap scan report for 172.17.0.2 (172.17.0.2)
Host is up (0.00012s latency).
Not shown: 954 closed udp ports (port-unreach), 44 open|filtered udp ports (no-response)
PORT    STATE SERVICE
111/udp open  rpcbind
137/udp open  netbios-ns
MAC Address: 02:42:AC:11:00:02 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 1032.77 seconds

# Enable OS Detection ( -O )

Ini merupakan salah satu teknik fingerprinting, yaitu teknik pengumpulan informasi untuk mendapatkan informasi mengenai network protocol, versi software, dan juga sistem operasi yang terinstall di mesin target.

Dengan menambahkan option -O ketika menjalankan Nmap, kita bisa mendeteksi sistem operasi apa yang terpasang pada mesin target, berikut contoh output dari hasil scanningnya.

$ sudo nmap -O 172.17.0.2
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-11 15:33 EDT
Nmap scan report for 172.17.0.2 (172.17.0.2)
Host is up (0.00010s latency).
Not shown: 979 closed tcp ports (reset)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
(Output omitted) ..
MAC Address: 02:42:AC:11:00:02 (Unknown)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.76 seconds     

Dari output di atas bisa dilihat Nmap berhasil mendeteksi bahwa mesin target berjalan di atas kernel Linux. Namun Nmap tidak bisa mendeteksi distro Linux apa yang digunakan, apakah itu Ubuntu, Debian, ataupun distro Linux lainnya.

# Service / Version Detection ( -sV )

Teknik ini merupakan teknik scanning favorit saya, karena dengan teknik ini kita bisa mendeteksi port / service apa saja yang listening, bisa mendeteksi versi software dari suatu service yang berjalan, bahkan bisa mendeteksi sistem operasi sekaligus.

$ nmap -sV 172.17.0.2                   
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-11 15:50 EDT
Nmap scan report for 172.17.0.2 (172.17.0.2)
Host is up (0.00012s latency).
Not shown: 979 closed tcp ports (conn-refused)
PORT     STATE SERVICE     VERSION
21/tcp   open  ftp         vsftpd 2.3.4
22/tcp   open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp   open  telnet      Linux telnetd
25/tcp   open  smtp        Postfix smtpd
80/tcp   open  http        Apache httpd 2.2.8 ((Ubuntu) DAV/2)
111/tcp  open  rpcbind     2 (RPC #100000)
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
512/tcp  open  exec?
513/tcp  open  login
514/tcp  open  tcpwrapped
1099/tcp open  java-rmi    GNU Classpath grmiregistry
1524/tcp open  ingreslock?
2121/tcp open  ftp         ProFTPD 1.3.1
3306/tcp open  mysql       MySQL 5.0.51a-3ubuntu5
5432/tcp open  postgresql  PostgreSQL DB 8.3.0 - 8.3.7
5900/tcp open  vnc         VNC (protocol 3.3)
6000/tcp open  X11         (access denied)
6667/tcp open  irc         UnrealIRCd
8009/tcp open  ajp13       Apache Jserv (Protocol v1.3)
8180/tcp open  http        Apache Tomcat/Coyote JSP engine 1.1
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port1524-TCP:V=7.92%I=7%D=7/11%Time=62CC7F0E%P=x86_64-pc-linux-gnu%r(NU
SF:LL,2A,"\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0b5b512bc:/#\x20")%r(Gene
SF:ricLines,D6,"\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0b5b512bc:/#\x20\n\
SF:x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0b5b512bc:/#\x20\n\x1b\]0;@e3a0b5
SF:b512bc:\x20/\x07root@e3a0b5b512bc:/#\x20\n\x1b\]0;@e3a0b5b512bc:\x20/\x
SF:07root@e3a0b5b512bc:/#\x20\n\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0b5b
SF:512bc:/#\x20")%r(GetRequest,39,"\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a
SF:0b5b512bc:/#\x20GET\x20/\x20HTTP/1\.0\n")%r(HTTPOptions,109,"\x1b\]0;@e
SF:3a0b5b512bc:\x20/\x07root@e3a0b5b512bc:/#\x20OPTIONS\x20/\x20HTTP/1\.0\
SF:nbash:\x20OPTIONS:\x20command\x20not\x20found\n\x1b\]0;@e3a0b5b512bc:\x
SF:20/\x07root@e3a0b5b512bc:/#\x20\n\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3
SF:a0b5b512bc:/#\x20\n\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0b5b512bc:/#\
SF:x20\n\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0b5b512bc:/#\x20")%r(RTSPRe
SF:quest,109,"\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0b5b512bc:/#\x20OPTIO
SF:NS\x20/\x20RTSP/1\.0\nbash:\x20OPTIONS:\x20command\x20not\x20found\n\x1
SF:b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0b5b512bc:/#\x20\n\x1b\]0;@e3a0b5b5
SF:12bc:\x20/\x07root@e3a0b5b512bc:/#\x20\n\x1b\]0;@e3a0b5b512bc:\x20/\x07
SF:root@e3a0b5b512bc:/#\x20\n\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0b5b51
SF:2bc:/#\x20")%r(RPCCheck,3F,"\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0b5b
SF:512bc:/#\x20\x07\(root\x20\x07\x08\x08\x08\x08\x08\x08\x07\x07\x1b\[1@\
SF:|")%r(DNSVersionBindReqTCP,3B,"\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0
SF:b5b512bc:/#\x20\x07\x07\x07version\x07bind\x07\x07")%r(DNSStatusRequest
SF:TCP,47,"\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0b5b512bc:/#\x20\x1b\[H\
SF:x1b\[2Jroot@e3a0b5b512bc:/#\x20\x07")%r(Help,A2,"\x1b\]0;@e3a0b5b512bc:
SF:\x20/\x07root@e3a0b5b512bc:/#\x20HELP\nbash:\x20HELP:\x20command\x20not
SF:\x20found\n\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0b5b512bc:/#\x20\n\x1
SF:b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0b5b512bc:/#\x20")%r(SSLSessionReq,
SF:193,"\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a0b5b512bc:/#\x20\^CS\x08\x0
SF:8\x08\x1b\[1@O\x07\x1b\[1@\?\x1b\[1@G\x07\x07\x07\x1b\[1@,\x08\x08\x08\
SF:x08:\x1b\[K\xea\xb2`~\xf3\x08\x08\x08\x08\x08\x08O\?G,\^CS\x07\x08\x08\
SF:x08\x08\x08\x08\x08\x07\x07\x1b\[1@{\r\x1b\[12P\(arg:\x201\)\x20{\x08\x
SF:08\x08\x089\)\x20{\r\x1b\[12@root@e3a0b5b512bc:/#\x20{O\?G,\^CS\x07\x07
SF:w\x07\x07=\x07\x07\x07n\(\r\x1b\[7P\(i-search\)`':\x20{O\?G,\^CSw=n\(\r
SF:\x1b\[8@root@e3a0b5b512bc:/#\x20{O\?G,\^CSw=\^@\(\nbash:\x20{O\?G,\x03S
SF:w=:\x20command\x20not\x20found\n\x1b\]0;@e3a0b5b512bc:\x20/\x07root@e3a
SF:0b5b512bc:/#\x20f\x07edcba`\x08\x08\x08\x08\x08\x08\x08\x1b\[K\r\(rever
SF:se-i-search\)`':\x20\r\x1b\[1Proot@e3a0b5b512bc:/#\x20\x07\x07\x07\x07\
SF:x07");
Service Info: Hosts:  metasploitable.localdomain, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 152.86 seconds

Dari output di atas, terlihat bahwa Nmap berhasil mendeteksi port yang listening (open), service, versi software yang dipakai oleh setiap service, sistem operasi yang dipakai, bahkan nama hostname dari target pun bisa terdeteksi.

Only scan specified ports ( -p )

Jika kita hanya ingin melakukan scanning terhadap port tertentu saja, kita bisa menggunakan option -p ini. Misalnya saja saya hanya ingin mengetahui apakah service HTTP Port 80 pada IP 172.17.0.2 sedang running atau tidak? 

Maka command atau perintah yang bisa dijalankan yaitu sebagai berikut :

$ nmap -p80 172.17.0.2       
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-11 15:59 EDT
Nmap scan report for 172.17.0.2 (172.17.0.2)
Host is up (0.00013s latency).

PORT   STATE SERVICE
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds

Dari output di atas, Nmap hanya menampilkan hasil scanning ke port 80 saja, artinya port lain yang ada pada IP target diabaikan oleh Nmap, ini berguna untuk melakukan scanning dengan cepat ke port-port yang spesifik.

Verbose ( -v )

Kalau kita ingin melihat proses scanning yang dijalankan oleh Nmap secara realtime, maka kita bisa menambahkan option -v pada command Nmap.

$ nmap -p80,443,21,22,23 172.17.0.2 -v
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-11 16:09 EDT
Initiating Ping Scan at 16:09
Scanning 172.17.0.2 [2 ports]
Completed Ping Scan at 16:09, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 16:09
Completed Parallel DNS resolution of 1 host. at 16:09, 0.00s elapsed
Initiating Connect Scan at 16:09
Scanning 172.17.0.2 (172.17.0.2) [5 ports]
Discovered open port 80/tcp on 172.17.0.2
Discovered open port 21/tcp on 172.17.0.2
Discovered open port 22/tcp on 172.17.0.2
Discovered open port 23/tcp on 172.17.0.2
Completed Connect Scan at 16:09, 0.00s elapsed (5 total ports)
Nmap scan report for 172.17.0.2 (172.17.0.2)
Host is up (0.00019s latency).

PORT    STATE  SERVICE
21/tcp  open   ftp
22/tcp  open   ssh
23/tcp  open   telnet
80/tcp  open   http
443/tcp closed https

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds

Nmap Scripting Engine ( NSE )

Ini merupakan salah satu kelebihan dari Nmap, yaitu Nmap Scripting Engine (NSE), fitur ini cukup powerfull dan fleksibel yang memungkinkan kita untuk melakukan otomasi scanning terhadap mesin target. Dengan adanya fitur NSE ini, kita bisa melakukan enumerasi service untuk mendapatkan informasi yang lebih detail mengenai target, bahkan fitur NSE ini bisa dimanfaatkan untuk mendeteksi adanya celah kerentanan (vulnerability) pada service yang sedang berjalan di mesin target.

Nmap Scripting Engine bisa ditemukan di direktori /usr/share/nmap/scripts. Untuk menggunakannya juga cukup mudah, kita hanya perlu menambahkan parameter --script diikuti dengan nama script yang akan digunakan.

Contoh, misalnya saya ingin melakukan enumerasi HTTP Service pada port 80.

$ nmap --script http-enum -p80 172.17.0.2     
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-12 05:15 EDT
Nmap scan report for 172.17.0.2
Host is up (0.0011s latency).

PORT   STATE SERVICE
80/tcp open  http
| http-enum: 
|   /tikiwiki/: Tikiwiki
|   /test/: Test page
|   /phpinfo.php: Possible information file
|   /phpMyAdmin/: phpMyAdmin
|   /doc/: Potentially interesting directory w/ listing on 'apache/2.2.8 (ubuntu) dav/2'
|   /icons/: Potentially interesting folder w/ directory listing
|_  /index/: Potentially interesting folder

Nmap done: 1 IP address (1 host up) scanned in 1.50 seconds

Dari hasil output di atas, bisa dilihat bahwa Nmap berhasil meng-enum informasi yang lebih detail mengenai HTTP Service pada mesin metasploitable2, dari hasil output di atas kita bisa mendapatkan informasi direktori yang mungkin saja akan berguna ketika menjalankan proses penetration testing.

Contoh lain, misalnya kita ingin mengecek apakah pada HTTP Service tersebut terdapat Common Vulnerability Exposure (CVE) atau tidak? Kita bisa menjalankan command seperti berikut ini.

$ nmap --script vuln -p80 172.17.0.2
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-12 05:20 EDT
Nmap scan report for 172.17.0.2
Host is up (0.00019s latency).

PORT   STATE SERVICE
80/tcp open  http
| http-slowloris-check: 
|   VULNERABLE:
|   Slowloris DOS attack
|     State: LIKELY VULNERABLE
|     IDs:  CVE:CVE-2007-6750

Dari hasil output di atas bisa dilihat bahwa Nmap berhasil mendeteksi adanya vulnerability pada service HTTP Port 80, yaitu Slowloris DOS attack.

Conclusion

Demikian tutorial belajar information gathering dengan Nmap yang bisa saya share, semoga bermanfaat bagi teman-teman yang saat ini sedang mempelajari ilmu Cybersecurity. Nantikan artikel menarik lainnya dari blog www.tutorialjaringan.com, terimakasih.

Advertisement
 

Start typing and press Enter to search