কেমন আছেন আপনি ? আশা করি ভালো আছেন। আজকের টিউটোরিয়ালে আপনি সবচেয়ে গুরুত্বপূর্ন টুলগুলির মধ্যে অন্যতম একটি টুল ‘Nmap‘ সম্পর্কে জানতে চলেছেন। আজকের আর্টিকেলটি বিশেষ করে শুধুমাত্র আপনার জন্যই সহজ ভাষায় লিখেছি। চলুন কথা না বাড়িয়ে Nmap সম্পর্কে জেনে নেওয়া যাক।
Nmap কি ?
Nmap – যার সম্পূর্ণ নাম নেটওয়ার্ক ম্যাপার। এটি একটি ওপেন-সোর্স টুল অর্থাৎ যে কেউ এই টুল সম্পূর্ণ বিনামূল্যে ব্যবহার করতে পারে। এই টুলটি কোনো নেটওয়ার্ক বা ডোমেইন স্ক্যান করার জন্য ব্যবহার করা হয়।
নিচে কিছু শব্দ বা ভাষা আপনার কাছে নতুন বলে মনে হতে পারে যেমনকি – নেটওয়ার্ক, পোর্ট, সার্ভিস, ডোমেন, অপারেটিং সিস্টেম, IP অ্যাড্রেস, ফায়ারওয়াল প্রভৃতি – এই লিংকে ক্লিক করে অতি সহজে জেনে নিতে পারেন : https://thesouvik.com/eh-roadmap/
Nmap এর মাধ্যমে আপনি যা যা জানতে পারবেন :
- নেটওয়ার্কে কোন কোন ডিভাইস (Host) আছে।
- কোন কোন Port খোলা (Open) আছে।
- ডিভাইসে কোন কোন Services চলছে (যেমন –
HTTP, FTP, SSHইত্যাদি)। - ডিভাইসে কোন Operating System চলছে।
- সিকিউরিটি টেস্টিং/পেনিট্রেশন টেস্টিং করতে পারবেন।
Nmap শিখে আপনি ভবিষ্যতে যা যা কাজ করতে পারবেন :
- Ethical হ্যাকিং এর দক্ষতাকে আরও বেশি বাড়াতে পারবেন।
- Cyber সিকিউরিটি তে ভালো ক্যারিয়ার গড়তে পারবেন।
- Bug Bounty সম্পর্কিত কাজ করে অনেক টাকা আয় করতে পারবেন।
- Freelancing মূলক কাজ করে ভালো আয় করতে পারবেন।
Nmap কিভাবে ইন্সটল করবেন ?
বিভিন্ন অপারেটিং সিস্টেমের ক্ষেত্রে ইনস্টলেশন পদ্ধতিও বিভিন্ন। সুতরাং আপনি যে অপারেটিং সিস্টেমটি ব্যবহার করেন, নিচের পদ্ধতি অনুসরণ করে সেভাবে ইন্সটল করার চেষ্টা করুন –
✦ Linux এর ক্ষেত্রে –
Kali Linux, Kali Nethunter, Parrot OS, Ubuntu – এইগুলিতে আগে থেকেই Nmap ইন্সটল থাকে। যদি না ইন্সটল থাকে তাহলে নিচের কমান্ডের এর মাধ্যমে ইন্সটল করে নিন।
sudo apt update
sudo apt install nmap -y✦ Termux (Android) এর ক্ষেত্রে –
pkg update && pkg upgrade -y
pkg install nmap -yযেকোন প্যাকেজ বা টুল ইন্সটল করার আগে কোন সমস্যা এড়াতে প্যাকেজ গুলোকে একবার আপডেট করে নেবেন।
চলুন এবার ধাপে ধাপে Nmap শেখার চেষ্টা করি –
প্রথমে আপনাদের একটি টার্গেট IP অ্যাড্রেস বা ডোমেইন (Domain) এর দরকার হবে যার ওপর আপনি Nmap স্ক্যান করতে পারবেন। আপনি আপনার ডিভাইসের WiFi সেটিং এ গিয়ে চেক করে IP অ্যাড্রেসটা জানুন। আমি উদাহরণস্বরূপ Nmap স্ক্যানগুলো দেখানোর জন্য আমার রাউটার এর IP অ্যাড্রেসটি টার্গেট IP হিসাবে বেছে নিলাম।
আজকের টিউটোরিয়ালে আমাদের টার্গেট IP অ্যাড্রেস : 192.168.0.1
প্রথমেই জানবো একদম বেসিক কমান্ড সম্পর্কে যেখানে Nmap লেখার পর আমাদেরকে টার্গেট IP টা বসিয়ে দিতে হবে। আমরা যদি নিচের কমান্ডটি লিখে এন্টার করি তাহলে টার্গেট IP অ্যাড্রেস এর কিছু সীমিত তথ্যই দেখতে পাবো, যেমনকি – কোন কোন পোর্ট খোলা রয়েছে এবং তাতে কোন কোন সার্ভিস (http, ftp, ssh ইত্যাদি) চলছে।
➛ খুব সাধারণ সিনট্যাক্স :
WiFi নেটওয়ার্কের ক্ষেত্রে : nmap <ip address>
Domain এর ক্ষেত্রে : nmap <domain>
কমান্ড :
nmap 192.168.0.1আউটপুট :
Nmap scan report for 192.168.0.1 Host is up
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 2.28 sec.কমান্ড :
nmap testphp.vulnweb.comআউটপুট :
Nmap scan report for testphp.vulnweb.com (44.228.249.3)
Not shown: 998 closed tcp ports (no-response)
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 2.07 sec.মনে রাখবেন, Nmap টুলের মাধ্যমে WiFi নেটওয়ার্ক ছাড়াও আপনি নির্দিষ্ট কোনো ডোমেইন ( testphp.vulnweb.com, testfire.net প্রভৃতি) স্ক্যান করতে পারবেন। তবে যেকোন WiFi নেটওয়ার্ক বা ডোমেইন স্ক্যান করার আগে ডোমেইনের মালিকের অনুমতি নিয়ে তবেই স্ক্যান করবেন। স্ক্যান পদ্ধতি একই, শুধু IP অ্যাড্রেস এর জায়গায় ডোমেইন এর নামটা লিখে দেবেন।
এবার আমরা একে একে Nmap এর সমস্ত গুরুত্বপূর্ণ ফ্ল্যাগ/অপশন এর নাম ও তাদের কাজ সম্পর্কে জানবো।
| Flags/Options | কাজ বা ব্যবহার |
| -sn | Ping Scan/Host Discovery |
| -sL | Host Lists Scan |
| -p | Specific Port Scan |
| -p- | All Ports(65535) Scan |
| -F | Fast Scan/Top 100 Ports Scan |
| ––open | Show Open Ports |
| -sS | Stealth Scan |
| -sT | TCP Connect Scan |
| -sV | Service Version Detect |
| -O | Operating System Detect |
| -A | Aggressive Scan |
| -v | Verbose Mode |
| -vv | Double Verbose Mode |
| -oN | Save Output (Text) |
| -oX | Save Output (Xml) |
| -oA | Save Output (txt,xml,gnmap) |
➛ নির্দিষ্ট স্ক্যানের সিনট্যাক্স :
WiFi নেটওয়ার্কের ক্ষেত্রে : nmap <flag/option> <ip address>
Domain এর ক্ষেত্রে : nmap <flag/option> <domain>
✱ Ping স্ক্যান অথবা Host Discovery :
ক) -sn (Ping Scan) : টার্গেট WiFi নেটওয়ার্কের সাথে যে যে ডিভাইস যুক্ত রয়েছে, তাদের মধ্যে যারা যারা WiFi চালু রেখেছে বা এই মুহূর্তে অনলাইন রয়েছে, শুধুমাত্র তাদের ডিভাইসের IP অ্যাড্রেস দেখাবে (Host is up).
কমান্ড :
nmap -sn 192.168.0.1/24আউটপুট :
দেখুন এখানে দুটো ডিভাইস অনলাইন রয়েছে 192.168.0.1 (রাউটার) এবং 192.168.0.2 (রাউটার এর সাথে যুক্ত থাকা ডিভাইস)
Nmap scan report for 192.168.0.1 Host is up
MAC Address: 6C:3A:B0:A6:C7:F4 (TP-Link Limited)
Nmap scan report for 192.168.0.2 Host is up
MAC Address: 30:BA:7D:F5:72:C1 (OnePlus Technology)
Nmap done: 256 IP addresses (2 hosts up) scanned in 2.38 sec.✱ Ports স্ক্যান (Open/Close/Filtered) :
ক) -p (Specific Ports Scan) : টার্গেট WiFi নেটওয়ার্কে কোনো পোর্ট খোলা, বন্ধ বা ফিল্টার রয়েছে কিনা এই ফ্ল্যাগের মাধ্যমে চেক করতে পারি। আমরা চাইলে একটি নির্দিষ্ট পোর্ট স্ক্যান করে দেখতে পারি আবার একাধিক পোর্টও স্ক্যান করে দেখতে পারি। তবে একাধিক পোর্ট নম্বরগুলো কমা দিয়ে লিখতে হবে।
› একটি নির্দিষ্ট পোর্ট স্ক্যান করতে চাইলে কমান্ড :
nmap -p 22 192.168.0.1আউটপুট :
Nmap scan report for 192.168.0.1 Host is up
PORT STATE SERVICE
22/tcp closed ssh
Nmap done: 1 IP address (1 host up) scanned in 0.81 sec.› একাধিক পোর্ট স্ক্যান করতে চাইলে কমান্ড :
nmap -p 22,80,443 192.168.0.1আউটপুট :
Nmap scan report for 192.168.0.1 Host is up
PORT STATE SERVICE
22/tcp closed ssh
80/tcp open http
443/tcp closed https
Nmap done: 1 IP address (1 host up) scanned in 0.93 sec.› রেঞ্জ হিসাবে পোর্ট স্ক্যান করতে চাইলে কমান্ড :
nmap -p 1000-2000 192.168.0.1আউটপুট :
Nmap scan report for 192.168.0.1 Host is up
Not shown: 1000 closed tcp ports (conn-refused)
PORT STATE SERVICE
1900/tcp open upnp
Nmap done: 1 IP address (1 host up) scanned in 0.63 sec.খ) -p- (All Ports Scan) : এই ফ্ল্যাগের মাধ্যমে সমস্ত পোর্ট অর্থাৎ 65535 টি পোর্ট স্ক্যান করা যায়। তবে এই স্ক্যান করতে অনেক সময় লাগে।
কমান্ড :
nmap -p- 192.168.0.1আউটপুট : ক্ষমা করবেন, রেজাল্ট অনেক বড় হওয়ার কারণে আউটপুট দেখানো সম্ভব নয়।
গ) -F (Fast Scan) : এই ফ্ল্যাগের মাধ্যমে শুধুমাত্র কিছু জনপ্রিয় পোর্ট (21, 22, 80, 443 ইত্যাদি) স্ক্যান করা হয়। এই স্ক্যান খুব তাড়াতাড়ি রেজাল্ট দেখিয়ে দেয়।
কমান্ড :
nmap -F 192.168.0.1আউটপুট :
Nmap scan report for 192.168.0.1 Host is up
Not shown: 98 closed tcp ports (reset)
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.58 sec.ঘ) ––open (Open Ports Scan) : এই ফ্ল্যাগের মাধ্যমে স্ক্যান করে শুধুমাত্র ওপেন পোর্ট বা যে পোর্টগুলো খোলা আছে সেগুলো দেখা সম্ভব।
কমান্ড :
nmap --open 192.168.0.1আউটপুট :
Nmap scan report for 192.168.0.1 Host is up
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 1.28 sec.ঙ) -sS (Stealth Scan) : অনেকসময় ফায়ারওয়াল কিছু স্ক্যানকে ব্লক করে দেয়, যার ফলে ঠিকঠাক রেজাল্ট দেখা যায় না। এই ফ্ল্যাগ ব্যবহার করলে ফায়ারওয়াল এরিয়ে স্ক্যান করে চেক করা যায় কোন কোন পোর্ট খোলা রয়েছে।
কমান্ড :
nmap -sS 192.168.0.1আউটপুট :
Nmap scan report for 192.168.0.1 Host is up
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 1.28 sec.চ) -sT (TCP Connect Scan) : TCP সংযোগের মাধ্যমে (3-Way-Handshake) বোঝা যায় কোন কোন পোর্ট খোলা রয়েছে।
কমান্ড :
nmap -sT 192.168.0.1আউটপুট :
Nmap scan report for 192.168.0.1 Host is up
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 1.54 sec.✱ Service ভার্সন চেক স্ক্যান :
-sV (Service Version Check Scan) : WiFi রাউটারে যে যে পোর্ট খোলা রয়েছে, তাতে কোনো না কোনো সার্ভিস চলে। আমরা সেই সার্ভিসের ভার্সন জেনে তার নির্দিষ্ট কোনো এক্সপ্লইট আছে কিনা তা খুঁজে বের করতে পারি।
কমান্ড :
nmap -sV 192.168.0.1আউটপুট :
Nmap scan report for 192.168.0.1 Host is up
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE VERSION
23/tcp open telnet BusyBox 1.14.0
53/tcp open domain generic dns response: NOTIMP
80/tcp open http TP-Link WAP http config
Nmap done: 1 IP address (1 host up) scanned in 4.94 sec.
যেমনকি 23 নম্বর পোর্টে telnet সার্ভিস চলছে, যার ভার্সন (Busybox telnetd 1.14.0) দেখতে পাওয়া যাচ্ছে। এখন আমরা চাইলে এই নির্দিষ্ট ভার্সন এর কোন এক্সপ্লইট আছে কিনা সেটা খুঁজে বের করে এই WiFi নেটওয়ার্কে টেস্ট করতে পারি।
✱ অপারেটিং সিস্টেম চেক স্ক্যান :
-O (Operating System Detect Scan) : WiFi রাউটারে বা WiFi রাউটারের সাথে যুক্ত কোন ডিভাইসে যে অপারেটিং সিস্টেম চলছে তা জানতে এই ফ্ল্যাগ ব্যবহার করা হয়।
কমান্ড :
nmap -O 192.168.0.1আউটপুট :
Nmap scan report for 192.168.0.1 Host is up
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE
23/tcp open telnet
53/tcp open domain
80/tcp open http
Running: Linux 2.6.X | 3.X
OS CPE: cpe:/o:linux:linux_kernel:2.6-3.0
OS details: Linux 2.6.32-3.13
Nmap done: 1 IP address (1 host up) scanned in 6.55 sec.
কমান্ড :
nmap -O 192.168.0.106আউটপুট :
Nmap scan report for 192.168.0.106 Host is up
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
Running: Microsoft Windows 10
OS CPE: cpe:/o:microsoft:windows_10
OS details: Microsoft Windows 10 1809 - 21H2
Nmap done: 1 IP address (1 host up) scanned in 2.75 sec.✱ অতিরিক্ত আউটপুট দেখানো :
-v (Verbose Mode) : টার্গেট IP স্ক্যান করার পর নরমাল যে স্ক্যান রেজাল্ট দেখতে পাওয়া যায়, এই ফ্ল্যাগ ব্যবহার করলে অতিরিক্ত তথ্য দেখা যায়।
কমান্ড :
nmap -v 192.168.0.1আউটপুট :
Scanning 192.168.0.1 [1000 ports]
Discovered open port on 192.168.0.1
Completed SYN Stealth Scan at 20:27,0.42s elapsed
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE
53/tcp open domain
80/tcp open http-vv (Double Verbose Mode) : এই ফ্ল্যাগ ব্যবহার করলে ‘-v’ ফ্ল্যাগের চেয়েও বেশি তথ্য দেখাবে।
✱ সমস্ত স্ক্যান একসাথে :
-A (Aggressive Scan) : এই ফ্ল্যাগের মাধ্যমে সমস্ত তথ্য (যেমনকি – ওপেন পোর্ট, সার্ভিস ও সার্ভিস ভার্সন, অপারেটিং সিস্টেম ইত্যাদি) দেখা যায়। ইথিক্যাল হ্যাকার ও সাইবার সিকিউরিটি এক্সপার্টরা এই ফ্ল্যাগ সবচেয়ে বেশি ব্যবহার করে থাকে। তবে এই স্ক্যান অনেক সময় সাপেক্ষ।
কমান্ড :
nmap -A 192.168.0.1আউটপুট : ক্ষমা করবেন, এটারও রেজাল্ট অনেক বড় হওয়ার কারণে আউটপুট দেখানো সম্ভব নয়।
✱ আউটপুট সেভ বা সংরক্ষণ :
আপনি চাইলে স্ক্যান করা রেজাল্ট আপনার নির্দিষ্ট কোনো ডিরেক্টরি বা ফোল্ডারে সেভ করে রাখতে পারেন। প্রয়োজনে স্ক্যান রিপোর্ট পড়ে দেখতে পারবেন আবার অটোমেশন টুল বা স্ক্রিপ্টিং এর কাজেও লাগাতে পারবেন।
ক) -oN : Nmap দিয়ে স্ক্যান করা রেজাল্ট সাধারণ টেক্সট ফরম্যাটে সেভ করতে এই ফ্ল্যাগ ব্যবহার করা হয়।
কমান্ড :
nmap 192.168.0.1 -oN result.txtখ) -oX : Nmap দিয়ে স্ক্যান করা রেজাল্ট XML ফরম্যাটে সেভ করতে এই ফ্ল্যাগ ব্যবহার করা হয়। পরবর্তীতে এই ফাইলটাকে অটোমেশন টুল, স্ক্রিপ্টিং অথবা রিপোর্টিং এর কাজে লাগাতে পারেন।
কমান্ড :
nmap 192.168.0.1 -oX result.xmlগ) -oA : এই ফ্ল্যাগের মাধ্যমে স্ক্যান রেজাল্ট সব ফরম্যাটেই (txt, gnmap, xml) একসাথে সেভ করতে পারবেন। এক্ষত্রে আউটপুট হিসাবে তিনটে ফাইল তৈরি হবে।
কমান্ড :
nmap 192.168.0.1 -oA result✱ একাধিক ফ্ল্যাগের একসাথে ব্যবহার :
আমরা চাইলে Nmap এ একাধিক ফ্ল্যাগকে একসাথে ব্যবহার করেও স্ক্যান করতে পারি। তবে একাধিক ফ্ল্যাগ ব্যবহার করার সময় ভেবেচিন্তে ব্যাবহার করতে হবে, নাহলে টার্গেট নেটওয়ার্কে অনেক লোড পড়তে পারে।
কমান্ড :
nmap -sV -v 192.168.0.1 -oN result.txtএই ফ্ল্যাগগুলো ব্যবহার করে স্ক্যান করলে প্রথমে -sV ফ্ল্যাগের কারণে কোন কোন পোর্টে কি কি সার্ভিস চলছে তার ভার্সন দেখাবে, তারপর -v ফ্ল্যাগের কারণে আরও অতিরিক্ত তথ্য দেখতে পাওয়া যাবে এবং -oN ফ্ল্যাগের মাধ্যমে স্ক্যান রেজাল্টটা সেভ হয়ে যাবে যেটা আপনি পরবর্তীতে পড়তে পারবেন।
আরও বেশ কিছু ফ্ল্যাগ রয়েছে, তবে বিগিনার হিসাবে আপনারা আগে এই ফ্ল্যাগগুলোর ভালোভাবে ব্যবহার করা শিখুন, Nmap এর এডভ্যান্স টিউটোরিয়ালে বাকি ফ্ল্যাগ গুলো দেখতে পাবেন।
Nmap সম্পর্কে যদি কোথাও বুঝতে সমস্যা হয় নিচে কমেন্ট করুন।
আপনার দিনটা খুব ভালো কাটুক, ধন্যবাদ।।
