Tiểu luận môn học an toàn thông tin Session Hijacking

12 1.1K 5
Tiểu luận môn học an toàn thông tin Session Hijacking

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Session Hijacking SV1 : 08520582_Nguyễn Hữu Ru SV2 : 08520347_Nguyễn Thành SV3 : 08520558_Trần Minh Kỳ I. Lý thuyết  Định Nghĩa: Session là một cơ chế trao đổi thông tin giữa các máy tính về một phiên làm việc. Một session được thiết lập ngay sau khi người dùng truy cập vào ứng dụng và kết thúc khi người dùng thoát khỏi ứng dụng. Thông tin sesion được lưu trên server và để nhằm mục đích phục vụ cho việc khôi phục lại trạng thái giao tiếp, ghi nhớ, nhận dạng người dùng. Session được lưu trữ trên server và được lưu với 1 chuỗi ký tự được gọi là ID. Session Hijacking là một hình thức tấn công nhằm khai thác các phiên làm việc hợp lệ (chiếm session) để mục đích vượt qua quá trình chứng thực, xác thực và cấp quyền người dùng. Sau đó kẻ tấn công sẽ thay vai trò của người dùng trong hệ thống. Các loại tấn công Session hijacking: + Chủ động: đối với cuộc tấn công theo kiểu này, kẻ tấn công tìm một session đang hoạt động và tiến hành cướp session. + Bị động: đối với cuộc tấn công theo kiểu bị động, kẻ tấn công chiếm phiên làm việc, nhưng chỉ xem và sao chép tất cả các lưu lượng trao đổi. Tấn công Session Hijacking diễn ra tại hai mức : + Tấn công ở lớp mạng. + Tấn công ở lớp ứng dụng. Tại lớp mạng, Session Hijacking định nghĩa là việc đánh chặn các gói dữ liệu trong truyền tải giữa máy khách và máy chủ trong một phiên TCP và UDP. Đối với các cuộc tấn công tại lớp mạng, kẻ tấn công sẽ thu thập được một số thông tin quan trọng để tấn công vào các session cấp ứng dụng và bao gồm các loại sau: + TCP/IP hijacking là một kỹ thuật tấn công sử dụng các gói tin giả mạo để lấy kết nối giữa nạn nhân và máy chủ.Các kết nối của nạn nhân bị treo, và sau đó hacker có thể giao tiếp với máy chủ, kẻ tấn công sẽ thay thế vai trò của nạn nhân. Để bắt đầu một cuộc tấn công TCP/IP hijacking thì máy tính của hacker phải cùng mạng với nạn nhân. + IP Spoofing: sử dụng kỹ thuật chuyển đổi gói tin nguồn để truy cập trái phép vào máy tính với một địa chỉ IP đáng tin cậy của một máy tính khác. Địa chỉ IP của các gói tin sẽ bị giả mạo làm cho cho server quản lý một phiên làm việc với client sẽ đồng ý chấp nhận các gói tin.Khi session được thiết lập, kẻ tấn công sẽ gửi các gói tin giả mạo trước khi client trả lời.Các gói tin ban đầu bị mất, làm cho server nhận gói tin với một số sequence number khác.Các gói tin được định tuyến lại , địa chỉ IP đích có thể được xác định bởi các hacker. + RST hijacking: liên quan đến việc gửi lại một gói tin xác thực đến server. Cần giả mạo địa chỉ nguồn và đoán số ACK chấp nhận kết nối. Nạn nhân sẽ tin rằng chính nguồn gửi các gói tin thiết lập lại kết nối và sẽ khởi tạo một kết nối mới. + Blind hijacking: Các hacker có thể bơm các dữ liệu hoặc lệnh độc hại vào các cuộc giao tiếp bị gán đoạn trong phiên giao tiếp TCP ngay cả khi định tuyến nguồn bị vô hiệu hóa. hacker có thể gửi dữ liệu hoặc các ghi chú, thông báo nhưng không truy cập để xem các phản hồi. + Man in the Middle - Packet Sniffer: trong cuộc tấn công này, các gói tin trao đổi giữa server và client sẽ bị bắt lại và được định tuyến qua máy tính của kẻ tấn công bằng cách sử dụng hai kỹ thuật sau : giả mạo ICMP (Internet Control Message – đây là phần mở rộng của giao thức IP để gửi các thông báo lỗi mà các hacker lợi dụng gửi tin nhắn để đánh lừa client và server) hay giả mạo ARP ( Address Resolution Protocol - được sử dụng để ánh xạ địa chỉ IP local thành địa chỉ phần cứng hoặc MAC address. Giả mạo ARP liên quan đến việc lừa các máy chủ bằng cách phát yêu cầu ARP và thay đổi bảng ARP của nó bằng cách gửi các gói trả lời ARP giả mạo). + UDP hijacking: hacker sẽ giả mạo server và gửi các gói tin UDP trả lời cho client trước khi server thực gửi các gói tin trả lời cho client. Sử dụng các cuộc tấn công Man in Middle theo hình thức UDP hijacking có thể tối thiểu hóa các công việc mà người tấn công phải làm vì nó có thể dừng việc trả lời của server giả khi mà các gói tin trả lời từ server giả đã đến client. Ở mức ứng dụng, hacker có thể dùng một session ID đã có hoặc thậm chí là tạo mới một session để có thể vượt qua cơ chế chứng thực của server. Việc chiếm các session ID được thực hiện bằng cách nhúng session trong URL nhận được từ các ứng dụng thông qua kiểu HTTP GET request khi một link được kích hoạt hay nhúng bên trong các trường của form – có thể là form summit trong các ứng dụng hoặc thông qua việc sử dụng các cookies. Ngoài ra, có thể dùng Sniffing.Nếu lưu lượng HTTP được gửi mà không mã hóa, kẻ tấn công có thể chặn các dữ liệu để kiểm tra và tìm các session ID.Những lưu lượng không mã hóa bao gồm cả username và password. Đây là thông tin mà kẻ tấn công có thể đánh cắp và tạo ra một session để vượt qua việc chứng thực của server. Kỹ thuật Brute Force cũng được dùng để đoán session ID. Session ID sẽ được dò dựa trên các mẫu có sẵn.Kẻ tấn công có thể tạo ra 1000 session ID trong vòng 1s để đoán session ID bằng cách dùng một đường dây DSL để kết nối. Hình thức Misdirected Trust cũng được áp dụng bằng cách sử dụng HTML injection và cross-site script để lấy thông tin session.Trong mã HTML, những code không an toàn sẽ được nhúng và khi người dùng nhấp vào một link hay kích hoạt một sự kiện thì nó sẽ gửi dữ liệu về session cho hacker. Cross-site script được sử dụng để lừa các trình duyệt thực thi các mã được nhúng bên dưới.  Nguyến lí, cơ chế của các dịch vụ bị tấn công: Hình thức tấn công session hijacking thường được sử dụng trong các ứng dụng có xác thực người dùng (có thể xác thực bằng username và password). Khi người dùng kết nối với server (các server ứng dụng như: web server, yahoo server, gmail server,…) để thực hiện chứng thực bằng cách cung cấp ID người dùng và mật khẩu của mình. Sau khi người dùng xác thực, họ có quyền truy cập đến máy chủ và các tài nguyên hệ thống.Trong quá trình hoạt động, người dùng không cần phải chứng thực lại. Kẻ tấn công lợi dụng điều này để cướp session đang hoạt động của người dùng và làm cho người dùng không kết nối được với hệ thống. Sau đó kẻ tấn công mạo danh người dùng bằng session vừa cướp được, truy cập đến máy chủ mà không cần phải đăng nhập vào hệ thống. Khi cướp được session của người dùng, kẻ tấn công có thể vượt qua quá trình chứng thực, có thể ghi lại phiên làm việc và xem lại mọi thứ đã diễn ra, có thể dùng thu thập thông tin như ID người dùng và mật khẩu. Điều này có thể gây nguy hại cho hệ thống và các người dùng khác.  Điểm yếu của dịch vụ bị tấn công: Các dịch vụ bị tấn công dưới hình thức session hijacking thường lưu các session để nhận dạng người dùng nhưng lại không có các cơ chế để theo dõi các yêu cầu từ người dùng. Ví dụ như HTTP là một giao thức phi trạng thái. Mỗi lần client giao tiếp với webserver thì server sẽ tạo một kết nối mới mà không tự động xác định trạng thái của client. Đối với các dịch vụ dùng các giao thức phi trạng thái như IP, HTTP, FTP,… hay các ứng dụng như telnet đều có thể bị tấn công session hijacking. Ngoài ra, còn có một số yếu điểm sau: do giải thuật tạo session ID còn đơn giản, session ID đặt quá ngắn, truyền tải ở dạng cleartext không được mã hóa, thời gian tồn tại session quá lâu,…  Ngữ cảnh và mục đích đạt được của cuộc tấn công: Ngữ Cảnh: khi người dùng đăng nhập vào một ứng dụng trên server bằng các thông tin chứng thực trên server và server sẽ cấp cho người dùng một chứng chỉ cho phiên làm việc. Mục đích của cuộc tấn công: kẻ tấn công sẽ chiếm phiên làm việc của người dùng đang có và tận dụng các quyền của người dùng trên hệ thống để thực hiện các mục đích khác. Để thực hiện được điều này thì kẻ tấn công phải lấy các thông tin về session của người dùng và cắt kết nối từ người dùng đến server, giả mạo địa chỉ IP của người dùng để có thể truyền dữ liệu với server. II. Mô hình triển khai  Mô hình giả lập như sau:  Các thành phần trong mô hình: + Client: khởi tạo kết nối đến server và cung cấp các thông tin chứng thực + Server: tiếp nhận các yêu cầu từ client, xác thực, tạo session đăng nhập cho client + Attacker: chiếm session, có thể ngắt hay không ngắt kết nối từ client đến server, thực hiện truyền thông với server. Các công cụ cần thực hiện để tấn công: + Wireshark: dùng để bắt các gói tin trong mạng LAN, hoạt động tốt trong môi trường mạng có dây, đối với mạng wireless thì thường chỉ bắt được các gói tin broadcast và một số các gói tin khác nên sẽ không phân tích được các session từ các gói tin. Ngoài ra, chúng ta có thể dùng Cain&Abel. Phần mềm có thêm tính năng giả mạo ARP giữa các máy nên có thể bắt gói tin tốt. Dùng để bắt gói tin và phục vụ cho việc demo tấn công session hijacking đối với các trang web. + Sidejacking (hamster và terret): phân tích các gói tin bắt được để tìm các session và tạo ra một proxy để lấy các session phân tích được để kết nối. Dùng để chiếm session đối với các trang web. + T-Sight: theo dõi các lưu lượng trong mạng, các kết nối thông qua các giao thức, và có thể chiếm hoặc hủy các kết nối giữa các máy. Dùng để demo tấn công session hijacking đối với các phiên telnet. + KpyM Telnet/SSH Server: tạo telnet server cho các client kết nối vào, phục vụ cho quá trình demo tấn công session hijacking đối với các phiên telnet. Ngoài ra, chúng ta có thể thực hiện các phần mềm khác như Hunt, Paros HTTP Hijacking,…  Các bước thực hiện tấn công: + Thiết lập kết nối trung gian giữa nạn nhân và máy đích thông qua máy hacker + Theo dõi lưu lượng gói tin. + Đoán chỉ số sequence number. + Ngắt kết nối đến máy của nạn nhân. + Chiếm phiên làm việc. + Bắt đầu gửi các gói tin đến máy chủ mục tiêu. Việc đoán chỉ số sequence number phục vụ cho quá trình gửi các gói tin từ máy của attacker đến máy đích (có thể là server), thay thế các gói tin của máy nạn nhân. Quá trình ngắt kết nối đến máy của nạn nhân để máy của nạn nhân không thể tiếp tục phiên làm việc và attacker có thể cướp session. Đối với các phiên làm việc hoạt động ở tầng ứng dụng thì có thể không cần hai bước đoán chỉ số sequence number và ngắt kết nối đến máy tính nạn nhân vì có thể có một session nhưng phục vụ cho nhiều kết nối. III. Triển khai tấn công  Session hijacking đối với các phiên telnet, mô hình như sau: Các máy trong mô hình đều dùng Windows XP Professional SP3. Sau khi tiến hành cài đặt các phần mềm cho các máy theo mô hình, ta thực hiện các bước sau: Bước 1: Bật dịch vụ telnet trên telnet server. Bước 2: Bật dịch vụ telnet client trên máy của victim. Mặc định thì telnet client được hỗ trợ trên các máy windows. Sau khi bật dịch vụ telnet client thì tiến hành telnet đến server bằng giao diện command line. Bước 3: Chạy chương trình T-sight tại máy attacker để có thể theo dõi lưu lượng telnet dùng port 23. Double click vào kết nối cần theo dõi để chiếm session. Bước 4: Tiến hành cướp session của phiên kết nối telnet. Bước 5: Sau khi tiến hành cướp session, attacker có thể thực hiện các lệnh điều khiển trên telnet server.  Session hijacking đối với các phiên truy cập web, mô hình như sau: Các máy trong mô hình dùng Windows XP Professional SP3. Sau khi cài đặt các phần mềm như hình vẽ, tiến hành các bước sau: Bước 1: Chép công cụ sidejacking vào một thư mục trên máy attacker, cụ thể là C:\hack Bước 2: Chạy chương trình wireshark trên máy attacker, chọn card mạng để bắt các gói tin. Bước 3: Tại máy victim, tiến hành vào các trang web như: mail.yahoo.com, uit.edu.vn/forum, runguyenhuu.oni.cc để đăng nhâp. Bước 4: Tại máy attacker, dừng việc bắt gói tin của wireshark và lưu các gói tin đã bắt được với tên demo.pcap vào cùng thư mục chứa công cụ sidejacking (hamster và ferret), cụ thể là C:\hack Bước 5: Tại máy của attacker, phân tích các gói tin bắt được bằng công cụ ferret để lấy session bằng cách chuyển vào thư mục chứa công cụ ferret (C:\hack) và thực hiện lệnh: ferret.exe –r demo.pcap [...]... công Ưu điểm: + Thực hiện dễ dàng với các mạng có dây và các máy nằm trong cùng một mạng LAN + Không quan tâm về mặt username/ password của nạn nhân Khuyết điểm: + Đối với mạng wireless và WAN thì thực hiện rất khó khăn và phức tạp + Trên thực tế thường bị ngăn cản bởi firewall, switch, antivirus,… + Đối với các trang web có cơ chế bảo mật tốt như gmail.com, hotmail.com,… thì không thể tấn công  Giải... hiện kết nối bằng các session đã phân tích được Bước 7: Tại máy attacker, cấu hình trình duyệt web (firefox) dùng proxy hamster để có thể dùng các session đã phân tích Lưu ý, port của hamster là 3128 Bước 8: Tại máy attacker, truy cập hamster proxy bằng trình duyệt web, chọn địa chỉ IP của máy victim, ta sẽ thấy các session được phân tích Bước 9: Tại máy attacker, vào các trang web mà victim đã vào . gói tin tốt. Dùng để bắt gói tin và phục vụ cho việc demo tấn công session hijacking đối với các trang web. + Sidejacking (hamster và terret): phân tích các gói tin bắt được để tìm các session. cross-site script để lấy thông tin session. Trong mã HTML, những code không an toàn sẽ được nhúng và khi người dùng nhấp vào một link hay kích hoạt một sự kiện thì nó sẽ gửi dữ liệu về session cho hacker thu thập được một số thông tin quan trọng để tấn công vào các session cấp ứng dụng và bao gồm các loại sau: + TCP/IP hijacking là một kỹ thuật tấn công sử dụng các gói tin giả mạo để lấy kết

Ngày đăng: 08/04/2015, 08:23

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan