افلاطون ڈیٹا انٹیلی جنس.
عمودی تلاش اور Ai.

2023 SANS ہالیڈے ہیک چیلنج کو کریک کرنا

تاریخ:

AI اور اس کے استعمال کے حفاظتی خطرات، 2023 SANS ہالیڈے ہیک چیلنج 21 مقاصد کی ایک سیریز کو نیویگیٹ کرنے کا ایک بھرپور تجربہ تھا جس نے سائبر سیکیورٹی کی متعدد مہارتوں کا تجربہ کیا اور اسے وسیع کیا۔

میرے لیے بہترین چیلنجز ایک پینٹسٹ رپورٹ میں AI کے فریب کا شکار کرنا، لینکس سسٹم پر مراعات کو بڑھانا، گیم بوائے گیمز میں دھوکہ دہی کی تلاش، Azure REST API کا استعمال Azure Function ایپ کے سورس کوڈ کو تلاش کرنا اور بالآخر کسی کمزور کا استحصال کرنا تھا۔ SSH سرٹیفکیٹ سروس، کے استعمال کی مشق امپیکٹ ٹول سویٹ اور سرٹیفی کمزوروں کا استحصال کرنا ایکٹو ڈائریکٹری سرٹیفکیٹ خدمات، اور اسپیس ایپس میں ایس کیو ایل انجیکشن اور جاوا ڈی سیریلائزیشن کی کمزوریوں کا استحصال کرنا۔

ذیل میں، میں اس راستے کا اشتراک کر رہا ہوں جو میں نے کچھ انتہائی قابل ذکر چیلنجوں سے نمٹنے کے لیے اپنایا تھا۔

رپورٹینیٹر

شکل-1-کرسمس-جزیرہ-روڈولف-آرام

ChatNPT، ایک بڑی زبان کا ماڈل (LLM) جو کچھ چیلنجوں کی تخلیق کے لیے استعمال کیا جاتا ہے، نے ایک دخول ٹیسٹ کی رپورٹ شمالی قطب سسٹمز کے نیٹ ورک میں دریافت ہونے والی کمزوریوں پر، کچھ آنے والے چیلنجوں کے ایک حصے کے طور پر نمایاں ہیں۔ تاہم، ChatNPT نے رپورٹ میں کچھ تفصیلات کو دھوکہ دیا۔ ChatGPT، یا کسی اور پسندیدہ LLM کا استعمال کرتے ہوئے، کام فریب شدہ معلومات کے ساتھ حصوں کو جھنڈا لگانا تھا۔ میرا نقطہ نظر ChatGPT کے مواد کے بارے میں مخصوص سوالات پوچھنا تھا تاکہ یہ سمجھا جا سکے کہ میں پہلے کیا سمجھ نہیں پایا تھا اور آخر کار بے ضابطگیوں کو دریافت کرنا تھا۔ نو حصوں میں سے تین میں غلطیاں تھیں۔

تصویر-2-رپورٹینیٹر-3

جیسا کہ ChatGPT کی طرف سے تصدیق کی گئی ہے، اس سیکشن میں 88,555 کا ایک غلط پورٹ نمبر تھا، جو 65,535 کے سب سے زیادہ درست پورٹ نمبر سے کہیں زیادہ ہے:

شکل-3-رپورٹینیٹر-3-ChatGPT-جواب

تصویر-4-رپورٹینیٹر-6

یہاں میں نے فوری طور پر دیکھا کہ بھیجیں HTTP درخواست کا طریقہ نہیں ہے۔

شکل-5-رپورٹینیٹر-6-ChatGPT-جواب

تصویر-6-رپورٹینیٹر-9

ChatNPT نے رپورٹ کے سیکشن آٹھ میں مذکور پی ایچ پی ورژن نمبر کو یا تو HTTP پروٹوکول ورژن کے طور پر یا اس سیکشن میں "HTTP HEAD کی درخواست" کے لیے غلط متن کے طور پر الجھا دیا۔ اس کے علاوہ، لوکیشن ہیڈر میں ونڈوز رجسٹریشن یا پروڈکٹ کیز کو ظاہر کرنا ایک بری نصیحت ہے۔

شکل-7-رپورٹینیٹر-9-ChatGPT-جواب

لینکس پرائیو ایس سی

Figure-8-Island-of-Misfit-Toys-Ostrich-Saloon

اس چیلنج میں، حتمی مقصد ایک سوال کا جواب دینا تھا لیکن وہ سوال ایک ناقابل رسائی میں چھپا ہوا تھا:

سوال

