17
Tấn công MITM- Giả mạo ARP lSharla-luf TẤN CÔNG MAN IN THE MIDDLE (MITM) Vào một buổi sáng đẹp trời nào đó bạn loggin vào facebook và nhận được hàng chục thông báo, trong lúc tiếp tục với tô mỳ dang dở, bạn từ từ xem từng cái, thật bất ngờ khi bạn nhận được rất nhiều like từ bạn bè, bởi vì một stt mà bạn đăng, bạn vui nhưng cũng rất bất ngờ và có chút lo lắng khi bạn không đăng stt nào trong vòng 24h qua, nhận ra có điều chẳng lành, bạn xem lại trạng thái thì thật bất ngờ khi dòng stt “Tôi bị gay” kèm theo đó là một bức ảnh của bạn cùng với chai neptune 111 nhận được hàng chục like, đến lúc này thì bạn thật sự sửng sốt, không tin vào mắt mình nữa, ai đã đăng stt này? Nhận ra rằng đã có ai đó truy cập tài khoản của bạn, ngay lập tức bạn thay đổi mật khẩu. Bạn kĩ lưỡng kiểm tra lại, Oh, đã yên tâm phần nào khi chưa có thiệt hại gì đáng kể, may quá chỉ là dòng trêu đùa, bạn dạo qua vài trang trước khi tiếp tục với những công việc thường này. Đến tối, bạn lại loggin vào face, oh, lần này bạn nhận được một status khác với dòng ngắn gọn “hello”. Đến lúc này bạn thật sự hoang mang và hết đỗi lo sợ! Thật sự là bạn không hiểu? Bạn đã đổi mật khẩu rồi mà??? Chuyện gì đang xảy ra ở đây vậy!? Để minh chứng những gì tôi nói, sau đây tôi sẽ giới thiệu với các bạn một kiểu tấn công phổ biến có tên Man in the middle. Vậy tấn công Man in the middle là gì? Đúng như tên gọi, kiểu tấn công này có thể hiểu nôm na là kẻ tấn công như một kẻ nghe trộm(Người đứng giữa), 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ể đánh chặn các 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ó. Một sô hình thức tấn công MITM phổ biến có thể kể đến đó là ARP Cache Poisoning, DNS Spoofing, HTTP session hijacking, passing the hash,...Kiểu tấn công này là vô cùng nguy hiểm nếu kẻ tấn công có những ý định hiểm độc nhằm vào nạn nhân. Trong khuôn khổ bài viết tôi sẽ thao tác tấn công MITM trên máy cài đặt windows vì tính phổ biến của nó. Trong trường hợp không có công cụ đáp ứng được yêu cầu thì sẽ tiến hành trên Backtrack linux. Giả mạo ARP Cache (ARP Cache Poisoning) Đây là một hình thức tấn công MITM hiện đại có xuất xứ 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. Đây 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(Address Resolution Protocol) đượ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 ©2014 by ISharla-luf 1

Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Embed Size (px)

DESCRIPTION

Tấn công ARP Cache Poisoning (Man In The Middle) Attacks by ISharla-Luf

Citation preview

Page 1: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

TẤN CÔNG MAN IN THE MIDDLE (MITM)

Vào một buổi sáng đẹp trời nào đó bạn loggin vào facebook và nhận được hàng chục thông báo, trong lúc tiếp tục với tô mỳ dang dở, bạn từ từ xem từng cái, thật bất ngờ khi bạn nhận được rất nhiều like từ bạn bè, bởi vì một stt mà bạn đăng, bạn vui nhưng cũng rất bất ngờ và có chút lo lắng khi bạn không đăng stt nào trong vòng 24h qua, nhận ra có điều chẳng lành, bạn xem lại trạng thái thì thật bất ngờ khi dòng stt “Tôi bị gay” kèm theo đó là một bức ảnh của bạn cùng với chai neptune 111 nhận được hàng chục like, đến lúc này thì bạn thật sự sửng sốt, không tin vào mắt mình nữa, ai đã đăng stt này? Nhận ra rằng đã có ai đó truy cập tài khoản của bạn, ngay lập tức bạn thay đổi mật khẩu. Bạn kĩ lưỡng kiểm tra lại, Oh, đã yên tâm phần nào khi chưa có thiệt hại gì đáng kể, may quá chỉ là dòng trêu đùa, bạn dạo qua vài trang trước khi tiếp tục với những công việc thường này. Đến tối, bạn lại loggin vào face, oh, lần này bạn nhận được một status khác với dòng ngắn gọn “hello”. Đến lúc này bạn thật sự hoang mang và hết đỗi lo sợ! Thật sự là bạn không hiểu? Bạn đã đổi mật khẩu rồi mà??? Chuyện gì đang xảy ra ở đây vậy!? Để minh chứng những gì tôi nói, sau đây tôi sẽ giới thiệu với các bạn một kiểu tấn công phổ biến có tên Man in the middle. Vậy tấn công Man in the middle là gì? Đúng như tên gọi, kiểu tấn công này có thể hiểu nôm na là kẻ tấn công như một kẻ nghe trộm(Người đứng giữa), 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ể đánh chặn các 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ó. Một sô hình thức tấn công MITM phổ biến có thể kể đến đó là ARP Cache Poisoning, DNS Spoofing, HTTP session hijacking, passing the hash,...Kiểu tấn công này là vô cùng nguy hiểm nếu kẻ tấn công có những ý định hiểm độc nhằm vào nạn nhân. Trong khuôn khổ bài viết tôi sẽ thao tác tấn công MITM trên máy cài đặt windows vì tính phổ biến của nó. Trong trường hợp không có công cụ đáp ứng được yêu cầu thì sẽ tiến hành trên Backtrack linux.

Giả mạo ARP Cache (ARP Cache Poisoning)

Đây là một hình thức tấn công MITM hiện đại có xuất xứ 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. Đây 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(Address Resolution Protocol) đượ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

©2014 by ISharla-luf

1

Page 2: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

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.

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

©2014 by ISharla-luf

2

Page 3: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

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. Tìm hiểu thêm thông tin ở cuối bài viết.

Hình 2: Chặn truyền thông bằng cách giả mạo ARP Cache

Sử dụng Cain & Abel

Có vài công cụ có thể giả mạo ARP cache, ở đây tôi sẽ sử dụng công cụ bảo mật phổ biến là Cain & Abel của oxid.it, bạn có thể download nó tại đây http://www.oxid.it/cain.html Ngoài chức năng giả mạo ARP cache, Cain & Abel còn có nhiều chức năng khác, các bạn có thể tìm hiểu thêm.

Giao diện khi khởi động:

©2014 by ISharla-luf

3

Page 4: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

Đầu tiên chúng ta cần config để chọn đúng card mạng mà bạn đang dùng

Có thể config nhiều thứ để phục vụ cho sự làm việc của cain ở đây, cái này các bạn tự tìm hiểu thêm nhé./ Vẫn tại giao diện khởi động, ta thấy có rất nhiều tab nhưng ta chỉ quan tâm đến tab sniffer. Từ giao diện khởi động, các bước thực hiện tấn công, có thể tiến hành như hình sau:

©2014 by ISharla-luf

4

Page 5: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

Bước 1: Chọn công cụ start/stop sniffer để bắt đầu sniffer Bước 2: Chọn tab Sniffer Bước 3: Chọn công cụ Add to list (Dấu cộng màu xanh dương), sẽ xuất hiện bảng chọn như hình sau:

Tại cửa sổ MAC Address Scanner, bạn chọn All hosts in my subnet để scan toàn bộ host trong mạng hoặc chọn Range để quét trong một dải ip cụ thể, sau đó click ok. Tiếp theo Cain sẽ quét và bạn sẽ thấy xuất hiện danh sách các host có trong mạng. Bước 4: Bạn chọn tab ARP(màu vàng đen ở dưới)

