Skip to content
Tags

BANDIT

Estimated time to read: 9 minutes

October 18, 2022 · ~5 minutes


LEVEL 11 → LEVEL 12

Trích dẫn đề bài

Level Goal

The password for the next level is stored in the file data.txt, where all lowercase (a-z) and uppercase (A-Z) letters have been rotated by 13 positions

Ở thử thách này, việc hiểu tiếng anh cũng là điều thật sự cần thiết. Và tôi có tóm tắt những ý như sau:

  • Password được lưu trong data.txt và kí tự thường và kí tự hoa bị xoay 13 vị trí.
  • Dùng câu lệnh tr để xoay lại vị trí của kí tự thường và hoa.
  • Vì 13 vị trí nên A-Z sẽ đổi ngược lại thành N-Z và A-M. a-z sẽ thành n-za-m.
  • Cụ thể, câu lệnh là cat data.txt | tr ‘[A-Za-z]’ ‘[N-ZA-Mn-za-m]’

Hình ảnh connect đến username bandit0

LEVEL 12 → LEVEL 13

Trích dẫn đề bài

Level Goal

The password for the next level is stored in the file data.txt, which is a hexdump of a file that has been repeatedly compressed. For this level it may be useful to create a directory under /tmp in which you can work using mkdir. For example: mkdir /tmp/myname123. Then copy the datafile using cp, and rename it using mv (read the manpages!)

Ở thử thách này, ta chuyển data.txt sang địa chỉ mới. Kiểm tra file thì thấy file là hexdump

Hình ảnh connect đến username bandit0

Tiếp theo, ta sử dụng lệnh xxd -r để chuyển ngược hexdump về gốc và lưu thành file test

Sau cùng, ta dùng lệnh file để kiểm tra file test được nén bởi công cụ gì.

Hình ảnh connect đến username bandit0

Nhận thấy file test được nén bằng gzip nên ta sẽ dùng gzip để giải nén file. Mà trước đó ta phải thêm đuôi .gz để công cụ gzip có thể được sử dụng. Dùng lệnh gzip -d test.gz để giải nén, ta được file mới tên là test, kiểm tra file test đó bằng lệnh file, ta được file test được nén bằng bzip2.

Hình ảnh connect đến username bandit0

Tiếp tục dùng công cụ bzip2 để giải nén nhưng phải đổi tên sang test.bz2

Hình ảnh connect đến username bandit0

Sau khi dùng bzip2 giải nén, ta thu được file test, tiếp tục kiểm tra file test, ta được test được nén bởi gzip. Làm tương tự như trên, đổi tên có đuôi gz rồi giải nén, ta được

Hình ảnh connect đến username bandit0

Ta thu được file test, kiểm tra ta thấy test được nén bởi tar. Ta đổi tên để thêm đuôi .tar và dùng lệnh tar -xf test.tar để giải nén.

Hình ảnh connect đến username bandit0

Tiếp tục ta được file data5.bin, tiếp tục kiểm tra và vẫn dùng tar để giải nén.

Hình ảnh connect đến username bandit0

Tiếp tục ta được data6.bin, ta dùng bzip2 để giải nén.

Hình ảnh connect đến username bandit0

Ta thu được file data6, kiểm tra và thấy được nén bằng tar. Dùng tar giải nén, ta được file data8.bin

Hình ảnh connect đến username bandit0

Tiếp tục dùng gzip để giải nén. Ta được file data8, đây là file ASCII nên đọc file và lấy password.

Hình ảnh connect đến username bandit0

LEVEL 13 → LEVEL 14

Trích dẫn đề bài

Level Goal

The password for the next level is stored in /etc/bandit_pass/bandit14 and can only be read by user bandit14. For this level, you don’t get the next password, but you get a private SSH key that can be used to log into the next level. Note: localhost is a hostname that refers to the machine you are working on

Với thử thách này, password lưu trữ trong /etc/bandit_pass/bandit14 và chỉ được đọc bởi user bandit14. Nhưng level này không lấy password cho lv tiếp theo mà lấy private ssh key để đăng nhập vào level tiếp theo.

Kiểm tra, ta được sshkey của level tiếp theo.

Hình ảnh connect đến username bandit0

Dùng lệnh ssh -i sshkey.private bandit14@bandit.labs.overthewire.org -p 2220 ta sẽ được qua level 14 → level 15.

