Wednesday, February 27, 2019

[Writeup] OverTheWire - Bandit

Level 1:

Thử thách này sau khi kết nối đến server dùng lệnh ls, chúng ta thấy một file readme cat file đó chúng ta có được password cho level tiếp theo.

Password: boJ9jbbUNNfktd78OOpsqOltutMc3MY1

Level 2:

Dùng lệnh ls -lia kiểm tra, chúng ta thấy có 1 file -, vì là special character nên khi dùng lệnh cat - chúng ta không thể đọc được. Để bypass chúng ta dùng cat ./- 

Password: CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9

Level 3:

Chúng ta cần file cat file spaces in this filename tuy nhiên vì trong tên file có dấu cách nếu chúng ta chỉ đơn thuần dùng lệnh cat spaces in this filename thì sẽ sai vì câu lệnh này tương đương với cat 4 file: spaces, in, this, filename. Thay vào đó ta cần thêm dấu \ vào cuối kết thúc mối từ hoặc đơn giản hơn là dùng phím tab ta sẽ có lệnh hoàn chỉnh: cat spaces\ in\ this\ filename

Password: UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK

Level 4:

Vẫn tiếp tục dùng lệnh ls -lia mình thấy có file .hidden, cat .hidden và chúng ta có được password truy cập level 5:

Password: pIwrPrtPN36QITSp3EQaw936yaFoFgAB

Level 5:

Chúng ta có 10 file cả thẩy, thì mình nghĩ cat lần lượt từng file sẽ ra được password cho level 6, tuy nhiên có một cách nhanh hơn đó là dùng lệnh file để xem file nào đọc được. Thử file00 với lệnh file ./-file00 mình nhận được kết quả là file data, đối với tất cả các file mình dùng lệnh: file ./* dễ dàng nhìn thấy file07 là file chứa chuỗi ascii có thể đọc được. cat ./-file07 mình có được password.

Password: koReBOKuIDDepwhWk7jZC0RTdopnAYKh

Level 6:

Bài này trong thư mục inhere có rất nhiều file và folder và rất nhiều file dạng ascii nên mình không biết được file nào là file cần tìm. Tuy nhiên để ý description của bài này thì chúng ta có gợi ý là file có thể đọc được size là 1033 byte và không thể thực thi. Mình thử tìm xem có bao nhiêu file có kích thước là 1033 byte với lệnh find -size 1033c  (chữ c trong find là dùng cho đơn vị byte) thì chỉ có đúng một file ở đường dẫn thỏa điều kiện là maybehere07/.file2

Password: DXjZPULLxYr17uwoI01bNLQbtFemEgo7

Level 7:

Tương tự level 6 mình dùng lệnh find và thêm các hint ở phần description, mình out ra cây thư mục với lệnh cd../../ sau đó kiếm file bằng lệnh find -size 33c -user bandit7 -group bandit6 , tuy nhiên thì lúc đầu mình bị stuck vì nhìn chỉ toàn thấy permision denied, chỉ khi làm lại một lần nữa và bình tĩnh hơn mình mới thấy file ./var/lib/dpkg/info/bandit7.password là không bị permision denied, cat file và lấy flag cho bài sau thôi.

Password: HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs

Level 8:

Ở phần description cho mình biết cần phải lấy mật khẩu ở bên cạnh từ millionth. Lúc đầu mình cũng không hiểu lắm nhưng thử dùng lệnh strings data.txt thì mình mới hiểu. File chia có 2 cột vì vậy mình chỉ cần kiếm được dòng có chứa từ millionth thì sẽ có được password cho level sau, sử dụng strings và grep strings data.txt | grep millionth mình có được password.

Password: cvX2JJa4CFALtqS87jk27qwqGhBM9plV