Đây là bài đầu tiên trong loạt 7 bài về tấn công giả mạo DNS Spoofing
DNS giả mạo là một kỹ thuật MITM được sử dụng để cung cấp thông tin DNS sai cho một host để khi họ cố gắng để duyệt, ví dụ, www.bankofamerica.com tại XXX.XX.XX.XX địa chỉ IP mà họ đang thực sự gửi đến một www giả .bankofamerica.com là tại địa chỉ IP YYY.YY.YY.YY mà một kẻ tấn công đã tạo ra để ăn cắp thông tin ngân hàng trực tuyến và thông tin từ những người dùng không nghi ngờ tài khoản. Đây là thực tế được thực hiện khá dễ dàng và ở đây chúng tôi sẽ xem làm thế nào nó hoạt động, làm thế nào nó được thực hiện, và làm thế nào để bảo vệ chống lại nó.
Một máy chủ DNS chính nó hoạt động bằng cách lưu trữ một cơ sở dữ liệu các mục (được gọi là bản ghi tài nguyên) của địa chỉ IP để ánh xạ tên DNS, giao các hồ sơ tài nguyên cho các khách hàng, và giao tiếp với những bản ghi tài nguyên với các máy chủ DNS khác. Các kiến trúc của máy chủ DNS trên toàn doanh nghiệp và Internet là một cái gì đó mà có thể là một chút phức tạp. Như một vấn đề của thực tế, có cả cuốn sách dành riêng cho kiến trúc DNS. Chúng tôi sẽ không bao gồm các khía cạnh kiến trúc hoặc thậm chí tất cả các loại hình giao thức DNS, nhưng chúng tôi sẽ xem xét một giao dịch cơ bản DNS, xem trong
.
Hình 1: Một truy vấn DNS và đáp
chức năng DNS trong một định dạng kiểu truy vấn / phản ứng. Một khách hàng có nhu cầu giải quyết một tên DNS đến một địa chỉ IP sẽ gửi một truy vấn đến máy chủ DNS và máy chủ sẽ gửi các thông tin yêu cầu trong phản ứng của nó. Từ quan điểm của khách hàng, hai gói chỉ được nhìn thấy là truy vấn này và phản ứng.
Hình 2: Truy vấn DNS và đáp ứng gói
Kịch bản này sẽ phức tạp hơn một chút nhẹ khi bạn xem xét DNS recursion. Do tính chất thứ bậc của các cấu trúc DNS của Internet, các máy chủ DNS cần khả năng giao tiếp với nhau để xác định vị trí câu trả lời cho các truy vấn gửi của khách hàng. Sau khi tất cả, có thể là hợp lý để mong đợi máy chủ DNS nội bộ của chúng tôi để biết tên để IP lập bản đồ địa chỉ của máy chủ mạng nội bộ của chúng tôi, nhưng chúng tôi không thể mong đợi nó để biết địa chỉ IP tương quan với Google hay Dell. Đây là recursion hoạt động. Recursion là khi một máy chủ DNS truy vấn DNS server khác thay mặt cho một khách hàng người đã thực hiện một yêu cầu. Về cơ bản, điều này sẽ biến một máy chủ DNS thành một khách hàng riêng của mình,
Hình 3: Một truy vấn DNS và ứng dụng Recursion
Mỗi truy vấn DNS được gửi qua mạng có chứa một mã số duy nhất được tạo ra đó là mục đích là để xác định các truy vấn và trả lời và gộp chúng lại với nhau. Điều này có nghĩa rằng nếu máy tính tấn công của chúng tôi có thể đánh chặn một truy vấn DNS gửi đi từ một thiết bị mục tiêu, tất cả chúng ta phải làm là tạo ra một gói tin giả mạo có chứa mã số đó để cho gói tin đó được chấp nhận bởi mục tiêu đó.
Chúng tôi sẽ hoàn tất quá trình này thực hiện hai bước với một công cụ duy nhất. Đầu tiên, chúng tôi sẽ dùng ARP Cache Malaware thiết bị mục tiêu để định tuyến lại lưu lượng của nó thông qua các máy chủ tấn công của chúng tôi để chúng tôi có thể đánh chặn các yêu cầu DNS, và sau đó chúng tôi thực sự sẽ gửi các gói tin giả mạo. Mục đích của việc này là để có được người dùng trên mạng đích đến thăm trang web độc hại của chúng tôi chứ không phải là trang web mà họ đang cố gắng truy cập. Miêu tả cuộc tấn công này được nhìn thấy trong hình 4.
Hình 4: Các DNS Spoofing tấn công Sử dụng phương pháp DNS ID Spoofing
Có một vài công cụ khác nhau có sẵn mà có thể được sử dụng để thực hiện các giả mạo DNS. Chúng tôi sẽ sử dụng Ettercap, trong đó có cả hai phiên bản Windows và Linux.
Nếu bạn đang cài đặt Ettercap trên một máy Windows, bạn sẽ thấy nó có một giao diện mà các trình đơn lớn, nhưng trong ví dụ này, chúng ta sẽ sử dụng giao diện dòng lệnh.
Trước khi thực hiện Ettercap, một chút cần cấu hình. Ettercap ở cốt lõi của nó là một gói sniffer trong đó sử dụng nhiều plug-in để làm các cuộc tấn công khác nhau nó có thể thực hiện. Các dns_spoof plug-in là những gì sẽ được làm các cuộc tấn công trong ví dụ này, vì vậy chúng ta phải sửa đổi tập tin cấu hình kết hợp với plug-in đó. Trên một hệ thống cửa sổ, tập tin này có thể được đặt tại
win: C: \Program Files(x86)\EttercapNG\share\etter.dns
linux: /usr/share/ettercap/etter.dns.
Tập tin này là khá đơn giản và chứa các bản ghi DNS mà bạn muốn giả mạo. Đối với mục đích của chúng tôi, chúng tôi muốn bất kỳ người dùng cố gắng để đi đến yahoo.com để được chuyển đến một máy chủ trên mạng tại địa phương, vì vậy chúng tôi sẽ thêm các mục nêu trong Hình 5.
Hình 5: Thêm một bản ghi DNS giả mạo để etter.dns
Những mục cơ bản cho các plug-in dns_spoof rằng khi nó thấy một truy vấn DNS cho yahoo.com hoặc www.yahoo.com (cho một bản ghi tài nguyên Một loại) cần cung cấp địa chỉ IP 172.16.16.100 trong phản ứng. Trong một kịch bản thực tế các thiết bị tại 172.16.16.100 sẽ chạy một số hình thức của phần mềm máy chủ web mà sẽ trình bày cho người dùng với các trang web giả mạo.
Một khi các tập tin được cấu hình và lưu chúng ta được tự do để thực hiện chuỗi lệnh đó sẽ khởi động các cuộc tấn công. Chuỗi lệnh sử dụng các tùy chọn sau:
Ettercap.exe -T -q -P dns_spoof -M arp // //
Chạy lệnh sẽ bắt đầu cuộc tấn công hai giai đoạn:
Đầu tiên đầu độc bộ nhớ cache ARP của các thiết bị trên mạng và sau đó truyền những câu trả lời truy vấn DNS giả mạo.
Hình 6: Ettercap tích cực lắng nghe cho các truy vấn DNS
Khi bắt đầu, ai cũng cố gắng truy cập www.yahoo.com sẽ được chuyển hướng đến trang web độc hại của chúng tôi.
Hình 7: Kết quả của sự cố gắng giả mạo DNS từ quan điểm người dùng
DNS giả mạo là một kỹ thuật MITM được sử dụng để cung cấp thông tin DNS sai cho một host để khi họ cố gắng để duyệt, ví dụ, www.bankofamerica.com tại XXX.XX.XX.XX địa chỉ IP mà họ đang thực sự gửi đến một www giả .bankofamerica.com là tại địa chỉ IP YYY.YY.YY.YY mà một kẻ tấn công đã tạo ra để ăn cắp thông tin ngân hàng trực tuyến và thông tin từ những người dùng không nghi ngờ tài khoản. Đây là thực tế được thực hiện khá dễ dàng và ở đây chúng tôi sẽ xem làm thế nào nó hoạt động, làm thế nào nó được thực hiện, và làm thế nào để bảo vệ chống lại nó.
DNS Truyền thống bình thường
Domain Naming System (DNS) là giao thức được định nghĩa trong RFC 1034/1035 là những gì một số người coi là một trong những giao thức quan trọng nhất được sử dụng bởi Internet. Tóm lại, bất cứ khi nào bạn gõ vào một địa chỉ web như http://www.google.com vào trình duyệt của bạn, một yêu cầu DNS được thực hiện cho một máy chủ DNS để tìm ra những địa chỉ IP. Điều này là bởi vì các router và các thiết bị kết nối Internet không hiểu google.com, họ chỉ hiểu các địa chỉ như 74.125.95.103.Một máy chủ DNS chính nó hoạt động bằng cách lưu trữ một cơ sở dữ liệu các mục (được gọi là bản ghi tài nguyên) của địa chỉ IP để ánh xạ tên DNS, giao các hồ sơ tài nguyên cho các khách hàng, và giao tiếp với những bản ghi tài nguyên với các máy chủ DNS khác. Các kiến trúc của máy chủ DNS trên toàn doanh nghiệp và Internet là một cái gì đó mà có thể là một chút phức tạp. Như một vấn đề của thực tế, có cả cuốn sách dành riêng cho kiến trúc DNS. Chúng tôi sẽ không bao gồm các khía cạnh kiến trúc hoặc thậm chí tất cả các loại hình giao thức DNS, nhưng chúng tôi sẽ xem xét một giao dịch cơ bản DNS, xem trong
.
Hình 1: Một truy vấn DNS và đáp
chức năng DNS trong một định dạng kiểu truy vấn / phản ứng. Một khách hàng có nhu cầu giải quyết một tên DNS đến một địa chỉ IP sẽ gửi một truy vấn đến máy chủ DNS và máy chủ sẽ gửi các thông tin yêu cầu trong phản ứng của nó. Từ quan điểm của khách hàng, hai gói chỉ được nhìn thấy là truy vấn này và phản ứng.
Hình 2: Truy vấn DNS và đáp ứng gói
Kịch bản này sẽ phức tạp hơn một chút nhẹ khi bạn xem xét DNS recursion. Do tính chất thứ bậc của các cấu trúc DNS của Internet, các máy chủ DNS cần khả năng giao tiếp với nhau để xác định vị trí câu trả lời cho các truy vấn gửi của khách hàng. Sau khi tất cả, có thể là hợp lý để mong đợi máy chủ DNS nội bộ của chúng tôi để biết tên để IP lập bản đồ địa chỉ của máy chủ mạng nội bộ của chúng tôi, nhưng chúng tôi không thể mong đợi nó để biết địa chỉ IP tương quan với Google hay Dell. Đây là recursion hoạt động. Recursion là khi một máy chủ DNS truy vấn DNS server khác thay mặt cho một khách hàng người đã thực hiện một yêu cầu. Về cơ bản, điều này sẽ biến một máy chủ DNS thành một khách hàng riêng của mình,
Hình 3: Một truy vấn DNS và ứng dụng Recursion
Giả mạo DNS
Chắc chắn là nhiều hơn một phương pháp có sẵn để thực hiện giả mạo DNS. Chúng tôi sẽ sử dụng một kỹ thuật gọi là DNS ID giả mạo.Mỗi truy vấn DNS được gửi qua mạng có chứa một mã số duy nhất được tạo ra đó là mục đích là để xác định các truy vấn và trả lời và gộp chúng lại với nhau. Điều này có nghĩa rằng nếu máy tính tấn công của chúng tôi có thể đánh chặn một truy vấn DNS gửi đi từ một thiết bị mục tiêu, tất cả chúng ta phải làm là tạo ra một gói tin giả mạo có chứa mã số đó để cho gói tin đó được chấp nhận bởi mục tiêu đó.
Chúng tôi sẽ hoàn tất quá trình này thực hiện hai bước với một công cụ duy nhất. Đầu tiên, chúng tôi sẽ dùng ARP Cache Malaware thiết bị mục tiêu để định tuyến lại lưu lượng của nó thông qua các máy chủ tấn công của chúng tôi để chúng tôi có thể đánh chặn các yêu cầu DNS, và sau đó chúng tôi thực sự sẽ gửi các gói tin giả mạo. Mục đích của việc này là để có được người dùng trên mạng đích đến thăm trang web độc hại của chúng tôi chứ không phải là trang web mà họ đang cố gắng truy cập. Miêu tả cuộc tấn công này được nhìn thấy trong hình 4.
Hình 4: Các DNS Spoofing tấn công Sử dụng phương pháp DNS ID Spoofing
Có một vài công cụ khác nhau có sẵn mà có thể được sử dụng để thực hiện các giả mạo DNS. Chúng tôi sẽ sử dụng Ettercap, trong đó có cả hai phiên bản Windows và Linux.
Nếu bạn đang cài đặt Ettercap trên một máy Windows, bạn sẽ thấy nó có một giao diện mà các trình đơn lớn, nhưng trong ví dụ này, chúng ta sẽ sử dụng giao diện dòng lệnh.
Trước khi thực hiện Ettercap, một chút cần cấu hình. Ettercap ở cốt lõi của nó là một gói sniffer trong đó sử dụng nhiều plug-in để làm các cuộc tấn công khác nhau nó có thể thực hiện. Các dns_spoof plug-in là những gì sẽ được làm các cuộc tấn công trong ví dụ này, vì vậy chúng ta phải sửa đổi tập tin cấu hình kết hợp với plug-in đó. Trên một hệ thống cửa sổ, tập tin này có thể được đặt tại
win: C: \Program Files(x86)\EttercapNG\share\etter.dns
linux: /usr/share/ettercap/etter.dns.
Tập tin này là khá đơn giản và chứa các bản ghi DNS mà bạn muốn giả mạo. Đối với mục đích của chúng tôi, chúng tôi muốn bất kỳ người dùng cố gắng để đi đến yahoo.com để được chuyển đến một máy chủ trên mạng tại địa phương, vì vậy chúng tôi sẽ thêm các mục nêu trong Hình 5.
Hình 5: Thêm một bản ghi DNS giả mạo để etter.dns
Những mục cơ bản cho các plug-in dns_spoof rằng khi nó thấy một truy vấn DNS cho yahoo.com hoặc www.yahoo.com (cho một bản ghi tài nguyên Một loại) cần cung cấp địa chỉ IP 172.16.16.100 trong phản ứng. Trong một kịch bản thực tế các thiết bị tại 172.16.16.100 sẽ chạy một số hình thức của phần mềm máy chủ web mà sẽ trình bày cho người dùng với các trang web giả mạo.
Một khi các tập tin được cấu hình và lưu chúng ta được tự do để thực hiện chuỗi lệnh đó sẽ khởi động các cuộc tấn công. Chuỗi lệnh sử dụng các tùy chọn sau:
- -T - Chỉ định sử dụng giao diện dựa trên văn bản
- -q - Chạy lệnh trong chế độ yên tĩnh do đó các gói chụp không xuất ra màn hình
- -P Dns_spoof - Chỉ định sử dụng các dns_spoof plug-in
- -M Arp - Khởi xướng một cuộc tấn công MITM Arp để đánh chặn các gói dữ liệu giữa các máy chủ
- // // - Chỉ định toàn bộ mạng là mục tiêu của các cuộc tấn công
Ettercap.exe -T -q -P dns_spoof -M arp // //
Chạy lệnh sẽ bắt đầu cuộc tấn công hai giai đoạn:
Đầu tiên đầu độc bộ nhớ cache ARP của các thiết bị trên mạng và sau đó truyền những câu trả lời truy vấn DNS giả mạo.
Hình 6: Ettercap tích cực lắng nghe cho các truy vấn DNS
Khi bắt đầu, ai cũng cố gắng truy cập www.yahoo.com sẽ được chuyển hướng đến trang web độc hại của chúng tôi.
Hình 7: Kết quả của sự cố gắng giả mạo DNS từ quan điểm người dùng
Chống lại DNS Spoofing
DNS giả mạo là khó khăn để bảo vệ chống lại các cuộc tấn công do chủ yếu là thụ động của cuộc tấn công. Thông thường, bạn sẽ không bao giờ biết DNS của bạn đang bị giả mạo cho đến khi nó đã xảy ra. Những gì bạn nhận được là một trang web đó là khác với những gì bạn đang mong đợi. Trong cuộc tấn công rất nhắm mục tiêu đó là rất có thể bạn sẽ không bao giờ biết rằng mình đã bị lừa vào nhập thông tin của bạn vào một trang web giả cho đến khi bạn nhận được một cuộc gọi từ bạn ngân hàng tự hỏi tại sao bạn vừa mua một chiếc điện thoại mới trên amazon. Tuy nhiên vẫn có một vài điều mà có thể được thực hiện để bảo vệ chống lại các kiểu tấn công:- Bảo vệ mạng máy tính bên trong của bạn: Các cuộc tấn công như thế này thường được thực thi từ bên trong mạng. Nếu các thiết bị mạng của bạn được an toàn sẽ có ít cơ hội của những máy đã bị đang được sử dụng để khởi động một cuộc tấn công giả mạo.
- Không dùng DNS cho hệ thống an toàn: Trên hệ thống có độ nhạy cao và an toàn mà bạn thường sẽ không được duyệt Internet bằng các DNS. là một thực hành tốt nhất của mình để không sử dụng DNS. Nếu bạn có phần mềm dựa trên tên máy chủ đến người dùng sau đó những người có thể được xác định bằng tay trong các tập tin thiết bị tại nhà.
- Sử dụng IDS: Một hệ thống phát hiện xâm nhập, khi được cài đặt và triển khai một cách chính xác, thông thường có thể nhận trên hầu hế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 lựa chọn mới cho DNS có sử dụng các bản ghi DNS chữ ký số để đảm bảo tính hợp lệ của một phản ứng truy vấn. DNSSEC vẫn chưa được triển khai rộng rãi nhưng đã được chấp nhận rộng rãi như là "tương lai của DNS". Điều này là rất nhiều như vậy mà Hoa Kỳ Bộ Quốc phòng đã lệnh cho tất cả các lĩnh vực MIL và Chính phủ Việt Nam bắt đầu sử dụng DNSSEC trong năm tới
DNS Spoofing là một hình thức rất nguy hiểm của một cuộc tấn công MITM
khi được kết hợp với các cấp độ kỹ năng đúng và mục đích hiểm độc.
Sử dụng kỹ thuật này, chúng ta có thể sử dụng kỹ thuật lừa đảo để ăn cắp thông tin, cài đặt phần mềm độc hại với một ổ đĩa bằng cách
khai thác, hoặc thậm chí gây ra một sự từ chối của tình trạng dịch vụ.
0 nhận xét:
Post a Comment