আসসালামু আলাইকুম ওয়া রাহমাতুল্লাহি ওয়া বারাকাতুহু এবং আদাব,, সবাই ভালোই আছেন আশা করি,,
আজ আপনাদের সাথে কিছু টুলস এর নাম শেয়ার করতে যাচ্ছি যেগুলো বাগ বাউন্টি (Bug Bounty) -তে আপনাদের অনেকটাই কাজে দিবে,,
প্রথম ধাপে রাখবো রিকন ও এনুমুরেশন এর টুলস গুলো এবং দ্বিতীয় ধাপে রাখবো কিছু কমন ভালনারিবিলিটি নিয়ে খুব সংখিপ্ত আলোচনা ও সেগুলো সহজ করার জন্য কিছু অটোমেশন টুলস,,
এই পোস্টটি পড়া আগে আমি অনুরোধ করবো যারা পোর্ট ও প্রটোকল কী তা বুঝেন না,তারা এই "https://haxorerror.blogspot.com/2023/01/port-and-protocol.html" পোস্ট দেখে আসুন,,
এবং যারা URL সম্পর্কে বিস্তারিত জানেন না তারা এই "https://haxorerror.blogspot.com/2023/03/about-domain-urn-uri-and-url.html" পোস্ট দেখে আসুন,,
প্রথম ধাপঃ
পেনেট্রেশন টেস্টিং বা বাগ বাউন্টির প্রথম ধাপ হিসেবে জানি আমরা রিকন এবং এনুমুরেশন করা,, ধরেন আপনি একটা ওয়েব-এপ্লিকেশনের বাগ হান্ট বা পেন-টেস্ট করতেসেন, সেক্ষেত্রে আপনার প্রথম কাজ হবে ওয়েব-এপ্লিকেশন টা সম্পর্কে ইন্টারনেটে কোথাও কোনো ইনফরমেশন থাকলে তা গেদার করা,, ইনফরমেশন গেদারিং এর জন্য আপনারা যেগুলো করতে পারেন সেগুলো হলোঃ
Google Dorking
Github Dorking
তার পরের কাজ হলো ওয়েব-এপ্লিকেশন টিকে স্ক্যান করা, স্ক্যানিং এর জন্য আপনারা বিভিন্ন টুলস ব্যবহার করতে পারেন,, তার মাঝে আপনারা যে টুলস গুলো ব্যববার করতে পারেন সেগুলো হলোঃ
Nmap [Network Map]
Zenmap [Graphical Version of Nmap]
Rustscan
Angry IP Scanner
আমরা তো এখন ওয়েব-এপ্লিকেশনের ওপেন-পোর্ট পেয়ে গেলাম,, কিন্তু আমাদের রিকন ও এনুমুরেশন এর কাজ এখনো শেষ হয়নি,, এখন আমরা করবো সাব-ডোমেইন এবং ডিরেক্টরি ফাইন্ডিং,, (আপনারা বলতে পারেন সাব-ডোমেইন ফাইন্ড করার প্রয়োজন কী?? প্রয়োজন আছে, এমন তো না যে ভালনারিবিলিটি গুলো শুধু মেইন ডোমাইনের ওয়েব পেইজে থাকবে,, এমন ওতো হতে পারে কিছু কিছু ভালনারিবিলিটি সাব-ডোমেইন পেইজ গুলোতেও আছে, তাই সাব-ডোমেইন ফাইন্ড করা প্রয়োজন) সাব-ডোমেইন এবং ডিরেক্টরি খুজার জন্য আপনারা যে টুল গুলো ব্যবহার করতে পারেন সেগুলো হলোঃ
Gobuster
DirBuster [Also usable in GUI Mode]
Dirsearch
Fuff
Amass
Wfuzz
Anew by Tomnomnom [ For removing duplicate Sub-Domains ]
Burp Suite
যে যে ওয়ার্ড লিস্ট গুলো ব্যবহার করতে পরেন সেগুলো হলো,,
Seclists
Dirb
DirBuster Wordlist
(সাব-ডোমেইন পাওয়ার পর সেগুলোর-ও স্ক্যানিং করে নিবেন, এবং স্ক্যানিং করে কোনো ওপেন ওয়েব পোর্ট খোলা পেলে সেগুলোর জন্যও ডিরেক্টরি ব্রুট-ফোর্সিং না ফাজিং করবেন)
এখন ধরেন আপনারা অনেকগুলো সাব-ডোমেইন পেলেন,, এখন সেগুলোর মধ্যে কত গুলো একটিভ বা এলাইভ আছে সেটা যদি ম্যানুয়ালি করতে যান তাহলে অনেক সময় যাবে, এখন সময় মেইনটেইন করার জন্য যে টুলস গুলো ব্যবহার করা যেতে পারে,, এবং কোন সাব-ডোমেইন কোন প্রোটোকলে চলতেসে (Http নাকি Https) সেটাও এনালাইজ করা যায় পাশাপাশি তাদের স্টাটাস কোড, টাইটেল এসব সহ আরো অনেক কিছু, টুলস গুলো হলোঃ
Httpx
Httprobe
এখন আপনারা এলাইভ বা এক্টিভ সাব-ডোমেইন গুলো পেয়ে গেলেন,, যদি কম ডোমেইন হয়, ধরেন ১০-১২ টা মতো সেগুলো নরমালি একটা একটা করে কপি করে নিয়ে ব্রাউজারে সার্চ করে দেখতে পারবেন কী কী হচ্ছে পেইজে,, কিন্তু ধরেন আপনারা একসাথে প্রায় ৫০-১০০ বার তার বেশি সাব-ডোমেইন পেলেন, এখন সেগুলো তো আর একেক একেক করে ম্যানুয়ালি গিয়ে দেখা সম্ভব না,, তাই না?? তো আপনাদের এই কাজ সহজ করে দিবে একটা টুল,, যেটায় আপনারা আপনাদের পাওয়া সাব-ডোমেইন গুলো একটি লিস্টে রেখে সেই লিস্ট টুল টিকে ডিফাইন করে দিলেই টুলটি প্রত্যেক গুলো পেইজে গিয়ে স্ক্রিনশট নিয়ে এসে আপনাকে দিয়ে দিবে, এই পদ্ধতি টাকে সাব-ডোমেইন ফ্লাইওভার-ও বলে,, (এক্ষেত্রে গুগল ক্রোম ব্রাউজারের প্রয়োজন পড়বে) টুলটি হলোঃ
Aquatone
এখন আপনারা সাব-ডোমেইন-ও পেলেন, ওপেন পোর্ট-ও পেলেন,, এখন আপনারা চাচ্ছেন যে "robots.txt" এই ফাইলটা কোন কোন ওয়েবসাইটে আছে,, সেটা আপনারা ম্যানুয়ালি ডিরেক্টরি ব্রুট-ফোর্সিং টুলস গুল দিয়ে একেক একেক করে ডিফাইন করে দিতে গেলে অনেক সময় নিবে,, সেক্ষেত্রে আপনারা একটা টুল ব্যবহার লরতে পারেন যেটা "robots.txt" ফাইলটা একবারেই আপনার ডিফাইন করে দেওয়া প্রত্যেক ওয়েব-পেইজে গিয়ে দেখবে, সেটা আছে কিনা,, যদি থাকে সে আপনাকে আউটপুট দিবে,, (এইখানে "robots.txt" উদাহরণ স্বরুপ বলেছি, অন্যান্য ফাইলও হতে পারে, চাইলে ওয়ার্ল্ড লিস্টও দিতে পারেন),, টুলটি হলোঃ
Meg by Tomnomnom
এছাড়া, হিডেন প্যারামিটার খোজার জন্য আপনারা যে যে টুলস ব্যবহার করতে পারেন সেগুলো হলোঃ
Arjun
Fuff
Wfuzz
Burp Suite
OWASP ZAP
এখন এত কিছুর পর ভালনারিবিলিটি খুজে বের করার পালা,, নরমালি আমি বলবো আপনারা ম্যানুয়ালি ভালনারিবিলিটি খোজার চেষ্টা করবেন,, কিন্তু যারা বিগেইনার আছে তাদের অনেকটা কষ্ট হয়ে যায়,, তাই তাদের জন্য একটা টুল আছে যেটায় সাব-ডোমেইন গুলোর লিস্ট ডিফাইন করে দিলে টুলটি স্ক্যানিং করে বিভিন্ন ভালনারিবিলিটি খোজার চেষ্টা করে এবং ভালনারিবিলিটি পেলে সেটার CVE দেওয়ার-ও চেষ্টা করে পাশাপাশি ওয়েব-এপ্লিকেশনে কোন কোন টেকনলজি রানিং সেগুলো-ও,, (তবে প্রায় সময় এটি কাজ করতেও না পারে),, টুলটি হলোঃ
Nuclei
এবং ওয়েব-এপ্লিকেশন রিকন করার সময় অবশ্যই অবশ্যই আপনাদের Burp Suite এর প্রক্সি (Proxy) সেট করে নিবেন,, যাতে আপনি ওয়েব-এপ্লিকেশন রিকনের ও এনুমুরেশনের সময় সব Http History দেখতে পারেন,, এইটা করার কারণ হচ্ছে আপনারা কোনো প্যারামিটার পেয়েও যদি ভুলে যান,, পরে আবার Burp Suite এ Proxy এর Http History তে সব রিকুয়েষ্ট পাবেন,, কোন কোন যায়গায় প্যারামিটার ছিলো সেখানে সব পাবেন এবং পাশাপাশি কোন রিকুয়েষ্ট HTTP এর কোন মেথড হয়ে যাচ্ছে সেসবও পাবেন,, যেমনঃ GET, POST...
দ্বিতীয় ধাপঃ
এখন আসা যাক প্রথমে Sql Injection Vulnerability এর দিকে,, মনে রাখবেন SQLi সাধারণত URL, Login Form, Search Box, Comment Field এসব যায়গায় পাওয়া যায়,, এই এট্যাকটা GET এবং POST মেথড দুটোতেই সম্ভব,, যেখানে দুটোতেই প্যারামিটার থাকে,, অনেকেই মনে করেন যারা বিগেইনার) SQLi হয়ে থাকে শুধু প্যারামিটার এর পরে,, অর্থাৎ, উদাহরণ স্বরুপ "?q=" একটা প্যারা মিটার,, তাহলে SQLi হবে শুধু "?q=" এর পরে,, আসলে তেমন না,, এই SQLi "q" এর আগে "?" এর পরেও হতে পারে, অর্থাৎ, আপনারা সেখানেও SQLi Payload ইঞ্জেক্ট করে দেখতে পারেন,, বা "q" এর পরে "=" এর আগে,, (অনেক ক্ষেত্রে কাজ করে যদি ভালনারেবল হয়ে থাকে তবে) (SQLi তিন ধরনের, আমি এইখানে সেগুলো বিস্তারিত বলছি না)
আচ্ছা এখন আসা যাক কী কী টুলস ব্যবহার করা যেতে পারেঃ
SQLmap
SQLninja
Havij [ A GUI Version ]
Burp Suite
পেলোড ওয়ার্ডলিস্ট এর জন্য আপনারা গিটহাবের যে রেপো দেখতে পারেন, তা হলোঃ
PayloadAllTheThings/SQL Injection
এখন আসা যাক XSS (Cross Site Scripting) Vulnerability এর দিকে,, এই ভালনারিবিলিটি খোজার জন্য আপনাদের দেখতে হবে যেকোনো ইনপুট ফ্লিল্ড এবং ইউআরএল এর দিকে,, যদি ইউআরএল এর মধ্যে কোনো প্যারামিটার পেয়ে থাকেন সেখানে XSS ট্রাই করে দেখতে পারেন, যদি পপ আপ আসে এবং তা যদি ইউআরএল এর মধ্যে দেখায় তাহলে ধরে নিবেন সেটা Reflected XSS,, আবার প্রায় সময় User-Agent এর মধ্যেও পেলোড বসিয়ে ট্রাই করতে পারেন,, যদি পপ আপ আসে তাহলে ধরে নিবেন সেটা Stored XSS,, আমি এসব নিয়ে বিস্তারিত বলছিনা, শুধু টুলস গুলোর নাম বলে দিচ্ছি,, সেগুলো হলোঃ
Dalfox
XSStrike
আপনারা ম্যানুয়ালি করতে তাইলে XSS Payload এর জন্য গিটহাবের যে রেপো দেখতে পারেন তা হলোঃ
PayloadAllTheThings/Cross Site Scripting
এখন আসা যাক CSRF (Croos Site Request Forgery) Vulnerability এর দিকে,, এই ভালনারিবিলিটির কারনে একজন এট্যাকার চাইলেই ভিকটিমের নিকট একটি CSRF PoC ফাইল পাঠিয়ে, ভিকটিকমে কোনো ভাবে প্ররোচিত করে তার পাসওয়ার্ড বা ইমেইম ইত্যাদি চেইঞ্জ করিয়ে নিতে পারে,, কোনো ওয়েব-এপ্লিকেশনের CSRF Token বা Protection দেখতে হলে আগে রিকুয়েষ্ট টাকে ইন্টারসেপ্ট করতে হয়,, পরে সেখানে যদি ভালনারিবিলিটি থেকে থাকে তাহলে আপনারা Burp Suite Professional Version ব্যবহার করে থাকলে ইন্টারসেপ্টকৃত অংশে মাউসের রাইট ক্লিক করে Engagement Tools এ গেলেই Generate CSRF PoC নামে একটা অপশন পাবেন, সেখানে ক্লিক করলেই CSRF PoC জেনারেট হয়ে যাবে,, এখন কথা হচ্ছে যারা Burp Suite Professional ব্যবহার করে না,, তারা যে টুলটি ব্যবহার করতে পারেন, সেটা হলোঃ
csrf-poc-genarator
এখন আসা যাক Open Redirect Vulnerability এর দিকে,, আপনারা এই ভালনারিবিলিটি পেয়ে থাকবেন সাধারণত লগইন বা রেজিস্ট্রার পেইজে, কিন্তু মাঝে মধ্যে নরমাল ইউআরএল প্যারামিটারের পরেল ট্রাই পাওয়া যায় এই ভালনারিবিলিটি,, এই ভালনারিবিলিটির ফলে একজন এট্যাকার চাইলেই প্যারামিটারে কিছু কারসাজি মেইন ওয়েব-এপ্লিকেশন থেকে একজন ইউজারকে অন্য ওয়েব-এপ্লিকেশনে রিডিরেক্ট করতে পারে,, এইটা যেহেতু প্যারামিটারের সাহায্যে কাজ করে আমরা হিডেন প্যারামিটার ফাইন্ডিং টুলস গুলো ব্যবহার করতে পারি, যেগুলো আমি আগেও বলেছি,, সেগুলো হলোঃ
Arjun
Fuff
Wfuzz
Burp Suite
OWASP ZAP
এখন আসা যাক SSRF (Server Side Request Forgery) Vulnerability এর দিকে,, কোনো একটা ওয়েব-এপ্লিকেশন যখন তাদের ইন্টারনাল বা কোনো সাব-ডোমেইন এর থেকে ডাটা নিয়ে আমাদের শো করায়,, যেটা আমাদের অজানা,, আমরা সেখানে সে ডোমেইনের যায়গায় লোকালহোস্ট বা লোকালহোস্ট এর আইপি দিয়ে রিকুয়েষ্ট সেন্ড করার পর যদি রেসপন্স পার্টে কোনো অস্বাভাবিক কিছু দেখতে পাই,, তখনই বুঝতে হবে সেখানে SSRF Vulnerability রয়েছে,, এই ভালনারিবিলিটি রয়েছে কি-না তা বুঝার সহজ একটা টেকনিক হলো কোনো প্যারামিটারের পরে কোনো ইন্টারনাল ডোমেইন থাকা যা আমরা জানি না বা কোনো সাব -ডোমেইনের উপস্থিতি থাকা,, তাহলে সেখানেই SSRF ট্রাই করা যেতে পারে (এমন না যে শুধু ডোমেইন থাকলেই SSRF হবে,, এইটা যেকোনো প্যারামিটারেও হতে পারে ও GET বা POST যেকোনো মেথডে),, এইখানে রিকুয়েষ্ট থেকে প্যারামিটার খোজার জন্য যে এপ্লিকেশন ব্যবহার করতে হবে তা হলোঃ
Burp Suite
যে ওয়ার্ডলিস্ট ব্যবহার করতে পারেনঃ
Seclists/JHaddix
আপনারা ম্যানুয়ালি করতে তাইলে SSRF Payload এর জন্য গিটহাবের যে রেপো দেখতে পারেন তা হলোঃ
PayloadAllTheThings/Server Side Request Forgery
এখন আসা যাক IDOR (Insecure Direct Object Reference) Vulnerability এর দিকে,, এই ভালনারিবিলিটির ফলে একজন এট্যাকার চাইলেই ইউজার আইডি পরিবর্তন করে অন্য একজন ইউজারে ইনফরমেশন দেখতে পারে,, এছাড়াও কুকিজ ম্যানুপুলেশনের মাধ্যমেও একজন এট্যাকার চাইলে অন্য একজনের তথ্য দেখতে পারে,, সেহেতু এইখানে যা যা ব্যবহার করা যেতে পারে যেগুলো হলোঃ
Burp Suite (Intruder for Brute Forcing)
Authorize (Brup Suite Extension for Cookies Manipulation)
এখন আসা যাক XXE (XML External Entity) Vulnerability এর দিকে,, এক্ষেত্রে আমাদের খুজতে হবএ কোথায় "xml" এর কাজ হচ্ছে,, এইটা খোজার জন্য আমরা প্যারামিটার ব্রুট-ফোর্সিং বা ফাজিং করতে পারি,, "xml" এর লোকেশন পাওয়ার পর আমরা সেখানে আমাদের ম্যালিশিয়াস "xml" পেলোড ইনপুট করে সেন্ড করে যদি দেখি রেস্পন্সে কিছু পরিবর্তন হচ্ছে, তাহলেই বুঝতে হবে সেখানে XXE Vulnerability রয়েছে (যেটা Simple XXE),, তাছাড়া আমরা xlsx, docs, svg এর মতো অন্যান্য ফাইলের মধ্যে কিছু পেলোড বসিয়ে তা আপলোড করে আপনার XXE Exploit করতে পারেন (যেটা Blind XXE) এক্ষেত্রে আপনারা যা যা ব্যবহার করতে পরেন সেগুলো হলোঃ
Burp Suite (Turbo Intuder Extension)
যে ওয়ার্ডলিস্ট ব্যবহার করতে পারেনঃ
Seclists/Parameters এর যেগুলো আছে,
আপনারা ম্যানুয়ালি করতে তাইলে XXE Payload এর জন্য গিটহাবের যে রেপো দেখতে পারেন তা হলোঃ
PayloadAllTheThings/XML External Entity
এখন আসা যাক LFI (Local File Inclusion) Vulnerability এর দিকে,, এক্ষেত্রে আমরা ওয়েব-এপ্লিকেশনের এমন কিছু প্যারামিটার খুজি যেগুলোর মাধ্যমে ওয়েব-এপ্লিকেশনটি কোনো ছবি, ভিডিও বা যেকোনো ধরণের ফাইল কল করে আমাদের আউটপুট দেখায়, সেসব প্যারামিটারে আমরা পাথ ট্রাভারশ্যাল করি যার মাধ্যমে আমরা সেই ওয়েব-এপ্লিকেশনে থাকা সিস্টেমের ফাইল গুলো দেখতে পারি,, এই পদ্ধতি যেখানে কাজ করে ধরে নিতে হবে সে জায়গা LFI Vulnerable, LFI এর মাধ্যমে যে ডিরেক্টররির ফাইলটি সহজে দেখা যায়, তা হলো "/etc/passwd", যেখানে মুলত ওই সিস্টেমের ইউজারস দের তথ্য জমা থাকে,, এক্ষেত্রে আপনারা যে যে টুলস ব্যবহার করতে পারেন সেগুলো হলোঃ
LFI Suite
Fuff
Wfuzz
Burp Suite (Intuder)
আপনারা ম্যানুয়ালি করতে তাইলে LFI Payload এর জন্য গিটহাবের যে রেপো দেখতে পারেন তা হলোঃ
PayloadAllTheThings/File Inclusion
এবং পাশাপাশি,
Seclists/LFI
এখন আসা যাক RCE (Remote Code Execution) Vulnerability এর দিকে,, এক্ষেত্রে একজন এট্যাকার কিছু ম্যালিশিয়াস রিমোট কোড ওয়েব-এপ্লিকেশনের প্যারামিটারে দিয়ে,, নিজের অপারেটিং সিস্টেমে একটি লিসেনার চালু করে দিয়ে সেই ম্যালিশিয়াস রিমোট কোড এক্সিকিউট করলেই আমরা সেই ওয়েব-এপ্লিকেশনে চলমান সিস্টেমের এক্সেস পেয়ে যাই,, আপনারা যে জায়গা গুলো থেকে RCE কোড পেতে পারেন সেগুলো হলোঃ
Pentestmonkey
Revshell Generator
PayloadAllTheThings
এখন আসা যাক File Upload Vulnerability এর দিকে,, এক্ষেত্রে আমরা ফাইলের মধ্যে কিছু ম্যালিশিয়াস রিমোট কোড ইঞ্জেক্ট করে ওয়েব-এপ্লিকেশনে আপলোড করি, যার মাধ্যমে আমরা RCE করতে পারি,, এ ক্ষেত্রে আমরা চাইলেই ফাইল এক্সটেনশন চেইঞ্জ করে বা ম্যাজিক নাম্বার এড করে ফাইল আপলোড করতে পারি,,
এবং একটি লিসেনার অন করে দিয়ে যখনই আমরা সেই ফাইল টাকে এক্সিকিউট করি আমরা সেই ওয়েব-এপ্লিকেশনে চলমান সিস্টেমের এক্সেস পেয়ে যাই,, এইক্ষেত্রে যেটি ব্যবহার করা হয় সেটি হলোঃ
Burp Suite
এবং ম্যাজিক নাম্বার গুলো পেতে হলে নরমালি গুগলে "File Magic Number" লিখে সার্চ করলেই পেয়ে যাবেন,,
আজকের পোস্টে এতটুকুই,, কারণ সব ভালনারিবিলিটি এইভাবে একেক করা বলা সম্ভব না,, আর আমি এইখানে ভালনারিবিলিটি গুলো সম্পর্কে সংখিপ্ত আলোচনা করেছি,, এমন না যে আমি যেভাবে যেভাবে বলেছি শুধু সেভাবেই Exploit করা হয়,, আরো অনেক পদ্ধতি থাকে,, সেগুলো আয়ত্ত করতে হবে আপনাদের নিজেদের,, প্র্যাকটিসের মাধ্যমে,, আর এসব সম্পর্কে বিস্তারিত PayloadAllTheThings গিটহাব রেপোতে পেয়ে যাবেন,, এবং আমি বলবো এসব অটোমেশন টুলস ব্যবহার করার আগে নিজে নিজে ম্যানুয়ালি চেষ্টা করুন,, কারণ, আগে বুঝা দরকার যে কাজ গুলো হচ্ছে কীভাবে,,
ভালো থাকবেন সবাই 😊
হ্যাপি হ্যা*কিং 🤖👾
আসসালামু আলাইকুম ওয়া রাহমাতুল্লাহি ওয়া বারাকাতুহু এবং আদাব,,
©️ Maksudur Rahaman (@h4x0r3rr0r)