Trong phần này chúng tôi sẽ giới thiệu cho 
các bạn về tấn công chiếm quyền  điều khiển Session, cùng  với đó là 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. 
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:
- Truy 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.
