Bugün can sıkıntısından basit çaplı bir şekilde Firefox'u inceledim.İncelediğim kısımlar genelde kayıtlar ne şekilde nasıl tutuluyor ve ne şekilde erişiliyor tarzındaydı.Firefox her ne kadar bof güvenliklerini alsada kullanıcı bilgilerine direk olarak erişme imkanı veriyor.İnceliyelim
XP için
Kod: Kodu kopyalamak için üzerine çift tıklayın!
C:\Documents and Settings\[kullaniciniz]\Application Data\Mozilla\Firefox
Win7 için
Kod: Kodu kopyalamak için üzerine çift tıklayın!
C:\Users\[kullaniciniz]\AppData\Roaming\Mozilla\Firefox
klasöründe profiles.ini dosyası bulunduruyor.Bu dosyada kullanıcının bilgilerini tutan profilin bilgilerini barındırıyor.Yani
Kod: Kodu kopyalamak için üzerine çift tıklayın!
Path=Profiles/qfef5dtw.default
şeklinde klasörüde gösteriyor.Klasörde
Kod: Kodu kopyalamak için üzerine çift tıklayın!
content-prefs.sqlite
cookies.sqlite
downloads.sqlite
formhistory.sqlite
permissions.sqlite
places.sqlite
search.sqlite
signons.sqlite
webappsstore.sqlite
şeklinde kullanıcının tüm bilgilerini sqlite veritabanında tutuyor.Tutulan kayıtlarda bir tek girdigimiz siteler ve şifreleri şifrelidir geri kalan tüm veriler şifresiz kabak gibi ortada.Üstelik şifreli olan form bilgileride basit bir şekilde çözülebilmektedir.Nasıl çözüleceğini anlatmayacam.
Kullanıcı bilgilerine direk erişim sağlayabilmesi art niyetli insanların işine çok yarayabilir.Örnek olarak Basit bir Java Applet ile sahip olunan firefox profili çalınabilir ve rahatlıkla bilgileri okunabilir.Onun yanında Profil klasörü ziplenip otomatik olarak çalınabilir.Böylelikle kullanıcının sahip oldugu tüm sessionlara sahip olunabilir.
Ben Pythonda basit çaplı bir kod yazdım. Kod firefox dizinini kendisi bulup profiles.ini dosyasında profil klasör adını alıyor ve belirtilen sqlite dosyasına bağlanıp istedigimiz sorguyu çalıştırıp ekrana yazıyor.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#coded by BeKiR a.k.a 0x94
import ConfigParser
from pysqlite2 import dbapi2
import os
ffdizin = os.environ['AppData'] + '\Mozilla\Firefox'
inibul='%s%s' % (ffdizin, '\profiles.ini')
profilbilgisi = ConfigParser.ConfigParser()
profilbilgisi.read(inibul)
profildizin = profilbilgisi.get('Profile0','Path')
dbfile = '%s\%s\%s' % (ffdizin, profildizin,'\downloads.sqlite')
baglan=dbapi2.connect(dbfile)
cursor=baglan.cursor()
cursor.execute('SELECT * From moz_downloads')
for kayitlar in cursor.fetchall():
print kayitlar
baglan.close()
Çalışması için pysqlite2 kurulu olmalıdır. Aynı zamanda python26 da çalışmaktadır.
Cookieleri almak için
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SELECT host, name,path, value From moz_cookies
Form geçmişini almak için
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SELECT fieldname,value From moz_formhistory
Bir diğer önemli bilgi ise eklenti kurumuna izin verilecek hostların listesi.Bu bilgide permissions.sqlite dosyasında yer almaktadır.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
SELECT id,host,type,permission From moz_hosts
type colomn unun tipi text oldugu için kurulum için olan izinlere type="install" yapmak yeterli oluyor.Aynı zamanda type='popup' ve permission=1 olunca istedigimiz popupa full izin verebiliyoruz
Unutmayınki bu bilgileri okuyabildigimiz gibi aynı zamanda değiştirip yeni eklemelerde yapabiliriz.Ne yazıkki firefox kullanıcı bilgilerini gizlemede başarılı değildir.Hatta 2,3 ay önce
chrome :\\ tagıyla bile kullanıcının sahip oldugu eklentiler öğrenilebiliyordu.
NoT: Döküman tamamen bana aittir.Amaç bilgilendirmektir.