CompTIA PENTEST+ (PT0-002) Bài 13- Hướng dẫn Pentest Ứng dụng Web

Tài liệu Hướng dẫn Kiểm thử hay Tấn công Ứng dụng Web

Mục tiêu:

  • Khi được giao một tình huống, thực hiện trinh sát chủ động (active reconnaissance).
  • Khi được giao một tình huống, nghiên cứu các vectơ tấn công và thực hiện các cuộc tấn công dựa trên ứng dụng.
  • Khi được giao một tình huống, thực hiện tấn công lừa đảo (social engineering) hoặc tấn công vật lý.
  • Giải thích các cuộc tấn công và lỗ hổng phổ biến đối với các hệ thống chuyên biệt.
  • Khi được giao một tình huống, thực hiện các kỹ thuật hậu khai thác (post-exploitation).
  • Giải thích các trường hợp sử dụng của các công cụ sau đây trong các giai đoạn của một cuộc kiểm tra xâm nhập (penetration test).

Chủ đề 13A: Nhận biết Lỗ hổng Web
Trong thế giới ngày nay, hầu hết các tổ chức đều dựa vào các ứng dụng web để tiến hành kinh doanh. Tuy nhiên, sự phổ biến của chúng cũng làm cho chúng trở thành mục tiêu hấp dẫn cho tin tặc. Các lỗ hổng trong ứng dụng web có thể cho phép truy cập trái phép vào dữ liệu nhạy cảm, thay đổi chức năng ứng dụng hoặc thậm chí kiểm soát toàn bộ máy chủ. Là một phần quan trọng của quy trình kiểm tra xâm nhập, Đội ngũ Pentest của Security365 phải xác định và khai thác các lỗ hổng này trước khi kẻ tấn công làm như vậy.

Ứng dụng web (web apps) tương tác với nhiều người dùng khác nhau cùng một lúc, điều này cung cấp cho kẻ tấn công một mục tiêu dễ dàng.
Nói chung, các lỗ hổng bao gồm:

  • Cấu hình bảo mật được triển khai kém hoặc không tồn tại.
  • Lỗi trong các thành phần xác thực và ủy quyền.
  • Khả năng xảy ra nhiều loại tấn công chèn mã (code injection)
    Các lỗ hổng phổ biến nhất được mô tả trong OWASP Top Ten

Ví dụ: Một trang web thương mại điện tử trên comptia.edu.vn chứa một lỗ hổng cho phép kẻ tấn công bỏ qua xác thực và truy cập tài khoản của người dùng khác chỉ bằng cách thay đổi một tham số trong URL. Điều này là do lỗi trong mã ủy quyền của ứng dụng.

Các biện pháp bảo mật cho các tài nguyên web có thể để lại khoảng trống khiến dữ liệu bị lộ và dễ bị tổn thương.
Các lỗ hổng bao gồm cấu hình mặc định không an toàn, lưu trữ đám mây mở, tiêu đề HTTP được cấu hình sai và thông báo lỗi chi tiết.
Sự phơi bày này có thể cung cấp cho kẻ tấn công thêm các chi tiết để nghiên cứu và các vectơ khác để phân tích và có thể khai thác.
Điều này được đề cập như OWASP Top Ten A6:2017-Security Misconfiguration.

Ví dụ: Trong quá trình thử nghiệm, Đội ngũ Pentest của Security365 phát hiện ra rằng máy chủ web chạy một phiên bản Apache lỗi thời với cấu hình mặc định, bao gồm trang thông tin phiên bản mặc định. Trang này tiết lộ phiên bản phần mềm chính xác và các module đã cài đặt, cho phép họ tìm kiếm các lỗ hổng đã biết.

Các nhà phát triển thêm mã để xử lý lỗi, đảm bảo tính liên tục và cung cấp đầu ra lỗi chi tiết.
Tuy nhiên, đầu ra lỗi có thể cung cấp cho đội những chi tiết quan trọng về công nghệ cơ bản.
Những lần khác, lỗi chứa tham chiếu đến vị trí của các tệp liên quan đến ứng dụng web.
Điều này được đề cập như OWASP Top Ten A3:2017-Sensitive Data Exposure.

