Security Hub

Nothing Else Matter

Security Hub

Nothing Else Matter

Analysing Cookie & Cache Files

شنبه, ۲۳ فروردين ۱۳۹۳، ۰۲:۲۱ ق.ظ

مرد خردمند هنر پیشه را، عمر دو بایست در این روزگار، تا به یکی تجربه اندوختن، با دگری تجربه بردن به کار! 

به نام او که یاد و نامش آرام بخش دلهاست

این وبلاگ یک وبلاگ کاملا مستقل بدون وابستگی به اورگان خاصی و فقط و فقط برای برسی تکنیک های علم digital forenscs بالا آمده.
در این وبلاگ مباحث و تکنیک های برسی جرایم رایانه ای، برسی شواهد و مدارک موجود، آنالیز فایل ها و ... مورد بحث قرار خواهد گرفت.
مباحثی که این وبلاگ در آینده پوشش خواهد داد شامل :
  • پزشکی دیجیتال حافظه
  • پزشکی دیجیتال در ویندوز
  • اکتساب اطلاعات
  • تحقیقات پزشکی دیجیتال
  • برسی پنهان نگاری و کالبد شکافی فایل ها
  • پزشکی دیجیتال شبکه
  • تحقیقات و پیگیری حملات تحت وب
  • برسی و ترکینگ ایمیل ها
  • و سایر مباحث مرتبط با این مقوله


برسیم به بحث اصلی، تیتر این پست در مورد آنالیز فایل های Cache و Cookie های مرورگر ها هست.

تو این پست برسی خواهیم کرد :

  • نحوه پیدا کردن فایل های Cookie و Cache مرورگر ها
  • نحوه استخراج این اطلاعات از حافظه RAM
  • برسی و کالبد شکافی این فایل ها
  • طراحی یک ابزار برای استخراج اطلاعات از فایل های مذکور

این اطلاعات در سیستم های ویندوزی در داخل دایرکتوری user و اطلاعات هر یوزر نیز در داخل فولدر همون یوزر ذخیره میشود

بسته به نوع مرورگر این اطلاعات متفاوت میباشد برای مثال اطلاعات مربوط به history مرورگر firefox در داخل دیتابیس sqlite ذخیره میشود و با همین پسوند قابل دسترسی میباشد.

برای دستیابی به این اطلاعات ما در این پست 2 مرورگر IE و Firefox را برسی خواهیم کرد.


اطلاعات مربوط به Cache و Cookie مرورگر IE

اطلاعات مربوط به مرورگر مذکور در مسیر :


C:\Users\[user]\AppData\Local\Microsoft\Internet Explorer\Recovery
در این دایرکتوری شما یک دایرکتوری به نام Last Active خواهید داشت در این دایرکتوری شما میتونید فایل های DAT مربوط به IE رو پیدا کنید که اطلاعات به صورت یک ID خواص ذخیره شده برای مثال اگه فرد 2 عدد tab باز کرده باشد و در هر کدوم از tab ها فعالیت هایی داشته باشد شما 2 فایل DAT در مسیر مذکور پیدا خواهد کرد که هر کدام حاوی اطلاعات فعالیت ها در tab ها هستند.
از این اطلاعات یک کپی برداشته و در داخل یک حافظه قابل حمل برای آنالیز به آزمایشگاه منتقل میکنیم.
نکته : در این مقوله اصولا از فایل ها به صورت معمولی کپی گرفته نمیشود و سعی میشود به صورت ایمیج و byte to byte کپی برداری شود ولی ما در این مثال برای کوتاه شدن مقاله از اصطلاح کپی استفاده میکنیم و خود بحث ایمیج برداری از اطلاعات به صورت جداگانه در پست های آینده برسی خواهد شد .

اطلاعات مربوط به Cache , Cookie مرورگر Firefox


مسیر این اطلاعات :
C:\Users\[user]\AppData\Roaming\Mozilla\Firefox\Profiles\[profile].default

در این محل شما میتوانید تمامی فایل ها با پسوند sqlite رو مشاهده کنید و طبق روش بالا این اطلاعات رو نیز به lab انتقال خواهیم داد.

ایمیج برداری از حافظه RAM برای استخراج history

این بحث مربوط میشه به Memory Forensics ولی چون یه جورایی به مبحث ما نیز مربوط میشه در همین پست این متد رو برسی خواهیم کرد
برای ایمیج برداری از حافظه رم ابزار های زیادی وجود دارند که ما اینجا از ابزار dumpIt استفاده خواهیم کرد این ابزار رو به سیستم فرد انتقال داده و اجرا کنید و سوال پرسیده شده برای آغاز ایمیج برداری رو مثبت جواب دهید و بعد از اتمام فایل را نیز به lab انتقال دهید.



