Tehdit aktörlerinin sisteme veya ağa sızarak, hedeflenen web uygulamalarında ve buna bağlı sistemlerde backdoor oluşturarak kalıcılığını sağladığı, web sunucularını tehlikeye atan kötü amaçlı komut dosyalarıdır.
BAZI WEB SHELL TÜRLERİ
Her biri belirli güvenlik açıklarından ve ortamlardan yararlanmak için tasarlanmış, farklı dillerde programlanmış çeşitli web shell varyasyonları vardır. Bununla birlikte, en yaygın diller PHP, Python, Ruby, Perl, ASP ve ASP.NET’tir.
Bu türleri ayırt ediyor omak, tehlikeyi doğru şekilde anlamlandırmamızı sağlayacaktır.
PHP Web Shell
PHP, web geliştirmede kullanılan en yaygın betik dillerinden biridir ve bu da PHP tabanlı web shellleri yaygın bir tehdit haline getirmektedir. Bu komut dosyaları genellikle savunmasız dosya yükleme formları aracılığıyla yüklenir ve dosya yönetimi, sistem komutlarının yürütülmesi ve sunucu yapılandırmalarının değiştirilmesi gibi çeşitli görevleri gerçekleştirmek için çalıştırılabilir.
ASP ve ASP.NET Web Shell
Microsoft’un İnternet Bilgi Hizmetleri’ni (IIS) çalıştıran sunucularda ASP veya ASP.NET ile yazılmış web shelleri yaygındır. Saldırganlar bu kötü niyetli komut dosyalarını yüklemek için yanlış yapılandırılmış sunuculardan veya güncel olmayan yazılımlardan yararlanır ve daha sonra sunucuyu uzaktan kontrol etmelerini sağlar.
Perl ve Python Web Shell
PHP veya ASP tabanlı shellerden daha az yaygın olmasına rağmen, Perl ve Python web shelleri bu betik dillerinin aktif olduğu ortamlarda kullanılabilir. Saldırganlar bunları genellikle gelişmiş kalıcılık ve gizlilik işlemleri için kullandıklarından, bunların varlığı genellikle daha derin bir tehlikenin göstergesidir.
BİR WEB SHELL VAKASI : CHINA CHOPPER
China Chopper, ilk olarak 2012 de keşfedilen ve yaklaşık 4 kilobyte boyutunda bir web shell olup; web sunuucularını uzaktan kontrol için APT grupları ve Çinli saldırganlar tarafından kullanılmıştır.
China Chopper iki ana bileşenden oluşur:
1. Server Component (Sunucu Tarafı)
- Web sunucusuna yüklenen küçük bir script dosyasıdır.
- PHP, ASPX, JSP veya CFM dosyası olarak çalışabilir.
- Genellikle şifrelenmiş veya obfuscate edilmiş basit bir kod içerir.
- Örnek PHP payload’ı:
<?php @eval($_POST[‘password’]); ?>
Çalışma mantığı:
- Saldırgan, HTTP POST isteğiyle zararlı kodu “password” parametresi içinde yollar.
- eval ( ) fonksiyonu bu kodu çalıştırarak saldırgana uzaktan komut yürütme imkanı tanır.
- Tespit edilmesini zorlaştırmak için “password” yerine farklı değişken isimleri kullanılabilir.
2. Client Component (İstemci Tarafı)
Saldırganın kullanacağı bir GUI (Grafik Arayüzü) istemcisi vardır.
Bu istemci, sunucuya yüklenen web shell ile iletişim kurar ve komut çalıştırmayı sağlar.
Windows’ta çalıştırılabilen bir uygulama şeklindedir.
Kullanıcı dostu bir arayüz sunarak saldırganın dosya yükleme/indirme, komut çalıştırma ve sistem keşfi yapmasına olanak tanır.
Mitre Att&ck framework üzerinden gelen sayfada teknikler başlığını yorumlayıp, nasıl web shelll aldıklarını anlayacağız.
Tablodaki Tekniklerin Analizi:
T1071.001 – Web Protokolleri (Application Layer Protocol: Web Protocols)
China Chopper, HTTP POST komutlarıyla uzaktan kod çalıştırabiliyor. Bu, saldırganın sunucuya komut göndermesine ve geri bildirim almasına olanak tanıyor.
T1110.001 – Brute Force: Password Guessing
Web shell, kimlik doğrulama noktalarında brute-force saldırıları yapabiliyor. Yani şifre tahminleme yoluyla giriş yapmayı deniyor. Zayıf parola korumalarını tahmin ederek bypass edebilir.
T1059.003 – Windows Command Shell Kullanımı
Saldırganlar, China Chopper aracılığıyla Windows komut satırını (cmd.exe) çalıştırabilir. Bu, sistem üzerinde genişletilmiş kontrol sağlamalarını mümkün kılar.
T1005 – Yerel Sistemden Veri Çalma (Data from Local System)
Web shell, sunucudaki yerel dosyaları okuyabilir ve saldırgana gönderebilir.
T1083 – Dosya ve Dizin Keşfi (File and Directory Discovery)
China Chopper, hedef sunucu üzerindeki dizin yapısını ve dosyaları listeleyebilir. Bu, saldırganın kritik bilgilere erişmesine yardımcı olur.
T1070.006 – Timestomp (Indicator Removal: Timestomp)
Saldırganlar, dosyaların zaman damgalarını değiştirerek tespit edilmeyi zorlaştırabilir.
T1105 – Ingress Tool Transfer
Web shell, uzaktan dosya indirerek saldırganın ek araçlar yüklemesine olanak tanır.
T1046 – Ağ Servis Keşfi (Network Service Discovery)
Saldırgan, sunucuda çalışan ağ hizmetlerini keşfedebilir. Bu, hedef sistemde lateral movement (yanal hareket) yapmayı kolaylaştırır.
T1027.002 – Yazılım Paketleme (Obfuscated Files or Information: Software Packing)
China Chopper’ın istemci bileşeni UPX (Ultimate Packer for Executables) ile sıkıştırılmış bir durumdadır. Bu ise, tespiti zorlaştırmak için uygulanan bir tekniktir.
T1505.003 – Web Shell Kullanımı (Server Software Component: Web Shell)
China Chopper, temel olarak bir web shell payload’ı olarak çalışıyor. Bu, saldırganların sistem üzerinde uzaktan komut çalıştırmasını sağlıyor.
WEB SHELL SALDIRILARINA KARŞI ÖNLEMLER
1- Web Application Firewall (WAF) kullanılmalıdır.
2- Web dizinindeki değişiklikleri tespit etmek için AIDE, OSSEC gibi araçlar kullanılmalıdır.
3- Sunucu logları düzenli takip edilip; Apache, Nginx ve IIS loglarını inceleyerek şüpheli POST istekleri tespit edilmelidir.
4- IPS/IDS sistemleriyle zararlı isteklerin engellenmesi sağlanmalıdır.
5- Web shell’leri tespit etmek için düzenli olarak YARA taramaları yapılabilir.
6- Kod geliştirme sürecinde eval()
, assert()
, shell_exec()
gibi fonksiyonlarının kullanımı minimize edilmelidir.
7- Brute force saldırılarına karşı iki faktörlü kimlik doğrulama (2FA) uygulanmalıdır.