Ví dụ: Khi kiểm tra một biểu mẫu đăng nhập, Đội ngũ Pentest của Security365 cố ý gửi thông tin đăng nhập không hợp lệ. Thay vì chỉ trả về một thông báo lỗi chung, ứng dụng hiển thị toàn bộ stack trace, tiết lộ cấu trúc nội bộ của mã và thậm chí một số thông tin đăng nhập cơ sở dữ liệu.

Khi dữ liệu do người dùng cung cấp được ứng dụng web xử lý mà không có xác thực thích hợp, điều này có thể khiến hệ thống bị lộ.
Thiếu xác thực đầu vào (input validation) có thể dẫn đến các cuộc tấn công chèn, chẳng hạn như chèn SQL, NoSQL, OS và LDAP.
Điều này sau đó có thể cho phép kẻ tấn công thực thi các lệnh hoặc truy cập dữ liệu mà không cần ủy quyền.
Điều này được gọi là OWASP Top Ten A1:2017-Injection.

Ví dụ: Một biểu mẫu tìm kiếm trên trang web comptia.edu.vn chuyển trực tiếp đầu vào của người dùng vào truy vấn SQL mà không có bất kỳ xác thực hoặc thoát nào. Kẻ tấn công có thể đưa các câu lệnh SQL tùy ý vào trường tìm kiếm, cho phép họ sửa đổi logic truy vấn, truy xuất dữ liệu nhạy cảm hoặc thậm chí xóa toàn bộ cơ sở dữ liệu.

Để xác nhận rằng một tập lệnh hoặc tệp thực thi không bị giả mạo, các nhà phát triển tạo chữ ký số (digital signature).
Sử dụng khóa riêng của nhà phát triển.
Nếu mã không được ký đúng cách, điều này có thể cho phép ai đó sửa đổi mã, có thể dẫn đến những điều sau:

  • Kẻ tấn công có thể truy cập vào tài nguyên được bảo vệ.
  • Người dùng có thể vô tình chạy mã không hợp lệ hoặc không xác thực.

Ví dụ: Một nhà phát triển phần mềm cung cấp một bản cập nhật cho một thư viện JavaScript được sử dụng rộng rãi nhưng quên ký nó. Kẻ tấn công chèn mã độc hại vào thư viện và phân phối nó từ một máy chủ bị xâm phạm. Nhiều trang web tải xuống bản cập nhật không biết và bao gồm mã độc trong các trang của họ, dẫn đến việc lây nhiễm hàng loạt.

Các điều kiện chạy đua (race conditions) xảy ra khi kết quả từ các quy trình thực thi phụ thuộc trực tiếp vào thứ tự và thời gian của các sự kiện nhất định.
Các vấn đề có thể phát sinh nếu các sự kiện này không thực thi theo thứ tự và thời gian dự định của nhà phát triển.
Ví dụ: một ứng dụng có thể kiểm tra xem tệp có tồn tại hay không và sau đó sử dụng nó.
Bạn có thể thay thế tệp sau khi nó được kiểm tra nhưng chưa được sử dụng.
Điều này sau đó có thể gây ra tình trạng không ổn định của ứng dụng hoặc leo thang đặc quyền (privilege escalation).

Ví dụ: Một ứng dụng web trên comptia.edu.vn kiểm tra quyền của người dùng trước khi phục vụ tệp, nhưng có một độ trễ nhỏ giữa thời điểm kiểm tra và thời điểm tệp được gửi. Kẻ tấn công có thể yêu cầu một tệp, sau đó nhanh chóng nâng cấp đặc quyền của mình trước khi tệp được tải, dẫn đến hành vi không mong muốn.

Hoạt động ôn tập:

  1. Phác thảo tầm quan trọng của OWASP Top 10
  2. Liệt kê các cách nhà phát triển có thể vô tình tiết lộ dữ liệu nhạy cảm
  3. Xem lại hậu quả của việc xử lý lỗi không đúng cách
  4. Thảo luận về những gì có thể xảy ra khi thiếu xác thực đầu vào
  5. Giải thích tại sao ký và xác minh mã, tập lệnh và tệp thực thi là thực hành tốt
  6. Mô tả điều gì xảy ra trong một điều kiện chạy đua (race condition)

