Web Server Güvenliği – Malware Web Shell Temizlemek

Web Server Güvenliği – Malware Web Shell Temizlemek

Bir süredir üzerinde durduğum ve neredeyse uzmanlaştım diyebileceğim bir konu, Linux Server Güvenliği. Çeşitli scriptlerin temaların ve dosya halinde olan materyallerin sunucuya girmesi sonucu büyük bir güvenlik zafiyeti oluşturması. Bu virüsler malware, web shell, rootkit, backdoor ve son  zamanlarda adını duyuran ransomware fidye yazılımlarıdır. Web adresleri Linux veya Windows tabanlı çalıştığı için, bu işletim sistemlerinde oluşan güvenlik açıkları web sayfalarını da etkilemektedir. Bir hackerın hedefinde olmasanız dahi bu zararlı yazılımlardan etkilenebilirsiniz. Bu makalemde bu zararlı yazılımları temel seviyede inceleyip, nasıl kurtulabileceğinizden bahsedeceğim. Bir sonraki makalelerimde ileri seviye analiz ve silme işlemlerini elbette anlatacağım. Bu yazı sadece sunucu sahiplerini VDS – VPS ilgilendirmektedir. Standart bir hosting kullanıcıysanız maalesef anlattıklarım bir işinize yaramayacaktır ancak üzülmeyin sizin için de bir yöntemim var.

Malware Nedir?

Malware yazılımları çeşitli kötü amaç niyeti ile oluşturulmuş kod parçacıklarıdır. Bu kodların birden fazla amacı vardır. Bunlar;

  • Sunucu üzerinde yönetici erişimi sağlamaya çalışmak (root olmak).
  • Veri tabanlarına bağlanmak. 
  • Gizli backlink yerleştirmek.
  • Server Ip adresiniz üzerinden saldırı gerçekleştirmek. (DDOS – UDP Flood veya DNS Hijacking)
  • Malware yazılımını daha geniş kitlelere yaymak. Hedefte eğer bir yazılım sitesi varsa, hizmete sunulan yazılım bağlantısını değiştirterek kullanıcılara virüslü dosyaları indirmeleri sağlanabilir.

Bu şekilde sıralayacak olursam temel amacının sitemizin veya sunucumuzun kötü amaçlara adet edilebileceğini anlayabiliriz.

Backdoor Nedir?

Backdoor, tek amacı ters bağlantı sağlamaktır. Adından da anlaşılacağı gibi arka kapı. Sistemlere erişmek için gizli bir yol  oluşturur ve bu yolu genel olarak .php dosyaları üzerinden veya zero day açıkları üzerinden sağlar. Backdoor sadece sunucularda veya işletim sistemlerinde değil farklı elektronik cihazlarda da zafiyeti mümkündür. Güvenlik kameraları, araçlar ve modemler gibi. Ustaca oluşturulmuş backdoorları bulmak imkansızdır. Script bazlı açıklar ile elde edilen backdoor ile milyonlara varan güvenlik sorunları meydana gelmiş, WordPress resmi eklenti sayfası üzerinden birçok eklentide bulunmuş ve milyonlarca kullanıcı bu sebep ile mağdur olmuştur. Backdoor başlı başlına bir inceleme konusudur çünkü amacı backdoor olmayan bir yazım hatası ile de bu açık meydana gelebilir, tespiti zor olduğu için şuan bu zafiyete sahip olabilirsiniz. 

Rootkit Nedir?

Rootkit, Linux ve Windows tabanlı işletim sistemlerinde, işletim sisteminin temel çekirdeğine erişerek sadece sunucuyu değil tüm bilgisayarı ele geçirmesidir. Root olma dışında ileri seviye erişim ile bilgisayar fanlarına kadar kontrol edebilir. Ağınız üzerinden saldırı gönderebilir ve yukarıdaki tüm zarar amaçlı yazılımları birer birer uygulayabilir. Format ile silinmez ve yazılım bazlı silmenin yolu mümkün değildir. Bu kriteri belirleyen şey ne şekilde bulaştığıdır. Geçmişte Linux Karnel çekirdeğinde bulunan Zero Day açığı ile rootkit yazılımlarının sayısı arttığı görülmüştü. Farklı çeşit rootkitler vardır. Kimisi işlemci yazılımına fiziksel yoldan bulaşarak temelden ele geçirebilir kimi ise web sunucunuz üzerinden bulaşabilir ancak rootkit virüsüne yakalanmanız düşük bir orandır. 2018 itibari ile çoğu güvenlik açıkları kapandı, var olan güvenlik açıkları ise halka paylaşılmayarak istihbarat amaçlı devletler tarafından kullanılmaktadır.

Ransomware Nedir?

Ransomware, fidye yazılımıdır. Sunucuya pdf dosya veya docx formatında dosyalar aracılığıyla bulaşabilir. Bununla birlikte oltama olmadan doğrudan biri aracılığıyla da kurulabilir. Sunucunuzdaki veri tabanları dahil her şey şifrelenir ve okunmaz, çalışmaz hale gelir. Bu sorunu düzeltmek için sizden para talep ederler. Bu nedenle fidye yazılımı denilmektedir. 2016 yılı sonrasında bir iş planı haline gelmiş ve hızla artmaktadır.

Web Shell Nedir?

Web Shell, asp veya php tabanlı sunucu üzerinde erişim sağlamak amacıyla oluşturulmuş kod parçalarıdır. Adını shell yani komut çalıştırma satırı olan terminalin web arayüzünde çalışan bir versiyonu olması sebebiyle almıştır. Çeşitli amaçları vardır;

  • Sunucuyu ele geçirmek.
  • Sunucuza dosya transferi sağlamak.
  • Veri tabanına erişmek.
  • Shell üzerinden komut satırı çalıştırmak.
  • DDOS saldırıları gerçekleştirmek.

En yaygın internet virüsüdür çünkü hazır birçok tema ve eklenti içerisine yerleştirilerek yayılmaktadır. Nulled veya Null tema adı altında yayınlanan hemen hemen tüm tema ve eklentilerde web shell mevcuttur. Siz temanızı güzel güzel kullanırken arkaplanda sitenizi başkalarına çoktan teslim etmiş olursunuz.

Web Sitenize Web Shell Kurduğunuzu Nasıl Anlarlar?

Bu yöntem çok basit, doğrudan çalıştıracağınız bir php dosyasına web shell yolu veya doğrudan web shell yerleştirir. Örneğin eklentiye konulan bir web shell ile eklenti ayar sayfasına erişmeniz halinde, mevcut sunucu bilgileri veya site adresi web shell yerlerştiren kişiye iletilir. Kötü niyetli kişinin ise tek yapması gereken gelen sunucu bilgileri üzerinden shell yolunu yazmak ve site kontrolünü almak.

Web Shell Çeşitleri Nelerdir?

Bilindik birçok web shell mevcuttur. Ben isimlerinden değil yapılarından bahsedeceğim. Gelişen sadece virüs programı ve güvenlik yazılımları firması değildir. Diğer korsan yazılım ve hack camiasıda gelişmektedir. Web Shell tarama esnasında bulunmasın diye çeşitli metotlar geliştirildi. Bunlardan bazıları;

  • String değeri ile şifrelemek.
  • Base64 ile şifrelemek.
  • JS dosyası ile uzak sunucudan çekmek. (En tehlikelisi ve tespiti zor olan)
  • .htaccess dosyası ile zafiyet oluşturmak.
  • Backdoor.PHP.WebShell.BD
  • PHP:Agent-KW [Trj]
  • PHP/BackDoor.Shell
  • PHP/Shell.G.1
  • Backdoor.PHP.WebShell.a (v)
  • PHP.Trojan.WebShell.a
  • VEX2F7A.Webshell
  • PHP.WebShell.A
  • Win.Trojan.Shell-67
  • PHP.Shell.101
  • Backdoor.PHP.WebShell.BD (B)
  • PHP/WebShell.NAH
  • PHP/WebShell.NAF!tr
  • Backdoor.PHP.WebShell.gl
  • PHP/WebShell
  • PHP.Filesman
  • PHP_MADSHELL.SM
  • Trojan.Html.Agent.vsvbn
  • Backdoor.WebShell-1251/PHP!1.A59F (classic)

Türkiye’de faaliyetini sürdüren birçok hosting firmasının müşterisiydim ve şifrelenmiş web shelleri bu firmalar sözde tarama ile analiz edip virüs bulunmadığını belirterek size güven verebilirler ancak sorunu az sonra göreceğiniz üzere kasıtlı söylenmeyen bu ifadeler beraberinde ciddi sunucu yavaşlamaları ve diğer problemler getirmektedir. En kötü güvenlik sistemlerini 2016 yılında Natro üzerinden ve 2017 yılı içerisinde Alastyr üzerinde yaşadım ve olay sonrası her iki firmayla ilişkimi kesip kendi sunucularımı kurup yönetmeye başladım. Şuan bu firmalar mevcut işlem politikasını değiştirmiş veya kullanmış oldukları yazılımları değiştirmiş olabilirler.

Base64 ile Şifrelenmiş Web Shell

base-64-web-shell

Görüldüğü üzere, kod yapısı çözümlenmemesi amacıyla karmaşıklaştırılmış bir kod yapısı oluşturulmaya çalışılmış. Normal olarak kodlanan zararlı yazılımlar base64 ile şifrelenip virüs programlarını atlatmayı amaçlamaktadırlar ve amaçlarına büyük oranda ulaşmaktadır. Sadece yukarıda belirttiğim hosting firmaları değil CPANEL gibi global yazılım firmalarının scriptlerini de bu yöntemle atlatmak mümkün. Genel tarama esnasında bu web sheller algılanmamaktadır.

