Sựleo thang đặc quyền có thểhiểu đơn giản là một phương thức tấn công mà với cách 
này, các User có quyền hạn thấp hơn sẽtấn công vào một điểm dễbịtổn thương nhất của 
hệthống đểtrởthành một người quản trịhoặc có thểtrởthành các User có quyền hạn cao 
hơn. Cách đểleo thang đặc quyền mà ta có thểnghĩngay đến đó là việc chiếm quyền 
thông qua crack password của người quản trị, tấn công tràn bộ đệm của máy đó và ăn cắp 
password. Bài phân tích này sẽ đưa ra một điểm yếu chung mà có thể được khai thác để
ăn cắp password và sau đó là leo thang đặc quyền. Và cũng qua bài phân tích này, chúng 
ta sẽthấy được các nhược điểm của các hệthống từ đó đánh giá đúng hơn vềviệc tấn 
công leo thang đặc quyền và tầm quan trọng của việc tiến hành vá lỗi liên tục cho hệ
thống
              
                                            
                                
            
 
            
                 5 trang
5 trang | 
Chia sẻ: oanh_nt | Lượt xem: 1339 | Lượt tải: 0 
              
            Nội dung tài liệu Tìm hiểu về tấn công leo thang - Crack password trong bộ nhớ, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Tìm hiểu về tấn công leo thang - crack password trong bộ nhớ 