تا اینجای کار تمامی فایل های مورد برسی رو به دست آوردیم حال به برسی هر کدام میپردازیم
تا اینجای کار آشنایی چندانی با ابزار های مربوط به این مقوله نیاز نبود از اینجا به بعد مطالبی که باید بدانید برای درک بهتر این بحث عبارتند از :

  • آشنایی مختصر با فریمورک آنالیز حافظه volatility
  • آشنایی مختصر با خط فرمان لینوکس و نیز regular expression در bash
  • آشنایی مختصر به پایتون

ابتدا فایل های مربوط به IE رو برسی خواهیم کرد.

در محیط terminal ما با استفاده از grep میتونیم محتویات این فایل ها رو برسی کنیم و تمامی لینک هایی که اخیرا توسط کاربر بازدید شده رو بدست بیاریم به مثال زیر توجه کنید :



در دستور فوق از سویچ a- به خاطر binary file بودن استفاده کردیم
سوالی که پیش میاد اینه در دایرکتوری مربوط به فایل های cache مرورگر IE دو عدد دایرکتوری داریم  که این فایل ها رو اگه یادتون باشه از دایرکتوری last active برداشتیم یه دایرکتوری هم به اسم active داریم که در این دایرکتوری لینک هایی که در حال بازدید هست ذخیره میشه و پس از بسته شدن مرورگر این اطلاعات به دایرکتوری last active بر میگرده
برای به دست آوردن اطلاعات این دایرکتوری یعنی دایرکتوری active بهتره از ایمیجی که از حافظه گرفتیم استفاده کنیم که در آخر این پست به این روش خواهیم پرداخت.

برای آنالیز فایل های sqlite شما میتونید از ابزار های مختلفی استفاده کنید برای مثال sqlite browser در لینوکس
اطلاعات ذخیره شده در فایل های sqlite به این ترتیب میباشد :
  • history در داخل فایل places.sqlite
  • کوکی ها در فایل cookies.sqlite
  • history مربوط به فرم ها در داخل فایل formhistory.sqlite
  • و غیره ...

برای مقال فایل places.sqlite رو برسی میکنیم.

این فایل شامل یک تیبل به نام moz_places هست و شامل چندین ستون از جمله id, url, title, last_visit_data و ...

به عکس زیر توجه کنید :


بقیه فایل های sqlite موجود در این دایرکتوری نیز میتوانند اطلاعات ارزشمندی رو در اختیار یک محقق قرار بدند

حالا میتونید یک اسکریپت طراحی کنید که با دادن نام فایل های sqlite منابع رو استخراج کنه براتون من 2 نمونه نوشتم فایل فایل های که بالا ذکر شد که در ادامه خواهم داد :

اسکریپت زیر ایدی و لینک های موجود رو براتون استخراج میکنه :

#!/usr/bin/python
# Simple Mozila History Extractor By 0x0ptim0us
# Forensichub.blog.ir

import sqlite3 as lite
con = lite.connect("places.sqlite")
print "ID\t URL"
print "--- ---"

with con:
cur= con.cursor()
cur.execute("SELECT * FROM moz_places")
rows = cur.fetchall()
for row in rows:
print "%s\t%s"%(row[0], row[1])

اسکریپت دیگه در مورد استخراح اطلاعات موجود در formhistory هست :

#!/usr/bin/python
# Simple Mozila Form History Extractor By 0x0ptim0us
# Forensichub.blog.ir

import sqlite3 as lite

con = lite.connect("formhistory.sqlite")
print "ID\t Fieldname\t Value\t TimesUsed\t FirstUsed\t LastUsed\t guid"
print "-------------------------------------------------------------------------------------------"
with con:
cur = con.cursor()
cur.execute("SELECT * FROM moz_formhistory")
rows = cur.fetchall()

for row in rows:
print "%s\t%s\t%s\t%s\t%s\t%s\t%s"%(row[0], row[1],row[2],row[3],row[4],row[5],row[6])

من به خاطر جلوگیری از طولانی شدن مقاله از برسی سایر فایل ها خودداری میکنم و میرم سراغ آنالیز حافظه ...

اگه خاطرتون باشه ابتدای کار یک ایمیج از خافظه برداشتیم ابتدا ابزار volatility رو دانلود کنید :

code.google.com/p/volatility

بعد از دانلود میتونید به شکل زیر نصب کنید روی لینوکس:

sudo python setup.py install

خوب بعد از نصب از ترمینال قابل دسترسی هست.

ابتدا ایمیج رو وارد محیط فریمورک میکنیم و پروفایل رو انتخاب میکنیم اسم فایل ایمیج WIN-4OEUQ6S8Q4H-20140413-070010.raw هست و با سویچ f- میتونیم وارد کنیم برای گرفتن اطلاعات این ایمیج از ماژول imageinfo استفاده میکنیم :

