Kỹ thuật tấn công lừa đảo bằng File .ics của Calendar

djzz5dP
PVrJTTF Chú ếch ngốc nghếch

.ics là gì vậy?

tQskr10 Jos Hoàng Tiên

.ics là đuôi mở rộng của tệp tin calendar, nó tích hợp các lịch, ghi chú lịch vào thiết bị.

Tính tương thích của file ics

Mình phát hiện ra rằng kỹ thuật này sẽ hoạt động trên tất cả các nhà cung cấp dịch vụ email phổ biến nhất (ví dụ: Google Workspace, O365), nếu mở trên Android hay iOS nó sẽ tích hợp vào Lịch của điện thoại. Nhưng nó hoạt động tốt hơn trên các mục tiêu của Google do cách Google hiển thị các tệp đính kèm .ics. Do đó, ví dụ minh họa dưới đây sẽ chỉ hướng đến mục tiêu là Google.

Quy trình tấn công

Có thể hiểu quy trình tấn công bằng file ics thế này, Hacker sẽ lừa bạn mở file ics lên, và khi đó các nội dung đã được lên lịch như cuộc họp, ghi chú sẽ được tích hợp vào Lịch trên thiết bị của bạn, đến ngày/tháng được lên lịch nó sẽ hiện thông báo lên và khi bạn mở thông báo ra nó sẽ chuyển link qua trang Web độc hại hoặc tải mã độc xuống máy của bạn.

Tải mẫu .ics

Cách dễ nhất để tải tệp .ics là tạo lời mời trên Google Calendar từ tài khoản Gmail này sang tài khoản Gmail khác và sau đó tải xuống tệp đính kèm email invite.ics.

rNXw8i1

Đăng nhập vào email khác, nhấp vào lời mời qua email và tải xuống tệp invite.ics.

hzAbj0N
b9FGfCE
LSdbiwq

Bây giờ chúng ta đã có tệp .ics để giả mạo nó.

Giả mạo

Mở tệp invite.ics bằng trình soạn thảo văn bản. Bạn sẽ thấy mỗi dòng ở định dạng key: value. Xóa dòng bắt đầu bằng UID.

JavaScript
# Xóa dòng này
UID:59umvk1cmeq4vvr3qbh3qrof8c@google.com

Bây giờ bạn có thể bắt đầu giả mạo danh bạ. Người tổ chức có thể bị giả mạo bằng cách sửa đổi giá trị CN= như dưới đây.

JavaScript
ORGANIZER;CN=spoof@company.com:mailto:mrd0x@hotmail.com

Đối với những người tham dự, bạn có thể thêm bao nhiêu tùy thích và sửa đổi lại giá trị CN= và đó là email mà người dùng sẽ nhìn thấy.

JavaScript
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=fakeattendee@company.com;X-NUM-GUESTS=0:mailto:lol@gmail.com

Buộc người tham dự chấp nhận lời mời

Mọi người tham dự đều có khóa PARTSTAT=. Chỉ cần đặt nó thành PARTSTAT=ACCEPTED, nó sẽ xuất hiện như thể những người tham dự đã chấp nhận lời mời.

Thêm ảnh hồ sơ

Địa chỉ mailto: của người tham dự có thể là một email khác mà bạn sở hữu hoặc một email ngẫu nhiên. Đặc quyền của việc dùng email mà bạn sở hữu là bạn có thể đăng nhập vào tài khoản đó và tải lên ảnh hồ sơ của người mà bạn muốn giả danh.

Ví dụ: nếu một trong những người tham dự có CN=johnathan@company.com và mailto:mrd0x@gmail.com. Mình có thể tải ảnh của Johnathan lên địa chỉ mrd0x@gmail.com và đó là những gì người dùng sẽ thấy trong lời mời.

Lưu ý quan trọng

Đảm bảo rằng địa chỉ mailto: của người tổ chức là một email không phải của Google (không phải Gmail hoặc Google Workspace). Vì một số lý do nếu đó là email của Google, các nút “Yes/Maybe/No” không được bao gồm trong email. Đối với ví dụ này, mình sẽ sử dụng tài khoản Hotmail.

Tiêu đề Calendar và thời gian

Bạn có thể thay đổi tiêu đề calendar bằng cách sửa đổi khóa Summary: trong tệp .ics.

Bạn có thể sửa đổi thời gian bằng DTSTART: và DTEND:.

Tóm tắt quá trình

Mình sẽ tóm tắt lại các bước trong trường hợp bạn không hình dung được. Mình giả định rằng mình đã tải xuống tệp invite.ics.

Bước 1

Xóa dòng bắt đầu bằng UID trong tệp .ics.

Bước 2

Đánh lừa người tổ chức và những người tham dự bằng cách sửa đổi các giá trị CN= và mailto:. Đảm bảo giá trị mailto: của người tổ chức là email không phải của Google. Đồng thời đảm bảo rằng bạn đặt PARTSTAT = ACCEPTED cho tất cả những người tham dự ngoại trừ nạn nhân.

JavaScript
ORGANIZER;CN=ceo@company.com:mailto:mrd0x@hotmail.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=
TRUE;CN=victim@gmail.com;X-NUM-GUESTS=0:mailto:victim@gmail.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=
TRUE;CN=ciso@company.com;X-NUM-GUESTS=0:mailto:mrd0x3@hotmail.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=
TRUE;CN=cfo@company.com;X-NUM-GUESTS=0:mailto:mrd0x3@gmail.com

Bước 3

Sửa đổi tiêu đề Calendar thành bất kỳ tên nào bạn muốn.

JavaScript
SUMMARY:Mandatory Company Townhall Meeting

Bước 4

Đảm bảo rằng bạn đã đặt thời gian của lịch mời một cách chính xác. Thời gian hiển thị bên dưới là 2021-11-02 12 giờ trưa – 1 giờ chiều.

JavaScript
DTSTART:20211102T160000Z
DTEND:20211102T170000Z

Bước 5

Soạn email cho nạn nhân và đính kèm tệp .ics. Định dạng tiêu đề của email phải là như sau:

JavaScript
Invitation: CALENDAR-TITLE-HERE @ Wed Nov 2, 2021 12pm - 1pm (EDT) (ORGANIZER@SPOOFED.com)

Bước 6 – Tùy chọn

Thêm liên kết Google Meet vào nội dung email vì Google tách liên kết Google Meet trong tệp .ics.

UkDfMvv

Kết quả

Như mong đợi, người dùng nhìn thấy những tên giả mạo mà bạn đã ghi.

OFL7mK1

Và cả hai người dùng giả mạo đều đã chấp nhận cuộc họp.

A1VeTgG

Bằng cách di chuột qua các tên trên Google Calendar, mailto:email sẽ xuất hiện, vì vậy hãy cố gắng đặt nó thành một địa chỉ gần giống với email giả mạo.

Ví dụ: CN=johnathan@company.com và mailto: johnathan@gmail.com

kconUzP

Đăng nhận xét

Mới hơn Cũ hơn