Hacklenmek. Nasıl anlamak istiyorum


40

Birisi, ikinci kez, çalıştırmasına yardım ettiğim bir siteye bir javascript parçası ekledi. Bu javascript Google adsense’i ele geçirir, kendi hesap numaralarını ekler ve her yere reklamları yapıştırır.

Kod her zaman, her zaman belirli bir dizinde (bir üçüncü taraf reklam programı tarafından kullanılan) eklenir, bu bir reklam dizininin içinde (20 ya da öylesine) bir dizi dizindeki bir dizi dosyayı etkiler ve kabaca aynı gecede eklenir saati. Adsense hesabı, Çin’in web sitesine ait (bir ay içinde bir kasabada, gelecek ay Çin’de olacağım yerden değil. Belki de büstü kafaya gitmeliyim ... şaka, tür), btw ... site: http://serversiders.com/fhr.com.cn

Peki bu dosyalara nasıl metin ekleyebilirler? Dosyalarda ayarlanan izinlerle ilgili mi (755 ila 644 arasında)? Web sunucusu kullanıcısına (MediaTemple'da yani güvenli olması gerekiyor, öyle mi?)? Demek istediğim, 777'ye ayarlanmış izinleri olan bir dosyanız varsa, hâlâ sadece kod ekleyemiyorum ... bunu nasıl yapıyorlar?

İşte izleme zevkiniz için gerçek kodun bir örneği (ve gördüğünüz gibi ... pek bir şey değil. Gerçek hile oraya nasıl girdiler):

<script type="text/javascript"><!--
google_ad_client = "pub-5465156513898836";
/* 728x90_as */
google_ad_slot = "4840387765";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

Bir çok kişi bahsettiğinden, kontrol ettiklerim (ve kontrol ettiğimde, dosyaların herhangi bir tuhaflık için değiştirildiği zamana baktım ve POST deyimleri ve dizin geçişleri için dosyaları okudum:

  • access_log (normal (yani aşırı) msn bot trafiği dışında zaman içerisinde hiçbir şey)
  • error_log (normal dosyadan başka bir şey yok, masum görünen dosyalar için hata yok)
  • ssl_log (normalden başka bir şey değil)
  • messages_log (benden başka FTP erişimi yok)

* GÜNCELLEME: ** Tamam, çözüldü. Çin'den bilgisayar korsanları sitemize fiziksel olarak her türlü yönetimsel şeyi yapmalarına izin veren bir dosya yerleştirmişlerdir (veritabanı erişimi, dosyaları silme ve oluşturma, adlarını verdiniz, erişimi vardı). Daha yıkıcı bir şey yapmadıkları için şanslıydık. Normal apache günlük dosyalarında hiçbir şey yoktu, ancak bir web sunucusu günlük analizöründe farklı bir günlük dosyaları kümesi buldum ve kanıtlar oradaydı. Bu dosyaya kendi yönetici kullanıcı adı ve şifreleriyle erişiyorlardı ve ardından sunucuda ihtiyaç duydukları şeyi düzenliyorlardı. Onların dosyası "apache" olarak ayarlanmış olup sitemizdeki diğer tüm dosyalar farklı bir kullanıcı adına sahiptir. Şimdi bu dosyayı fiziksel olarak sistemimize nasıl aldıklarını bulmam gerekiyor. Bunun suçlanmasından şüpheliyim, sonunda web sunucumuzla (Media Temple),


6
Bilmiyorum, birisine şifrenizi mi verdiniz?

4
Bunun tam olarak ne zaman gerçekleştiğini biliyorsanız, bu süre zarfında alışılmadık her şeyi access_log içinde arayın. Özellikle tüm POST isteklerini not alın: nereye giderler, ne yaparlar.
sanmai

3
Thx WhirlWind ... çok yardımcı.
Lothar_Grimpsenbacher

2
Aslında, onları tanıyorsanız, neden adres ayrıntılarını spam önleyici bir siteye yapıştırmıyorsunuz? Ağın kendileriyle "konuşmasına" izin verin ve kendi madalyalarının tadına bakalım. :-)

4
@ gaoshan88 - daha sonra düşünebilirsiniz daha yararlı. Bir saldırı vektörü, geliştiricilerin ftp istemcilerinden gelen şifreleri dinleyen bir Truva'dır.
Quentin

Yanıtlar:


9

Her şeyden önce chmod 744onun istediğini değil. Chmod'un amacı, sistemdeki diğer hesaplara erişimi iptal etmektir. Chmod 700, chmod'dan çok daha güvenlidir 744. Ancak Apache, php uygulamanızı çalıştırmak için sadece execute bit'ine ihtiyaç duyar.

chmod 500 -R /your/webroot/

chown www-data:www-data -R /your/webroot/

www-data genellikle php'yi çalıştırmak için kullanılan Apache'nin hesabı olarak kullanılır. Kullanıcı hesabını görmek için bu komutu da çalıştırabilirsiniz:

`<?php
print system("whoami");
?>`

FTP korkunç derecede güvensiz ve bu yöntemle saldırıya uğramanız çok muhtemel. FTP'yi kullanarak dosyaları yazılabilir hale getirebilir ve daha sonra onları tekrar enfekte edebilirsiniz. FTP erişimi olan tüm bilgisayarlarda bir virüsten koruma yazılımı çalıştırdığınızdan emin olun . FTP kullanıcı adları ve şifreleri için yerel trafiği koklayan ve daha sonra oturum açan ve dosyalara bulaşan virüsler vardır. Güvenliği önemsiyorsanız, her şeyi şifreleyen SFTP'yi kullanırsınız. Kaynak kod ve şifreleri tel üzerinden açık metin olarak göndermek tamamen deliliktir.

Başka bir olasılık ise eski bir kütüphane veya uygulama kullanıyor olmanızdır. Yazılım satıcısının sitesini ziyaret edin ve en son sürümü çalıştırdığınızdan emin olun.


6
+1, veba gibi FTP'den kaçının. Bir şifre algılayıcı truva atı bilgisayarınıza bulaşabilir ve dosyaları değiştirmek için kimlik bilgilerinizi kullanabilir. Veya yönlendiricinize bulaşabilir. Ya da güvenli olmayan wifi ağı ile netcafe'de komşunuzun bilgisayarı. Şifreyi clearext olarak göndermek kötü, kötü bir fikirdir.
Tgr

1
FTP gelmez SSL ile gelen, bilirsin.
yerçekimi

1
@grawity çoğu insan "ftps" kullanmaz, ancak bu sizi saldırıya uğratmaz. sftp daha popüler.
Rook

2
Www-data gerektiği DEĞİL web dizininde kendi dosyaları. Www verisinin sunucuda yazılı olmayan bir betikle güncellenebildiği herhangi bir şey .
Zoredache

9

Medya Temple Grid Server hesaplarım bunun gibi birçok kez "saldırıya uğradı". Güvenlikleri çok zayıf ... geçen yıl PLAIN TEXT PASSWORDS ile başladı ve bu güne devam etti (teknik desteği arayabilir ve "şifreniz nedir?" Derler). Biliyorum, çünkü tüm hesap şifrelerimi nasıl değiştirdikleri ve aylık hacklendikleri zaman sizin için veritabanı şifrelerini nasıl değiştirdikleri hakkında aylık e-postalar alıyorum. Bu şirket yüzeyde cehennem gibi parlak görünüyor, ancak ızgara sunucusu bir karmaşa. Hemen değiştirmenizi öneririm .

Lütfen geçen seneki orijinal fiyasko hakkında bu yazıya bakınız (uyarı, sizi kızdıracak). Oradan yokuş aşağı gitti. Geçen sene şükran günümü ailemden uzaklaştırıp web sitelerimden porno linkleri kaldırmakla geçirdim. Güzel, hoş.

Durum sayfasındaki eğlenceyi takip edin : Size en son istismarlar hakkında her şeyi anlatacağım (ve evet, aslında, şu anda orada "olası bir istismar" var).


haha. benim gs sitelerim şu anda hepsi kapalı. Email yok. weblog.mediatemple.net/weblog/category/system-incidents/…
typeoneerror

2

Erişim kayıtlarındaki vb. Etkinlik eksikliğine ve kabaca aynı anda gerçekleşen gerçeğe bağlı olarak, sunucuyu tehlikeye atmış ve ekleri çalıştırmak için çalışan bir tür kabuk betiğine sahip görünüyorlar.

Garip bir şey için crontab'ı kontrol ettin mi?

Dizini ve referanslarını yeniden adlandırmayı denediniz mi (bu, kabuk betiğini kırabilir)?


yeniden adlandırmak iyi bir fikirdir. Sitede ne gibi etkileri olacağını görünce deneyeceğim. Crontab'ın biraz garip bir şeyi vardı, dosyaların değiştirildiği zamanlar için bir giriş var, ancak Plesk yedekleme yöneticisi ... derlenmiş bir uygulama. Eğer bu tehlikeye girerse, Media Temple'ın ellerinde büyük bir problemi var.
Lothar_Grimpsenbacher

1

Evet, kesinlikle dosya izinleriyle ilgili olabilir. Web işlemi tarafından yazılabilen dosyalara sahip olarak, çalıştırmakta olduğunuz web uygulamalarındaki tüm güvenlik açıklarına açıksınız. Her şeyi kilitleyin, böylece web işlemi gerekenden fazlasını okuyamaz veya yazamaz.

Diğer bileşen tam olarak dosyalarınızı nasıl değiştirdiklerini izliyor. Web sunucusunun erişim kayıtlarını kontrol etmek başlamak için iyi bir yerdir. Çeşitli kullanıcılar için son giriş saatlerini kontrol edin. Ayrıca dosyaları modifikasyon için izleyen bir komut dosyası oluşturabilir ve sizi uyararak kırmızı elli suçluları yakalamaya çalışabilirsiniz!


1

Bu, son zamanlarda bir kaç Network Solutions sitesini ziyaret eden Wordpress saldırılarına çok tanıdık geliyor . Media Temple'da olduğunuzdan, bazı dosyaları makinenizi paylaşan diğer kullanıcılar tarafından görülebilir bırakmanız mümkündür. Bu POST veya eery Apache günlük izlerinin eksikliğini açıklar. Bu durumda, komut satırına kod enjekte etmek ölümcül basit olacaktır.


Kayıtlar, bu dosyaların değiştirildiği zamandaki trafiği gösterir ancak aşağıdaki gibi zararsız şeylerdir: 207.46.13.43 - - [05 / May / 2010: 01: 42: 26 -0700] "GET /oped/bpr.php?edid= 211 & sayfa = 4 HTTP / 1.1 "404 257" - "" msnbot / 2.0b (+ search.msn.com/msnbot.htm ) "
Lothar_Grimpsenbacher

O Wordpress'in nasıl çalıştığını biliyor musun? Bana kendi sorunumu nasıl çözeceğimi söyleyeyim.
Lothar_Grimpsenbacher

2
Evet, muhtemelen Ağ Çözümleri bölümündeki hatalı varsayılan yapılandırmalardan kaynaklanan paylaşılan kutulardaki izinler kötüydü. Önerilen düzeltme, izinleri klasörlerde 755 ve dosyalarda 644 olarak kilitlemekti.

1

Kod her zaman belirli bir dizinde her zaman eklenir

Dosyalarda ayarlanan izinlerle ilgili mi (755 ila 644 arasında)? Web sunucusu kullanıcısına

Paylaşılan bir sunucuda mısınız? Eğer öyleyse (ya da olmasa bile), birisi kaba bir FTP şifresini zorlamış ve kullanabileceği herhangi bir dosyayı ekleyen bir komut dosyası yüklemiş olabilir.

bir üçüncü taraf reklam programı tarafından kullanılan

Veya belki de bu programın bir istisnası var.


Üçüncü taraf kodunun bir istismara sahip olabileceğini farz ediyorum. Paylaşılan bir sunucuda var ancak yüklenen herhangi bir komut dosyasını bulabilirdim (yükledilerse, kullanmamışlar ve sonra sildiler, ancak o zaman bile ftp bağlantılarını gösteren günlük dosyalarında bir şey bulmuş
olurdum

1
Dosyalarınız web sunucusu tarafından yazılabilirse, komut dosyasını sunucudaki herhangi bir web sitesine yükleyip dosyalarınızın üzerine yazmış olabilirler. Ama aynı zamanda 3. parti uygulamasına yakından bakacağım.

Üçüncü parti kodu ... Bu yürütülebilir bir komut dosyası ya da sadece bir JavaScript parçası mı? JavaScript, sunucudaki dosyaları değiştiremez.
Salman A

@Salman A - bu reklam yöneten PHP betikleri koleksiyonudur.
Lothar_Grimpsenbacher

Tamam, o zaman umarım bu kodu araştırmışsındır.
Salman A

1

Uygun erişime (ve çekirdek desteği) varsa, dayalı bir izleme cini kamçılamak deneyebilirsiniz Inotify veya dnotify süreç ile dosya açmış ne olduğunu görmek için (hızlı) daha sonra, dosyalarınıza değişiklikler için "lsof" kullanımını izlemek için Yazma erişimi. İzleme için strace de kullanabilirsiniz . Bu, hangi yürütülebilir dosyadan yararlanıldığına dair bir ipucu sağlamalıdır.


1

FTP, denetleme günlükleri başlatmak için ilk yerdir. Günlük, zaman damgası ile birlikte tüm etkinlikleri içermiyorsa en fazlasını içermelidir, bu nedenle dosyalarınızın ne zaman değiştirildiğini biliyorsanız, FTP hesabınızın tehlikeye atılıp atılmadığını belirleyebilirsiniz.

Ardından, web sunucunuzda bu kodu enjekte eden bir komut dosyası olabilir. Paylaşılan bir barındırma senaryosunda, bunun mümkün olduğunu düşünüyorum cat /web/malicious.com/script.js >> /web/innocent.com/index.php. Bu, httpd kullanıcısı tarafından çalıştırılan komut ve index.php dosyası gibi bir kullanıcı tarafından sahiplenilebilir / yazılabilir gibi belirli koşullar altında çalışabilir. Bu durumda, kodları enjekte etmek için kullanılan hesabı izlemek için barındırma sağlayıcınız olmalıdır.


1

Çoğu site dosyasının web sunucusu tarafından okunması gerekir. Salt okunur bir sitede, yalnızca günlüklerin web sunucusu tarafından yazılabilir olması gerekir. sahibini web sunucusu tarafından kullanılandan başka birine ayarlayın. Komut dosyası dışındaki tüm dosyalarda koruma 640'ı ayarlayın. Komut dizileri ve dizinleri 750 ayarlayın. Websever tarafından yazılması gereken dosya veya dizinler için, sahibi web sunucusuyla değiştirebilir veya chmod g + 2'yi ilgili dosya veya dizinleri ayarlayabilirsiniz.


CGI olmayan komut dosyaları genellikle 600 veya 640 moduna sahip olabilir (dosya sahibine ve gruba ve web sunucusunun hangi kullanıcı olarak çalıştığına bağlı olarak), çünkü çoğu komut dosyası tercümana iletilir.
outis

0

Bir siteyi kırmak için zilyon olası yollar vardır. Komut dosyanızda bir güvenlik açığı kullanabilir, şifrenizi çalmış, ortak bir sitenin güvenlik açığı kullanıyor (eğer ucuz bir ev sahibiyseniz), sunucu makinesinde web ile ilgili olmayan bazı hizmetlerin güvenlik açığını kullanıyor olabilirler. .

İlk adım olarak, dosya modifikasyon tarihini kontrol edin ve o sırada şüpheli bir etkinlik için erişim, hata ve ftp günlüklerini kontrol edin.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.