Chủ đề 13B: Tấn công Phiên (Session Attacks)
Một trong những phương pháp mà tin tặc sử dụng để xâm phạm ứng dụng web là bằng cách nhắm mục tiêu vào cơ chế phiên của chúng. Mỗi lần người dùng xác thực với một ứng dụng, một phiên được thiết lập để duy trì trạng thái đăng nhập của họ. Nếu tin tặc có thể đánh cắp thông tin xác thực phiên hoặc thao túng phiên theo cách khác, họ có thể giả mạo người dùng hợp pháp và đạt được quyền truy cập trái phép. Đội ngũ Pentest của Security365 cần thực hiện các cuộc tấn công này để xác định và khắc phục các lỗ hổng trong cách ứng dụng xử lý phiên.

Cookie là một tệp văn bản chứa ID phiên (session ID – SID) cho web đó.
Được sử dụng như một mã thông báo xác thực thay vì phải nhập lại thông tin đăng nhập.
Cướp phiên (session hijacking) là đánh cắp thông tin xác thực phiên từ trình duyệt của người dùng và sau đó sử dụng nó để mạo danh người dùng trên trang web.
Cố định phiên (session fixation) yêu cầu người dùng xác thực bằng một định danh phiên đã biết mà sau đó sẽ được sử dụng để mạo danh.
Phát lại phiên (session replay) là khi kẻ tấn công có được thông tin đăng nhập của nạn nhân và sử dụng chúng để truy cập vào phiên.

Ví dụ: Một người dùng đăng nhập vào https://comptia.edu.vn, nhận được một cookie phiên. Sử dụng kỹ thuật chuyển hướng, tin tặc lừa người dùng truy cập một trang web độc hại chứa mã JavaScript đánh cắp cookie phiên và gửi nó cho tin tặc. Bây giờ tin tặc có thể sử dụng cookie này để mạo danh người dùng và truy cập tài khoản của họ.

Cuộc tấn công giả mạo yêu cầu liên trang (Cross-Site Request Forgery – XSRF/CSRF) lợi dụng niềm tin mà các trang web từ xa có trong hệ thống của người dùng để thực thi các lệnh thay mặt cho người dùng.
Tận dụng dữ liệu xác thực đã lưu được lưu trữ bên trong cookie để có quyền truy cập vào dữ liệu nhạy cảm của trình duyệt web.
Ví dụ, trang mục tiêu có một biểu mẫu với hộp kiểm “Ghi nhớ tôi” (Remember Me), sau đó tạo một cookie đã lưu
Cookie sau đó được sử dụng để xác thực khi họ truy cập trang web.
Bạn có thể khai thác niềm tin này và tận dụng các đặc quyền của người dùng

Ví dụ: Trang web https://comptia.edu.vn có chức năng cho phép người dùng đổi mật khẩu của họ, sử dụng yêu cầu GET với mật khẩu mới trong URL. Khi người dùng đăng nhập vào trang web, tin tặc gửi cho họ một liên kết độc hại đến URL này, với mật khẩu được chọn trước của tin tặc. Nếu người dùng nhấp vào liên kết trong khi đã đăng nhập, yêu cầu sẽ tự động hoàn thành, đặt lại mật khẩu của người dùng thành mật khẩu của tin tặc.

Leo thang đặc quyền theo chiều ngang (Horizontal Privilege Escalation) – có được quyền truy cập vào tài khoản có quyền truy cập hoặc quyền khác với tài khoản hiện đang sử dụng.
Cách tiếp cận này giảm nguy cơ gây nghi ngờ.
Leo thang đặc quyền theo chiều dọc (Vertical Privilege Escalation) – có được quyền truy cập vào tài khoản có đặc quyền cao hơn tài khoản hiện đang sử dụng.
Sử dụng tài khoản để truy cập vào các tài nguyên thường được bảo vệ.
Ví dụ, một quy trình có thể chạy với đặc quyền quản trị viên cục bộ, nhưng lỗ hổng cho phép mã tùy ý chạy với đặc quyền hệ thống cao hơn.

