Phân tích mã độc mới trên Facebook 15/11 (P2)

Trong phần một bài phân tích mã độc mới trên Facebook ngày 15/11, chúng ta đã biết được mã độc yêu cầu người dùng cài đặt một Extension để thực thi mã từ xa.

Trong phần hai, tôi sẽ tiếp tục phân tích đoạn mã chính được yêu cầu thực thi bởi Extension.

Tổng quan về mã độc

Đoạn mã được viết bằng JavaScript bao gồm 14 hàm.

start
arkadas
privacySetting
like
getConfirmHash
confirmLike
gelLinkID
comment
confirmComment
tokencek
randoms
rastgele
deSerialize
blockRemove

 

 

Phân tích chi tiết mã độc

new Image().src = "https://whos.amung.us/swidget/usersxxx0";

 

 

Ở dòng đầu tiên, tác giả khởi tạo một đối tượng Image và đặt thuộc tính “src” về trang whos.amung.us – đây là một trang đã có từ lâu và cũng khá nổi tiếng. Nó cung cấp cho bạn một bộ đếm số người đang trực tuyến dưới dạng một widget để nhúng vào trang web của bạn.

Câu lệnh new Image().src="URL" là thủ thuật nhỏ để tạo ra một truy vấn GET đơn giản (trình duyệt phải tạo truy vấn tới tập tin để nạp ảnh xuống client). Tác giả của mã độc đã sử dụng thủ thuật này để đếm xem có bao nhiêu nạn nhân (đang trực tuyến).

 

ma-doc-hack-facebook-07

 

Trong đoạn mã thực thi tiếp theo, tác giả xác định xem trang web hiện tại mà người dùng đang truy cập có phải Facebook hay không bằng cách kiểm tra chuỗi “facebook.com” có nằm trong tên máy chủ (hostname) hay không.

 

location.hostname.indexOf("facebook.com") >= 0

 

 

Sau đó, để biết được người dùng đã đăng nhập Facebook hay chưa – tác giả đã đếm phần tử có tên là “fb_dtsg”:

fb_dtsg_list = document.getElementsByName('fb_dtsg');
if (!document.getElementById("isrun") && fb_dtsg_list.length > 0) {
// OK }

 

Khi chưa đăng nhập thì số phần tử sẽ bằng 0.

ma-doc-hack-facebook-08

Chú ý: Nếu như các bạn từng đọc những bài phân tích mã độc Facebook của tôi trên SecurityDaily.net thì chắc sẽ nhớ rằng “fb_dtsg” chính là một thẻ Input ẩn và giá trị của nó chính là Security Token của Facebook.

Khi đã chắc chắn người dùng đã đăng nhập sẵn vào Facebook, tác giả lưu lại các thông tin quan trọng vào các biến. Trong đó có 2 thứ mà tôi đã bắt gặp ở rất nhiều mã độc Facebook khác là User ID và Security Token của người dùng hiện tại.

profile_id = document.cookie.match(/c_user=(d+)/)[1];
fb_dtsg = fb_dtsg_list[0].value;

Tiếp theo, tôi sẽ phân tích các hàm quan trọng được thực thi. Thứ tự phân tích dựa trên thứ tự mà chúng được gọi tới.

blockRemove()

ma-doc-hack-facebook-09

Hàm này sẽ thực hiện ẩn Dropdown Menu trên góc phải của Facebook. Nó được lặp đi lặp lại sau mỗi… 10 milliseconds với mục đích: không cho người dùng đăng xuất hoặc truy cập vào trang cài đặt tài khoản.

start()

ma-doc-hack-facebook-10

Hàm Start() sẽ thiết đặt một số cấu hình mặc định và làm nhiệm vụ điều hướng. Chúng ta có thể thấy 3 hàm được gọi trong hàm này là: arkadas(), privacySetting() và tokencek().

Thôi phân tích luôn cái hàm nguy hiểm nhất – hàm tạo ra cái thông báo “XXX đã nhắc đến bạn trong một bình luận”.

comment()

ma-doc-hack-facebook-11

 

Đây là một hàm tái tạo truy vấn khi bạn đăng một bình luận. Hãy chú ý vàodòng 258, đây chính là mấu chốt tạo ra thông báo.

Bằng cách sử dụng chuỗi @[User_ID:Name], truy vấn này sẽ thực hiện tag người dùng được chỉ định vào trong một bình luận. Thủ thuật này từng được chia sẻ trên một số trang web hướng dẫn tag bạn bè khi online bằng di động. Để cho dễ hiểu thì nó tương đương với việc bạn gõ @Tên_bạn_bè khi muốn tag ai đó.

Nhưng vấn đề chính là làm sao để trỏ bạn sang một trang web bên ngoài Facebook khi nhấn vào thông báo?

Câu trả lời là hàm trên không tạo ra bình luận trong một trạng thái trực tiếp trên Facebook mà là trên khung bình luận Facebook được nhúng trên các trang web.

Chắc hẳn bạn cũng biết Facebook cung cấp plugin mạng xã hội như nút Like, Share và Comment chứ? Vâng, đây chính là thứ đã tạo ra cái thông báo dẫn bạn tới một trang web khác!

ma-doc-hack-facebook-12

Ban đầu tôi cũng từng nghĩ rằng nó là bug của Facebook, nào ai ngờ đâu mã độc này dựa trên chính plugin do Facebook cung cấp.

 

Tổng kết

Một tin vui là Extension hiện đã được gỡ bỏ khỏi Google Chrome do tính chất lạm dụng.

Tuy nhiên nếu muốn an toàn hơn thì các bạn có thể thêm 2 dòng sau vào tập tin Hosts.

vuronibugun.xyz 127.0.0.1
userxxwwd.xyz 127.0.0.1

 

Hãy chia sẻ cho bạn bè nếu thấy có ích!

 

Theo: blog j2team

Rate this post