3 Ekim 2022 Pazartesi

AutoRun Analizi


 




AutoRun Analizi

AutoRuns; Windows ön yükleme sırasında başlamak için işlemleri aradığı konumları ifade etmek için kullanılan bir terimdir. Yani herhangi bir kullanıcı tarafından kasıtlı başlatılmadan otomatik olarak çalışan yazılıma denir. Bu yazılım türü, bilgisayar başlatıldığında başlayan sürücüleri ve hizmetleri içerir. Dosya sistemindeki ve registry de toplam 200 den fazla konum Windows’sun otomatik başlatmalarını yapılandırmasına izin verecek mekanizma bulunur. Bu konumlara genellikle Autostart Extensibility Points (ASEP) denir.

ASEP’lerin ilk oluşturma amacı kullanıcıya yardımcı olmaktır örneğin, anlık mesajlaşma uygulamasında çevrim içi olduğunu bilmesini istiyorsanız, oturum açtığınızda uygulamanın başlatılması kolaylık sağlar. Yani Windows işletim sistemi başlatıldığında kullanıcının herhangi bir müdahalesi veya etkileşimi olmaksızın birçok yazılımı otomatik olarak başlatmasıdır.

Malware’lar ASEP’leri kullanarak Windows sistem üzerinde kalmak için kullanmış olduğu kalıcılık mekanizması sağlamaktadır.  Adli analiz gerçekleştiren bir makinede AutoRun analiz edilerek malware’ın sistem üzerinde kalmak için kullandığı mekanizma bulunabilir.

AutoRun analiz etmek için Windows Sysinternals araçlarında Autorunsve ve Autorunsc araçlarını kullanabiliriz. Autorunsve GUI tabanlı Autorunsc ise CLI tabanlı araçlardır.

autorunsc64.exe –help yazınca uygulama ve parametreleri hakkında bilgi edinebiliyoruz.


Bir sistem üzerinde Autorunsc çalıştırmak için;

autorunsc64.exe -accepteula -a * -s -h -c > .\M_out.csv

komutunu yazıp enterlıyoruz.

komutunu yazıyoruz.

Autorunsc64.exe : aracın dosyası

-accepteula : kullanıcı lisansını kabul ediyorum

-a: tüm startup lokasyonlarını göster

-s: imza doğrulaması yap

-h: dosyaların hash bilgisini gösterir.

-c: elde edilen bulguları çıktı olarak dışaraya sunmasını sağlar.

.\M_out.csv: elde edilen ASEP’leri yazmış olduğu csv dosyası


Komut çalıştıktan sonra belirlemiş olduğumuz dizin üzerinde csv dosyasını görebiliyoruz.



Burada baya verinin olduğunu görebiliriz. Çeşitli filtrelemeler kullanılarak daha az veri üzerindeki AutoRun kontrol etmemiz olanak sağlanabilir.

bazı örnek filtre kombinasyonlarını kullanarak sistem üzerinde  şüpheli ASEP’leri tespit edebiliyoruz, başlıca uygulanması gereken filtreleri şöyle sıralıyabiliriz;

·       Tüm veriler kimse tarafından imzalanmadı

·       Bilinmeyen veya tanıdık olmayan bir kaynak tarafından imzalanmış tüm ASEPS'ler

·       Etkinleştirilmiş ve güvenilir bir kaynak tarafından imzalanmamış tüm ASEPS'ler

·       Etkinleştirilen tüm ASEP'ler ve ASEP ile ilişkili hiçbir şirket yok.

·       powershellerin kullanmış olduğu komutlarların neler olduğu .

Dikkat etmeniz gereken birkaç yerlerdendir.

 

 

10 Eylül 2022 Cumartesi

NTFS $I30 Files Attributes Analizi


 



NTFS $I30 Files Attributes Analizi

