Advertisement

Responsive Advertisement

Wonderland – Tryhackme

 

Thực hiện sử dụng nmap để thu thập thông tin của máy victim
nmap -sC -sV 10.10.74.161
1.PNG
Sau khi thu thập được cổng dịch vụ victim đang có là 22 và 80 tiếp tục đi khai thác xem chúng có gì
Bước 2: Khai thác dịch vụ web
Mình vô web của victim
2.PNG
Thấy ở đây có dòng chữ cried Alice đây chỉ một tên người nên mình dự đoán alice có thể là username của hệ thống. Tiếp theo đó mình kiểm tra mã nguồn của trang web phát hiện thư mục đường dẫn /img.
3.PNG
4.PNG
Ngoài chứa link ảnh con thỏ ở trang đầu còn 2 ảnh khác nữa, nên mình tải cả 3 ảnh về máy kali và sử dụng công cụ phân tích hình ảnh steghide
Khi mình sử dụng steghide phát hiện chỉ có white_rabbit_1.jpg có thông tin là một tệp hint.txt
5.PNG
Mình đọc nội dung tệp hint.txt nó bảo mình phải xem gì đó ở r a b b i t  mình nghĩ đến đây là một đường dẫn url, thử vô nhưng không được vì không có đường dẫn nào để dấu cách như này cả.
6.PNG
Và mình thử thay dấu cách đó bằng dấu ‘/’ phân tách dường dẫn và kết quả mình đã truy cập được một giao diện khác.
7.PNG
Trong giao diện này có đoạn hội thoại của 3 nhân vật alice, cat, hatter mình khẳng định rằng đây có thể là username mà hệ thống này đang có, mình tiếp tục kiểm tra mã nguồn của nó và phát hiện điều thú vị.
8.PNG
Bạn có thông tin dùng để đăng nhập, mình thử thông tin đó đi khai thác dịch vụ SSH và đã login thành công.
Bước 3: Khai thác dịch vụ ssh
Khi đăng nhập ssh với user alice mình kiểm tra thư mục chính nó, thấy có tệp root.txt nhưng chỉ có root mới có quyền đọc, không thấy tệp user.txt đâu cả vậy nên phải đi tìm thôi à.
9.PNG
Mình thử sử dụng lệnh find tìm kiếm user.txt nhưng không có gì trả về cho mình cả
10.PNG
Lúc này mình tìm cách khác, để ý tại thư mục của alice có tập tin walrus_and_the_carpenter.py mình thử dùng lệnh sudo -l xem có thể leo thăng đặc quyền mà sử dụng tệp walrus_and_the_carpenter.py này không và thấy rằng có thể leo thang lên user là rabbit
11.PNG
Đọc tập tin walrus_and_the_carpenter.py mình thấy nó có sử dụng thư viện random trong để hiển thị nội dung là đoạn thơ.

import random
poem = “””The sun was shining on the sea,
Shining with all his might:
He did his very best to make
The billows smooth and bright —
And this was odd, because it was
The middle of the night.

The moon was shining sulkily,
Because she thought the sun
Had got no business to be there
After the day was done —
“It’s very rude of him,” she said,
“To come and spoil the fun!”

The sea was wet as wet could be,
The sands were dry as dry.
You could not see a cloud, because
No cloud was in the sky:
No birds were flying over head —
There were no birds to fly.

The Walrus and the Carpenter
Were walking close at hand;
They wept like anything to see
Such quantities of sand:
If this were only cleared away,”
They said, “it would be grand!

[…]

for i in range(10):
line = random.choice(poem.split(“\n”))

Vậy nên mình tạo một tệp random.py để thay vi gọi thư viện random của python thì sẽ sử dụng luôn tệp random.py mà mình tạo ra ở cùng đường dẫn chưa tệp walrus_and_the_carpenter.py.

# cat random.py

import os

os.system(“/bin/bash“)

Sau đó mình thực hiện lệnh:

sudo -u rabbit /usr/bin/python3.6 /home/alice/walrus_and_the_carpenter.py

12.PNG

Mình leo thăng lên user rabbit thành công, mình đi đến thư mục home/ của user này xem có gì nào phát hiện ra còn 2 user khác nữa là hatter và tryhackme sẽ có giả thiết sinh ra là từ rabbit có thể leo thăng lên 1 trong 2 user này, nhưng dựa vào thông tin thu thập ở web thì chắc chắn sẽ là hatter 😆 😆 😆

13.PNG

Mình vào tiếp thư mục rabbit xem và phát hiện nó có một tệp thực thi là teaParty có quyền SUID (tức là user thường có thể chạy tệp tin dưới quyền user root)  khi mình chạy tệp này phát hiện tệp này gọi đến hàm date trên linux để xuất ra kết quả.

15.PNG

14.PNG

Do sử dụng hàm date để hiện thị kết quả thực thi, mình sẽ tạo ra một tệp date dạng bash shell và thêm nó vào biến môi trường thực thi để thay vì gọi đến hàm date của linux nó sẽ gọi đến tệp date mình tạo để leo thăng.

export PATH=/tmp:$PATH

echo $PATH

/tmp:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

cat /tmp/date

#!/bin/bash

/bin/bash

16.PNG

Sau khi vào được user hatter, mình kiểm tra thư mục /home/hatter phát hiện một tệp tin password.txt mình đọc nội dung của nó và đoán đây chính là mật khẩu ssh của hatter mình đem thử nghiệm và kết quả là đăng nhập thành công 😀  😀  😀

17.PNG

18.PNG

Sau đó mình thử dụng lệnh sau xem hatter có thể dùng gì để leo thăng không và phát hiện có thể dùng perl để setuid

getcap -r / 2>/dev/null

19.PNG

Bước 4: Leo thăng user root

Mình sử dụng GTFObins để khai thác leo thăng

perl -e ‘use POSIX qw(setuid); POSIX::setuid(0); exec “/bin/sh”;’

python3 -c 'import pty; pty.spawn("/bin/sh")'

20.PNG

Đọc cờ root.txt đầu tiên

21.PNG

Mình vô thư mục  /root và phát hiện tệp user.txt đọc nốt.

22.PNG

Complete :mrgreen: :mrgreen: :mrgreen:

Post a Comment

0 Comments