Kho lưu trữ bom zip về cái chết là gì. Thử nghiệm bom zip giải nén. Vậy... Điều gì xảy ra nếu bạn chạy tập lệnh này

Bài viết đề cập tới 9 lớp file zip nên đây không phải là trường hợp đơn giản là dính một loạt các số 0 lại với nhau. Tại sao lại là 9, tại sao lại có 10 tệp trong mỗi tệp?

Thứ nhất, bài viết Wikipedia hiện đang nói về 5 lớp gồm 16 tệp. Không biết sự khác biệt đang xảy ra ở đâu, nhưng đó không phải là tất cả những gì có liên quan. Câu hỏi thực sự là tại sao lại sử dụng lồng nhau ngay từ đầu.

DEFLATE, phương pháp nén duy nhất được hỗ trợ cho các tệp zip*, có tỷ lệ nén tối đa là 1032. Điều này có thể đạt được một cách tiệm cận đối với bất kỳ chuỗi lặp lại nào từ 1-3 byte. Bất kể bạn làm gì với tệp zip, miễn là nó chỉ được sử dụng với DEFLATE, kích thước của tệp giải nén sẽ không quá 1032 lần kích thước của tệp zip gốc.

Do đó, để đạt được tỷ lệ nén thực sự vượt trội, bạn phải sử dụng các tệp zip lồng nhau. Nếu bạn có 2 lớp nén thì tỷ lệ tối đa là 1032^2 = 1065024. Đối với 3 lớp nén là 1099104768, v.v. Đối với 5 lớp được sử dụng trong 42.zip, tỷ lệ nén tối đa theo lý thuyết là 1170572956434432. Như bạn có thể thấy, kích thước thực tế của 42.zip không ở gần mức này. Một phần là do chi phí chung của định dạng zip và một phần là do họ không quan tâm.

Nếu phải đoán, tôi sẽ nói rằng 42.zip được hình thành bằng cách tạo một tệp trống lớn và sao chép đi sao chép nhiều lần. Không có cách nào để đẩy giới hạn định dạng hoặc tối đa hóa khả năng nén hay bất cứ điều gì - họ chỉ tùy ý chọn 16 bản sao cho mỗi lớp. Ý tưởng là tạo ra một trọng tải lớn mà không cần tốn nhiều công sức.

Ghi chú. Các định dạng nén khác, chẳng hạn như bzip2, cung cấp tỷ lệ nén tối đa cao hơn rất nhiều. Tuy nhiên, hầu hết các trình phân tích cú pháp zip không chấp nhận chúng.

tái bút Bạn có thể tạo một tệp zip sẽ trích xuất một bản sao của chính nó (quine). Bạn cũng có thể tạo một cái để giải nén nhiều bản sao. Vì vậy, nếu bạn giải nén tệp vĩnh viễn, kích thước tối đa có thể là vô hạn. Hạn chế duy nhất là nó có thể tăng không quá 1032 trong mỗi lần lặp.

P.P.S. Giá trị 1032 giả định rằng dữ liệu tệp trong zip không trùng nhau. Một trong những tính năng của định dạng tệp zip là nó có một thư mục trung tâm liệt kê các tệp trong kho lưu trữ và phần bù dữ liệu tệp. Nếu bạn tạo nhiều mục nhập trong các tệp trỏ đến cùng một dữ liệu, bạn có thể đạt được tỷ lệ nén cao hơn nhiều ngay cả khi không lồng nhau, nhưng tệp zip có thể sẽ bị trình phân tích cú pháp từ chối.

Các loại vi-rút máy tính mới xuất hiện gần như mỗi ngày và phần lớn cả phần mềm độc hại mới và đã được sửa đổi đều nhằm mục đích thu lợi nhuận. Đánh cắp mật khẩu, số thẻ ngân hàng, sử dụng sức mạnh tính toán của máy tính người dùng bằng cách tạo botnet, tống tiền - đây là mục đích chính của virus. Nhưng trong số các phần mềm độc hại cũng có những phần mềm có mục tiêu phá hoại thông thường.

