Trong hai phần đầu của loạt bài giới thiệu về các
tấn công man-in-the-middle này, chúng tôi đã giới thiệu cho các bạn về
tấn công giả mạo ARP cache, giả mạo DNS. Như những gì chúng tôi đã giới
thiệu trong các ví dụ đó, các tấn công MITM ra rất hiệu quả và rất khó
bị phát hiện. Tuy nhiên trong phần ba của loạt bài này, chúng tôi sẽ
giới thiệu thêm cho các bạn một cách tấn công mới, đó là tấn công chiếm
quyền điều khiển session. Cũng như trong hai phần trước, chúng tôi sẽ
giới thiệu một số lý thuyết và cách thức thực hiện tấn công cũng như
cách phát hiện và biện pháp phòng chống.
Chiếm quyền điều khiển Session
Thuật ngữ chiếm quyền điều khiển session (session
hijacking) chứa đựng một loạt các tấn công khác nhau. Nhìn chung, các
tấn công có liên quan đến sự khai thác session giữa các thiết bị đều
được coi là chiếm quyền điều khiển session. Khi đề cập đến một
session, chúng ta sẽ nói về kết nối giữa các thiết bị mà trong đó có
trạng thái đàm thoại được thiết lập khi kết nối chính thức được tạo,
kết nối này được duy trì và phải sử dụng một quá trình nào đó để ngắt
nó. Khi nói về các session, lý thuyết có đôi chút lộn xộn, chính vì
vậy chúng ta hãy xem xét một session theo một cảm nhận thực tế hơn.
Trong bài này chúng tôi sẽ giới thiệu cho các bạn về
hành động chiếm quyền điều khiển session có liên quan đến các session
HTTP. Nếu để ý một số website mà bạn truy cập có yêu cầu thông tin
đăng nhập thì chúng chính là các ví dụ tuyệt vời cho các kết nối hướng
session. Bạn phải được thẩm định bởi website bằng username và password
để thiết lập session, sau đó website sẽ duy trì một số hình thức kiểm
tra session để bảo đảm bạn vẫn được đăng nhập và được phép truy cập tài
nguyên (thường được thực hiện bằng một cookie), khi session kết thúc,
các chứng chỉ username và password sẽ được xóa bỏ và đó cũng là khi
session hết hiệu lực. Đây là một ví dụ cụ thể về session mà mặc dù
chúng ta không phải lúc nào cũng nhận ra nó, các session sẽ xuất hiện
liên tục và hầu hết sự truyền thông đều dựa vào một số hình thức của
session hoặc hành động dựa trên trạng thái.
Hình 1: Một Session bình thường
Như những gì chúng ta thấy trong các tấn công trước,
không có thứ gì khi đi qua mạng được an toàn, và dữ liệu session cũng
không có gì khác biệt. Nguyên lý ẩn phía sau hầu hết các hình thức chiếm
quyền điều khiển session là nếu có thể chặn phần nào đó dùng để thiết
lập một session, khi đó bạn có thể sử dụng dữ liệu đó để thủ vai một
trong số những thành phần có liên quan trong truyền thông và từ đó có
thể truy cập các thông tin session. Ví dụ trên của chúng tôi có nghĩa
rằng nếu chúng ta capture cookie được sử dụng để duy trì trạng thái
session giữa trình duyệt của bạn và website mà bạn đang đăng nhập vào,
thì chúng ta có thể trình cookie đó với máy chủ web và thủ vai kết nối
của bạn. Đứng trên quan điểm của những kẻ tấn công thì điều này quả là
thú vị.
Hình 2: Chiếm quyền điều khiển
Giờ đây chúng ta đã có một chút lý thuyết, hãy đi tìm hiểu sâu một ví dụ thực tế.
Đánh cắp Cookies bằng Hamster và Ferret
Trong kịch bản thực tiễn của mà chúng tôi đưa ra,
chúng ta sẽ thực hiện một tấn công chiếm quyền điều khiển session bằng
cách chặn sự truyền thông của một người dùng đang đăng nhập vào tài
khoản Gmail của anh ta. Sử dụng sự truyền thông bị chặn này, chúng ta
sẽ thủ vai người dùng đó và truy cập vào tài khoản từ máy tính đang
tấn công của mình.
Để thực hiện được tấn công này, chúng ta sẽ sử dụng
hai công cụ có tên Hamster và Ferret. Bạn có thể download cả hai công
cụ này tại đây.
Ngoài ra bạn có thể download và sử dụng Backtrack 4.
BT4 là một phân phối live-CD của Linux, được thiết kế chuyên cho việc
hack và test quá trình thâm nhập bởi các công cụ đã được biên dịch và
cài đặt trước, Hamster/Ferret là hai trong số đó. Bạn có thể download
BT4 tại đây.
Sau đó sẽ tìm Hamster trong thư mục /pentest/sniffers/hamster. Các
hình ảnh ví dụ được sử dụng trong phần dưới của hướng dẫn này được lấy
từ BT4.
Bước đầu tiên có liên quan đến trong hình thức chiếm
quyền điều khiển session này là capture lưu lượng của một người dùng là
nạn nhân khi anh ta duyệt Facebook. Lưu lượng này có thể được capture
bằng bất cứ ứng dụng “đánh hơi” dữ liệu nào, chẳng hạn như TCPDump
hoặc Wireshark, tuy nhiên để capture đúng các gói dữ liệu, bạn sẽ cần
sử dụng kỹ thuật như giả mạo ARP cache (đã được giới thiệu trong phần
đầu tiên của loạt bài này).
Hình 3: Capture lưu lượng người dùng đang duyệt Gmail
Khi đã capture lưu lượng của nạn nhân khi người này
đang duyệt đến Gmail, bạn cần lưu file đã capture vào thư mục Hamster.
Với mục đích ví dụ, chúng tôi đã đặt tên file là victim_gmail.pcap. Khi
file đó được đặt đúng chỗ, chúng ta sẽ sử dụng Ferret để xử lý file.
Điều này được thực hiện bằng cách duyệt đến thư mục Hamster và chạy
lệnh, ferret –r victim_gmail.pcap. Ferret sẽ xử lý file và tạo một file hamster.txt có thể được sử dụng bởi Hamster để chiếm quyền điều khiển một session.
Hình 4: Xử lý file capture bằng Ferret
Với dữ liệu HTTP đã chặn và đã chuẩn bị để sử dụng,
chúng ta có thể sử dụng Hamster để thực thi tấn công. Bản thân Hamster
sẽ làm việc như một proxy để cung cấp giao diện cho việc duyệt và sử
dụng các session cookie đánh cắp. Để bắt đầu Hamster proxy, bạn có thể
thực thi Hamster mà không cần các tùy chọn dòng lệnh.
Hình 5: Khởi chạy Hamster
Khi thực thi, bạn cần mở trình duyệt của mình và cấu
hình các thiết lập proxy của nó sao cho tương ứng với các thiết lập
được cung cấp bởi đầu ra Hamster. Mặc định, điều này có nghĩa bạn sẽ
cấu hình các thiết lập proxy của mình để sử dụng địa chỉ loopback nội
bộ 127.0.0.1 trên cổng 1234. Bạn có thể truy cập các thiết lập này
trong Internet Explorer bằng cách chọn Tools, Internet Options, Connections, LAN Settings, và tích vào hộp kiểm “Use a proxy server for your LAN”.
Hình 6: Cấu hình các thiết lập proxy để sử dụng với Hamster
Lúc này các thiết lập proxy sẽ được sử dụng và bạn
có thể truy cập giao diện điều khiển Hamster trong trình duyệt của mình
bằng cách duyệt đến http://hamster. Hamster sẽ sử dụng file được tạo
bởi Ferret để tạo danh sách các địa chỉ IP cho người mà thông tin
session của họ bị chặn và hiển thị các địa chỉ IP đó ở panel bên phải
trình duyệt. File mà chúng ta tạo chỉ chứa một địa chỉ IP của nạn
nhân, vì vậy nếu kích vào panel bên trái, chúng ta sẽ populate (định cư) các session cho việc chiếm quyền.
Hình 7: Hamster GUI
Chúng ta sẽ thấy facebook.com được liệt kê ở đây,
nếu kích vào liên kết đó, bạn sẽ thấy một cửa sổ mới đã đăng nhập vào
tài khoản Facebook nạn nhân!
Hình 8: Chiếm quyền điều khiển thành công một tài khoản Gmail
Cách chống tấn công chiếm quyền điều khiển Session
Do có nhiều hình thức chiếm quyền điều khiển session
khác nhau nên cách thức phòng chống cũng cần thay đổi theo chúng.
Giống như các tấn công MITM khác mà chúng ta đã đánh giá, tấn công
chiếm quyền điều khiển session khó phát hiện và thậm chí còn khó khăn
hơn trong việc phòng chống vì nó phần lớn là tấn công thụ động. Trừ khi
người dùng mã độc thực hiện một số hành động rõ ràng khi anh ta truy
cập session đang bị chiếm quyền điều khiển, bằng không bạn có thể sẽ
không bao giờ biết tấn công đó đang diễn ra. Đây là một số thứ mà bạn
có thể thực hiện để phòng chống tấn công này:
- Tuy cập ngân hàng trực tuyến tại nhà – Cơ hội để ai đó có thể chặn lưu lượng của bạn trên mạng gia đình ít hơn nhiều so với mạng ở nơi làm việc. Điều này không phải vì máy tính ở nhà của bạn thường an toàn hơn, mà vấn đề là bạn chỉ có một hoặc hai máy tính tại nhà, hầu hết chỉ phải lo lắng về tấn công chiếm quyền điều khiển session nếu con bạn đã hơn 14 tuổi và đã bắt đầu xem các đoạn video hacking trên YouTube rồi từ đó học và làm theo. Trên mạng công ty, bạn không biết những gì đang diễn ra bên dưới tiền sảnh hoặc trong văn phòng chi nhánh cách đó 200 dặm, vì vậy nguồn tấn công tiềm ẩn là rất nhiều. Cần biết rằng một trong những mục tiêu lớn nhất của tấn công chiếm quyền điều khiển session là tài khoản ngân hàng trực tuyến, tuy nhiên ngoài ra nó còn được áp dụng cho mọi thứ.
- Cần có sự hiểu biết về tấn công – Những kẻ tấn công tinh vi, kể cả đến các hacker dày dạn nhất cũng vẫn có thể mắc lỗi và để lại dấu vết đã tấn công bạn. Việc biết thời điểm nào bạn bị đăng nhập vào các dịch vụ dựa trên session có thể giúp bạn xác định được rằng liệu có ai đó đang rình rập mình hay không. Do đó nhiệm vụ của bạn là cần phải canh trừng mọi thứ, quan tâm đến thời gian đăng nhập gần nhất để bảo đảm mọi thứ vẫn diễn ra tốt đẹp.
- Bảo mật tốt cho các máy tính bên trong – Các tấn công này thường được thực thi từ bên trong mạng. Do đó nếu các thiết bị mạng của bạn an toàn thì cơ hội cho kẻ tấn công thỏa hiệp được các host bên trong mạng của bạn sẽ ít đi, và từ đó giảm được nguy cơ tấn công chiếm quyền điều khiển session.
Kết luận
Cho đến đây chúng tôi đã giới thiệu cho các bạn ba
kiểu tấn công MITM rất nguy hiểm có thể gây ra những hậu quả nghiêm
trọng nếu chúng được thực hiện thành công. Các bạn cần phải biết rằng,
sử dụng kiểu tấn công chiếm quyền điều khiển session, kẻ tấn công với
những ý định xấu có thể truy cập vào tài khoản ngân hàng trực tuyến,
email của người dùng hoặc thậm chí cả các ứng dụng nhậy cảm trong mạng
nội bộ. Trong phần tiếp theo của loạt bài này, chúng tôi sẽ giới thiệu
cho các bạn một tấn công MITM nguy hiểm khác, giả mạo SSL.
Theo Windowsecurity
0 comments:
Post a Comment