Esenlikler! ben Anka Red Team'dan Alex.
Bugün masamız da: Linux’ta Log Manipülasyonu / Anti-Forensics. Vakit katbetmeden başlayalım...
Anti-Forensics Nedir?
Diyelim ki siz, bir sunucuya sızdınız ve bu sunucudan veri çaldınız. Adli bilişimciler, bu anormal veri kaybını anlar ve sunucunun log'una bakar, Eğer siz kendinizi yeterince gizlemediyseniz(VPN açmayısanız), IP'nız kabak gibi log'da görünür ve direkt hedef olursunuz. İşte Anti-Forensics'de tam bu nokta da devreye giriyor.
Anti-Forensics'nin amacı: bir yere sızınca, sunucudan çıkmadan önce loglardaki veriyi silmek(Artifact Wiping), manipüle etmek, hedef değiştirmek, İz karıştırma(Trail Obfuscation), Analizi Zorlaştırmaktadır.
Log Nedir?
Log, Türkçede "Kayıt" anlamına gelir. Yani temel amacı: girilen şeyleri, yapılan değişiklikleri vs. saniyesi saniyesine kaydetmektir. Her sistemde log vardır ve herşeyi kaydetmektedir.
Örneğin size aşağıda Linux sisteminin log'unu göstereceğim:
Mesela bu Ubuntu Linux'un sistem günlüğü yani log'u. Ve bugün de konumuz Linux olduğu için, Anti-Forensics'i Linux'ta yapacağız.
Dilerseniz ufaktan başlayalım işlemimize.
Pratik
Şimdi yavaştan işlemimize başlayalım. İlk önce size saldırganların en sık yaptığı hatayı anlatmak istiyorum.
1) İz Bırakmadan Çalışma
Burada saldırgan logları siliyor, fakat terminale yazdığı komutların kaydedilmesine izin veriyor(bilinçsizce). Mesela biz sunucuya sızdık ve logları da sildik ama yazdığımız komutların kaydedilmesine izin verdik, adli bilişimci baktığı zaman direkt hedef olabiliriz.
Bizim ise bilinçli olarak, terminale yazdığımız komutların kaydedilmesini engellememiz gerekiyor. Şu kodu yazarsak son 10 komutu siliyor.
Örnek olarak:
Şuanda gördüğünüz gibi "history" yazdığımız da bize yazdığımız komutlar çıkıyor.
Şimdi ise son 10 geçmişi silelim silmek için terminale şunu yazmalıyız:
Bash:
history -d $((HISTCMD-10))-$((HISTCMD-1))
Şimdi "-d" parametresi, bir veya daha fazla veriyi silmek için kullanılır. Ayrıca 10 ile 1 arasındakileri tek tek siliyor. Siz eğer "HISTCMD-11" derseniz, 11 ile 1 arasında olan satırları siler.
2) Log Kayıtlarında Temizlik
Log dosyaları uzun satırlarda olur. 'sed -i' komutu ile dosya üzerinde değişiklik yapabiliriz ve buna 'in-place editing' denir. Bununla IP'mizi başka bir IP ile değiştireceğiz.
Bash:
find /var/log -type f -exec sed -i 's/192.168.1.50/127.0.0.1/g' {} +
Burada, find komutunu kullanarak logdaki IP'leri buluyor ve üsteki komutu kullanarak değiştiriyorum(127.0.0.1). Logları silersek, adli bilişimciler bir anormallik olduğunu anlar ve alarm'a geçer, fakat biz logu silmez, logdaki kendi IP'mizi başka IP ile değiştirirsek anormal birşey fark edilmez.
3) Timestomping
Adli bilişimciler, logun değişiklik zamanlarına bakar. Yani üsteki anlattıklarımı uyguladığımızda log'un değiştirme tarihi değişir ve adli bilişimciler değiştirildiğini anlayabilir. Bunun içinde logun değişiklik tarihini değiştirmemiz gerekir.
Bash:
touch -t 202201011230.00 rootkit.py
Burada, touch'u dosyanın tarihini manuel olarak değiştirmek için kullandık, ve tarih değişikliği oldu.
4) Log Kaydı Durdurma
Bu teknik, en temiz tekniktir çünkü log yazımını durduruyoruz ve ekstra birşey yapmamız gerekmiyor.
Bash:
systemctl stop rsyslog //kapatmak için
systemctl start rsyslog //açmak için
Bu komut ile log sistemini kapatmasını söyledik(root'tayken) ve log sistemini kapattı.
Son Söz
Evet... İşte böyle, aslında birçok kişi sunucuya sızsa da logları ya Anti-Forensics yapmayı unutuyor yada bilmiyor. Bundan dolayı direkt hedef oluyorlar.
Okuduğunuz için teşekkür eder ve iyi forumlar dilerim.
Son düzenleme:



