/ / 12 cách liệt kê Linux để nâng cao đặc quyền

12 cách liệt kê Linux để nâng cao đặc quyền

Liệt kê là một trong những giai đoạn quan trọng của thử nghiệm thâm nhập. Đó là điều đầu tiên cần làm khi bạn đã xâm phạm một hệ thống mục tiêu với tư cách là người kiểm tra thâm nhập. Mặc dù có rất nhiều công cụ để tự động hóa quy trình này, nhưng chúng tôi luôn khuyên bạn nên tìm kiếm thủ công và kiểm tra kỹ hệ thống để tìm các phương thức leo thang đặc quyền tiềm ẩn.


Hãy xem xét các cách khác nhau để liệt kê thủ công một hệ thống Linux để leo thang đặc quyền.


Tại sao việc liệt kê lại quan trọng đối với việc nâng cao đặc quyền?

Leo thang đặc quyền, còn được gọi là Leo thang đặc quyền (EOP) là một thành phần cốt lõi của thử nghiệm thâm nhập và phương pháp thử nghiệm thâm nhập. Như tên cho thấy, đây là giai đoạn bạn cố gắng nâng cấp đặc quyền của mình lên quản trị viên hoặc, trong các hệ thống Linux, người dùng root.

Để có được quyền root, trước tiên bạn cần tìm lỗ hổng trong hệ thống. Đây là nơi liệt kê phát huy tác dụng. Mặc dù có các công cụ để tự động hóa việc liệt kê, nhưng thường thì việc liệt kê thủ công và kỹ lưỡng có thể phát hiện ra các cấu hình sai và các lỗ hổng khác mà các công cụ không phát hiện được.

1. Hệ thống liệt kê

thống kê thông tin hệ thống

Điều đầu tiên bạn nên làm sau khi đạt được chỗ đứng ban đầu là tìm hiểu về hệ thống mà bạn đã thiết lập quyền truy cập. Điều này sẽ giúp bạn tối ưu hóa tải trọng của mình để phù hợp với kiến ​​trúc và đảm bảo khả năng tương thích tối đa của tải trọng với hệ thống đích.

Ví dụ: nếu bạn có khai thác 64 bit, bạn cần sửa đổi nó nếu hệ thống đích của bạn chỉ hỗ trợ phần mềm 32 bit vì có sự khác biệt giữa hệ thống 32 bit và 64 bit.

Ngoài ra, biết phiên bản kernel sẽ giúp bạn tìm kiếm các khai thác trên web trong trường hợp bạn thấy rằng phiên bản đó đã lỗi thời và dễ bị khai thác công khai. Dưới đây là một số lệnh sẽ giúp bạn tìm nạp thông tin hệ thống:

Để tìm thông tin hệ thống như phiên bản kernel, bản phát hành hệ điều hành, v.v., hãy nhập:

 cat /etc/cpuinfo 
uname -a

Nếu bạn muốn tìm hiểu thêm về kiến ​​trúc CPU, hãy sử dụng lệnh lscpu:

 lscpu 

2. Liệt kê quy trình

liệt kê các tiến trình trên Linux

Các quy trình là các chương trình đang được thực thi. Việc biết danh sách đầy đủ các quy trình trên hệ thống Linux, cùng với một số chiến thuật liệt kê khác được đề cập trong hướng dẫn này sẽ giúp bạn xác định các quy trình có khả năng bị tấn công và tận dụng chúng để nâng cao đặc quyền.

Chẳng hạn, nếu bạn tìm thấy một quy trình đang chạy với quyền root, bạn có thể đưa mã tùy ý vào quy trình đó, điều này có thể dẫn đến việc leo thang đặc quyền thành công.

Bạn có thể sử dụng lệnh ps với phụ trợ cờ để liệt kê tất cả các quy trình trong hệ thống:

 ps aux 

3. Liệt kê người dùng và nhóm

liệt kê các nhóm trên Linux

Việc liệt kê người dùng và nhóm là rất quan trọng để tìm ra ai có quyền truy cập vào phần nào của hệ thống. Biết được điều đó cho phép bạn xác định phạm vi mục tiêu một cách hiệu quả và xây dựng một chiến lược tấn công hiệu quả. Ngoài ra, bạn có thể tạo ánh xạ phù hợp và hiểu sâu về vai trò cũng như đặc quyền của từng tài khoản.

Khả năng hiển thị của các tài khoản đặc quyền cho phép bạn thử kết hợp tên người dùng-mật khẩu đã biết. Bạn có thể in nội dung của /etc/passwd/etc/nhóm files để truy cập danh sách người dùng. Ngoài ra, bạn cũng có thể sử dụng lệnh getent.

Để lấy danh sách người dùng trên Linux:

 getent passwd 

Để có được danh sách các nhóm:

 getent group 

4. Điều tra các tập tin nhạy cảm

truy cập tập tin passwd

Các tệp nhạy cảm như /etc/passwd/etc/shadow có khả năng rò rỉ rất nhiều thông tin. Từ /etc/shadow bạn có thể tìm thấy hàm băm của mật khẩu của người dùng và cố gắng bẻ khóa chúng bằng công cụ bẻ khóa hàm băm như Hashcat hoặc John the Ripper.

Ngoài ra còn có /etc/sudoers tệp, nếu bạn có thể chỉnh sửa bằng cách nào đó, sẽ cho phép sửa đổi quyền sudo cho người dùng và nhóm.

5. Kiểm tra quyền sudo

liệt kê quyền sudo

Quản lý thích hợp các quyền sudo là rất quan trọng đối với sự an toàn của hệ thống Linux. Phân tích các quyền sudo sẽ cung cấp cho bạn cái nhìn sâu sắc về các vectơ tiềm năng để leo thang đặc quyền. Nếu có cấu hình sai như một số chương trình có mức đặc quyền đáng báo động, bạn có thể khai thác chúng để giành quyền truy cập root.

Đây chỉ là một ví dụ về nhiều con đường tấn công có thể mở ra khi bạn hiểu rõ về các quyền sudo trong hệ thống Linux. Một ví dụ khác là lạm dụng cơ chế tải trước thư viện LD_PRELOAD mà bạn có thể liệt kê bằng cách xem các quyền sudo.

 sudo -l 

6. Tìm lỗ hổng nhân Linux

tìm khai thác nhân linux

Khai thác nhân Linux rất nguy hiểm vì chúng tấn công vào lõi của hệ điều hành đang chạy trên hệ thống bị xâm nhập. Với một lỗ hổng hạt nhân nghiêm trọng, bạn sẽ có thể làm bất cứ điều gì với hệ thống.

Để tìm các khai thác nhân, trước tiên, hãy tìm phiên bản nhân và sau đó, sử dụng một công cụ như searchsploit hoặc sử dụng Google Dork, tìm một khai thác phù hợp ảnh hưởng đến phiên bản chính xác của nhân đang chạy trên hệ thống.

7. Khai thác các tệp nhị phân SUID

liệt kê các nhị phân SUID

SUID là chữ viết tắt của Đặt ID người dùng của chủ sở hữu khi thực thi. Đây là một loại quyền đối với tệp đặc biệt, khi được đặt, sẽ thực thi một chương trình với các đặc quyền của chủ sở hữu.

Nếu một chương trình được tạo bởi người dùng root và bit SUID được đặt cho nó, thì chương trình khi được thực thi sẽ có các đặc quyền của root. SUID có thể bị lạm dụng như thế nào? Nó đơn giản.

Liệt kê tất cả các tệp nhị phân với bộ bit SUID, lướt qua danh sách, tìm tệp nhị phân mà bạn có quyền ghi và chỉnh sửa nguồn của nó để thêm tải trọng của bạn. Bạn có thể sử dụng lệnh find để tìm các nhị phân SUID và chuyển hướng đầu ra tiêu chuẩn sang /dev/null:

 find / -perm -4000 2>/dev/null 

8. Xâm nhập thư viện

Đôi khi có thể có các chương trình đang chạy trên hệ thống đang sử dụng các thư viện không được bảo vệ chống ghi. Trong trường hợp như vậy, bạn có thể dễ dàng ghi đè lên thư viện đang sử dụng và kiểm soát chức năng của chương trình.

Nếu bạn may mắn và tìm thấy một chương trình đang chạy với quyền root, bạn có thể chiếm quyền điều khiển thư viện mà nó phụ thuộc và có khả năng lấy được quyền truy cập root shell.

9. Điều tra và đánh cắp các biến môi trường

liệt kê các biến môi trường

Biến môi trường là các loại biến đặc biệt, ở một mức độ nhất định, xác định cách thức hoạt động của hệ thống và chương trình. Một biến môi trường quan trọng là biến PATH.

