2015-07-30 12 views
9

Tôi muốn có thể kiểm tra lỗ hổng POODLE trên TLS.Làm thế nào để kiểm tra POODLE trên TLS?

Có một số cách để thực hiện điều này như Qualys SSLLabs chẳng hạn, nhưng nó quá hạn chế (chỉ có cổng TCP 443 máy chủ có sẵn trên Internet). Ngoài ra còn có liên kết này, nhưng tôi nhận được rất nhiều sai tích cực/tiêu cực khi kiểm tra: http://www.exploresecurity.com/testing-for-poodle_tls-manually/

Vì vậy, bây giờ tôi đang cố gắng để thay đổi thực hiện TLS OpenSSL 1.0.2d để có thể gửi các gói tin không hợp lệ (sử dụng openssl s_client ...) và để xem hành vi của máy chủ.

Thậm chí nếu tôi không thực sự quen thuộc với C, tôi có thể tìm mã thú vị thực hiện đệm cho AES-CBC-SHA (theo RFC 2246) trong OpenSSL trong crypto/evp/e_aes_cbc_hmac_sha1.c on line 518:

/* pad the payload|hmac */ 
plen += SHA_DIGEST_LENGTH; 
for (l = len - plen - 1; plen < len; plen++) 
    out[plen] = l; 

tôi sửa đổi nó vào đây để thay đổi các byte đệm đầu tiên để làm cho nó không chính xác theo RFC:

/* pad the payload|hmac */ 
plen += SHA_DIGEST_LENGTH; 
for (l = len - plen - 1; plen < len; plen++) { 
    if (plen == len - l - 1) 
    out[plen] = (l + 1) % 256; 
    else 
    out[plen] = l; 
} 

Sau đó biên dịch và thử nghiệm:

./config 
make 
./apps/openssl s_client -connect www.google.com:443 -servername www.google.com -tls1 -cipher AES128-SHA 

Và tôi có thể kết nối và thực hiện yêu cầu HTTP có phản hồi ...

Vì vậy, câu hỏi của tôi là: không phải là tệp tốt mà tôi đã sửa đổi hoặc là cái gì khác này?

Cảm ơn bạn rất nhiều vì đã giúp đỡ bạn.

Trả lời

-1

AFAIK máy quét cố gắng thiết lập kết nối SSLv3 và nếu họ có thể làm điều đó, họ sẽ gọi máy chủ dễ bị POODLE (không thể sửa được).

Để tìm một công cụ bạn có thể tự chạy và mã nguồn thực hiện trình quét POODLE, có những con đường dễ dàng hơn nhiều so với cố gắng triển khai khai thác bắt đầu từ cây nguồn OpenSSL.

Xem ví dụ: khung Metasploit.

Hoặc ít nmap:

+0

Cảm ơn bạn swa66. Tuy nhiên, tôi đang tìm cách thử nghiệm POODLE trên TLS chứ không phải SSLv3. Nhân tiện, mô tả bạn gửi cho tôi không chính xác. Một máy chủ có thể hỗ trợ SSLv3 mà không bị tổn thương. POODLE dễ bị tổn thương có liên quan đến việc sử dụng bộ mã hóa CBC, vì vậy việc sử dụng RC4 với SSLv3 chẳng hạn tránh được lỗ hổng;) –

+0

FWIW: Tôi không bình luận về những gì là hoặc không dễ bị tổn thương. sử dụng làm thuật toán. Máy quét trong metasploit báo cáo lỗ hổng POODLE nếu nó tìm thấy kết nối SSLv3. Việc kiểm tra trong máy quét nmap thực tế làm một quyết tâm phức tạp hơn, bao gồm việc kiểm tra các bộ mã hóa CBC và dự phòng từ TLS đến SSLv3. – swa66

2

Tôi gặp sự cố tương tự, đã trả lời here. Về cơ bản, bạn cần phải sửa đổi hàm ssl3_enc (trong s3_enc.c tập tin) và thay thế

memset(&rec->input[rec->length], 0, i); 

với

for(size_t j = 0; j < i; ++j) { 
    rec->input[rec->length + j] = rand() % 256; 
} 

và cũng có thể nó là tốt nhất để tăng kích thước đệm cho các trường hợp khi khối gắn tốt và không có đệm. Để làm điều đó chỉ cần thêm:

i += bs; 

ngay trước khi những dòng này

/* we need to add 'i-1' padding bytes */ 
l += i; 
Các vấn đề liên quan