Ví dụ: Sau khi đăng nhập vào trang web comptia.edu.vn với tư cách người dùng thông thường, Đội ngũ Pentest của Security365 phát hiện một lỗ hổng cho phép họ xem thông tin về người dùng khác, bao gồm cả quản trị viên. Họ sử dụng điều này để lấy tên người dùng và mật khẩu của quản trị viên, cấp cho họ kiểm soát hoàn toàn trang web.

Shell không tương tác (non-interactive shell), hay bị hạn chế (restricted shell), có chức năng tối thiểu, không giống như shell tương tác:
Bạn không thể nhấn phím mũi tên lên để hiển thị các lệnh trước đó; hoặc khi nhấn TAB, lệnh không tự động hoàn thành.
Bạn không thể di chuyển qua hệ thống, khám phá các thư mục hoặc chuyển hướng đầu ra.
Khi Pentest, đội có thể cần nâng cấp shell không tương tác thành shell tương tác bằng lệnh hoặc tập lệnh

Ví dụ: Sau khi khai thác thành công lỗ hổng trong ứng dụng web trên comptia.edu.vn, Đội ngũ Pentest của Security365 thu được quyền truy cập shell hạn chế. Sử dụng một kỹ thuật gọi là “shell spawning”, họ nâng cấp lên một shell tương tác đầy đủ tính năng. Điều này cho phép họ duyệt hệ thống tệp, chạy lệnh bổ sung và thu thập thông tin nhạy cảm.

Lỗ hổng logic nghiệp vụ (business logic flaws) là những lỗ hổng phát sinh từ các vấn đề về thiết kế và triển khai sai lầm có thể dẫn đến hành vi ngoài ý muốn.
Ví dụ: một phương thức được triển khai kém để khóa tài khoản sau nhiều lần xác thực không thành công liên tiếp.
Các loại dịch vụ phổ biến bị khai thác do lỗ hổng logic nghiệp vụ là API, bao gồm RESTful, XML-RPC và SOAP.
Các lỗ hổng logic nghiệp vụ nên được xác định và giảm thiểu vì chúng có thể dẫn đến truy cập trái phép vào nội dung được bảo vệ.

Ví dụ: Trong quá trình kiểm tra một API trên https://comptia.edu.vn, Đội ngũ Pentest của Security365 nhận thấy rằng sau khi đặt mặt hàng, người dùng có thể sửa đổi ID mặt hàng trong yêu cầu để đặt một mặt hàng khác. Điều này cho phép họ mua các mặt hàng đắt tiền với giá của các mặt hàng rẻ hơn.

Hoạt động ôn tập:

  1. So sánh các dạng cướp phiên (session hijacking) khác nhau
  2. Cung cấp tổng quan về các cuộc tấn công Giả mạo Yêu cầu (Request Forgery Attacks)
  3. Thảo luận về các cách mà đội có thể leo thang đặc quyền
  4. Phác thảo lý do tại sao đội cần nâng cấp shell không tương tác
  5. Giải thích tại sao điều quan trọng là phải xác định và giảm thiểu các lỗ hổng logic nghiệp vụ

Chủ đề 13C: Các cuộc tấn công Chèn mã (Injection Attacks)
Các cuộc tấn công chèn là một số cuộc tấn công nguy hiểm và phổ biến nhất mà ứng dụng web phải đối mặt. Chúng xảy ra khi đầu vào không đáng tin cậy từ người dùng được truyền vào câu lệnh hoặc truy vấn, cho phép kẻ tấn công thay đổi logic cơ bản của chương trình. Hậu quả có thể dao động từ rò rỉ dữ liệu đến kiểm soát hoàn toàn máy chủ. Đội ngũ Pentest của Security365 cần thành thạo việc phát hiện và khai thác các lỗ hổng chèn mã để giúp tổ chức tăng cường bảo mật ứng dụng của họ.

Tấn công chèn SQL (SQLi) là một trong những loại chèn mã phổ biến nhất. Do đó, đội nên kiểm tra lỗ hổng này.
Một phương pháp đơn giản là sử dụng phương pháp dấu nháy đơn sau đó tìm kiếm lỗi.
Một số API ứng dụng web cho phép bạn xếp chồng nhiều truy vấn trong cùng một lệnh gọi.
Bạn có thể sử dụng điều này để lấy dữ liệu từ các bảng khác có thể không được ứng dụng hiển thị trực tiếp.
Blind SQL injection đang chèn SQL khi phản hồi của ứng dụng web không chứa kết quả của truy vấn.