Hình ảnh connect đến username bandit0

LEVEL 14 → LEVEL 15

Trích dẫn đề bài

Level Goal

The password for the next level can be retrieved by submitting the password of the current level to port 30000 on localhost.

Yêu cầu dùng password của level trước gửi đến localhost port 30000.

Ta dùng lệnh nc localhost 30000

Hình ảnh connect đến username bandit0

LEVEL 15 → LEVEL 16

Trích dẫn đề bài

Level Goal

The password for the next level can be retrieved by submitting the password of the current level to port 30001 on localhost using SSL encryption.

Helpful note: Getting “HEARTBEATING” and “Read R BLOCK”? Use -ign_eof and read the “CONNECTED COMMANDS” section in the manpage. Next to ‘R’ and ‘Q’, the ‘B’ command also works in this version of that command…

Với thử thách này, ta chỉ cần làm giống gợi ý là hoàn thành.

Hình ảnh connect đến username bandit0

LEVEL 16 → LEVEL 17

Trích dẫn đề bài

Level Goal

The credentials for the next level can be retrieved by submitting the password of the current level to a port on localhost in the range 31000 to 32000. First find out which of these ports have a server listening on them. Then find out which of those speak SSL and which don’t. There is only 1 server that will give the next credentials, the others will simply send back to you whatever you send to it.

Ta sẽ sử dụng công cụ nmap để dò port mở trên localhost bằng option -sV nmap -sV -p31000-32000 localhost

Hình ảnh connect đến username bandit0

Ta thấy có 2 cổng SSL mở là 31518 và 31790. Port 31518 là ‘echo’ port nên ta sẽ connect đến port 31790.

Dùng lệnh openssl s_client -connect localhost:31790

Hình ảnh connect đến username bandit0

Sau đó, ta được trả về một khóa mật RSA

Hình ảnh connect đến username bandit0

Lưu RSA key vào file RSA để tiện sử dụng. Sử dụng câu lệnh ssh -I RSA bandit17@localhost -p 2220

Hình ảnh connect đến username bandit0

LEVEL 17 → LEVEL 18

Trích dẫn đề bài

Level Goal

There are 2 files in the homedirectory: passwords.old and passwords.new. The password for the next level is in passwords.new and is the only line that has been changed between passwords.old and passwords.new

NOTE: if you have solved this level and see ‘Byebye!’ when trying to log into bandit18, this is related to the next level, bandit19

Với thử thách này, ta chỉ cần làm giống gợi ý là hoàn thành.

Hình ảnh connect đến username bandit0

LEVEL 18 → LEVEL 19

Trích dẫn đề bài

Level Goal

The password for the next level is stored in a file readme in the homedirectory. Unfortunately, someone has modified .bashrc to log you out when you log in with SSH.

Nếu dùng password tìm được ở câu trên sử dụng cho level 18 bằng câu lệnh ssh -p 2220 bandit18@bandit.labs.overthewire.org thì sẽ xuất ra màn hình Byebye ! rồi kết thúc.

Vì vậy, ta phải sử dụng câu lệnh ssh -p 2220 bandit18@bandit.labs.overthewire.org cat readme với mục đích đọc file readme và sau đó mới nhập password từ level trên.

Hình ảnh connect đến username bandit0

LEVEL 19 → LEVEL 20

Trích dẫn đề bài

Level Goal

To gain access to the next level, you should use the setuid binary in the homedirectory. Execute it without arguments to find out how to use it. The password for this level can be found in the usual place (/etc/bandit_pass), after you have used the setuid binary.

Dùng file nhị phân để tìm password được lưu trữ trong đường dẫn /etc/bandit_pass

Hình ảnh connect đến username bandit0

LEVEL → 20 LEVEL 21

Trích dẫn đề bài

Level Goal

There is a setuid binary in the homedirectory that does the following: it makes a connection to localhost on the port you specify as a commandline argument. It then reads a line of text from the connection and compares it to the password in the previous level (bandit20). If the password is correct, it will transmit the password for the next level (bandit21).

NOTE: Try connecting to your own network daemon to see if it works as you think

Với thử thách này, ta cần tạo thêm 1 cổng kết nối ảo và gửi password từ LEVEL 19 đã nhận được đến kết nối đó, để server có thể so sánh và trả về password của thử thách này.

Hình ảnh connect đến username bandit0

Comments