vol.py -f WIN-4OEUQ6S8Q4H-20140413-070010.raw imageinfo

خروجی رو در عکس زیر مشاهده میکنید :

برای اضافه کردین و یا مشخص کردن پروفایل میتونید از سویچ profile-- استفاده کنید :

vol.py -f WIN-4OEUQ6S8Q4H-20140413-070010.raw --profile=Win7SP0x86


برای مشاهده لیست پروسه ها از ماژول pslist استفاده میشه :

vol.py -f WIN-4OEUQ6S8Q4H-20140413-070010.raw --profile=Win7SP0x86 pslist




در تصویر بالا پروسه برنامه IE مشخصه با 2 تا PID ، این مشخص میکنه 2 تا tab در این ابزار باز بوده 

شما میتونید برای آنالیز تخصصی ابزار yara رو نصب کنید که یک ابزار pattern matching هست که بیشتر تو مبحث malware analysis استفاده میشه البته تو مقوله ما نیز کاربرد داره

برای دانلود میتونید به آدرس پروژه مراجعه کنید :

http://plusvic.github.io/yara/

برای نصب در لینوکس و مک :

tar -zxf yara-2.1.0.tar.gz
cd yara-2.1.0
./build.sh
sudo make install

برای نصب python extention :

cd yara-python
python setup.py build
sudo python setup.py install

بعد از نصب میتونید داخل فریمورک volatility استفاده کنید که اسم ماژول نیز yarascan میباشد.

این ماژول چون به صورت خیلی تخصصی وارد این موضوع میشه بنده ازش صرف نظر میکنم و فقط بالا خواستم یاد آوری کنیم ، بنده از مازول پیش فرض فریمورک volatility به نام iehistory استفاده میکنم .

همینطور که بالا در عکس مشاهده کردید PID های IE ما عبارت بودند از 3036 و 1716 ، برای استفاده از مازول iehistory ما نیاز داریم که پروسه ها رو معرفی کنیم البته میتونیم چند پروسه رو همزمان انالیز کنیم ، البته قابل ذکر هست که شما میتونید خروجی رو وارد یک فایل txt کنید یا اصلا از خروجی استاندارد csv که خود فریمورک نیز پشتیبانی میکنه استفاده کنید برای جزئیات بیشتر نیازی به csv نیست اما اگه خواهان خروجی منم هستید توصیه میشه بنده usage هر دو رو پایین قرار خواهم داد :

vol.py -f WIN-4OEUQ6S8Q4H-20140413-070010.raw --profile=Win7SP0x86 iehistory -p 3036,1716 >> iehistory_output.txt


برای خروجی csv :

vol.py -f WIN-4OEUQ6S8Q4H-20140413-070010.raw --profile=Win7SP0x86 iehistory -p 3036,1716 --output=csv

خوب ، خروجی اول رو اگه با هم برسی کنیم :


بالا تو تصویر اطلاعات کاملی از لینک های بازدید شده توسط فرد رو مشاهده میکنید.

چند نکته :

  • همیشه از فایل هایی که از سیستم فرد گرفته میشه باید یک backup ازشون گرفته بشه که اگر آسیبی ببینند یک backup دست نخورده داشته باشیم
  • اگه به هنگام بازدید از محل جرم، سیستم روشن بود اقدام به ایمیج برداری میکنیم از رم در غیر اینصورت در ضمینه برسی کوکی ارزشی برای ما ندارد.
  • اطلاعات رو همیشه باید به صورت byte to byte ایمیج برداری بشه برای انتقال به lab
  • اگر اطلاعات را بر روی حافظه های قابل حمل منتقل میکنید به هنگام کپی اطلاعات در lab از سخت افزار های write blocker استفاده کنید تا اطلاعات اصلی آسیبی نبینند.

این مقوله یعنی برسی فایل های cache & cookie مبحث خیلی گسترده ای هست و ما اینجا در این پست به صورت کلی متد هایی رو با هم برسی کردیم

این بحث اینجا به پایان میرسه اومیدوارم این پست مفید واقع شده باشه برای دوست داران این مبحث

تا درودی دیگر بدرود.







  • موافقین ۰ مخالفین ۰
  • شنبه, ۲۳ فروردين ۱۳۹۳، ۰۲:۲۱ ق.ظ
  • 0x0ptim0us

نظرات  (۲)

  • Pazhoheshi.ir | e2ma3n
  • عالی فردین جان . بلاگ جدید هم مبارک دادا
    پاسخ:
    سلام ایمان جان
    خیلی ممنون لطف کردی سر زدی
    دوست داریم فراوون ....
    منتظر بعدی هاش هستیم :|
    پاسخ:
    سلام
    ممنونم
    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی