Table of contents
পূর্বের লেখাটিতে ব্যাখ্যা করেছিলাম — কিভাবে TCP কাজ করে (লেখার লিংক)। এই TCP প্রটোকল হ্যাকিংএ কিভাবে কাজে লাগবে সেটা নিয়ে বিস্তারিত আলোচনা করবো আজকের লেখায়।
নেটওয়ার্ক সিকিউরিটি যাচাই এর সময়, কোন একটি IP এড্রেস থেকে তথ্য খুঁজে বের করার প্রয়োজন হতে পারে। এই নেটওয়ার্ক scanning এর কাজে আমরা TCP এর বিভিন্ন ফ্ল্যাগ ব্যবহার করি। আজকের লেখায় যা যা থাকছে :
১. TCP এর বিভিন্ন ফ্ল্যাগ প্রয়োগ
২. Firewall বাইপাসে TCP ফ্ল্যাগ
নেটওয়ার্ক scanning বলতে বুঝায় — কোন একটি সিস্টেম active কিনা, সেই সিস্টেমে কি কি port বা সার্ভিস চলছে সেটা খুঁজে বের করা।
হ্যাকিং এর এই কাজটি করার জন্য nmap নামক জনপ্রিয় টুলস ব্যবহার করেছি এবং অনুমোদিত কম্পিউটারে scanning এর কাজ করেছি। কোন public property ক্ষতিগ্রস্থ হয়নি এই কাজে।
TCP এর flag প্রয়োগ
TCP SYN scan :
এই স্ক্যানে, হ্যাকার TCP এর ৩টি ধাপ পুরোপুরি সম্পন্ন করে না। কোন একটি পোর্টে কানেকশন শুরুর রিকয়েস্ট পাঠানোর পর যদি সেটা কোন রেসপন্স করে তাহলে RST ফ্ল্যাগ পাঠিয়ে দেয়। RST সাধারণত ব্যবহার হয় যখন দুই পক্ষের কমিউনিকেশনে কোন অসুবিধা হয় আর সাথে সাথে কানেকশন পরিত্যাগ করা প্রয়োজন পড়ে। হ্যাকার এই ফ্ল্যাগটিই ব্যবহার করে এখানে।
* SYN স্ক্যানকে stealth স্ক্যান ও বলা হয় কারণ এটা ৩টি ধাপ পুরোপুরি সম্পন্ন করে না
* এই স্ক্যান তুলনামূলক দ্রুত সম্পন্ন হয়
* তবে firewall এই RST ফ্ল্যাগ দেখে ব্লক দিতে পারে
nmap দিয়ে এই স্ক্যান দেয়ার কমান্ড: nmap -sS -v -p 1–1024 scanme.nmap.org
TCP connect scan :
কানেক্ট স্ক্যানে TCP এর পুরো ৩ ধাপ ই সম্পন্ন করা হয় এবং পোর্ট থেকে তথ্য পাওয়ার পরে RST ফ্ল্যাগ পাঠিয়ে কানেকশন ক্লোজ করে দেয়া হয়।
* SYN স্ক্যান নির্দেশ করে না দিলে nmap নিজেই এই ধরণের স্ক্যান দেয়। এই স্ক্যানে নেটওয়ার্ক প্যাকেট আলাদা করে craft করা হয় না বরং সাধারণ কানেকশন এর কাজ করে nmap.
* root privilege থাকলে SYN স্ক্যান এই কানেক্ট স্ক্যানের চেয়ে ভাল অপশন।
* IDS গুলো এই কানেক্ট স্ক্যানকেও detect করতে সক্ষম হতে পারে। সেক্ষেত্রে টার্গেট alert হয়ে যেতে পারে।
nmap দিয়ে এই স্ক্যান দেয়ার কমান্ড: nmap -sT -v -p 80 scanme.nmap.org
TCP ACK scan :
ACK স্ক্যানে সরাসরি ACK ফ্ল্যাগ পাঠিয়ে স্ক্যান করা হয়। তবে এই স্ক্যানটি মোটেও port ওপেন নাকি ক্লোজ — সেটা বুঝার জন্য ব্যবহার করা হয় না।
* এই স্ক্যান মূলত firewall কোন ব্লক দিচ্ছে কিনা সেটা বুঝতে ব্যবহার করা হয়
* আউটপুটে open অথবা open। filtered লেখা দেখাবে না।
* শুধু unfiltered লেখা দেখাবে আউটপুটে। যার মানে আমাদের data প্যাকেট টার্গেটে যেতে পারছে। তবে port ওপেন নাকি বন্ধ সেটা নিশ্চিত না।
nmap দিয়ে এই স্ক্যান দেয়ার কমান্ড: nmap -sA -v -p 80 scanme.nmap.org
TCP Window scan :
Window স্ক্যানে ACK স্ক্যানের মতোই কাজ করা হয়। তবে তফাৎ হলো — ACK স্ক্যান যখন কনফিউজড থাকে পোর্ট open নাকি ক্লোজ বুঝতে, Window scan সেখানে রেসপন্স এনালাইসিস করে open port বোঝার চেষ্টা করে।
* এই স্ক্যান সবসময় সঠিক আউটপুট দিতে পারে না
* যেই সিস্টেমে স্ক্যান করা হচ্ছে সেখানে Window scan সাপোর্ট নাও করতে পারে
nmap দিয়ে এই স্ক্যান দেয়ার কমান্ড: nmap -sW scanme.nmap.org
Firewall বাইপাসে TCP ফ্ল্যাগ
TCP NULL scan :
Null স্ক্যানে TCP এর header ভ্যালু ছাড়া পাঠানো হয়।
* যেহেতু header ফাঁকা তাই টার্গেট জানে না কি রেস্পন্স করবে এবং কোন রেসপন্স আসে না ওপেন পোর্ট থেকে
* Null ভ্যালু হওয়ার কারণে কিছু firewall বাইপাস করা যেতে পারে।
nmap দিয়ে এই স্ক্যান দেয়ার কমান্ড: nmap -sN scanme.nmap.org
TCP FIN scan :
FIN স্ক্যানেও NULL স্ক্যানের মতো ঘটনা ঘটে। তফাৎ হলো এখানে TCP কানেকশন ক্লোজ করার সেই FINish প্যাকেট পাঠান হয়।
* পোর্ট ওপেন থাকলে কোন রেসপন্স আসবে না (NULL স্ক্যান এর মতো)
* কিছু firewall এই রিকোয়েস্টকে ক্ষতিকর বিবেচনা নাও করতে পারে
nmap দিয়ে এই স্ক্যান দেয়ার কমান্ড: nmap -sF scanme.nmap.org
TCP XMAS scan :
এই স্ক্যানের বিশেষত্ব হলো — এখানে URG, FIN আর PSH নামের ৩টি ভিন্ন প্যাকেট পাঠান হয়।
* URG — এই ফ্ল্যাগ নির্দেশ করে, পাঠানো অংশটা urgent. তাই তাকে প্রবেশ করতে দেয়ার জন্য ফোর্স করে
* FIN আমাদের finish ফ্ল্যাগ
* PSH — হলো push ফ্ল্যাগ।এটাও সিস্টেমে জোর করে প্রবেশের চেষ্টা করে
* বর্তমানে অনেক firewall এসব প্যাকেট ব্লক দিতে পারে। তবুও firewall বা IDS এর সেটাপ ঠিকমত হয়েছে কিনা সেটা বুঝতে স্ক্যান যথেষ্ট সহায়ক।
** এই স্ক্যানেও — পোর্ট ওপেন থাকলে কোন response আসে না। তবে পোর্ট অফ থাকলে (এবং firewall ব্লক না দিলে) RST ফ্ল্যাগ আসে রেসপন্সে।
nmap দিয়ে এই স্ক্যান দেয়ার কমান্ড: nmap -sX scanme.nmap.org
আমার লেখাটি থেকে যদি উপকারী মনে হয়, তাহলে অবশ্যই অন্যদের সাথে শেয়ার করুন — sharing is caring ❤