پرچم را پیدا کن – حل CTF Bob: 1.0.1

0
1103
پرچم را پیدا کن - حل CTF Bob: 1.0.1

در این پست آموزشی از وب‌سایت امنیت اینترنت کنش‌تک یکی از CTF‌ ها به نام Bob: 1.0.1 را با هم حل می‌کنیم.

اول از همه چیز به این مهم بپردازیم که CTF چیست؟

CTF کوتاه شده Capture The Flag به معنی پرچم را پیدا کن و یک نوع مسابقه امنیت اینترنت است. سه نوع رایج این مسابقات عبارت‌اند از  : Jeopardy, Attack-Defence و mixed که در سطح‌های مختلفی برگزار می‌شود. علاقمندان امنیت سایبری می‌توانند در این مسابقات بصورت انفرادی یا گروهی شرکت کنند تا با مهارت‌های خود بتوانند به پرچمی که سازنده یا سازندگان CTF مخفی کرده‌اند دست پیدا کنند. خیلی ساده می‌توان این مسابقه را به یک معما تشبیه کرد و باید پاسخ که در اینجا پرچم است را پیدا کنید، و برای پیدا کردن پرچم به دانش امنیت سایبری نیاز خواهید داشت.

اگر علاقمند هستید که خودتان هم مراحل زیر را تست کنید، می‌توانید ماشین مجازی bob را از آدرس https://www.vulnhub.com/entry/bob-101,226/ دانلود و روی نرم‌افزار ماشین مجازی سیستم‌تان نصب کنید. مطمئنا می‌دانید که برای حل CTF نیاز دارید یک ماشین دیگر مانند لینوکس (کالی گزینه خوبی است) یا ویندوز داشته باشید و این دو ماشین باید در یک شبکه باشند. بهتر است یک ماشین مجازی دیگر روی نرم‌افزارتان نصب کنید، بدین ترتیب دو سیستم عامل روی نرم‌افزار ماشین مجازی خواهید داشت، که بعنوان آزمایشگاه‌تان می‌توانید از آن استفاده کنید.

برای حل این CTF از این به بعد تمام کار ما روی ماشین مجازی کالی خواهد بود. در این تمرین ما از دستورات خط فرمان لینوکس بسیار استفاده کردیم.

برای ابتدا ما باید شروع به گردآوری اطلاعات کنیم. در قدم اول نیاز داریم که IP ماشین Bob را داشته باشیم. ابزارهای فراوانی برای اسکن IP در شبکه وجود دارند. 

با استفاده از دستور ifconfig در کالی آدرس ماشین فعلی را میگیریم تا محدوده مورد جستجو را مشخص کنیم. سپس از دستور nmap به شکل زیر استفاده  می‌کنیم: 

nmap -sP 192.168.1.*

همچنین می‌توانید از دستور netdiscover نیز استفاده کنید. 

netdiscover

نتیجه : 192.168.122.16 

بسیار عالی اکنون IP را در مرورگر کالی وارد می‌کنیم و باید این صفحه را ببینیم: 

پرچم را پیدا کن - حل CTF Bob: 1.0.1

اکنون با دستور nmap -A 192.168.122.16 شروع به اسکن سرویس‌های باز و پیمایش فایل روی ماشین Bob می‌کنیم. نتیجه : 

پرچم را پیدا کن - حل CTF Bob: 1.0.1

با توجه به نتایج بالا می‌دانیم که سرویس روی درگاه 80 است و فایل robot.txt را پیدا کرده که شامل login.php, /dev_shell.php /lat_memo.html, /passwords.html  می‌شود.  توجه کنید که ما با وارد کردن IP ماشین Bob و دیدن وب‌سایت روی مرورگر همان اول کار متوجه شدیم که درگاه ۸۰ باز است.

توجه ما الان بیشتر روی ۴ فایل مشخص شده در robots.txt است. بعد از باز کردن هم ۴ فایل روی مرورگر، فایل /dev_shell.php  توجه‌امان را جلب می‌کند. بنظر می‌رسد می‌توانیم با دستور وارد کردن به نتایج خوبی برسیم. پس با ساده‌ترین دستور یعنی ls شروع می‌کنیم تا ببینیم چه نتیجه‌‌ای برمی‌گردد:

