Chủ đề của HOD402 - Thâm nhập thử và phòng thủ

HOD402 - Phần 10: Kịch bản tự động và đọc mã khai thác

Người kiểm thử không cần là lập trình viên, nhưng phải đọc và viết được mã ở mức đủ để tự động hoá việc lặp lại và để không chạy mù mã của người khác. Các khái niệm nền là biến và cấu trúc dữ liệu, rẽ nhánh và vòng lặp, hàm, cùng xử lý chuỗi bằng biểu thức chính quy, qua các ngôn ngữ kịch bản Bash, PowerShell và Python. Mảng thứ hai là đọc một đoạn mã khai thác công khai trước khi dùng: nó kết nối tới đâu, gửi dữ liệu gì, có phá dữ liệu hay cài cửa hậu cho chính người viết không. Kỹ năng đọc ấy cũng chính là kỹ năng soát mã thiếu an toàn của ứng dụng ở Phần 6, và là cách tự động hoá việc lọc kết quả quét ở Phần 3. Người học đọc được một kịch bản ngắn để nói ra nó làm gì, và viết được kịch bản đơn giản xử lý dữ liệu quét.

Xem danh sách câu hỏi11 câu hỏi100% có giải thích

Bắt đầu bằng Chế độ học nếu bạn muốn đáp án và giải thích hiện ngay sau mỗi câu — không bấm giờ, dừng lúc nào cũng được. Chọn Thi thử khi muốn biết mình đang ở đâu: có bấm giờ, chấm điểm ở cuối, và giải thích chỉ mở sau khi nộp.

Học ngân hàng câu hỏi của chủ đề

Luyện tập theo chủ đề này

11Câu hỏi hiện có

Câu hỏi của chủ đề

