Hack account Facebook, Gmail, Yahoo mail… bằng HTTP Session Sidejacking
Tình huống:
Bạn vào một quán café , có dịch vụ wifi miễn phí, bạn hăm hở kết nối vào mạng, truy cập vào Facebook.com (FB). Sau vài phút, trên wall của bạn xuất hiện một dòng status do chính bạn viết mà không phải do bạn viết, ghi là “Account FB này đã bị thâm nhập bởi abcxyz” . Bạn hết hồn, tắt máy, nhưng sau đó mở máy lại, truy cập lại vào FB, nhưng kẻ bí ẩn nào đó vẫn đang giả danh bạn post lung tung. Bạn vốn tự tin là máy mình an toàn do đã cài đặt một trình antivirus update liên tục, không bao giờ tải các chương trình bậy bạ để máy bị dính trojan hay keylogger. Ấy vậy mà Account Facebook của bạn vẫn đang bị đánh cắp trước mũi bạn.
Chuyện gì đã xảy ra với account FB của tôi ? Làm sao nó lại bị đánh cắp một cách lãng nhách và nhanh chóng vậy ?
Vâng, rất có thể bạn đã là nạn nhân của một cuộc tấn công Session Sidejacking.
Session Sidejacking là kiểu tấn công không mới, nếu không muốn nói là nó xưa rích rồi, kể từ khi phiên bản HTTP 1.1 ra đời cùng với sự hỗ trợ session cookies
Session Sidejacking là gì ?
Đây là kiểu tấn công thuộc họ man-in-middle attack, mục đích là nghe lén đường truyền giữa người dùng và các máy chủ dịch vụ bằng các công cụ sniff rồi đánh cắp các dữ liệu quan trọng liên quan tới phiên làm việc của người dùng, rồi phục dựng phiên làm việc này trên một máy tính thứ 3.
Session Sidejacking đặc biệt hữu hiệu và dễ thực hiện khi nhằm vào mục tiêu là các phiên truy cập trên môi trường web. Hướng tấn công này trong môi trường web và giao thức HTTP chủ yếu là nhằm vào việc đánh cắp session cookies -1- định danh người dùng, qua đó khôi phục phiên làm việc hiện thời của người dùng rồi sau đó người tấn công sẽ có các biện pháp tấn công sâu rộng hơn để chiếm được mật khẩu tài khoản của người dùng
Nói ngắn gọn dễ hiểu, ở một mức độ nào đó, là người tấn công sẽ dễ dàng chiếm tài khoản Facebook, gmail, yahoo của người dùng bằng HTTP Session Sidejacking
Bài viết này chủ yếu nói về cách thức tấn công HTTP Session Sidejacking . Tức hình thức tấn công Session Sidejacking nhắm vào việc đánh cắp session cookies và phục dựng là HTTP Session.
Đặc biệt: Phương thức tấn công Session Sidejacking trong bài viết này không cần phải có card mạng hỗ trợ chế độ Promiscuous ( chế độ hỗn độn ) -2- . Đây là một bước tiến bộ so với các công cụ tấn công tự động như Firesheep, hamster & ferret, khiến việc tấn công session Sidejacking trở nên dễ dàng thực hiện đối với tất cả các card mạng hiện có. Nói cách khác, ai cũng làm được
----------------------------------------------------------------
Môi trường tấn công: một mạng wifi nhiều người dùng mà bạn cũng có quyền truy cập
Mô tả quá trình tấn công:
Như đã nói ở trên, Session Sidejacking là phương thức tấn công thuộc họ Man-in-middle attack, nó thực chất là sự kết hợp của 03 kĩ thuật tấn công khác nhau bao gồm ARP Poison Routing, Network Sniffing, Cookie injection.
Quá trình tấn công sẽ diễn ra qua các bước:
Bước 1: Kết nối vào mạng wifi, nếu bạn không có quyền truy cập thì bạn phải “crack” và tìm ra password truy cập mạng Wifi (tham khảo kỹ thuật crack wifi với aircrack-ng)
Bước 2: Thực hiện ARP Poison Routing, bước này nằm giúp bạn có thể biến máy tính của bạn trở thành một router giả danh nhằm mục đích sniff -3- dữ liệu được trung chuyển trên toàn mạng wifi. Bạn nên tìm hiểu thêm về APR Poisoning attack để hiểu rõ kĩ thuật này làm như thế nào và tại sao nó có thể được thực hiện
Bước 3: Sniff tất cả dữ liệu trung chuyển trên mạng wifi sau khi mạng này đã bị ARP Poison Routing
Bước 4: lọc ra dữ liệu đến từ người dùng cụ thể, ví dụ một người dùng có IP là: 192.168.1.138
Bước 5: tái dựng lại TCP stream của phiên truy cập website của người dùng, và bóc tách dữ liệu cookie của người dùng
Bước 6: Thực hiện cookie injection, nhằm chèn dữ liệu về cookie vào trình duyệt của người tấn công
Bước 7: Khôi phục hoàn toàn phiên truy cập web của người dùng trên máy tính của người tấn công
xnohat - HVA
----------------------------------------------------
-0- Session: Phiên làm việc. Để dễ hình dung một phiên làm việc là như thế nào bạn hãy mường tượng bạn đang mở một truy cập mới vào trang facebook.com bằng trình duyệt trên máy tính của bạn. Trình duyệt của bạn thực hiện việc mở một loạt các kết nối TCP/UDP tới máy chủ web của trang web www.facebook.com, ngay lúc này phiên làm việc của bạn đã bắt đầu, vì bạn đã bắt đầu có kết nối tới trang facebook.com . Thế nhưng phiên làm việc này chưa được xác thực, tức là bạn chưa đăng nhập. Trang web www.facebook.com chưa biết bạn là ai, và bạn chưa thể truy cập các dữ liệu của mình trên trang www.facebook.com . Sau đó bạn thực hiện việc đăng nhập bằng username và password của bạn, lúc này bạn đã được xác thực, FB biết bạn là ai, và bạn truy cập được các dữ liệu cá nhân của bạn trên FB. Phiên làm việc sẽ kết thúc khi bạn đóng trình duyệt lại, mọi kết nối giữa trình duyệt của bạn và máy chủ web của www.facebook.com hoàn toàn bị đóng lại.
-1- session cookies : Các session cookies là các mẩu dữ liệu nhỏ, có thể là các files hoặc các record trong CSDL của trình duyệt, làm nhiệm vụ lưu giữ một số thông tin liên quan đến phiên làm việc của người dùng trên một trang web. Từ sự giải thích về session ở trên bạn sẽ thấy rõ cách mà trang web www.facebook.com ( hay đúng hơn là máy chủ web của www.facebook.com ) duy trì việc nó biết bạn là ai, sau khi bạn đã đăng nhập bằng username và password của mình. Đúng vậy, http://www.facebook.com/ tạo một vài session cookies trên máy tính của bạn, trong đó nó lưu trữ một số thông tin liên quan tới username của bạn và một dạng mã hóa nào đó mật khẩu ( hiểu theo cách này cho đơn giản ), cùng với một số thông tin linh tinh khác. Sau mỗi lần bạn chuyển trang ( tức click vào hyperlinks và trình duyệt chuyển bạn tới một trang web khác dĩ nhiên vẫn thuộc địa chỉ http://www.facebook.com/ , ví dụ: http://www.facebook.com/xnohat/pic?id=abcxyz ) thì http://www.facebook.com/ lại đọc lại dữ liệu từ các session cookies này để biết bạn là ai, thay vì cứ mỗi lần bạn chuyển trang nó lại phải hỏi bạn thông tin đăng nhập như username và password
-2- Promiscuous mode ( chế độ hỗn độn ) : Chế độ hỗn độn là một chế độ hoạt động đặc biệt của card mạng wireless. Ở chế độ này, Card Wireless cho phép chính nó được phép nhận lấy tất cả các gói tin trong tầm với của nó (tầm thu sóng của nó), mặc cho gói tin đó có được gửi tới cho nó hay không. Nói cách khác, card mạng wireless được phép đọc lén các gói tin gửi cho các card wireless khác trong mạng ( rất bất lịch sự ). Chế độ này không được các nhà sản xuất đưa vào các card mạng wireless thông thường từ năm 2005 vì lý do chúng được tận dụng cho mục đích xấu nhiều hơn là mục đích tốt (tỷ dụ như thực hiện crack mật khẩu mạng wifi chẳng hạn). Do đó hiện nay ngoài việc kiếm mua một card wireless chuyên dụng có hỗ trợ tính năng này thì thật khó để bạn có thể thực hiện các kĩ thuật liên quan tới Network Sniff và APR Poisoning. Tuy nhiên, cái khó ló cái khôn, nhiều chuyên gia về mạng hàng đầu ( hay các hacker cực kỳ tinh thông ) đã đưa ra thư viện Pcap. Thư viện Pcap hỗ trợ một số kỹ thuật chuyên sâu như Monitor mode – RFMon (Wireless card only) , Port mirroring, Network taps … , giúp việc thực hiện cá tác vụ Sniff, APR Poisoning có thể thực hiện trên các card mạng không hỗ trợ Promiscuous mode
-3- Sniff : Bắt gói tin . Đây là một tác vụ thường thấy trong việc phân tích luồng truy cập mạng. Tác vụ sniff này có thể tưởng tượng như là một người A gởi thư cho người B , trên đường thư được giao từ người A tới người B thì người C lén sao chép nội dung của lá thư rồi tiếp tục mang đến cho người B. Người A và B không hề biết thư đã bị sao chép và đọc lén.
Thay người A , B ,C bằng máy tính A,B,C và lá thư bằng gói tin, “trên đường đưa thư” bằng “trên đường mạng”, bạn sẽ thấy ví dụ tôi đưa ra thực sự rất tương đồng
(ST)
Bạn vào một quán café , có dịch vụ wifi miễn phí, bạn hăm hở kết nối vào mạng, truy cập vào Facebook.com (FB). Sau vài phút, trên wall của bạn xuất hiện một dòng status do chính bạn viết mà không phải do bạn viết, ghi là “Account FB này đã bị thâm nhập bởi abcxyz” . Bạn hết hồn, tắt máy, nhưng sau đó mở máy lại, truy cập lại vào FB, nhưng kẻ bí ẩn nào đó vẫn đang giả danh bạn post lung tung. Bạn vốn tự tin là máy mình an toàn do đã cài đặt một trình antivirus update liên tục, không bao giờ tải các chương trình bậy bạ để máy bị dính trojan hay keylogger. Ấy vậy mà Account Facebook của bạn vẫn đang bị đánh cắp trước mũi bạn.
Chuyện gì đã xảy ra với account FB của tôi ? Làm sao nó lại bị đánh cắp một cách lãng nhách và nhanh chóng vậy ?
Vâng, rất có thể bạn đã là nạn nhân của một cuộc tấn công Session Sidejacking.
Session Sidejacking là kiểu tấn công không mới, nếu không muốn nói là nó xưa rích rồi, kể từ khi phiên bản HTTP 1.1 ra đời cùng với sự hỗ trợ session cookies
Session Sidejacking là gì ?
Đây là kiểu tấn công thuộc họ man-in-middle attack, mục đích là nghe lén đường truyền giữa người dùng và các máy chủ dịch vụ bằng các công cụ sniff rồi đánh cắp các dữ liệu quan trọng liên quan tới phiên làm việc của người dùng, rồi phục dựng phiên làm việc này trên một máy tính thứ 3.
Session Sidejacking đặc biệt hữu hiệu và dễ thực hiện khi nhằm vào mục tiêu là các phiên truy cập trên môi trường web. Hướng tấn công này trong môi trường web và giao thức HTTP chủ yếu là nhằm vào việc đánh cắp session cookies -1- định danh người dùng, qua đó khôi phục phiên làm việc hiện thời của người dùng rồi sau đó người tấn công sẽ có các biện pháp tấn công sâu rộng hơn để chiếm được mật khẩu tài khoản của người dùng
Nói ngắn gọn dễ hiểu, ở một mức độ nào đó, là người tấn công sẽ dễ dàng chiếm tài khoản Facebook, gmail, yahoo của người dùng bằng HTTP Session Sidejacking
Bài viết này chủ yếu nói về cách thức tấn công HTTP Session Sidejacking . Tức hình thức tấn công Session Sidejacking nhắm vào việc đánh cắp session cookies và phục dựng là HTTP Session.
Đặc biệt: Phương thức tấn công Session Sidejacking trong bài viết này không cần phải có card mạng hỗ trợ chế độ Promiscuous ( chế độ hỗn độn ) -2- . Đây là một bước tiến bộ so với các công cụ tấn công tự động như Firesheep, hamster & ferret, khiến việc tấn công session Sidejacking trở nên dễ dàng thực hiện đối với tất cả các card mạng hiện có. Nói cách khác, ai cũng làm được
----------------------------------------------------------------
Môi trường tấn công: một mạng wifi nhiều người dùng mà bạn cũng có quyền truy cập
Mô tả quá trình tấn công:
Như đã nói ở trên, Session Sidejacking là phương thức tấn công thuộc họ Man-in-middle attack, nó thực chất là sự kết hợp của 03 kĩ thuật tấn công khác nhau bao gồm ARP Poison Routing, Network Sniffing, Cookie injection.
Quá trình tấn công sẽ diễn ra qua các bước:
Bước 1: Kết nối vào mạng wifi, nếu bạn không có quyền truy cập thì bạn phải “crack” và tìm ra password truy cập mạng Wifi (tham khảo kỹ thuật crack wifi với aircrack-ng)
Bước 2: Thực hiện ARP Poison Routing, bước này nằm giúp bạn có thể biến máy tính của bạn trở thành một router giả danh nhằm mục đích sniff -3- dữ liệu được trung chuyển trên toàn mạng wifi. Bạn nên tìm hiểu thêm về APR Poisoning attack để hiểu rõ kĩ thuật này làm như thế nào và tại sao nó có thể được thực hiện
Bước 3: Sniff tất cả dữ liệu trung chuyển trên mạng wifi sau khi mạng này đã bị ARP Poison Routing
Bước 4: lọc ra dữ liệu đến từ người dùng cụ thể, ví dụ một người dùng có IP là: 192.168.1.138
Bước 5: tái dựng lại TCP stream của phiên truy cập website của người dùng, và bóc tách dữ liệu cookie của người dùng
Bước 6: Thực hiện cookie injection, nhằm chèn dữ liệu về cookie vào trình duyệt của người tấn công
Bước 7: Khôi phục hoàn toàn phiên truy cập web của người dùng trên máy tính của người tấn công
xnohat - HVA
----------------------------------------------------
-0- Session: Phiên làm việc. Để dễ hình dung một phiên làm việc là như thế nào bạn hãy mường tượng bạn đang mở một truy cập mới vào trang facebook.com bằng trình duyệt trên máy tính của bạn. Trình duyệt của bạn thực hiện việc mở một loạt các kết nối TCP/UDP tới máy chủ web của trang web www.facebook.com, ngay lúc này phiên làm việc của bạn đã bắt đầu, vì bạn đã bắt đầu có kết nối tới trang facebook.com . Thế nhưng phiên làm việc này chưa được xác thực, tức là bạn chưa đăng nhập. Trang web www.facebook.com chưa biết bạn là ai, và bạn chưa thể truy cập các dữ liệu của mình trên trang www.facebook.com . Sau đó bạn thực hiện việc đăng nhập bằng username và password của bạn, lúc này bạn đã được xác thực, FB biết bạn là ai, và bạn truy cập được các dữ liệu cá nhân của bạn trên FB. Phiên làm việc sẽ kết thúc khi bạn đóng trình duyệt lại, mọi kết nối giữa trình duyệt của bạn và máy chủ web của www.facebook.com hoàn toàn bị đóng lại.
-1- session cookies : Các session cookies là các mẩu dữ liệu nhỏ, có thể là các files hoặc các record trong CSDL của trình duyệt, làm nhiệm vụ lưu giữ một số thông tin liên quan đến phiên làm việc của người dùng trên một trang web. Từ sự giải thích về session ở trên bạn sẽ thấy rõ cách mà trang web www.facebook.com ( hay đúng hơn là máy chủ web của www.facebook.com ) duy trì việc nó biết bạn là ai, sau khi bạn đã đăng nhập bằng username và password của mình. Đúng vậy, http://www.facebook.com/ tạo một vài session cookies trên máy tính của bạn, trong đó nó lưu trữ một số thông tin liên quan tới username của bạn và một dạng mã hóa nào đó mật khẩu ( hiểu theo cách này cho đơn giản ), cùng với một số thông tin linh tinh khác. Sau mỗi lần bạn chuyển trang ( tức click vào hyperlinks và trình duyệt chuyển bạn tới một trang web khác dĩ nhiên vẫn thuộc địa chỉ http://www.facebook.com/ , ví dụ: http://www.facebook.com/xnohat/pic?id=abcxyz ) thì http://www.facebook.com/ lại đọc lại dữ liệu từ các session cookies này để biết bạn là ai, thay vì cứ mỗi lần bạn chuyển trang nó lại phải hỏi bạn thông tin đăng nhập như username và password
-2- Promiscuous mode ( chế độ hỗn độn ) : Chế độ hỗn độn là một chế độ hoạt động đặc biệt của card mạng wireless. Ở chế độ này, Card Wireless cho phép chính nó được phép nhận lấy tất cả các gói tin trong tầm với của nó (tầm thu sóng của nó), mặc cho gói tin đó có được gửi tới cho nó hay không. Nói cách khác, card mạng wireless được phép đọc lén các gói tin gửi cho các card wireless khác trong mạng ( rất bất lịch sự ). Chế độ này không được các nhà sản xuất đưa vào các card mạng wireless thông thường từ năm 2005 vì lý do chúng được tận dụng cho mục đích xấu nhiều hơn là mục đích tốt (tỷ dụ như thực hiện crack mật khẩu mạng wifi chẳng hạn). Do đó hiện nay ngoài việc kiếm mua một card wireless chuyên dụng có hỗ trợ tính năng này thì thật khó để bạn có thể thực hiện các kĩ thuật liên quan tới Network Sniff và APR Poisoning. Tuy nhiên, cái khó ló cái khôn, nhiều chuyên gia về mạng hàng đầu ( hay các hacker cực kỳ tinh thông ) đã đưa ra thư viện Pcap. Thư viện Pcap hỗ trợ một số kỹ thuật chuyên sâu như Monitor mode – RFMon (Wireless card only) , Port mirroring, Network taps … , giúp việc thực hiện cá tác vụ Sniff, APR Poisoning có thể thực hiện trên các card mạng không hỗ trợ Promiscuous mode
-3- Sniff : Bắt gói tin . Đây là một tác vụ thường thấy trong việc phân tích luồng truy cập mạng. Tác vụ sniff này có thể tưởng tượng như là một người A gởi thư cho người B , trên đường thư được giao từ người A tới người B thì người C lén sao chép nội dung của lá thư rồi tiếp tục mang đến cho người B. Người A và B không hề biết thư đã bị sao chép và đọc lén.
Thay người A , B ,C bằng máy tính A,B,C và lá thư bằng gói tin, “trên đường đưa thư” bằng “trên đường mạng”, bạn sẽ thấy ví dụ tôi đưa ra thực sự rất tương đồng
(ST)