اگرچہ ہیں مختلف طریقوں لینکس مشین پر مراعات کو بڑھانے کے لیے، اس چیلنج نے ایک حسب ضرورت ایگزیکیوٹیبل نامی اجازت دی۔ سادہ کاپی SUID بٹ کے ساتھ غلط استعمال کیا جائے گا۔ اگر کسی فائل کے مالک کے لیے SUID بٹ سیٹ ہے اور مالک ہے۔ جڑ، پھر اس فائل کو ہمیشہ روٹ مراعات کے ساتھ عمل میں لایا جاتا ہے یہاں تک کہ سسٹم پر نان روٹ صارفین کے ذریعہ۔ میں نے مندرجہ ذیل کمانڈ کو باقاعدہ فائلوں کے لیے پورے سسٹم کو تلاش کرنے کے لیے استعمال کیا جن میں مالک کے لیے SUID بٹ سیٹ ہے، کسی بھی خرابی کے آؤٹ پٹ کو مسترد کرتے ہوئے:

فگر سادہ کاپی

سادہ کاپی معیاری کا ایک کمزور، لیکن آسان ورژن لگتا تھا۔ cp افادیت درحقیقت مدد کے پیغام نے بھی یہی تجویز کیا:

استعمال: سادہ کاپی

میرا نقطہ نظر درج ذیل تھا: روٹ مراعات والے صارف کے لیے معلومات بنائیں، اس معلومات کو اس کی ایک کاپی میں شامل کریں۔ / وغیرہ / پاس ورڈ فائل، پھر پرانے کو تبدیل کریں پاس ورڈ کاپی کے ساتھ فائل. اگلا، استعمال کریں su نئے صارف کے طور پر لاگ ان کرنے کے لیے۔

سسٹم تک جڑ تک رسائی کے ساتھ، میں قابل عمل تلاش کرنے کے قابل تھا۔ runmetoجواب میں /جڑ، اسے چلائیں، اور جواب کا اندازہ لگائیں: سانتا.

تصویر مجھے جواب دینے کے لیے چلائیں۔

اس کا جواب بھی config فائل میں دیا گیا تھا۔ /etc/runtoanswer.yaml، لیکن اس فائل کو صرف روٹ مراعات کے ساتھ یا استعمال کرکے پڑھا جاسکتا ہے۔ سادہ کاپی اسے کاپی کرنے کے لیے /dev/stdout.

گیم کارتوس: والیوم 2 اور والیوم 3

شکل-10-گیم-کارٹریج- والیوم 2

دو چیلنجوں میں گیم بوائے ROM فائلوں کی لائٹ ریورس انجینئرنگ شامل تھی۔ پہلا ایک کھیل تھا جس کا مقصد ایک گارڈ سے گزرنا، پورٹل کو ظاہر کرنا، اور ایئر ویو کے جواب کو ڈی کوڈ کرنا تھا۔ ہمیں گیم کے دو ورژن دیے گئے اور ساتھ ہی اس کو دیکھنے کے لیے اشارہ بھی دیا گیا۔ مختلف انکے درمیان. کچھ مختلف ہیکس بائٹس کو ایک ورژن سے دوسرے ورژن میں کاپی کرنا پورٹل کو ظاہر کرنے کے لیے کافی تھا، جس کی وجہ سے ایک کمرے میں ریڈیو کا جواب مورس کوڈ میں نشر کیا گیا:

مورس کوڈ

دا-ڈا-ڈٹ

دی-دا-دی-ڈٹ

دا دہ دا دہ

دی-ڈا-ڈٹ

 

دا-دی- دا-دا

پیغام

g

l

0

r

 

y

دوسرا وہ کھیل تھا جہاں آپ سکے جمع کرنے کے لیے چھلانگ لگا کر پوائنٹس حاصل کر سکتے تھے۔ تاہم، 998 پوائنٹس سے زیادہ حاصل کرنے سے آپ کے پوائنٹس 0 تک پہنچ جائیں گے اور، کچھ شرائط کے تحت، اوور فلو کی خرابی کے بارے میں ایک پیغام کو متحرک کریں گے۔ مقصد نقشے کے اگلے حصے میں تیرتے ہوئے قدموں کو ظاہر کرنا تھا جہاں پرچم کو محفوظ کیا گیا تھا، لیکن اس کے لیے کودنے میں مہارت درکار تھی۔ اس کے بجائے، میں نے سوچا کہ کی مدد سے کیسے اڑنا ہے۔ BGB گیم بوائے ایمولیٹر اور اس کے چیٹ سرچر فنکشن کا مجموعہ اور گیم پلے کے دوران RAM کے بصری معائنہ سے ہیکس بائٹ کو تلاش کرنا جو نقشے پر پلیئر کی y پوزیشن کو کنٹرول کرتا ہے - بنیادی طور پر، میں نے ایک گیم شارک۔ کوڈ