Ví dụ: Trong khi kiểm tra một trang đăng nhập trên comptia.edu.vn, Đội ngũ Pentest của Security365 chèn một dấu nháy đơn vào trường tên người dùng. Điều này tạo ra một lỗi cơ sở dữ liệu, chỉ ra rằng đầu vào không được làm sạch đúng cách. Sử dụng kỹ thuật SQLi, họ có thể bỏ qua xác thực đăng nhập và truy xuất dữ liệu người dùng nhạy cảm.

Directory traversal đang truy cập tệp từ vị trí mà người dùng không được phép truy cập.
Ví dụ đơn giản nhất liên quan đến việc gửi lệnh ..\ hoặc ../ đến ứng dụng hoặc API.
Nó hiệu quả nhất khi bạn có thể điều hướng ngược về thư mục gốc và thực thi bất kỳ lệnh hoặc chương trình nào trong bất kỳ thư mục nào trên máy tính.
Máy chủ web được cấu hình đúng cách sẽ lọc các đầu vào không đáng tin cậy đã biết như tập ký tự duyệt qua thư mục.
Tuy nhiên, bạn có thể bỏ qua các bộ lọc này bằng cách mã hóa các ký tự trong yêu cầu của mình ở dạng thập lục phân.

Ví dụ: Ứng dụng web trên comptia.edu.vn sử dụng đầu vào người dùng để xây dựng đường dẫn tệp mà không xác thực. Đội ngũ Pentest của Security365 thử các chuỗi duyệt qua thư mục khác nhau và phát hiện rằng chúng có thể truy cập các tệp nhạy cảm về cấu hình trên hệ thống, chẳng hạn như /etc/passwd, cho phép họ thu thập tên người dùng để tấn công brute-force.

Các cuộc tấn công chèn mã có thể xâm phạm ứng dụng theo một số cách:

  • Gây ra DoS, leo thang đặc quyền, làm trang web xấu đi
  • Cài đặt phần mềm độc hại trên máy chủ lưu trữ ứng dụng
    Chèn mã (Code injection) đưa mã độc hại vào ứng dụng dễ bị tấn công để xâm phạm bảo mật của ứng dụng đó.
    Chèn lệnh (Command injection) cung cấp đầu vào độc hại cho máy chủ web, sau đó chuyển đầu vào này đến shell hệ thống để thực thi.

Ví dụ: Một biểu mẫu phản hồi trên comptia.edu.vn truyền đầu vào người dùng trực tiếp vào lệnh hệ thống mà không xác thực. Đội ngũ Pentest của Security365 chèn một dấu chấm phẩy theo sau là lệnh hệ thống, cho phép họ thực thi mã tùy ý trên máy chủ. Họ sử dụng điều này để lấy shell ngược và kiểm soát hoàn toàn máy chủ.

Tấn công chèn mã JavaScript liên trang (Cross-Site Scripting – XSS) là cuộc tấn công chèn mã JavaScript chạy trên trình duyệt của máy khách và có thể dẫn đến những điều sau:

  • Thay đổi nội dung của trang, đánh cắp cookie phiên, đọc thông tin nhạy cảm hoặc chèn phần mềm độc hại có thể thực thi trên máy tính của người dùng.
    Ba loại tấn công XSS như sau:
  • Liên tục – mã chèn được lưu trữ vĩnh viễn trên máy chủ web
  • Phản chiếu – mã phản chiếu từ nạn nhân đến máy chủ rồi quay lại kẻ tấn công
  • Dựa trên DOM – tận dụng việc triển khai JavaScript phía máy khách của ứng dụng web để thực hiện cuộc tấn công hoàn toàn trên máy khách.

Ví dụ: Một chức năng bình luận trên comptia.edu.vn không làm sạch đầu vào người dùng. Đội ngũ Pentest của Security365 đăng một bình luận với mã JavaScript độc hại nhúng vào. Bây giờ, bất cứ khi nào người dùng xem trang đó, mã sẽ chạy trong trình duyệt của họ, gửi cookie phiên của họ đến máy chủ của tin tặc, cho phép tin tặc cướp phiên của họ.

