Đã bị hack. Muốn hiểu thế nào


40

Ai đó đã, lần thứ hai, đã thêm một đoạn javascript vào một trang web tôi giúp chạy. Javascript này chiếm quyền điều khiển Google adsense, chèn số tài khoản của riêng họ và dán quảng cáo khắp nơi.

Mã luôn được nối thêm, luôn nằm trong một thư mục cụ thể (được sử dụng bởi chương trình quảng cáo của bên thứ ba), ảnh hưởng đến một số tệp trong một số thư mục bên trong thư mục quảng cáo này (20 hoặc hơn) và được chèn vào cùng một đêm thời gian. Tài khoản adsense thuộc về một trang web của Trung Quốc (nằm trong một thị trấn không phải là một giờ từ nơi tôi sẽ đến Trung Quốc vào tháng tới. Có lẽ tôi nên bán thân ... đùa, sắp xếp), đây là thông tin về trang web: http://serversiders.com/fhr.com.cn

Vì vậy, làm thế nào họ có thể nối văn bản vào các tập tin này? Có liên quan đến các quyền được thiết lập trên các tệp (từ 755 đến 644) không? Đối với người dùng máy chủ web (trên MediaTemple, vậy nó có an toàn không?)? Ý tôi là, nếu bạn có một tệp có quyền được đặt thành 777 Tôi vẫn không thể thêm mã vào nó theo ý muốn ... làm thế nào họ có thể làm điều này?

Đây là một mẫu mã thực tế cho niềm vui xem của bạn (và như bạn có thể thấy ... không nhiều đối với nó. Bí quyết thực sự là làm thế nào họ có được nó trong đó):

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

