Wednesday, 14 March 2012

Tấn công Man In The Middle

Man In The Middle (MITM).

Phần 2: http://www.familug.com/2012/03/tan-cong-man-in-middle-phan-2.html

Kẻ tấn công MITM (attacker) sẽ nằm vùng trên đường kết nối (mạng LAN) nữa nạn nhân (victim) và server để nghe trộm (sniff) các gói tin được gửi - nhận (reques - reply). Minh họa như hình sau:



Kiểu tấn công MITM có hiệu suất cao bởi vì giao thức HTTP và Data Tranfer truyền tải dữ liệu theo chuẩn ASCII (http://vi.wikipedia.org/wiki/ASCII). Hay ngay cả các giao thức bảo mật như SSL hay HTTPS đều có thể bị nghe trộm. Khi bị tấn công, cả victim và server đều không biết dữ liệu trao đổi giữa họ sẽ đi qua máy của attacker. Do vậy attacker không chỉ đọc được cuộc trò chuyện này mà còn có thể thay đổi được nội dung của nó.
Có các kiểu tấn công MITM:
+ ARP Poison Routing.
+ Giả danh DNS.
+ Chiếm HTTP Session.
+ Giả mạo SSL..



Các công cụ (tools) hay được dùng trong kiểu tấn công này:
+ Wireshark http://www.wireshark.org/
+ Ettercap. http://ettercap.sourceforge.net/
+ Dsniff http://www.monkey.org/~dugsong/dsniff
+ Cain. http://www.oxid.it/cain.html
+ TCPDump. Có sẵn trong Linux


Tạm thời, tớ dùng HTTP Header (add-on của Firefox) và Wireshark mô phỏng 1 loại của kiểu tấn công này nhé, làm trên local còn attack qua LAN có sau, tại vì đang bận làm project với lại chưa có tools :D.


Để Login vào 1 website, form HTML cho phép user dùng phương thức POST để gửi request gồm username và password, webserver đối chiếu kết quả nhận được với database để cho phép user được login hay không. Trong ví dụ tớ làm, là loại MITM attack đơn giản, tớ trộm (capture) được gói POST từ victim gửi tới webserver, rồi sử dụng lại nó để login. Để tăng tính bảo mật, người viết code website đã mã hóa md5 password ngay tại form nhập password. Nên gói POST trôm được chỉ có username =invisible là ở dạng plain text còn password đã được mã hóa. Nhưng tớ nhập vào username + password sai rồi dùng HTTP Header để xác định gói POST được gửi từ client tới server có "hình dáng" thế nào, vào thay thế nó bằng gói POST capture được, vậy là login được.