©2014 by ISharla-luf

5

Page 6: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

Bước 5: Bạn click vào khoảng trống rồi chọn tiếp công cụ Add to list (Dấu cộng màu xanh dương), cửa sổ New ARP Poison Routing xuất hiện:

Phần bên trái là các ip quét được, nếu bạn chọn một cái thì phần bên phải sẽ hiển thị các ip còn lại. Để theo dõi truyền thông giữa máy bên trái và các máy bên phải, bạn chọn ip bên trái sau đó dùng chuột bôi đen để chọn các máy bên phải, click ok. Bước 6: Bạn nhấn vào biểu tượng vàng đen (Start/Stop APR) trên thanh công cụ để bắt đầu quá trình giả mạo ARP cache. Bạn sẽ thấy ở tab Status sẽ biểu thị trạng thái chuyển từ Idle sang Poisoning. Bây giờ bạn chuyển sang tab Password phía dưới, bạn sẽ tìm thấy một số điều thú vị, để xem nào:

©2014 by ISharla-luf

6

Page 7: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

Như các bạn thấy nó hiển thị username và password, hihi, chiến tích đầu tiên. Khi các bạn bắt đầu quá trình ARP Poisoning thì các bạn sẽ thấy lưu lượng ARP đến các thiết bị, và thấy được sự truyền thông giữa chúng, để biết đằng sau đó có những gì, bạn có thể lắng nghe bằng Wireshark. http://www.wireshark.org/download.html

Trộm cookie Một chức năng mà tôi thấy khá hay ho của Cain là nó có thể ghi lại các phiên kết nối HTTPS ở mục APR-HTTPS, chức năng này khá giống với Wireshark, bản thân tôi thấy chức năng này còn hay hơn cả Wireshark, nó cho phép chúng ta xem được sự trao đổi giữa máy tính các nạn nhân bằng các bản ghi clear-text, bạn có thể xem các bản ghi này bằng cách truy cập trực tiếp vào thư mục HTTPS trong thư mục cài đặt Cain theo đường dẫn C:\Program Files\Cain\HTTPS Và đây là hình một bản ghi như thế

©2014 by ISharla-luf

7

Page 8: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

Có khá nhiều thông tin thú vị ở đây, và ta tìm được một đoạn cookie, oh, các bạn nghĩ chúng ta sẽ làm gì với đoạn cookie này, đương nhiên là chiến rồi chứ còn gì nữa>>hihi. Chúng ta sẽ dùng đoạn cookie để login vào tài khoản trên mà không cần biết username và password, có nhiều cách để thực hiện việc này, trong khuôn khổ bài viết, tôi sử dụng trình duyệt firefox, trên firefox thì có rất nhiều addons để edit cookie như Cookie Manager, Edit Cookies, v.v…tuy nhiên điểm hạn chế của các addon này là chỉ cho phép sửa chữa hay thêm từng trường, mà làm kiểu đó thì chờ khi làm xong có lẽ cookie đó cũng hết hạn rùi. :D vì vậy tôi sẽ giới thiệu với các bạn một addon rất hay có tên là Greasemonkey, download tại https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Sau khi cài đặt bạn khởi động lại firefox, tiếp theo bạn tải script mang tên Cookie injector, có thể download tại http://www.mediafire.com/view/fgo23m1kev9wcbx/cookieinjector.user.js Cài đặt bằng cách kéo thả file này vào phần Extensions rồi nhấn Install

©2014 by ISharla-luf

8

Page 9: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

