kết quả từ 1 tới 3 trên 3

Ðề tài: tấn công Man-in-the-Middle – Chiếm quyền điểu khiển Session

  1. #1
    Tham gia ngày
    Sep 2008
    Đến từ
    Thiền viện Trúc Lâm
    Bài gởi
    1,332
    Thanks
    333
    Được cảm ơn 953 lần trong 392 bài viết

    Default tấn công Man-in-the-Middle – Chiếm quyền điểu khiển Session

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

    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.
    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. 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.
    Theo Windowsecurity


  2. #2
    Tham gia ngày
    Sep 2008
    Đến từ
    Thiền viện Trúc Lâm
    Bài gởi
    1,332
    Thanks
    333
    Được cảm ơn 953 lần trong 392 bài viết

    Default

    Trong bài này chúng tôi sẽ tiếp tục giới thiệu cho các bạn về các tấn công Man-in-the-Middle, cụ thể là sẽ tập trung vào giới thiệu một loại tấn công MITM khác mang tên giả mạo DNS. Trong phần đầu của loạt bài này, chúng tôi đã giới thiệu cho các bạn về truyền thông ARP và ARP cache của một thiết bị có thể bị giả mạo như thế nào để redirect lưu lượng mạng của các máy tính qua một máy khác với ý mục đích xấu. Trong bài này, chúng tôi giới thiệu cho các bạn về một kiểu tấn công MITM khác, giả mạo DNS (DNS Spoofing). Nếu chưa đọc phần giả mạo ARP Cache, các bạn nên quay lại và đọc qua nó trước vì bài viết này sẽ sử dụng một số kỹ thuật mà chúng tôi đã giới thiệu trong bài đó.
    Giả mạo DNS
    Giả mạo DNS là một kỹ thuật MITM được sử dụng nhằm cung cấp thông tin DNS sai cho một host để khi người dùng duyệt đến một địa chỉ nào đó, ví dụ, www.bankofamerica.com có IP XXX.XX.XX.XX, thì cố gắng này sẽ được gửi đến một địa chỉ www.bankofamerica.com giả mạo cư trú ở địa chỉ IP YYY.YY.YY.YY, đây là địa chỉ mà kẻ tấn công đã tạo trước để đánh cắp các thông tin tài khoản ngân hàng trực tuyến từ người dùng. Tấn công này có thể thực hiện khá dễ dàng và trong bài này chúng ta sẽ đi nghiên cứu cách làm việc của nó, cách nó thực hiện tấn công thế nào và cuối cùng là cách chống trả ra sao.
    Truyền thông DNS
    Giao thức Domain Naming System (DNS) như được định nghĩa trong RFC 1034/1035 có thể được xem như là một trong những giao thức quan trọng nhất được sử dụng trong Internet. Nói ngắn ngọn để dễ hiểu, bất cứ khi nào bạn đánh một địa chỉ web chẳng hạn như http://www.google.com vào trình duyệt, yêu cầu DNS sẽ được đưa đến máy chủ DNS để tìm ra địa chỉ IP tương xứng với tên miền mà bạn vừa nhập. Các router và các thiết bị kết nối Internet sẽ không hiểu google.com là gì, chúng chỉ hiểu các địa chỉ chẳng hạn như 74.125.95.103.
    Máy chủ DSN làm việc bằng cách lưu một cơ sở dữ liệu các entry (được gọi là bản ghi tài nguyên) địa chỉ IP để bản đồ hóa tên DNS, truyền thông các bản ghi tài nguyên đó đến máy khách và đến máy chủ DNS khác. Kiến trúc máy chủ DNS trong toàn doanh nghiệp và Internet là một thứ khá phức tạp. Như một vấn đề của thực tế, bạn có thể hình dung chúng như các quyển sổ chuyên dụng cho kiến trúc DNS. Chúng tôi sẽ không đi vào giới thiệu các khía cạnh về kiến trúc hay thậm chí các kiểu lưu lượng DNS khác nhau, mà chỉ giới thiệu một phiên giao dịch DNS cơ bản, bạn có thể thấy điều đó trong hình 1.

    Hình 1: Truy vấn và đáp trả DNS
    DNS hoạt động theo hình thức truy vấn và đáp trả (query/response). Một máy khách cần phân giải DNS cho một địa chỉ IP nào đó sẽ gửi đi một truy vấn đến máy chủ DNS, máy chủ DNS này sẽ gửi thông tin được yêu cầu trong gói đáp trả của nó. Đứng trên phối cảnh máy khách, chỉ có hai gói xuất hiện lúc này là truy vấn và đáp trả.

    Hình 2: Các gói truy vấn và đáp trả DNS
    Kịch bản này sẽ có đôi chút phức tạp khi xem xét đến sự hồi quy DNS. Nhờ có cấu trúc thứ bậc DNS của Internet, các máy chủ DNS cần có khả năng truyền thông với nhau để đưa ra câu trả lời cho các truy vấn được đệ trình bởi máy khách. Nếu tất cả đều diễn ra thuận lợi như mong đợi, máy chủ DNS bên trong của chúng ta sẽ biết tên để bản đồ hóa địa chỉ IP cho máy chủ bên trong mạng nội bộ, tuy nhiên không thể mong đợi nó biết địa chỉ tương quan giữa Google hoặc Dell. Đây là nơi sự đệ quy đóng vai trò quan trọng. Sự đệ quy diễn ra khi một máy chủ DNS truy vấn máy chủ DNS khác với tư cách máy khách tạo yêu cầu. Về bản chất, cách thức này sẽ biến một máy chủ DNS thành một máy khách, xem trong hình 3.

    Hình 3: Truy vấn và đáp trả DNS bằng đệ quy
    Giả mạo DNS
    Có nhiều cách để có thể thực hiện vấn đề giả mạo DNS. Chúng tôi sẽ sử dụng một kỹ thuật mang tên giả mạo DNS ID.
    Mỗi truy vấn DNS được gửi qua mạng đều có chứa một số nhận dạng duy nhất, mục đích của số nhận dạng này là để phân biệt các truy vấn và đáp trả chúng. Điều này có nghĩa rằng nếu một máy tính đang tấn công của chúng ta có thể chặn một truy vấn DNS nào đó được gửi đi từ một thiết bị cụ thể, thì tất cả những gì chúng ta cần thực hiện là tạo một gói giả mạo có chứa số nhận dạng đó để gói dữ liệu đó được chấp nhận bởi mục tiêu.
    Chúng ta sẽ hoàn tất quá trình này bằng cách thực hiện hai bước với một công cụ đơn giản. Đầu tiên, chúng ta cần giả mạo ARP cache thiết bị mục tiêu để định tuyến lại lưu lượng của nó qua host đang tấn công của mình, từ đó có thể chặn yêu cầu DNS và gửi đi gói dữ liệu giả mạo. Mục đích của kịch bản này là lừa người dùng trong mạng mục tiêu truy cập vào website độc thay vì website mà họ đang cố gắng truy cập. Để rõ hơn bạn có thể tham khảo thêm hình tấn công bên dưới.

    Hình 4: Tấn công giả mạo DNS bằng phương pháp giả mạo DNS ID
    Có một số công cụ khác có thể được sử dụng để thực hiện hành động giả mạo DNS. Chúng tôi sẽ sử dụng một trong số đó là Ettercap, đây là công cụ có thể sử dụng cho cả Windows và Linux. Bạn có thể download Ettercap về máy của mình tại đây. Nếu tìm hiểu thêm một chút về website này, chắc chắn bạn sẽ thấy rằng Ettercap còn có nhiều chức năng tuyệt vời khác ngoài việc giả mạo DNS và có thể được sử dụng để thực hiện nhiều kiểu tấn công MITM.
    Nếu cài đặt Ettercap trên máy tính Windows, bạn sẽ thấy nó có một giao diện đồ họa người dùng (GUI) khá tuyệt vời, tuy nhiên trong ví dụ này, chúng tôi sẽ sử dụng giao diện dòng lệnh.
    Trước khi thực thi Ettercap, yêu cần bạn cần phải thực hiện một chút cấu hình. Ettercap ở mức lõi của nó là một bộ đánh hơi (sniffer) dữ liệu, nó sử dụng plug-in để thực hiện các tấn công khác nhau. Plug-in dns_spoof là những gì mà chúng ta sẽ thực hiện trong ví dụ này, vì vậy chúng ta phải điều chỉnh file cấu hình có liên quan với plug-in đó. Trên hệ thống Windows, file này có thể download tại C:\Program Files (x86)\EttercapNG\share\etter.dns, và tại /usr/share/ettercap/etter.dns. Đây là mộ file khá đơn giản và có chứa các bản ghi DNS mà bạn muốn giả mạo. Với mục đích thử nghiệm, chúng ta muốn bất cứ người dùng nào đang cố gắng truy cập vào yahoo.com đều bị hướng (direct) đến một host trên mạng nội bộ, hãy thêm một entry được đánh dấu trong hình 5.

    Hình 5: Bổ sung bản ghi DNS giả mạo vào etter.dns
    Các entry này sẽ chỉ dẫn cho plug-in dns_spoof rằng khi thấy truy vấn DNS cho yahoo.com hoặc www.yahoo.com (với một bản ghi tài nguyên kiểu A), nó sẽ sử dụng địa chỉ IP 172.16.16.100 để đáp trả. Trong kịch bản thực, thiết bị tại địa chỉ IP 172.16.16.100 sẽ chạy một phần mềm máy chủ web và hiển thị cho người dùng website giả mạo.
    Khi file này được cấu hình và lưu lại, chúng ta hoàn toàn có thể thực thi chuỗi lệnh dùng để khởi chạy tấn công. Chuỗi lệnh sử dụng các tùy chọn dưới đây:

    • -T – Chỉ định sử dụng giao diện văn bản
    • -q – Chạy các lệnh trong chế độ “yên lặng” để các gói dữ liệu đã được capture không hiển thị trên màn hình.
    • -P dns_spoof – Chỉ định sử dụng plug-in dns_spoof
    • -M arp – Khởi tạo tấn công MITM giả mạo ARP để chặn các gói dữ liệu giữa các host.
    • // // - Chỉ định toàn bộ mạng là mục tiêu tấn công.


    Chuỗi lệnh cuối cùng cho mục đích của chúng ta là:
    Ettercap.exe –T –q –P dns_spoof –M arp // //
    Khi chạy lệnh trên, bạn sẽ bắt đầu một tấn công hai giai đoạn, đầu tiên là giả mạo ARP cache của thiết bị trên mạng, sau đó là phát các đáp trả truy vấn DNS giả mạo.

    Hình 6: Ettercap đang lắng nghe tích cực các truy vấn DNS
    Khi khởi chạy, bất cứ ai đang cố gắng truy cập www.yahoo.com sẽ đều bị redirect đến website mã độc của chúng ta.

    Hình 7: Kết quả cố gắng giả mạo DNS từ phối cảnh người dùng
    Phòng chống giả mạo DNS
    Khá khó phòng chống việc giả mạo DNS vì có khá ít các dấu hiệu tấn công. Thông thường, bạn không hề biết DNS của mình bị giả mạo cho tới khi điều đó xảy ra. Những gì bạn nhận được là một trang web khác hoàn toàn so với những gì mong đợi. Trong các tấn công với chủ đích lớn, rất có thể bạn sẽ không hề biết rằng mình đã bị lừa nhập các thông tin quan trọng của mình vào một website giả mạo cho tới khi nhận được cuộc gọi từ ngân hàng hỏi tại sao bạn lại rút nhiều tiền đến vậy. Mặc dù khó nhưng không phải không có biện pháp nào có thể phòng chống các kiểu tấn công này, đây là một sô thứ bạn cần thực hiện:

    • Bảo vệ các máy tính bên trong của bạn: Các tấn công giống như trên thường được thực thi từ bên trong mạng của bạn. Nếu các thiết bị mạng của an toàn thì sẽ bạn sẽ giảm được khả năng các host bị thỏa hiệp và được sử dụng để khởi chạy tấn công giả mạo.
    • Không dựa vào DNS cho các hệ thống bảo mật: Trên các hệ thống an toàn và có độ nhạy cảm cao, không duyệt Internet trên nó là cách thực hiện tốt nhất để không sử dụng đến DNS. Nếu bạn có phần mềm sử dụng hostname để thực hiện một số công việc của nó thì chúng cần phải được điều chỉnh những gì cần thiết trong file cấu hình thiết bị.
    • Sử dụng IDS: Một hệ thống phát hiện xâm nhập, khi được đặt và triển khai đúng, có thể vạch mặt các hình thức giả mạo ARP cache và giả mạo DNS.
    • Sử dụng DNSSEC: DNSSEC là một giải pháp thay thế mới cho DNS, sử dụng các bản ghi DNS có chữ ký để bảo đảm sự hợp lệ hóa của đáp trả truy vấn. Tuy DNSSEC vẫn chưa được triển khải rộng rãi nhưng nó đã được chấp thuận là “tương lai của DNS”.

    Kết luận
    Giả mạo DNS là một hình thức tấn công MITM khá nguy hiểm khi được đi cặp với những dự định ác độc. Sử dụng công nghệ này những kẻ tấn công có thể tận dụng các kỹ thuật giả mạo để đánh cắp các thông tin quan trọng của người dùng, hay cài đặt malware trên một ổ đĩa bị khai thác, hoặc gây ra một tấn công từ chối dịch vụ. Trong phần tiếp theo của loạt bài này, chúng tôi sẽ giới thiệu tiếp cho các bạn về các tấn công “pass the hash” và tấn công này có thể được sử dụng như thế nào để đăng nhập vào các máy tính Windows mà không cần đến các mật khẩu người dùng.



  3. #3
    Tham gia ngày
    Sep 2008
    Đến từ
    Thiền viện Trúc Lâm
    Bài gởi
    1,332
    Thanks
    333
    Được cảm ơn 953 lần trong 392 bài viết

    Default

    rong phần đầu tiên của loạt bài giới thiệu về một số hình thức tấn công MITM hay được sử dụng nhất, chúng tôi sẽ giới thiệu cho các bạn về tấn công giả mạo ARP Cache, DNS Spoofing, chiếm quyền điều khiển (hijacking) HTTP session,.. Giới thiệu
    Một trong những tấn công mạng thường thấy nhất được sử dụng để chống lại những cá nhân và các tổ chức lớn chính là các tấn công MITM (Man in the Middle). Có thể hiểu nôm na về kiểu tấn công này thì nó như một kẻ nghe trộm. MITM hoạt động bằng cách thiết lập các kết nối đến máy tính nạn nhân và relay các message giữa chúng. Trong trường hợp bị tấn công, nạn nhân cứ tin tưởng là họ đang truyền thông một cách trực tiếp với nạn nhân kia, trong khi đó sự thực thì các luồng truyền thông lại bị thông qua host của kẻ tấn công. Và kết quả là các host này không chỉ có thể thông dịch dữ liệu nhạy cảm mà nó còn có thể gửi xen vào cũng như thay đổi luồng dữ liệu để kiểm soát sâu hơn những nạn nhân của nó.
    Trong loạt bài này, chúng tôi sẽ giải thích một số hình thức tấn công MITM hay được sử dụng nhất, chẳng hạn như tấn công giả mạo ARP Cache, DNS Spoofing, chiếm quyền điều khiển (hijacking) HTTP session,.. Như những gì bạn thấy trong thế giới thực, hầu hết các máy tính nạn nhân đều là các máy tính Windows. Với lý do đó, loạt bài này chúng tôi sẽ tập trung toàn bộ vào những khai thác MITM trên các máy tính đang chạy hệ điều hành Windows. Có thể tấn công sẽ được thực hiện từ các máy tính Windows. Tuy nhiên trong một số trường hợp, khi không có công cụ nào cho các tấn công hiện diện, chúng tôi sẽ sử dụng Backtrack Linux 4, có thể download dưới dạng một live-CD hoặc một máy ảo tại đây.
    Giả mạo ARP Cache (ARP Cache Poisoning)
    Trong phần đầu tiên của loạt bài này, chúng tôi sẽ giới thiệu cho các bạn về việc giả mạo ARP cache. Đây là một hình thức tấn công MITM hiện đại có xuất sứ lâu đời nhất (đôi khi còn được biết đến với cái tên ARP Poison Routing), tấn công này cho phép kẻ tấn công (nằm trên cùng một subnet với các nạn nhân của nó) có thể nghe trộm tất cả các lưu lượng mạng giữa các máy tính nạn nhân. Chúng tôi đã chọn đây là tấn công đầu tiên cần giới thiệu vì nó là một trong những hình thức tấn công đơn giản nhất nhưng lại là một hình thức hiệu quả nhất khi được thực hiện bởi kẻ tấn công.
    Truyền thông ARP thông thường
    Giao thức ARP được thiết kế để phục vụ cho nhu cầu thông dịch các địa chỉ giữa các lớp thứ hai và thứ ba trong mô hình OSI. Lớp thứ hai (lớp data-link) sử dụng địa chỉ MAC để các thiết bị phần cứng có thể truyền thông với nhau một cách trực tiếp. Lớp thứ ba (lớp mạng), sử dụng địa chỉ IP để tạo các mạng có khả năng mở rộng trên toàn cầu. Lớp data-link xử lý trực tiếp với các thiết bị được kết nối với nhau, còn lớp mạng xử lý các thiết bị được kết nối trực tiếp và không trực tiếp. Mỗi lớp có cơ chế phân định địa chỉ riêng, và chúng phải làm việc với nhau để tạo nên một mạng truyền thông. Với lý do đó, ARP được tạo với RFC 826, “một giao thức phân định địa chỉ Ethernet - Ethernet Address Resolution Protocol”.

    Hình 1: Quá trình truyền thông ARP
    Thực chất trong vấn đề hoạt động của ARP được tập trung vào hai gói, một gói ARP request và một gói ARP reply. Mục đích của request và reply là tìm ra địa chỉ MAC phần cứng có liên quan tới địa chỉ IP đã cho để lưu lượng có thể đến được đích của nó trong mạng. Gói request được gửi đến các thiết bị trong đoạn mạng, trong khi gửi nó nói rằng (đây chỉ là nhân cách hóa để giải thích theo hướng dễ hiểu nhất) “Hey, địa chỉ IP của tôi là XX.XX.XX.XX, địa chỉ MAC của tôi là XX:XX:XX:XX:XX:XX. Tôi cần gửi một vài thứ đến một người có địa chỉ XX.XX.XX.XX, nhưng tôi không biết địa chỉ phần cứng này nằm ở đâu trong đoạn mạng của mình. Nếu ai đó có địa chỉ IP này, xin hãy đáp trả lại kèm với địa chỉ MAC của mình!” Đáp trả sẽ được gửi đi trong gói ARP reply và cung cấp câu trả lời, “Hey thiết bị phát. Tôi là người mà bạn đang tìm kiếm với địa chỉ IP là XX.XX.XX.XX. Địa chỉ MAC của tôi là XX:XX:XX:XX:XX:XX.” Khi quá trình này hoàn tất, thiết bị phát sẽ cập nhật bảng ARP cache của nó và hai thiết bị này có thể truyền thông với nhau.
    Việc giả mạo Cache
    Việc giả mạo bảng ARP chính là lợi dụng bản tính không an toàn của giao thức ARP. Không giống như các giao thức khác, chẳng hạn như DNS (có thể được cấu hình để chỉ chấp nhận các nâng cấp động khá an toàn), các thiết bị sử dụng giao thức phân giải địa chỉ (ARP) sẽ chấp nhận nâng cấp bất cứ lúc nào. Điều này có nghĩa rằng bất cứ thiết bị nào có thể gửi gói ARP reply đến một máy tính khác và máy tính này sẽ cập nhật vào bảng ARP cache của nó ngay giá trị mới này. Việc gửi một gói ARP reply khi không có request nào được tạo ra được gọi là việc gửi ARP “vu vơ”. Khi các ARP reply vu vơ này đến được các máy tính đã gửi request, máy tính request này sẽ nghĩ rằng đó chính là đối tượng mình đang tìm kiếm để truyền thông, tuy nhiên thực chất họ lại đang truyền thông với một kẻ tấn công.


    Hình 2: Chặn truyền thông bằng các giả mạo ARP Cache
    Sử dụng Cain & Abel
    Hãy để chúng tôi đưa ra một kịch bản và xem xét nó từ góc độ lý thuyết đến thực tế. Có một vài công cụ có thể thực hiện các bước cần thiết để giả mạo ARP cache của các máy tính nạn nhân. Chúng tôi sẽ sử dụng công cụ bảo mật khá phổ biến mang tên Cain & Abel của Oxid.it. Cain & Abel thực hiện khá nhiều thứ ngoài vấn đề giả mạo ARP cache, nó là một công cụ rất hữu dụng cần có trong kho vũ khí của bạn. Việc cài đặt công cụ này khá đơn giản.
    Trước khi bắt đầu, bạn cần lựa chọn một số thông tin bổ sung. Cụ thể như giao diện mạng muốn sử dụng cho tấn công, hai địa chỉ IP của máy tính nạn nhân.
    Khi lần đầu mở Cain & Abel, bạn sẽ thấy một loạt các tab ở phía trên cửa sổ. Với mục đích của bài, chúng tôi sẽ làm việc trong tab Sniffer. Khi kích vào tab này, bạn sẽ thấy một bảng trống. Để điền vào bảng này bạn cần kích hoạt bộ sniffer đi kèm của chương trình và quét các máy tính trong mạng của bạn.

    Hình 3: Tab Sniffer của Cain & Abel
    Kích vào biểu tượng thứ hai trên thanh công cụ, giống như một card mạng. Thời gian đầu thực hiện, bạn sẽ bị yêu cầu chọn giao diện mà mình muốn sniff (đánh hơi). Giao diện cần phải được kết nối với mạng mà bạn sẽ thực hiện giả mạo ARP cache của mình trên đó. Khi đã chọn xong giao diện, kích OK để kích hoạt bộ sniffer đi kèm của Cain & Abel. Tại đây, biểu tượng thanh công cụ giống như card mạng sẽ bị nhấn xuống. Nếu không, bạn hãy thực hiện điều đó. Để xây dựng một danh sách các máy tính hiện có trong mạng của bạn, hãy kích biểu tượng giống như ký hiệu (+) trên thanh công cụ chính và kích OK.

    Hình 4: Quét các thiết bị trong mạng
    Những khung lưới trống rỗng lúc này sẽ được điền đầy bởi một danh sách tất cả các thiết bị trong mạng của bạn, cùng với đó là địa chỉ MAC, IP cũng như các thông tin nhận dạng của chúng. Đây là danh sách bạn sẽ làm việc khi thiết lập giả mạo ARP cache.
    Ở phía dưới cửa sổ chương trình, bạn sẽ thấy một loạt các tab đưa bạn đến các cửa sổ khác bên dưới tiêu đề Sniffer. Lúc này bạn đã xây dựng được danh sách các thiết bị của mình, nhiệm vụ tiếp theo của bạn là làm việc với tab APR. Chuyển sang cửa sổ APR bằng cách kích tab.
    Khi ở trong cửa sổ APR, bạn sẽ thấy hai bảng trống rỗng: một bên phía trên và một phía dưới. Khi thiết lập chúng, bảng phía trên sẽ hiển thị các thiết bị có liên quan trong giả mạo ARP cache và bảng bên dưới sẽ hiển thị tất cả truyền thông giữa các máy tính bị giả mạo.
    Tiếp tục thiết lập sự giả mạo ARP bằng cách kích vào biểu tượng giống như dấu (+) trên thanh công cụ chuẩn của chương trình. Cửa sổ xuất hiện có hai cột đặt cạnh nhau. Phía bên trái, bạn sẽ thấy một danh sách tất cả các thiết bị có sẵn trong mạng. Kích địa chỉ IP của một trong những nạn nhân, bạn sẽ thấy các kết quả hiện ra trong cửa sổ bên phải là danh sách tất cả các host trong mạng, bỏ qua địa chỉ IP vừa chọn. Trong cửa sổ bên phải, kích vào địa chỉ IP của nạn nhân khác và kích OK.

    Hình 5: Chọn thiết bị nạn nhân của việc giả mạo
    Các địa chỉ IP của cả hai thiết bị lúc này sẽ được liệt kê trong bảng phía trên của cửa sổ ứng dụng chính. Để hoàn tất quá trình, kích vào ký hiệu bức xạ (vàng đen) trên thanh công cụ chuẩn. Điều đó sẽ kích hoạt các tính năng giả mạo ARP cache của Cain & Abel và cho phép hệ thống phân tích của bạn trở thành người nghe lén tất cả các cuột truyền thông giữa hai nạn nhân. Nếu bạn muốn thấy những gì đang diễn ra sau phông này, hãy cài đặt Wireshark và lắng nghe từ giao diện khi bạn kích hoạt giả mạo. Bạn sẽ thấy lưu lượng ARP đến hai thiết bị và ngay lập tức thấy sự truyền thông giữa chúng.

    Hình 6: Chèn lưu lượng ARP
    Khi kết thúc, hãy kích vào ký hiệu bức xạ (vàng đen) lần nữa để ngừng hành động giả mạo ARP cache.

    Biện pháp phòng chống
    Nghiên cứu quá trình giả mạo ARP cache từ quan điểm của người phòng chống, chúng ta có một chút bất lợi. Quá trình ARP xảy ra trong chế độ background nên có rất ít khả năng có thể điều khiển trực tiếp được chúng. Không có một giải pháp cụ thể nào, tuy nhiên chúng ta vẫn cần những lập trường đi tiên phong và phản ứng trở lại nếu bạn lo lắng đến vấn đề giả mạo ARP cache trong mạng của mình.
    Bảo mật LAN
    Giả mạo ARP Cache chỉ là một kỹ thuật tấn công mà nó chỉ sống sót khi cố gắng chặn lưu lượng giữa hai thiết bị trên cùng một LAN. Chỉ có một lý do khiến cho bạn lo sợ về vấn đề này là liệu thiết bị nội bộ trên mạng của bạn có bị thỏa hiệp, người dùng tin cậy có ý định hiểm độc hay không hoặc liệu có ai đó có thể cắm một thiết bị không tin cậy vào mạng. Mặc dù chúng ta thường tập trung toàn bộ những cố gắng bảo mật của mình lên phạm vi mạng nhưng việc phòng chống lại những mối đe dọa ngay từ bên trong và việc có một thái độ bảo mật bên trong tốt có thể giúp bạn loại trừ được sự sợ hãi trong tấn công được đề cập ở đây.
    Mã hóa ARP Cache
    Một cách có thể bảo vệ chống lại vấn đề không an toàn vốn có trong các ARP request và ARP reply là thực hiện một quá trình kém động hơn. Đây là một tùy chọn vì các máy tính Windows cho phép bạn có thể bổ sung các entry tĩnh vào ARP cache. Bạn có thể xem ARP cache của máy tính Windows bằng cách mở nhắc lệnh và đánh vào đó lệnh arp –a.

    Hình 7: Xem ARP Cache
    Có thể thêm các entry vào danh sách này bằng cách sử dụng lệnh arp –s <IP ADDRESS> <MAC ADDRESS>.
    Trong các trường hợp, nơi cấu hình mạng của bạn không mấy khi thay đổi, bạn hoàn toàn có thể tạo một danh sách các entry ARP tĩnh và sử dụng chúng cho các client thông qua một kịch bản tự động. Điều này sẽ bảo đảm được các thiết bị sẽ luôn dựa vào ARP cache nội bộ của chúng thay vì các ARP request và ARP reply.
    Kiểm tra lưu lượng ARP với chương trình của hãng thứ ba
    Tùy chọn cuối cùng cho việc phòng chống lại hiện tượng giả mạo ARP cache là phương pháp phản ứng có liên quan đến việc kiểm tra lưu lượng mạng của các thiết bị. Bạn có thể thực hiện điều này với một vài hệ thống phát hiện xâm phạm (chẳng hạn như Snort) hoặc thông qua các tiện ích được thiết kế đặc biệt cho mục đích này (như xARP). Điều này có thể khả thi khi bạn chỉ quan tâm đến một thiết bị nào đó, tuy nhiên nó vẫn khá cồng kềnh và vướng mắc trong việc giải quyết với toàn bộ đoạn mạng.
    Kết luận
    Giả mạo ARP Cache là một chiêu khá hiệu quả trong thế giới những kẻ tấn công thụ động “man-in-the-middle” vì nó rất đơn giản nhưng lại hiệu quả. Hiện việc giả mạo ARP Cache vẫn là một mối đe dọa rất thực trên các mạng hiện đại, vừa khó bị phát hiện và khó đánh trả. Trong phần tiếp theo của loạt bài này, chúng tôi sẽ tập trung vào vấn đề phân giải tên và khái niệm giả mạo DNS.

    ARP và nguyên tắc làm việc trong mạng LAN
    Như ta đã biết tại tầng Network của mô hình OSI , chúng ta thường sử dụng các loại địa chỉ mang tính chất quy ước như IP, IPX… Các địa chỉ này được phân thành hai phần riêng biệt là phần địa chỉ mạng (NetID) và phần địa chỉ máy ( HostID) . Cách đánh số địa chỉ như vậy nhằm giúp cho việc tìm ra các đường kết nối từ hệ thống mạng này sang hệ thống mạng khác được dễ dàng hơn. Các địa chỉ này có thể được thay đổi theo tùy ý người sử dụng.

    Trên thực tế, các card mạng (NIC) chỉ có thể kết nối với nhau theo địa chỉ MAC, địa chỉ cố định và duy nhất của phần cứng. Do vậy ta phải có một cơ chế để chuyển đổi các dạng địa chỉ này qua lại với nhau. Từ đó ta có giao thức phân giải địa chỉ: Address Resolution Protocol (ARP).
    Nguyên tắc làm việc của ARP trong một mạng LAN
    Khi một thiết bị mạng muốn biết địa chỉ MAC của một thiết bị mạng nào đó mà nó đã biết địa chỉ ở tầng network (IP, IPX…) nó sẽ gửi một ARP request bao gồm địa chỉ MAC address của nó và địa chỉ IP của thiết bị mà nó cần biết MAC address trên toàn bộ một miền broadcast. Mỗi một thiết bị nhận được request này sẽ so sánh địa chỉ IP trong request với địa chỉ tầng network của mình. Nếu trùng địa chỉ thì thiết bị đó phải gửi ngược lại cho thiết bị gửi ARP request một gói tin (trong đó có chứa địa chỉ MAC của mình). Trong một hệ thống mạng đơn giản, ví dụ như PC A muốn gửi gói tin đến PC B và nó chỉ biết được địa chỉ IP của PC B. Khi đó PC A sẽ phải gửi một ARP broadcast cho toàn mạng để hỏi xem "địa chỉ MAC của PC có địa chỉ IP này là gì ?" Khi PC B nhận được broadcast này, nó sẽ so sánh địa chỉ IP trong gói tin này với địa chỉ IP của nó. Nhận thấy địa chỉ đó là địa chỉ của mình, PC B sẽ gửi lại một gói tin cho PC A trong đó có chứa địa chỉ MAC của B. Sau đó PC A mới bắt đầu truyền gói tin cho B.

    Nguyên tắc hoạt động của ARP trong môi trường hệ thống mạng

    Hoạt động của ARP trong một môi trường phức tạp hơn đó là hai hệ thống mạng gắn với nhau thông qua một Router C. Máy A thuộc mạng A muốn gửi gói tin đến máy B thuộc mạng B. Do các broadcast không thể truyền qua Router nên khi đó máy A sẽ xem Router C như một cầu nối hay một trung gian (Agent) để truyền dữ liệu. Trước đó, máy A sẽ biết được địa chỉ IP của Router C (địa chỉ Gateway) và biết được rằng để truyền gói tin tới B phải đi qua C. Tất cả các thông tin như vậy sẽ được chứa trong một bảng gọi là bảng định tuyến (routing table). Bảng định tuyến theo cơ chế này được lưu giữ trong mỗi máy. Bảng định tuyến chứa thông tin về các Gateway để truy cập vào một hệ thống mạng nào đó. Ví dụ trong trường hợp trên trong bảng sẽ chỉ ra rằng để đi tới LAN B phải qua port X của Router C. Bảng định tuyến sẽ có chứa địa chỉ IP của port X. Quá trình truyền dữ liệu theo từng bước sau :

    - Máy A gửi một ARP request (broadcast) để tìm địa chỉ MAC của port X.

    - Router C trả lời, cung cấp cho máy A địa chỉ MAC của port X.

    - Máy A truyền gói tin đến port X của Router.

    - Router nhận được gói tin từ máy A, chuyển gói tin ra port Y của Router. Trong gói tin có chứa địa chỉ IP của máy B. Router sẽ gửi ARP request để tìm địa chỉ MAC của máy B.

    - Máy B sẽ trả lời cho Router biết địa chỉ MAC của mình. Sau khi nhận được địa chỉ MAC của máy B, Router C gửi gói tin của A đến B.

    Trên thực tế ngoài dạng bảng định tuyến này người ta còn dùng phương pháp proxyARP, trong đó có một thiết bị đảm nhận nhiệm vụ phân giải địa chỉ cho tất cả các thiết bị khác.Theo đó các máy trạm không cần giữ bảng định tuyến nữa Router C sẽ có nhiệm vụ thực hiện, trả lời tất cả các ARP request của tất cả các máy.
    ARP cache
    ARP cache có thể coi như một bảng có chứa một tập tương ứng giữa các phần cứng và địa chỉ Internet Protocol (IP). Mỗi một thiết bị trên một mạng nào đó đều có cache riêng. Có hai cách lưu giữ các entry trong cache để phân giải địa chỉ diễn ra nhanh. Đó là:
    * Các entry ARP Cache tĩnh. Ở đây, sự phân giải địa chỉ phải được add một cách thủ công vào bảng cache và được duy trì lâu dài.
    * Các entry ARP Cache động. Ở đây, các địa chỉ IP và phần cứng được giữ trong cache bởi phần mềm sau khi nhận được kết quả của việc hoàn thành quá trình phân giải trước đó. Các địa chỉ được giữ tạm thời và sau đó được gỡ bỏ.
    ARP Cache biến một quá trình có thể gây lãng phí về mặt thời gian thành một quá trình sử dụng thời gian một cách hiệu quả. Mặc dù vậy nó có thể bắt gặp một số vấn đề. Cần phải duy trì bảng cache. Thêm vào đó cũng có thể các entry cache bị “cũ” theo thời gian, vì vậy cần phải thực thi hết hiệu lực đối với các entry cache sau một quãng thời gian nào đó.


Quuyền Hạn Của Bạn

  • Bạnkhông thể tạo chủ đề
  • Bạn không thể viết trã lời
  • Bạn không thể đính kèm tập tin vào vài viết
  • Bạn không thể sửa bài viết của bạn
  •