Getting Started
নিচের জিনিসগুলায় একটু ভালো ধারনা শুরুতে থাকা লাগবে। আর কোনো কিছু না বুঝলে, না জানলে খালি Google করবা। শুরুতে একটু বেশিই ঘাটাঘাটি করে শিখা লাগবে, এইটা একটা ইম্পর্ট্যান্ট ফেজ।
Basic Theory
- Cryptography
- XOR, Ciphers, Hashing, Encryption (Basic)
- Modular Arithmetic (Advanced)
Programming Language
- Python (একদম মাস্ট, সিটিএফ এর সব চ্যালেঞ্জ পাইথন দিয়ে সলভ করা যায়)
- C++
Tools
- Crypto Tools: cyberchef, dcode.fr
- Linux
Practice Platforms
Beginner Level:
- Over The Wire
- PicoCTF (এইটা একদম Best, এটার চ্যালেঞ্জ সলভ করে মজা পাবা, আর এইটার আন্সার গিটহাবে পাওয়া যায়)
Medium Level:
- Try Hack Me
- Cyber Talents (এদের কিছু চ্যালেঞ্জ ব্রোকেন, আন্সার মিলে না)
Advanced:
- Hack The Box
Social Communication
সিটিএফে একা বেশিদূর আগানো যায় না। একটা টিম থাকা লাগবে, যেহেতু সিটিএফ কম্পিটিশন গুলায় টিম হিসেবে দিতে হয়। আর নিচের সোশ্যাল সাইট গুলায় একটু এক্টিভিটি থাকা লাগবে।
Discord Servers
You MUST have a Discord account and use it regularly. You’ll find a LOT of Discord Communities who share and practice CTFs. এইখানে বেশ কিছু রাইটাপ (Write Up) পাবা। রাইটাপ হচ্ছে কোনো একটা সিটিএফ এর চ্যালেঞ্জ এর সলুশ্যন।
Some of them are:
- BUET CTFers (আমাদের বুয়েটের কমিউনিটি)
- CTF BD
- Hacker 101
Facebook Groups
- CTF Community BD (এটায় জয়েন করা মাস্ট)
YouTube Channels
- John Hammond (খুবই হেল্পফুল টিউটোরিয়াল বানায় চ্যালেঞ্জ সল্ভ করে)
- Rana Khalil
- Live Overflow
Some Informal Guidelines
সবচেয়ে ইম্পর্ট্যান্ট যে জিনিসটা, সেইটা হচ্ছে কন্সিস্টেন্সি বজায় রাখা। ডেইলি না হলেও সপ্তাহে ১ দিনে একটু বসতে হবে পিসিতে, আর চ্যালেঞ্জ সলভ করতে হবে (ইজি বা হার্ড চ্যালেঞ্জ নাকি ম্যাটার করে না)। আর, গিটহাবে একটা রিপো খুলে সেইখানে সলুশন গুলা ডেইলি কমিট করার অভ্যাস রাখবা। এতে করে দুইটা হেল্প হবে, এক হচ্ছে কোনো এক কম্পিটিশনে নিজের করা স্ক্রিপ্ট ইজিলি ইউজ করতে পারবা এবং দুই, পরে যখন তোমার রিপো বাড়তে থাকবে, নিজেরই ভালো লাগবে- আগ্রহ বাড়বে। আর কোনো প্রবলেমে আটকায় গেলে গুগল করবা, রাইটাপ পড়ে বুঝবা। তারপর সেইটা ফলো করে সলভ করবা- এইটা খারাপ কিছু না। বরং দেখা যাবে এই দেখে দেখে সলভ করে করে জিনিস শিখে গেছো।
সিটিএফে শুরুর দিকে বেশ ঝামেলা পোহাতে হয়, যেহেতু অনেক ক্যাটাগরি- কোনটা ছেড়ে কোনটা দিয়ে শুরু করবো বুঝা যায় না। এই ক্ষেত্রে বলবো ক্রিপ্টোগ্রাফি, রিভার্স, স্টেগানোগ্রাফি, এবং ফরেন্সিক- এই সিরিয়ালে আগাতে।
- ক্রিপ্টোগ্রাফির ক্ষেত্রে থিওরি এবং টুলস ইউজ শেখা দরকার একদম, তারপর মোটামুটি সব প্রবলেম কম বেশি সলভ করা যায়।
- রিভার্সের ক্ষেত্রে Ghidra, Ida, Dogbolt শেখা দরকার, C/C++ বাইনারি সলভ করার জন্য। আর Java/Kotlin বেজড রিভার্স প্রবলেম সলভ করার জন্য IntelliJ IDEA থাকলেই হবে, সেখানে JAR ফাইল লোড করে খুব ইজিলি রিভার্স এবং ডিবাগ করা যায়।
- স্টেগানোগ্রাফির জন্য মূলত কিছু টুলস জানা থাকলেই হবে, যেমন- Steghide, Binwalk, Exiftool, OpenStego ইত্যাদি।
- ফরেন্সিক বেশ ভাস্ট একটা টপিক, বিগিনারদের জন্য Wireshark, Foremost, Autopsy দিয়ে শুরু করা যেতে পারে।
- এখন বাকি হচ্ছে OSINT এবং Web। OSINT এর জন্য প্রচুর খাটা লাগবে, Google Dork, Shodan ইত্যাদি ইউজ করা লাগবে, বিভিন্ন OSINT Framework পাওয়া যায়, সেগুলা ট্রাই করতে হবে, বিগিনার হিসেবে এগুলাতে বেশি ফোকাস না করতে সাজেস্ট করবো।
- আর Web এর ম্যাক্সিমাম চ্যালেঞ্জ হয়ে থাকে XSS, CSRF, SSRF এর উপর বেজড করে। এইক্ষেত্রে দেখা যায় চ্যালেঞ্জগুলো হয়ে যায় বাগ বাউন্টি টাইপের। এবং সিটিএফে এগুলা যারা সল্ভ করে, তারা বাগ বাউন্টি এক্সপার্ট হয়ে থাকে, অনেক Automation টুলস, ভিপিএস ইত্যাদি ইউজ করে থাকে। সেক্ষেত্রে Web চ্যালেঞ্জ সলভ করা বেশ টাইম ওয়েস্টিং ব্যাপার হয়ে থাকে, তাই এক্ষেত্রে শুরুতে Web সলভ করতে না যাওয়াই ভালো। বাকি চ্যালেঞ্জ সলভ করে মোটামুটি একটা ভালো পজিশনে থাকা যায়।
এই হচ্ছে মূলত বিগিনারদের জন্য সিটিএফ নিয়ে কিছু গাইডলাইন। কন্সিস্টেন্সি, প্র্যাকটিস বজায় রেখে আগাতে থাকলে নিজে নিজেই নতুন টুলস এবং সল্যুশন এর ব্যাপারে ধারণা চলে আসবে। আর যেটা বললাম, কমিউনিটি কানেকশন রাখতে হবে, নিয়মিত রাইটাপ পড়তে হবে।