مسابقات Pwn2Own نوعی مسابقه هک کامپیوتری هست که تو اون هکرها اقدام به هک و اکسپلویت نرم افزارها و سخت افزارها و دستگاههای مختلف می کنن، بطوریکه این اکسپلویتها و آسیب پذیری ها اغلب عمومی یا شناخته شده نیستند.این مسابقات برای اولین بار در سال 2007 و در کنار کنفرانس CanSecWest برگزار شد.
در سالهای ابتدایی ، مسابقه روی هک و دسترسی به چند تا لپ تاپ برگزار میشد. یعنی برگزار کنندگان یک یا چند لپ تاپ رو با آخرین بروزرسانی در اختیار هکرها قرار میداند و هر کی میتونست اونو هک کنه اون لپ تاپ بعلاوه یک پاداش نقدی بهش تعلق میگرفت. برای همین عنوان Pwn2Own انتخاب شد. یعنی سیستم هک کن “PWN” تا بتونی اونو ماله خودت “OWN” کنی.
البته الان دیگه اینجور مسابقات فقط برا چندتا لپ تاپ برگزار نمیشه و تو موضوعات مختلفی مثلا موبایل ، نرم افزارهای پرکاربرد ، سخت افزار و اتومبیل و … برگزار میشه.
شرکت ZDI یکی از برگزار کنندگان این چالش ها هستش و اخیرا مسابقه ای رو با عنوان Pwn2Own 2022 Miami با تمرکز بر سیستم های صنعتی برگزار کرده. تو این مسابقات 32 برنامه در نظر گرفته شده تا مورد بررسی قرار بگیرن و 11 تیم مختلف برای شرکت در این مسابقه حضور دارند. مسابقات در 3 روز 19و20و21 آوریل (30 و 31 فروردین و 1 اردیبهشت 1401 ) برگزار میشه.
در ابتدا یک قرعه کشی برگزار شده تا مشخص بشه کدوم برنامه قراره کی برگزار بشه که میتونید فیلم قرعه کشی رو از اینجا ببینید (البته چیز خاصی نداره . دو نفر نشستن دارن اسمارو درمیارن ) و کل لیست برنامه ها بهمراه زمان اونارو میتونید از اینجا ببینید.( برنامه هایی که جلوشون آیکون دوربین عکاسی هستش رو میتونید زنده تو یوتیوب ببینید )
کلا نتایج مسابقات با سه عنوان مشخص میشه:
- اگه هکر بتونه سیستم مورد نظر هک کنه که با رنگ سبز و success مشخص میشه و امتیاز و جایزه نقدی شاملش میشه.
- اگه هکر نتونه سیستم هک کنه با رنگ قرمز و عبارت failure مشخص میشه و قاعدتا امتیاز و جایزه نقدی نداره.
- اگه هکر بتونه سیستم هک کنه اما اکسپلویتی و آسیب پذیری که استفاده کرده قبلا شناخته شده باشه با عبارت آبی و عنوان BUG COLLISION مشخص میشه که در این صورت هم امتیاز و جایزه نقدی شامل هکر میشه البته مقدارش کمتره.
منظور از امتیاز هم Master of Pwn هستش که بسته به هر مسابقه ای به هکرها داده میشه و هکری که بتونه بیشترین امتیاز رو بدست بیاره قهرمان Pown2Own هستش.
همچنین این مسابقات در دسته بندی های OPC UA Server و Control Server و Human Machine Interface و Data Gateway برگزار میشه.
روز اول مسابقات :
در روز اول مسابقات 16 برنامه برگزار شد که نتایج روز اول به این شکل هستش :
- شروع مسابقات با 20urdjk بود که تونست حمله DoS رو روی Unified Automation C++ Demo Server با موفقیت پیاده سازی بکنه و در نهایت 5 امتیاز و 5000 دلار جایزه نقدی بگیره.
- آقای Sam Thomas از Pentest تونست با دورزدن احراز هویت و استفاده از باگ Deserialization یه RCE از Inductive Automation Ignition که در دسته Control Server بود بگیره و 20 امتیاز و 20هزار دلار جایزه نقدی بگیره.
- در چالش سوم Or Peles و Omer Kaspi و Uriya Yavnieli از JFrog Security Research تونستن یک باگ UAF پیدا کنن که منجر به DoS در Unified Automation C++ Demo Server بشه و در نهایت 5 امتیاز و 5000 دلار جایزه نقدی کسب کردن.
- در ادامه Steven Seeley و Chris Anastasio از Incite Team تونستن با استفاده از باگ Deserialization روی سیستم Iconics Genesis64 کد دلخواه اجرا کنن و 20 امتیاز و 20 هزار دلار جایزه نقدی بدست بیارن. میتونید ویدیو این چالش رو اینجا ببینید.
- در ادامه Daan Keuper و Thijs Alkemade از Computest Sector 7 تونستن با یک آسیب پذیری عدم احراز هویت صحیح روی یک تابع حیاتی در Inductive Automation Ignition ، کد اجرا کنند و در نهایت 20 امتیاز و 20هزار دلار کسب کردند.
- تیم Flashback که متشکل از Pedro Ribeiro و Radek Domanski تونستن یک باگ Uncontrolled Search Path روی AVEVA Edge پیدا کنن و در نهایت اجرای کد کنن. این گروه 20 امتیاز و 20 هزار دلار جایزه نقدی دریافت کرد. میتونید ویدیو این چالش رو اینجا ببینید.
- تیم Claroty Research تونست با استفاده از باگ resource exhaustion در Prosys OPC UA SDK for Java حمله DoS موفق داشته باشه و 5 امتیاز و 5000 دلار جایزه کسب کرد.
- در ادامه Axel 0vercl0k Souchet تونست با استفاده از باگ double free روی Iconics Genesis64 ،کد اجرا کنه و 20 امتیاز و 20هزار دلار جایزه نقدی دریافت کنه. شما میتونید این چالش رو از اینجا ببینید.
- در ادامه Daan Keuper و Thijs Alkemade از Computest Sector 7 تونستن با استفاده از آسیب پذیری uncontrolled search path روی AVEVA Edge کد اجرا کنن و 20 امتیاز و 20هزار دلار جایزه نقدی کسب کنن.
- در ادامه مسابقات 20urdjk با استفاده از آسیب پذیری file upload روی Inductive Automation Ignition تونست کد اجرا کنه و در نهایت با 20 امتیاز و 20هزار دلار جایزه کسب کنه.
- در ادامه Steven Seeley و Chris Anastasio از Incite Team تونستن با استفاده از آسیب پذیری directory traversal روی Triangle Microworks SCADA Data Gateway کد اجرا کنن. 20 امتیاز و 20 هزار دلار جایزه کسب کردند.
- تیم Claroty Research تونست روی Iconics Genesis64 اقدام به اجرای کد کنه اما چون یکی از باگهای مورد استفاده شناخته شده بود و در نتیجه BUG COLLISION شد . اما 5 امتیاز و 5000 دلار جایزه نقدی کسب کردند.
- تیم Flashback که متشکل از Pedro Ribeiro و Radek Domanski هستش ، تونستن روی Inductive Automation Ignition کد اجرا کنن اما آسیب پذیری که استفاده کرده بودند چون شناخته شده بود بنابراین BUG COLLISION شد و 5 امتیاز و 5000 دلار جایزه نقدی دریافت کردند.
- در ادامه Daan Keuper و Thijs Alkemade از Computest Sector 7 تونستن یک ماشین حساب رو Iconics Genesis64 باز کنن اما چون آسیب پذیری که استفاده کردند شناخته شده بود در نتیجه BUG COLLISION شد و 5 امتیاز و 5000 دلار جایزه نقدی داده شد.
- تیم Claroty Research تونست با استفاده از باگ resources exhaustion روی OPC Foundation OPC UA .NET Standard حمله DoS رو پیاده سازی بکنه و 5 امتیاز و 5000 دلار جایزه نقدی بدست بیاره.
- در آخرین برنامه روز اول Steven Seeley و Chris Anastasio از Incite Team تونستن با استفاده از آسیب پذیری deserialization روی AVEVA Edge کد اجرا کنن. در نهایت 20 امتیاز و 20هزار دلار جایزه نقدی بدست آوردن.
در روز اول 16 مسابقه برگزار شد که از این تعداد ، 13 برنامه موفقیت آمیز (SUCCESS)، 0 برنامه عدم موفقیت (FAILURE) و 3 برنامه تکراری (BUG COLLISION) شد و در نهایت در روز اول مسابقه ، جایگاه یازده شرکت کننده طبق جدول زیر به اتمام رسید.
روز دوم مسابقات :
در روز دوم مسابقات 13 برنامه قراره اجرا بشه که در زیر باهم بررسیشون میکنیم .
- روز دوم مسابقات با Daan Keuper و Thijs Alkemade از Computest Sector 7 شروع شد که تونستن با یک حلقه بی نهایت حمله DoS روی Unified Automation C++ Demo Server ایجاد کنن که در نهایت 5 امتیاز و 5000 دلار جایزه نقدی بدست آوردن.
- در ادامه Piotr Bazydło با استفاده از باگ deserialization روی Inductive Automation Ignition تونست کد دلخواهش اجرا کنه. در نتیجه 20 امتیاز و 20هزار دلار جایزه نقدی بدست آورد.
- در برنامه سوم روز دوم Ben McBride تونست با اکسپلویت یک تابع خطرناک روی Iconics Genesis64 ، کد دلخواهش اجرا کرد.20 امتیاز و 20هزار دلار جایزه نقدی بدست آورد.
- در ادامه Or Peles و Omer Kaspi و Uriya Yavnieli از JFrog Security Research تونستن با استفاده از باگ stack exhaustion روی OPC Foundation OPC UA .NET Standard یک DoS پیاده سازی کنن.5 امتیاز و 5000 دلار جایزه نقدی کسب کردند.
- تیم Claroty Research تونست روی AVEVA Edge یک حمله منجر به RCE ترتیب بده اما چون اکسپلویتشون شناخته شده بود ، BUG COLLISION شد و 5000 دلار جایزه نقدی و 5 امتیاز کسب کردند.
- در ادامه Steven Seeley و Chris Anastasio از Incite Team نتونستن رو Inductive Automation Ignition اکسپلویت کنن و در نتیجه نتونستن امتیاز و جایزه نقدی کسب کنن.
- در ادامه Piotr Bazydło تونست روی Iconics Genesis64 کد اجرا کنه ولی به ذلیل اینکه اکسپلویتی که استفاده میکرد قبلا شناخته شده بود نتیجه BUG COLLISION شد و 5 امتیاز و 5000 دلار جایزه نقدی کسب کرد.
- در ادامه Daan Keuper و Thijs Alkemade از Computest Sector 7 تونستن trusted application check روی OPC Foundation OPC UA .NET Standard دور بزنن و 40 امتیاز و 40هزار دلار جایزه نقدی کسب کنن. ویدیو این چالش رو میتونید از اینجا ببینید.
- در ادامه Christopher Hernandez تونست RCE از AVEVA Edge بگیره اما به دلیل اینکه آسیب پذیری قبلا شناخته شده بود در نتیجه BUG COLLISION شد و 5000 دلار جایزه نقدی و 5 امتیاز کسب کرد.
- در ادامه تیم Claroty Research نتونست اکسپلویت DoS خودش رو در زمان تعیین شده روی Unified Automation C++ Demo Server پیاده سازی کنه و در نتیجه FAILURE شد و امتیاز و جایزه نقدی دریافت نکرد.
- در ادامه مسابقات تیم Flashback که متشکل از Pedro Ribeiro و Radek Domanski هستش، تونستن RCE از Iconics Genesis64 بگیرن اما چون اکسپلیتشون شناخته شده بود در نتیجه BUG COLLISION شد و 5 امتیاز و 5000 دلار جایزه نقدی بدست آوردن.
- در ادامه Piotr Bazydło تونست روی AVEVA Edge کد اجرا کنه و 20 امتیاز و 20هزار دلار جایزه نقدی دریافت کنه.
- در ادامه تیم Claroty Research با استفاده از buffer overflow روی Kepware KEPServerEx کد اجرا کرد و 20 امتیاز و 20هزار دلار جایزه نقدی بدست آورد. ویدیو این چالش رو میتونید از اینجا ببینید.
در روز دوم 13مسابقه برگزار شد که از این تعداد ، 7برنامه موفقیت آمیز (SUCCESS)، 2 برنامه عدم موفقیت (FAILURE) و 4 برنامه تکراری (BUG COLLISION) شد و در نهایت در روز دوم مسابقه ، جایگاه یازده شرکت کننده طبق جدول زیر به اتمام رسید.
روز سوم مسابقات :
در روز سوم مسابقات 3 برنامه اجرا شد:
- شروع روز سوم با Steven Seeley و Chris Anastasio از Incite Team بود که تونستن با استفاده از باگ directory traversal روی Softing Secure Integration server کد اجرا کنن و 20 امتیاز و 20هزار جایزه نقدی دریافت کنن.
- در ادامه مسابقات تیم Flashback که متشکل از Pedro Ribeiro و Radek Domanski هستش، تونستن با استفاده از 3 باگ روی Softing Secure Integration Server کد اجرا کنن/ دو تا از باگها شناخته شده بود و بنابراین نتیجه این مسابقه هم SUCCESS بود و هم BUG COLLISION شد و در نتیجه 10 امتیاز و 10هزار دلار جایزه نقدی دریافت کردند.
- در آخرین برنامه تیم Claroty Research با استفاده از Null Pointer روی Softing Secure Integration Server تونستن DoS پیاده سازی کنن و 5 امتیاز و 5000 دلار جایزه نقدی دریافت کردند.
در روز سوم 3 مسابقه برگزار شد که از این تعداد ، 3برنامه موفقیت آمیز (SUCCESS)، 0 برنامه عدم موفقیت (FAILURE) و 1 برنامه تکراری (BUG COLLISION) شد و در نهایت در روز دوم مسابقه ، جایگاه یازده شرکت کننده طبق جدول زیر به اتمام رسید.
نتیجه نهایی :
- در کل در این سه روز 32 برنامه توسط یازده شرکت کننده برگزار شد که از این تعداد ، 23 برنامه موفقیت آمیز (SUCCESS)، 2 برنامه عدم موفقیت (FAILURE) و 8 برنامه تکراری (BUG COLLISION) شد و 400هزار دلار جایزه نقدی بین شرکت کنندگان پخش شد و Daan Keuper و Thijs Alkemade از Computest Sector 7 با 90 امتیاز و 90هزار دلار جایزه نقدی اول شدن.