Tất cả các nỗ lực ở đây để giải quyết các lỗ hổng trong log4j đều thất bại. Bạn không thể dựa vào định vị
lệnh vì nó chỉ tìm trong một tập hợp các đường dẫn được định cấu hình (/etc/updatedb.conf
trên Debian).
Phần mềm có thể tự cài đặt ở những vị trí không được cấu hình trong đã cập nhậtb.conf
và hoàn toàn bị bỏ lỡ bởi công việc định kỳ cập nhật cơ sở dữ liệu định vị.
Ngoài ra, người ta cũng phát hiện ra rằng các nhà cung cấp phần mềm (như đàn hồi) đã đóng gói lại JndiLookup.class dễ bị tấn công (ví dụ: elaticsearch-sql-cli-7.16.1.jar
) ở những nơi chưa được biết đến trước đây khiến các giải pháp không hoàn chỉnh được xây dựng xung quanh các hàm băm, tên hoặc đường dẫn tệp đã biết.
@shodanshok đang đi đúng hướng ở đây nhưng thay vì tìm kiếm log4j một cách rõ ràng, hãy xem mọi '.jar' trên hệ thống là điều cần thiết.
Cái này đầy đủ hơn, yêu cầu gói zip. và phần mở rộng câu trả lời của shodanshok. Điều này sẽ chỉ hiển thị các vị trí mà JndiLookup.class
mã được tìm thấy. Một dòng khác có thể được thêm vào để loại bỏ các lỗ hổng này nhưng tôi muốn để điều đó tùy theo quyết định của quản trị viên. Liên kết đàn hồi ở trên cho thấy cách:
cho jar trong $(find / -name '*.jar'); làm
giải nén -l "$jar" | grep 'JndiLookup.class' &>/dev/null && echo "Đã tìm thấy lỗ hổng trong $jar"
xong
Ví dụ:
# cho jar trong $(find / -name '*.jar'); làm
> giải nén -l "$jar" | grep 'JndiLookup.class' &>/dev/null && echo "Đã tìm thấy lỗ hổng trong $jar"
> xong
Đã tìm thấy lỗ hổng trong /usr/lib/unifi/lib/log4j-core-2.13.3.jar
Đã tìm thấy lỗ hổng trong /home/minecraft/.m2/repository/org/spigotmc/minecraft-server/1.15.2-SNAPSHOT/minecraft-server-1.15.2-SNAPSHOT.jar
Đã tìm thấy lỗ hổng trong /home/minecraft/.m2/repository/org/spigotmc/minecraft-server/1.15.1-SNAPSHOT/minecraft-server-1.15.1-SNAPSHOT.jar
...
Hãy cảnh giác khi chạy phần mềm này trên hệ thống có hệ thống tệp mạng được gắn kết vì hiệu suất có thể bị ảnh hưởng. Trong những trường hợp đó, bạn cần chạy các lệnh trên chính máy chủ tệp.