جھنڈا تھا۔ !ٹام+یلف!.

سرٹیفکیٹ SSHenanigans

اگرچہ پبلک پرائیویٹ کلیدی جوڑوں کی جگہ سرٹیفکیٹس کا استعمال SSH پر تصدیق کرنے کی سیکیورٹی کو بہتر بناتا ہے، لیکن غلط کنفیگر شدہ SSH سرٹیفکیٹ پر دستخط کرنے والی سروس حملہ آور کو غیر قانونی طور پر کسی دوسرے صارف کے طور پر تصدیق کرنے کے لیے سرٹیفکیٹ حاصل کرنے کی اجازت دے سکتی ہے۔ چیلنج کو مندرجہ ذیل طریقے سے ترتیب دیا گیا تھا۔

An Azure فنکشن ایپ پر تعینات ہے۔ Northpole-ssh-certs-fa.azurewebsites.net SSH سرٹیفکیٹ کسی کو بھی واپس کرتا ہے جو SSH پبلک کلید فراہم کرتا ہے۔ ان سرٹیفکیٹس کو SSH سے تصدیق کرنے کے لیے استعمال کیا جا سکتا ہے۔ ssh-server-vm.santaworkshopgeeseislands.org صارف کے طور پر نگرانی.

اس ڈومین پر میزبان ایک Azure ورچوئل مشین ہے، لہٰذا لاگ ان کرنے کے بعد میرا پہلا مرحلہ اس سے معلومات اکٹھا کرنا تھا۔ مثال کے طور پر میٹا ڈیٹا جیسا کہ بعد میں Azure REST API پر کال کرنے کے لیے اس کی ضرورت ہوگی، خاص طور پر، مجھے سبسکرپشن ID اور وسائل کے گروپ کا نام درکار تھا۔ مجھے اس API کو استعمال کرنے کے لیے ایک رسائی ٹوکن کی بھی ضرورت تھی، جسے میں حاصل کرنے کے قابل تھا۔ ایک منظم شناخت کا استعمال کرتے ہوئے. Azure REST API کو کال کرتے وقت یہ حاصل شدہ ٹوکن HTTP اتھارٹی ہیڈر میں استعمال کیا جانا چاہیے۔

اس وقت، میرے پاس API کال کرنے کے لیے درکار ہر چیز موجود تھی۔ سورس کنٹرول کنفیگریشن حاصل کریں۔ Azure فنکشن ایپ کا۔ میں نے کال کی اور کنفیگریشن پراپرٹیز میں میں نے ایک URL دیکھا GitHub پر ایپ کا سورس کوڈ.

سورس کوڈ کے معائنے سے معلوم ہوا کہ ایپ دوسرے پیرامیٹر کو قبول کرتی ہے: اہم. اگر HTTP POST سے درخواست کی جائے۔ /api/create-cert اختتامی نقطہ نہیں بھیجتا ہے۔ کے لئے ایک قدر اہم، پھر کا ایک طے شدہ تیر کا واپس آ گیا ہے، لیکن یہاں ایک کمزوری ہے۔ استعمال کرنا برپ سویٹ میں HTTP POST کی درخواست کو روک سکتا ہوں اور قدر داخل کر سکتا ہوں۔ منتظم. میں درخواست کرنا جانتا تھا۔ منتظم کیونکہ یہ میں پرنسپل تھا /etc/ssh/auth_principals/alabaster فائل کو ورچوئل مشین پر اور میں الابسٹر کی ہوم ڈائرکٹری تک رسائی حاصل کرنا چاہتا تھا۔

شکل-12-سرٹیفکیٹ-SSHenanigans-حل

ہاتھ میں ایڈمن پرنسپل کے لیے SSH سرٹیفکیٹ کے ساتھ، میں نے اسی ورچوئل مشین میں لاگ ان کیا الاباسٹر اور اس کی ہوم ڈائرکٹری میں Alabaster کی TODO کی فہرست ملی۔ فہرست میں پرچم کا لفظ تھا: جنجربریڈ.

ایکٹو ڈائریکٹری

پچھلے چیلنج کی طرح ایک ہی ورچوئل مشین پر شروع کرتے ہوئے، اس چیلنج نے دیکھا کہ کس طرح غلط کنفیگر ہوا۔ ایکٹو ڈائریکٹری سرٹیفکیٹ سروس کسی دوسرے صارف کے طور پر تصدیق کرنے کے لیے حملہ آور کے ذریعے زیادتی کی جا سکتی ہے۔ جیسا کہ الاباسٹر میرے پاس ایک ڈائریکٹری بھری ہوئی تھی۔ امپیکٹ ٹولز لیکن ان میں سے زیادہ تر کو ٹارگٹ سرور کا ڈومین نام اور IP ایڈریس، اور لاگ ان کرنے کے لیے صارف نام اور پاس ورڈ کی ضرورت ہوتی ہے - وہ معلومات جو میرے پاس ابھی تک نہیں تھی۔

لہذا ایک اچھا پہلا قدم Azure REST API کے لئے میری اجازتوں کا پتہ لگانا تھا کیونکہ اجازت سے انکار شدہ پیغام کو پورا کرنے کے لئے ایک کے بعد ایک API کو کال کرنے کی ضرورت نہیں ہے۔ اس طرح، میں ریسورس گروپ کے لیے تمام اجازتیں درج کیں۔ جو میں نے پچھلے چیلنج میں دریافت کیا تھا۔

چونکہ میں نے دیکھا کہ میرے پاس کلیدی والٹس پڑھنے کے ارد گرد کئی اجازتیں ہیں، میں آگے بڑھا ان کی فہرست اور دو ملے: Northpole-it-kv اور Northpole-ssh-certs-kv.

APIs کو تبدیل کرنے کا وقت۔ اب تک میں اینڈ پوائنٹ پر کال کر رہا تھا۔ management.azure.com لیکن Azure Key Vault کے کچھ حصے آن ہیں۔ vault.azure.net اور اس وسیلے کے لیے اپنے رسائی ٹوکن کی ضرورت ہے۔ ایک بار پھر میں نے اپنا استعمال کیا۔ ایک رسائی ٹوکن حاصل کرنے کے لیے شناخت کا انتظام کیا۔ لیکن اس بار وسائل کو تبدیل کر رہے ہیں۔ vault.azure.net.

In Northpole-it-kv، میں ایک راز کا نام ملا. اس نام کا استعمال کرتے ہوئے، I اس راز کی قیمت کی درخواست کی۔، جو پاور شیل اسکرپٹ کے لیے نکلی۔ ایکٹو ڈائریکٹری صارف بنانا کہا جاتا ہے یلفی. تنقیدی طور پر، اب میرے پاس امپیکیٹ ٹول سویٹ کا فائدہ اٹھانے کے لیے درکار تمام معلومات موجود تھیں۔

کا استعمال کرتے ہوئے GetADUsers.py ڈومین میں ایک اور صارف کا انکشاف کیا جو دلچسپی کا حامل ہو سکتا ہے: wombleycube. میں ایس ایم بی کے ذریعے ایکٹو ڈائریکٹری سرور کا استعمال کرتے ہوئے رابطہ قائم کرنے کے قابل بھی تھا۔ smbclient.py. دلچسپی کی فائل شیئر پر مشتمل ہے۔ سپر_خفیہ_تحقیق ڈائریکٹری لیکن میں اسے اس طرح نہیں پڑھ سکا یلفی.

خوش قسمتی سے، مجھے ایک اور ٹول تک رسائی حاصل تھی: سرٹیفی. اس کا استعمال ایکٹو ڈائریکٹری سرٹیفکیٹ سروسز کے لیے غلط کنفیگر شدہ سرٹیفکیٹ ٹیمپلیٹس کو تلاش کرنے اور ان کا غلط استعمال کرنے کے لیے کیا جاتا ہے۔ ٹول نے ایک کمزور ٹیمپلیٹ کو درج کیا ہے کیونکہ اس نے سرٹیفکیٹ کے درخواست کنندہ کو من مانی فراہمی کی اجازت دی ہے۔ موضوع متبادل نام اور فراہم کردہ نام کے لیے کلائنٹ کی تصدیق کرنے والا جاری کردہ سرٹیفکیٹ۔

شکل-13-ایکٹو-ڈائریکٹری-حل-1

کے ساتھ ایک سرٹیفکیٹ کی درخواست کے بعد wombleycube مضمون کے متبادل نام کے فیلڈ میں داخل کیا گیا، میں نے NT ہیش حاصل کرنے کے لیے Certipy کا بھی استعمال کیا۔ wombleycube اس سرٹیفکیٹ کا استعمال کرتے ہوئے. پھر، Wombley کی ہیش کو پاس کر کے smbclient.pyمیں SMB کے ذریعے ایکٹو ڈائرکٹری سرور سے جڑنے کے قابل تھا۔ wombleycube اور تک رسائی حاصل کریں۔ سپر_خفیہ_تحقیق ڈائریکٹری، جس میں اگلے چیلنج کے لیے ہدایات موجود تھیں۔ InstructionsFor EnteringSatelliteGroundStation.txt.