Những loại virus như vậy rất phổ biến vào thời kỳ đầu của kỷ nguyên máy tính và bây giờ chúng dường như đang trở nên phổ biến trở lại. Gần đây xuất hiện nhiều trường hợp máy tính bị lây nhiễm cái gọi là kho lưu trữ cái chết- các kho lưu trữ độc hại, việc giải nén chúng sẽ lấp đầy hoàn toàn dữ liệu vào ổ cứng và, như một số người nói, thậm chí có thể làm hỏng phần cứng, gây tải nặng cho nó. Loại virus từng khủng bố người dùng vài năm trước đây là một trong số đó.

Bề ngoài nó trông giống như một kho lưu trữ thông thường có trọng lượng 42 kilobyte, nhưng nếu giải nén nó bạn sẽ nhận được 4,5 petabyte thông tin! Bạn có nghĩ rằng điều này là không thể? Dù thế nào đi chăng nữa. Bởi riêng cô ấy Mã ZIP -một quả bom không gì khác hơn là một hình nộm, nhưng nó chứa một thuật toán tạo dữ liệu đặc biệt. Nếu người dùng cố gắng giải nén một kho lưu trữ như vậy, các lớp chứa trong đó sẽ 16 các tập tin ở mỗi cấp độ sẽ bắt đầu mở ra, tạo ra một lượng lớn thông tin vô nghĩa. Kết quả là "vụ nổ" cái này Mã ZIP -bom, đĩa bị lấp đầy dung lượng bộ nhớ đệm và hệ thống bị treo hoàn toàn hoặc gặp sự cố BSOD.

Đối với lỗi phần cứng máy tính, đây có lẽ là một sự cường điệu, tải trọng lên các bộ phận thực sự sẽ tăng mạnh, nhưng chưa chắc đã đủ cao để chúng bị cháy. Nếu bộ xử lý quá nóng, tính năng bảo vệ sẽ hoạt động và máy tính sẽ khởi động lại, mặc dù không có gì đảm bảo một trăm phần trăm rằng điều này sẽ xảy ra. Trong thùng rác máy tính Mã ZIP -bom sẽ không biến đổi, các tập tin đã có trên đĩa sẽ không bị phá hủy, nhưng thần kinh của người dùng sẽ bị căng thẳng, đó là điều chắc chắn. Phần mềm diệt virus có nhận ra những mối đe dọa như vậy không? Có, các chương trình chống vi-rút có thể nhận ra loại phần mềm độc hại này, mặc dù chúng gây ra mối đe dọa Mã ZIP -quả bom cũng có thể dành cho chính phần mềm chống vi-rút: khi cố gắng giải nén kho lưu trữ, phần mềm chống vi-rút cũng có thể lấp đầy toàn bộ bộ nhớ và không tìm thấy gì.

Giống như tất cả Mã ZIP -bom, nguy hiểm không chỉ đối với Windows mà còn đối với các hệ điều hành khác hỗ trợ làm việc với kho lưu trữ Mã ZIP . Phải làm gì nếu điều này Mã ZIP-Có phải quả bom đã nổ trên máy tính của bạn không? Tốt hơn hết là đừng đợi hệ thống gặp sự cố mà hãy tắt máy tính một cách mạnh mẽ, khởi động vào chế độ an toàn hoặc từ bên dưới. LiveCD, xóa kho lưu trữ và rác mà nó đã tạo ra, đồng thời kiểm tra quá trình khởi động, vì chương trình độc hại rất có thể đã viết mã của nó ở đó.

Thử nghiệm bom giảm áp

Bom giải nén là một tệp được thiết kế để đánh sập hoặc xóa một chương trình hoặc hệ thống vô dụng đọc nó, tức là. từ chối dịch vụ. Các tệp trong dự án này có thể được sử dụng để kiểm tra lỗ hổng của ứng dụng trước một kiểu tấn công nhất định.

Tải bom xuống

