Null Session, được gọi là IPC$ trên máy chủ nền tảng Windows, là một dạng kết nối nặc danh tới một mạng chia sẻ cho phép người dùng trong mạng truy cập tự do.
Tấn công Null Session đã xuất hiện kể từ khi Windows 2000 được sử dụng rộng rãi, tuy nhiên, hình thức tấn công này không được các quản trị viên hệ thống chú ý khi áp dụng các biện pháp bảo mật mạng. Điều này có thể dẫn đến kết cục khôn lường vì tin tặc có thể sử dụng hình thức tấn công này để lấy mọi thông tin hữu dụng cần thiết để giành quyền truy cập từ xa vào hệ thống. Mặc dù không còn mới mẻ, nhưng tấn công Null Session vẫn phổ biến và nguy hiểm như những năm trước đây. Xét về một khía cạnh nào đó, mặc dù khả năng bảo mật của các hệ thống hiện đại không phải quá yếu nhưng khi thực hiện các cuộc thử nghiệm xâm nhập trên máy tính Windows thì kết quả cho thấy Null Session vẫn là một trong những hình thức cần lưu ý.
Trong bài viết này chúng ta sẽ tìm hiểu cách thức hoạt động của tấn công Null Session và phương pháp ngăn chặn nó xảy ra trên hệ thống.
Phương thức hoạt động của Null Session
Một phiên truy cập từ xa được tạo lập khi người dùng đăng nhập từ xa vào một máy tính sử dụng một tên người dùng và mật khẩu có quyền truy cập vào tài nguyên hệ thống. Tiến trình đăng nhập này được thực hiện qua giao thức SMB (Server Message Block) và dịch vụ Windows Server. Những kết nối này hoàn toàn hợp pháp khi những thông tin đăng nhập chính xác được sử dụng.
Một Null Session xảy ra khi người dùng thực hiện kết nối tới một hệ thống Windows mà không sử dụng tên người dùng hay mật khẩu. Hình thức kết nối này không thể thực hiện trên bất kỳ hình thức chia sẻ Windows thông thường nào, tuy nhiên lại có thể thực hiện trên chia sẻ quản trị IPC (Interprocess Communication). Chia sẻ IPC được các tiến trình của Windows sử dụng (với tên người dùng là SYSTEM) để giao tiếp với các tiến trình khác qua mạng này. Chia sẻ IPC chỉ được giao thức SMB sử dụng.
Chia sẻ không yêu cầu thông tin đăng nhập IPC thường được sử dụng cho những chương trình giao tiếp với một chương trình khác, tuy nhiên không có gì đảm bảo rằng người dùng không thể kết nối tới một máy tính bằng kết nối IPC này. Kết nối IPC không chỉ cho phép truy cập không giới hạn vào máy tính, mà còn trao quyền truy cập vào tất cả các máy tính trên mạng, và đây là những gì mà tin tặc cần để xâm nhập hệ thống.
Phương thức tấn công sử dụng Null Session
Giờ đây chúng ta đã biết cách thức hoạt động của Null Session, tuy nhiên ‘liệu tin tặc có thể sử dụng hình thức tấn công này dễ dàng hay không?’ Câu trả lời là ‘khá dễ dàng’. Kết nối Null Session có thể được thiết lập trực tiếp từ một lệnh Windows mà không cần sử dụng công cụ bổ sung, đó chính là lệnh NET. Lệnh NET có thể thực hiện nhiều chức năng quản trị, khi sử dụng lệnh này chúng ta có thể tạo một kết nối tới một chia sẻ tiêu chuẩn trên máy chủ đích, tuy nhiên kết nối này sẽ thất bại do những thông tin đăng nhập không chính xác.
Tấn công Null Session đã xuất hiện kể từ khi Windows 2000 được sử dụng rộng rãi, tuy nhiên, hình thức tấn công này không được các quản trị viên hệ thống chú ý khi áp dụng các biện pháp bảo mật mạng. Điều này có thể dẫn đến kết cục khôn lường vì tin tặc có thể sử dụng hình thức tấn công này để lấy mọi thông tin hữu dụng cần thiết để giành quyền truy cập từ xa vào hệ thống. Mặc dù không còn mới mẻ, nhưng tấn công Null Session vẫn phổ biến và nguy hiểm như những năm trước đây. Xét về một khía cạnh nào đó, mặc dù khả năng bảo mật của các hệ thống hiện đại không phải quá yếu nhưng khi thực hiện các cuộc thử nghiệm xâm nhập trên máy tính Windows thì kết quả cho thấy Null Session vẫn là một trong những hình thức cần lưu ý.
Trong bài viết này chúng ta sẽ tìm hiểu cách thức hoạt động của tấn công Null Session và phương pháp ngăn chặn nó xảy ra trên hệ thống.
Phương thức hoạt động của Null Session
Một phiên truy cập từ xa được tạo lập khi người dùng đăng nhập từ xa vào một máy tính sử dụng một tên người dùng và mật khẩu có quyền truy cập vào tài nguyên hệ thống. Tiến trình đăng nhập này được thực hiện qua giao thức SMB (Server Message Block) và dịch vụ Windows Server. Những kết nối này hoàn toàn hợp pháp khi những thông tin đăng nhập chính xác được sử dụng.
Một Null Session xảy ra khi người dùng thực hiện kết nối tới một hệ thống Windows mà không sử dụng tên người dùng hay mật khẩu. Hình thức kết nối này không thể thực hiện trên bất kỳ hình thức chia sẻ Windows thông thường nào, tuy nhiên lại có thể thực hiện trên chia sẻ quản trị IPC (Interprocess Communication). Chia sẻ IPC được các tiến trình của Windows sử dụng (với tên người dùng là SYSTEM) để giao tiếp với các tiến trình khác qua mạng này. Chia sẻ IPC chỉ được giao thức SMB sử dụng.
Chia sẻ không yêu cầu thông tin đăng nhập IPC thường được sử dụng cho những chương trình giao tiếp với một chương trình khác, tuy nhiên không có gì đảm bảo rằng người dùng không thể kết nối tới một máy tính bằng kết nối IPC này. Kết nối IPC không chỉ cho phép truy cập không giới hạn vào máy tính, mà còn trao quyền truy cập vào tất cả các máy tính trên mạng, và đây là những gì mà tin tặc cần để xâm nhập hệ thống.
Phương thức tấn công sử dụng Null Session
Giờ đây chúng ta đã biết cách thức hoạt động của Null Session, tuy nhiên ‘liệu tin tặc có thể sử dụng hình thức tấn công này dễ dàng hay không?’ Câu trả lời là ‘khá dễ dàng’. Kết nối Null Session có thể được thiết lập trực tiếp từ một lệnh Windows mà không cần sử dụng công cụ bổ sung, đó chính là lệnh NET. Lệnh NET có thể thực hiện nhiều chức năng quản trị, khi sử dụng lệnh này chúng ta có thể tạo một kết nối tới một chia sẻ tiêu chuẩn trên máy chủ đích, tuy nhiên kết nối này sẽ thất bại do những thông tin đăng nhập không chính xác.
Hình 1: Kết nối thất bại vào một mạng chia sẻ sử dụng lệnh NET.
Khi sử dụng lệnh NET, chúng ta có thể thay đổi tên chia sẻ kết nối tới chia sẻ quản trị IPC$. Khi đó kết quả sẽ khả quan hơn.Hình 2: Kết nối Null Session thành công với lệnh NET.
Lúc này, chúng ta đã thiết lập một kết nối Null Session tới máy tính nạn nhân. Tuy nhiên, chúng ta vẫn chưa có quyền truy cập quản trị trên máy tính này do đó chưa thể bắt đầu duyệt tìm ổ cứng hay lấy mật khẩu. Cần nhớ rằng, chia sẻ IPC được sử dụng để giao tiếp giữa các tiến trình, do đó quyền truy cập của chúng ta sẽ bị giới hạn xuống quyền truy cập của tên người dùng SYSTEM. Chúng ta có thể sử dụng lệnh NET để lấy nhiều thông tin hơn từ máy tính mục tiêu, tuy nhiên có nhiều công cụ tự động hóa sẽ thực hiện các công việc rắc rối nàyTheo WindowSecurity