Kategoriler
Adli Bilişim

Apache Log Analizi ve GoAccess Kullanımı

Web sunucuları, web sitelerine giden isteklere cevap döndürerek ziyaretçiye istediği dosyaların ve web sayfasının gönderilmesini sağlar. Köklü web sunucularından olan Apache, çok yerde karşınıza çıkacaktır. Bu yazıda, Apache’ye ait log kayıtlarını analiz edeceğiz. Siz de kendi sunucunuzu oluşturarak test edebilirsiniz.

Öncelikle DigitalOcean üzerinden aldığın sunucuma Apache kuruyorum.

apt-get install Apache2

Apache’nin error.log ve access.log isimli iki temel kaydı bulunmakta. Bu dosyalar /var/log/apache2 dizininde yer alır. Adından da anlaşılacağı üzere access.log, web sunucunuza gelen istekleri kaydeder. 200, 300, 400, 500 gibi dönen tüm istekleri sınıflandırır.

20X: Bu aralıktaki tüm log kayıtlarının sorunsuz olarak döndüğünü, var olan bir sayfaya ulaştığını söyleyebiliriz.

30X: Yönlendirme işlemleri ve hatalarının yer aldığını belirtir.

40X: Bulunamayan sayfalar, yetkisiz sayfaların yer aldığı kayıtlardır.

50X: Sunucudan kaynaklanan hatalardan döndürülen durum kodlarıdır.

Detaylı liste için: https://www.mediaclick.com.tr/blog/http-server-durum-hata-kodlari-ve-anlamlari

Bu loglarda farklı formatlarda istediğiniz verileri tutmanız mümkün. Örneğin dosya boyutunu kaldırabilirsiniz veya ilk sütunda yer alan IP adresi yerine zaman damgası yerleştirebilirsiniz. Aynı zamanda farklı standartlarda log tutarak başka araçlara bu kayıtları gönderebilirsiniz.