NTFS dosya sistemi analizi konusunda $MFT dosyasının nasıl parse edilip analiz edildiğinden bahsettim (https://www.muhammedaygun.com/2022/08/ntfs-new-technologies-file-system-dosya.html) Bu blog yazımda ise FTK Imagerda bazı dizinlerin içerisinde görmüş olduğumuz $I30 dosyasının ne olduğu ve nasıl parse edilip analiz edildiği hakkında bilgi vereceğim.


NTFS Index Attributes olarak bilinen $I30 , dosyası Microsoft tarafından NTFS dosya sisteminin bozulmasını engelleyerek bütünlük sağlamak için geliştirilmiş bir sistem dosyasıdır. NTFS dosya sistemi dosyaların yerlerini indexlemek için B-tree indexlemeyi kullanıcı ve büyük veri kümelerinin verimli bir şekilde depolanmasını ve çok hızlı aramalar yapmasını sağlar. $I30 dosyası dizine ait olan tüm dosyaları, dizinlerin index kaydını tutar. Dosya veya dizin ilgili dizinden kaldırıldıktan sonra $I30 dizin kayıtları buna göre yeniden düzenler ancak dizin kayıtlarının yeniden düzenlenmesi bir alan içinde silinen dosya/klasör girişinin kalıntılarını bırakabilir.  Bundan dolayı forensics bakış açısı ile bu dizinde var olabilecek dosyaları belirlemek için analize faydalı olabilir.  $I30 dosya farklı farklı dizinlerde karşımıza çıkabilir çünkü her dizin için farklı index içerecektir.

NTFS Master File Table (MFT) dosyası girişlerine benzer şekilde, dosya silme gerçekleştiğinde B-tree içindeki dizin girişleri tamamen kaldırmaz. Bunun yerine, karşılık gelen bir $BITMAP özniteliği kullanılarak silinmiş olarak işaretlenir. B-tree yeniden dengelenmesinin diğer bir yanı da genellikle ayrılmamış düğümlerdeki verilerin üzerine yazılmasıyla sonuçlanmasıdır. $I30 dosyaları $FILE_NAME öznitelik (attribute) zaman damgaları olması $STANDART_INFORNATION zaman damgalarının olmamasıdır.

$I30 Analiz edilmesi

$I30 dosyasını analiz etmek için ilk olarak dosyayı elde etmemiz gerekmektedir ilgili dosyayı elde etmek için FTK Imager tool kullanabiliriz. $I30 dosyası her dizinde bulunabileceğinden bahsettik ben bu blog yazımda C:\Users\MA\maygun dizininde bulunana $I30 dosyasını parse edip analizini gerçekleştireceğim.

İlk olarak FTK Imager tool’umuzu çalıştırıyoruz ve diskimizi içeri import ediyoruz.

Daha sonra ilgili dizine gidip $I30 dosyasını görüyoruz sağ tıklayıp istediğimiz konuma export alıyoruz.



Böylelikle $I30 dosyasını elde edebiliyoruz.

İlgili dosyayı elde ettikten sonra Willi Ballenthin tarafından oluşturulan open source INDXParse (https://github.com/williballenthin/INDXParse) aracını kullanacağız.

INDXParse aracı $I30 dosyasını parse ederek CSV, XML dosyas çıktıları sunmaktadır. Bu araç python dilinden yazılmıştır bu aracı kullanmadan önce analizi gerçekleştireceğiniz bilgisayarda Python kurulu olmasına dikkat edin.

$I30 attributes parse işlemi gerçekleştirdiğimiz zaman silinen dosyalar, değiştirilen dosyaları tespit etmemiz mümkündür.

FTK Imager ile $I30 dosyasını elde ettikten sonra INDXParse aracını kullanabiliriz.


-h parametresini kullanarak kullanabileceğimiz parametleri ve ne işe yaradıklarını görebiliyoruz.

Daha sonra python .\INDXParse.py -d I30 > maygun.csv komutunu yazıp çalıştırıyorum. ($ karakterini siliyorum ki parse işleminde herhangi bir hata ile karşılaşamamak için)


Komut çalıştıktan sonra karşıma vermiş olduğum isimde csv dosyası oluştu.





Csv dosyansın içeriği bu şekilde karşımıza gelmektedir.

Şimdi ise ilgili dizene gidip hangi dosyaların olduğunu görmek



Görüldüğü gibi dizinde biz 5 tane dosya görmekteyiz.  $I30 dosyası parse edildiğinde ise karşımıza 9 dosya çıktığını görüyoruz böylelikle $I30 attributes parse işlemi gerçekleştirdiğimiz zaman silinen dosyalar, değiştirilen dosyaları nasıl tespit edebileceğimizi gösterdik :)

Parser Tool: https://github.com/williballenthin/INDXParse

Kaynak:

[1] https://www.sans.org/blog/ntfs-i30-index-attributes-evidence-of-deleted-and-overwritten-files/

[2] https://docs.google.com/presentation/d/1AWsQtEWwSq8bjvFN-DmASNUKIieijJfNIzrQqH1O4po/htmlpresent?pli=1