11/11 câuHết danh sách
AClass
BFunction
CArray
DProcedure
Lời giải
Đáp án đúng: "Class". Trong lập trình hướng đối tượng, class (lớp) là khuôn mẫu khai báo sẵn các thuộc tính (biến khởi tạo) và phương thức (hàm); mỗi đối tượng được tạo ra là một thể hiện (instance) của lớp đó, ví dụ lớp Scanner có thuộc tính địa chỉ đích và phương thức quét. Người kiểm thử cần đọc được cấu trúc này khi viết hoặc sửa script tự động hóa. "Function" là khối mã có tên thực hiện một nhiệm vụ và có thể trả về giá trị, nhưng không phải khuôn để tạo đối tượng. "Array" là cấu trúc dữ liệu lưu một dãy phần tử truy cập theo chỉ số, chỉ chứa dữ liệu chứ không định nghĩa hàm cho đối tượng. "Procedure" là đoạn mã thực hiện một tác vụ cụ thể, thường không trả về giá trị, cũng không đóng vai trò khuôn mẫu sinh đối tượng.
Mở trang câu hỏi này →
ATo launch Metasploit GUI
BTo run an automated exploit
CTo initialize the Metasploit database
DTo schedule scans with cron jobs
Lời giải
Đáp án đúng: "To initialize the Metasploit database". Lệnh msfdb init tạo và khởi động cơ sở dữ liệu PostgreSQL mà Metasploit Framework dùng, đồng thời tạo người dùng, lược đồ và tệp cấu hình kết nối; sau đó lệnh db_status trong msfconsole báo đã kết nối, và các tính năng như workspace, lưu máy, dịch vụ, thông tin xác thực hay nhập kết quả Nmap mới hoạt động. "To launch Metasploit GUI" sai vì Metasploit mặc định chạy bằng giao diện dòng lệnh msfconsole; giao diện đồ hoạ như Armitage là công cụ riêng, không mở bằng msfdb. "To run an automated exploit" sai vì msfdb chỉ quản lý cơ sở dữ liệu, không chọn hay chạy module khai thác nào. "To schedule scans with cron jobs" sai vì cron là bộ lập lịch của Linux, độc lập với Metasploit, và msfdb không tạo lịch quét.
Mở trang câu hỏi này →
ANslookup
BFOCA
CMimikatz
DCensys
EPatator
Lời giải
Đáp án đúng gồm hai ý: "Mimikatz" và "Patator". Tấn công thông tin xác thực (credential attack) nhắm vào mật khẩu, giá trị băm hoặc vé xác thực. "Mimikatz" trích xuất thông tin xác thực từ bộ nhớ tiến trình LSASS trên Windows như mật khẩu dạng rõ, băm NTLM và vé Kerberos; "Patator" là công cụ dò mật khẩu (brute-force) đa giao thức theo mô-đun, thử đăng nhập vào SSH, FTP, HTTP và nhiều dịch vụ khác. Phòng thủ gồm Credential Guard, khóa tài khoản sau nhiều lần sai và xác thực đa yếu tố. "Nslookup" là công cụ truy vấn DNS để tra bản ghi tên miền, thuộc giai đoạn trinh sát. "FOCA" trích xuất siêu dữ liệu (metadata) từ tài liệu công khai như tên người dùng, phần mềm, đường dẫn; nó phục vụ thu thập thông tin nguồn mở chứ không thực hiện tấn công vào thông tin xác thực. "Censys" là công cụ tìm kiếm thiết bị và dịch vụ trên Internet dựa trên dữ liệu quét, cũng thuộc trinh sát thụ động.
Mở trang câu hỏi này →
Abypassing firewalls and IPSs tool
Binterception proxies tool
Cvulnerability scanning tool
Dmobile application testing tool
Lời giải
Đáp án đúng: "vulnerability scanning tool". Kiểm thử xâm nhập hạ tầng mạng nhắm vào máy chủ, thiết bị mạng và các dịch vụ đang mở, nên công cụ quét lỗ hổng mạng như Nessus hay OpenVAS là công cụ nền tảng: nó dò các dịch vụ đang chạy, đối chiếu phiên bản với cơ sở dữ liệu lỗ hổng và liệt kê điểm yếu cần kiểm chứng. "bypassing firewalls and IPSs tool" chỉ là kỹ thuật hỗ trợ dùng trong một số tình huống để né thiết bị phòng thủ, không phải công cụ chính cho kiểu kiểm thử này. "interception proxies tool" như Burp Suite hay OWASP ZAP đứng giữa trình duyệt và máy chủ để xem, sửa yêu cầu HTTP, dùng cho kiểm thử ứng dụng web. "mobile application testing tool" dùng cho kiểm thử ứng dụng di động, nằm ngoài phạm vi hạ tầng mạng.
Mở trang câu hỏi này →
AIt is a section of code that is created to perform a specific task.
BIt is a collection of resources that programs can reuse.
CIt is a non-linear data structure represented using nodes in a hierarchical model.
DIt is a collection of data values ordered using a key/value pair.
Lời giải
Đáp án đúng: "It is a section of code that is created to perform a specific task.". Procedure (thủ tục) là một đoạn mã được đặt tên để thực hiện một tác vụ cụ thể và có thể được gọi lại nhiều lần trong chương trình, giúp chia nhỏ logic; khác với hàm, thủ tục thường không trả về giá trị. "It is a collection of resources that programs can reuse." mô tả thư viện (library), nơi gom sẵn mã và tài nguyên cho nhiều chương trình dùng chung. "It is a non-linear data structure represented using nodes in a hierarchical model." mô tả cấu trúc cây (tree), một cấu trúc dữ liệu phân cấp gồm các nút cha và con, không phải đoạn mã thực thi. "It is a collection of data values ordered using a key/value pair." mô tả từ điển hay bảng băm (dictionary), cấu trúc lưu dữ liệu theo cặp khóa và giá trị để tra cứu nhanh.
Mở trang câu hỏi này →
AProcedures
Bfunctions
CArrays
DLists
ELibraries
Lời giải
Đáp án đúng gồm hai ý: "Arrays" và "Lists". Cấu trúc dữ liệu (data structure) là cách tổ chức và lưu trữ dữ liệu trong bộ nhớ để truy cập, xử lý hiệu quả; mảng (array) lưu các phần tử theo chỉ số liên tiếp, còn danh sách (list) là tập phần tử có thứ tự, thường co giãn được như list trong Python. Người kiểm thử gặp chúng thường xuyên khi viết hay đọc script tự động hoá. "Procedures" là thủ tục, tức khối lệnh thực hiện một tác vụ, thuộc phần điều khiển chương trình chứ không phải nơi chứa dữ liệu. "functions" là hàm, khối mã tái sử dụng nhận đầu vào và trả kết quả, cũng không phải cấu trúc dữ liệu. "Libraries" là thư viện, tập hợp mã viết sẵn như hàm, lớp để nhập vào chương trình, không phải cách tổ chức dữ liệu.
Mở trang câu hỏi này →
AData structures
BLogic constructs
CProcedures
DClasses
Lời giải
Đáp án đúng: "Data structures". JavaScript Object Notation (JSON) là định dạng biểu diễn dữ liệu dưới dạng các cặp khoá và giá trị cùng các mảng lồng nhau, nên được xếp vào nhóm cấu trúc dữ liệu (data structures) cùng với mảng, danh sách hay từ điển; các API web và công cụ kiểm thử thường trao đổi kết quả bằng JSON. "Logic constructs" là cấu trúc logic điều khiển luồng chương trình như if, else, vòng lặp for, while. "Procedures" là thủ tục, khối lệnh thực thi một tác vụ, không phải cách lưu dữ liệu. "Classes" là lớp trong lập trình hướng đối tượng, khuôn mẫu gồm thuộc tính và phương thức để tạo đối tượng; JSON chỉ chứa dữ liệu, không có phương thức.
Mở trang câu hỏi này →
Abypassing firewalls and IPSs tool
Binterception proxies tool
Csniffing traffic tool
Dcracking wireless encryption tool
Lời giải
Đáp án đúng: "interception proxies tool". Kiểm thử dựa trên ứng dụng (application-based penetration test) tập trung vào ứng dụng web và API, nên công cụ cốt lõi là proxy chặn bắt (interception proxy) như Burp Suite hay OWASP ZAP: nó đứng giữa trình duyệt và máy chủ, cho xem, sửa và phát lại từng yêu cầu HTTP để kiểm tra cách ứng dụng xử lý đầu vào, phiên và phân quyền. "bypassing firewalls and IPSs tool" sai vì vượt tường lửa và IPS thuộc kiểm thử hạ tầng mạng. "sniffing traffic tool" sai vì nghe lén lưu lượng như Wireshark chỉ quan sát thụ động gói tin trên mạng, không cho sửa yêu cầu của ứng dụng, và với HTTPS thì nội dung đã bị mã hoá. "cracking wireless encryption tool" sai vì bẻ mã hoá WPA hay WEP là kiểm thử mạng không dây, không phải ứng dụng.
Mở trang câu hỏi này →
AJavaScript Object Notation (JSON)
BFunction
CArray
DClass
Lời giải
Đáp án đúng: "Function". Hàm (function) là khối mã được đặt tên, nhận tham số đầu vào, thực hiện một tác vụ cụ thể và có thể trả kết quả; viết một lần rồi gọi lại nhiều lần giúp script kiểm thử gọn và dễ bảo trì, ví dụ một hàm kiểm tra một cổng được gọi cho cả dải cổng. "JavaScript Object Notation (JSON)" là định dạng dữ liệu dạng khoá và giá trị, chỉ chứa dữ liệu chứ không chứa lệnh thực thi. "Array" là cấu trúc dữ liệu lưu nhiều phần tử theo chỉ số, không thực thi tác vụ nào. "Class" là khuôn mẫu trong lập trình hướng đối tượng gom thuộc tính và phương thức để tạo đối tượng; nó có thể chứa hàm bên trong nhưng bản thân nó không phải khối mã thực hiện một tác vụ.
Mở trang câu hỏi này →
AArray
BList
CTree
DFile with comma-separated values
Lời giải
Đáp án đúng: "Array". Array (mảng) là biến đặc biệt chứa được nhiều giá trị cùng lúc dưới một tên, mỗi phần tử truy cập qua chỉ số, ví dụ một mảng chứa danh sách cổng cần kiểm tra trong một đoạn script; đây đúng là định nghĩa mà câu hỏi dùng. "List" trong nhiều ngôn ngữ như Python cũng chứa nhiều giá trị và rất giống mảng, nhưng định nghĩa kinh điển về một biến đặc biệt giữ nhiều hơn một giá trị gắn với khái niệm mảng, còn list thường được mô tả là tập có thứ tự và thay đổi kích thước được. "Tree" là cấu trúc phân cấp gồm nút cha và nút con, dùng để biểu diễn quan hệ chứ không phải một biến chứa nhiều giá trị. "File with comma-separated values" là tệp CSV lưu dữ liệu trên đĩa, không phải cấu trúc dữ liệu trong bộ nhớ của ngôn ngữ lập trình.
Mở trang câu hỏi này →
AKali Linux
BBash
CParrot OS
DMetasploit
Lời giải
Đáp án đúng: "Bash". Bash (Bourne Again Shell) là trình thông dịch lệnh trên Linux và macOS, cho phép chạy lệnh tương tác, gõ từng lệnh tại dấu nhắc và nhận kết quả ngay, hoặc không tương tác bằng cách thực thi kịch bản shell, lệnh truyền qua tuỳ chọn -c hay từ cron; người kiểm thử dùng nó để tự động hoá công cụ và xử lý kết quả. "Kali Linux" sai vì Kali là bản phân phối Linux đóng gói sẵn công cụ kiểm thử, tức một hệ điều hành chứ không phải một công cụ dòng lệnh. "Parrot OS" sai vì Parrot OS cũng là bản phân phối Linux hướng bảo mật, tương tự Kali. "Metasploit" sai vì Metasploit là khung khai thác; msfconsole có giao diện dòng lệnh riêng nhưng mục đích là chọn và chạy module khai thác chứ không phải shell thực thi lệnh chung.
Mở trang câu hỏi này →

Đề có câu hỏi của chủ đề này

4 đề chứa ít nhất một câu thuộc chủ đề — mở đề để làm cả bộ, không chỉ từng câu.