Hướng dẫn Fix 0-day Log4Shell cho Minecraft

  • Chào bạn, hãy đăng ký hoặc đăng nhập để tham gia cùng bọn mình và sử dụng được đầy đủ chức năng của diễn đàn :).

anhcraft

BAN QUẢN TRỊ
DEVELOPER
18/9/16
3,040
1,945
1,020
.
anhcraft.dev
Thực ra lỗ hổng này đã có vài ngày rồi cơ mà lượn dạo một vòng vẫn chưa thấy ai post cái này một cách chỉnh chu ngoài việc kêu fix <(") và có lẽ mấy ông mới làm server đến fix cũng chẳng biết làm thế nào luôn.

Log4Shell là gì? Là lỗ hổng đến từ thư viện log4j của Java. Thư viện này được sử dụng để log các thông tin trong chương trình. Xui là thằng log4j này được sử dụng rất rộng rãi. Nhiều bạn sẽ lầm tưởng exploit này chỉ có trên Minecraft nhưng thực ra rất nhiều công ty lớn, chương trình đều bị. Java được sử dụng rất nhiều trong hệ thống máy chủ dịch vụ của các công ty như Google, Microsoft, AWS, Valve,.... và họ đều có khả năng bị dính.
Hiện lỗ hồng này được xếp hạng 9.8/10 (CVSS)

Nguồn gốc
Log4shell được team Alibaba phát hiện từ ngày 24/11 và được report bí mật. Sau đó họ công bố công khai exploit này kèm bản proof-of-concept lên Github. Và cũng từ đó exploit bắt đầu lan truyền nhanh chóng và hàng trăm máy chủ đã bị quét dính exploit này, trong đó có một công ty hosting Minecraft.

Tác động
Đây là exploit cực kì nghiêm trọng vì có khả năng điều khiển máy chủ từ xa, thực thi lệnh ngầm. Phần dưới mình sẽ nói rõ hơn.
Đối với Minecraft, từ client đến server đều có thể bị và nhất là server.

Cách fix
1. Update client đang chơi
2. Update Bungeecord, Waterfall
3. Update Server

chọn một trong các cách sau:
Tải Spigot mới nhất qua BuildTools (không khuyến khích)
Bạn phải dùng BuildTools để tải chứ đừng lên mạng tải bản có sẵn như trên getspigot thì file đều chưa dc patch đâu​
Cài plugin anti exploit (cực kì không khuyến khích)
https://www.spigotmc.org/resources/log4jexploit-fix.98243/ (chưa fix hoàn toàn, k nên sử dụng)​
Tải file Paper mới nhất (KHUYẾN KHÍCH)
Đối với các fork khác
Cơ chế hoạt động
Exploit này xảy ra do log4j có hỗ trợ API JNDI của Java. API này có các hàm thực thi từ xa, cho phép client truy xuất thông tin từ máy chủ và chạy code được gửi về


  • Các hệ thống web luôn luôn sẽ log một bản ghi đó là thông tin kết nối, nó sẽ bao gồm ip người truy vấn, URL yêu cầu, kèm các thông tin HTTP trong đó có UserAgent. UserAgent bản chất là chuỗi ghi tên thiết bị mà người dùng truy cập, song ở đây kẻ tấn công sẽ chèn một đoạn URI JNDI chứa tên server mà hắn đã setup nhằm thực hiện hành vi exploit. Ngoài UserAgent, hắn cũng có thể chọn các trường HTTP khác
  • Lỗi Log4shell giống như lỗi SQL Injection, bởi vì thư viện log4j sẽ xử lí đoạn lookup JNDI đó một cách trực tiếp và thực hiện truy vấn lên server LDAP đã được yêu cầu
  • Bởi vì máy chủ LDAP trên do kẻ tấn công setup nên hắn có thể dễ dàng chèn mã độc vào và khi có ai đó truy vấn sẽ bị dính
  • Đoạn code sẽ được gửi về máy chủ bị tấn công và được chính Java thực thi
Còn đối với Minecraft thì sao? sẽ có 2 cách exploit như sau
  • Gián tiếp: nếu chương trình khác bị dính thì cả máy (trong đó có server MC) sẽ bị dính
  • Trực tiếp: có thể exploit qua packet mà client gửi lên server; một vài thông tin ở dạng chuỗi sẽ được server xử lí trong đó có chat, lệnh, dùng anvil, dùng book, vvv; hoặc kẻ tấn công tạo một bản build plugin giả có khả năng log và lợi dụng nó để exploit mà không bị phát hiện <(")
Exploit này không chỉ tác động đến các công ty lớn mà cả Minecraft. Kể cả server bạn nhỏ hay lớn đều có nguy cơ bị dính vì cách thực thi exploit này rất dễ.
 

Hex

DEVELOPER
THÀNH VIÊN
10/6/19
1,103
204
500
a
Bản < 1.16 bên paper ko update nữa đâu nha :3. Mấy bản ấy mấy ông phải làm theo hướng dẫn của mojang thôi :3
 

Miyuki Saki

THÀNH VIÊN
3/8/19
301
6
180
Việt Nam
Thực ra lỗ hổng này đã có vài ngày rồi cơ mà lượn dạo một vòng vẫn chưa thấy ai post cái này một cách chỉnh chu ngoài việc kêu fix <(") và có lẽ mấy ông mới làm server đến fix cũng chẳng biết làm thế nào luôn.

Log4Shell là gì? Là lỗ hổng đến từ thư viện log4j của Java. Thư viện này được sử dụng để log các thông tin trong chương trình. Xui là thằng log4j này được sử dụng rất rộng rãi. Nhiều bạn sẽ lầm tưởng exploit này chỉ có trên Minecraft nhưng thực ra rất nhiều công ty lớn, chương trình đều bị. Java được sử dụng rất nhiều trong hệ thống máy chủ dịch vụ của các công ty như Google, Microsoft, AWS, Valve,.... và họ đều có khả năng bị dính.
Hiện lỗ hồng này được xếp hạng 9.8/10 (CVSS)

Nguồn gốc
Log4shell được team Alibaba phát hiện từ ngày 24/11 và được report bí mật. Sau đó họ công bố công khai exploit này kèm bản proof-of-concept lên Github. Và cũng từ đó exploit bắt đầu lan truyền nhanh chóng và hàng trăm máy chủ đã bị quét dính exploit này, trong đó có một công ty hosting Minecraft.

Tác động
Đây là exploit cực kì nghiêm trọng vì có khả năng điều khiển máy chủ từ xa, thực thi lệnh ngầm. Phần dưới mình sẽ nói rõ hơn.
Đối với Minecraft, từ client đến server đều có thể bị và nhất là server.

Cách fix
1. Update client đang chơi
2. Update Bungeecord, Waterfall
3. Update Server

chọn một trong các cách sau:
Tải Spigot mới nhất qua BuildTools (không khuyến khích)
Bạn phải dùng BuildTools để tải chứ đừng lên mạng tải bản có sẵn như trên getspigot thì file đều chưa dc patch đâu​
Cài plugin anti exploit (cực kì không khuyến khích)
https://www.spigotmc.org/resources/log4jexploit-fix.98243/ (chưa fix hoàn toàn, k nên sử dụng)​
Tải file Paper mới nhất (KHUYẾN KHÍCH)
Đối với các fork khác
Cơ chế hoạt động
Exploit này xảy ra do log4j có hỗ trợ API JNDI của Java. API này có các hàm thực thi từ xa, cho phép client truy xuất thông tin từ máy chủ và chạy code được gửi về


  • Các hệ thống web luôn luôn sẽ log một bản ghi đó là thông tin kết nối, nó sẽ bao gồm ip người truy vấn, URL yêu cầu, kèm các thông tin HTTP trong đó có UserAgent. UserAgent bản chất là chuỗi ghi tên thiết bị mà người dùng truy cập, song ở đây kẻ tấn công sẽ chèn một đoạn URI JNDI chứa tên server mà hắn đã setup nhằm thực hiện hành vi exploit. Ngoài UserAgent, hắn cũng có thể chọn các trường HTTP khác
  • Lỗi Log4shell giống như lỗi SQL Injection, bởi vì thư viện log4j sẽ xử lí đoạn lookup JNDI đó một cách trực tiếp và thực hiện truy vấn lên server LDAP đã được yêu cầu
  • Bởi vì máy chủ LDAP trên do kẻ tấn công setup nên hắn có thể dễ dàng chèn mã độc vào và khi có ai đó truy vấn sẽ bị dính
  • Đoạn code sẽ được gửi về máy chủ bị tấn công và được chính Java thực thi
Còn đối với Minecraft thì sao? sẽ có 2 cách exploit như sau
  • Gián tiếp: nếu chương trình khác bị dính thì cả máy (trong đó có server MC) sẽ bị dính
  • Trực tiếp: có thể exploit qua packet mà client gửi lên server; một vài thông tin ở dạng chuỗi sẽ được server xử lí trong đó có chat, lệnh, dùng anvil, dùng book, vvv; hoặc kẻ tấn công tạo một bản build plugin giả có khả năng log và lợi dụng nó để exploit mà không bị phát hiện <(")
Exploit này không chỉ tác động đến các công ty lớn mà cả Minecraft. Kể cả server bạn nhỏ hay lớn đều có nguy cơ bị dính vì cách thực thi exploit này rất dễ.
cho tôi hỏi server đang dùng spigot chuyển sang paper có sao không mà không có bản spigot fix hả bạn