Sau khi cài đặt xong bạn truy cập vào host có trong bản ghi, ở đây tôi truy cập www.facebook.com xong các bạn nhấn tiếp tổ hợp phím Alt+C, bảng Wireshark Cookie Dump xuất hiện, bạn copy cookie khi nãy và paste vào rồi nhấn ok, chờ cho nó hiện lên thông báo All Cookies Have Been Written thì nhấn ok Reload lại trang là bạn có thể truy cập tài khoản đó rồi.:D Giờ thì bạn đã tin câu chuyện tôi đưa ra phần đầu là có thực rồi chứ, trong thực tế kẻ tấn công không chỉ có ý định trêu đùa như trong câu chuyện này, họ có thể lừa đảo các bạn bè nạn nhân để chiếm đoạt tài sản, có thể là lừa nạp thẻ cho hắn chẳng hạn, rất nguy hiểm phải không ạ!

NetCut và Bộ công cụ Winpcap và ArpSpoof NetCut Nguyên lí hoạt động của NetCut cũng chính là việc giả mạo arp, tuy nhiên ở nó có một cái khác đó là nó không gửi đi những gói arp một cách vu vơ liên tục (kiểu như 192.168.1.1 có địa chỉ là 02:0c:bb:31:c1:48 như cain ở trên) mà những gói arp nó gửi hoàn toàn có chủ đích tới mục tiêu đã được xác định cụ thể là victim và gateway. Bạn có thể nhìn thấy rõ trong hình sau:

Trên hình ta thấy như sau, ở dòng đầu tiên “4 23.243073 33:0c:57:19:43:1b 00:23:5a:68:78:07 ARP Who has 192.168.1.33? Tell 192.168.1.1″ Có 1 cái gì đó có địa chỉ MAC 33:0c:57:19:43:1b hỏi máy của victim là ai có địa chỉ IP là 192.168.1.33 và nó cũng cho victim biết luôn rằng địa chỉ IP của nó là 192.168.1.1. Khi máy victim nhận được câu hỏi này nó sẽ trả lời lại “5 23.243098 00:23:5a:68:78:07 33:0c:57:19:43:1b ARP 192.168.1.33 is at 00:23:5a:68:78:07″ và lưu luôn địa chỉ của người vừa hỏi nó vào ARP cache: IP 192.168.1.1 ứng với MAC 33:0c:57:19:43:1b. Vậy là xong bước 1, ta thấy ở đây là 1 sự mạo nhận rất đơn giản, nó giả gateway và đi hỏi victim chứ không phải là spoofing-cứ hét vào tai victim là “tôi 192.168.1.1, MAC của tôi là 33:0c:57:19:43:1b”, tức là send liên tiếp reply “33:0c:57:19:43:1b 00:23:5a:68:78:07 ARP 192.168.1.33 is at 00:02:cf:c7:ce:84″ Tiếp đến bước 2, nó giả làm victim và đi hỏi gateway “7 23.243262 33:0c:57:19:43:1b ZygateCo_c7:ce:84 ARP Who has 192.168.1.1? Tell 192.168.1.33” quá trình tương tự xảy ra, và giờ trong bảng ARP cache của modem hoặc router sẽ lưu là IP 192.168.1.33 có địa chỉ MAC là 33:0c:57:19:43:1b Một gói tin muốn chuyển ra ngoài phải đi qua gateway, và giờ victim sẽ gửi gói tin này cho 192.168.1.1 có MAC là 33:0c:57:19:43:1b-một địa chỉ không tồn tại trong mạng, 1 gói tin từ ngoài chuyển vào cũng thế đến gateway nó sẽ chuyển cho 192.168.1.33 nhưng lúc này 192.168.1.33 lại có MAC là 33:0c:57:19:43:1b và kết quả là victim rớt mạng.

©2014 by ISharla-luf

9

Page 10: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