Proxy web là trung gian giữa máy khách và máy chủ.
Proxy nhận yêu cầu web và chuyển tiếp yêu cầu đến máy chủ
Máy khách không bao giờ tiếp xúc trực tiếp với máy chủ, điều này cải thiện bảo mật
Ngày nay, các máy chủ proxy nâng cao có thể bao gồm tường lửa và bộ lọc web, cùng với bộ nhớ đệm web và giúp bảo vệ chống lại các cuộc tấn công
Do đó, nếu khách hàng đang sử dụng proxy web, đội cần điều chỉnh Pentest cho phù hợp.

Ví dụ: Khi kiểm tra ứng dụng web, Đội ngũ Pentest của Security365 phát hiện ra rằng tất cả lưu lượng truy cập đều đi qua proxy web của bên thứ ba. Điều này ngăn chặn một số cuộc tấn công của họ, nhưng họ phát hiện ra rằng proxy đã được cấu hình không đúng cách và vẫn cho phép một số yêu cầu nguy hiểm đi qua. Họ khuyến nghị cấu hình lại proxy để lọc tốt hơn các cuộc tấn công.

Hoạt động ôn tập:

  1. Phác thảo lý do tại sao đội nên kiểm tra lỗ hổng SQLi
  2. Xem lại cách duyệt tệp bằng cách sử dụng đầu vào không hợp lệ
  3. Thảo luận về cách các cuộc tấn công chèn mã có thể xâm phạm ứng dụng
  4. Mô tả một số loại tấn công XSS
  5. Giải thích tại sao đội có thể cần điều chỉnh Pentest nếu khách hàng đang sử dụng proxy web

Chủ đề 13D: Các công cụ Kiểm thử Web
Để kiểm tra hiệu quả các ứng dụng web, Đội ngũ Pentest của Security365 cần một bộ công cụ mạnh mẽ trong kho vũ khí của họ. Những công cụ này tự động hóa nhiều tác vụ tẻ nhạt, cho phép đội tập trung vào các lĩnh vực phức tạp hơn của cuộc tấn công. Từ trình quét lỗ hổng tự động đến các framework khai thác chuyên dụng, mỗi công cụ đóng một vai trò quan trọng trong chu trình kiểm tra xâm nhập. Thông qua sự kết hợp chiến lược các công cụ này, các chuyên gia bảo mật có thể xây dựng một bức tranh toàn diện về tình trạng an ninh của ứng dụng web và cung cấp các khuyến nghị để cải thiện.

Các công cụ kiểm tra có phạm vi khả năng khác nhau:

  • Trình quét lỗ hổng đơn giản cho một ứng dụng web cụ thể
  • Công cụ tra cứu thông tin đăng nhập và proxy cho phép bạn thao tác và tinh chỉnh các yêu cầu
    Ví dụ bao gồm:
  • WPScan – Tự động thu thập dữ liệu về một trang WordPress và so sánh các phát hiện như plugin với cơ sở dữ liệu các lỗ hổng đã biết.
  • CrackMapExec – Công cụ hậu khai thác để xác định các lỗ hổng trong môi trường active directory.

Ví dụ: Để bắt đầu một cuộc kiểm tra ứng dụng web trên comptia.edu.vn, Đội ngũ Pentest của Security365 chạy WPScan chống lại trang web. Công cụ nhanh chóng xác định rằng trang web đang chạy một phiên bản WordPress lỗi thời với một số plugin dễ bị tấn công. Điều này cho họ một điểm khởi đầu để tập trung nỗ lực của họ.

BeEF là một công cụ được thiết kế để khai thác một số chức năng trong trình duyệt để khởi chạy các cuộc tấn công XSS và chèn mã vào trang web.
Mục tiêu là đạt được quyền truy cập, thu thập thông tin, sử dụng proxy và các tiện ích khác cho Pentester.
Một phương pháp để kiểm soát là bằng cách hook trình duyệt
Kết nối trình duyệt với một thiết bị khác, thường là công cụ hoặc framework của kẻ tấn công, để thực hiện các cuộc tấn công sâu hơn.
Với BeEF, bạn có thể dễ dàng ‘hook’ trình duyệt
Sử dụng một tệp JavaScript chuẩn có trong framework.

