Nền tảng · 35–50 phút · Foundation

CMD & PowerShell căn bản

Làm quen hai phổ biến trên Windows và hiểu PowerShell truyền object thay vì chỉ text.

SAU BÀI NÀY ÔNG SẼ
  • Giải thích CMD & PowerShell căn bản bằng ngôn ngữ của chính mình
  • Dùng để tách quan sát khỏi kết luận
  • Hoàn thành lab CMD & PowerShell căn bản an toàn và nêu được /
LÀM CÙNG NHAU · SAFE LAB

Làm cùng nhau: quan sát trước khi script

Đọc object / synthetic mà không thay đổi Windows thật.

  1. Bước 1: Lập : một lệnh Get- chỉ liệt kê thông tin

    Kết quả cần thấy: Bạn ghi được hành vi bình thường trước khi thay đổi bất cứ điều gì trong case synthetic.

    Vì sao: cho biết kết quả nào thực sự bất thường thay vì chỉ dựa vào cảm giác hoặc tên của một tool.

    Đừng nhầm: Một output lạ chưa tự chứng minh có lỗ hổng hay sự cố; luôn giữ kết luận tạm thời.

  2. Bước 2: Đổi đúng một biến và quan sát: lọc theo Name hoặc Id trong dataset mô phỏng

    Kết quả cần thấy: Bạn có một mẩu cụ thể để so sánh với và ghi vào note.

    Vì sao: Một thay đổi duy nhất giúp nối nguyên nhân với kết quả và giảm trong lab.

    Đừng nhầm: Không tăng số lượng command hay thử nhiều biến cùng lúc khi chưa hiểu output.

  3. Bước 3: Nêu control hoặc bước tiếp theo: xem quyền cần thiết và thử output trước khi tự động hóa

    Kết quả cần thấy: Bạn mô tả được cách verify control bằng một positive case và một negative case trong lab.

    Vì sao: Security tốt phải cho thấy cả cách phát hiện, cách phòng thủ và cách kiểm tra lại sau sửa.

    Đừng nhầm: Không áp dụng thao tác đó lên host, account hoặc dữ liệu thật ngoài phạm vi được phép.

01

Bức tranh lớn

Làm quen hai phổ biến trên Windows và hiểu PowerShell truyền object thay vì chỉ text. Chủ đề này quan trọng vì CMD thiên về command-line truyền thống; PowerShell dựa trên .NET object và pipeline object. Cùng một mục tiêu quan sát hệ thống có thể có syntax rất khác. 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. Ở Windows và scripting, phân biệt rõ object, , , account và policy. Script tốt phải nhỏ, đọc được, có input/output rõ ràng và không yêu cầu quyền cao hơn mức cần thiết. 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ủ đề “CMD & PowerShell 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.

02

Mental model & từ khóa

CMD thiên về command-line truyền thống; PowerShell dựa trên .NET object và pipeline object. Cùng một mục tiêu quan sát hệ thống có thể có syntax rất khác. Các thuật ngữ trọng tâm của bài là: CMD, PowerShell, object pipeline, cmdlet. 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: CMD, PowerShell, object pipeline, cmdlet. Đừ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. CMD thiên về command-line truyền thống; PowerShell dựa trên .NET object và pipeline object.

03

Quy trình quan sát có kiểm chứng

Get- | Select-Object cho field có cấu trúc; điều này giúp lọc chính xác hơn parse text. Hãy xem type/property trước khi đoán tên field. 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ì. Get- | Select-Object cho field có cấu trúc; điều này giúp lọc chính xác hơn parse text. Hãy xem type/property trước khi đoán tên field. 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.

04

Case lab: từ dữ kiện tới kết luận

Đọc output PowerShell giả lập, lọc theo và chọn Name/Id; so sánh cách làm với CMD text output. Đâ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à: Đọc output PowerShell giả lập, lọc theo và chọn Name/Id; so sánh cách làm với CMD text output. 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.

05

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ớ: PowerShell pipeline truyền object có property, không chỉ chuỗi text. Với bài này, mệnh đề phải giữ là: PowerShell pipeline truyền object có property, không chỉ chuỗi text. 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.

06

Phòng thủ, & tiêu chí qua bài

Áp execution policy và logging phù hợp như một lớp quản trị, nhưng không coi execution policy là security boundary tuyệt đối. Hạn chế quyền và giám sát script đáng ngờ. 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 CMD & PowerShell 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.

THỰC HÀNH AN TOÀN · GUIDED

Bài tập

Đọc output PowerShell giả lập, lọc theo và chọn Name/Id; so sánh cách làm với CMD text output. 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ụ.

Gợi ý: Đừng tìm đáp án ngay. Với CMD & PowerShell căn bản, ghi trước, thay đúng một biến rồi giải thích vì sao output đổi hoặc không đổi.
safe-terminal · /home/student/lab
MEMORY ONLY
WhiteHat Safe Terminal v2 · MEMORY-ONLY SIMULATOR · gõ help để bắt đầu.
$
KNOWLEDGE CHECK · CẦN 80%

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.

Câu 1/5

Phát biểu nào đúng nhất về CMD & PowerShell căn bản?

Câu 2/5

Trong một lab về “CMD & PowerShell căn bản”, nào phù hợp nhất để bắt đầu kiểm chứng?

Câu 3/5

Control/ nào bám sát chủ đề “CMD & PowerShell căn bản” nhất?

Câu 4/5

Mental model nào nên giữ khi gặp một biến thể mới của “CMD & PowerShell căn bản”?

Câu 5/5

Nếu bài “CMD & PowerShell căn bản” cần thao tác có tính offensive, môi trường nào phù hợp?

PROGRESS

Đánh dấu hoàn thành

Cần đạt ít nhất 80% quiz trước khi chốt bài.