Đoạn còn lại(từ gói tin có số thứ tự 16 trở đi) là lúc mình bấm resume và netcut nó làm ngược lại công việc của mình thôi nó sẽ hỏi lại máy victim, rồi hỏi lại gateway nhưng lần này với địa chỉ MAC là đúng.ok Như vậy là chúng ta đã tìm hiểu nguyên lí làm việc của nó, bây giờ các bạn hãy cài đặt và sử dụng nó (không khuyến khích nhé :3), cách sử dụng NetCut rất đơn giản và vì phần mềm này đã quá quen thuộc rồi nên mình không nói lại nữa. Bộ công cụ Winpcap và ArpSpoof Một bộ công cụ rất nổi tiếng khác có thể được dùng để tấn công arp là WinPcap và ArpSpoof, các bạn có thể tải tại đây http://www.mediafire.com/download/lq8dxreyj3j08qe/winpcap_arpspoof.rar Nhớ tắt trình diệt virus trước khi tải về hay giải nén file này nhé bởi vì nguyên tắc hoạt động của file arpspoof.exe làm av nhận nhầm là virus, vì bộ công cụ này rất nổi tiếng nên mình sẽ không giới thiệu lại nữa, bạn nào chưa biết thì search google nhé. Vào việc chính thôi, sau đây mình sẽ giới thiêụ các bạn cách tấn công: Sau khi tải về bộ công cụ trên các bạn giải nén vào một thư mục nào đó cho dễ tìm, mình thì mình để ở C:\ để cho nhanh cho việc thao tác sau này, các bạn có thể để ở thư mục system32 của windows C:\Windows\System32(nhưng thư mục này nhiều file quá rối mắt:D) Trước tiên bạn cài phần mềm winpcap vào máy.(phần mềm này chắc ai cũng đã cài rồi phải không :v) Tiếp theo bạn bật cmd lên, chạy với quyền administrator, muốn tấn công máy nào thì chỉ cần gõ lệnh arpspoof -t [ip Gateway] [ip máy nạn nhân]. Lưu ý, vì file arpspoof.exe và Libnet.dll mình để ở thư mục C:\ nên đầu tiên mình phải đưa con trỏ lệnh về thư mục C:\ thì mới thực hiện được lệnh trên

Sau khi thực hiện lệnh trên, bạn chọn đúng card mạng rồi nhấn Enter(ở đây mình chọn 2) thế là cuộc tấn công bắt đầu. Khi bị tấn công, nạn nhân vẫn truy cập được vào router nhưng không vào được mạng. Bạn xem thêm trên wireshark để hiểu rõ hơn nhé.

©2014 by ISharla-luf

10

Page 11: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

Biện pháp phòng chống

Như chúng ta vừa tìm hiểu thì việc phát hiện và dự báo tấn công giả mạo ARP Cache là vô cùng khó khăn, bởi nó chỉ được phát hiện khi attacker đã ra tay, tuy vậy nếu bạn lo lắng về vấn đề giả mạo arp cache trong mạng của mình thì một số giải pháp sau có thể giúp cho bạn: 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ở Command Prompt và gõ vào đó lệnh arp –a

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> như các bạn thấy nó đã chuyển từ dynamic sang static

©2014 by ISharla-luf

11

Page 12: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

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. Đ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. Với win7 và win8 thì bạn nên dùng cách sau: Đầu tiên bạn xem tên card mạng của mình, ở đây card mạng của tôi là Wi-Fi

Tiếp theo các bạn gõ, arp –d để xóa bảng arp cũ Tiếp theo bạn gõ lệnh netsh -c "interface ipv4" có cả dấu "" Sau đó gõ tiếp set neighbors "tên card mạng của máy" ip gateway MAC router, ở đây tôi gõ set neighbors "Wi-Fi" 192.168.1.1 bc-96-80-2e-5f-b8

©2014 by ISharla-luf

12

Page 13: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

Tiếp theo bạn gõ tiếp set neighbors "tên card mạng của máy" ip máy bạn MAC PC, ở đây tôi gõ set neighbors "Wi-Fi" 192.168.1.5 02-0c-bb-31-c1-48, vậy là được, bạn nhấn q để thoát và kiểm tra lại bảng arp bằng lệnh arp –a