Standart Yapıda Web Shell (R57, C99, b374k, Wso Shell)

web shell

Standart web shellerin en bilindikleri r57 c99’dur. Kaynak kodlarına bakılacak olunursa virüslü bir dosyaya sahip olduğu neredeyse tüm virüs programları tarafından algılanır. Sebebi çok eski yayın tarihine sahip olması ve yaygın olarak kullanılmalıdır. Hosting firmaları bu yapıdaki web shelleri bulup siler. Cpanel’e bu yapıdaki web sheller file manager ile yüklenemez.

Sucuya Bağlanmak ve Root Olmak

Putty Nasıl Kullanılır?

Şimdi en önemli kısıma geldik, Linux Centos üzerinden web shelleri silmeyi anlatacağım zaten bu işlem aşırı derecede kolay ve 5 yaşındaki bir çocuğun uygulayacağı şekilde hazırlanmış durumda. Anlatacağım yazılım Clamav. Temel seviye tarama gerçekleştiğinde 1985 yılından kalma bir virüsü bulabilir ancak şifrelenmiş ve gizlenmiş yeni nesil virüsleri kesinlikle bulamayan hiç tavsiye etmediğim ama başlangıç için hayat kurtaran bir program.

Putty SSH Üzerinden Root Olmak?

Natro ve birçok hosting firmasında aşağıdaki işleme gerek kalmadan size varsayılan olarak sunucu kullanıcı adınızı ve şifrenizi verebilirler böylece alttaki aşamaya geçmeden firmadan elde ettiğiniz kullanıcı adı ve şifreyi kullanabilirsiniz.

Putty yasal olarak sunucunuz üzerinde komut çalıştırmanızı sağlayacaktır. Başlamadan önce VDS veya VPS aldığınız firma sitesine public_key denilen anahtarı nasıl eklendiğini bildiğinizden emin olun.

  1. SSH Anahtarı Firma sitesine eklemek
  2. Server Ip adresini bilmek
  3. Temel Linux komutlarını bilmek
  • Putty programını Windows işletim sistemine buradan indirin.

clamav-linux

 

  • Putty programı X64’te C:\Program Files\PuTTY üzerinde X86’da C:\Program Files (x86)\PuTTY  üzerinde kuruldu. Bu dizine girin.

putty-kullanimi

  • puttygen.exe programını açarak ikinci aşamamıza geçelim. Bazı sunucular root kullanıcı adını almanıza izin vermeyebilir. Rastgele farklı isim seçiniz. 3. görselin 3. aşamasında.

 

 

putty-nedir

  • Zor kısmını tamamladık çok az kaldı. Tüm alanları doldurduktan sonra Save Private Key seçeneğini kullanarak bir ppk dosyası elde edeceksiniz bunu kaydedin. Tüm bu işlemler bir metini md5 şifresine dönüştürmek gibi düşünebilirsiniz. İşlem sonucunda bir adet metin belgesi içinde public key, bir ppk dosyası ve hatırlamanız gereken bir şifre kalıyor.
  • Bu public key kısmın kopyalayıp vds aldığınız firmanın ssh listesine ekleyeceksiniz. Natro ve birçok hosting firmasında bu işleme gerek kalmadan size varsayılan olarak sunucu kullanıcı adınız ve şifrenizi verebilirler böylece üstteki aşamaya geçmeden firmadan elde ettiğiniz kullanıcı adı ve şifreyi kullanabilirsiniz.
  • Public Key’i firma paneline tanımladıktan sonra devam edebiliriz.

ssh-anahtari-olusturma

putty-baglanmak

  • Tüm işlem bu kadar artık server üzerinden komut çalıştırabiliriz. Centos server da paket kurulum komutu yum  Debian serverlarda apt-get komutudur. Benim serverım Centos.

 

Web Shell Temizlemek Sunucudan Malware Silmek

Server üzerinde apache kurulu ve hali hazırda bir web sitesinin yayında olduğundan emin olun. Genel olarak apache serverında siteler şu dizinde yer alır;

/home/admin/web/siteadresi.com/

CLAMAV Nedir? ve Nasıl Kurulur?

CLAMAV, Linux tabanlı çalışan ve 2014 yılı virüs veri tabanına sahip açık kaynaklı virüs tarama yazılımıdır. Birçok server sağlayıcısı kurulumunda otomatik olarak yüklü gelmektedir. Her ne kadar yönetici izini olsa da sudo komutu ile tam yetki sağlayarak kurulum aşamasına geçelim. Kurulum komutu Centos için;

yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

komutunu kopyalıp yapıştırın ve enterlayın. Ben modülleri sizin için hazırladım ve bu komuta ekledim. Kurulum bittikten sonra;

sudo clamscan –infected –remove –recursive /home   

veya

sudo clamscan –infected –remove –recursive /home/admin/web/siteadresi.com/

bu komut web shelleri otomatik yakalayıp silecektir.

clamav-scanner

  • Scanned Directories: Taranan Klasör Sayısı
  • Scanned files: Taranan dosya sayısı
  • Infected Files: Tespit Edilen virüs sayısı
  • Data Scanned: Tarama tarihi

Bir de ftpden bir web shell yükleyip deneyelim. R57 web shellini yüklüyorum. Dosya adına göre analiz yapmadığından emin olmak adına benvirusdegilim.php yapıyorum.

webshell-remover

  • Sonuç başarılı dosyayı bulup sildi. Bakalım şifreli Php de durum ne olacak.

virus-temizlemek-linux

  • Sonuç negatif. CLAMAV şifreli php virüslerini bulamıyor. Bu yöntem ile temel düzeyde tarama gerçekleştirebilirsiniz ve diğer hosting firmalarının kullanmış olduğu bu yöntem başlangıç seviyesi için belli oranda işe yarıyor. Sonraki makalemde şifrelenmiş php dosyalarınında tespitinden bahsedeceğim.

Web Shell Nasıl Bulaşır?

Web sheller %99 oranında hazır scriptler, Nulled temalar, Nulled eklentiler aracılığılya sunucuya bulaşmaktadır. Parayla satılan kodlamaları alternatif yollarla elde etmek sizi tehlikeye atacaktır. İnternet üzerinde kimsenin hayır işi için paralı bir materyali ücretsiz dağıtmayacağını bilmelisiniz.

Web Shell Silinmezse Ne Olur?

  • Sunucu üzerinde yavaşlamalar olur.
  • Siteniz yavaş açılır.
  • Admin Kontrol Panelinde yavaşlamalar oluşur.
  • DDOS saldırısı yapılırsa size hukuki ve idari yaptırımlar uygulanır.
  • Eğer şanslıysanız hizmet hesaplarınız askıya alınabilir.
  • Hakkınızda yakalama kararı çıkabilir.
  • Ticari amaçlı sistemlerde tazminat ödemenize sebebiyet verebilir.

 

 

Sunucu Sahibi Olmayanlar İçin Web Shell Temizlemek

Size php tabanlı çalışan ve kaynak kod tabanlı bir analiz yazılımı vereceğim. Clamavnin bulamadığı şifreli virüsleri bu yazılım gösteriyor ve çok başarılı sonuçlar elde edebilirsiniz. Deneme amaçlı bir standart web shell, bir şifreli web shell ve bir adette backdoor koyacağım bakalım hangilerini algılayacak. Bu yazılımı server bazlı da çalıştırabilirsiniz internet tarayıcınız üzerinden de çalıştırabilirsiniz. Buradan indirin.

  • tara.php dosyasını ana dizine filezilla veya filemanager ile aktarın ve adres çubuğundan çalıştırın. Virüssüz bir sunucuda verdiği sonuç;

virussuz

Contain(s) etiketi php içeriside zararlı olabilecek kod kısımlarını belirtiyor. Contain(s) yazan dosyalar potansiyel zarar oluşturabilir demek oluyor.

viruslu

  • R57’de sonuç bu şekilde oluyor. Script dizininde 80 adet php dosyası arasında potansiyel tehdit oluşturabilecek dosyaları sıraladı. Bu sıralamalarda base64 yer alanlar büyük tehlike oluşturabilir.

Web Shell ve Backdoor’dan Nasıl Korunulur?

Web shell ve backdoorlardan korunmanın en temel yolu, serverınıza dosya transfer etmeden önce virustotal üzerinden taratmaktır. Bu aşama önemlidir. Şifre konulmuş rar dosyaları ve sıkıştırılmış zip dosyalarını virustotal  düzgün biçimde tarayamaz. Şimdi bunu taratma yönteminden bahsedeyim.

zip

 

1-Scripti klasör haline çıkartın ve klasörü seçip arşivle dedikten sonra zip formatını Depola olarak seçin ve bu dosyayı taratın.

Aynı scriptin depolama şeklindeki sonucu ve sıkıştırılmış şeklindeki sonucuna bakalım.

virus-total

 

 

 

Çalışmalarıma çalışmalar ve Instagram profilimizi ziyaret ederek ulaşabilirsiniz.Tasarım hizmetleri için fiyat teklifi almak istiyorsanız arayınız, +90 (551) 945 3328 veya eposta ile iletişime geçiniz. iletisim@arifemreeryilmaz.com