Tải bản đầy đủ (.pdf) (5 trang)

- crack password trong bộ nhớ pps

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (872.09 KB, 5 trang )

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.

×