Như các bạn thấy, nó đã chuyển về dạng static. Vô hiệu hóa Netbios name

Vì các chương trình dò tìm như Cain&Abel phải quét các ip trong mạng rồi mới có thể tấn công ta cần vô hiệu hóa Netbios name nhằm ngăn cản sự dò tìm IP của các chương trình này. Để làm việc này bạn chọn Disable NetBIOS over TCP/IP

©2014 by ISharla-luf

13

Page 14: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

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). Khi bị tấn công bạn chạy chương trình XArp 2.0 và sẽ nhìn thấy một số dòng màu đỏ, trong đó có IP Gateway, máy tấn công và các máy nạn nhân. Bạn hãy loại ra IP Gateway và các IP máy nạn nhân bị mất mạng, còn lại chính là IP của máy tính tấn công đó (máy này không bị mất mạng). Nếu chú ý hơn vào XArp 2.0, bạn kéo ra sau cùng sẽ thấy cột How Often seen, bạn sẽ thấy số dữ liệu trao đổi giữa Gateway và các máy nạn nhân tăng lên tương ứng nhau, còn máy tấn công thì khác hẳn. Một công cụ rất hay có thể phát hiện tấn công arp cũng như các phương pháp sniff nói chung là ettercap, công cụ này rất hay nhưng tôi sẽ giới thiệu với các bạn trong một bài viết khác. Tuy vậy những công cụ này khả thi khi bạn chỉ quan tâm đến một thiết bị nào đó, 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.

Dấu hiệu khi có ai đó sử dụng Cain & Abel Cain&Abel có thể chụp lại và thay đổi hay làm giả mạo các CA(Certificate Authority) để phát tới các Victim của nó. (Các CA được chụp lại bạn có thể tìm thấy ở mục APR-Cert, để xem nó, bạn chuột phải vào một chứng chỉ và chọn Wiew)

©2014 by ISharla-luf

14

Page 15: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

Thế nhưng khi các CA giả mạo này được so sánh với CA mặc định của Windows thì ngay lập tức Windows phát hiện ra sự sai lệch của CA mà nó nhận từ Cain&Abel. Và phát ra thông điệp cảnh báo ngay trên trình duyệt IE khi ta login vào một site sử dụng giao thức https.

Đây là một thông điệp cảnh báo hết sức rõ ràng, tuy nhiên người dùng bình thường thì lại không để ý đến cảnh báo bất thường này, và tất nhiên là vẫn vô tư click vào dòng "Continue to this website". Thế nhưng IE sau đó lại phát ra một thông điệp khác và thông báo trên ô Address và yêu cầu người dùng kiểm tra CA bằng cách xem lại nó một lần nữa trước khi gõ username và password. Nếu người dùng vẫn vô tư bỏ qua và gõ username, password vào

©2014 by ISharla-luf

15

Page 16: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

thì coi như bị lộ username và password. Thông báo này cũng xuất hiện khi bạn truy cập vào một trang web không được xác thực, vì vậy khi nhìn thấy thông báo này các bạn nên cẩn thận kiểm tra!

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

Tham khảo

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

©2014 by ISharla-luf

16

Page 17: Tấn công ARP Cache Poisoning (Man In The Middle) Attacks

Tấn công MITM- Giả mạo ARP lSharla-luf

(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 proxy ARP, 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 đó.

Bài viết có thao khảo và lược dịch một số đoạn của bài viết Understanding Man-in-the-Middle Attacks – ARP Cache Poisoning (Part 1) của tác giả Chris Sanders, bạn có thể tìm thấy tại http://www.windowsecurity.com/articles-tutorials/authentication_and_encryption/Understanding-Man-in-the-Middle-Attacks-ARP-Part1.html Chân thành cám ơn tác giả.

©2014 by ISharla-luf

17