شکل-14-ایکٹو-ڈائریکٹری-حل-2

خلائی جزیرہ دروازے تک رسائی کا اسپیکر

تصویر-15-خلائی-جزیرہ-خلائی پورٹ-پوائنٹ

خلائی نظام میں چیلنجوں تک رسائی حاصل کرنے کے لیے زمینی حصہ, پاسفریز بولنے والے وومبلی کیوب کی جعلی آواز پیدا کرنے کے لیے LLM استعمال کرنے کی ضرورت تھی۔ وومبلی کی ایک آڈیو فائل کو ایک کہانی اور پاسفریز بتاتے ہوئے، اسے استعمال کرنا معمولی بات تھی۔ LOVO AI پاسفریز بولنے اور کامیابی سے تصدیق کرنے کے لیے وومبلی کی نقل کرنے والی آواز پیدا کرنے کے لیے۔

اضافی تحفظات کے بغیر، آواز کی تصدیق کو LLMs کے دور میں حفاظتی طریقہ کار کے طور پر سنگین چیلنجوں کا سامنا ہے۔

کیمرے تک رسائی

Figure-16-Space-Island-Zenith-SGS

پاسفریز بولنے کے بعد، میں ایک ٹرین میں سوار ہوا جس نے مجھے ایک درون گیم کے ساتھ مواصلت کے لیے ذمہ دار زمینی حصے تک لے جایا۔ کیوب سیٹ، چھوٹے سیٹلائٹ کی ایک قسم۔ گراؤنڈ سٹیشن میں ہمیں اے وائر گارڈ اس کیوب سیٹ سے ایک خفیہ کنکشن قائم کرنے کے لیے کنفیگریشن۔

اس سیٹلائٹ پر موجود سافٹ ویئر کے ساتھ مطابقت رکھتا ہے۔ NanoSat MO فریم ورک (NMF)، ایک سافٹ ویئر فریم ورک جسے یورپی خلائی ایجنسی نے CubeSats کے لیے تیار کیا ہے۔ یہ فریم ورک ایک کے ساتھ آتا ہے۔ SDK خلائی ایپس کو تیار کرنے اور جانچنے کے لیے۔ یہ کنزیومر ٹیسٹ ٹول (سی ٹی ٹی) بھی فراہم کرتا ہے، ایک گراؤنڈ ایپ کے طور پر اور کمانڈ لائن ٹول کے طور پر، آن بورڈ سپروائزر سے جڑنے کے لیے، ایک سافٹ ویئر آرکیسٹریٹر جو خلائی ایپس کو شروع کرنے اور روکنے کے ساتھ ساتھ دیگر کاموں کو مربوط کرنے کا بھی خیال رکھتا ہے۔

چیلنج یہ جاننا تھا کہ آن بورڈ کیمرہ ایپ کو تصویر لینے کی ہدایت کیسے کی جائے، پھر اسنیپ شاٹ کو بازیافت کریں۔ میں نے مندرجہ ذیل اقدامات کئے۔

CTT انٹرفیس کو بوٹ کرنے کے بعد، میں سپروائزر سے منسلک ہونے کے لیے سپروائزر کی URI میں داخل ہوا۔ پھر میں نے دستیاب ایپس کو چیک کیا، کیمرہ ایپ ملا، اور اسے شروع کیا۔ کیمرہ ایپ نے اپنا URI واپس کر دیا، جسے میں اس سے منسلک کرتا تھا۔ اگلا، میں نے Base64SnapImage ایکشن کو انجام دیا، جس نے جہاز کے کیمرے کو تصویر لینے کی ہدایت کی۔

کیمرہ ایپ ایک پیرامیٹر سروس بھی پیش کرتی ہے جو دو قدریں واپس کر سکتی ہے: لیے گئے سنیپس کی تعداد اور بیس 64 میں انکوڈ کردہ JPG سنیپ شاٹ۔ تاہم، CTT انٹرفیس تصویر کو دیکھنے اور پیرامیٹر کی قدروں کو براہ راست انٹرفیس سے کاپی کرنے کا کوئی طریقہ فراہم نہیں کرتا، حالانکہ میں دیکھ سکتا تھا کہ مطلوبہ قدر موجود تھی۔ لہذا مجھے تصویر حاصل کرنے کے چکر لگانے کے طریقہ کی ضرورت تھی۔

