APT gruplarının saldırıları incelendiğinde saldırıların ilk olarak “DMZ” network’ünden yani ağın dışarıya açık olan kısmından geldiği görülmektedir. DMZ network’ünde genellikle mail ve web sunucular yer almaktadır. Saldırgan DMZ alanında bulunan web sunucuyu hedef aldığını ve bu web sunucu üzerinde ise kurumumuzun web sitesini veya dışarı açık bir API servisinin çalıştığını varsayalım. Saldırgan Local File Inclusion, Remote File Inclusion veya Unrestricted File Upload güvenlik açıklarını kullanarak DMZ network’üne girecektir. Sisteme girebilmek için “Web Shell” denilen kod dosyası sisteme yüklenir ve uzaktan çalıştırılarak sistem üzerinde shell denilen komut ekranına ulaşılır. Bir çok web shell kodu vardır ve farklı platformlar için farklı farklı kodlar yazılabilir. Genellikle PHP, Perl, Python, ASP/.NET vb. programlama dilleri kullanılarak yazılırlar. Local, Remote, Root vb. türleri vardır.
Çoğunlukla sitelere yapılan saldırılarda aşağıdaki web shellerin kullanıldığı görülmektedir.
- C99
- R57
- Kali OS’da hazır bulunan web sheller vb.
Shelleri incelemek için araştırma yapabilir ancak cihazınıza indirmeniz ve çalıştırmanız tavsiye edilmemektedir.
APT gruplarının web shell yükleme ile yaptıkları saldırı teknikleri aşağıdaki adresten incelenebilir.
https://www.us-cert.gov/ncas/alerts/TA15-314A
Web shell tespiti için aşağıdaki araçlar kullanılabilir.
Neopi
https://github.com/Neohapsis/NeoPI
Taramak istenilen dizin bilgisi -A ve -a parametreleri ile girildiğinde tarama işlemi başlayacaktır. İşlemi tamamlandığında tespit edilebilen web sheller ekranda listelenecektir. Bu araç Python 2.7 yüklü cihazlar üzerinden çalıştırılabilir.

Backdoorman
Linux ortamında çalışmaktadır. Virustotal gibi apileri kullanarak web shell tespit etmeye çalışmaktadır.
https://github.com/cys3c/BackdoorMan

Webshell Detector
Php, perl, aspx gibi web shell dosyalarını tespit edebilmektedir.
https://github.com/emposha/Shell-Detector