Örnek bir access.log: 192.168.0.77 – – [24/Dec/2019:12:19:16 +0000] “GET /caglar HTTP/1.1” 404 494 “-” “Mozilla/5.0 (X11; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0”

Yukarıdaki logta IP adresi, zaman damgası, HTTP isteğinin metodu, hangi URL’e yapıldığı, cevabın ne döndüğü ve tarayıcı bilgileri yer alır.

[Tue Dec 24 11:58:18.959786 2019] [core:notice] [pid 1505:tid 140073209799808] AH00094: Command line: ‘/usr/sbin/apache2’

Yukarıda ise error.log dosyasından örnek bir satır. Adres damgası, hatanın kaynağı ve önem derecesi, pid adresi ve hatanın önem derecesi yer alıyor.

Bana kalırsa apache log kayıtları oldukça basit. Peki nasıl kullanabiliriz? En temelde web sitemize gelen atakları tespit edebiliriz, olağan dışı trafikleri gözlemleyebiliriz. Ben honeypot olarak kullanıyorum. Farklı sunuculara kurduğum inandırıcı sayfalara gelen isteklerin log kayıtlarını analiz ederek komuta kontrol merkezlerini, farklı payloadları ve IP adreslerini topluyorum. Kimisi saniyede beş kez /wp-login veya /phpmyadmin dizinlerine deneme yapıyor. Buradan o IP adresini brute force yaptığına dair not alıyorum. Kimisi girdi alanlarına standart XSS payloadları denerken kimisi de kendi geliştirdiği payloadları giriyor. Veya kimisi RFI açığını zorlayarak kendi komuta kontrol panelinden bir URL’e yönlendiriyor. Bu sayede bu panelleri de toparlayabiliyorum. Doğru filtrelemeler ile birçok çıkarımda bulunabiliriz.

GoAccess aracına geçelim. GoAccess, Apache log dosyalarının tamamını, güzel grafiklerle görmemizi sağlar. Terminalde veya web arayüzünde, gerçek zamanlı veya belirli bir zamana kadarki kayıtları tercih edebiliriz. Aynı zamanda Docker yapısını da destekliyor. Ben Apache logları için kullanıyorum fakat neredeyse bütün web servisleri için GoAccess kullanmak mümkün.

Öncelikle apt-get install goaccess ile Linux sistemimize indiriyoruz. Farklı sistemler için buradan faydalanabilirsiniz. Daha sonrasında log kayıtlarının bulunduğu dizine gitmemiz gerekiyor. Eğer daha önceden ayırdığınız bir log kaydı ile değil de o sistemdeki anlık kayıtları kullanacaksanız /var/log/apache2 dizinine geçmeniz gerekiyor. İlk komutumuzu çalıştıralım.

goaccess access.log -c

Bu komut ile access loglarının gerçek zamanlı çıktısını terminal üzerinden basit grafiklerle görüntüleyeceksiniz. Ancak öncelikle log formatını belirlemeniz gerekir. Varsayılan olan ve benim de kullandığım format en baştaki NCSA formatı. Mevcut standartların dışında özelleştirilmiş log formatlarını da klavyenizden c tuşuna basarak ilgili alana girebilirsiniz. Hazır standartlardan birini kullanacaksanız space ile seçip entera basıyoruz. Seçtiğimiz format aşağıdaki kutucuklara da yerleşiyor.

Daha sonrasında terminalde log kayıtlarına dair detaylar grafikleştiriliyor. En başta access loglarına dair genel istatistikler yer alıyor.

Birçok bilginin yanı sıra 404 denemeleri, en çok ziyaret eden IP adresleri, en çok kullanılan işletim sistemleri ve tarayıcılar listeleniyor. 404 kayıtlarının es geçilmemesi gerekir. Genelde başarısız da olsa saldırı kayıtlarının çoğu burada yer alır. Bu yazı için hazırladığım sunucuya dahi kısa zamanda saldırı denemeleri oldu. 

Daha kullanışlı bir arayüz sunan esas yöntem ise HTML output yöntemi.

goaccess access.log -o /var/www/html/report.html –log-format=COMBINED

Hala apache log dosyalarının yer aldığı dizinde bulunduğunuzu varsayıyorum. web sitemin yayın yaptığı dizine report.html adında log analiz raporu çıkartmak istiyorum. Arkasından verdiğim parametre ile log formatımı belirliyorum. Eğer belirtmezsem çıktı alamam. Bu komutla beraber o ana kadarki log kayıtlarını inceleyebilirim. Ancak ben log dosyası değiştiğinde de gerçek zamanlı olarak arayüzüme göndersin istiyorum. Bu durumda şu komutu kullanacağız:

goaccess access.log -o /var/www/html/report.html –log-format=COMBINED –real-time-html

–real-time-html parametresini ekledik. Bu durumda socket açılacak, terminalde CTRL+C yapmadıkça işlem yapamazsınız. Bundan sonraki arayüzümüzde log kaydının gerçek zamanlı birçok analizini görebiliriz. Bende yeteri kadar log birikmediği için GoAccess web sitesinde yer alan canlı demodan bir görüntü paylaşacağım.

Sol menüden tema değişikliği ve yer düzenlemesi yapabiliriz. Aynı zamanda JSON formatında çıktı alabiliriz.

Kategoriler
Adli Bilişim Linux

Adli Bilişimde Ram İmajı Almak ve Ram Analizi

İmaj alma ve üzerinde çalışma yapma aşamasından öncesinde ram mantığını anlatmak isterim kısaca. Ram, Random Access Memory demektir. Yani rastgele erişilebilir bellek. Geçici hafıza dediğimiz kısımdır. Sizlerin bilgisayarınızda kalıcı olarak saklamak istemediğiniz, gerek duymadığınız şeyler burada saklanır. Örnek vermek gerekirse, bir oyun oynuyorsunuz ve açılışta bir bekleme süresi tanıyor. İşte bu esnada oyun paketleri geçici belleğe yüklenir. Bu sayede daha hızlı erişim sağlanır oyun esnasında. Kimi oyunlarda belli bir aşamaya gelince birkaç saniyeliğine bekletir ve yeni dosyaları o aralıkta geçici belleğe aktarmayı tercih eder. Diğer yandan çerez bilgileri, son yaptığınız işlemler ve daha pek çok şey bu bellekte yer alır. Ancak enerji kesildiğinde yani bilgisayarı kapattığınızda, şarjı bittiğinde veya prizden çektiğinizde, özetle bilgisayarın enerjisini kestiğinizde geçici bellek kendini sıfırlar. Şimdi ram analizi yaparken nelere erişebileceğimiz kafanızda daha iyi şekillenmiş olmalı.

Öncelikle ram imajını nasıl alacağız bunu anlatalım. Demiştik ya enerji kesintisinde bellek kendini sıfırlar. İşte bu yüzden çalışır durumda kalmak zorundadır imaj alınacak cihaz. Filmlerden hatırlarsınız, bir hacker vardır özel tim girer kapıyı bir tekmeyle parçalar, hackerı tutuklar kasayı çeker sırtlar götürür. Öyle bir dünya yok. O enerji kesilirse ramdeki tüm bilgiler kaybolur. Çalışır halde imaj alınmalıdır. Diğer yandan şayet siz kapınızda özel tim falan görürseniz ramdeki bilgileri kaçırmak adına bilgisayarı kapatabilirsiniz evet.

Ram imajı almak için yardımcı birçok program var. Ben Windows’ta çalıştığınızı kabul ederek Ram Capture programını önereceğim. Programı açtıktan sonra “.mem” uzantılı imajın nereye kaydolacağını belirliyorsunuz ve capture butonuna basıyorsunuz. Hepsi bu. Belli bir sürecin sonunda imajı alıyor. İşte şimdi o bilgisayar kapanabilir. Çünkü geçici belleğin kopyası eksiksiz elinizde.

Gelelim bunun incelenmesine. İncelemeyi de linux üzerinde yaptığınızı kabul ediyorum ve “volatility” aracı üzerinden anlatımıma devam ediyorum. Öncelikle ram dosyamızın olduğu dizine geçiyoruz “cd” komutu ile. Daha sonra çalışmaya başlıyoruz. “volatility -f ram.mem imageinfo” komutu ile ram imajımızı aldığımız bilgisayarın işletim sistemine dair bilgi topluyoruz. Sonraki komutlarda da ihtiyacımız olacak.

Daha sonrasında çok fazla komutla çalışmak mümkün. Tamamı için “volatility -help” komutunu çalıştırabilirsiniz. Ben önemli olanlardan bahsedip birkaç örnek görüntü paylaşacağım.

volatility -f ram.mem –profiles WinXPSP2x86 hashdump

Bu komut ile Windows sistemdeki kullanıcıları ve şifrelerini tespit etmeniz mümkün. Şifreler md5 formatında geliyor olacak.. Onları kırmak da size kalmış.

volatility -f ram.mem –profiles WinXPSP2x86 iehistory

Bu komutla da internet explorer geçmişini görmek mümkün. Aman canım explorer kullanan mı kaldı? Eh kalmadı fakat ben yine yazımda belirteyim. Chrome ve diğer tarayıcılardan geçmişi çeken araçlar da var.

volatility -f ram.mem –profiles WinXPSP2x86 notepad

Bu komut ise notepad üzerinde yapılan son işlemleri kaydeder. Dikkat ettiyseniz internet geçmişinde son girilenlerde bir txt dosyası yer alıyordu. Burada da acaba onda ne yazıyormuş diye bakmış olduk. Son yazılan sizce de şüpheli değil mi? Sezar şifrelemeye benziyor. İsterseniz araştırın bakalım ne yazıyormuş notepad dosyasındaki şifreli metinde 🙂

volatility -f ram.mem –profiles WinXPSP2x86 pslist

Pslist ile o esnada çalışan programları görmek mümkün. Ram imajı aldığınız programı da görmeniz güçlü ihtimal. Sonuçta son çalışanlar listesinde o da var.

volatility -f ram.mem –profiles WinXPSP2x86 dlllist

Bu komutta ise dll listesi oluşturur bizim için. Bu komutla beraber örneklerimi sonlandırayım. Sizler diğer komutları inceleyebilirsiniz. Çok ilginizi çeken bir komut varsa veya merak ettiğiniz, yorum olarak bırakabilirsiniz. Sürücüleri listelemek, dump işlemleri yapmak da mümkün imaj içerisinde.

Kategoriler
Adli Bilişim

Fotoğraf Adli Bilişim İncelemesi [FotoForensics.com]

Adli bilişimde fotoğraflardan edinen konum bilgileri, makine bilgileri, montaj olup olmadığı, çekildiği tarih her şey önemli. Elbette bunları incelemek de mümkün. Bu şekilde fotoğraflar delil olarak kullanılabilir, bilgi toplanabilir. Olay örgüsüne göre durum değişir.

Çok fazla araç var, bilgi toplama yolu var. Ben size FotoForensics sitesini göstermek istedim.

İlk olarak fotoğrafın linki ile veya dosya olarak siteye giriyoruz.

Daha sonra karşınıza aşağıdaki ekran çıkacak. Sol tarafta analiz menüsü var. Tek tek anlatacağım hepsini.Alt kısmında ise fotoğraf üzerinde değişiklikler yapmanızı sağlayan ufak araçlar var. Sayfayı aşağı kaydırın.

Sayfayı kaydırdığınızda aşağıdaki görüntü ile karşı karşıya kalacaksınız. Dosya ismi, son düzenlendiği tarih, fotoğrafın dosya türü, dosya boyutu ve fotoğraf boyutu karşınıza çıkıyor.Yani temel bilgiler.

ELA sekmesine geçiyoruz. Açılımı Error Level Analysis demektir. Bu da ne demek derseniz şu linke tıklayın, detaylı açıklama orada : https://caglar-celik.com/adli-bilisim/ela-error-level-analysis-nedir/

Şimdi de JPEG % sekmesine geçiyoruz. Burada ise görselin parlaklık ve renk oranını derecelendiriyor. Çekildiği haline oranla ne kadar kaliteli kaydedildiğini gösteriyor.

Asıl bilgilerin bulunduğu kısım metadata sekmesine geçiyoruz. Bunu örneklemek için farklı bir fotoğrafa geçeceğim. Sitenin örnek verdiği fotoğraf…

Dosya türü, fotoğrafın en-boy uzunluğu gibi temel özellikler aşağıdaki fotoğrafta bulunuyor. Çekildiği tarih ve GPS ile ilgili temel bilgiler de burada.(Deniz seviyesi üstünde,batıda,kuzeyde)
Bunun dışında Make ve Model Name kısmında telefon/fotoğraf makinesi markasını ve modelini yazar. Fakat bu fotoğraf özel olarak bir Android uygulama ile çekildiği için uygulamanın adı olan Vignette yazıyor. Ben buna çok sık rastlamadım açıkçası.

Biraz aşağı kaydıralım sayfayı ve devam edelim. Çözünürlük bilgileri yer alıyor. Composite kısmında ise yine GPS bilgileri. Fakat bu defa daha detaylı. Fotoğrafın çekildiği enlem ve boylamı veriyor. Deniz seviyesinin ne kadar altında veya üstünde onu da belirtiyor. Bunu Google Maps ile aratarak nokta atışı bulursunuz. Ancak mobil cihazlarda doğruluk oranı düşebilir. Ayrıca fotoğrafın kaç megapiksel olduğu da yazıyor.

Sayfayı az daha aşağı kaydırıyoruz ve son olarak bir harita çıkıyor karşımıza. Yukarıda anlattığım GPS konumunu site bizim yerimize Google Maps üzerinde aramış ve karşımıza çıkartmış. Üst tarafta da benim verdiğim uyarıyı vermiş. Mobil cihazlarda doğruluk oranı daha düşüktür. Onun dışında çekildiği şehri, neresinde çekildiğini direk olarak karşımıza çıkartmış. Yaklaşık aralık verilmiş.

Kategoriler
Adli Bilişim

ELA : Error Level Analysis Nedir?

ELA… Açılımı Error Level  Analysis demektir. Yani Hata Düzeyi Analizi. Fotoğraftaki sıkıştırma düzeylerini tespit edip gösterir. Masmavi bir gökyüzünde sıkılaştırma oranı az, haliyle görseldeki durum koyu olacaktır. Aynı objeye ait kenarlar benzer parlaklığa sahip olmalıdır.Tüm yüksek kontrastlı kenarlar birbirine benzer görünmelidir ve tüm düşük kontrastlı kenarları benzer görünmelidir.
Resmin etrafına bakın ve farklı yüksek kontrastlı kenarları, düşük kontrastlı kenarları, yüzeyleri ve dokuları belirleyin. Bu alanları ELA sonuçlarıyla karşılaştırın. Önemli farklılıklar varsa, dijital olarak değiştirilmiş şüpheli alanları tanımlar.Bakın aşağıdaki örnekte gördüğünüz el fotoğrafı, photoshop ile kesilmiş ve arkaplandaki zemine yapıştırılmıştır. Haliyle ELA incelemesinde çevresinde gökkuşağı oluşturmuştur. Genelde Photoshop ve benzeri çalışmalarda bu gökkuşağı ortaya çıkar.
Image
Image
 
Şimdi biraz daha farklı bir inceleme yapalım. Aşağıdaki bir fotoğraf ve doğal halinin ELA incelemesi mevcut.
Image
Image
 

Şimdi de aynı fotoğrafı hiçbir düzenleme yapmadan tekrar kaydediyoruz. Bu defa çıplak gözle bir fark görememenize rağmen ELA üzerinde aşağıdaki sonucu alacağız. Dikkat ederseniz ELA incelemesindeki parlaklık düştü.

Image
Image
 
 

Buraya kadar tamam. Şimdi bu fotoğrafa bir montaj yapalım mı? Tamam… Bir dinazor ekleyelim. Şu ubuntu kitabını ve yanındaki kitabı da klonlayalım. Sonra şu ELA incelemesine tekrar bakalım. Sonuç? Üzerinde oynama yaptığımız alanlar, diğer kısımlara göre oldukça belirgin biçimde parlak.

Image
Image