Vì một số người đã đề cập đến nó, đây là những gì tôi đã kiểm tra (và bằng cách kiểm tra, ý tôi là tôi đã xem xét khoảng thời gian các tệp được sửa đổi cho bất kỳ sự kỳ lạ nào và tôi đã ghi lại các tệp cho các câu lệnh POST và duyệt qua thư mục:

  • access_log (không có gì trong khoảng thời gian ngoại trừ lưu lượng bot msn bình thường (tức là quá mức)
  • error_log (không có gì nhưng tệp thông thường không tồn tại lỗi đối với các tệp tìm kiếm vô hại)
  • ssl_log (không có gì ngoài thông thường)
  • Messages_log (không có quyền truy cập FTP ở đây trừ tôi)

* CẬP NHẬT: ** OK, đã giải quyết nó. Tin tặc từ Trung Quốc đã đặt một tệp vật lý vào trang web của chúng tôi cho phép chúng thực hiện mọi cách quản trị (truy cập cơ sở dữ liệu, xóa và tạo tệp và thư mục, bạn đặt tên cho nó, chúng có quyền truy cập). Chúng tôi may mắn họ đã không làm điều gì đó phá hoại hơn. Không có gì trong các tệp nhật ký apache bình thường nhưng tôi đã tìm thấy một tập hợp các tệp nhật ký khác trong máy phân tích nhật ký máy chủ web và bằng chứng nằm ở đó. Họ đã truy cập tệp này với tên người dùng và mật khẩu quản trị viên của riêng họ và sau đó chỉnh sửa bất cứ thứ gì họ cần ngay trên máy chủ. Tệp của họ có "apache" được đặt là người dùng trong khi tất cả các tệp khác trên trang web của chúng tôi có tên người dùng khác. Bây giờ tôi cần tìm hiểu làm thế nào họ thực sự có được tệp này trên hệ thống của chúng tôi. Tôi nghi ngờ đổ lỗi cho điều này cuối cùng sẽ nghỉ ngơi với máy chủ web của chúng tôi (Media Temple),


6
Tôi không biết, bạn đã cho ai đó mật khẩu của bạn?

4
Nếu bạn biết chính xác khi nào điều này xảy ra, hãy tìm kiếm access_log của bạn để biết mọi thứ bất thường trong khoảng thời gian này. Đặc biệt ghi lại tất cả các yêu cầu POST: họ đi đâu, làm gì.
sanmai

3
Thx WhirlWind ... rất hữu ích.
Lothar_Grimpsenbacher

2
Trên thực tế nếu bạn biết họ, tại sao không dán chi tiết địa chỉ của họ trên một trang web chống spam. Hãy để mạng "nói" với họ và cho họ nếm thử vị thuốc của họ. :-)

4
@ gaoshan88 - hữu ích hơn bạn có thể nghĩ. Một vectơ tấn công là một Trojan đánh hơi mật khẩu từ các máy khách ftp của nhà phát triển.
Quentin

Câu trả lời:


9

Trước hết chmod 744nó KHÔNG phải là những gì bạn muốn. Quan điểm của chmod là thu hồi quyền truy cập vào các tài khoản khác trên hệ thống. Chmod 700an toàn hơn nhiều so với chmod 744. Tuy nhiên Apache chỉ cần bit thực thi để chạy ứng dụng php của bạn.

chmod 500 -R /your/webroot/

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

Dữ liệu www thường được sử dụng làm tài khoản của Apache, được sử dụng để thực thi php. Bạn cũng có thể chạy lệnh này để xem tài khoản người dùng:

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

FTP không an toàn khủng khiếp và rất có khả năng bạn đã bị hack từ phương thức này. Sử dụng FTP, bạn có thể tạo các tệp có thể ghi và sau đó lây nhiễm lại. Đảm bảo bạn chạy chương trình chống vi-rút trên tất cả các máy có quyền truy cập FTP. Có những vi-rút đánh hơi lưu lượng truy cập cục bộ cho tên người dùng và mật khẩu FTP, sau đó đăng nhập và lây nhiễm các tệp. Nếu bạn quan tâm đến bảo mật, bạn sẽ sử dụng SFTP, mã hóa mọi thứ. Gửi mã nguồn và mật khẩu qua dây trong văn bản rõ ràng là hoàn toàn điên rồ.

Một khả năng khác là bạn đang sử dụng một thư viện hoặc ứng dụng cũ. Truy cập trang web của nhà cung cấp phần mềm và đảm bảo bạn đang chạy phiên bản mới nhất.


6
+1, tránh FTP như bệnh dịch hạch. Một trojan sniffer mật khẩu có thể lây nhiễm máy tính của bạn và sử dụng thông tin đăng nhập của bạn để thay đổi các tập tin. Hoặc nó có thể lây nhiễm bộ định tuyến của bạn. Hoặc máy tính của hàng xóm của bạn tại netcafe với mạng wifi không bảo mật. Gửi mật khẩu trong clearext là một ý tưởng tồi, tồi tệ.
Tgr

1
FTP đi kèm với SSL, bạn biết đấy.
grawity

1
@grawity hầu hết mọi người không sử dụng "ftps", nhưng điều đó sẽ giúp bạn không bị hack. sftp là phổ biến hơn.
Rook

2
Dữ liệu www KHÔNG nên sở hữu các tệp trong thư mục web của bạn. Bất cứ điều gì mà dữ liệu www có thể được cập nhật bởi một tập lệnh được viết kém trên máy chủ.
Zoredache

9

Các tài khoản Máy chủ Lưới Truyền thông của tôi đã bị "hack" như thế này nhiều lần. Bảo mật của họ rất kém ... bắt đầu với PASSWORDS PLAIN vào năm ngoái và tiếp tục cho đến ngày nay (bạn có thể gọi cho bộ phận hỗ trợ kỹ thuật và họ nói "mật khẩu của bạn là gì?"). Tôi biết vì tôi nhận được email hàng tháng về cách họ đã thay đổi tất cả mật khẩu tài khoản của tôi và họ thực sự truy cập và thay đổi mật khẩu cơ sở dữ liệu cho bạn mỗi khi họ bị hack. Công ty đó trông bóng bẩy như địa ngục trên bề mặt, nhưng máy chủ lưới là một mớ hỗn độn. Tôi khuyên bạn nên chuyển đổi ngay lập tức .

Xin vui lòng xem bài đăng này từ năm ngoái về fiasco ban đầu (cảnh báo, nó sẽ làm bạn bực mình). Nó đã xuống dốc từ đó. Tôi đã dành lời cảm ơn vào năm ngoái khỏi gia đình và xóa các liên kết khiêu dâm khỏi các trang web của tôi. Đáng yêu.

Theo dõi niềm vui trên trang trạng thái của họ : Nó sẽ cho bạn biết tất cả về các khai thác mới nhất (và, thực sự, có một "khai thác có thể" trên đó ngay bây giờ).


haha các trang web gs của tôi là tất cả xuống ngay bây giờ. không có email weblog.mediatemple.net/weblog/category/system-incidents/...
typeoneerror

2

Dựa trên việc thiếu hoạt động trong nhật ký truy cập, v.v. và thực tế xảy ra gần như cùng lúc, có vẻ như họ đã xâm phạm máy chủ và có một kịch bản shell nào đó đang chạy để thực hiện nối thêm.

Bạn đã kiểm tra crontab cho bất cứ điều gì lạ?

Bạn đã thử đổi tên thư mục và các tham chiếu đến nó (điều này có thể phá vỡ tập lệnh shell)?


đổi tên là một ý tưởng tốt. Tôi sẽ thử điều đó một khi tôi thấy nó sẽ có tác dụng gì trên trang web. Crontab có một điều hơi lạ, có một mục về thời gian các tệp được thay đổi nhưng đó là trình quản lý sao lưu Plesk ... một ứng dụng được biên dịch. Nếu điều đó bị xâm phạm thì Media Temple có một vấn đề lớn trong tay họ.
Lothar_Grimpsenbacher

1

Vâng, nó chắc chắn có thể liên quan đến các quyền của tập tin. Bằng cách có các tệp có thể ghi được theo quy trình web, bạn mở bất kỳ lỗ hổng bảo mật nào trong các ứng dụng web bạn đang chạy. Khóa mọi thứ lại để quá trình web không thể đọc hoặc viết bất cứ điều gì nhiều hơn mức cần thiết.

Thành phần khác đang theo dõi chính xác cách họ sửa đổi tệp của bạn. Kiểm tra nhật ký truy cập của máy chủ web là một nơi tốt để bắt đầu. Kiểm tra lần đăng nhập cuối cùng cho nhiều người dùng khác nhau. Bạn cũng có thể thiết lập một tập lệnh theo dõi các tập tin để sửa đổi và thông báo cho bạn để bạn có thể thử và bắt những tên tội phạm tay đỏ!


1

Điều này nghe có vẻ cực kỳ quen thuộc với các bản hack Wordpress đã tấn công hàng loạt các trang web Giải pháp Mạng gần đây. Vì bạn đang ở trên Media Temple, có thể bạn đã để một số tệp hiển thị cho những người dùng khác đang chia sẻ máy của bạn. Điều đó sẽ giải thích việc thiếu dấu vết nhật ký POST hoặc eery Apache. Nếu đó là trường hợp đơn giản để tiêm mã vào dòng lệnh.


Nhật ký hiển thị lưu lượng truy cập trong khoảng thời gian các tệp này được sửa đổi nhưng đó là nội dung vô hại như: 207.46.13.43 - - [05/05/2010: 01: 42: 26 -0700] "GET /oped/bpr.php?edid= 211 & page = 4 HTTP / 1.1 "404 257" - "" msnbot / 2.0b (+ search.msn.com/msnbot.htmlm ) "
Lothar_Grimpsenbacher

Bạn có biết hack Wordpress hoạt động như thế nào không? Có thể cho tôi biết làm thế nào để khắc phục vấn đề của riêng tôi.
Lothar_Grimpsenbacher

2
Có, đó là quyền xấu trên các hộp được chia sẻ, có thể do cấu hình mặc định xấu trên một phần của Giải pháp Mạng. Cách khắc phục được khuyến nghị là khóa các quyền như 755 trên các thư mục và 644 trên các tệp.

1

Mã luôn được nối thêm, luôn nằm trong một thư mục cụ thể

Có liên quan đến các quyền được thiết lập trên các tệp (từ 755 đến 644) không? Để người dùng máy chủ web

Bạn đang ở trên một máy chủ được chia sẻ? Nếu vậy (hoặc thậm chí nếu không), một người nào đó có thể đã buộc mật khẩu FTP và tải lên một tập lệnh nối bất kỳ tệp nào mà nó có thể có được.

một được sử dụng bởi một chương trình quảng cáo của bên thứ ba

Hoặc có lẽ chương trình này có một khai thác.


Tôi cho rằng có thể mã bên thứ ba có khai thác. Đó là trên một máy chủ được chia sẻ nhưng tôi sẽ tìm thấy bất kỳ tập lệnh được tải lên nào (trừ khi họ tải lên, sử dụng nó và sau đó xóa nó nhưng ngay cả khi đó tôi sẽ tìm thấy một cái gì đó trong các tệp nhật ký hiển thị kết nối ftp của họ)
Lothar_Grimpsenbacher vào

1
Nếu các tệp của bạn có thể ghi được bởi máy chủ web, có thể họ đã tải tập lệnh lên bất kỳ trang web nào trên máy chủ và ghi đè lên các tệp của bạn. Nhưng tôi cũng sẽ xem xét kỹ ứng dụng của bên thứ 3 đó.

Các mã bên thứ ba ... nó là một kịch bản thực thi hay chỉ là một đoạn mã JavaScript? JavaScript không thể sửa đổi các tệp trên máy chủ.
Salman A

@Salman A - nó là một tập hợp các tập lệnh PHP quản lý quảng cáo.
Lothar_Grimpsenbacher

OK, sau đó tôi hy vọng bạn đã điều tra mã đó.
Salman A

1

Nếu bạn có quyền truy cập thích hợp (và hỗ trợ kernel), bạn có thể thử đánh dấu một trình nền theo dõi dựa trên inotify hoặc dnotify để theo dõi các thay đổi đối với các tệp của bạn, sau đó (nhanh chóng) sử dụng "lsof" để xem quá trình mở tệp với ghi truy cập. Bạn cũng có thể sử dụng strace để theo dõi. Điều đó sẽ cung cấp một manh mối về những gì thực thi đang được khai thác.


1

Nhật ký kiểm tra FTP là nơi đầu tiên để bắt đầu. Nhật ký nên chứa hầu hết nếu không phải tất cả hoạt động cùng với dấu thời gian để nếu bạn biết thời gian các tệp của mình được sửa đổi, bạn có thể xác định xem tài khoản FTP của mình có bị xâm phạm hay không.

Tiếp theo, nó có thể là một tập lệnh trên máy chủ web của bạn đang tiêm mã đó. Trong một kịch bản lưu trữ được chia sẻ, tôi nghĩ có thể làm được a cat /web/malicious.com/script.js >> /web/innocent.com/index.php. Điều này có thể hoạt động trong một số điều kiện nhất định, chẳng hạn như lệnh được thực thi bởi người dùng httpd và tệp index.php cũng được sở hữu / ghi bởi người dùng đó. Trong trường hợp đó, bạn nên có nhà cung cấp dịch vụ lưu trữ của mình để theo dõi tài khoản đang được sử dụng để tiêm các tập lệnh.


1

Hầu hết các tập tin trang web cần phải được đọc bởi máy chủ web. Trên trang web chỉ đọc, chỉ có các bản ghi cần được ghi bởi máy chủ web. đặt chủ sở hữu thành người khác ngoài máy chủ web sử dụng. Đặt bảo vệ 640 trên tất cả các tệp trừ tập lệnh. Đặt tập lệnh và thư mục 750. Đối với các tệp hoặc thư mục cần được viết bởi websever, bạn có thể thay đổi chủ sở hữu thành máy chủ web hoặc đặt chmod g + 2 các tệp hoặc thư mục có liên quan.


Các tập lệnh không phải CGI thường có thể có chế độ 600 hoặc 640 (tùy thuộc vào chủ sở hữu & nhóm tệp và máy chủ web chạy như thế nào), vì nhiều tập lệnh được chuyển đến một trình thông dịch.
outis

0

Có hàng trăm cách có thể để bẻ khóa một trang web. Họ có thể đã sử dụng lỗ hổng trong tập lệnh của bạn, đánh cắp mật khẩu của bạn, sử dụng lỗ hổng của trang web được lưu trữ đồng thời (nếu bạn đang ở một máy chủ giá rẻ), đã sử dụng lỗ hổng của một số dịch vụ không liên quan đến web trên máy chủ .. .

Bước đầu tiên, hãy kiểm tra ngày sửa đổi tệp và kiểm tra nhật ký truy cập, lỗi và ftp cho bất kỳ hoạt động đáng ngờ nào tại thời điểm đó.


0

Điều tương tự đã xảy ra với tôi một thời gian trở lại. Wordpress là phần mềm duy nhất có thể gây ra thứ gì đó như tôi biết.


Không có Wordpress liên quan ở đây.
Lothar_Grimpsenbacher
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.