Ví dụ: Trong quá trình kiểm tra, Đội ngũ Pentest của Security365 chèn mã BeEF vào một lỗ hổng XSS mà họ tìm thấy trên comptia.edu.vn. Khi người dùng truy cập trang bị ảnh hưởng, trình duyệt của họ bị hook vào BeEF. Từ bảng điều khiển BeEF, đội có thể nhìn thấy trình duyệt nạn nhân và bắt đầu các cuộc tấn công khác nhau, chẳng hạn như thu thập cookie, keylogging và cài đặt phần mềm độc hại.

Trên cửa sổ chính của BeEF ở bên trái, bạn sẽ thấy một danh sách Trình duyệt đã Hook. Trong phần này, có hai thư mục được hiển thị:

  • Online thông báo cho bạn rằng thiết bị khả dụng và đang chờ chỉ thị.
  • Offline cho bạn biết rằng thiết bị không sẵn sàng.
    Nếu bạn chọn một địa chỉ IP của một trong các trình duyệt bị hook, BeEF sẽ cung cấp một số thông tin cơ bản, chẳng hạn như:
  • Trình duyệt web, Hệ điều hành, loại phần cứng (nếu đã biết), vị trí (nếu đã biết)

Ví dụ: Sau khi hook một số trình duyệt khách truy cập comptia.edu.vn, Đội ngũ Pentest của Security365 xem xét danh sách các máy nạn nhân. Họ thấy rằng một trong số chúng được liệt kê là đang trực tuyến, chạy Google Chrome trên Windows, và đặt tại Hà Nội. Họ chọn mục tiêu này để điều tra thêm.

Chọn một địa chỉ IP sẽ hiển thị các tab ở bên phải:

  • Chi tiết (Details), Nhật ký (Logs) và Lệnh (Commands).
    Chọn Lệnh sẽ cung cấp cách để thực thi nhiều mô-đun được sử dụng để thu thập thêm thông tin về thiết bị.
    Các mô-đun bao gồm:
  • Loại trình duyệt đang sử dụng, Sử dụng làm proxy, Lấy địa chỉ IP nội bộ
    BeEF sẽ chỉ ra những mô-đun nào sẽ hoạt động chống lại mục tiêu bằng cách sử dụng các màu khác nhau.

Ví dụ: Đối với trình duyệt bị hook đã chọn, Đội ngũ Pentest của Security365 sử dụng mô-đun “Lấy địa chỉ IP nội bộ” để xác định rằng máy nạn nhân có địa chỉ IP nội bộ là 192.168.1.24. Điều này cho thấy rằng máy tính đó nằm trong mạng nội bộ của công ty, có thể cho phép truy cập sâu hơn vào hệ thống.

Hoạt động ôn tập:

  1. So sánh sự khác biệt trong các công cụ kiểm tra web và liệt kê một số ví dụ
  2. Thảo luận về cách Browser Exploit Framework (BeEF) có thể được sử dụng để kiểm tra trình duyệt web
  3. Giải thích cách đội sẽ tiến hành khai thác trình duyệt với BeEF
  4. Mô tả cách BeEF hiển thị thông tin về các trình duyệt bị hook

Tổng kết bài học:
Trong bài học này, chúng ta đã khám phá thế giới tấn công ứng dụng web, một lĩnh vực quan trọng trong kiểm tra xâm nhập. Với sự phổ biến ngày càng tăng của các ứng dụng web trong kinh doanh và đời sống cá nhân, bảo mật chúng là một nhiệm vụ quan trọng đối với Đội ngũ Pentest của Security365.

Chúng ta đã bắt đầu bằng cách xem xét các lỗ hổng web phổ biến như được nêu trong OWASP Top 10. Từ các lỗi cấu hình dẫn đến rò rỉ dữ liệu nhạy cảm đến xác thực đầu vào không đúng dẫn đến các cuộc tấn công chèn mã, những lỗ hổng này cung cấp các vectơ tấn công đa dạng cho tin tặc. Chúng ta cũng đã thảo luận về tầm quan trọng của việc xử lý lỗi an toàn, ký mã và tránh các điều kiện chạy đua.