Nó lưu trữ vị trí của tất cả các tệp nhị phân thực thi trong hệ thống. Bạn có thể thao tác biến PATH và xâu chuỗi nó với các lỗ hổng khác như chiếm quyền điều khiển thư viện để giành quyền truy cập root.

Chẳng hạn, giả sử có một tệp thực thi với bộ bit SUID. Để hoạt động bình thường, nó gọi một nhị phân mà không xác định đường dẫn đầy đủ của nó.

Bạn có thể tận dụng điều này bằng cách tạo một phiên bản trùng lặp, độc hại của tệp nhị phân và cập nhật biến PATH với vị trí của tệp nhị phân độc hại để khi tệp thực thi SUID được chạy, tệp nhị phân độc hại của bạn sẽ được chạy với quyền root và bạn sẽ có thể sinh ra một vỏ gốc.

Hơn nữa, cũng có cơ hội tốt để tìm khóa bí mật và mật khẩu bằng cách xem qua các biến môi trường. Bạn có thể in tất cả các biến môi trường bằng lệnh env:

 env 

10. Tìm cổ vật trong lịch sử Bash

Thông thường, lịch sử của người dùng hiện tại sẽ không bị xóa. Bạn có thể lạm dụng điều này để có khả năng truy cập vào thông tin nhạy cảm hoặc chạy lại các lệnh trước đó với các tham số đã sửa đổi.

Mặc dù những điều này có thể sẽ không dẫn đến leo thang đặc quyền, nhưng đó là một nguồn rò rỉ thông tin tốt để cung cấp cho bạn thông tin rõ ràng về những gì người dùng thường làm trên hệ thống.

11. Chiếm công việc định kỳ dễ bị tổn thương

liệt kê các công việc định kỳ

Các công việc định kỳ là một tính năng được xây dựng sẵn và rất linh hoạt của Linux. Nếu bạn đã di chuyển từ Windows, một công việc định kỳ có thể được so sánh trực tiếp với một tác vụ đã lên lịch trên Windows.

Nó chạy định kỳ và thực hiện các lệnh. Cả thời gian nó sẽ chạy và các lệnh mà nó sẽ thực hiện đều được người dùng xác định trước. Đôi khi, bạn có thể tìm thấy một vài công việc định kỳ dễ bị tấn công như chèn ký tự đại diện hoặc có thể ghi được bởi người dùng mà bạn đã đăng nhập.

Bạn có thể lạm dụng các lỗ hổng này để chiếm quyền truy cập root vào hệ thống. Để khai thác một công việc định kỳ, trước tiên bạn phải tìm một công việc dễ bị tấn công. Dưới đây là các lệnh để liệt kê các công việc định kỳ hiện đang chạy và các dữ liệu liên quan khác:

 ls /etc/cron.d/
crontab -l -u <username>

12. Liệt kê các gói lỗi thời

tìm phần mềm lỗi thời

Khi bạn đã thiết lập quyền truy cập vào một hệ thống, một trong những bước đầu tiên bạn nên thực hiện là liệt kê tất cả các gói phần mềm đã cài đặt và kiểm đếm các phiên bản đã cài đặt của chúng với bản phát hành mới nhất.

Có khả năng một số gói tối nghĩa được cài đặt có thể không được sử dụng nhiều nhưng rất dễ bị tấn công leo thang đặc quyền. Sau đó, bạn có thể khai thác gói đó để có quyền truy cập root.

Sử dụng lệnh dpkg với -l để liệt kê các gói đã cài đặt trên các hệ thống dựa trên Debian và Ubuntu:

 dpkg -l 

Đối với các hệ thống RHEL/CentOS/Fedora, hãy sử dụng lệnh này để liệt kê các gói đã cài đặt:

 rpm -qa  

Bây giờ bạn đã biết cách liệt kê thủ công Linux để nâng cấp đặc quyền

Leo thang đặc quyền chỉ phụ thuộc vào phép liệt kê. Bạn càng có nhiều thông tin, bạn càng có thể lập kế hoạch tốt hơn cho các chiến lược tấn công của mình.

Việc liệt kê hiệu quả là chìa khóa để thiết lập chỗ đứng, nâng cao đặc quyền và duy trì thành công trên hệ thống mục tiêu của bạn. Mặc dù thực hiện mọi việc theo cách thủ công sẽ hữu ích nhưng một số tác vụ có thể được giao cho các công cụ tự động để tiết kiệm thời gian và công sức. Bạn phải biết về các công cụ bảo mật tốt nhất để quét hệ thống để tìm các lỗ hổng.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *