ویرگول
ورودثبت نام
Amir Mahdi zare
Amir Mahdi zareدانش آموز درس نخون
Amir Mahdi zare
Amir Mahdi zare
خواندن ۲ دقیقه·۷ ماه پیش

جمع‌آوری داده‌های مرورگر Google Chrome با زبان Go



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



🧠 هدف از نوشتن این ابزار

مرورگرها معمولاً اطلاعات حساس زیادی نگه می‌دارند، از جمله:

  • یوزرنیم و پسوردهایی که کاربر ذخیره کرده
  • تاریخچه صفحات بازدیدشده
  • کوکی‌ها و توکن‌های نشست

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

  • تحلیل امنیت مرورگر Chrome
  • تمرین در رمزنگاری و رمزگشایی اطلاعات
  • تست نفوذ (در شرایط مجاز)



🔐 ساختار رمزگذاری در Chrome

مرورگر Chrome پسوردهای ذخیره‌شده را به صورت AES-GCM رمزگذاری می‌کنه و کلید رمزگذاری در فایل Local State در این مسیر ذخیره می‌شه:

%LOCALAPPDATA%\Google\Chrome\UserData\LocalState

برای رمزگشایی این کلید، از API داخلی ویندوز به نام CryptUnprotectData استفاده می‌شه.



🧰 فایل‌های مهم مرورگر

  • Login Data: شامل پسوردهای رمزگذاری‌شده و یوزرنیم‌ها (فرمت SQLite)
  • History: شامل URL و عنوان و زمان آخرین بازدید از سایت‌ها

در هر دو فایل، Chrome از پروفایل‌های جداگانه استفاده می‌کنه (Default, Profile 1, ...). اسکریپت، تمام پروفایل‌ها رو اسکن می‌کنه.



🧪 مراحل اجرای برنامه

  1. خواندن فایل webhook.txt برای گرفتن آدرس مقصد (وب‌هوک برای ارسال اطلاعات)
  2. استخراج کلید AES با استفاده از Local State
  3. کپی دیتابیس‌ها از مسیر Chrome به مسیر موقتی (برای جلوگیری از قفل شدن فایل‌ها)
  4. خواندن و رمزگشایی پسوردها
  5. تبدیل timestamp مرورگر به زمان خوانا برای تاریخچه
  6. ارسال خروجی به صورت JSON به وب‌هوک مشخص‌شده



💡 نکات فنی مهم

  • فرمت رمزگذاری پسوردها با v10 آغاز می‌شه و شامل IV و Tag هست.
  • پس از رمزگشایی، پسوردها به صورت plaintext به راحتی در دسترس هستند.
  • دیتابیس‌های SQLite در زمان استفاده توسط Chrome ممکنه قفل باشن، بنابراین ابتدا کپی می‌شن.
  • برای تبدیل زمان‌ها از فرمت خاص Chrome به Unix از تابعی با offset خاص استفاده می‌شه.

📜 هشدار و نکته اخلاقی

❗ این ابزار صرفاً برای آموزش، تحقیق و تست امنیتی در سیستم شخصی یا با مجوز قانونی طراحی شده است. استفاده غیرمجاز از این کد ممکن است مشمول پیگرد قانونی شود و به حریم خصوصی دیگران آسیب بزند. مسئولیت استفاده نادرست، کاملاً بر عهده کاربر است.



📎 جمع‌بندی

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


💬 نظر شما چیه؟

به نظرتون چه بخش دیگه‌ای از مرورگر Chrome می‌تونه هدف تحلیل قرار بگیره؟
خوشحال می‌شم اگر نظر یا پیشنهادی دارید همین پایین برام بنویسید یا سوالی داشتید بپرسید 😊

https://www.linkedin.com/in/amir-mahdi-zare-baa39b344/
https://github.com/amir13872/MYpassword
https://www.linkedin.com/in/amir-mahdi-zare-baa39b344/
chromeزبان goمرورگرهک و امنیت
۰
۰
Amir Mahdi zare
Amir Mahdi zare
دانش آموز درس نخون
شاید از این پست‌ها خوشتان بیاید