Sebagai orang security jaringan, anda tidak hanya di tuntut untuk mengerti setup suatu perangkat network atau firewall, atau hanya menyediakan service availibility tapi juga anda perlu memperhatikan aspek security. Apalagi saat ini perkembangan IT cukup pesat, termasuk cyber attacks. Model cyber attacks saat ini sudah semakin canggih dan bisa melumpuhkan sebuah system sbg contoh adalah serangan yang heboh tahun 2017 kmren WannaCry, Petya Ransomware. Maka seorang security engineer perlu berpikir layaknya cyber attacker. Apalagi yang di proteksi adalah service penting, atau service yang bisa menghasilkan revenue bagi perusuhaan tersebut.
Serangan terjadi biasanya karena adanya celah keamanan yang tidak terproteksi dengan baik. Meskipun anda punya firewall, tapi jika anda membiarkan celah tersebut, maka besar sekali kemungkinan terjadi serangan. Serangan sbetulnya bisa terjadi dari dalam maupun dari luar, oleh karena itu dari semua ‘pintu’ harus bener-bener terkunci dengan baik, jangan sampai ada backdoor.
Nah, hal yang paling mendasar yang di proteksi adalah menutupi semua port-port yang tidak di perlukan, baik dari sisi server maupun di firewall. Karena yang biasanya pertama kali di lakukan oleh attacker adalah melakukan scaning port dengan menggunakan tools seperti nmap. Tujuannya adalah mengumpulkan atau gathering information terkait system yang di tuju baik port yang di buka, aplikasi maupun versinya, bahkan jenis sistem operasinya. Baik bertikut ini saya contohkan beberapa command di nmap untuk melakukan scaning port di server – ini anda bisa lakukan di server anda sebelum server tersebut di pindahkan ke firewall, atau anda bisa lakukan test scaning setelah di proteksi oleh firewall. Tujuannya adalah memastikan bahwa proteksi di firewall juga sudah sesuai standar security.
Berikut ini contoh command nmap yang sy coba lakukan di system opersi kali linux.
nmap ip_address
1 2 3 4 5 6 7 8 9 10 11 |
root@kali:~# nmap 192.168.99.193 Starting Nmap 7.60 ( https://nmap.org ) at 2018-03-31 11:18 EDT Nmap scan report for 192.168.99.193 Host is up (0.000045s latency). Not shown: 999 closed ports PORT STATE SERVICE 80/tcp open http MAC Address: 00:50:56:B6:8A:A8 (VMware) Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds |
Description: Anda bisa lihat contoh standar command nmap di ikuti ip address server tujuan atau pada case anda bisa juga ip local server. terlihat bahwa service port 80 dengan status open.
nmap -v ip_address
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
root@kali:~# nmap -v 192.168.99.193 Starting Nmap 7.60 ( https://nmap.org ) at 2018-03-31 11:28 EDT Initiating ARP Ping Scan at 11:28 Scanning 192.168.99.193 [1 port] Completed ARP Ping Scan at 11:28, 0.04s elapsed (1 total hosts) Initiating Parallel DNS resolution of 1 host. at 11:28 Completed Parallel DNS resolution of 1 host. at 11:28, 0.00s elapsed Initiating SYN Stealth Scan at 11:28 Scanning 192.168.99.193 [1000 ports] Discovered open port 80/tcp on 192.168.99.193 Completed SYN Stealth Scan at 11:28, 0.07s elapsed (1000 total ports) Nmap scan report for 192.168.99.193 Host is up (0.000047s latency). Not shown: 999 closed ports PORT STATE SERVICE 80/tcp open http MAC Address: 00:50:56:B6:8A:A8 (VMware) Read data files from: /usr/bin/../share/nmap Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds Raw packets sent: 1001 (44.028KB) | Rcvd: 1001 (40.032KB) |
Description: Dengan opsi -v atau increasing verbosity artinya menampilkan lebih banyak informasi dari proses scaning yang sedang berjalan. sbg contoh di atas, dia menampilkan detail proses scaning dari awal (initial) hingga proses tersebut selesai.
nmap -v -O ip_address
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
root@kali:~# nmap -v -O 192.168.99.193 Starting Nmap 7.60 ( https://nmap.org ) at 2018-03-31 11:42 EDT Initiating ARP Ping Scan at 11:42 Scanning 192.168.99.193 [1 port] Completed ARP Ping Scan at 11:42, 0.05s elapsed (1 total hosts) Initiating Parallel DNS resolution of 1 host. at 11:42 Completed Parallel DNS resolution of 1 host. at 11:42, 0.00s elapsed Initiating SYN Stealth Scan at 11:42 Scanning 192.168.99.193 [1000 ports] Discovered open port 80/tcp on 192.168.99.193 Completed SYN Stealth Scan at 11:42, 0.08s elapsed (1000 total ports) Initiating OS detection (try #1) against 192.168.99.193 Nmap scan report for 192.168.99.193 Host is up (0.00026s latency). Not shown: 999 closed ports PORT STATE SERVICE 80/tcp open http MAC Address: 00:50:56:B6:8A:A8 (VMware) Device type: general purpose Running: Linux 3.X|4.X OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 OS details: Linux 3.2 - 4.8 Uptime guess: 0.060 days (since Sat Mar 31 10:16:04 2018) Network Distance: 1 hop TCP Sequence Prediction: Difficulty=261 (Good luck!) IP ID Sequence Generation: All zeros Read data files from: /usr/bin/../share/nmap OS detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 1.99 seconds Raw packets sent: 1023 (45.806KB) | Rcvd: 1015 (41.282KB) |
Description : Gunakan atau tambahkan opsi -O untuk mendeteksi jenis operating system, di atas terlihat jelas jenis os nya Linux beserta versi nya, anda juga bisa lihat uptime nya,
nmap -sV ip_address
1 2 3 4 5 6 7 8 9 10 11 12 |
root@kali:~# nmap -sV 192.168.99.193 Starting Nmap 7.60 ( https://nmap.org ) at 2018-03-31 11:49 EDT Nmap scan report for 192.168.99.193 Host is up (0.000048s latency). Not shown: 999 closed ports PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.18 ((Ubuntu)) MAC Address: 00:50:56:B6:8A:A8 (VMware) Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 7.28 seconds |
Description: Opsi -sV tujuannya untuk mendeteksi versi dari aplikasi. sbg contoh di atas service http dengan versi apache httpd 2.4.18. Anda bisa cek di internet versi apache tersebut kira2 punya vulnerability apa saja. sehingga nanti jika di perlukan, ada update versi yang lebih di rekomendasikan. Biasanya di www.cvedetails.com ada penjelasan lebih lengkapnya.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
map 7.60 ( https://nmap.org ) Usage: nmap [Scan Type(s)] [Options] {target specification} TARGET SPECIFICATION: Can pass hostnames, IP addresses, networks, etc. Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 -iL <inputfilename>: Input from list of hosts/networks -iR <num hosts>: Choose random targets --exclude <host1[,host2][,host3],...>: Exclude hosts/networks --excludefile <exclude_file>: Exclude list from file HOST DISCOVERY: -sL: List Scan - simply list targets to scan -sn: Ping Scan - disable port scan -Pn: Treat all hosts as online -- skip host discovery -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes -PO[protocol list]: IP Protocol Ping -n/-R: Never do DNS resolution/Always resolve [default: sometimes] --dns-servers <serv1[,serv2],...>: Specify custom DNS servers --system-dns: Use OS's DNS resolver --traceroute: Trace hop path to each host SCAN TECHNIQUES: -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans -sU: UDP Scan -sN/sF/sX: TCP Null, FIN, and Xmas scans --scanflags <flags>: Customize TCP scan flags -sI <zombie host[:probeport]>: Idle scan -sY/sZ: SCTP INIT/COOKIE-ECHO scans -sO: IP protocol scan -b <FTP relay host>: FTP bounce scan PORT SPECIFICATION AND SCAN ORDER: -p <port ranges>: Only scan specified ports Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9 --exclude-ports <port ranges>: Exclude the specified ports from scanning -F: Fast mode - Scan fewer ports than the default scan -r: Scan ports consecutively - don't randomize --top-ports <number>: Scan <number> most common ports --port-ratio <ratio>: Scan ports more common than <ratio> SERVICE/VERSION DETECTION: -sV: Probe open ports to determine service/version info --version-intensity <level>: Set from 0 (light) to 9 (try all probes) --version-light: Limit to most likely probes (intensity 2) --version-all: Try every single probe (intensity 9) --version-trace: Show detailed version scan activity (for debugging) SCRIPT SCAN: -sC: equivalent to --script=default --script=<Lua scripts>: <Lua scripts> is a comma separated list of directories, script-files or script-categories --script-args=<n1=v1,[n2=v2,...]>: provide arguments to scripts --script-args-file=filename: provide NSE script args in a file --script-trace: Show all data sent and received --script-updatedb: Update the script database. --script-help=<Lua scripts>: Show help about scripts. <Lua scripts> is a comma-separated list of script-files or script-categories. OS DETECTION: -O: Enable OS detection --osscan-limit: Limit OS detection to promising targets --osscan-guess: Guess OS more aggressively TIMING AND PERFORMANCE: Options which take <time> are in seconds, or append 'ms' (milliseconds), 's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m). -T<0-5>: Set timing template (higher is faster) --min-hostgroup/max-hostgroup <size>: Parallel host scan group sizes --min-parallelism/max-parallelism <numprobes>: Probe parallelization --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Specifies probe round trip time. --max-retries <tries>: Caps number of port scan probe retransmissions. --host-timeout <time>: Give up on target after this long --scan-delay/--max-scan-delay <time>: Adjust delay between probes --min-rate <number>: Send packets no slower than <number> per second --max-rate <number>: Send packets no faster than <number> per second FIREWALL/IDS EVASION AND SPOOFING: -f; --mtu <val>: fragment packets (optionally w/given MTU) -D <decoy1,decoy2[,ME],...>: Cloak a scan with decoys -S <IP_Address>: Spoof source address -e <iface>: Use specified interface -g/--source-port <portnum>: Use given port number --proxies <url1,[url2],...>: Relay connections through HTTP/SOCKS4 proxies --data <hex string>: Append a custom payload to sent packets --data-string <string>: Append a custom ASCII string to sent packets --data-length <num>: Append random data to sent packets --ip-options <options>: Send packets with specified ip options --ttl <val>: Set IP time-to-live field --spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address --badsum: Send packets with a bogus TCP/UDP/SCTP checksum OUTPUT: -oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3, and Grepable format, respectively, to the given filename. -oA <basename>: Output in the three major formats at once -v: Increase verbosity level (use -vv or more for greater effect) -d: Increase debugging level (use -dd or more for greater effect) --reason: Display the reason a port is in a particular state --open: Only show open (or possibly open) ports --packet-trace: Show all packets sent and received --iflist: Print host interfaces and routes (for debugging) --append-output: Append to rather than clobber specified output files --resume <filename>: Resume an aborted scan --stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML --webxml: Reference stylesheet from Nmap.Org for more portable XML --no-stylesheet: Prevent associating of XSL stylesheet w/XML output MISC: -6: Enable IPv6 scanning -A: Enable OS detection, version detection, script scanning, and traceroute --datadir <dirname>: Specify custom Nmap data file location --send-eth/--send-ip: Send using raw ethernet frames or IP packets --privileged: Assume that the user is fully privileged --unprivileged: Assume the user lacks raw socket privileges -V: Print version number -h: Print this help summary page. EXAMPLES: nmap -v -A scanme.nmap.org nmap -v -sn 192.168.0.0/16 10.0.0.0/8 nmap -v -iR 10000 -Pn -p 80 SEE THE MAN PAGE (https://nmap.org/book/man.html) FOR MORE OPTIONS AND EXAMPLES |
Nah terakhir anda bisa mencoba sendiri menggunakan lab anda. tentu anda bisa mencoba dengan opsi scan yang lebih beragam sperti saya perlihatkan di opsi detail nmap di atas.
Next action: scaning hanya bertujuan untuk mengumpulkan informasi port yang open dst, maka action berikutnya adalah menutupi port-port yang tidak perlu dan menginstall aplikasi yang di rekomendasikan, atau bug nya tidak ada. Dan dari sisi firewall perlu ada checking rules nya, impelemntasi rule nya di perketat, jangan sampai anda create rule any any 😀
Semoga bermanfaat 🙂
Komentar