
















Preview text:
References
https://overthewire.org/wargames/bandit/ https://mayadevbe.me/ Giới thiệu
Bandit wargame là một chuỗi thử thách bảo mật được thiết kế để dạy bạn kiến thức và kỹ
năng về hệ điều hành Linux thông qua việc tương tác thực tế với giao diện dòng lệnh. Đây là một trò
chơi chiến lược bảo mật (wargame) miễn phí của OverTheWire dành cho người mới bắt đầu, giúp
người chơi học các lệnh Linux cơ bản để giải quyết các câu đố và nâng cao kỹ năng xử lý sự cố.
1) Mục đích: Giúp người dùng làm quen và nâng cao kỹ năng sử dụng các lệnh Linux thông qua
một loạt các thử thách thực tế.
2) Đối tượng: Chủ yếu dành cho những người mới bắt đầu, muốn tìm hiểu về dòng lệnh Linux.
3) Cách chơi: Người chơi kết nối vào máy chủ và cố gắng vượt qua các cấp độ bằng cách sử
dụng các lệnh Linux để giải quyết từng thử thách.
4) Nguồn gốc: Bandit là một trong những "wargame" (trò chơi chiến lược bảo mật) do cộng
đồng OverTheWire cung cấp. Bandit Level 0 Level Goal:
The goal of this level is for you to log into the game using SSH. The host to which you need
to connect is bandit.labs.overthewire.org, on port 2220. The username is bandit0 and the password is
bandit0. Once logged in, go to the Level 1 page to find out how to beat Level 1.
Mục tiêu của cấp độ này là bạn phải đăng nhập vào trò chơi bằng SSH. Máy chủ bạn cần kết nối
là bandit.labs.overthewire.org, trên cổng 2220. Tên người dùng là bandit0 và mật khẩu là
bandit0. Sau khi đăng nhập, hãy đến trang Cấp độ 1 để tìm hiểu cách vượt qua Cấp độ 1. Login:
Username: ssh bandit0@bandit.labs.overthewire.org -p 2220 Password: bandit0
#Dùng Command Prompt trên Windows 1
Hoặc dùng PuTTY hoặc 1 trong các phần mềm Terminal Emulator khác như Bitvise, … 2 Đăng nhập thành công: 3
Bandit Level 0 → Level 1 Level Goal:
The password for the next level is stored in a file called readme located in the home
directory. Use this password to log into bandit1 using SSH. Whenever you find a password for a
level, use SSH (on port 2220) to log into that level and continue the game.
Mật khẩu cho cấp độ tiếp theo được lưu trong một file gọi là readme nằm trong thư mục gốc. Sử
dụng mật khẩu này để đăng nhập vào bandit1 bằng SSH. Bất cứ khi nào bạn tìm thấy mật khẩu
cho một cấp độ, hãy sử dụng SSH (trên cổng 2220) để đăng nhập vào cấp độ đó và tiếp tục trò chơi.
Commands you may need to solve this level (các lệnh cần dùng để giải quyết level này)
ls , cd , cat , file , du , find
TIP: Create a file for notes and passwords on your local machine!
MẸO: Tạo một file ghi chú và mật khẩu trên máy cục bộ của bạn!
Passwords for levels are not saved automatically. If you do not save them yourself, you will
need to start over from bandit0.
Mật khẩu cho các cấp độ không được lưu tự động. Nếu bạn không tự lưu, bạn sẽ cần phải bắt
đầu lại từ bandit0.
Passwords also occasionally change. It is recommended to take notes on how to solve each
challenge. As levels get more challenging, detailed notes are useful to return to where you left off,
reference for later problems, or help others after you’ve completed the challenge.
Mật khẩu đôi khi cũng thay đổi. Bạn nên ghi chú lại cách giải quyết từng thử thách. Khi các cấp
độ trở nên khó hơn, các ghi chú chi tiết sẽ hữu ích để quay lại điểm bạn đã dừng lại, tham khảo
cho các bài toán sau hoặc giúp đỡ người khác sau khi bạn đã hoàn thành thử thách. Login:
Username: ssh bandit0@bandit.labs.overthewire.org -p 2220 Password: bandit0 4 Hide! bandit0@bandit:~$ ls readme
bandit0@bandit:~$ cat readme
Congratulations on your first steps into the bandit game!!
Please make sure you have read the rules at
https://overthewire.org/rules/
If you are following a course, workshop, walkthrough or other educational activity,
please inform the instructor about the rules as well and encourage them to
contribute to the OverTheWire community so we can keep these games free!
The password you are looking for is: ZjLjTmM6FvvyRnrb2rfNWOZOTa6ip5If Hide! bandit0@bandit:~$ 5
Bandit Level 1 → Level 2 Level Goal
The password for the next level is stored in a file called - located in the home directory
Mật khẩu cho cấp độ tiếp theo được lưu trữ trong một file có tên - nằm trong thư mục gốc
Commands you may need to solve this level (các lệnh cần dùng để giải quyết level này):
ls , cd , cat , file , du , find
Helpful Reading Material
− Google Search for “dashed filename” (https://www.google.com/search?q=dashed+filename)
− Advanced Bash-scripting Guide - Chapter 3 - Special Characters (https://linux.die.net/abs- guide/special-chars.html)
Tài liệu đọc hữu ích
Tìm kiếm trên Google với từ khóa “tên file gạch ngang”
Hướng dẫn lập trình Bash nâng cao - Chương 3 - Ký tự đặc biệt Login:
Dùng PuTTY để login với username là bandit1 và password là ZjLjTmM6FvvyRnrb2rfNWOZOT Hide! a6ip5If
Hoặc có thể login từ giao diện dòng lệnh từ 1 terminal khác:
SSH: ssh bandit1@bandit.labs.overthewire.org -p 2220
Password: ZjLjTmM6FvvyRnrb2rfNWOZOTa6ip5If Hide! 6
Login thành công & qua level này: Hướng dẫn:
Tên file có dấu gạch ngang (dashed filenames) là tên file trong các hệ điều hành như Linux
bắt đầu bằng dấu gạch ngang (-), có thể gây nhầm lẫn với tùy chọn của lệnh. Để làm việc với chúng,
người dùng cần sử dụng các phương pháp đặc biệt như thêm -- hoặc đặt tên file trong dấu ngoặc kép
để ngăn lệnh hiểu sai.
Thách thức với tên file có dấu gạch ngang:
− Nhầm lẫn với tùy chọn lệnh: Nhiều lệnh trên dòng lệnh sử dụng dấu gạch ngang để chỉ các
tùy chọn hoặc đối số (ví dụ: ls -l).
− Kết quả không mong muốn: Khi bạn cố gắng thực hiện lệnh trên một file có tên bắt đầu bằng
dấu gạch ngang, hệ thống có thể coi tên file là một tùy chọn, dẫn đến lỗi hoặc hành vi không mong muốn.
Cách làm việc với tên file có dấu gạch ngang
− Sử dụng --: Thêm hai dấu gạch ngang (--) sau lệnh để chỉ ra rằng mọi thứ theo sau là tên
file, không phải tùy chọn. Ví dụ: rm -- -my-file.txt sẽ xóa file -my-file.txt thay vì cố
gắng xóa một tùy chọn có tên là -my-file.txt. 7
− Sử dụng dấu ngoặc kép: Đặt tên file trong dấu ngoặc kép để đảm bảo tên file được nhận
diện chính xác. Ví dụ: cat "-my-file.txt"
− Cung cấp đường dẫn đầy đủ: Sử dụng đường dẫn tuyệt đối hoặc đường dẫn tương đối
đến file, ví dụ: ./-my-file.txt, để hệ thống biết chính xác vị trí của file.
Để đọc file này thì chúng ta dùng lệnh cat "./-" Hide!
bandit1@bandit:~$ ls -la total 24
-rw-r----- 1 bandit2 bandit1 33 Oct 14 09:26 -
drwxr-xr-x 2 root root 4096 Oct 14 09:26 .
drwxr-xr-x 150 root root 4096 Oct 14 09:29 ..
-rw-r--r-- 1 root root 220 Mar 31 2024 .bash_logout
-rw-r--r-- 1 root root 3851 Oct 14 09:19 .bashrc
-rw-r--r-- 1 root root 807 Mar 31 2024 .profile
bandit1@bandit:~$ cat "./-"
263JGJPfgU6LtdEvgfWU1XP5yac29mFx Hide! bandit1@bandit:~$ 8
Bandit Level 2 → Level 3 Level Goal
The password for the next level is stored in a file called --spaces in this filename-- located in the home directory.
Mật khẩu cho cấp độ tiếp theo được lưu trữ trong một file có tên --spaces trong tên file này--
nằm trong thư mục gốc.
Commands you may need to solve this level (các lệnh cần dùng để giải quyết level này):
ls , cd , cat , file , du , find
Helpful Reading Material
Google Search for “spaces in filename” (https://www.google.com/search?q=spaces+in+filename)
Login bằng username là bandit2 với password là 263JGJPfgU6LtdEvgfWU1XP5yac29mFx Hide!
Username: ssh bandit2@bandit.labs.overthewire.org -p 2220 Hide! 9 Hide! Hide! bandit2@bandit:~$ ls -la total 24
drwxr-xr-x 2 root root 4096 Oct 14 09:26 .
drwxr-xr-x 150 root root 4096 Oct 14 09:29 ..
-rw-r--r-- 1 root root 220 Mar 31 2024 .bash_logout
-rw-r--r-- 1 root root 3851 Oct 14 09:19 .bashrc
-rw-r--r-- 1 root root 807 Mar 31 2024 .profile
-rw-r----- 1 bandit3 bandit2 33 Oct 14 09:26 --spaces in this filename--
bandit2@bandit:~$ cat ./--spaces\ in\ this\ filename--
MNk8KNH3Usiio41PRUEoDFPqfxLPlSmx Hide! bandit2@bandit:~$
Mẹo: Gõ lệnh cat => dấu cách => dấu ./ => gõ tiếp 2 dấu -- => gõ phím TAB để hoàn thành chuỗi
filename (cuối file có tồn tại 1 ký tự space (cách) nên nếu tự gõ thì khả năng sai rất cao.
Lưu ý: Khi gõ ./ thì nghĩa là chúng ta gọi thư mục hiện hành. Dấu chấm (.) trong tình huống này là current dir. 10
Bandit Level 3 → Level 4 Level Goal
The password for the next level is stored in a hidden file in the inhere directory.
Mật khẩu cho cấp độ tiếp theo được lưu trữ trong một file ẩn trong thư mục inhere.
Commands you may need to solve this level (các lệnh cần dùng để giải quyết level này):
ls , cd , cat , file , du , find
Login bằng username bandit3 và password là MNk8KNH3Usiio41PRUEoDF Hide! PqfxLPlSmx
Username: ssh bandit3@bandit.labs.overthewire.org -p 2220
Password: MNk8KNH3Usiio41PRUEoDFPqfxLPlSmx Hide! Hide!
bandit3@bandit:~$ ls -la total 24
drwxr-xr-x 3 root root 4096 Oct 14 09:26 .
drwxr-xr-x 150 root root 4096 Oct 14 09:29 ..
-rw-r--r-- 1 root root 220 Mar 31 2024 .bash_logout
-rw-r--r-- 1 root root 3851 Oct 14 09:19 .bashrc
drwxr-xr-x 2 root root 4096 Oct 14 09:26 inhere
-rw-r--r-- 1 root root 807 Mar 31 2024 .profile
bandit3@bandit:~$ cd inhere/
bandit3@bandit:~/inhere$ ls -la total 12
drwxr-xr-x 2 root root 4096 Oct 14 09:26 . 11
drwxr-xr-x 3 root root 4096 Oct 14 09:26 ..
-rw-r----- 1 bandit4 bandit3 33 Oct 14 09:26 ...Hiding-From-You
bandit3@bandit:~/inhere$ cat ./...Hiding-From-You
2WmrDFRmJIq3IPxneAaMGhap0pFhF3NJ Hide! bandit3@bandit:~/inhere$ Hide! Hide! 12
Bandit Level 4 → Level 5 Level Goal
The password for the next level is stored in the only human-readable file in the inhere directory. Tip:
if your terminal is messed up, try the “reset” command.
Mật khẩu cho cấp độ tiếp theo được lưu trữ trong file duy nhất mà con người có thể đọc được
trong thư mục inhere. Mẹo: nếu terminal của bạn bị lỗi, hãy thử lệnh "reset".
Commands you may need to solve this level (các lệnh cần dùng để giải quyết level này):
ls , cd , cat , file , du , find
Login bằng username bandit4 và password là 2WmrDFRmJIq3IPxneAaMGha Hide! p0pFhF3NJ
Username: ssh bandit4@bandit.labs.overthewire.org -p 2220
Password: 2WmrDFRmJIq3IPxneAaMGhap0pFhF3NJ Hide! Hide!
Hoặc có thể login từ 1 terminal khác:
SSH: ssh bandit4@bandit.labs.overthewire.org -p 2220
Password: 2WmrDFRmJIq3IPxneAaMGhap0pFhF3NJ Hide!
Các loại file mà con người có thể đọc được được mã hóa theo cách cho phép con người, chứ
không chỉ máy tính, hiểu được. Các ví dụ phổ biến bao gồm file văn bản thuần túy (như .txt), file
cấu hình (như .json, .xml, .yaml và .toml) và tài liệu (như .pdf và .docx). Những file này có thể được
mở và hiểu bằng phần mềm cơ bản như trình soạn thảo văn bản, và thường được sử dụng để lưu trữ
dữ liệu, mã và cấu hình vì chúng dễ đọc và chỉnh sửa lâu dài.
Các loại file mà con người có thể đọc được: 13
− Văn bản thuần túy: File chứa văn bản chưa được định dạng, có thể xem được trong bất kỳ
trình soạn thảo văn bản nào.
o Ví dụ: .txt, .csv (giá trị được phân cách bằng dấu phẩy)
− Đánh dấu và cấu hình: File sử dụng cú pháp cụ thể để cấu trúc dữ liệu, thường được sử dụng
cho cấu hình hoặc trao đổi dữ liệu.
o Ví dụ: .json, .xml, .yaml, .toml
− Tài liệu: File được thiết kế để trình bày thông tin ở định dạng trực quan phong phú cho con
người, có thể chứa văn bản và các phương tiện khác. o Ví dụ: .pdf, .docx, .odt
− Bảng tính: Các file chứa dữ liệu dạng bảng, thường có định dạng và công thức. o Ví dụ: .xlsx, .csv, .tsv
Đối với nhiệm vụ này, chúng tôi đặc biệt tìm kiếm các file dễ đọc đối với con người. Điều
này có nghĩa là dữ liệu được trình bày sao cho chúng ta có thể đọc được thông tin. Ví dụ: file ELF
không thể đọc được đối với con người.
Các mã hóa dữ liệu phổ biến nhất mà con người có thể đọc được là ASCII và Unicode. 14
Chúng ta quan sát thấy trong thư mục inhere có 10 file -file0x 15
Chúng ta có thể thấy rằng chỉ có ‘-file07’ là loại ‘ASCII text’, đây là một trong những mã hóa mà
con người có thể đọc được.
bandit4@bandit:~/inhere$ file ./* ./-file00: data ./-file01: data ./-file02: data ./-file03: data ./-file04: data ./-file05: data ./-file06: data ./-file07: ASCII text ./-file08: data ./-file09: data 16
bandit4@bandit:~/inhere$ cat ./-file07
4oQYVPkxZOOEOO5pTW81FB8j8lxXGUQw Hide! bandit4@bandit:~/inhere$ Hide! 17
Document Outline
- References
- Giới thiệu
- Bandit Level 0
- Bandit Level 0 → Level 1
- Bandit Level 1 → Level 2
- Bandit Level 2 → Level 3
- Bandit Level 3 → Level 4
- Bandit Level 4 → Level 5