پرچم را پیدا کن - حل CTF Bob: 1.0.1

بسیار خب هیچی، بعد از وارد کردن دستور pwd هم همین نتیجه بالا را گرفتم. سپس به سراغ راه دیگری رفته و اینبار دستور ls; را تست کردم و نتیجه این شد :

پرچم را پیدا کن - حل CTF Bob: 1.0.1

بسیار خب، این هم نتیجه نداد، پس باید بیشتر تلاش کنیم، دستورات و روش‌های بیشتری را امتحان می‌کنیم. برای تست دستور cd خالی را وارد کردیم و نتیجه این بار امیدوار کننده بود:

پرچم را پیدا کن - حل CTF Bob: 1.0.1

بله هیچ نتیجه‌ای نداریم، و همین نسبت به نتایج قبلی امیدوار کننده‌تر است. این نتیجه یعنی می‌توانم روی همین دستور کار کنیم. در ادامه همین دستور از پایپ استفاده می‌کنیم. دستور این مرحله : cd | ls و نتیجه :

پرچم را پیدا کن - حل CTF Bob: 1.0.1

بسیار عالی است، فایل خیلی خوبی را پیدا کردیم : dev_shell.php.bak اما عجله نمی‌کنیم و سعی می‌کنیم بیشتر روی cd | کار کنیم. اینبار دستور cd | ls /home رو تست می‌کنیم و نتیجه

پرچم را پیدا کن - حل CTF Bob: 1.0.1

عالی نیست؟ پس ۴ کاربر با نام‌های کاربری bob، elliot، jc و seb وجود دارند. خب چرا نگاهی به فایل passwd نیندازیم؟ می‌خواهیم دستور cd | cat /etc/passwd را امتحان کنیم: 

پرچم را پیدا کن - حل CTF Bob: 1.0.1

بسیار خب، چیز خاصی دستگیرمان نشد، الان برگردیم یک مرحله عقب و داخل پوشه‌های کاربران را بگردیم.  در این مرحله از هر حرکت و پیمایش در پوشه‌ها تصویر قرار نمی‌دهیم. دستور این مرحله cd | ls /home/bob است و سپس همین دستور را برای کاربران دیگر هم امتحان می‌کنیم و با دستورات cd و ls و ls -la داخل پوشه ها حرکت می‌‌کنیم تا فایل مهمی پیدا کنیم. 

بعد از تست هر کدام از پوشه‌‌های کاربران به فایل theadminisdumb.txt رسیدیم آن را با cat می‌خوانیم، دستور زیر را نگاه کنید:

cd | cat /home/elliot/theadminisdumb.txt

و نتیجه: 

پرچم را پیدا کن - حل CTF Bob: 1.0.1

بسیار عالی اکنون رمزعبور یکی از کاربرها را بدست آوردیم، پس باید برای هر کدام جداگانه تست کنیم: دستور این مرحله : 

ssh [email protected]

با دستور بالا و نتیجه‌ای که گرفتیم، متوجه شدیم که درگاه پیش‌فرض ssh را از ۲۲ تغییر داده‌اند. در این مواقع یک راه پیمایش درگاه با استفاده از nmap است، اما وقتی مسیر dev_shell.php را داریم و دستوراتمان نتیجه می‌دهد چرا راه را طولانی کنیم؟ می‌دانیم که تنظیمات سرویس ssh در مسیر /etc/ssh/sshd_config است، تنها کاری که باید انجام دهیم اجرای دستور زیر است: 

cd | cat /etc/ssh/sshd_config

با خواندن فایل فهمیدیم که درگاه ssh به 25468 تغییر پیدا کرده است. بنابراین دستور زیر را اینبار امتحان می‌کنیم: 

ssh [email protected] -p 25468

 

پرچم را پیدا کن - حل CTF Bob: 1.0.1

