Trong hai phần đầu của loạt bài giới thiệu về các tấn công man-in-the-middle này, chúng tôi đã giới thiệu cho các bạn về tấn công giả mạo ARP cache, giả mạo DNS. Như những gì chúng tôi đã giới thiệu trong các ví dụ đó, các tấn công MITM ra rất hiệu quả và rất khó bị phát hiện. Tuy nhiên trong phần ba của loạt bài này, chúng tôi sẽ giới thiệu thêm cho các bạn một cách tấn công mới, đó là tấn công chiếm quyền điều khiển session. Cũng như trong hai phần trước, chúng tôi sẽ giới thiệu một số lý thuyết và cách thức thực hiện tấn công cũng như cách phát hiện và biện pháp phòng chống.
Chiếm quyền điều khiển Session
Thuật ngữ chiếm quyền điều khiển session (session hijacking) chứa đựng một loạt các tấn công khác nhau. Nhìn chung, các tấn công có liên quan đến sự khai thác session giữa các thiết bị đều được coi là chiếm quyền điều khiển session. Khi đề cập đến một session, chúng ta sẽ nói về kết nối giữa các thiết bị mà trong đó có trạng thái đàm thoại được thiết lập khi kết nối chính thức được tạo, kết nối này được duy trì và phải sử dụng một quá trình nào đó để ngắt nó. Khi nói về các session, lý thuyết có đôi chút lộn xộn, chính vì vậy chúng ta hãy xem xét một session theo một cảm nhận thực tế hơn.
Trong bài này chúng tôi sẽ giới thiệu cho các bạn về hành động chiếm quyền điều khiển session có liên quan đến các session HTTP. Nếu để ý một số website mà bạn truy cập có yêu cầu thông tin đăng nhập thì chúng chính là các ví dụ tuyệt vời cho các kết nối hướng session. Bạn phải được thẩm định bởi website bằng username và password để thiết lập session, sau đó website sẽ duy trì một số hình thức kiểm tra session để bảo đảm bạn vẫn được đăng nhập và được phép truy cập tài nguyên (thường được thực hiện bằng một cookie), khi session kết thúc, các chứng chỉ username và password sẽ được xóa bỏ và đó cũng là khi session hết hiệu lực. Đây là một ví dụ cụ thể về session mà mặc dù chúng ta không phải lúc nào cũng nhận ra nó, các session sẽ xuất hiện liên tục và hầu hết sự truyền thông đều dựa vào một số hình thức của session hoặc hành động dựa trên trạng thái.
Hình 1: Một Session bình thường
Như những gì chúng ta thấy trong các tấn công trước, không có thứ gì khi đi qua mạng được an toàn, và dữ liệu session cũng không có gì khác biệt. Nguyên lý ẩn phía sau hầu hết các hình thức chiếm quyền điều khiển session là nếu có thể chặn phần nào đó dùng để thiết lập một session, khi đó bạn có thể sử dụng dữ liệu đó để thủ vai một trong số những thành phần có liên quan trong truyền thông và từ đó có thể truy cập các thông tin session. Ví dụ trên của chúng tôi có nghĩa rằng nếu chúng ta capture cookie được sử dụng để duy trì trạng thái session giữa trình duyệt của bạn và website mà bạn đang đăng nhập vào, thì chúng ta có thể trình cookie đó với máy chủ web và thủ vai kết nối của bạn. Đứng trên quan điểm của những kẻ tấn công thì điều này quả là thú vị.
Như những gì chúng ta thấy trong các tấn công trước, không có thứ gì khi đi qua mạng được an toàn, và dữ liệu session cũng không có gì khác biệt. Nguyên lý ẩn phía sau hầu hết các hình thức chiếm quyền điều khiển session là nếu có thể chặn phần nào đó dùng để thiết lập một session, khi đó bạn có thể sử dụng dữ liệu đó để thủ vai một trong số những thành phần có liên quan trong truyền thông và từ đó có thể truy cập các thông tin session. Ví dụ trên của chúng tôi có nghĩa rằng nếu chúng ta capture cookie được sử dụng để duy trì trạng thái session giữa trình duyệt của bạn và website mà bạn đang đăng nhập vào, thì chúng ta có thể trình cookie đó với máy chủ web và thủ vai kết nối của bạn. Đứng trên quan điểm của những kẻ tấn công thì điều này quả là thú vị.
Hình 2: Chiếm quyền điều khiển
Giờ đây chúng ta đã có một chút lý thuyết, hãy đi tìm hiểu sâu một ví dụ thực tế.
Đánh cắp Cookies bằng Hamster và Ferret
Trong kịch bản thực tiễn của mà chúng tôi đưa ra, chúng ta sẽ thực hiện một tấn công chiếm quyền điều khiển session bằng cách chặn sự truyền thông của một người dùng đang đăng nhập vào tài khoản Gmail của anh ta. Sử dụng sự truyền thông bị chặn này, chúng ta sẽ thủ vai người dùng đó và truy cập vào tài khoản từ máy tính đang tấn công của mình.
Để thực hiện được tấn công này, chúng ta sẽ sử dụng hai công cụ có tên Hamster và Ferret. Bạn có thể download cả hai công cụ này tại đây (http://hamster.erratasec.com/).
Ngoài ra bạn có thể download và sử dụng Backtrack 4. BT4 là một phân phối live-CD của Linux, được thiết kế chuyên cho việc hack và test quá trình thâm nhập bởi các công cụ đã được biên dịch và cài đặt trước, Hamster/Ferret là hai trong số đó. Bạn có thể download BT4 tại đây (http://www.backtrack-linux.org/). Sau đó sẽ tìm Hamster trong thư mục /pentest/sniffers/hamster. Các hình ảnh ví dụ được sử dụng trong phần dưới của hướng dẫn này được lấy từ BT4.
Bước đầu tiên có liên quan đến trong hình thức chiếm quyền điều khiển session này là capture lưu lượng của một người dùng là nạn nhân khi anh ta duyệt Facebook. Lưu lượng này có thể được capture bằng bất cứ ứng dụng “đánh hơi” dữ liệu nào, chẳng hạn như TCPDump hoặc Wireshark, tuy nhiên để capture đúng các gói dữ liệu, bạn sẽ cần sử dụng kỹ thuật như giả mạo ARP cache (đã được giới thiệu trong phần đầu tiên của loạt bài này).
Giờ đây chúng ta đã có một chút lý thuyết, hãy đi tìm hiểu sâu một ví dụ thực tế.
Đánh cắp Cookies bằng Hamster và Ferret
Trong kịch bản thực tiễn của mà chúng tôi đưa ra, chúng ta sẽ thực hiện một tấn công chiếm quyền điều khiển session bằng cách chặn sự truyền thông của một người dùng đang đăng nhập vào tài khoản Gmail của anh ta. Sử dụng sự truyền thông bị chặn này, chúng ta sẽ thủ vai người dùng đó và truy cập vào tài khoản từ máy tính đang tấn công của mình.
Để thực hiện được tấn công này, chúng ta sẽ sử dụng hai công cụ có tên Hamster và Ferret. Bạn có thể download cả hai công cụ này tại đây (http://hamster.erratasec.com/).
Ngoài ra bạn có thể download và sử dụng Backtrack 4. BT4 là một phân phối live-CD của Linux, được thiết kế chuyên cho việc hack và test quá trình thâm nhập bởi các công cụ đã được biên dịch và cài đặt trước, Hamster/Ferret là hai trong số đó. Bạn có thể download BT4 tại đây (http://www.backtrack-linux.org/). Sau đó sẽ tìm Hamster trong thư mục /pentest/sniffers/hamster. Các hình ảnh ví dụ được sử dụng trong phần dưới của hướng dẫn này được lấy từ BT4.
Bước đầu tiên có liên quan đến trong hình thức chiếm quyền điều khiển session này là capture lưu lượng của một người dùng là nạn nhân khi anh ta duyệt Facebook. Lưu lượng này có thể được capture bằng bất cứ ứng dụng “đánh hơi” dữ liệu nào, chẳng hạn như TCPDump hoặc Wireshark, tuy nhiên để capture đúng các gói dữ liệu, bạn sẽ cần sử dụng kỹ thuật như giả mạo ARP cache (đã được giới thiệu trong phần đầu tiên của loạt bài này).
Hình 3: Capture lưu lượng người dùng đang duyệt Gmail
Khi đã capture lưu lượng của nạn nhân khi người này đang duyệt đến Gmail, bạn cần lưu file đã capture vào thư mục Hamster. Với mục đích ví dụ, chúng tôi đã đặt tên file là victim_gmail.pcap. Khi file đó được đặt đúng chỗ, chúng ta sẽ sử dụng Ferret để xử lý file. Điều này được thực hiện bằng cách duyệt đến thư mục Hamster và chạy lệnh, ferret –r victim_gmail.pcap. Ferret sẽ xử lý file và tạo một file hamster.txt có thể được sử dụng bởi Hamster để chiếm quyền điều khiển một session.
Hình 4: Xử lý file capture bằng Ferret
Với dữ liệu HTTP đã chặn và đã chuẩn bị để sử dụng, chúng ta có thể sử dụng Hamster để thực thi tấn công. Bản thân Hamster sẽ làm việc như một proxy để cung cấp giao diện cho việc duyệt và sử dụng các session cookie đánh cắp. Để bắt đầu Hamster proxy, bạn có thể thực thi Hamster mà không cần các tùy chọn dòng lệnh.
Hình 5: Khởi chạy Hamster
Khi thực thi, bạn cần mở trình duyệt của mình và cấu hình các thiết lập proxy của nó sao cho tương ứng với các thiết lập được cung cấp bởi đầu ra Hamster. Mặc định, điều này có nghĩa bạn sẽ cấu hình các thiết lập proxy của mình để sử dụng địa chỉ loopback nội bộ 127.0.0.1 trên cổng 1234. Bạn có thể truy cập các thiết lập này trong Internet Explorer bằng cách chọn Tools, Internet Options, Connections, LAN Settings, và tích vào hộp kiểm “Use a proxy server for your LAN”.
Hình 6: Cấu hình các thiết lập proxy để sử dụng với Hamster
Lúc này các thiết lập proxy sẽ được sử dụng và bạn có thể truy cập giao diện điều khiển Hamster trong trình duyệt của mình bằng cách duyệt đến http://hamster. Hamster sẽ sử dụng file được tạo bởi Ferret để tạo danh sách các địa chỉ IP cho người mà thông tin session của họ bị chặn và hiển thị các địa chỉ IP đó ở panel bên phải trình duyệt. File mà chúng ta tạo chỉ chứa một địa chỉ IP của nạn nhân, vì vậy nếu kích vào panel bên trái, chúng ta sẽ populate (định cư) các session cho việc chiếm quyền.
Hình 7: Hamster GUI
Chúng ta sẽ thấy facebook.com được liệt kê ở đây, nếu kích vào liên kết đó, bạn sẽ thấy một cửa sổ mới đã đăng nhập vào tài khoản Facebook nạn nhân!
Hình 8: Chiếm quyền điều khiển thành công một tài khoản Gmail
Cách chống tấn công chiếm quyền điều khiển Session
Do có nhiều hình thức chiếm quyền điều khiển session khác nhau nên cách thức phòng chống cũng cần thay đổi theo chúng. Giống như các tấn công MITM khác mà chúng ta đã đánh giá, tấn công chiếm quyền điều khiển session khó phát hiện và thậm chí còn khó khăn hơn trong việc phòng chống vì nó phần lớn là tấn công thụ động. Trừ khi người dùng mã độc thực hiện một số hành động rõ ràng khi anh ta truy cập session đang bị chiếm quyền điều khiển, bằng không bạn có thể sẽ không bao giờ biết tấn công đó đang diễn ra. Đây là một số thứ mà bạn có thể thực hiện để phòng chống tấn công này:
Tuy cập ngân hàng trực tuyến tại nhà – Cơ hội để ai đó có thể chặn lưu lượng của bạn trên mạng gia đình ít hơn nhiều so với mạng ở nơi làm việc. Điều này không phải vì máy tính ở nhà của bạn thường an toàn hơn, mà vấn đề là bạn chỉ có một hoặc hai máy tính tại nhà, hầu hết chỉ phải lo lắng về tấn công chiếm quyền điều khiển session nếu con bạn đã hơn 14 tuổi và đã bắt đầu xem các đoạn video hacking trên YouTube rồi từ đó học và làm theo. Trên mạng công ty, bạn không biết những gì đang diễn ra bên dưới tiền sảnh hoặc trong văn phòng chi nhánh cách đó 200 dặm, vì vậy nguồn tấn công tiềm ẩn là rất nhiều. Cần biết rằng một trong những mục tiêu lớn nhất của tấn công chiếm quyền điều khiển session là tài khoản ngân hàng trực tuyến, tuy nhiên ngoài ra nó còn được áp dụng cho mọi thứ.
Cần có sự hiểu biết về tấn công – Những kẻ tấn công tinh vi, kể cả đến các hacker dày dạn nhất cũng vẫn có thể mắc lỗi và để lại dấu vết đã tấn công bạn. Việc biết thời điểm nào bạn bị đăng nhập vào các dịch vụ dựa trên session có thể giúp bạn xác định được rằng liệu có ai đó đang rình rập mình hay không. Do đó nhiệm vụ của bạn là cần phải canh trừng mọi thứ, quan tâm đến thời gian đăng nhập gần nhất để bảo đảm mọi thứ vẫn diễn ra tốt đẹp.
Bảo mật tốt cho các máy tính bên trong – Các tấn công này thường được thực thi từ bên trong mạng. Do đó nếu các thiết bị mạng của bạn an toàn thì cơ hội cho kẻ tấn công thỏa hiệp được các host bên trong mạng của bạn sẽ ít đi, và từ đó giảm được nguy cơ tấn công chiếm quyền điều khiển session.
Kết luận
Cho đến đây chúng tôi đã giới thiệu cho các bạn ba kiểu tấn công MITM rất nguy hiểm có thể gây ra những hậu quả nghiêm trọng nếu chúng được thực hiện thành công. Các bạn cần phải biết rằng, sử dụng kiểu tấn công chiếm quyền điều khiển session, kẻ tấn công với những ý định xấu có thể truy cập vào tài khoản ngân hàng trực tuyến, email của người dùng hoặc thậm chí cả các ứng dụng nhậy cảm trong mạng nội bộ. Trong phần tiếp theo của loạt bài này, chúng tôi sẽ giới thiệu cho các bạn một tấn công MITM nguy hiểm khác, giả mạo SSL.
Không có nhận xét nào:
Đăng nhận xét