Terminal căn bản
Làm quen terminal như một giao diện chính xác để quan sát và thao tác hệ thống, không phải “màn hình hacker”.
- ✓ Giải thích Terminal căn bản bằng ngôn ngữ của chính mình
- ✓ Dùng và để tách quan sát khỏi kết luận
- ✓ Hoàn thành lab Terminal căn bản an toàn và nêu được /
Làm cùng nhau: đọc trước, đổi sau
Quan sát thư mục lab bằng ba lệnh không làm thay đổi dữ liệu.
- Bước 1: Trong Safe Terminal, gõ `pwd` để hỏi “mình đang đứng ở đâu?”.
Kết quả cần thấy: Màn hình trả về một đường dẫn lab, chẳng hạn `/home/student/lab`.
Vì sao: Đường dẫn này là ngữ cảnh của các lệnh sau; cùng tên file nhưng đứng khác thư mục sẽ cho kết quả khác.
Đừng nhầm: Đừng nghĩ gõ lệnh sai là nguy hiểm ngay; hãy đọc lỗi, rồi quay về `pwd` thay vì đoán.
- Bước 2: Gõ `ls -la` để xem các file cùng owner và quyền cơ bản.
Kết quả cần thấy: Bạn thấy danh sách file, trong đó có thể có `readme.txt` và thư mục `web`.
Vì sao: Danh sách là : sau này nếu tạo file hoặc đổi quyền, bạn có thứ để so sánh.
Đừng nhầm: Tên file lạ không tự chứng minh nó độc hại; cần xem path, owner và hành vi trước khi kết luận.
- Bước 3: Gõ `cat readme.txt`, sau đó viết một câu ghi chú về điều lab cho phép.
Kết quả cần thấy: README xác nhận đây là sandbox trong bộ nhớ, không phải máy thật.
Vì sao: Đọc tài liệu trước giữ bạn trong phạm vi bài tập và hình thành thói quen kiểm tra .
Đừng nhầm: Không copy lệnh từ Internet vào terminal thật chỉ vì nó chạy được trong simulator.
Bức tranh lớn
Làm quen terminal như một giao diện chính xác để quan sát và thao tác hệ thống, không phải “màn hình hacker”. Chủ đề này quan trọng vì nhận command, phân tích argument và gọi chương trình hoặc builtin. , environment và quyền user ảnh hưởng trực tiếp tới kết quả lệnh. Khi đi , hoặc , phần khó thường không phải nhớ tên công cụ mà là nhận ra mô hình này trong một biến thể mới. Ở lớp hệ điều hành, hãy luôn nối bốn thứ với nhau: identity, , resource và permission. Khi một hành vi xảy ra, hỏi nào thực hiện, chạy dưới user nào, chạm tài nguyên gì và /OS đã cho phép theo rule nào. Mục tiêu của phần nền tảng là dự đoán được hệ thống sẽ làm gì trước khi chạy lệnh. Nếu output khác dự đoán, dùng khác biệt đó để cập nhật mental model. Trước khi sang phần tiếp theo, hãy tự nói lại chủ đề “Terminal căn bản” bằng hai câu: hệ thống đang cố làm gì, và quyết định nào có thể tạo ra rủi ro nếu sai.
Mental model & từ khóa
nhận command, phân tích argument và gọi chương trình hoặc builtin. , environment và quyền user ảnh hưởng trực tiếp tới kết quả lệnh. Các thuật ngữ trọng tâm của bài là: , , argument, environment. Hãy liên kết chúng với luồng dữ liệu và quyết định bảo mật thay vì học định nghĩa rời rạc. Các từ khóa cần nối thành một mô hình duy nhất gồm: , , argument, environment. Đừng học chúng như flashcard rời rạc. Hãy chỉ ra dữ liệu đi từ đâu tới đâu, thành phần nào giữ state, thành phần nào ra quyết định và đâu là . Khi mô hình đúng, bạn có thể dự đoán một thay đổi nhỏ sẽ làm output thay đổi thế nào. nhận command, phân tích argument và gọi chương trình hoặc builtin.
Quy trình quan sát có kiểm chứng
Bắt đầu bằng pwd, whoami, ls/dir và cat/type. Đọc lỗi trước khi gõ tiếp; error message thường cho biết path, permission hoặc syntax có vấn đề. Luôn bắt đầu bằng expected behavior rồi mới tìm deviation; như vậy bạn biết mình đang chứng minh điều gì. Bắt đầu bằng pwd, whoami, ls/dir và cat/type. Đọc lỗi trước khi gõ tiếp; error message thường cho biết path, permission hoặc syntax có vấn đề. Bắt đầu bằng expected behavior và một sạch. Sau đó chỉ thay một biến, ghi input/output, timestamp hoặc state cần thiết rồi lặp lại để loại trừ ngẫu nhiên. Nếu tool đưa ra một nhãn như “open”, “vulnerable”, “failed” hay “suspicious”, quay về field thô tạo ra nhãn đó và xác minh bằng cách thứ hai. Đây là thói quen giúp tránh và cũng giúp report tái hiện được.
Case lab: từ dữ kiện tới kết luận
Dùng Safe Terminal của khóa học để xác định user, , danh sách file và nội dung README; sau đó tạo một thư mục notes và file mới. Đây là tình huống tổng hợp trong lab của khóa học, không dùng target thật. Bài thực hành trọng tâm là: Dùng Safe Terminal của khóa học để xác định user, , danh sách file và nội dung README; sau đó tạo một thư mục notes và file mới. Khi làm, chia note thành bốn cột: FACT (thấy trực tiếp), HYPOTHESIS (giả thuyết), TEST (thay đổi nào sẽ phân biệt các giả thuyết) và RESULT (kết quả). Sau khi có đáp án, tạo ít nhất hai biến thể: đổi identity/context và đổi input/state. Nếu kết luận vẫn đứng vững qua các biến thể, bạn mới có confidence cao hơn.
Bẫy tư duy & cách tự debug
Lỗi hay gặp là nhìn thấy một tín hiệu rồi gắn ngay nhãn vulnerability hoặc dùng công cụ trước khi hiểu hệ thống. Với chủ đề này, hãy nhớ: Terminal là giao diện lệnh; kết quả phụ thuộc context và quyền của user. Với bài này, mệnh đề phải giữ là: Terminal là giao diện lệnh; kết quả phụ thuộc context và quyền của user. Nếu bị kẹt, đừng tăng số lượng command/payload một cách mù quáng. Quay lại , thu hẹp câu hỏi, kiểm tra assumptions và đọc error/output theo từng lớp. Trong lab hoặc , đặt rồi đổi hướng khi không có mới; trong /, luôn kiểm tra trước khi mở rộng bề mặt thử nghiệm.
Phòng thủ, & tiêu chí qua bài
Không copy lệnh không hiểu, đặc biệt command có quyền admin hoặc xóa dữ liệu. Trong môi trường công việc, lưu command quan trọng vào note để audit. Khi review fix, kiểm tra cả positive case, negative case và một biến thể gần kề để tránh vá đúng một chuỗi kiểm thử. Một tốt phải chỉ ra root cause, control đặt ở đúng và cách . Hãy kiểm tra positive case hợp lệ, negative case bị từ chối và ít nhất một biến thể gần kề để tránh “vá đúng payload”. Bạn có thể coi mình qua bài khi: (1) giải thích Terminal căn bản không nhìn tài liệu; (2) dự đoán được một output mới; (3) hoàn thành lab bằng ; (4) nêu được cách phòng thủ; và (5) phân biệt được observation với conclusion.
Bài tập
Dùng Safe Terminal của khóa học để xác định user, , danh sách file và nội dung README; sau đó tạo một thư mục notes và file mới. Deliverable: ghi trạng thái ban đầu, dự đoán kết quả trước khi thao tác, chụp lại output quan trọng và giải thích chênh lệch giữa dự đoán với thực tế. Làm lại một biến thể nhỏ để chứng minh bạn hiểu mô hình chứ không chỉ nhớ đúng một ví dụ.
WhiteHat Safe Terminal v2 · MEMORY-ONLY SIMULATOR · gõ help để bắt đầu.
5 câu kiểm tra
Không trừ điểm. Mục tiêu là giải thích được lý do, không phải đoán đúng.
Phát biểu nào đúng nhất về Terminal căn bản?
Trong một lab về “Terminal căn bản”, nào phù hợp nhất để bắt đầu kiểm chứng?
Control/ nào bám sát chủ đề “Terminal căn bản” nhất?
Mental model nào nên giữ khi gặp một biến thể mới của “Terminal căn bản”?
Nếu bài “Terminal căn bản” cần thao tác có tính offensive, môi trường nào phù hợp?
Đánh dấu hoàn thành
Cần đạt ít nhất 80% quiz trước khi chốt bài.