خب همانطور که در تصویر بالا مشخص است، با نام کاربری bob و رمزعبور Qwerty نتوانستیم وارد سرور شویم. کاربرهای دیگر را امتحان می‌کنیم. تست روی کاربر jc جواب داد و توانستیم وارد سرور شویم: 

پرچم را پیدا کن - حل CTF Bob: 1.0.1

بسیار خب وارد شدیم. هدف ما هک کردن حساب bob است، و تا اینجای کار خوب پیش آمدیم. ما با استفاده از ls و سپس cd پوشه‌های این کاربر را جستجو کردیم و به فایل خاصی نرسیدیم. سرانجام با استفاده از دستور cd /home و سپس ls شروع به جستجو در پوشه‌ها و فایل‌های کاربر bob کردیم و فایل‌های خوبی پیدا شد : 

پرچم را پیدا کن - حل CTF Bob: 1.0.1

توجه کنید ابتدا پوشه desktop و سپس بقیه را بررسی کردیم و فایل خاصی در آنها پیدا نکردم، از تمام مراحل تصویر قرار نمی‌دهیم که بی‌اندازه شلوغ نشود. شما حتما داخل تمام پوشه ‌ها را نگاه کنید. 

اکنون دو فایل به نام‌های login.txt.gpg و staff.txt داریم و یک پوشه Secret. با دستور زیر سعی می‌کنیم فایل login.txt.gpg را باز کنیم.

gpg -d login.txt.gpg

اکنون Passphrase می‌خواهد که نداریم:

پرچم را پیدا کن - حل CTF Bob: 1.0.1

به سراغ دو یافته دیگر می‌رویم. با دستور زیر فایل staff را می‌خوانیم:

cat staff.txt

اما اطلاعات مهمی نصیبمان نمی‌شود. پس با دستور cd وارد پوشه Secret می‌شویم و داخل این پوشه را پوشه به پوشه بررسی مي‌کنیم (با دستورهای cd و سپس ls) تا به فایل notes.sh می‌رسیم. تصویر زیر را ملاحظه کنید: 

پرچم را پیدا کن - حل CTF Bob: 1.0.1

بظاهر کلید اینجا مخفی است، از کجا متوجه شدیم؟ چون فایل‌ها و پوشه‌ها را بررسی کردیم و در نهایت به اینجا رسیدیم. به نشانه‌ها دقت می‌کنیم و حدس اول این است که اولین حرف هر جمله را کنار هم بگذاریم HARPOCRATES. این کلمه عبور را برای فایل login.txt.gpg امتحان می‌کنیم: 

پرچم را پیدا کن - حل CTF Bob: 1.0.1

فایل با موفقیت رمزگشایی شد، نام کاربری bob و رمزعبور b0bcat_. با دستور زیر ادامه می‌دهیم:

su bob

رمزعبور را وارد می‌کنیم و با موفقیت با نام کاربری bob وارد سیستم می‌شویم. وارد home کاربر می‌شویم و ls می‌گیریم. سپس وارد پوشه‌ها شده و آنها را برای پیدا کردن پرچم یا flag جستجو مي‌کنیم. اما متاسفانه پرچم را پیدا نکردیم. بعد از کمی جستجو به دستور sudo -l می‌رسیم که سطح دسترسی‌های bob را بررسی می‌کنیم. با رمزعبور bob می‌توانیم با root وارد شویم.

کافی است دستور su را وارد و سپس رمزعبور bob را وارد کنیم. با آدرس cd / وارد مسیر root می‌شویم و ls می‌گیریم. پرچم اینجاست.

پرچم را پیدا کن - حل CTF Bob: 1.0.1

شما می‌توانید راه حل‌های دیگری را برای بدست آوردن پرچم در این CTF پیدا کنید. 

مقاله قبلی۱۰ روش برای شناسایی ایمیل جعلی ، کلاهبرداری و اسپم
مقاله بعدیچالش امنیتی LastPass

نظر بدهید

لطفا نظر خود را بنویسید
لطفا نام خود را اینجا وارد کنید

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.