میں نے دریافت کیا کہ CTT انٹرفیس میں ایک ہے۔ جنریشن کو فعال کریں۔ بٹن جو پیرامیٹر ویلیو کی باقاعدگی سے طے شدہ اشاعت کو متحرک کرتا ہے۔ CTT کمانڈ لائن سے، میں پھر مطلوبہ پیرامیٹر کو سبسکرائب کر سکتا ہوں، شائع ہونے پر قیمت وصول کر سکتا ہوں، اور اسے فائل میں ری ڈائریکٹ کر سکتا ہوں۔

چونکہ میں ایک Docker کنٹینر میں CTT چلا رہا تھا، اس لیے میں نے فائل کو اپنے میزبان سسٹم پر کاپی کیا۔ ڈاکر سی پی، فائل کے مواد سے کرفٹ کو ہٹا دیا، پھر base64 نے جھنڈا دیکھنے کے لیے تصویر کو ڈی کوڈ کیا: چھٹیوں کے موسم کو فتح کریں!.

تصویر-19-کیمرہ-ایپ-اسنیپ شاٹ

میزائل ڈائیورشن

آخری چیلنج کا استعمال کرنا تھا۔ میزائل کو نشانہ بنانے کا نظام زمین سے سورج کی طرف میزائل کو ری ڈائریکٹ کرنے کے لیے ان گیم کیوب سیٹ پر ایپ۔ اس ایپ نے صرف ایک کارروائی فراہم کی ہے: ڈیبگ. ایسا لگتا ہے کہ اسے چلانے سے ایس کیو ایل کو پرنٹ کرنے کے علاوہ زیادہ کام نہیں ہوتا ہے۔ ورژن کمانڈ اور اس کا آؤٹ پٹ گویا یہ ایپ کے ذریعہ استعمال کردہ ڈیٹا بیس کے ذریعہ چلایا گیا ہے:

ورژن(): 11.2.2-MariaDB-1:11.2.2+maria~ubu2204

میں نے فوری طور پر سوچا کہ کیا کھیل میں ایس کیو ایل انجیکشن کا خطرہ ہے۔ CTT انٹرفیس نے کے لیے دلیل داخل کرنے کے لیے ایک فیلڈ فراہم کی ہے۔ ڈیبگ ایکشن، تو میں نے ایک اور کمانڈ لگانے کی کوشش کی:

; CURRENT_USER() کے لیے گرانٹس دکھائیں؛

targeter@% کے لیے گرانٹس: *.* کو `targeter`@`%` کی شناخت کے لیے استعمال کی اجازت

targeter@% کے لیے گرانٹس: GRANT SELECT، INSERT ON `missile_targeting_system`.`satellite_query` TO `targeter`@`%` |

targeter@% کے لیے گرانٹس: GRANT SELECT ON `missile_targeting_system`.`pointing_mode` TO `targeter`@`%` |

targeter@% کے لیے گرانٹس: GRANT SELECT ON `missile_targeting_system`.`messaging` TO `targeter`@`%` |

targeter@% کے لیے گرانٹس: GRANT SELECT ON `missile_targeting_system`.`target_coordinates` TO `targeter`@`%` |

targeter@% کے لیے گرانٹس: GRANT SELECT ON `missile_targeting_system`.`pointing_mode_to_str` TO `targeter`@`%` |

ٹھیک ہے تو، ڈیٹا بیس کو لوٹنے کا وقت! دی پوائنٹنگ_موڈ اور pointing_mode_to_str میزیں اشارہ کرتی ہیں کہ میزائل اس وقت کہاں اشارہ کر رہا تھا:

; پوائنٹنگ_موڈ سے منتخب کریں؛

id: 1 | عددی_موڈ: 0 |

; منتخب کریں * FROM pointing_mode_to_str;

id: 1 | عددی_موڈ: 0 | str_mode: ارتھ پوائنٹ موڈ | str_desc: جب pointing_mode 0 ہوتا ہے، ٹارگٹنگ سسٹم زمین پر target_coordinates کا اطلاق کرتا ہے۔ |

id: 2 | عددی_موڈ: 1 | str_mode: سن پوائنٹ موڈ | str_desc: جب پوائنٹنگ_موڈ 1 ہو تو، نقاط کو نظر انداز کرتے ہوئے، سورج کی طرف سسٹم پوائنٹس کو نشانہ بنانا۔ |

اس معلومات سے میں دیکھ سکتا ہوں کہ مجھے تبدیل کرنے کی ضرورت ہے۔ عددی_موڈ میں قدر پوائنٹنگ_موڈ میز پر 1، لیکن مجھے اس ٹیبل کو اپ ڈیٹ کرنے کی اجازت نہیں تھی۔

مجھے میں نئی ​​قطاریں داخل کرنے کی اجازت تھی۔ satellite_query ٹیبل، جس میں فی الحال ایک قطار تھی جس میں ابھی تک نامعلوم قدر تھی۔ اعتراض کالم اور جاوا کلاس کا سورس کوڈ کہا جاتا ہے۔ SatelliteQueryFileFolderUtility میں نتائج کالم.

اس مقام تک سے آؤٹ پٹ ڈیبگ کے نیچے ایک پین میں کارروائی آسانی سے دیکھی جا سکتی تھی۔ ایپس لانچر سروس سی ٹی ٹی انٹرفیس میں سپروائزر کے ذریعہ فراہم کردہ ٹیب۔ تاہم، ایسا نہیں لگتا تھا کہ آبجیکٹ ویلیو پین میں صحیح طریقے سے رینڈر ہو رہی ہے۔ مثالی طور پر، آبجیکٹ کے ہیکس ڈمپ کو دیکھنا اچھا ہو گا، جو اس کی مدد سے حاصل کیا جا سکتا ہے۔ ویرشکر یا SQL کا استعمال کرتے ہوئے ہیکس فنکشن اس سے انکشاف ہوا کہ میں سیریلائزڈ جاوا آبجیکٹ سے نمٹ رہا ہوں۔

کے بعد پر پڑھنا جاوا آبجیکٹ سیریلائزیشن پروٹوکول، میں نے ہیکس بائٹس کو ڈی کوڈ کرنے میں کامیاب کیا:

ہیکس بائٹ

علامت/معنی

تبصرہ (monospaced فونٹ میں ہیکس بائٹس کی ASCII اقدار)

ACED

STREAM_MAGIC

ایک جادوئی نمبر۔

0005

STREAM_VERSION

اسٹریم پروٹوکول ورژن 2 ہے۔

73

TC_OBJECT

کسی چیز کا آغاز۔

72

TC_CLASSDESC

کلاس کی تعریف کا آغاز۔

001F

لمبائی

کلاس کے نام کی لمبائی 31 بائٹس ہے۔

536174656 سی 6 سی 697465517۔
565727946696C65466F6C
6465725574696C697479

قدر

کلاس کا نام ہے۔ SatelliteQueryFileFolderUtility.

12D4F68D0EB392CB

serialVersionUID

اس سیریلائزڈ کلاس سے وابستہ ایک منفرد شناخت کنندہ۔

02

SC_SERIALIZABLE

کلاس سیریلائز ہے.

0003

فیلڈ شمار

کلاس میں تین فیلڈز ہیں۔

5A

ڈیٹا کی قسم - ASCII قدر Z

پہلا فیلڈ بولین ہے۔

0007

لمبائی

اس فیلڈ کے نام کی لمبائی 7 بائٹس ہے۔

69735175657279

نام

اس فیلڈ کا نام ہے۔ isQuery.

5A

ڈیٹا کی قسم - ASCII قدر Z

دوسرا فیلڈ بولین ہے۔

0008

لمبائی

اس فیلڈ کے نام کی لمبائی 8 بائٹس ہے۔

6973557064617465

نام

اس فیلڈ کا نام ہے۔ is Update.

4C

ڈیٹا کی قسم - ASCII قدر L

تیسرا فیلڈ ایک آبجیکٹ ہے۔

000F

لمبائی

اس فیلڈ کے نام کی لمبائی 15 بائٹس ہے۔

706174684F72537
46174656D656E74

نام

اس فیلڈ کا نام ہے۔ pathOrStatement .

74

TC_STRING

اس آبجیکٹ کی کلاس ٹائپ سٹرنگ میں دی گئی ہے۔

0012

لمبائی

اس تار کی لمبائی 18 بائٹس ہے۔

4C6A6176612F6C616E
672F537472696E673B

قدر

اس آبجیکٹ کی کلاس قسم ہے۔ java/lang/String.

78

TC_ENDBLOCKDATA

کلاس کی تعریف کا اختتام۔

70

TC_NULL

کوئی سپر کلاس متعین نہیں ہے۔

00

قدر

بولین فیلڈ isQuery قیمت ہے جھوٹی.

00

قدر

بولین فیلڈ is Update قیمت ہے جھوٹی.

74

TC_STRING

کی قیمت pathOrStatement فیلڈ ایک تار ہے۔

0029

لمبائی

کی قیمت pathOrStatement فیلڈ کی لمبائی 41 بائٹس ہے۔

2F6F70742F536174656C6
C69746551756572794669
6C65466F6C64657255746
96C6974792E6A617661

قدر

