Bài tập 1: Các truy vấn Bash cơ bản
Mục tiêu:
- Tạo các truy vấn Bash cơ bản, trích xuất dữ liệu và khám phá các tính năng và thành phần của Bash.
Thời gian thực hành: 20 phút
- Theo mặc định, máy Bash được chọn, nhấp vào hồ sơ Sinh viên để đăng nhập.[Hình ảnh màn hình đăng nhập Ubuntu với hồ sơ Sinh viên được chọn]
- Nhập mật khẩu vào trường Mật khẩu và nhấp vào Đăng nhập.[Hình ảnh màn hình đăng nhập Ubuntu với trường mật khẩu được điền và nút đăng nhập được tô sáng]
- Trong bài tập này, chúng ta sẽ xem xét các phương pháp khác nhau để trích xuất dữ liệu bằng Bash. Đầu tiên, chúng ta muốn tạo một vài tệp có mật khẩu trong đó. Bạn có thể tạo tệp của riêng mình hoặc mở một trong các tệp trên máy, sao chép các phần của nó, và tạo nhiều tệp. Chúng ta cần ít nhất ba tệp để thực hiện.
- Trong bài tập này, chúng ta đã tạo sẵn wordlists.txt trong thư mục Home và đã tạo một bản sao của các tệp này trong thư mục Home, như được hiển thị trong ảnh chụp màn hình.[Hình ảnh chụp màn hình thư mục Home với nhiều tệp wordlists]
- Đầu tiên, hãy thử lệnh cut -d “:” -f2 file.txt. Khởi chạy một thiết bị đầu cuối, nhập cut -d “:” -f2 wordlists.txt và nhấn Enter. Một ví dụ về kết quả của lệnh được hiển thị trong ảnh chụp màn hình.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh cut]
- Tiếp theo, bạn có thể xem thông tin về CPU. Nhập cat /proc/cpuinfo và nhấn Enter. Một ví dụ về kết quả của lệnh được hiển thị trong ảnh chụp màn hình. Dành vài phút để xem xét kết quả.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh cat /proc/cpuinfo]
- Tiếp theo, chúng ta sẽ xem xét lệnh sort. Nhập sudo ls -R / | sort -n | head -5 và nhấn Enter.
- Tùy chọn -R cho ls, có nghĩa là xử lý đệ quy tất cả các tệp con trong thư mục được chỉ định.
- Sức mạnh của đường ống được thể hiện ở đây. Một ví dụ về kết quả của lệnh này được hiển thị trong ảnh chụp màn hình tiếp theo.
- Có nhiều cách khác nhau để làm việc với kết quả. Nếu bạn có thời gian, hãy thoải mái khám phá thêm.
- Tiếp theo, nhập sudo find /home -mmin -5 và nhấn Enter. Kết quả của lệnh này được hiển thị trong ảnh chụp màn hình tiếp theo.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh find]
- Để xem các tệp được sửa đổi trong 24 giờ qua, nhập sudo find /home -mtime -1 và nhấn Enter.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh find]
- Một lệnh khác chúng ta có thể sử dụng là công cụ xxd. Nhập sudo xxd -s 35 wordlists.txt và nhấn Enter. Một ví dụ về kết quả của lệnh được hiển thị trong ảnh chụp màn hình tiếp theo.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh xxd]
- Tiếp theo, nhập printf ‘A’ | xxd và nhấn Enter để chuyển đổi A thành hex.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh printf và xxd]
- Để chuyển đổi từ hex sang ASCII, nhập printf ‘0x41’ | xxd -r và nhấn Enter.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh printf và xxd -r]
- Để xuất ra ở dạng nhị phân, nhập printf ‘A’ | xxd -b và nhấn Enter. Kết quả của lệnh được hiển thị trong ảnh chụp màn hình tiếp theo.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh printf và xxd -b]
- Bây giờ chúng ta sẽ khám phá khả năng tìm kiếm chuỗi. Nhập sudo egrep -a -o ‘[A-Za-z]{2,6}’ /sbin/ifconfig và nhấn Enter.
- Bằng cách thay thế somefile.exe bằng tệp nhị phân, bạn có thể sử dụng egrep để tìm thấy nếu cần hoặc sử dụng nó như ifconfig như được hiển thị trong ảnh chụp màn hình tiếp theo. Một ví dụ về kết quả của lệnh được hiển thị trong ảnh chụp màn hình.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh egrep]
- Một tính năng hữu ích khác là loại bỏ các bản sao. Nhập sudo egrep -a -o ‘[A-Za-z]{2,6}’ /sbin/ifconfig | sort -u và nhấn Enter. Chúng ta đang chuyển kết quả sang sort với tùy chọn -u, điều này sẽ loại bỏ mọi bản sao. Đây là một tính năng phổ biến khác của các tệp, được tìm thấy trong quá trình kiểm tra hoặc so sánh.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh egrep và sort]
- Các mục tiêu của bài thực hành đã đạt được.
Bài tập 2: Các truy vấn URL cơ bản với cURL
Mục tiêu:
- Tạo các truy vấn cURL cơ bản, trích xuất dữ liệu và khám phá các tính năng và thành phần của cURL.
Thời gian thực hành: 20 phút
- cURL là một công cụ dòng lệnh và một thư viện có thể được sử dụng để nhận và gửi dữ liệu giữa một máy khách và máy chủ trên internet. Nó hỗ trợ nhiều giao thức khác nhau như HTTP, FTP, IMAP, POP3, LDAP và SMTP.
- Do tính chất linh hoạt của nó, cURL có thể được sử dụng trong nhiều ứng dụng và cho nhiều mục đích. Ví dụ: công cụ dòng lệnh có thể được sử dụng để tải xuống tệp và kiểm tra API (Giao diện chương trình ứng dụng) và các khối mạng khác nhau. Trong bài tập này, chúng ta sẽ xem xét cách công cụ dòng lệnh cURL có thể được sử dụng để thực hiện nhiều tác vụ khác nhau.
- Là một người kiểm tra thâm nhập, bạn cần làm quen với công cụ này. Chúng tôi sẽ trình bày một số ví dụ sử dụng trong bài tập này. Bạn sẽ thấy cần sử dụng công cụ này trong nhiều bài tập.
- Trong bài tập này, chúng ta sẽ xem xét các phương pháp khác nhau để trích xuất dữ liệu bằng cURL.
- Theo mặc định, máy Bash được chọn, hãy nhấp vào hồ sơ Sinh viên để đăng nhập. Nếu bạn đã đăng nhập, hãy chuyển đến bước 7.[Hình ảnh màn hình đăng nhập Ubuntu với hồ sơ Sinh viên được chọn]
- Nhập mật khẩu vào trường Mật khẩu và nhấp vào Đăng nhập.[Hình ảnh màn hình đăng nhập Ubuntu với trường mật khẩu được điền và nút đăng nhập được tô sáng]
- Đối với ví dụ đầu tiên của chúng ta, chúng ta sẽ kết nối với trang web. Nhập curl 192.168.177.200 và nhấn Enter. Nhập mật khẩu và nhấn Enter.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị lệnh curl và yêu cầu mật khẩu][Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh curl]
- Ở dạng này, công cụ cURL hoạt động như một máy khách đơn giản. Chúng ta có khả năng làm điều này bằng Telnet và netcat.
- Bây giờ hãy xem nó trông như thế nào ở cấp độ gói tin. Chúng ta cần biết điều này trong trường hợp chúng ta đang kiểm tra. Một ví dụ về gói tin mà công cụ gửi đi được hiển thị trong ảnh chụp màn hình sau. Mặc định User-Agent là phần mềm nào đang gửi yêu cầu trong cURL. Điều này có thể được tùy chỉnh. Việc hiểu khả năng này là cần thiết nếu bạn muốn theo dõi hành vi (trên máy chủ web packet), hoặc nếu bạn là thành viên của đội đỏ.[Hình ảnh chụp màn hình Wireshark hiển thị các gói tin cURL]
- Tương tự như hầu hết các công cụ, cURL có khả năng xuất ra tệp. cURL sử dụng tùy chọn -o. Công cụ cũng có thể tải xuống, và khi thực hiện, nó hiển thị thanh tiến trình tải xuống. Một ví dụ được hiển thị trong ảnh chụp màn hình sau.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị lệnh curl với tùy chọn -o và thanh tiến trình tải xuống]
- Nếu bạn có một tệp đã tải xuống một phần, bạn có thể tiếp tục tải xuống tệp bằng tùy chọn -C.
- Chúng ta có thể kiểm tra điều này ngay bây giờ. Đăng nhập vào máy Bash-Web với tên người dùng là root và mật khẩu là owaspboa.[Hình ảnh chụp màn hình bảng điều khiển Bash-Web]
- Khi bạn đã vào trong máy, bạn có thể sử dụng lệnh dd để tạo tệp. Nhập dd if=/dev/zero of=testfile 10MB bs=10485760 count=1 và nhấn Enter.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị lệnh dd]
- Tiếp theo, chúng ta cần sao chép tệp vào thư mục gốc cho máy chủ web. Đầu tiên, chúng ta cần xác định vị trí của nó. Trong hầu hết các trường hợp, thư mục gốc nằm ở vị trí thực tế. Vì vậy, hãy xem liệu có phải như vậy không. Nhập ls -lart /var/www/index.html và nhấn Enter. Một ví dụ về kết quả của lệnh được hiển thị trong ảnh chụp màn hình sau.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh ls]
- Bây giờ tệp đã được xác minh cùng với đường dẫn, chúng ta có thể sao chép tệp đã tạo của chúng ta đến đó. Nhập cp testfile 10MB /var/www/ và nhấn Enter.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị lệnh cp]
- Chuyển sang máy Bash và nhập sudo curl 192.168.177.200/testfile 10MB và nhấn Enter. 192.168.177.200 là IP của máy Bash-Web.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị lệnh curl và thanh tiến trình tải xuống]
- Trước khi chúng ta đi sâu hơn vào các tính năng được cURL hỗ trợ, chúng ta sẽ thảo luận về các yêu cầu và phản hồi HTTP chi tiết hơn. Nếu bạn đã quen thuộc với các khái niệm này, bạn có thể chuyển sang Bước 20. Như được hiển thị, để yêu cầu một tài nguyên, chẳng hạn như một trang web, bạn gửi yêu cầu đến máy chủ web. Máy chủ web phản hồi bằng phản hồi HTTP, जिसमें chứa “nội dung” của trang đó. Một ví dụ về điều này được hiển thị trong ảnh chụp màn hình sau.[Hình ảnh minh họa các yêu cầu và phản hồi HTTP]
- Các yêu cầu HTTP chứa phương thức yêu cầu, URL, một số tiêu đề và một số dữ liệu tùy chọn sẽ được xử lý như một phần của “thân yêu cầu”. Các phương thức yêu cầu phổ biến nhất là “GET” và “POST”. Thông thường, chúng ta sử dụng “GET” để lấy dữ liệu từ máy chủ và “POST” để gửi dữ liệu đến máy chủ để xử lý.
- Các phản hồi HTTP tương tự chứa các tiêu đề và phần thân phản hồi. “Mã trạng thái” (ví dụ: 2xx cho thành công, 3xx cho chuyển hướng, 4xx cho lỗi máy khách, 5xx cho lỗi máy chủ), cùng với một số tiêu đề, thường được bao gồm. Phần thân chứa dữ liệu thực tế mà máy khách có thể hiển thị (ví dụ: trang web) hoặc lưu vào tệp. Mã trạng thái cũng hướng dẫn máy khách nên tiến hành như thế nào – ví dụ: chuyển hướng đến một trang khác.
- Để xem các tiêu đề yêu cầu và thông tin kết nối, bạn có thể sử dụng tùy chọn -v. Nhập curl -v 192.168.177.200 và nhấn Enter. Một ví dụ về kết quả của lệnh được hiển thị trong ảnh chụp màn hình sau.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh curl -v]
- Dành một vài phút để xem xét kết quả. Nếu muốn, bạn có thể xuất kết quả của lệnh (với -v, tiêu đề phản hồi được đánh dấu bằng > và dữ liệu yêu cầu với *) sang một tệp để xem xét sau. Bạn cũng có thể yêu cầu thêm thông tin về quá trình được sử dụng và giao thức HTTP (ví dụ: phân bổ bộ nhớ) bằng cách sử dụng -vv hoặc -vvv.
- Thông thường, chúng ta không quan tâm đến phần thân phản hồi. Bạn có thể ẩn nó bằng cách “chuyển” kết quả ra thiết bị null (/dev/null), là “thùng rác”.
- Nếu bạn muốn thực hiện quét nhanh mà không cần nhìn thấy các thanh tiến trình hoặc thông báo lỗi, bạn có thể sử dụng tùy chọn -s. Nhập curl -s /dev/null http://192.168.177.200/testfile_10MB và nhấn Enter.
- Tùy chọn -s hơi mạnh tay vì nó thậm chí còn ẩn cả thông báo lỗi. Đối với trường hợp của bạn, nếu bạn muốn ẩn thanh tiến trình nhưng vẫn xem bất kỳ lỗi nào, bạn có thể kết hợp tùy chọn -S.
- Do đó, nếu bạn muốn lưu kết quả của cURL vào một tệp và chỉ muốn ẩn thanh tiến trình, bạn có thể nhập curl -S -o /dev/null http://192.168.177.200/testfile_10MB và nhấn Enter.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị lệnh curl]
- Bây giờ chúng ta sẽ đề cập đến việc lệnh hiển thị tên cURL trong User-Agent. Khi truy xuất API, bạn có thể cần phải đặt tiêu đề tùy chỉnh trên các yêu cầu HTTP. Bạn có thể làm điều này bằng cách sử dụng -H tùy chọn. Đối với mục đích này, hãy đảm bảo bạn đang chạy Wireshark hoặc tcpdump để chụp các tiêu đề. Nhập curl -H ‘X-My-Header: CLIENTZZZZ’ http://192.168.177.200 và nhấn Enter. Kết quả của lệnh được hiển thị trong ảnh chụp màn hình sau.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh curl -H]
- Chờ một chút. Chúng ta đã có tiêu đề tùy chỉnh của mình, nhưng chúng ta vẫn thấy thông báo cho biết rằng chúng ta đang sử dụng User-Agent TEST. Khởi động lại Wireshark và nhập curl -H ‘User-Agent: TEST’ -H ‘X-My-Header: CLIENTZZZZ’ http://192.168.177.200 và nhấn Enter.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị lệnh curl][Hình ảnh chụp màn hình Wireshark hiển thị các gói tin cURL]
- Như bạn thấy, chúng ta đã đặt tiêu đề máy khách của chúng ta thành công. Bạn có thể làm nhiều hơn nữa, và chúng tôi khuyến khích bạn khám phá thêm. Theo mặc định, cURL gửi các yêu cầu GET, nhưng bạn cũng có thể gửi dữ liệu trong yêu cầu POST với tùy chọn -d. Nhập curl -d ‘firstname=lastname&world=https://httpbin.org/post và nhấn Enter.
- Kết quả rõ ràng cho thấy chúng ta đã đăng hai tham số được xác định bằng dữ liệu biểu mẫu.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh curl -d]
- Để làm mới, các ký tự được coi là ký tự đặc biệt phải được mã hóa. Điều này có thể được thực hiện thủ công, nhưng sẽ dễ dàng hơn khi sử dụng công cụ cURL. Bây giờ, nhập curl –data-urlencode ’email=test@example.com’ –data-urlencode ‘name=Penetration Testing’ https://httpbin.org/post và nhấn Enter.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh curl –data-urlencode]
- Nếu bạn muốn tải tệp lên bằng yêu cầu POST, bạn chỉ cần sử dụng tùy chọn -F. Ở đây, chúng tôi sẽ gửi tệp file.txt dưới tên tham số file.
- Nhập echo “This is a test file for pentesting practice” > file.txt và nhấn Enter.
- Nhập curl -F file=@file.txt https://httpbin.org/post và nhấn Enter.
- Trước đây, chúng ta đã thấy cách gửi các yêu cầu POST bằng cURL. Đôi khi, bạn có thể cần gửi yêu cầu POST đến máy chủ mà không có bất kỳ dữ liệu nào. Trong trường hợp đó, chỉ cần thay đổi phương thức yêu cầu thành POST bằng tùy chọn -X.
- Phương thức yêu cầu cũng có thể được thay đổi thành bất kỳ phương thức nào khác như PUT, DELETE hoặc PATCH. Một ngoại lệ cho điều này là phương thức HEAD, không thể truy xuất nội dung của tài nguyên. Phương thức này chỉ tìm nạp tiêu đề, và do đó chúng tôi sử dụng tùy chọn -I. Nhập sudo curl -I 192.168.177.200 và nhấn Enter. Nhập mật khẩu và nhấn Enter.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh curl -I]
- Như ảnh chụp màn hình ở trên cho thấy, chúng ta chỉ tìm nạp tiêu đề. Phương thức HEAD đã được chứng minh.
- Chúng ta cũng có thể truy cập các công cụ dành cho nhà phát triển Firefox. Khởi chạy trình duyệt Firefox và mở bất kỳ trang web GET nào. Nhấp chuột phải để hiển thị menu tùy chọn và sau đó nhấp vào Tab Mạng.
- Chọn một URL GET. Chúng ta có tùy chọn để sao chép URL cho cả Windows và POSIX. Chọn URL phù hợp và sau đó dán nó.[Hình ảnh chụp màn hình công cụ dành cho nhà phát triển Firefox hiển thị tùy chọn sao chép cURL]
- Chuyển sang thiết bị đầu cuối cURL và dán URL cURL đã sao chép vào thiết bị đầu cuối và nhấn Enter. Bạn có thể thử nghiệm điều này bằng cách kết nối với bất kỳ máy chủ web nào.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh curl đã dán]
- Đôi khi, bạn có thể muốn đảm bảo rằng các yêu cầu cURL sử dụng cùng các tùy chọn. Việc chuyển các tùy chọn này thủ công không phải là một giải pháp khả thi. Do đó, cURL cho phép bạn chỉ định một tệp cấu hình. Tệp cấu hình mặc định nằm trong thư mục ~/.curlrc. Một ví dụ về cấu hình được hiển thị trong ảnh chụp màn hình sau.[Ảnh chụp màn hình cấu hình cURL]
- Nếu bạn muốn sử dụng tệp cấu hình tùy chỉnh thay vì tệp mặc định, bạn có thể sử dụng tùy chọn -K với curl. Dành vài phút để tìm hiểu thêm về công cụ này. Nhập man curl.
- Chúng tôi đã trình bày nhiều cách để sử dụng công cụ này, và còn nhiều cách khác nữa. Các mục tiêu của bài tập đã đạt được.
Bài tập 3: Phân tích Nhật ký bằng Bash
Mục tiêu:
- Tạo các truy vấn Bash, trích xuất dữ liệu từ các tệp nhật ký và sửa đổi dữ liệu nhật ký.
Thời gian thực hành: 20 phút
- Trong bài tập này, chúng ta sẽ xem xét các phương pháp khác nhau để trích xuất dữ liệu từ các tệp nhật ký bằng các phương pháp Bash khác nhau.
- Theo mặc định, máy Bash được chọn, nhấp vào Bash-Web để chuyển đổi. Nếu bạn đã đăng nhập, hãy chuyển sang Bước 4.
- Đăng nhập vào máy bằng tên người dùng là root và mật khẩu là owaspboa.[Hình ảnh chụp màn hình bảng điều khiển Bash-Web]
- Trong thiết bị đầu cuối, nhập tail -f /var/log/syslog và nhấn Enter.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh tail]
- Chuyển sang Bash-Machine và nhập nikto -h 192.168.177.200 vào thiết bị đầu cuối và nhấn Enter. Nếu máy bị khóa, hãy di chuyển con trỏ theo hướng lên và nhập mật khẩu vào trường Mật khẩu và nhấn Enter.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh nikto]
- Chuyển sang Bash-Web và nhấn Ctrl+C. Nhật ký chính của Apache nằm trong thư mục /var/log/apache2. Thay đổi thư mục thành /var/log/apache2 bằng cd /var/log/apache2.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị lệnh cd]
- Tiếp theo, nhập tail -f access.log và nhấn Enter và để máy không bị ảnh hưởng.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh tail]
- Bây giờ, hãy chuyển sang Bash-Machine và chạy lại Nikto. Sau đó, chuyển sang Bash-Web và xem kết quả của lần quét. Điều này được hiển thị trong ảnh chụp màn hình tiếp theo.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị nhật ký truy cập Apache]
- Kết quả quét đang được theo dõi trong tệp access.log. Tuy nhiên, vì chúng tôi chỉ quét trang mặc định, chúng tôi không nhận được nhiều thông tin. Bây giờ, hãy giả vờ chúng tôi là quản trị viên của máy chủ web này và nhận thấy rằng có ai đó đang quét máy chủ web. Chúng tôi có thể sửa đổi nhật ký và thay đổi IP để nó không phải là của chúng tôi, nếu đó là điều chúng tôi muốn thực hiện. Tuy nhiên, việc sửa đổi nhật ký là điều hiển nhiên và đây không phải là điều một chuyên gia làm. Nhật ký có thể bị xóa, nhưng điều này sẽ rất hiển nhiên và người dùng sẽ biết có điều gì đó không ổn ở đó.
- Trong một số trường hợp, việc thu nhỏ nhật ký hoặc tìm kiếm các từ khóa cụ thể có thể tiết kiệm thời gian.
- Do có nhiều mục, chúng ta có thể sử dụng lệnh và ghép nối vào grep và tìm kiếm giao thông. Nhập cat access.log | grep index.php | more vào máy Bash-Web. Kết quả của lệnh này được hiển thị trong ảnh chụp màn hình tiếp theo. Nhấn Enter để xem kết quả bạn nhận được trên thiết bị đầu cuối.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh cat, grep và more]
- Như ảnh chụp màn hình ở trên cho thấy, chúng ta đang gặp sự cố với User-Agent là Nikto, cùng với IP và chuỗi tấn công rõ ràng.
- Bây giờ chúng ta hãy xem tất cả các nhật ký trong thư mục. Nhập ls /var/log và nhấn Enter.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh ls /var/log]
- Như hình ảnh ở trên cho thấy, có một số tệp nhật ký và việc điều tra chúng nằm ngoài phạm vi của bài tập này. Tuy nhiên, quá trình phân tích nhật ký là như nhau, bất kể bạn xem xét nhật ký nào.
- Lệnh dmesg in ra bộ đệm vòng của kernel. Theo mặc định, lệnh sẽ hiển thị tất cả các thông báo từ bộ đệm vòng của kernel trên thiết bị đầu cuối. Nhập dmesg và nhấn Enter. Một ví dụ về kết quả được hiển thị trong ảnh chụp màn hình tiếp theo.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh dmesg]
- Kết quả có thể được theo dõi lâu dài, miễn là bạn ghép nối nó với grep và tìm kiếm quá trình mạng. Nếu có bất kỳ điều gì được ghi lại, nó sẽ được in ra. Một ví dụ về điều này được hiển thị trong ảnh chụp màn hình tiếp theo.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh dmesg | grep network]
- Tiếp theo, chúng ta sẽ xem xét nhật ký auth.log. Trong thiết bị đầu cuối, nhập cd /var/log và nhấn Enter. Thay đổi thư mục thành log. Nhập tail -f auth.log và nhấn Enter. Điều này sẽ hiển thị các phiên đăng nhập.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh tail -f auth.log]
- Chuyển sang máy Bash-Machine và nhập ssh root@192.168.177.200 và nhấn Enter. Chấp nhận thông báo lưu trữ khóa và nhấn Enter.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị lệnh ssh và yêu cầu mật khẩu]
- Nhập mật khẩu sai.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị thông báo lỗi đăng nhập]
- Bây giờ, hãy chuyển sang máy Bash-Web và nhập awk ‘/sshd: Failed/{ print $9 }’ /var/log/auth.log và nhấn Enter. Một ví dụ về kết quả của lệnh được hiển thị trong ảnh chụp màn hình tiếp theo.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh awk]
- Như ảnh chụp màn hình cho thấy, việc đăng nhập đã thất bại.
- Bây giờ chúng ta đã sẵn sàng để sửa đổi nhật ký và thay đổi quyền truy cập của chúng ta để nó không hiển thị rằng chúng ta đang thực hiện quyền truy cập. Nhập lệnh sau và thay đổi địa chỉ thành địa chỉ của bạn nếu cần. cat /var/log/apache2/access.log | grep -v ‘192.168.177.82’ > cleaned.log 192.168.177.82 là địa chỉ IP của máy Bash-Machine.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị lệnh cat và grep]
- Bây giờ bạn muốn grep cho địa chỉ IP của bạn để xem nó có còn ở đó không. Nhập cat cleaned.log | grep ‘192.168.177.82’ và nhấn Enter. Kết quả của lệnh được hiển thị trong ảnh chụp màn hình tiếp theo.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị kết quả của lệnh cat và grep]
- Như ảnh chụp màn hình ở trên cho thấy, chúng ta đã thành công và không có bằng chứng nào về địa chỉ IP của chúng ta trong nhật ký.
- Nhiệm vụ cuối cùng của bài tập này là sử dụng Bash để kết nối với một socket. Điều này được thực hiện bằng cách nhập đoạn mã sau được hiển thị trong ảnh chụp màn hình tiếp theo.[Hình ảnh chụp màn hình thiết bị đầu cuối hiển thị lệnh cat và echo]
- Tùy thuộc vào phiên bản của hệ điều hành, vị trí của Transmission Control Protocol (TCP) có thể hoặc không thể giống nhau.
- Các mục tiêu của bài tập đã đạt được.





Bình luận về bài viết này