- vừa được xem lúc

Log4Shell (POC kèm Demo)

0 0 11

Người đăng: anhdq

Theo Viblo Asia

image.png

Có lẽ Log4Shell đã được công bố được một khoảng thời gian khá lâu rồi, nhưng hiện tại mức độ ảnh hưởng của nó vẫn không thể phủ nhận nên hãy theo chân mình để tìm hiểu tất tần tật về nó nhé.

1. Log4Shell là gì?

  • Log4Shell (LogJam) là lỗ hổng bảo mật ảnh hưởng đến Apache Log4j, thuộc RCE class vulnerability.
  • Lỗ hổng này cho phép kẻ tấn công có thể kiểm soát log messenges qua đó thực thi mã tùy ý được tải từ máy chủ do kẻ tấn công kiểm soát.

2. Log4Shell xảy ra ở đâu?

  • Log4Shell xảy ra ở những ứng dụng sử dụng thư viện Apache Log4j từ phiên bản 2.0 đến 2.14.1
  • Apache Log4j là một phần của Apache Logging Project. Nó là 1 công cụ ghi nhật kí dựa trên Java.
  • Hầu hết các ứng dụng được viết bằng Java đều sử dụng nó và đều có thể mắc lỗ hổng này.
  • Nhiều công ty phần mềm lớn và dịch vụ trực tuyến sử dụng Log4j bao gồm Amazon, Apple, Twitter, Tesla, Steam, … đều không thể tránh khỏi.

3. Log4Shell xảy ra thế nào?

  • Log4Shell xảy ra từ khi phiên bản Log4j 2.0 đã thêm các lookups, bao gồm cả JNDI lookups.
  • JAVA Naming and Directory Interface (JNDI) là một Java API cho một Directory Service cho phép giao tiếp với LDAP hoặc DNS để tìm kiếm các data và resources.
  • LDAP (Lightweight Directory Access Protocol) là một giao thức dạng client-server sử dụng để truy cập một Directory Service.
  • Một trong những kiểu dữ liệu trả về ấy có thể là URI trỏ đến 1 class java độc hại mà kẻ tấn công có thể tùy ý sửa đổi và thực thi.

4. Khai thác (POC)

  • Giả sử 1 ứng dụng ghi nhật kí thông tin HTTP, cụ thể ở đây là User-Agent: image.png

  • Kẻ tấn công có thể thực hiện một cuộc tấn công như sau: image.png

  • Kẻ tấn công sẽ tạo 1 jndi đưa nó vào User-Agent

  • Bây giờ Log4j sẽ thực hiện 1 truy vấn LDAP tới URI được bao gồm. LDAP server sau đó sẽ phản hồi với thông tin thư mục trong liên kết

  • Các giá trị javaFactory, javaCodeBase giống như địa chỉ để Log4j xác định vị trí chứa class java khai thác.

image.png

  • Cuối cùng class Java được tải vào bộ nhớ và được thực thi bởi Log4j.

5. Demo rce tạo file trong thư mục tmp

  • Tạo class Java để exploit thử với cmd tạo file mới trong thư mục tmp image.png

  • Kiểm tra thư mục tmp hoàn toàn chưa có file pwned image.png

  • Tạo web server với python3 image.png

  • Khởi chạy LDAP server thực hiện trả về tham chiếu jndi image.png

  • Giả lập cuộc tấn công Log4j trên một java web server

    • Cấu hình server sử dụng log4j chứa lỗ hổng (ở đây mình cấu hình mặc định rằng server đã ghi lại payload của attacker) image.png

    • Chạy file image.png

  • Kết quả

    • LDAP server image.png

    • Web server image.png

    • Và file pwned đã được tạo ra, cho thấy class java đã được thực thi image.png

  • Điều này mở ra cách khai thác không giới hạn của một cuộc tấn công RCE mang lại hậu quả vô cùng nghiêm trọng

6. Phòng chống

  • Cách tốt nhất để vá lỗ hổng này là update log4j lên phiên bản mới nhất.

image.png

Bình luận

Bài viết tương tự

- vừa được xem lúc

Được rồi, đi thôi!!! VPS free nè (^.^) [P1]

Bạn là sinh viên, bạn là lập trình viên khó khăn về mặt tài chính, bạn không có xiền thuê VPS, được rồi hãy đến đây!!!. Hôm nay mình sẽ hướng dẫn cho các bạn cách tạo VPS free bằng Github Workflow & N

0 0 59

- vừa được xem lúc

[Linux] Iptables trong hệ thống Linux

IPtables là ứng dụng tường lửa miễn phí trong Linux, cho phép thiết lập các quy tắc riêng để kiểm soát truy cập, tăng tính bảo mật. Khi sử dụng máy chủ, tường lửa là một trong những công cụ quan trọng

0 0 44

- vừa được xem lúc

Từ bug format sai chuỗi số khi nhập bằng bàn phím tiếng Nhật, tới IME và các sự kiện composition trong JS

"Tự nhiên tui thấy hiện tượng lạ”. Khi nhập liệu một chuỗi các kí tự vào thẻ input, thông thường chúng ta nhập thế nào thì hiển thị thế ấy, không làm phép biến đổi gì cả.

0 0 48

- vừa được xem lúc

Tạo Rijndael S-box sử dụng trong AES

I. Rijndael S-box là gì .

0 0 37

- vừa được xem lúc

Giới thiệu về lỗ hổng tràn bộ đệm (Buffer Overflow) và cách khai thác

Khái niệm. Lỗ hổng tràn bộ đệm (Buffer Overflow) là lỗ hổng trong lập trình, cho phép dữ liệu được ghi vào một buffer có thể tràn ra ngoài buffer đó, ghi đè lên dữ liệu khác và dẫn tới hoạt động bất t

0 0 42

- vừa được xem lúc

Share Libraries Hijacking trên Linux

1. Cách thức hoạt động của Share Libraries.

0 0 28