WordPress 4.4+ sürümünden sonra gelen yeni bir özellik var. O özellik daha önceden sosyal medya hesapları için eklenmişti. Panelde yazı yazarken sosyal medya hesaplarından bir yazı (post) linki eklediğiniz de direk o içeriği sayfaya ekliyordu. Twitter, youtube gibi aktif siteleri kullanmışsınızdir.
Bu yeni özellik de WordPress’in yazılarını böyle paylaşabiliyor olmanız. Özelliği kapatmak mantıklı olmayabilir ama wp-embed.min.js dosyasını kapatıp, kendi main.js dosyamıza eklememiz daha mantıklı.
Kaynak koduna girdiğiniz de sayfanın en altında bulunuyor.
İlerleyen zamanlarda WordPress’i optimize etmek için gerekli işlemleri sıralayıp onlarla ilgili de ayrıca seri bir makale yazmak istiyorum bu da ufaktan bir başlangıç olsun 🙂
Alttaki kodu function.php dosyamızın içerisine yerleştiriyoruz. Admin hariç bu dosyayı kimse çekmiyor. Ama tabi dediğim gibi bunun içerisindekini de main.js dosyanıza yada custom.js dosyanıza eklemeniz gerekiyor. Öyle direk kaldırmakla olmaz 🙂
// rooteto.com - wp-embed.min.js disable
function rooteto_wp_embed_and_jquery() {
if (!is_admin()) {
wp_deregister_script('wp-embed');
}
}
add_action('init', 'rooteto_wp_embed_and_jquery');
WordPress Gzip konusunu da mutlaka incelemenizi tavsiye ederim.
Son günlerde bu soru sıkça sorulduğu için bende detaylı bir temizliği nasıl gerçekleştirebiliriz bunu anlatmak istiyorum.
Diyelimki WordPress sitemize indirdiğiniz warez tema, eklenti veya bir açık yüzünden sistemimize erişildi (CryptoPHP yazımı mutlaka okumanızıda tavsiye ederim.). Burada saldırgan öncelikle FTP alanına daha rahat çalışabileceği yada diğer dille shell (c99,r57) atıp sistemde açık arayacaktır. Eğer sistemde açık bulamaz ise başka exploitler atıp sunucuyu hacklemeye çalışacaktır. Bu sürekli devam eder yapamasa bile denemek amaçlı sürekli girip birşeyler dener.
Bazı SEO’cular ise bu tip sitelere erişip açıkları kapatır ve WordPress dosyaları içerisine kendi dosyalarını barındırırlar. İleri bir tarihte tekrar girip istediği gibi at koşturabilmek için. Birde eski tarihli içeriklere link ekleyip backlink elde ederler.
WordPressi nasıl temizlerim? sorusuna internet üzerinde bir çok yazı mevcut ama hepsi zor kısımdan anlatıyorlar. Şöyle ki: WordPress sisteminizi tekrar update yapıp FTP alanından tekrar dosya tarihlerini kontrol ederek update ettiğiniz tarih yani o anki tarih ve saat olacağınızdan WordPress sistemi olmayan dosyalar eski tarihli kalacak ve siz onları sileceksiniz. Buda bir yöntem ama daha iyisi varken uğraşmayın!
Tüm bu işlemlere başlamadan önce sitenizin bir yedeğini almanızı tavsiye ederim. Bu işlemler esnasında bir problem çıkmayacaktır ancak yanlışlıkla yapabileceğiniz hatalar sonrası sistemi tekrar kurmak için yedek almanızı öneririm.
Öncelikle WordPress sistemde bu dosyaları siliyoruz çünkü sistem kurulduktan sonra tema ve eklentileri bu klasöre atmadığımız için bu klasör her zaman sabit kaliyor. Bu yüzden önceliğimiz bu dosyalar.
WordPress.org’dan son sürüm wp indiriyoruz. Son sürüm: indir
Daha sonra son sürüm içerisindeki wp-admin, wp-includes ve ana dizin dosyalarını .zip’liyoruz. Fotoğrafta nasıl zipleyeceğinizi anlattım.
Not: Eğer ziplemeyle uğraşmak istemiyorsanız FTP’ye bir klasör açın “yenisite” adında bu dosyas içerisine “wp-admin, wp-includes, ana dizin dosyalarını” yükleyin. Sildikten sonra ana dizine sürüklersiniz.
Daha sonra cPanel‘den “wp-admin, wp-includes, ana dizin dosyalarını” siliyoruz. Silme işlemi FTP’ye göre çok hızlı biteceği için hızlı bir şekilde wordpress.zip dosyamız üzerine gelip sağ tıklıyoruz. Extract diyip dosyalarımızı çıkartıyoruz.
Şu anda wp-admin, wp-includes ve ana dizin dosyalarını temizledik artık bunlardan bir korkumuz yok 🙂
2) Wp-content Temizliği
En çok uğraşacağımız klasör bu. Bu yüzden bunun üzerinde iyi inceleme yapmamız gerekiyor.
Öncelikle bu klasörü bilgisayarımıza indiriyoruz ve bilgisayarımızdaki anti virüs aracılığı ile tarama yaptırıyoruz. Anti virüs eğer shell dosyaları varsa zaten uyarı verecektir. Herhangi bir virüs bulamadıysa alttaki eklentiyi kullanarak devam ediyoruz.
a) Anti-Malware and Brute-Force Security – WP Plugins
Bu eklenti sistemdeki tüm dosyaları tarayıp aralarında zararlı olanlar varsa tespit ediyor ve size bu dosyaları listeliyor.
Bir çok eklenti test ettim ama aralarında en iyiyi bulan bu eklenti. Hatta şöyle bir test yaptım farklı 13 tane php shell indirdim bunların arasında social.png’de mevcut. Hepsini diğer WordPress güvenlik eklentileri ile taratıp test ettim hepsini bulan olmadı ama en çok bu eklenti buldu 🙂
Kullanımında dikkat etmeniz gereken bir durum var otomatik olarak alttaki uzantıları devre dışı bırakıyor bunlar haricindekilerini tarıyor. Ama bizim için hepsi çok önemli bu yüzden hepsini taratmak için alttaki tüm uzantıları kaldırıp taratıyoruz.
2 Farklı resim ekledim. 1.Resimde uzantıları kaldırdığım ve sadece temayı taratıcaksam seçeceğim alan var. Siz tamamını taratabilirsiniz bu sayede tüm sisteminizi temizlemiş olursunuz. 2.Resimde ise taranmış ve bulaşmış dosyayı görüyorsunuz öncelik olarak dosyayı inceleyin ve daha sonra silin.
b) Kullanılmayanlar
Eklentinin bulduklarını inceleyip sildik şimdi sırada kullanmadığımız tema ve eklentide. Genelde tema kuruyoruz ve WordPress’in standart temalarını kullanmıyoruz. Sistemin başka alanlarından içeri sızıp bu kullanmadığınız temalar içerisine shell atabilirler bu yüzden kullanmadığınız tema ve eklentileri mutlaka silin.
c) Eklentileri Tekrar Yükleyin
Kullandığınız eklentileri tespit edip WordPress.org Plugins sayfasından hepsini bilgisayarımıza indiriyoruz.
Daha sonra FTP alanından tüm eklentileri silip aynı isimlerde güncel indirdiklerimizi yüklüyoruz. Bu sayede eklentiler klasörümüzde artık güvenli hale gelmiş oluyor.
ç) Cache Temizliği
WP Super Cache veya W3 Total Cache gibi cache eklentileri kullanıyorsanız wp-content içerisinde cache klasörleriniz olacaktır. FTP’den cache klasörünü tamamiyle silip eklentinizle tekrardan oluşturabilirsiniz.
d) Upgrade Temizliği
WordPress bu klasörü güncelleştirme yaparken kullanır. Güncelleştirme yaparken öncelikle klasörü buraya indirir klasöre çıkartır ve nereye atması gerekiyorsa oraya gönderir. Bu yüzden bu klasör daima boştur eğer siz başka bir dosya görürseniz mutlaka silin.
e) Uploads
Öncelikle yukarıdaki söylediklerimi yaptıysanız uploads klasörünü bilgisayarınıza indirip taratmış olmanız gerekiyor. Burası resim, pdf, mp3 gibi dosyaları yükleme alanıdır. Yani bu alanda php, pl gibi dosyalara yer yoktur ve olmaması gerekiyor.
Upload klasörümüz içerisine FileZilla FTP Programı yardımı ile .htaccess adında bir dosya oluşturuyoruz ve içerisine alttaki kodu yerleştiriyoruz.
Yukarıdaki kod ile herhangi bir açık oluşsa bile uploads klasöründe yukarıdaki uzantıları sunucu artık çalıştırmayacaktır. Gerçi şu anda güvenlik almıyoruz temizlik yapıyoruz ama olsun 🙂
f) Languages
Bu klasör standart olduğu için bunuda silip son sürüm wordpress içerisindekini buraya atıyoruz.
g) Tema Klasörü
En sona bunu bıraktım çünkü bunda ne olduğunu bilmiyoruz. Temanın orjinalini indirebiliyorsak tekrar indirip atmanızı tavsiye ederim. Eğer temada bir güncelleme yaptıysanız bunuda kaydedin temayı yeniden ekledikten sonra güncellemenizi tekrar ekleyin.
Warez temaysa silip yeni tema arayışına geçin.
Ücretsiz tema ise kodları iyi inceleyin içerisinde crypto edilmiş kodlar varsa kullanmayın o temayı.
WordPress.org’dan tema indirin oradakiler güvenlidir.
Son çare kendiniz tema yazın.
3) Wp-config.php Temizliği
Tüm dosyaları neredeyse temizledik ama wp-config.php dosyasını hiç ellemedik. Bu yüzden bu dosyayıda iyi incelememiz gerekiyor belki bu php dosyasının içerisine kod eklediler ve uzaktan bağlanabiliyorlar. Eğer wp-config.php içerisinde ne olduğunu biliyorsanız bunu anlamanız 2-3 saniye gibi bir süre olacaktır. Ama eğer bu dosyada daha önceden ne olduğunu bilmiyorsanız alttaki söylediklerimi yapım.
wp-config.php dosyasını silin. FTP ana dizindeki “wp-config-sample.php” dosyasının adını wp-config.php olarak değiştirin.
Yeni wp-config içerisine veritabanı bilgilerinizi yazın. Birde config içerisinde 45.satırda “Eşsiz doğrulama anahtarı” yer alıyor. O alanada benzersiz kodlarımızı eklemek için alttaki siteye giriyoruz ve oradaki kodu alıp wp-config.php içerisine yerleştiriyoruz.
wp-config-sample.php içerisindeki boş geliyor genellikle. wp-config dosyasmızıda temizledik.
4) MySQL Kullanıcı Şifresi Değiştirme
MySQL veritabanınıza uzaktan erişim eğer kısıtlı değil ise wp-config bilgileri ile sürekli şifrelerinizi değiştirip yönetim panelinize girebilirler. Veritabanı ile alakalı herşeyi yapabilirler.
MySQL Uzaktan Erişim Programı ile bunu yapmak mümkün tabi biz bu programı zarar vermek için değil iş yapmak için kullanıyoruz.
cPanel‘e giriş yapıp “MySQL Veritabanları” kısmına tıklıyoruz.
En alt kısımda kullanıcılarımız var ve bunların hemen sağında “Şifreyi Ayarla” yazıyor.
Yeni şifreyi o alandan girebilirsiniz.
Son olarak wp-config.php dosyasına bağlanıp yeni şifremizi tanımlıyoruz ve bu güvenliğide almış oluyoruz.
5) Admin Şifresi Değiştirme
Yönetim panelinize girip şifrenizi değiştirin ve diğer tüm yöneticileride inceleyin sizden başka yönetici olmasın.
Birde “admin” kullanıcısını kullanıyorsanız onu silin yeniden farklı bir kullanıcı adı ve şifreyle yeni bir kullanıcı oluşturun.
Tüm yazım bu kadar WordPress’i temizleme işlemini tamamladık. WordPress güvenlik ile alakalı yazılarımıda inceleyin;
CryptoPHP: Populer içerik sistemleri için geliştirilmiş “Sosyal Mühendislik (İnsan Kandırma Sanatı)” dediğimiz bir “hack” yöntemi ile warez temalar, eklentiler ve aralarında ücretsiz tema ve eklentilerinde bulunduğu internet üzerindeki indirilebilen tüm dosyaların içerisine gizlenmiş ufak php dosyaları içerisinde şifrelenmiş (crypto) php kodlarıdır.
Kısa ve öz bir şekilde açıklayabildim sanırım. 🙂 Yıllar önce snoby’nin yaptığı ve başarılı olduğu başka bir sosyal mühendislik yöntemi denenmiş ve buda başarılı olmuştur. Başarısının sonucu: 23.000 site hacklenmiş.
Populer içerik yönetim sistemleri;
WordPress
Joomla
Drupal
Hacker Gözüyle;
Öncelikle olaya Hacker gözüyle bakmamız gerekiyor. Ben bir hacker’ım ve hedefim önemli hesaplara ulaşmak (Phishing yöntemi ile), spam mail göndermek ve hackleyebildiğim kadar site hacklemek.
Düşünüyorum ve aklıma şöyle bir fikir geliyor: En populer içerik yönetim sistemleri için warez tema sitesi açıp bu temalar içerisine shell yerleştiriyim. Ama 1 dakika shell koyarsam anti virüsler bu dosyayı bulur ve silerler. Bunun için napmam gerekiyor? Php ile ufak bir upload scripti yazıp temanın içine gömebilirim bu sefer zararlı olduğu anlaşılmaz.
Ama bu zararlı dosyayıda bir png, gif, jpg dosyasına yerleştirirsem sanırım daha iyi bir sonuç alabilirim.
Basit bir şekilde hacker gözüyle düşündük ve ne kadar zararlı olabileceklerini siz düşünün. Düşünürken indirdiğiniz warez tema ve eklentileride düşünün 🙂
CryptoPHP – “social.png” Dosyası
Yukarıda bir hacker gözüyle yazabildiğimi yazdım ama kötü bir durum daha var ben SEO işi yapıyorum ama benim işimi yapan ve yöntemleri benim ve benim gibilerden farklı olan “Black Hat SEO”cularda var. Black hat aslında siyah şapka yani “kötü hacker” olarak adlandırılır. SEO’cunun kötüsüne ve kötü yönteminede “Black hat seo” diyorlar.
İnternet üzerinde bir çok warez sitesi açıp warez temalar, eklentiler yayınlayıp bu dosyalar içerisine “social.png” adında virüsleri yayınlamışlar. Ama aralarında daha akıllı olduklarını düşünenler ise “social.png” yerine başka isimlerde türetmeye başlamışlar. Hatta sunucuya bağlanıp başka yerlere dosya yükleyerek bir kaç yerden girişim olsun niyetiyle dosya atanlar var.
Bu dosyalarla neler yapıyorlar?
PHP Mail: Sunucu üzerinden php mail fonksiyonu kullanarak yüzlerce mail atıyorlar. Ardından IP adresiniz hemen blackliste giriyor. Çözüm: Sunucuda php mail fonksiyonunu kapatmak.
Black Hat SEO: Sitelerin yönetim panellerine girip eski tarihli içeriklerin, içeriklerini değiştirip içeriklere “anahtar kelime” ekleyip link veriyorlar. Arama motorunda üst sırada yer almak için.
Phishing: Sahte sayfalar oluşturup insanlara mail atıyorlar ve kullanıcı adı, şifrelerini çalıyorlar. Sahte Facebook, Linkedin, Twitter, Gmail gibi giriş sayfaları yapıyorlar.
Download: Sitenizin bir yedeğini indirip, mail yedeklerinizi indirip temizlerler ve kendilerine yeni bir mail ağı oluştururlar.
Hacking: Yapabilirse sunucu üzerindeki tüm dosyalara erişip sunucu yönetimi ele geçirir ve tüm siteleri hackler.
Daha neler neler yapılırda şimdilik aklıma bunlar geliyor.
Bu kadar yazdık gelelim bu dosyayı nasıl bulur ve sileriz?
CryptoPHP Nasıl Bulunur?
Bu dosyayı host’unuzda bulmanız biraz zor olabilir ama biz elimizden gelen tüm yöntemleri kullanarak bu ve bunun gibileri bulmaya çalışacağız 🙂
1) Anti-Malware and Brute-Force Security – WP Plugins
Bir çok eklenti test ettim ama aralarında en iyiyi bulan bu eklenti. Hatta şöyle bir test yaptım farklı 13 tane php shell indirdim bunların arasında social.png’de mevcut. Hepsini diğer WordPress güvenlik eklentileri ile taratıp test ettim hepsini bulan olmadı ama en çok bu eklenti buldu 🙂
Kullanımında dikkat etmeniz gereken bir durum var otomatik olarak alttaki uzantıları devre dışı bırakıyor bunlar haricindekilerini tarıyor. Ama bizim için hepsi çok önemli bu yüzden hepsini taratmak için alttaki tüm uzantıları kaldırıp taratıyoruz.
2 Farklı resim ekledim. 1.Resimde uzantıları kaldırdığım ve sadece temayı taratıcaksam seçeceğim alan var. Siz tamamını taratabilirsiniz bu sayede tüm sisteminizi temizlemiş olursunuz. 2.Resimde ise taranmış ve bulaşmış dosyayı görüyorsunuz öncelik olarak dosyayı inceleyin ve daha sonra silin.
2) Sunucuda Taratma Yöntemi
Linux sunucumuza SSH yöntemi ile (SSH Programı) bu dosyayı taratıcaz ve bu lanet dosyadan kurtulcaz inş 🙂
Öncelikle sıkıntımız social.png hemen bunu taratmak için kodumuzu oluşturuyoruz.
Yukarıdaki kodda “.jpg-.png-.jpeg-.gif-.bmp” dosyalarını sunucu üzerinde taratıp “-name” yani bu dosyaların tiplerini “log.txt” adında bir txt dosyasına yazdıracağız. Buradaki amacımız dosya uzantısının gerçekte ne olduğunu görmek.
/images/social.png: PNG image data
/wallpaper-1747243-300×187.jpg: JPEG image data
/img/icon-google.gif: GIF image data
/images/social.png: PHP script text
/stars24.png: PNG image data
Txt dosyamızda sunucu üzerindeki tüm resim dosyaları (yukarıdaki 5 uzantı) taranmış ve sonuç olarak eklenmiş olacak. Yukarıda 5 tane sonuç ekledim burada anlamanız için yeşil olarak düzgün olanları ekledim ancak orada kırmızı bir problem var. Linux sunucumuz sonuç olarak “social.png: PHP script text” yazdıysa bu resim değil php dosyasıdır.
Bu şekildede sunucumucu taratıp bu dosyayı bulabiliriz. Ama şunuda şöylemem gerekiyor burada sadece resim uzantılarının gerçekte ne olduğunu gördük peki ya bu dosyayı kullanarak sunucuya farklı bir yere dosyasını attı ise ne yapıcaz? 3.Alanda bunu anlatıcam inşallah 🙂
3) Findbot Kullanarak Tüm Zararlı Yazılımları Taratma
Findbot adında Abuseat’ın yazmış olduğu perl dosyası var bunu sunucumuza indirip çalıştıracağız bu perl dosyası bir çok virüsü bulabiliyor. Bulduklarınıda perl kodları arasında zaten görebilirsiniz.
Sunucuya indirme ve çalıştırma işlemi için şu işlemi yapınız;
cd /home/
wget http://cbl.abuseat.org/findbot.pl
perl findbot.pl /home
Eğer yukarıdaki gibi sunucuyu taratırsanız dosyaları bulmakta problem yaşayabilirsiniz çünkü perl dosyasında bulduğu dosyanın alt satırına birde açıklamasını yani kodu ekliyor birde bunu komut satırınızda listeliyor bu oldukça zamanınızı alabilir. Bu yüzden sunucuya indirdikten sonra alttaki işlemi yaparsanız daha hızlı işlem yapabilirsiniz.
Sunucuya indirdikten sonra nano veya vi editörü ile “findbot.pl” dosyasını açın alttaki kodu bulun;
Bu sayede $string değişkeni içerisindeki fazlalık verileri görmeyeceğiz komut satırında. Tüm dosyaları taratıp txt dosyasına yazdırıcaz daha sonra incelemek için txt’yi açıp sunucudaki dosyaları inceleyeceğiz.
Bu sayede sunucu üzerinde findbot.pl’yi kullanarak tüm dosyaları tarayıp zararlı olanları bulacak ve sonuçlarda Suspicious parantezi içerisinde hepsini gösterecek. Örneklerle listeliyorum;
Ama şöylede bir durum var standart WordPress’i resmi siteden indirip arattığınızdada yaklaşık 27 tane buluyor. E o zaman WordPress’te açıkmı var? Hayır perl dosyası bazı komutları içeren shell’lerin ve diğer zararlı yazılımların ortak olarak en sık kullandığı “text”leri içeriyor. Bunları bulduğunda ise listeleme yapıyor sizde bunlar arasında gerçek virüsü bulmaya çalışıyorsunuz.
Zahmetli bir iş biliyorum ama yapcak birşey yok eğer sunucunuzu temizlemek istiyorsanız bu kadar detaylı bir sonuç elde edip bunlarıda temizlemeniz gerekiyor.
4) Hosting Firmaları için IP Listesi
Hosting firmaları ise fox-it’in yayınladığı ip adreslerini engelleyip ufakda olsa bir önlem alabilirler.
Bu kadar detaylı aratmamızın sebebi hackerlar “social.png” adında dosya ile hosta bağlanıp farklı yerlere dosya upload yapabilir ve bu sistem dosyasıymış gibi davrandırabilirler. Yada standart script’inizde ufak bir RFI açığı veya upload özelliği ekleyebilirler bu sayede sisteme gizlice girebilirler bunun içinde sistem dosyalarımızıda güncel tutmamız gerekiyor.
İşimiz güvenlik ise işimiz hakkaten zor ve uğraştırıcı ama sonucu güzel 🙂
CrpytoPHP dedik nerelere geldik e artık bu dosyayı nasıl bulacağımızıda biliyorsunuz sıra geldi bu dosyayı bir daha yememeye 🙂
CryptoPHP Önlemek
Bu dosyayı öncelemek için öncelik olarak warez hiç birşey indirmeyeceğiz. Warez hiç birşey derken tema, eklenti aklınıza ne gelirse aralarında şu olabilir diyeceğim bir dosya türü yok.
İndirmiş olduğunuz warez olmayan ücretsiz scriptleri ise mutlaka inceleyin. Kodlarına girip incelemeyide es geçmeyin çünkü ücretsizler içerisindede rastladık bu shell’lere 🙂
Olabildiğince temalarınızı kendiniz yazmaya çalışın yada wordpress.org’un resmi sitesinde yayınladığı tema ve eklentilerden faydalanın.
Ama şuda var bugün WordPress’in son sürümünde bile açık çıkıyor diyebilirsiniz. Bende size: “WordPress sistemi sürekli güncelleniyor sizin warez temanız güncellenmiyor, güncelleniyorsada mutlaka virüs yerini korur.” derim.
Kaynaklar
Kaynaklarım arasında sitede yazmadığım alanlarda var ama ben hepsinden bir kaç şey aldım ve sizde inceleyin daha farklı şeyler göreceksiniz.