1. Giới thiệu: 
Sự leo thang đặc quyền có thể hiểu đơn giản là một phương thức tấn công mà với cách 
này, các User có quyền hạn thấp hơn sẽ tấn công vào một điểm dễ bị tổn thương nhất của 
hệ thống để trở thành một người quản trị hoặc có thể trở thành các User có quyền hạn cao 
hơn. Cách để leo thang đặc quyền mà ta có thể nghĩ ngay đến đó là việc chiếm quyền 
thông qua crack password của người quản trị, tấn công tràn bộ đệm của máy đó và ăn cắp 
password. Bài phân tích này sẽ đưa ra một điểm yếu chung mà có thể được khai thác để 
ăn cắp password và sau đó là leo thang đặc quyền. Và cũng qua bài phân tích này, chúng 
ta sẽ thấy được các nhược điểm của các hệ thống từ đó đánh giá đúng hơn về việc tấn 
công leo thang đặc quyền và tầm quan trọng của việc tiến hành vá lỗi liên tục cho hệ 
thống. 
2. Yếu điểm để tấn công: 
Khi các server và các ứng dụng lưu trữ password được mã hoá hoặc dạng số trong ổ 
cứng, chúng ta thấy rằng trong một vài trường hợp thì việc mã hoá không được áp dụng 
cho việc lưu trữ password trong bộ nhớ. Các truy cập thông thường đến bộ nhớ không bị 
giới hạn bởi các quyền truy cập của các nhóm user. Chính vì vậy, các attackers với các 
truy cập vào hệ thống có thể đọc được bộ nhớ và các password không mã hoá. Việc sử 
dụng các chương trình truy cập trực tiếp vào bộ nhớ sẽ giúp cho các Attacker kiểm soát 
được việc xử lý trong một vùng nhớ nào đó và có thể đọc các thông tin của password này. 
Các password có thể là password quản trị của một server, một password của user cho các 
ứng dụng hoặc là một password cho cơ sở dữ liệu. Và chỉ cần phát hiện ra được một 
Password cho ứng dụng thì coi như việc tấn công leo thang đặc quyền đã thành công. Vì 
vậy bất cứ ứng dụng nào mà việc sử dụng các password cho việc xác thực không được 
mã hoá thì đều có thể được xem như là một điểm yếu của hệ thống và tại đây việc tấn 
công leo thang đặc quyền đều có thể xảy ra. 
3. Vị trí của Password trong bộ nhớ: 
Một chương trình hiển thị bộ nhớ sẽ đưa ra toàn bộ các đoạn mã và các dữ liệu được xử 
lý tại memory. Dữ liệu chung là tương đối lớn và có thể bao gồm cả các dữ liệu được mã 
hoá cũng như các dữ liệu ở dạng Text. Password có thể nằm trong bộ nhớ tại hai vị trí 
sau: 
• Bằng cách tìm các password tại các vị trí cố định trong bộ nhớ. Tất cả các cài 
đặt của các chương trình ứng dụng bao gồm cả các password đều được đặt tại 
một vị trí cố định trong bộ nhớ. Ví dụ, tất cả các truy cập của một server đều 
được lưu trữ password tại vị trí 10BD862C. Khi địa chỉ này được xác định thì 
password có thể được giải mã ra từ bộ nhớ nếu một Attacker có thể đọc được 
các thông tin trong bộ nhớ. Để phát hiện vị trí của một password của một ứng 
dụng, các attacker có thể tự cài đặt một ứng dụng tương tự trên hệ thống của 
họ, sau đó sẽ tìm kiếm vị trí của password trong bộ nhớ, sau khi tìm xong, 
attacker có thể sử dụng vị trí đó để có thể tiến hành tìm kiếm password trên 
máy của nạn nhân. 
• Một cách khác đó là attacker sẽ sử dụng các tên của User và Password dùng 
chung của cùng một hệ thống. Ví dụ, các attacker có thể tạo ra các mẫu User 
và Password trên hệ thống của họ, sau đó dùng các chương trình hiển thị giá 
trị của bộ nhớ, và tìm đến vị trí của các user mẫu, ví dụ tên “Admin”, 
“Administrator”, “Administrators”,… và như vậy sẽ kiếm được các thông tin 
về các giá trị này. 
4. Password sẽ được lưu trong bộ nhớ khi nào ? 
Hãy xem qua ví dụ sau đây và bạn sẽ hiểu được khi nào thì password sẽ được lưu vào bộ 
nhớ: 
Khi một ứng dụng tại server được khởi động, nó sẽ đọc các đối số trong các dòng lệnh 
của Java và các biến môi trường và kết nối đến một cổng TCP. Ứng dụng sẽ xác định hệ 
điều hành mà user sử dụng và nhóm làm việc (thực hiện xác thực). Ứng dụng cũng sẽ 
kiểm tra một file cấu hình để lấy tất cả các thông tin cấu hình của nó. 
Trong lúc khởi động, server tải password của người quản trị vào trong bộ nhớ dưới dạng 
Plain text. Trong số trường hợp khác, file cấu hình có thể cung cấp thông tin để kết nối 
đến các nguồn CSDL bao gồm cả password để đăng nhập vào CSDL. Server cũng tải các 
password vào bộ nhớ dưới dạng plain text. Một số lựa chọn khác cho phép password có 
thể không được load khi server được khởi động nhưng nó vẫn xuất hiện trong bộ nhớ khi 
người quản trị hoặc một user đã được xác thực. Sau đó, password sẽ vẫn được lưu trong 
bộ nhớ mặc dù user đó đã log out. 
5. Thực nghiệm: 
Chúng ta hãy thực hiện một thực nghiệm sau để chứng tỏ vấn đề trên. Tuy nhiên có thể 
bạn sẽ không thể thành công ngay lần đầu tiên. Bạn có thể tiến hành như sau: 
Ø Xác định một server, một server ứng dụng hoặc là một webserver. Server tải các 
password quản trị vào bộ nhớ khi nó được khởi động, Các attacker sẽ sử dụng các tài 
khoản của họ để đăng nhập vào hệ thống và mở một chwong trình hiển thị thông tin bộ 
nhớ. Với các chương trình hiển thị thông tin bộ nhớ, họ có thể xem được các thông tin về 
password của các user. Sau khi đã biết được các thông số đó, cuộc tấn công leo thang đặc 
quyền sẽ được thực hiện. 
Ø Trong một trường hợp khác, server không load password lúc khởi động, nhưng nó sẽ 
được load vào bộ nhớ khi người quản trị được xác thực. Sau đó pass này sẽ được lưu trữ 
trong suốt quá trình server chạy. Mặc dù việc truy cập của người quản trị là thông qua 
truy cập từ xa nhưng bộ nhớ của server vẫn lưu trữ password dưới dạng plain text và có 
thể được phát hiện. 
Ø Và sau đây là trường hợp mà các password của một CSDL bị các attacker tấn công. 
Phát hiện một server được sử dụng để lưu trữ CSDL. Các kết nối đến nguồn sẽ bao gồm 
thông tin về username và password của CSDL. Khi server được khởi động nó sẽ load 
password của cơ sở dữ liệu vào bộ nhớ khi kết nối đến nguồn. Tương tự như trên, chỉ cần 
sử dụng các chương trình hiển thị thông tin bộ nhớ và tìm kiếm password. 
Để thực hiện những gì đã nói trên, tại ví dụ, tôi sử dụng chương trình MySQL, 
và Winhex. 
Sau khi cài đặt MySQL, tôi đặt user và pass là admin/adminvn. Thực hiện đăng nhập như 
là một hành động của một nhà quản trị mạng. Sau đó Log out, lúc này, tôi cũng đóng vai 
Attacker đã tiếp cận được Server về mặt vật lý. Tôi cho chạy chương trình Winhex. Lưu 
ý chương trình này có thể chạy mà không cần phải cài đặt. Sau khi chạy chương trình, tại 
cửa sổ Winhex, chọn Tools > RAM Editor > WinmySQLAdmin > sau đó tìm user Admin 
(Bạn có thể xem hình)... Như vậy đã thành công 
6. Vấn đề mất password 
Đây là một vấn đề được nhắc đến nhiều trong việc hạn chế các tấn công của attacker. 
Nhân đây cũng nhắc lại về vấn đề này luôn, bạn có thể chú ý một số điểm sau: 
- Thay đổi password thường xuyên để không bị mất password. 
- Các password cần được đặt gồm đủ các ký tự cả số, không nên đặt password có liên 
quan đến bản thân vì như vậy làm tăng nguy cơ password bị attacker đoán được. 
- Nên xoá các user không cần thiết sử dụng nếu như thật sự không cần nhằm giảm nguy 
cơ bị tấn công leo thang đặc quyền. 
- Một số lưu ý nữa bạn có thể tham khảo thêm các chủ đề liên quan. 
7. Vấn đề về tấn công điểm yếu: 
Cách tốt nhất để hạn chế đến mức tối đa vấn đề đã được nêu trên đó là: 
- Không cho người lạ mặt tìm hiểu về hệ thống và có các tác động vật lý vào server. 
- Thiết lập quyền không cho cài đặt các chương trình lạ đối với các user không tin cậy 
vào máy server. 
            Các file đính kèm theo tài liệu này:
 tim_hi_u_v_t_n_cong_leo_thang.pdf tim_hi_u_v_t_n_cong_leo_thang.pdf