Bom zip, còn được gọi là zip chết chóc hoặc bom giải nén, là một tệp lưu trữ độc hại được thiết kế để làm hỏng hoặc xóa một chương trình hoặc hệ thống vô dụng đang đọc nó. Nó thường được sử dụng để vô hiệu hóa phần mềm chống vi-rút nhằm tạo cơ hội cho các loại vi-rút truyền thống hơn. Thay vì chiếm quyền điều khiển hoạt động bình thường của một chương trình, zipbom cho phép chương trình chạy như mong đợi, nhưng kho lưu trữ được xử lý cẩn thận nên việc giải nén nó (ví dụ: sử dụng trình quét vi-rút để tìm vi-rút) đòi hỏi quá nhiều thời gian, ổ đĩa. không gian hoặc bộ nhớ.

Bom Zip là một tệp nhỏ để đơn giản hóa việc truyền nó và tránh bị nghi ngờ. Tuy nhiên, khi bạn cố gắng giải nén tệp này, nội dung của nó sẽ yêu cầu nhiều hơn mức hệ thống có thể xử lý. Một ví dụ khác về bom zip là tệp 42.zip, là một tệp zip chứa 42 kilobyte dữ liệu nén, chứa năm cấp độ tệp zip lồng nhau trong bộ 16, mỗi tệp lưu trữ cấp dưới cùng chứa 4,3 gigabyte (4.294.967.295 byte, ~ 3,99 GiB), trong tổng số 4,5 petabyte (4.503.599.626.321.920 byte, ~3,99 PiB) của dữ liệu không nén. Những tập tin như vậy vẫn có thể được tải xuống từ nhiều trang web khác nhau trên Internet. Nhiều trình quét vi-rút chỉ thực hiện một số cấp độ đệ quy trên các kho lưu trữ để ngăn chặn các cuộc tấn công có thể gây tràn bộ đệm, tình trạng hết bộ nhớ hoặc vượt quá thời gian thực thi có thể chấp nhận được của chương trình. Bom zip thường (nếu không phải luôn luôn) dựa vào việc lặp lại các tệp giống hệt nhau để đạt được tỷ lệ nén tối đa. Kỹ thuật lập trình động có thể được sử dụng để hạn chế việc truyền tải các tệp như vậy sao cho chỉ một tệp được thực thi đệ quy ở mỗi cấp độ, chuyển đổi hiệu quả sự tăng trưởng theo cấp số nhân của chúng thành tăng trưởng tuyến tính.

Khi thử nghiệm, tốt hơn hết bạn nên bắt đầu từ việc nhỏ và tiến dần lên. Bắt đầu làm việc với tệp lớn nhất có thể gây hại nghiêm trọng cho ứng dụng hoặc hệ thống - hãy hết sức thận trọng khi sử dụng những quả bom này.

Tất cả các tệp đã được nén để vượt qua giới hạn tải lên tệp 50 MB của GitMub. Các nhóm tệp đã được nén và sau đó được nén lại. Hãy xóa các mã hóa trước bổ sung này trước khi quét.

Nguồn bổ sung

  • HTTP/2: Phân tích chuyên sâu về bốn lỗ hổng hàng đầu của giao thức web thế hệ tiếp theo
  • Bạn không nhìn vào bức tranh lớn
  • Trong tổ ong nén: Nghiên cứu bảo mật về nén dữ liệu trong dịch vụ mạng
  • Nén HTTP khủng khiếp - bom nén (
[Cập nhật] Bây giờ tôi có tên trong danh sách của cơ quan tình báo nào đó vì tôi đã viết một bài báo về một loại "quả bom" nào đó, phải không?

Nếu bạn đã từng lưu trữ một trang web hoặc quản lý một máy chủ, bạn có thể biết rõ về những kẻ xấu cố gắng làm đủ mọi điều xấu đối với tài sản của bạn.

Khi tôi lưu trữ hộp Linux nhỏ bé của mình với quyền truy cập SSH lần đầu tiên vào năm 13 tuổi, tôi đã xem nhật ký và hàng ngày tôi thấy các địa chỉ IP (chủ yếu là từ Trung Quốc và Nga) đang cố gắng kết nối với hộp nhỏ ngọt ngào của tôi (thực ra là như vậy). thực chất là một chiếc laptop ThinkPad T21 cũ, màn hình bị hỏng, kêu ù ù dưới gầm giường). Tôi đã báo cáo những IP này cho nhà cung cấp của họ.

