یادداشت هایی از رقابت در اولین CTF من

آخر هفته گذشته، من در لیگ ملی سایبری (NCL) شرکت کردم، اولین CTF امنیت سایبری من که برای دانشجویان در ایالات متحده آزاد است. من فقط یک ماه پیش مدرک لیسانس خود را در امنیت سایبری شروع کردم اما به هر حال می خواستم آن را امتحان کنم. به من خوش گذشت، چیزهای زیادی یاد گرفتم و می خواستم برخی از یادداشت هایم را به اشتراک بگذارم. متأسفانه، من اجازه ندارم بیش از حد در مورد چالش ها و راه حل ها وارد جزئیات شوم، اما همچنان می خواستم برخی از ابزارهایی را که استفاده کردم به اشتراک بگذارم.
این CTF به 9 دسته تقسیم میشود که هر کدام چالشهای متعددی دارند که از آسان به سخت رتبهبندی میشوند. برای جلوگیری از اینکه مردم به اجبار پاسخ ها را تا زمانی که پاسخ صحیح را دریافت کنند، هر بار که یک پاسخ نادرست ارسال می کنید، نمره دقت شما کاهش می یابد، بنابراین باید عاقلانه آنچه را ارسال می کنید انتخاب کنید.
در پایان، گزارش امتیاز من در زیر آمده است. من در رتبه 6 درصد برتر ملی قرار گرفتم 🎉 بنابراین هیجان زده هستم که ببینم دفعه بعد با تجربه بیشتر چگونه کار خواهم کرد!
دسته بندی ها عبارتند از:
این بخش معمولاً مربوط به درک یا یافتن داده ها بدون زمینه زیاد، یا استفاده از نمادهایی است که ممکن است ندانید، با اطلاعات بسیار کمی. برای مثال، رمزگشایی پیامها یا دادن شمارهای که کاملاً تصادفی به نظر میرسد و فهمیدن اینکه به چه چیزی اشاره دارد.
در اینجا برخی از ابزارهایی که استفاده کردم آورده شده است:
این بخش بر روی رمزگذاری و رمزگشایی پیام ها یا فایل ها تمرکز دارد. اغلب به شما نمی گویند که چگونه آنها رمزگذاری می شوند، بنابراین ابتدا باید بفهمید که از کدام روش رمزگذاری برای رمزگشایی آنها استفاده کنید.
برای این بخش بیشتر از CyberChef استفاده کردم
برای مثال، ممکن است از شما خواسته شود که پیام را رمزگشایی کنید aGVsbG8gd29ybGQ=
.
با استفاده از CyberChef، می توانید با روش های مختلف رمزگشایی آن را امتحان کنید. اگر قبلاً پیامها را رمزگشایی کرده باشید، ممکن است تشخیص دهید که با استفاده از Base64 رمزگذاری شده است، بنابراین رمزگشایی میکند hello world
.
برخی از چالش ها نیز به یافتن اطلاعات در فایل های با فرمت های مختلف مربوط می شود.
برای چالش ها از جمله فایل ها از دستوراتی مانند file
و همچنین ابزارهایی مانند PGP با gnupg
یا OpenSSL (openssl
).
این بخش کاملاً توضیحی است، به شما یک دسته یا رمزهای رمزگذاری شده داده می شود و باید نحوه رمزگشایی آنها را بیابید.
برای این کار، فهرستهای کلماتی مانند wordlist rockyou را دانلود کردم و از ابزارهایی مانند Hashcat و John the Ripper استفاده کردم.
به عنوان مثال، اگر می خواهید رمز عبور را رمزگشایی کنید 5f4dcc3b5aa765d61d8327deb882cf99
، دستور هش کت زیر را اجرا می کنید.
hashcat -m 0 -a 0 5f4dcc3b5aa765d61d8327deb882cf99 <path to your wordlist>
در این بخش باید راه هایی برای حمله به وب سایت های آسیب پذیر پیدا کنید.
من عمدتا از ابزارهای توسعه دهنده مرورگر استفاده کردم، کدهای سفارشی نوشتم و Burpsuite را برای رهگیری و تغییر درخواست ها امتحان کردم.
این بخش معمولاً شامل برنامه هایی است که به زبان های برنامه نویسی مختلف نوشته شده اند. برای حل چالشها، ممکن است لازم باشد نحوه اجرای آنها را برای یافتن پرچم یا پاسخ به سؤالاتی که درک شما از کد نوشته شده را آزمایش میکنند، بیابید.
ابزارهای مورد استفاده برای این بخش بسته به نمونه کدهایی که دریافت می کنید بسیار متفاوت است. ممکن است چیزی در پایتون، جاوا اسکریپت، Go، پاورشل، اسمبلی و غیره دریافت کنید، بنابراین باید راحت به مسائل پی ببرید.
این بخش بر روی یافتن چیزها در انواع مختلف فایل ها تمرکز دارد. این می تواند شامل درک نحوه برخورد با فایل های خراب، توانایی درک اطلاعات در برخی از فایل های پیکربندی با فرمتی باشد که هرگز با آن کار نکرده اید، یا پیدا کردن ابزار مناسب برای استخراج داده ها.
این بخش، قسمتی است که من کمترین تجربه را در آن دارم. شامل اسکن پورت های باز یا یافتن دامنه های متصل به سرور و غیره می شود.
من عمدتا استفاده کردم nmap
برای اسکن پورت ها و gobuster
برای یافتن زیر دامنه های بالقوه
در این بخش، چالش ها انواع مختلفی از فایل های گزارش را برای تجزیه و تحلیل در اختیار شما قرار می دهند.
من عمدتا استفاده کردم awk
برای فیلتر کردن خطوط و استخراج اطلاعات مورد نیاز.
یک مثال از دستور این است که فقط اولین عنصر در هر خط از یک فایل گزارش نمایش داده شود
awk '{print $1}' access.log
و برای مرتب کردن آنها، حذف موارد تکراری و شمارش تعداد ورودی ها، چیزی شبیه به این خواهد بود:
awk '{print $1}' access.log | sort | uniq | wc -l
در این قسمت فایل هایی با بسته های شبکه به شما داده می شود و باید آن ها را تجزیه و تحلیل کنید تا اطلاعات خاصی پیدا کنید.
من عمدتا از Wireshark و aircrack-ng استفاده کردم
به طور کلی، آن یک آخر هفته شدید بود، اما من از کارهایی که انجام دادم و آموختم راضی هستم. قبلاً کمی نگران شرکت در CTF بودم زیرا فکر میکردم با توجه به اینکه تجربه کمی در امنیت سایبری دارم نمیتوانم کاری انجام دهم، اما از اینکه چقدر توانستم با تحقیق و بررسی در محل حل کنم شگفتزده شدم. بازی تمرینی چند هفته قبل من قطعا برای یادگیری بیشتر هیجان زده هستم!