در دنیای آموزش برنامه نویسی تیم کوئرا به دنبال برگزاری دورههای مدرن آموزشی و با کیفیت بالا در قالب بوتکمپ است که اعضای با استعداد و دلسوز تیم همه تلاش خود را در جهت برگزاری هر چه بهتر این دوره میکنند.
برگزارکنندگان بوتکمپ نیازمند ذخیره اطلاعات شرکت کنندگان بوتکمپ در یک فایل به نام bootcamp_data
هستند. اما با یک چالش مواجه شده اند آنها میخواهند این فایل را به گونه ای تنظیم کنند که تنها اعضای گروه quera-bootcamp
(دو عضو user1
, user2
) قابلیت خواندن، نوشتن آن را داشته باشند. دیگر افراد خارج از این گروه نباید به هیچ وجه به این فایل دسترسی داشته باشند. کاربر صاحب فایل و دایرکتوری user1
است.
یک دایرکتوری با اسم bootcamp
در روت (/
) بسازد بعد از ایجاد دایرکتوری فایل گفته شده را در این دایرکتوری بسازید و سپس به تیم بوتکمپهای کوئرا کمک کنید تنظیمات مورد نظر را اعمال کند.
کاربران باید پوشه خانه مخصوص به خود را داشته باشند و پس از اجرای برنامه کاربران گروه و همه فایل ها را پاک کنید.
usermod
و cd
را دارید ولی توصیه میکنیم هیچ پایپلاینی تشکیل ندهید.sudo
نیست.--remove-all-files
برای حذف یوزر نیست.برای ارسال جواب میتوانید دستورات خواسته شده را درون فایلی با نام solution.sh
وارد کنید و آن را انتخاب و سپس ارسال کنید.
در روزی از روزها، تیم بوتکمپ یک اینستنس لینوکسی دریافت کرد که مشکوک بود. اعضای تیم بعد از بررسی متوجه شدند که این فایل دستکاری شده است. اما از آنجایی که مشغول طراحی سوالات کانتست هستند از شما خواستهاند تا پیگیر ماجرا باشید. میتوانید فایل را از اینجا دانلود کنید در این فایل فلگی قرار دارد و از شما میخواهیم که فلگ را پیدا کنید. دقت کنید که فرمت فلگ به شکل زیر است.
شما باید فلگ پیدا شده را در باکس قرار داده شده سابمیت کنید.
پوریا که در تیم امنیت مشغول به کار است لیستی از آیپیهای مختلف جهت تنظیم دسترسی کاربران تهیه کرده است. او اکنون از شما میخواهد اسکریپتی برای او بنویسید که با استفاده از آن بتواند عملیات مسدود یا آزاد سازی آیپیهای مختلف را به راحتی انجام دهد.
اسکریپت Ip_manager.sh
را مطابق توضیحات زیر پیادهسازی کنید:
./Ip_manager.sh command ip_list_filepath
یا Ip_manager.sh command IP
است. مثال:و یا :
اگر تعداد آرگومانهای ورودی اسکریپت کمتر از ۲ تا بود، اسکریپت باید عبارت not enough arguments
را چاپ کند و متوقف شود.
اگر مقدار command
برابر با block
یا unblock
نبود، اسکریپت باید عبارت invalid command
را چاپ کند و متوقف شود.
اگر فایلی که مسیر آن بهعنوان آرگومان دوم وارد میشود وجود نداشت و یا آیپی وارد شده معتبر نبود، اسکریپت باید عبارت File does not exist or invalid IP
را چاپ کند و متوقف شود.
اگر مقدار command
برابر با block
باشد و آدرس یک فایل وارد شود، اسکریپت باید لیست بازههای آیپی موجود در فایل را دریافت کند و درخواستهای ورودی مربوط به این آیپیها را بهازای همهی پروتکلها و پورتها DROP
کند. اگر rule مربوط به ACCEPT
کردن این درخواستها از قبل موجود بود، اسکریپت باید آنها را حذف کند.
اگر مقدار command
برابر با block
باشد و یک آیپی وارد شود، اسکریپت باید درخواستهای ورودی مربوط به این آیپی را بهازای همهی پروتکلها و پورتها DROP
کند. اگر rule مربوط به ACCEPT
کردن این درخواستها از قبل موجود بود، اسکریپت باید آنها را حذف کند.
اگر مقدار command
برابر با unblock
باشد و آدرس یک فایل وارد شود، اسکریپت باید لیست بازههای آیپی موجود در فایل را دریافت کند و درخواستهای ورودی مربوط به این آیپیها را بهازای همهی پروتکلها و پورتها ACCEPT
کند. اگر rule مربوط به DROP
کردن این درخواستها از قبل موجود بود، اسکریپت باید آنها را حذف کند.
اگر مقدار command
برابر با unblock
باشد و و یک آیپی وارد شود، اسکریپت باید درخواستهای ورودی مربوط به این آیپی را بهازای همهی پروتکلها و پورتها ACCEPT
کند. اگر rule مربوط به DROP
کردن این درخواستها از قبل موجود بود، اسکریپت باید آنها را حذف کند.
آیپی ورودی میتواند به صورت 104.28.193.140
یا یک بازه مانند 95.170.192.0/19
باشد.
عملیات مسدودسازی و آزادسازی درخواستها باید با استفاده از iptables
انجام شود.
داوری این سؤال کمی بیشتر از سایر سؤالات طول میکشد.
تضمین میشود که هیچ rule ای خارج از اسکریپت اضافه نمیشود.
پس از پیادهسازی موارد خواستهشده، فایل Ip_manager.sh
را آپلود کنید.
باب و آلیس که از دوستان صمیمی و قدیمی دنیای امنیت هستند به تازگی کارآگاه پروندههای جنایی در سیسیل شدهاند، جایی که مافیای مخوف کل جزیره را با قتلهای پی در پی احاطه کرده است.
در این جزیره جرم و جنایت حرف اول را میزند و قانون حاکم ناعدالتیست. باب و آلیس در این جزیره استخدام شدهاند تا شرایط کنونی را سامان دهند، آنها میدانند که تمامی این ناامنیها زیر سر خانواده لوچانو میباشد و قصد دارند تا به طور مخفیانه لیست سران این تشکیلات را بدست آورده و تحویل مقامات امنیتی ایتالیا بدهند.
باب و آلیس در این جزیره مأموریت سختی را بر عهده دارند و کوچکترین اشتباه از سمت آنها میتواند به قیمت جانشان تمام شود.
به باب و آلیس در حل این پرونده کمک کنید، قبل از اینکه خورشید 8
بار غروب کند!
باب و آلیس با آدرس 192.168.100.106
توانستهاند به کمک ابزار nmap
سرور مافیا با آدرس 192.168.100.103
را scan
کرده و port
های باز آنها را شناسایی کنند.
ترافیک scan
سرور را میتوانید از این لینک دانلود کنید.
شما باید با تجزیه و تحلیل ترافیک موجود در فایل traffic.pcap
شماره port
های باز این سرور را بدست آورده و port
های کوچکتر از 49410
را به صورت صعودی concat
کنید تا به رشته هدف صعودی برسید. به طور مثال اگر شماره port
های باز کوچکتر از 49410
سرور مورد نظر بر اساس فایل traffic.pcap
اعداد 80
، 400
، 33
، 2234
و 123
باشد، رشته هدف صعودی به صورت دنباله صعودی این اعداد است:
همچنین طبق تعریف بالا میتوان رشته هدف نزولی را نیز تعریف کرد که دنباله نزولی این اعداد است. به طور مثال رشته هدف نزولی اعداد فوق به صورت زیر میباشد:
بعد از به دست آوردن رشته هدف صعودی و نزولی باید از این لینک dump
پایگاه داده آنها را دانلود کنید. تمامی فایلهای این پایگاه داده رمز شده است و شما باید فایلی که هم نام رشته هدف صعودی است را پیدا کرده و محتوای آن را رمزگشایی کنید تا به لیست مأموریتهای سران این تشکیلات دست یابید!
بعد از رمزگشایی و بدست آوردن لیست مأموریتهای سران تشکیلات، شما باید به کمک دستور awk
محتویات بدست آمده را طوری مرتب کنید تا خروجی آن به صورت مجموعه دادگانی با سه ستون زیر باشد که بر اساس ستون Total Income
به طور نزولی sort
شده و در آخرین خط خروجی، رشته هدف نزولی بدست آمده از port
های باز سرور چاپ شده باشد:
Mafia Name
مشابه داشته باشند.به طور مثال پایگاه داده زیر یک نمونه خروجی معتبر است:
Mateo
در مجموع تمامی مأموریتهای خود تعداد 10
نفر را کشته و به ازای همه آن قتلها 21
قطعه طلا بدست آورده است همچنین Dante
نیز در مجموع تمامی مأموریتهای خود تعداد 12
نفر را کشته و به ازای همه آن قتلها 18
قطعه طلا بدست آورده است.Mafia Name
تکراری نیستند.Total Income
به صورت نزولی sort
شدهاند.port
های باز سرور چاپ شده است.در نهایت نتیجه نهایی را به صورت متن در form
زیر ارسال کنید تا مافیای سیسیل هر چه زودتر دستگیر شود.
در شهر کانتیننتال، هتلی وجود دارد که به ریاست پیکلوویچ، همه خلافکارها و آدمهای خطرناک در آن ساکن هستند به طوری که اگر کسی بخواهد به آن وارد شود، اسم خود را به نگهبان داده و نگهبان با بررسی فراوان در لیست خود، به او اجازه ورود میدهد.
هیچکس جرئت نزدیک شدن به این هتل را نداشت تا اینکه یک گروه به سرکردگی الکس تصمیم گرفتند به این هتل نفوذ کنند. افراد الکس تصمیم گرفتند که اسمهای خود را رمز کنند به صورتی که بین آن حروف اضافهتری قرار بدهند اما از شانس بد الکس، خلافکارها این موضوع را متوجه شدهاند و در تلاشاند که اسم رمزنگاری نشده این گروه را پیدا کنند.
آنها این کار را به این صورت در نظر میگیرند که از اسم رمزگذاری شده، زیررشتههایی به اندازه اسم واقعی میسازند و ارزش آن را محاسبه میکنند. ارزش هر زیر رشته برابر است با مجموع تکرار حروف آن. هرکدام که ارزش بالاتری داشت به احتمال بیشتری اسم واقعی است و آنها به دنبال آن هستند. توجه کنید که به طرز عجیبی اسم واقعی افراد الکس حروف تکراری ندارد!
برنامهای بنویسید که به خلافکارها کمک کند تا اسم نفوذی را پیدا کنند =)))))
ورودی شامل دو خط است که در خط اول اسم رمزنگاری شده به حروف کوچک انگلیسی (s) و در خط دوم طول اسم واقعی (n) می آید.
خروجی برنامه شامل یک خط است که در آن تعداد زیررشتهها با بیشترین ارزش را برمیگرداند.
از آنجایی که جواب ممکن است خیلی بزرگ باشد باقیمانده آن را به محاسبه کنید.
در این نمونه ارزش هر زیر رشته به صورت زیر محاسبه میشود:
که در این نمونه بزرگترین ارزش برابر با ۳ است و تعداد زیررشتهها با این اندازه ۴ میباشد.
در این نمونه ارزش هر زیر رشته به صورت زیر محاسبه میشود:
که در این نمونه بزرگترین ارزش برابر با ۵ است و تعداد زیررشتهها با این اندازه ۲ میباشد.
دستمان خورد و همهچیز پاک شد. از شما میخواهیم با اسکریپت پایتونی نوع فایلهای پاک شده را بازیابی کنید.
خروجی تابع پایتونی شما باید یک لیست از فایلتایپهای پیدا شده باشد. تنها فایلهای زیر برای ما اهمیت دارند. آنها را پیدا کنید.