رقابت با ترول، با چاشنی هکینگ
سلام
در این پست یک مثال کامل از حمله به برنامه های تحت وب، سرویس های FTP, SSH، بروت فورس، تغییر فایل های سیستم و … را به صورت عملی مشاهده می کنید.
این پست نمونه ای از مسابقات CTF یا همان Capture The Flag است که می بایست فایل proof.txt موجود در root/ را به دست آورید. این رقابت توسط vulnhub طراحی شده که به شما یک ماشین مجازی در ویرچوال باکس می دهد (موجود در این لینک) و شما می بایست از راه دور به آن حمله کنید. هیچ گونه دسترسی فیزیکی ای مجاز نیست. سطح آن مبتدی بوده و بنابراین برای تمام علاقمندانی که می خواهند خود را به چالش بکشند، توصیه می شود.(سعی کنید قبل از خواندن ادامه ی پست خودتان این مسیر را طی کنید) عکس ها و سناریوی حمله را از این لینک برداشتم و کار ترجمه ی آن با خودم، یعنی تمدن بوده است. ممنون از رعایت کپی رایت :)
سلام
در این پست یک مثال کامل از حمله به برنامه های تحت وب، سرویس های FTP, SSH، بروت فورس، تغییر فایل های سیستم و … را به صورت عملی مشاهده می کنید.
این پست نمونه ای از مسابقات CTF یا همان Capture The Flag است که می بایست فایل proof.txt موجود در root/ را به دست آورید. این رقابت توسط vulnhub طراحی شده که به شما یک ماشین مجازی در ویرچوال باکس می دهد (موجود در این لینک) و شما می بایست از راه دور به آن حمله کنید. هیچ گونه دسترسی فیزیکی ای مجاز نیست. سطح آن مبتدی بوده و بنابراین برای تمام علاقمندانی که می خواهند خود را به چالش بکشند، توصیه می شود.(سعی کنید قبل از خواندن ادامه ی پست خودتان این مسیر را طی کنید) عکس ها و سناریوی حمله را از این لینک برداشتم و کار ترجمه ی آن با خودم، یعنی تمدن بوده است. ممنون از رعایت کپی رایت :)
یک ماشین آسیب پذیر جالب به اسم ترول پیدا کردم که این ماشین با هکر، ترول می کند! ما این ماشین را در Virtual Box بوت کردیم و با Nmap عمل پویش و اسکن روی آن را انجام دادیم.
نتیجه ی اسکن: سه پورت FTP، SSH ، HTTP روی آن فعال بود. کار اسکن را با Nmap و آرگومان A- انجام دادیم و بنابراین جزئیات بیشتری از پورت های باز به دست آوردیم. همانگونه که در عکس زیر مشاهده می کنید، پورت ۲۱ مربوط به FTP این اجازه را می داد که به صورت ناشناس (Anonymous) و بدون پسورد به آن وصل شویم. همچنین فایل lol.pcap در آن وجود داشت. در پورت شماره ی ۸۰ مربوط به سرویس HTTP نیز یک دایرکتوری به نام secret بود.
بنابراین ما کار خود را از سرویس HTTP شروع کردیم. آدرس هدف را در مرورگر خود باز کردیم و اگر گفتید با چه عکسی مواجه شدیم؟ یک عکس از ترول.
خوب… جالبه! بیایید فولدر secret را باز کنیم. شاید به دایرکتوری جالب و مفیدی رسیدیم. چی؟!! یک ترول دیگر.
بنابراین چیز مفیدی در برنامه ی وب پیدا نشد و به سراغ سرویس FTP رفتیم. از قبل می دانستیم که امکان لاگین کردن در حالت Anonymous وجود دارد و فایل lol.pcap قابل دسترسی است. پس بیایید این فایل را برداریم:
ما از دستور ls استفاده کردیم تا چک کنیم که آیا درون آن فایل دیگری وجود دارد و یا خیر و تنها به همان فایل رسیدیم:
از دستور Get برای دانلود فایل استفاده کردیم.
بعد از آن پکت ها را با استفاده از ابزار Wireshark ضبط و capture کردیم. سپس شروع به چک کردن تمام اتصالات TCP کردیم و متوجه فایلی به نام secret_stuff.txt شدیم که در آن جابهجا شده بود.
انتقال فایل به درستی انجام شد و به معنای این بود که روی پروتکل FTP قرار دارد. بنابراین فیلتری را با استفاده از ftp-data و به منظور فیلتر کردن اتصالات اعمال کردیم. همان گونه که در زیر مشاهده می کنید، تنها سه اتصال پیدا شد:
در یکی از اتصالات، پیام “you almost found the sup3rs3cretdirlol” را پیدا کردیم. دایرکتوری که در آن به پیام اشاره شده بود.
ما دایرکتوری را باز و فایل دیگری به اسم roflmao را پیدا کردیم.
این فایل را دانلود کردیم. بیایید این فایل را به منظور پیدا کردن یک ترول دیگر(!) چک کنیم.
فایل bin را اجرا کردیم و در آن “Find address 0x0856BF” وجود داشت. این آدرس را در کجا باید پیدا می کردیم؟
ما این آدرس را در مرورگر وارد کردیم و یک دایرکتوری با دو زیردایرکتوری باز شد:
good_luck و this_folder_contains_the _password.
ابتدا فایل good_luck را باز کردیم و در آن فایل which_one_lol.txt file را پیدا کردیم. این فایل شامل یک سری نام کاربری بود که شاید مربوط به به SSH می شد.
سپس دایرکتوری دوم را چک کردیم که مسلما pass.txt در آن وجود داشت.
ما فایل پسورد را باز کردیم. رمز عبور (:_Good_job بود.
خوب حالا چی؟ ما نام کاربری و رمز عبور را داشتیم. بنابراین بروت فورس را اجرا کردیم. برای این کار از ابزار Hydra استفاده کردیم. همان گونه که در زیر مشاهده می کنید، فایل user.txt را در Username List و (:_Good_job را در Password قرار دادیم.
حمله را شروع کردیم اما نتوانستیم با آن پسورد لاگین کنیم. دنبال این بودیم که مشکل اعتبارسنجی را بفهمیم. بعد از گذشت مدتی متوجه شدیم که فولدری که شامل نام Pass.txt بوده یک فولدر حاوی رمز عبور بوده. بنابراین این بار مقدار Pass.txt را در فیلد Password از Hydra قرار دادیم و فهمیدیم که پسورد مقدار Pass.txt بوده است.
حمله را شروع کردیم و بووم! به درستی لاگین کرد. نام کاربری overflow و رمز عبور Pass.txt بود.
با موفقیت با SSH لاگین کردیم.
کار بعدی ای که باید انجام می دادیم، پیدا کردن فایل ها با قابلیت نوشتن جهانی در سیستم بود. بنابراین از دستور زیر استفاده کردیم:
find / -perm -2 -type f 2>/dev/null
فایل های زیادی پیدا شد. اما یکی از آن ها خارج از انتظار بود. یک فایل پایتون با مجوز نوشتن در آن بود. این فایل در محل lib/log/cleaner.py/ قرار داشت.
فایل cleaner.py را باز کردیم.
ما تابع موجود در آن را با تابع خودمان عوض کردیم. این تغییرات شامل اضافه کردن این دو خط بود:
os.system(‘cp /bin/sh /tmp/sh’) os.system(‘chmod 4777 /tmp/sh’)
در مورد اول bin/sh را در tmp/sh کپی کردیم و در مورد دوم قابلیت اجرا (executable) را به آن اضافه کردیم.
بعد از ذخیره سازی فایل پایتون، از نسشت SSH خارج شدیم و دوباره وارد سیستم شدیم. سپس دایرکتوری جاری را به tmp/sh/ تغییر دادیم و دستور whoami را به منظور هویت سنجی کاربر اجرا کردیم. خروجی root بود!
حالا ما در دایرکتوری root/ قرار داشتیم و توانستیم فایل proof.txt را به دست آوریم. این به معنای پایان کار بود.
کار ترول به پایان رسید!
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگو شرکت کنید؟نظری بدهید!