کی قیمت pathOrStatement فیلڈ ہے /opt/SatelliteQueryFileFolderUtility.java

Wireshark کے ذریعے اس آبجیکٹ کو حاصل کرنے سے ایک غلط میجک نمبر واپس آیا اور serialVersionUID، لیکن HEX فنکشن استعمال کرتے وقت نہیں۔

یہ سمجھنے کے لیے کہ کیا ایک INSERT میں satellite_query table کرے گا، میں نے اس آبجیکٹ کو ٹیبل کی ایک نئی قطار میں داخل کیا اور اسی جاوا سورس کوڈ کو واپس حاصل کیا۔ نتائج کالم درحقیقت، یہ طرز عمل اس کے مطابق تھا جو میں نے اس کوڈ میں دیکھا تھا۔ نتائج حاصل کریں ایک کا فنکشن SatelliteQueryFileFolderUtility اعتراض

یہ فنکشن آبجیکٹ کے تین فیلڈز کی قدروں کے لحاظ سے ایک مختلف عمل کا راستہ اختیار کرتا ہے: isQuery, is Update، اور pathOrStatement. اگر میںسوال اور is Update غلط ہیں، پھر فنکشن چیک کرتا ہے کہ آیا pathOrStatement ایک راستہ اور ڈائریکٹری ہے۔ اگر ایسا ہے تو، یہ ڈائریکٹری میں موجود فائلوں کی فہرست لوٹاتا ہے۔ دوسری صورت میں، یہ فرض کرتا ہے کہ ایک فائل فراہم کی گئی تھی اور اس فائل کے مواد کو واپس کرنے کی کوشش کی گئی تھی۔

دوسری طرف، اگر isQuery اور isUpdate درست ہیں، تو فنکشن pathOrStatement کے مواد کو بطور ایس کیو ایل چلاتا ہے۔ اپ ڈیٹ بیان مجھے جس چیز پر عمل کرنے کی ضرورت تھی وہ یہ تھی:

اپ ڈیٹ پوائنٹنگ موڈ سیٹ عددی_موڈ = 1؛

میں نے سیریلائزڈ آبجیکٹ میں ضروری بائٹس (نیچے نمایاں کیے گئے) کو تبدیل کیا، اور جیتنے والی کمانڈ کو انجیکشن لگایا:

; satellite_query میں داخل کریں۔

(چیز)

  اقدار

(0xACED00057372001F536174656C6C697465517565727946696C65466F6C6465725574696C69747912D4F68D0EB392CB0200035A0007697351756572795A000869735570646174654C000F706174684F7253746174656D656E747400124C6A6176612F6C616E672F537472696E673B7870010174002C55504441544520706F696E74696E675F6D6F646520534554206E756D65726963616C5F6D6F6465203D20313B)

لپیٹ اپ

تصویر-20-فائنل

یہ صرف کچھ علاقے ہیں جو 2023 SANS ہالیڈے ہیک چیلنج میں شامل ہیں۔ بہت سے دوسرے لوگ بھی تھے جنہوں نے سیکورٹی کو دیکھا JSON ویب ٹوکنزکے ساتھ پاس ورڈ کریک کرنا ہیشکیٹسامان کے تالے کی ورچوئل کریکنگ اور روٹری مجموعہ تالے, Python NaN انجیکشن، کا استعمال کرتے ہوئے کسٹو استفسار کی زبان لیے خطرے کا شکار، جانچ کر رہا ہے۔ DKIM اور SPF ریکارڈز نقصان دہ ای میلز اور ہیک ایبل منی گیمز کی شناخت میں مدد کرنے کے لیے۔

مجموعی طور پر، مجھے یقین ہے کہ تفریحی چیلنجوں کا اتنا وسیع مجموعہ ہر اس شخص کے لیے سبق آموز ہونے میں ناکام نہیں ہو سکتا جو ان کو قبول کرنے کی کوشش کرتا ہے۔ اور جب کہ میں پہلے سے ہی اگلے سال کے چیلنج کا انتظار کر رہا ہوں، اس سال کے چیلنج کو اکٹھا کرنے کے لیے SANS ہولی ڈے ہیک چیلنج کے منتظمین کا شکریہ ادا کرتا ہوں۔

آپ 2022 چیلنج سے میری جھلکیاں پڑھ سکتے ہیں۔ اسے توڑ دیا! کرنگل کون 5 کی جھلکیاں: گولڈن رِنگز.

اسپاٹ_مگ

تازہ ترین انٹیلی جنس

اسپاٹ_مگ

ہمارے ساتھ بات چیت

ہیلو وہاں! میں آپ کی کیسے مدد کر سکتا ہوں؟