Trên thực tế, nếu bạn có một máy chủ Linux có SSH mở, bạn có thể tự mình xem có bao nhiêu lần thử kết nối xảy ra hàng ngày:

Grep "lỗi xác thực" /var/log/auth.log


Hàng trăm lần ủy quyền không thành công, mặc dù máy chủ đã tắt xác thực mật khẩu và đang chạy trên cổng không chuẩn

Wordpress kết án chúng tôi

Được rồi, hãy đối mặt với sự thật, các trình quét lỗ hổng web đã tồn tại trước Wordpress, nhưng sau khi nền tảng này trở nên quá phổ biến, hầu hết các trình quét bắt đầu kiểm tra các thư mục wp-admin bị định cấu hình sai và các plugin chưa được vá.

Vì vậy, nếu một nhóm hacker nhỏ mới thành lập muốn có một số tài khoản mới, họ sẽ tải xuống một trong những công cụ quét này và cài đặt nó trên một loạt trang web với hy vọng có được quyền truy cập vào một số trang web và xóa giao diện của nó.


Nhật ký mẫu khi quét bằng công cụ Nikto

Đây là lý do tại sao tất cả các máy chủ và quản trị viên trang web đều phải xử lý hàng gigabyte nhật ký chứa đầy các lần quét. Thế nên tôi đã nghĩ...

Có thể đánh trả được không?

Sau khi thử nghiệm khả năng sử dụng IDS hoặc Fail2ban, tôi nhớ lại những quả bom ZIP cũ kỹ trong quá khứ.

Bom ZIP là loại gì?

Hóa ra, nén ZIP rất tốt trong việc xử lý dữ liệu lặp đi lặp lại, vì vậy nếu bạn có một tệp văn bản khổng lồ chứa đầy dữ liệu lặp lại như tất cả các số 0, nó sẽ nén rất tốt. Ý tôi là, RẤT tốt.

Như 42.zip đã chỉ ra, có thể nén 4,5 petabyte (4.500.000 gigabyte) thành 42 kilobyte. Khi bạn cố xem nội dung của kho lưu trữ (giải nén hoặc giải nén nó), bạn có thể sẽ hết dung lượng ổ đĩa hoặc RAM.

Làm cách nào để thả bom ZIP vào máy quét lỗ hổng?

Thật không may, trình duyệt web không hiểu ZIP nhưng lại hiểu GZIP.

Vì vậy, điều đầu tiên chúng ta sẽ làm là tạo một tệp GZIP 10GB chứa đầy các số không. Có nhiều cách nén lồng nhau mà bạn có thể thực hiện, nhưng hãy bắt đầu đơn giản.

Dd if=/dev/zero bs=1M count=10240 | gzip > 10G.gzip


Chế tạo bom và kiểm tra kích thước của nó

Như bạn có thể thấy, kích thước của nó là 10 MB. Nó có thể được nén tốt hơn, nhưng hiện tại thế là đủ.

Bây giờ hãy cài đặt một tập lệnh PHP để phân phối nó tới máy khách.

Sẵn sàng!

Bây giờ chúng ta có thể sử dụng nó như một cách phòng thủ đơn giản:

Rõ ràng, tập lệnh này không phải là hình ảnh thu nhỏ của sự tao nhã, nhưng nó có thể bảo vệ chúng ta khỏi tập lệnh mà những đứa trẻ đã đề cập trước đó, những người không biết rằng tác nhân người dùng có thể được thay đổi trong máy quét.

Vậy... Điều gì xảy ra nếu bạn chạy tập lệnh này?


(nếu bạn đã thử bom trên các thiết bị/trình duyệt/tập lệnh khác, vui lòng