Tiếp theo, chúng ta chuyển sang các cuộc tấn công dựa trên phiên, lợi dụng cách ứng dụng web duy trì trạng thái với người dùng. Từ việc đánh cắp cookie phiên để cướp phiên đến khai thác các lỗ hổng trong logic xác thực để leo thang đặc quyền, các kỹ thuật này cho phép các cuộc tấn công tinh vi mà khó phát hiện. Chúng ta cũng đã thấy tầm quan trọng của việc kiểm tra các lỗ hổng logic nghiệp vụ dành riêng cho ứng dụng.

Các cuộc tấn công chèn mã là một trọng tâm khác. Từ các cuộc tấn công tiêm nhiễm SQL cổ điển đến các kỹ thuật chèn mã phức tạp hơn, những kỹ thuật này có khả năng phá vỡ logic của ứng dụng và thậm chí chiếm quyền điều khiển máy chủ. XSS đặc biệt phổ biến, cho phép các tập lệnh độc hại chạy trong trình duyệt của nạn nhân.

Cuối cùng, chúng ta đã khám phá các công cụ khác nhau mà Đội ngũ Pentest của Security365 sử dụng để hợp lý hóa kiểm tra bảo mật ứng dụng web. Từ trình quét lỗ hổng tự động như WPScan đến các framework khai thác mạnh mẽ như BeEF, các công cụ này là vô giá để xác định và khai thác các lỗ hổng một cách hiệu quả.

Tuy nhiên, cần nhớ rằng các cuộc tấn công này chỉ nên được thực hiện với sự cho phép rõ ràng trong bối cảnh kiểm tra xâm nhập đạo đức. Sử dụng chúng một cách ác ý là bất hợp pháp và phi đạo đức.

Nếu bạn đang chuẩn bị cho kỳ thi CompTIA PenTest+ (PT0-002), tôi khuyên bạn nên tham gia Learning Path CompTIA Pentest+ trên TryHackMe và lấy chứng chỉ hoàn thành. Path này sẽ cung cấp cho bạn kinh nghiệm thực hành quý giá với nhiều loại tấn công đã thảo luận ở đây, giúp củng cố kiến thức lý thuyết của bạn.

Ngoài ra, nếu bạn muốn đào tạo chuyên sâu và toàn diện cho chứng chỉ CompTIA PenTest+, hãy cân nhắc tham gia các khóa học tại CompTIA Vietnam (website https://comptia.edu.vn). Với các giảng viên giàu kinh nghiệm và cơ sở vật chất hiện đại, họ cung cấp một môi trường xuất sắc để phát triển các kỹ năng kiểm tra xâm nhập, bao gồm kiểm tra bảo mật ứng dụng web. Bạn cũng có thể tiết kiệm thời gian và chi phí bằng cách sử dụng các khóa học trực tuyến của họ thông qua Hệ thống Quản lý Học tập (LMS) trên cổng đào tạo an toàn thông tin trực tuyến Security365 (website http://www.security365.vn).

Đối với những người thích phương pháp tiếp cận tự học, CompTIA cũng cung cấp nhiều tài nguyên như CertMaster Learn, CertMaster Labs và CertMaster Practice trên website CompTIA.Academy. Những công cụ tương tác này cho phép bạn học tập theo tốc độ của riêng mình, kiểm tra kiến thức và chuẩn bị cho kỳ thi một cách tự tin.

Hãy nhớ rằng, với vị trí trung tâm của ứng dụng web trong cơ sở hạ tầng kỹ thuật số ngày nay, bảo mật chúng là một mối quan tâm hàng đầu cho các tổ chức. Là một pentest, bạn đóng một vai trò quan trọng trong việc xác định và giảm thiểu rủi ro, giúp giữ cho dữ liệu nhạy cảm được an toàn và duy trì niềm tin của công chúng. Với sự đào tạo và nỗ lực thích hợp, bạn có thể xây dựng một sự nghiệp thành công và ý nghĩa trong lĩnh vực quan trọng này.

Trình bày bởi : Vinh Nguyen Trần Tường
Tài liệu hỗ trợ học tập và ôn thi Chứng Chỉ Quốc Tế CompTIA Pentest +
Chú ý : Các ví dụ chỉ là giả định cho dễ hiểu, không phải là tình huống thực tế.

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